Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
инфа / Vse_voprosy_po_infe.docx
Скачиваний:
58
Добавлен:
31.03.2015
Размер:
263.56 Кб
Скачать

Операции над записями Паскаля (это важно!)

Единственная операция, которую можно произвести над однотипными записями Паскаля – это присваивание.

Все другие операции производятся над отдельными полями записи

Вопрос №24

Подпрограммы. Процедуры . Функции

Общая структура подпрограммы

Подпрограмма это часть программы, оформленная в виде отдельной синтаксической конструкции и снабженная именем. "Вызов" подпрограммы, т.е. выполнение действий, заданных в подпрограмме в виде операторв, может быть произведен в некоторой точке программы посредством указания имени этой подпрограммы. Кроме задания последовательности действий, любая подпрограмма может содержать описание некоторой совокупности локальных объектов - констант, типов, переменных и т.д. Эти объекты предназначены для организации действий внутри подпрограммы и имеют смысл (т.е. доступны или видимы) только внутри данной подпрограммы [1].

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

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

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

Описание процедуры:

PROCEDURE ИмяПроцедуры ( СписокФормальныхПараметров ); LABEL   Перечисление меток внутри тела процедуры CONST   Описание локальных констант TYPE   Описание локальных типов VAR   Описание локальных переменных BEGIN   Тело процедуры END.

Пример описания и вызова процедуры:

PROGRAM Example_of_Procedure; USES CRT;

PROCEDURE ChangeColor( C1, C2 : Word ); BEGIN    TextColor(C1);    TextBackGround(C2) END; BEGIN   ChangeColor( Yellow, Blue ); { Вызов процедуры }   ClrScr; { Ощичаем экран }   ...    ... END.

Описание функции:

FUNCTION ИмяФункции ( СписокФормальныхПараметров ) : ТипЗначения; LABEL   Перечисление меток внутри тела процедуры CONST   Описание локальных констант TYPE   Описание локальных типов VAR   Описание локальных переменных BEGIN   Вычисление значения функции;   ИмяФункции := ВычисленноеЗначение END.

Для присвоения функции вычисленного значения ее имя должно хотя бы раз появиться в левой части оператора присванивания в теле самой функции (ИмяФункции := ВычисленноеЗначение).

Пример описания и вызова функции:

PROGRAM Example_of_Function; USES CRT; VAR a : Integer;

FUNCTION Factorial( n : Integer ) : LongInt; VAR    F : LongInt;   k : Integer; BEGIN   F:=1;    for k:=1 to n do F:=F*k;   Factorial := F END; BEGIN   ClrScr;   Write('Введите целое число a: ');    ReadLn(a);   Writeln('Факториал а = ', Factorial(a) );   ReadLn; END.

Соседние файлы в папке инфа