Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты по информатеке (11 класс) / ответы на билеты_11 кл.doc
Скачиваний:
327
Добавлен:
02.05.2014
Размер:
544.77 Кб
Скачать

5. Вызов подпрограмм

Вид оператора вызова подпрограммы зависит от типа под­программы и синтаксиса

конкретного языка программирования. Чтобы вызвать подпрограмму, надо указать ее

имя. После него в скобках идет список фактических параметров. Тип фактических

параметров и их количество должно соответствовать описанию формальных параметров

в объявлении подпрограммы. В качестве фактических параметров могут

использоваться не только переменные, но и константы или выражения.

Вызов функции допустим в любом месте программы, щ можно указать выражение

соответствующего типа. Например, функцию можно вызвать в правой части оператора

присваивания, в выражении отношения или логическом выражении, в списке

фактических параметров другой подпрограммы и так далее. В следующем примере

переменной z присваивается длина гипотенузы прямоугольного треугольника с

катетами х и у. Для вычислений используется обращение к стандартной функции.

z : =sqrt(x*x+y*y) ; (Паскаль)

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

процедуру Р, принимающую в качестве параметров два целых числа, можно следующим

образом.

Р(1,2) ; (Паскаль)

6. Программирование вспомогательных алгоритмов

Описание вспомогательных алгоритмов включается в исходный текст программы. В

большинстве языков программирования требуется, чтобы подпрограмма была описана

до того, как она вызывается в первый раз.

Описание подпрограммы состоит из заголовка, тела, содер­жащего выполняемые

операторы, и завершения. Заголовок содержит имя подпрограммы и описание

формальных параметров. Для функции надо также указать тип возвра­щаемого

значения.

Boт пример записи функции, вычисляющей квадрат целого числа, переданного в

качестве параметра.

Паскаль

function Square(x: Integer): Integer;

begin

Square:=x*x;

end;

Тело функции располага­ется между операторами begin и end.

В языке Паскаль значение, возвращаемое функ­цией, надо присвоить переменной, имя

которой совпадает с именем функции. Внутри тела функции эта переменная может

использоваться только в левой части оператора при­сваивания.

Способ записи процедур иной. В описании процедуры ис­пользуются иные ключевые

слова. Кроме того, нет необ­ходимости вычислять возвращаемое значение. Далее

приведено описание процедуры, осуществляющей вывод суммы двух целых чисел,

переданных в процедуру как па­раметры.

Паскаль

procedure printsum(x, у:integer);

begin

writeln(x-y);

end;

Обычно предполагается, что описание подпрограммы дол­жно быть помещено до ее

первого использования — это удобно транслятору. Однако это может быть по

каким-то причинам неудобно программисту. Некоторые языки про­граммирования

допускают размещение описания подпро­граммы после ее первого использования, но в

этом случае они требуют упрощенного объявления подпрограммы до ее первого

использования.

В языке Паскаль в этом случае повторяют заголовок про­цедуры. Отсутствие после

него ключевого слова begin гово­рит о том, что это не описание, а только

объявление:

procedure printsum(x, у: Integer);

Объявление заранее информирует транслятор о парамет­рах подпрограммы. Это

позволяет правильно обработать вызовы этой подпрограммы.

Прекращение выполнения подпрограммы и возврат в вызвавшую программу

производится, когда управление попадает на последний оператор подпрограммы. Это

не всегда удобно. Поэтому имеется возможность прервать выполне­ние подпрограммы

и вернуть управление в вызывающую программу немедленно. Для функции к этому

моменту уже должно быть вычислено возвращаемое ею значение.

В Паскале – это оператор EXIT.