![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 09.05.2008
Сообщений: 5
|
![]()
Драсти!
В ходе написания проги у мя возникла проблема. Перешерстив книги я не нашел ответа и вот пришел сюды. Я сравниваю делаю сартировку дробных значений по убыванию в StringGrid1 и записываю её результаты в StringGrid3. Когда у меня разница между 2мя значениями более 0,5 , то все нормально, но когда она меньше (6,31 и 5,97), то начинаются проблемы. Типы переменных Real. 1. Как мне корректно их сравнивать? 2. Можно ли в StringGrid делать сортировку как-то проще? Код:
Последний раз редактировалось Stilet; 12.05.2008 в 09:15. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
![]()
Что в таблице должно быть отсортировано по убыванию?
Значения в строках? в столбцах? Или как-то иначе сортируется таблица? (не могу понять из вашего алгоритма) Последний раз редактировалось _Dmitry; 09.05.2008 в 22:20. |
![]() |
![]() |
![]() |
#3 | |
Регистрация: 09.05.2008
Сообщений: 5
|
![]()
СПС что откликнулись.
Сартируются строки из SG1[istsg1,2] по убыванию в SG3[istsg2,1]. У меня вопрос лишь в том как правильно сравнивать дробные числа, а остальное я в приципе сделаю. Вот упрощенный вариант: Цитата:
![]() Последний раз редактировалось EAAlien; 10.05.2008 в 16:45. |
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
![]() Код:
|
![]() |
![]() |
![]() |
#6 | |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
![]() Цитата:
Массив сортируется следующим образом: просматриваем весь массив, начиная с нулевого элемента, находим max и меняем с нулевым, далее просматриваем массив уже с первого элемента, потом со второго и т.д. Существуют и другие алгоритмы сортировки... |
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 09.05.2008
Сообщений: 5
|
![]()
Про способы сортировки я знаю, просто это был самый удобный в моей ситуации при написании проги. Этот(Вложение 3754) алгаритм я проверил и ошибок не нашел, вот мне и стало интересно, может я не змеил, или все же глюк...
|
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
Алгоритм работоспособный (хотя есть что убрать), но такое сравнение вещественных чисел в данном случае неприменимо.
Можно так: Код:
для max = 8.1 и StringGrid1.Cells[st1,0] = '8.1' из-за ограниченной точности вещественных чисел. ------------------- кроме того, алгоритм не будет работать, если в массиве будут повторяющиеся числа. Последний раз редактировалось alexBlack; 12.05.2008 в 21:51. |
![]() |
![]() |
![]() |
#9 |
Регистрация: 09.05.2008
Сообщений: 5
|
![]()
Йа глюпий! Спасибо большое! Чет про ограниченную точность ВЧ я и позбиль.
![]() Последний раз редактировалось EAAlien; 13.05.2008 в 20:12. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Числа в строку | DeDoK | Общие вопросы Delphi | 8 | 07.06.2008 00:08 |
вывод числа | sergei64_89 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 25.05.2008 21:35 |
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа | Woland-itn | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 23.03.2008 21:49 |
Про числа | Акашаев Нурлан | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 12.12.2007 07:18 |
подскажите какая процедура округляет дробные числа , а не откидывает дробную часть, к | ***СкаЙ*** | Помощь студентам | 5 | 13.06.2007 16:03 |