Процедура с параметром
Процедуры в других языках программирования. Рекурсия
Практическая работа № 20 «Процедуры»
Практическая работа № 21 «Рекурсивные процедуры»
Теперь представьте себе, что нужно выводить строки из знаков «минус» разной длины (5, 10 и др). Конечно, можно сделать несколько процедур, например:
Но так делать не нужно. Дело в том, что обе процедуры выводят цепочки знаков «минус» (т. е. выполняют одни и те же действия!), только разной длины. Поэтому хочется использовать всего одну процедуру, передавая ей нужную длину цепочки.
Заметим, что процедуру printLinelO можно переписать с помощью цикла:
Эта процедура делает то же самое, что и первый вариант, — выводит строку из 10 минусов и переходит на новую строку.
Видим, что процедура стала длиннее и усложнилась, появился цикл. Внутри процедуры объявлена переменная i. Эта переменная принадлежит процедуре, она называется локальной. Другие процедуры и основная программа не могут обращаться к «чужой» локальной переменной.
Где вы уже встречались со словом «локальный» в курсе информатики? Вспомните, от какого иностранного слова оно произошло.
Локальная переменная — это переменная, объявленная внутри подпрограммы. Другие подпрограммы и основная программа не могут к ней обращаться.
Локальная переменная существует только тогда, когда работает процедура. Как только работа процедуры закончена, все локальные переменные удаляются из памяти.
Чем будет отличаться процедура, рисующая 5 знаков «минус», от последнего варианта процедуры printLine10?
Если мы хотим, чтобы число повторений цикла можно было менять, в процедуре вместо числа нужно использовать переменную. И значение этой переменной нужно как-то передать процедуре. Оформляется это так:
Величина n называется параметром процедуры. В заголовке процедуры добавились круглые скобки, где записано имя параметра и его тип.
Параметр — это величина, от которой зависит работа процедуры. Параметр имеет имя и тип, с ним можно работать так же, как с локальной переменной.
Наша процедура printLine имеет один параметр, обозначенный именем n, — длину строки из знаков «минус».
При вызове такой процедуры в скобках нужно передать фактическое значение, которое должна принять переменная п внутри процедуры. Такое значение называется аргументом (или фактическим параметром).
Аргумент — это значение параметра, которое передаётся процедуре.
При вызове процедуры аргумент передаётся в скобках:
printLine (10);
Что будет выведено на экран при выполнении фрагмента программы?
printLine (7);
printLine (5);
printLine (3);
Для тестирования процедуры printLine Иван хочет написать небольшую программу, в которой длина линии вводится с клавиатуры. Где нужно поместить оператор ввода — в процедуре или в основной программе?
Следующая страница Несколько параметров