Непейвода Н.Н. Программирование. Раздел 2

Непейвода Н.Н. Программирование. Страница 250

Мы выбрали самый простой метод формирования потока, чтобы не пе­регружать последующее обсуждение деталями. Тем не менее, настоятель­но советуем читателю запрограммировать все упомянутые выше методы и сравнить их с разных точек зрения (простота программы, удобство исполь­зования и др.).

Хотя решение поставленной задачи вы вполне можете выполнить само­стоятельно (что настоятельно рекомендуется сделать в качестве упражне­ния), для последующего анализа мы приведем его в виде программы М11:

Приведенное решение не требует обсуждения. Стоит разве что упомянуть о решении, в котором предварительно входной поток переписывается в мас­сив. Оно никуда не годится (это типичная ошибка начинающего, неправиль­но понимающего принцип деления задачи на подзадачи: сначала организо­вать ввод — подзадача 1, а затем искать максимум — подзадача 2). Критика такого решения даже не в том, что массив в данном случае — это всегда ограничение длины потока и дополнительный расход памяти; главное, что оно предполагает двойной просмотр потока, тогда как решение подзадач целесообразно совместить.

Интерес представляет не рассмотренная задача сама по себе, а ее разви­тие и обобщения, причем такие, решение которых можно получить из при­веденного путем последовательного уточнения, приспособления уже имею­щейся "наработки" для новой задачи.

Предлагается обсудить следующее обобщение задачи: Написать программу; которая из входного потока выбирает и печатает в порядке возрастания N самых больших чисел, где N — константа. Если различных чисел потока меньше N, то печатать все найденные числа.

Ее решение — тоже цикл, оно также должно включать запоминание мак­симумов, но не одного, а сразу нескольких. Таким образом, возникает массив (будем именовать его А). Смена же максимума на новое значение реализует­ся посредством замены элемента в А. Эта идея может быть реализована по разному.

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие "Крокодилы"

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама