- •Элементы технологии обработки информации с помощью эвм. Модели решения функциональных и вычислительных задач.
- •Алгоритмический язык Pascal. Алфавит языка, лексика, структура программы.
- •Общая структура Pascal-программы
- •Выражения. Операции.
- •2. Описание двумерных массивов
- •5. Организация сложных циклов.
- •2. Процедуры и функции. Блочная структура программы. Параметры.
- •Организация связи основной программы с подпрограммой
- •1. Структура подпрограмм
- •2. Функция
- •2.1. Структура функции
- •2.2. Обращение к функции
- •2.3. Программирование с использованием функции
- •3. Локальные и глобальные переменные.
- •4. Параметры - массивы.
- •5. Процедуры
- •5.1. Структура процедуры
- •5.2. Обращение к процедуре
- •5.3. Параметры-переменные и параметры-значения
1. Структура подпрограмм
Структура подпрограмм на ПАСКАЛЕ имеет вид:
PROCEDURE (либо FUNCTION) <имя> - заголовок;
LABEL - раздел описания меток
CONST - раздел описания констант
TYPE - раздел описания типов
VAR - раздел описания переменных
BEGIN
<оператор>
END;
Как видно отсюда, она аналогична структуре основной программы. Отличие лишь в заголовке и в том, что программный модуль заканчивается точкой с запятой ”;”, а не точкой, как в основной программе.
Подпрограммы описываются в специальном разделе описательной части программы вслед за разделом переменных.
2. Функция
Функция, как и процедура есть некоторая последовательность операторов, оформленных в виде отдельного программного модуля. Она используется, когда в подпрограмму выносится участок вычислений, предназначенный для получения одного результата (единственного скалярного значения).
2.1. Структура функции
Функция состоит из заголовка функции и ее тела. Заголовок функции имеет вид:
FUNCTION имя (P1:T1; ... Pn:Tn):TR;
FUNCTION - ключевое слово;
имя - имя функции, задаваемое пользователем;
Pi - необязательный список формальных параметров (исходных данных); в списке формальные параметры, в качестве которых могут быть использованы имена переменных, других подпрограмм, перечисляются через запятую.
Ti - тип параметров( REAL, INTEGER и т.п.);
TR - тип результата (тип имени функции).
Пример 1
FUNCTION FI (X,Y:REAL; R:INTEGER):REAL;
Заголовок функции с именем FI, тип функции задан ключевым словом REAL; формальные параметры X и Y описаны как переменные вещественного типа, параметр R как переменная целого типа.
В содержательной части функции (ее теле) имени функции обязательно должно быть присвоено значение результата, вычисленное подпрограммой. Объясняется это тем, что результат счета передается в вызывающую программу посредством имени функции.
Общая структура функции может быть записана так:
FUNCTION имя (P1:T1; P2:T2;. Pn:Tn):TR;
. . .
разделы описаний
. . .
BEGIN
оператор
. . .
оператор
имя := результат;
END;
2.2. Обращение к функции
Описание функций, расположенное в разделе описаний программы, само по себе никаких действий не вызывает. Чтобы исполнить функцию, необходимо в нужном месте программы поместить обращение к ней. Обращение осуществляется аналогично обращению к стандартным функциям (SIN, COS и т.п.).
Структура обращения к функции имеет вид
имя(b1, b2,... bn);
где имя - имя вызываемой функции, b1, b2,... bn - список фактических параметров, численные значения которых передаются в функцию.
Обращение к функции записывается в вызывающем операторе. Вызывающими операторами могут быть операторы присваивания, передачи управления, вывода, т.е. операторы, которые в своем составе содержат выражения. В том месте выражения, где это необходимо, записывается имя функции, вслед за которым в скобках перечисляются фактические параметры. Фактическими параметрами здесь могут быть константы, выражения, переменные (в качестве переменных могут быть использованы, например, как элементы массива, так и массивы целиком), имена других функций.
Пример 2
PROGRAM AL;
VAR A,B,C:REAL;
FUNCTION FI (X :REAL):REAL;
BEGIN
F:=X*X-2*X+1.5;
END;
BEGIN
READ (A,B,C);
Z:=(F(A)+F(B))/F(C);
WRITE (Z);
END.
В программе описана функция с именем F, вещественного типа (REAL). В качестве формального параметра использована переменная X , вещественного типа. Обращения к функции F(A),F(B) и F(C) выполнены в операторе присваивания, здесь A,B,C -фактические параметры. В результате выполнения этого оператора переменной Z будет присвоено численное значение выражения:
A2-2A+1,5+B2-2В+1,5
C2-2C+1,5
При выполнении происходит замещение формальных параметров фактическими значениями