Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2010, 20:25   #1
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
Восклицание Округление до ближайшего большего/меньшего

Есть множество действий ну я не буду весь код писать, просто вот на примере
Код:
begin
 a:= (t*c+i)/k
Но при ComboBox.itemindex 0 нужно а округлить до ближайшего меньшего, а при ComboBox.itemindex 1 , до ближайшего большего соответственно!
Подскажите как это реализовать, реализовать округление!
kta87 вне форума Ответить с цитированием
Старый 09.09.2010, 20:38   #2
_Санек_
Пользователь
 
Регистрация: 02.09.2010
Сообщений: 52
По умолчанию

В delphi есть функции int(x), dec(x), inc(x), можно делить нацело div
_Санек_ вне форума Ответить с цитированием
Старый 09.09.2010, 20:56   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

до ближайшего меньшего целого:
Код:
a := int((t*c+i)/k);
до ближайшего большего целого:
Код:
a := round(((t*c+i)/k) + 0.5 );
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.09.2010, 21:27   #4
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию

round(a) - до ближайшего большего
trunc(a) - до ближайшего меньшего
Вот и все!
kta87 вне форума Ответить с цитированием
Старый 09.09.2010, 21:31   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
round(a) - до ближайшего большего
или Вы ошибаетесь, или у нас разные понятия, что такое "ближайшее большее"
5.25 - для этого числа какое ближайшее большее?!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.09.2010, 21:53   #6
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию

Ближайшее большее целое 6
kta87 вне форума Ответить с цитированием
Старый 09.09.2010, 23:51   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Ближайшее большее целое 6
ну, согласен.
Тогда Вы ошибаетесь, когда пишете:
Цитата:
round(a) - до ближайшего большего
round(5.25) вернёт 5

а вот если посмотрите на то, решение, что я предложил в пост #3
Цитата:
до ближайшего большего целого:

Код:

a := round(((t*c+i)/k) + 0.5 );
a := round(a + 0.5)
вернёт: round(5.25 + 0.5) = round(5.75) = 6

что и требовалось!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.09.2010, 12:18   #8
KobolD
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 239
По умолчанию

можно всегда вычислять ближайшее меньшее a := int((t*c+i)/k); и если ComboBox.itemindex = 1 то a:=a+1
(то есть ближайшее большее есть ближайшее меньшее плюс один)
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
KobolD вне форума Ответить с цитированием
Старый 10.09.2010, 12:48   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я что-то не понял а RoundTo из модуля Math с установкой SetRoundMode(rmDown) уже отменили?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.09.2010, 14:15   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Stilet
Я что-то не понял а RoundTo из модуля Math с установкой SetRoundMode(rmDown) уже отменили?
У кого-то, может и отменили, а у кого-то (например, у меня) в Delphi 5 нет такой функции...
Поэтому и приходится обходится тем, что есть...

Цитата:
Сообщение от KobolD
(то есть ближайшее большее есть ближайшее меньшее плюс один)
ага. согласен. Так можно.

Кстати, ко всем форумчанам маленький занимательный вопрос.
для числа 5.000 каковы ближайшее меньшее целое и ближайшее большее целое?!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация алгоритма метода ближайшего соседа на с++!!!! Nimbu Помощь студентам 0 28.06.2010 17:16
Метод ближайшего соседа Nimbu Помощь студентам 5 14.06.2010 16:24
вывод 2ух чисел в мемо с выравниванием меньшего к правому краю большего nuevegramodelamor Помощь студентам 2 27.05.2010 16:28
Определение ближайшего элемента массива к числу Foxx Помощь студентам 7 14.11.2009 16:41
Округление числа до ближайшего большего/меньшего из ряда Foxx Microsoft Office Excel 4 24.07.2009 09:50