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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2010, 14:02   #1
Timoshka_
 
Регистрация: 31.10.2010
Сообщений: 4
По умолчанию найти к наибольших

вроде бы простая задача а я не понимаю как сделать((
среди элементов массива Z(m) найти k наибольших (k<<m)
поиск осуществить за один просмотр (паскаль)

Последний раз редактировалось Timoshka_; 31.10.2010 в 14:10.
Timoshka_ вне форума Ответить с цитированием
Старый 31.10.2010, 14:20   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Ну, например, так.
Завести массив из K элементов (например, Biggest).
Заполнить его первыми K элементами из Z
Отсортировать.
дальше в цикле i:=k+1 to m
if Z[i] > любого элемента в массиве Biggest, то вставить его в массив Biggest на место того элемента, больше которого текущее значение, остальные элементы сдвинуть на один (последний выбрасывается)
всё. в массиве Biggest k наибольших элементов (причём в порядке убывания...)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 31.10.2010, 14:25   #3
Timoshka_
 
Регистрация: 31.10.2010
Сообщений: 4
По умолчанию

а можно маленькую программу если числа совпадать будут?
их надо убрать же!!!
и как задать число K<<m
можно ли так k:=Trunc(m/2.5);
Timoshka_ вне форума Ответить с цитированием
Старый 31.10.2010, 19:07   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
а можно маленькую программу если числа совпадать будут?
не понял, что Вы просите... Какую программку?
А если числа будут совпадать, то ничего страшного. Ведь об этом в условии ничего не сказано.
Значит можно решать как Вам удобнее.
например, даны числа 9 8 2 8 3 7 6 5 3
угажите ТРИ наибольших числа?

впрочем, с повторами можно бороться. Просто это немного усложнит код решения...

Цитата:
и как задать число K<<m
а что означает "меньше"-"меньше" ? Намного меньше?
Я думаю, что K должно вводится оператором:
WriteLn('Введите K:');
Readln(K);

Цитата:
можно ли так k:=Trunc(m/2.5);
Так Вы же программист! Хотите задавать K так - задавайте. Лишь бы Вас (и Вашего преподавателя) такой подход устраивал.
я лично не возражаю! :-)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 31.10.2010, 21:12   #5
Timoshka_
 
Регистрация: 31.10.2010
Сообщений: 4
По умолчанию

спасибо))
очень благодарна)
Timoshka_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фильтр-выборка 9 наибольших/наименьших значений PARTOS Microsoft Office Excel 2 27.10.2010 13:30
Найти пять наибольших элементов одномерного массива целых чисел. Serega-ru Помощь студентам 2 20.10.2010 10:10
Найти произведение первых трёх наибольших элементов Матриц - паскаль Sandrewz Помощь студентам 4 15.10.2010 20:25
Найти два наибольших отрицательных числа Makarov Паскаль, Turbo Pascal, PascalABC.NET 8 14.06.2008 17:57