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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2011, 15:14   #1
Absinth
Пользователь
 
Аватар для Absinth
 
Регистрация: 11.11.2008
Сообщений: 16
Сообщение Паскаль, сравнение

Народ помогите, в паскале давно не работал... Как из вещественных чисел найти наиболее близко к какому-нить целому числу?
Не рой другому яму - пусть сам роет.
Absinth вне форума Ответить с цитированием
Старый 15.04.2011, 15:20   #2
VKorablev
Форумчанин
 
Аватар для VKorablev
 
Регистрация: 14.04.2011
Сообщений: 126
По умолчанию

фуууххххх......толком вопроса каешн не понял....но что если целое число преобразовать к вещественному (наоборот не получится) и уже вещественные сравнивать?
Нам больше не нужно смотреть на мир сквозь замочную скважину 64Кб сегмента (с) ВалИк
VKorablev вне форума Ответить с цитированием
Старый 15.04.2011, 15:23   #3
Absinth
Пользователь
 
Аватар для Absinth
 
Регистрация: 11.11.2008
Сообщений: 16
По умолчанию

т.е. я понял так... нужно найти наибольшую дробную часть и отнять ее от единицы, а потом сравнить с остальными дробными частями... Вот только как это записать?
Не рой другому яму - пусть сам роет.

Последний раз редактировалось Absinth; 15.04.2011 в 15:26. Причина: дополнение
Absinth вне форума Ответить с цитированием
Старый 15.04.2011, 15:27   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Как из вещественных чисел найти наиболее близко к какому-нить целому числу?
пусть есть массив A [1..N], состоящий из вещественных чисел.
Тогда найти индекс наиболее близкого числа можно так:
Код:
BlizkoIndex := 1;
for i:=2 to N do
  if abs(ТребуемоеЦелоеЧисло - A[i]) < abs(ТребуемоеЦелоеЧисло - A[BlizkoIndex]) then
   BlizkoIndex ;= i;

ДОБАВЛЕНО
Цитата:
т.е. я понял так... нужно найти наибольшую дробную часть и отнять ее от единицы, а потом сравнить с остальными дробными частями...
а я понял не так!...
мой код находит наиболее близкое вещественное число.
Например,
зададим ТребуемоеЦелоеЧисло := 5; (просто для примера)
вещественные числа (3 штуки): 3.99 4.78 5.07
самое бликое - 3-е число (которое 5.07) ...

Последний раз редактировалось Serge_Bliznykov; 15.04.2011 в 15:31.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.04.2011, 15:33   #5
VKorablev
Форумчанин
 
Аватар для VKorablev
 
Регистрация: 14.04.2011
Сообщений: 126
По умолчанию

нет...я имел ввиду что допустим у нас есть целое число Х, мы вводим вещественное число Z, обнуляем Z, и Z:=Z+X, дальше сравниваем Z с остальными вещественными числами
Нам больше не нужно смотреть на мир сквозь замочную скважину 64Кб сегмента (с) ВалИк
VKorablev вне форума Ответить с цитированием
Старый 15.04.2011, 15:41   #6
Absinth
Пользователь
 
Аватар для Absinth
 
Регистрация: 11.11.2008
Сообщений: 16
По умолчанию

нужно из вещественных чисел (1.7, 1.5, 3.9) найти наиболее близкое к какому-нибудь целому. Т.е. это будет 3.9. Если числа 2.1, 5.2, 9.6 то это 2.1.
Не рой другому яму - пусть сам роет.
Absinth вне форума Ответить с цитированием
Старый 15.04.2011, 15:46   #7
VKorablev
Форумчанин
 
Аватар для VKorablev
 
Регистрация: 14.04.2011
Сообщений: 126
По умолчанию

ааа....терь понятно...тогда да..сначала умножь каждое число на 10 (при условии что стоит один знак после запятой), потом найди остаток (число mod 10), и сравнивай остатки
Нам больше не нужно смотреть на мир сквозь замочную скважину 64Кб сегмента (с) ВалИк
VKorablev вне форума Ответить с цитированием
Старый 15.04.2011, 15:56   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
наиболее близкое к какому-нибудь целому.
ну, это ещё проще!
ищите число, у которого минимальное значение
Код:
abs( 1 - frac(X) )
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Матрицы.Паскаль]Сравнение каждого с каждым. BackSlash Помощь студентам 6 15.01.2011 03:56
паскаль, сравнение сортировок Хоара и пузырька semak Помощь студентам 0 01.12.2010 10:57
Сравнение в паскаль Asicks Помощь студентам 10 02.01.2010 18:55
Сравнение сортировок Паскаль Igomax Помощь студентам 6 24.10.2009 17:58