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

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

4. знакопеременное суммирование. Существует две схемы: умножение на — 1 и использование знакового флага (Р =Р;).

7.2.2. Фильтрация потока

Вообще говоря, использование рекуррентной генерации предпочтитель­нее по сравнению с функциональной, однако далеко не всегда это возможно.

Пример 7.2.3. Пусть требуется напечатать N первых простых чисел (т. е. делящихся нацело только на себя и на единицу). Функциональная генерация для решения задачи неприменима, так как не существует просто описыва­емой функции, вычисляющей простое число по его номеру. Для решения данной задачи можно воспользоваться следующим приемом: вопервых, за­менить алгоритмически трудную генерацию последовательности простых чисел генерацией охватывающего, включающего потока (мы будем генери­ровать нечетные числа), и, вовторых, встроить в обработку фильтрацию: исключение составных чисел. В программе Рпте_1\1итЬег8_1 фильтрация задается как локальная потоковая обработка, в ходе которой проверяется, делится ли анализируемое число на какоелибо из предшествующих чисел.

много излишних проверок — достаточно поверять делимость не на все з, не превосходящие лД, а лишь на простые, т. е. на те, которые ранее уже были найдены и напечатаны. Это — одно из многих обстоятельств, которое застав­ляет нас писать программы, запоминающие не только те данные, которые непосредственно нужны для следующего шага, но и историю вычислений. Конец примера 7.2.3.

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

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

Реклама