|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.06.2008, 09:51 | #1 |
Форумчанин
Регистрация: 03.01.2008
Сообщений: 102
|
Найти два наибольших отрицательных числа
Задание: найти в массиве два наибольших отрицательных числа.
Код:
P.S. Задание на сортировку.
Теория без практики мертва и бесплодна, практика без теории невозможна и пагубна.
Последний раз редактировалось Makarov; 14.06.2008 в 10:15. |
14.06.2008, 10:38 | #2 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
Может изменить порядок сортировки ?
Отрицательные числа по убыванию. -0.13 -0.50 -0.72 -1.38 0 0.25 0.75 ... тогда нужные нам числа будут в начале массива. Для этого нужно изменить условие сравнения: Код:
достаточно цикла for i:=1 to 2 ------------------------------- Хм.. Понятней явно не стало. |
14.06.2008, 11:25 | #3 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
1.Сортируем массив по убыванию.
2. for i:=1 to n do if (a[i]>=0)and(a[i+1]<0) then writel(a[i+1]:6:2,a[i+2]:6:2); |
14.06.2008, 12:05 | #4 |
Форумчанин
Регистрация: 03.01.2008
Сообщений: 102
|
Да направление сортировки можно изменить. Но надо найти 2 наибольших числа из отрицательных, как это проще сделать, после сортировки или во время?
Теория без практики мертва и бесплодна, практика без теории невозможна и пагубна.
|
14.06.2008, 12:09 | #5 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Конечно проще после сортировки, как я и написал.
Сразу за положительными и нулевыми элементами пойдут отрицательные и первые два из них будут наибольшими. |
14.06.2008, 13:04 | #6 | |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
Цитата:
-0.13 -0.50 -0.72 -1.38 0 0.25 0.75 ... Искать их не нужно - они будут первыми в массиве. Именно поэтому можно не сортировать до конца, а прерывать сортировку, как только первые два числа встали на свое место. Последний раз редактировалось alexBlack; 14.06.2008 в 13:24. |
|
14.06.2008, 16:27 | #7 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Придумают же... сортировки какие-то
Код:
Последний раз редактировалось B_N; 14.06.2008 в 17:55. Причина: чуть исправил |
14.06.2008, 17:53 | #8 |
Форумчанин
Регистрация: 03.01.2008
Сообщений: 102
|
Всем большое спасибо разобрался.
Теория без практики мертва и бесплодна, практика без теории невозможна и пагубна.
|
14.06.2008, 17:57 | #9 |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
А почему не написать так:
Код:
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Паскаль. найти все числа кратные трем и посчитать их количество | __k1ll3r__ | Помощь студентам | 6 | 02.04.2008 16:37 |
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа | Woland-itn | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 23.03.2008 21:49 |
Найти количество различных цифр данного натурального числа. | stalker | Паскаль, Turbo Pascal, PascalABC.NET | 10 | 22.05.2007 17:45 |
как найти корень из числа | $Дмитрий | Общие вопросы Delphi | 7 | 26.04.2007 13:40 |