Урок №23. Процедуры с параметрами.
Построим теперь с помощью Черепахи такую фигуру, как на рис. 3.11, где числа обозначают длины сторон квадратов.

Рисунок состоит из трёх фигур. У них есть общее: одинаковая форма (все они квадраты). Но есть и различия: у всех квадратов разные длины сторон. Величину, значение которой отличает один квадрат от другого, называют параметром.
Параметр — это величина, значение которой отличает один объект от другого.
В нашей задаче параметр квадрата — это длина его стороны. Нам бы хотелось ввести новую команду Квадрат, с помощью которой мы могли бы рисовать квадраты любого размера. Например, выполнив команду
Квадрат( 40 );Черепаха должна нарисовать квадрат со стороной 40 шагов.
Вспомним уже знакомую процедуру, которая рисует квадрат со стороной 40:
алг Квадрат
нач
опустить хвост
нц 4 раз
вперед(40)
вправо(90)
кц
поднять хвост
кон
В строке, которая подчеркнута, задаётся размер квадрата — длина его стороны. В новой процедуре там не может быть число. Эта величина должна изменяться, поэтому в скобках после команды вперёд нужно поставить переменную]
Откуда же программа возьмёт нужное значение этой переменной? Мы хотим задавать длину стороны в скобках при вызове процедуры Квадрат. Поэтому и при описании процедуры нужно в скобках записать имя переменной. Перед ним записывают тип переменной, в нашем случае это целое число;
алг Квадрат (цел а)
нач
опустить хвост
нц 4 раз
вперед(а)
вправо(90)
кц
поднять хвост
кон
Это уже готовая процедура, с помощью которой можно рисовать квадраты любого размера. Здесь переменная а называется параметром процедуры, потому что она позволяет изменить результат работы процедуры.
Параметры процедуры — это данные, которые изменяют результат работы процедуры.
Когда мы вызываем эту процедуру:
Квадрат( 40 );число 40 подставляется везде вместо имени а, и в результате Черепаха рисует квадрат со стороной 40 шагов.
Параметры — это внутренние (локальные) переменные процедуры, к которым можно обращаться только внутри этой процедуры. Другие процедуры и основная программа ничего про них «не знают».
Теперь можно написать основную программу, которая с помощью процедуры строит фигуру, показанную на рис. 3.11.
Как видно из текста процедуры, Черепаха останавливается в том же месте и в том же положении, в каком она была перед вызовом процедуры. Поэтому после рисования первого квадрата нужно перейти вперёд на 40 шагов, а после рисования второго — вперёд на 30:
использовать Черепаха
алг Пирамида
нач
Квадрат(40)
вперед(40)
Квадрат(30)
вперед(30)
Квадрат(20)
кон
алг Квадрат (цел а)
нач
опустить хвост
нц 4 раз
вперед(а)
вправо(90)
кц
поднять хвост
кон
Не забудьте, что после основной программы нужно поместить расшифровку процедуры.