Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
9-11 лек 18-19 ПРОЦЕД И ФУНКЦ.doc
Скачиваний:
5
Добавлен:
23.11.2019
Размер:
146.94 Кб
Скачать

6

-

Лекция 18-19 Процедуры и функции

1. Процедура 2. Функция 3. Формальные и фактические параметры

3.1. Параметры-значения 3.2. Параметры-переменные 3.3. Параметры-константы 3.4. Параметры без типа 3.5. Массивы и строки открытого типа 3.6. Параметры-процедуры и параметры-функции

4. Процедура EXIT 5. Директивы подпрограмм

6. Рекурсивные процедуры и функции

В языке Паскаль имеется две разновидности подпрограмм:

- процедуры

- функции.

Структура любой подпрограммы аналогична структуре всей программы. Подпрограмма должна быть описана до того, как она будет использована в программе или другой подпрограмме.

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

-локальные параметры, объявленные внутри подпрограммы и доступные только ей самой,

-глобальные - объявленные в основной программе и доступные как программе, так и всем ее подпрограммам.

Обмен информацией между основной программой и подпрограммой может осуществляться только с помощью глобальных параметров.

Подпрограмма может использовать глобальные параметры двояким образом:

-непосредственно обращаясь к глобальному параметру по его имени

-используя механизм формальных параметров.

Подпрограмма может непосредственно использовать любые глобальные параметры за исключением тех, которые имеют те же имена, что и ее локальные параметры.

1. Процедура

Подпрограмма-процедура предназначена для выполнения какой-то законченной последовательности действий.

Любая процедура начинается с заголовка. В отличие от основной программы заголовок в процедуре обязателен. Он состоит из зарезервированного слова procedure, за которым следует идентификатор имени процедуры, а далее в круглых скобках - список формальных параметров:

procedure <имя процедуры>(<список формальных параметров>);

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

Пример. Процедура ввода N целых чисел. Пусть в основной программе определен тип:

type tArr = array[1..100] of Integer;

Процедура может иметь вид:

procedure InpInt(var Mas: tArr; N: Integer);

{заголовок процедуры со списком формальных параметров проверка N <= 100 - в основной программе}

var i: Integer;

{локальный параметр - параметр цикла}

begin

 

   Writeln ('Ввведите', N, 'целых чисел');

 

   for I:= 1 to N do

 

     Read (Mas[i])

 

end;

 

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

Например:

InpInt(M, К);

означает, что вызывается процедура Inplnt для ввода К целых чисел в массив М. Естественно, что в этом случае параметр К целого типа, а М - массив типа tArr.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]