- •1. Основные элементы языка
- •1.1. Основные символы
- •1.2. Зарезервированные слова
- •1.3. Разграничители
- •2. Стандартные типы скаляров
- •2.1. Целочисленный тип /Integer/
- •2.2. Байтовый тип /Byte/
- •2.3. Вещественный тип /Real/
- •2.4. Булевский тип /Boolean/
- •2.5. Символьный тип /Char/
- •3. Сруктура программы
- •3.1. Заголовок программы
- •3.2. Раздел описания
- •3.2.1. Раздел описания меток
- •3.2.2. Раздел определения констант
- •3.2.3. Раздел определения типов
- •3.2.4. Раздел описания переменных
- •3.2.5. Раздел описания процедур и функций
- •3.2.5.1. Подпрограмма - функция
- •3.2.5.2. Подпрограмма - процедура
- •3.3. Раздел операторов
- •3.3.1. Оператор присвоения
- •3.3.2. Ввод – вывод данных
- •Кафедра вычислительной техники и инженерной кибернетики
- •Кафедра вычислительной техники и
- •3.3.3. Оператор безусловного перехода /goto/
- •3.3.4. Условные операторы
- •3.3.4.1. Оператор if
- •3.3.4.2. Оператор выбора /Case/
- •3.3.4.3. Операторы повтора for, while и repeat
- •Оператор For
- •Оператор while. Цикл с предусловием
- •Пример написания программы
- •Список литературы
- •Приложение 1 Основные стандартные процедуры и функции
- •Приложение 2 Структура построения программы в языке Pascal
- •Приложение 3 Символы схем алгоритмов по гост 19.002-80 и 19.003-80
- •Содержание
3.2.5.2. Подпрограмма - процедура
В отличие от подпрограммы – функции подпрограмма – процедура в качестве результата может возвращать несколько значений. Структура процедуры имеет вид:
Procedure имя (а1;...;аn);
Раздел
описания локальных меток, констант и
переменных
B
Группа операторов
End;,
где a1;…an – список формальных параметров с указанием типа. Причем при указании типа параметра обязательно выделяют параметры, которые в ходе выполнения программы не меняют своего значения и которые могут его изменить. Если параметр меняет свое значение (обычно это результат), то перед ним ставится служебное слово Var.
Пример. Составить подпрограмму умножения двух квадратных матриц С=А*В m-го порядка.
Type Matr = array [1..10, 1..10] of real;
Var A, B, C : Matr;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Procedure MultMat (n: integer; Mat1, Mat2:Matr; Var Mat3:Matr);
var i.k,j : integer;
begin
for 1:=1 to n do
for j:=1 to n do begin
Mat3[i,j]:=0.0;
for k:=l to n do
Mat3[i,j]:=Mat3[i,j]+Mat1[i.k]*Маt2[k,j];
end;
end;
Здесь массивы Mat1 и Mat2 в ходе выполнения процедуры не меняют своих значений, поэтому для них указывается только тип. Массив Mat3 формируется в процедуре, соответственно при описании его типа перед именем ставится ключевое слово Var. Переменные i, j, k задействованы только внутри процедуры, поэтому они описаны как локальные переменные.
Вызов процедуры осуществляется по имени, с указанием фактических параметров. Так, для рассматриваемого примера обращение к процедуре может выглядеть так:
MultMat (m. A, B, С);
Результат перемножения двух матриц располагается в массиве С.
Описание процедуры служит для определения процедуры в рамках текущей процедуры или программы. Выполнение процедуры начинается с оператора процедуры и после завершения процедуры выполнение программы продолжается с оператора, следующего непосредственно за оператором вызова процедуры.
3.3. Раздел операторов
Раздел операторов является последним в блоке программы. Он задает действия, которые должна выполнить программа. Раздел операторов имеет вид сложного составного оператора, в конце которого ставится точка или точка с запятой.
Раздел операторов определяет действия, которые должна выполнить программа /или подпрограмма/. Программа представляет собой последовательность операторов, каждый из которых определяет одно действие над данным. В этом смысле Паскаль является языком последовательного программирования: операторы выполняются последовательно друг за другом и никогда не возникает ситуации, когда два каких-либо оператора выполняются одновременно. Раздел операторов начинается зарезервированным словом begin - начало и завершается словом end - конец. Между ними находятся операторы, разделенные друг от друга точкой с запятой. Операторы могут быть простыми или структурными.