Информатика
Глава 9. Основные приемы программирования назад оглавление вперед

9.6. Составление программ для обработки потока данных

Часто требуется обработать одинаковым образом данные, поступающие в ЭВМ последовательно друг за другом. Например, найти средний рост учеников класса, вводя по очереди рост каждого ученика, или найти суммарную стоимость всех товаров, купленных одним покупателем в универсальном магазине, и т. п. Рассмотрим два способа организации таких программ:

Пример. В классе N учеников. Определить средний рост учеников класса, вводя в ЭВМ по очереди рост каждого ученика.
Решение. Рост учеников будем суммировать в переменной" 5, а затем разделим эту сумму на общее число учеников N.
Далее приводится программа 9.8 для решения этой задачи.

Программа 9.8

10 PRINT "СКОЛЬКО УЧЕНИКОВ В КЛАССЕ ?"
20 INPUT N
30 S=0
40 FOR I=1 ТО N
50 PRINT "ВВЕДИТЕ РОСТ СЛЕДУЮЩЕГО УЧЕНИКA”
60 INPUT P
70 S=S+P
80 NЕХТ I
90 IF N=0 GO TO 130
100 S=S/N
110 PRINT “СРЕДНИЙ РОСТ УЧЕНИКОВ=”;S
120 STOP
130 PRINT “В КЛАССЕ НЕТ УЧЕНИКОВ”
140 STOP

Список используемых переменных *). Исходные данные:

N — число учеников, Р — рост одного ученика.
Результат: S — средний рост учеников класса.
Вспомогательные переменные: I — счетчик числа учеников (управляющая переменная цикла).
Чтобы получить результат работы этой программы, нужно ввести все N данных.
Пример. Определить средний рост учеников класса. Для окончания ввода, ввести 0.

Далее приводится программа 9.9 для решения этой задачи.

Программа 9.9

10 S=0
20 I=0
30 PRINT "ВВЕДИТЕ РОСТ СЛЕДУЮЩЕГО УЧЕНИКА"
40 PRINT "ДЛЯ ОКОНЧАНИЯ ВВОДА ИСПОЛЬЗУЙТЕ НОЛЬ"
50 INPUT Р
60 IF Р=0 GO TO 100
70 S=S+P
80 I=I+1
90 GO TO 30
100 IF I=0 GO TO 140
110 S=S/1
120 PRINT "СРЕДНИЙ РОСТ УЧЕНИКОВ = ";S
130 SТОР
140 PRINT "В КЛАССЕ НЕТ УЧЕНИКОВ"
150 SТОР

Список используемых переменных. Исходные данные:

P- рост одного ученика.
Результат: 8 — средний рост учеников.
Вспомогательные переменные: I — число учеников.

Если общее число данных произвольно (второй способ), но при каждом прохождении цикла вводится и обрабатывается не одно (как в последнем примере), а два или более данных, то для удобства работы с программой одно данное целесообразно вводить отдельно от других и использовать его для организации цикла. Этот прием иллюстрируется в следующем примере.

Пример. Определить средний рост и вес учеников класса.

Решение. Рост и вес каждого ученика будем вводить различными операторами INPUT. Для окончания ввода в переменную для роста введем 0. Далее приводится программа 9.10, в которой реализован описанный прием для решения поставленной задачи.


назад оглавление вперед