Информатика и информационные технологии

© М.Е. Крекин, 1999, 2002

Глава 5
Параметры

Как вы знаете, желательно, чтобы алгоритмы были массовыми. В этой главе вы узнаете, что такое параметры и как можно составлять универсальные процедуры.


Если вы посмотрите на известные вам команды языка Лого, то заметите, что все их можно разделить на две группы: для вызова одних нужно указать только имя соответствующей команды, для вызова других -- еще некоторое значение, от которого зависит результат этой команды. Первые называют командами без параметров, вторые -- с параметрами17. В результате мы можем, например, с помощью одной и той же команды "вперед" перемещать черепашку на любое расстояние. А нельзя ли сделать что-то подобное с процедурами: чтобы, к примеру, процедурой "квадрат" можно было рисовать какие угодно квадратики? Можно. Для этого мы должны использовать процедуру с параметром:

это квадрат :а
по
повтори 4 [вп :а пр 90]
пп
конец

Чем же эта процедура отличается от предыдущего -- неуниверсального -- варианта? Раньше размер стороны квадрата -- расстояние, на которое перемещалась черепашка по команде "вперед" -- был постоянным (50 шагов). Теперь вместо числа мы поставили переменную "а".

А так как компьютер должен знать, откуда взять ее значение, в заголовке процедуры появился формальный параметр -- та же самая переменная "а". При вызове же процедуры нужно будет указать соответствующее значение -- так называемый фактический параметр. Например, "квадрат 100".

Имена переменных образуются точно так же, как имена процедур. Однако, в Лого, чтобы указать, когда мы имеем дело со значением переменной, перед ее именем (без пробела!) ставится двоеточие.

Рассмотрим чуть подробнее, что происходит при исполнении процедуры с параметром. Переменную можно представить в виде ящика, на котором наклеена табличка с именем. В этот ящик может поместиться одно значение. Компьютер в любое время может посмотреть, что там находится, а может и поменять хранящееся значение. Допустим, мы дали команду

квадрат 70

В заголовке процедуры после ее имени стоит ":а". Поэтому число 70 компьютер положит в "ящик" с такой "табличкой". Теперь начинается выполнение самой процедуры. Опускается перо, и черепашка начинает выполнять цикл. Встретившись с командой "вп :а", она смотрит, какое значение "лежит в ящике", и подставляет его в эту команду. Само значение переменной при этом не меняется.

Процедура может иметь не один параметр, а несколько. Например:

это прямоугольник :a :b
по
повтори 2 [вп :a пр 90 вп :b пр 90]
пп
конец

В этом случае при запуске процедуры количество фактических параметров и их порядок должны соответствовать формальным. Если их будет меньше, Лого выдаст сообщение: "В... не хватает входных данных", если больше -- "не знаю, что делать с...".

Контрольные вопросы

  1. Что такое "параметр"? Какие могут быть имена у переменных?
  2. Расскажи о процедурах с параметром (как записываются, как вызываются, зачем нужны).
  3. Составь программу, рисующую лестницу (используя процедуру "прямоугольник").

Примечание

  1. от греч. Parametron -- отмеривающий

[Предыдущая страница][Содержание][Следующая страница]
[Титульная страница][Новости][Макинтош][Информатика и ИТ][Об авторе]
Hosted by uCoz