Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.02.2012, 12:17
grom333 grom333 вне форума
Прохожий
 
Регистрация: 10.12.2009
Сообщения: 7
Репутация: 10
По умолчанию Изменение числа (0,5)

Подскажите пожалуйста логику решения:
Нужно любое число (integer) преобразовать так, чтобы оно оканчивалось на 0 или на 5. Например: 1353 => 1355, 237 => 240.
Это что-то наподобие округления, желательно что-бы в большую сторону изменяло число. Прошу направить в правильную сторону.
Ответить с цитированием
  #2  
Старый 09.02.2012, 12:41
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

а что мешает написать свою функцию?
что-нить типа:

Код:
function getround(pVal:integer):integer;
var tempStr:string;
     k:integer;
     res:integer;
begin
tempstr:=inttostr(pVal);
k:=strtoint(copy(tempstr,length(tempstr),1));
if k<3 then res:=pVal-k;
if (k>=3) and (k<8) then res:=pVal-k+5;
if k>=8 THEN res:=pVal-k+10;

result:=res;
end;
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
  #3  
Старый 09.02.2012, 13:05
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Ну чё так длинно то?
Код:
K := K - ((K + 2) mod 5) + 2;
Результат:
Код:
1 => 0
2 => 0
3 => 5
4 => 5
5 => 5
6 => 5
7 => 5
8 => 10
9 => 10
10 => 10
...
46 => 45
47 => 45
48 => 50
49 => 50
50 => 50
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj

Последний раз редактировалось PhoeniX, 09.02.2012 в 13:12.
Ответить с цитированием
  #4  
Старый 09.02.2012, 13:25
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
function NumLock(i: Integer): Integer;
begin
  Result:=((i+4) div 5)*5;
end;

Код:
0 -> 0
1 -> 5
2 -> 5
3 -> 5
4 -> 5
5 -> 5
6 -> 10
7 -> 10
8 -> 10
9 -> 10
10 -> 10
11 -> 15
12 -> 15
13 -> 15
14 -> 15
15 -> 15
16 -> 20
17 -> 20
18 -> 20
19 -> 20
20 -> 20
21 -> 25
22 -> 25
23 -> 25
24 -> 25
25 -> 25
26 -> 30
27 -> 30
28 -> 30
29 -> 30
30 -> 30
31 -> 35
32 -> 35
33 -> 35
34 -> 35
35 -> 35
36 -> 40
37 -> 40
38 -> 40
39 -> 40
40 -> 40
41 -> 45
42 -> 45
43 -> 45
44 -> 45
45 -> 45
46 -> 50
47 -> 50
48 -> 50
49 -> 50
50 -> 50
51 -> 55
52 -> 55
53 -> 55
54 -> 55
55 -> 55
56 -> 60
57 -> 60
58 -> 60
59 -> 60
60 -> 60
61 -> 65
62 -> 65
63 -> 65
64 -> 65
65 -> 65
66 -> 70
67 -> 70
68 -> 70
69 -> 70
70 -> 70
71 -> 75
72 -> 75
73 -> 75
74 -> 75
75 -> 75
76 -> 80
77 -> 80
78 -> 80
79 -> 80
80 -> 80
81 -> 85
82 -> 85
83 -> 85
84 -> 85
85 -> 85
86 -> 90
87 -> 90
88 -> 90
89 -> 90
90 -> 90
91 -> 95
92 -> 95
93 -> 95
94 -> 95
95 -> 95
96 -> 100
97 -> 100
98 -> 100
99 -> 100
100 -> 100
101 -> 105
102 -> 105
103 -> 105
104 -> 105
105 -> 105
106 -> 110
107 -> 110
108 -> 110
109 -> 110
110 -> 110
111 -> 115
112 -> 115
113 -> 115
114 -> 115
115 -> 115
116 -> 120
117 -> 120
118 -> 120
119 -> 120
120 -> 120
121 -> 125
122 -> 125
123 -> 125
124 -> 125
125 -> 125
126 -> 130
127 -> 130
128 -> 130
129 -> 130
130 -> 130
131 -> 135
132 -> 135
133 -> 135
134 -> 135
135 -> 135
136 -> 140
137 -> 140
138 -> 140
139 -> 140
140 -> 140
141 -> 145
142 -> 145
143 -> 145
144 -> 145
145 -> 145
146 -> 150
147 -> 150
148 -> 150
149 -> 150
150 -> 150
151 -> 155
152 -> 155
153 -> 155
154 -> 155
155 -> 155
156 -> 160
157 -> 160
158 -> 160
159 -> 160
160 -> 160
161 -> 165
162 -> 165
163 -> 165
164 -> 165
165 -> 165
166 -> 170
167 -> 170
168 -> 170
169 -> 170
170 -> 170
171 -> 175
172 -> 175
173 -> 175
174 -> 175
175 -> 175
176 -> 180
177 -> 180
178 -> 180
179 -> 180
180 -> 180
181 -> 185
182 -> 185
183 -> 185
184 -> 185
185 -> 185
186 -> 190
187 -> 190
188 -> 190
189 -> 190
190 -> 190
191 -> 195
192 -> 195
193 -> 195
194 -> 195
195 -> 195
196 -> 200
197 -> 200
198 -> 200
199 -> 200
200 -> 200
201 -> 205
202 -> 205
203 -> 205
204 -> 205
205 -> 205
206 -> 210
207 -> 210
208 -> 210
209 -> 210
210 -> 210
211 -> 215
212 -> 215
213 -> 215
214 -> 215
215 -> 215
216 -> 220
217 -> 220
218 -> 220
219 -> 220
220 -> 220
221 -> 225
222 -> 225
223 -> 225
224 -> 225
225 -> 225
226 -> 230
227 -> 230
228 -> 230
229 -> 230
230 -> 230
231 -> 235
232 -> 235
233 -> 235
234 -> 235
235 -> 235
236 -> 240
237 -> 240
238 -> 240
239 -> 240
240 -> 240
241 -> 245
242 -> 245
243 -> 245
244 -> 245
245 -> 245
246 -> 250
247 -> 250
248 -> 250
249 -> 250
250 -> 250
251 -> 255
252 -> 255
253 -> 255
254 -> 255
255 -> 255
__________________
Пишу программы за еду.
__________________

Последний раз редактировалось NumLock, 09.02.2012 в 13:29.
Ответить с цитированием
  #5  
Старый 09.02.2012, 13:42
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

NumLock, уж проще тогда в моём методе поправить сдвиг. Ибо один mod выполняется быстрее, чем пара div + mul.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #6  
Старый 09.02.2012, 13:58
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от DJ PhoeniX
выполняется быстрее
а куда нам спешить?)))
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 09.02.2012, 14:00
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Цитата:
Сообщение от NumLock
а куда нам спешить?)))
А вот сюда.
Цитата:
После этого снится, что всех этих цифровых мародёров, разграбляющих системные ресурсы, посадили за «Поиск 8086» с 64 КБ памяти и приставили суровых советских Учителей-Программистов с плёткой, приговаривающих: «Много памяти не бывает! И процессорного времени — тоже!»
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #8  
Старый 09.02.2012, 14:07
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

ну давай посмотрим чей код быстрее будет выполняться:


где чей разберешься? ты зачем стек использовал?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #9  
Старый 09.02.2012, 14:13
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Данунах? о_О
Ладно... Хотя я бы на асме это иначе записал, так что это компилятор... "Мопэд не мой"
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:37.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025