Процедуры с параметрами
Практическая работа № 26 «Переменные»
Практическая работа № 27 «Процедуры с параметрами»
Какое из двух высказываний по поводу вспомогательных алгоритмов (процедур), верно?
а) Процедура всегда выполняет одни и те же действия.
б) Процедура может выполнять разные действия.
Часто бывает нужно несколько раз выполнить похожие, но чем-то отличающиеся действия. В этом случае тоже можно составить процедуру, но более сложного типа.
Рассмотрим задачу, показанную на рис. 6.27.
Рис. 6.27
Если бы все ряды были одинаковой длины (скажем, 4 клетки), мы могли бы написать процедуру (вспомогательный алгоритм) так:
алг Ряд
нач
нц 4 раз
вверх; закрасить
кц
кон
Но длина ряда меняется, поэтому нужно сделать её переменной, обозначив каким-то именем. Кроме того, надо как-то передать значение длины ряда из основной программы в процедуру (иначе как исполнитель узнает, какая длина ряда нужна именно сейчас?). При вызове мы хотели бы записать, например, так:
Ряд (4)
Чтобы такая запись сработала, в заголовке процедуры нужно указать, что она принимает параметр — значение, от которого зависит работа алгоритма. В нашем случае параметр — это количество клеток, которые нужно закрасить:
алг Ряд (цел N)
нач
нц N раз
вверх; закрасить
кц
кон
В заголовке процедуры
Ряд (цел N)
записано, что процедуре нужно передать (в скобках) целое число. Это значение будет записано во внутреннюю (локальную) переменную с именем N. Эту процедуру «знает» только процедура Ряд.
Параметры — это данные, которые передаются в процедуру. Каждый параметр имеет имя и тип.
Закончите программу для решения задачи, показанной на рис. 6.27.
Включите в процедуру команды для перехода в начало следующего ряда, так чтобы основную программу можно было записать так:
алг Трапеция2
нач
Ряд(5)
Ряд(4)
Ряд(3)
кон
Числа, который записаны в скобках при вызове процедуры Ряд, — это фактические значения параметров, которые также называют аргументами.
В чём разница между результатами работы программ Трапеция и Трапеция2? Сравните:
а) какие клетки будут закрашены;
б) где остановится Робот.
Следующая страница Выводы. Интеллект-карта