Информатика |
Глава 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, в которой реализован описанный прием для решения поставленной задачи.