Program Graf1;Const N = 20; Var Dan: Array[1..N] of Integer; K, I: Integer;
Procedure GorLine(n: Integer; Sim: char); Var I: Integer; Begin For i: = 1 To n Do Write(Sim); End; { GorLine }
Begin { Основная программа } Randomize; {Инициализация генератора случайных чисел} For I: =1 To N Do { Заполнение массива } Dan[I]: = Random(75)+1; { случайными числами } For I: =1 To N Do Begin K: = Dan[i]; GorLine(K, ’*’); WriteLn; End; WriteLn(’Нажмите ENTER’); ReadLn; End. Здесь N — формальный параметр (в процедуре), K — фактический (в основной программе).
Различие между формальными и фактическими параметрами такое же, как между символами в общей формуле для нахождения корней квадратного уравнения и значениями, которые подставляются в эту формулу при решении конкретного уравнения. Другими словами, формальные параметры – это просто объекты, которые позволяют описать, что будет делать процедура. Сами действия будут выполняться над теми значениями объектов, которые передаются процедуре при ее вызове. Поэтому при вызове процедуры должны соблюдаться следующие требования: – количество передаваемых фактических параметров должно равняться количеству описанных в процедуре формальных параметров. – порядок следования фактических параметров и их типы должны соответствовать порядку следования и типам формальных параметров. Это, в частности означает, что массивы должны иметь одинаковую размерность и содержать данные одного типа.
Пример. Пусть в программе описана процедура P1 так, как это показано ниже.
Procedure P1(X, Y, Z: Real; K: Integer); ....... Begin { Тело процедуры } End; ....... Begin { Основная программа } ..... P1(A, B, C, N); { Вызов процедуры P1} ..... End. При вызове процедуры P1 будет установлено следующее соответствие между фактическими и формальными параметрами: Для обеспечения соответствия массивов и некоторых других типов данных (записей, файлов) стандарт языка Паскаль требует их описания в разделе Type. Типы, определяемые таким образом, имеют тот же статус, что и стандартные: Real, Integer и др. Описатель типов в программе располагается после описания констант и перед описанием переменных. В общем виде типы пользователя описываются так. Type Имя_типа_1=описание этого типа; Имя_типа_2=описание этого типа; ......
|