Информатика |
Глава 9. Основные приемы программирования | назад оглавление вперед |
ГЛАВА 9. ОСНОВНЫЕ ПРИЕМЫ ПРОГРАММИРОВАНИЯ
В этой главе рассматриваются основные приемы разработки и проверки правильности программ, применение которых необходимо при решении на ЭВМ любых даже самых простых задач.
В качестве примеров здесь приводятся программы на языке Basic. Basic очень похож на “естественный” язык, но в качестве служебных слов в Basic вместо русских используются английские слова: IF — если, GO ТО — идти к, SТОР — закончить вычисления, INPUT — задать (ввести) значения переменных. Будет использоваться также оператор PRINT — печатать — для вывода результатов вычислений на экран дисплея. Полное описание языка Basic дается в главе 3.
9.1. Организация циклов
Как уже отмечалось ранее, существуют два основных вида цикла — До и Пока. Рассмотрим их подробнее.
В языке Basic циклу До (рис. 8.3) соответствует следующая структура программы:
Циклу Пока (рис. 8.4) соответствует структура программы:
Рассмотрим следующую программу
10 P=0
20 PRINT P,
P*P
30 Р=Р+1
40 IF P<=10
GО ТО 20
(*—знак умножения, <= употребляется вместо ).При выполнении программы на экран дисплея выводятся числа от 0 до 10 и их квадраты.
Это пример цикла До. Здесь операторы 20, 30 образуют тело цикла. Собственно телом цикла является оператор 20. Оператор 30 относится к операторам, организующим цикл (наряду с операторами 10 и 40). Оператор 40— оператор условного перехода — осуществляет после каждого прохода цикла проверку условия выхода из цикла (вернее сказать — условия продолжения цикла). Оператор 10 осуществляет начальные присваивания и обеспечивает возможность выполнения цикла при первом его прохождении. В цикле — многократно — выполняются операторы 20—40.
Для организации цикла в этой программе используется переменная Р, которая называется управляющей переменной цикла или параметром цикла. Для организации цикла нужно знать начальное значение управляющей переменной Рнач, конечное значение управляющей переменной Ркон и шаг ее изменения Н.
Значения Рнач, Ркон, Н назовем параметрами цикла. При этом количество повторений цикла определяется по формуле
.
Это значение можно использовать для контроля правильности организации цикла.
Перед тем как писать программу, содержащую цикл, целесообразно заполнить таблицу такого вида:
Таблица 9.1. Управляющая переменная и параметры цикла
Управляющая переменная цикла |
Начальное значение |
Конечное значение |
Шаг изменения |
Количество повторений цикла |
Р |
0 |
10 |
1 |
11 |
Таблица заполнена для управляющей переменной Р, использованной в предыдущей программе.
Дополним рассмотренную программу.
1. Предусмотрим печать заголовка таблицы оператором
PRINT “ЧИСЛО”, “КВАДРАТ ЧИСЛА”
Этот оператор должен быть расположен до входа в цикл.
2. Предусмотрим вывод пустой строки после заголовка оператором
3. В конце программы разместим оператор STOP, который прекращает выполнение программы, когда будет Р > 10, и перенумеруем строки программы стандартным образом, изменив также номер строки в операторе условного перехода.
Тогда программа будет иметь вид
10 PRINT
“ ЧИСЛО”, “ КВАДРАТ ЧИСЛА”
20 PRINT
30 Р=0
40 PRINT P,
P*P
50 P=P+1
60 IF P<=10
GO TO 40
70
STOP
При выполнении этой программы на экране будут высвечиваться результаты:
ЧИСЛО |
КВАДРАТ ЧИСЛА |
0 |
0 |
1 |
1 |
2 |
4 |
3 |
9 |
4 |
16 |
5 |
25 |
6 |
36 |
7 |
49 |
8 |
64 |
9 |
81 |
10 |
100 |
Как самому составить программу решения задачи, требующей использования циклов? Рассмотрим порядок разработки программы на примере.
Пример. Составить таблицу перевода миль в километры для расстояний от 5 до 75 миль с шагом 5. 1 миля составляет 1,609 км.
С чего начать разработку программы?
1. Сначала нужно решить, в каком виде мы хотим получить результат. Допустим, что это должна быть таблица с заголовком, например, такого вида:
Мили |
Км |
5 |
8.045 |
10 |
16.09 |
…. |
…. |
75 |
120.675 |
2. Выделить
повторяющиеся действия.
Для
рассматриваемой задачи для 5 миль, для 10, для 15 и т. д. нужно печатать расстояние
в милях и соответствующее ему расстояние в километрах.
3. Продумать организацию цикла для выполнения повторяющихся действий требуемое число раз.
Для организации цикла необходимо выбрать управляющую переменную. Для нашего примера это может быть количество миль. Обозначим управляющую переменную через М и заполним таблицу 9.2.
Таблица 9.2
Управляющая переменная цикла |
Начальное значение |
Конечное значение |
Шаг изменения |
Количество повторений цикла |
М |
5 |
75 |
5 |
15 |
Для вывода заголовка таблицы по аналогии с предыдущей программой используем два оператора, один из которых выведет на экран заголовок, а второй обеспечит вывод пустой строки перед печатью самих результатов.
Таким образом, программа может быть составлена в виде
10 PRINT “МИЛИ”,”КМ”
20 PRINT
30 M=5
40 PRINT М,
1.609*Н
50 М=М+5
60 IF М<=75
GO ТО 40
70
SТОР
Пояснения к программе. Оператор 10 печатает заголовок.
Оператор 20 выводит пустую строку.
Оператор 30 устанавливает начальное значение управляющей переменной цикла.
Оператор 40 составляет тело цикла и при каждом изменении переменной М выводит на экран ее значение (количество миль) и его эквивалент в километрах.
Оператор 50 увеличивает текущее значение управляющей переменной на шаг, равный 5.
Оператор 60 осуществляет проверку, пройдено ли последнее значение.
Оператор 70 прекращает выполнение программы.
В результате выполнения этой программы на экране появится следующая таблица:
МИЛИ |
КМ |
5 |
8.045 |
10 |
16.09 |
15 |
24.135 |
20 |
32.18 |
25 |
40.225 |
30 |
48.27 |
35 |
56.315 |
40 |
64.36 |
45 |
72.405 |
50 |
80.45 |
55 |
88.495 |
60 |
96.54 |
65 |
104.585 |
70 |
112.63 |
75 |
120.675 |
В языке Basic имеются операторы цикла FOR и NEXT (FOR — для, NEXT — следующий), которые обеспечивают многократное выполнение операторов, расположенных между ними и образующих тело цикла.
С использованием операторов FOR, NEXT предыдущая программа будет иметь вид
10 PRINT
“МИЛИ”,”КМ”
20 PRINT
30 FOR M=5
TO 75 STEP 5
40 PRINT M,
1.609*M
50 NEXT M
60
STOP
В операторе FOR используются еще два служебных слова ТО — до, STEP — шаг.