Материал: Алгоритмический язык Turbo Pascal 7.0. Юршин Е.Д., Рог А.И

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

ПЕЧАТЬ

Рис. 4.2.6. Структурная

схема

 

Z

алгоритма возведения в

степень.

 

КОНЕЦ

Вход в процедуру

y:=0

i=i(1)…n

y:= y*x

Выход из процедуры

с переменной (y)

Рис. 4.2.7. Структурная схема процедуры.

Данным структурным схемам алгоритма соответствует следующий вариант программы:

Program_step4;

Var

m:integer; a, z,:real;

Procedure_step1 (n:integer; x:real; var y:real); Var

i:integer; Begin

y:=1; for_I:=1_to_n_do y:=y*x;

end;

Begin

Read (a, m);

if_m:=0_then_z:=1; else_if_m>0_then_step1 (m, a, z);

else_step1 (-m, 1a , z);

Write (z); End.

В данной программе обращение к процедуре step1 дважды осуществлено с помощью оператора if.

При этом, в процедуре произойдет замена формальных параметров n, x, y на фактические m, a, z. В

другом случае - n, x, y на m, 1a , z и затем в головную программу осуществляется возврат и процедуры с результатом z, который в процедуре выступает как y.

Составить второй вариант программы, используя процедуру step2 без параметров (глобальные параметры или переменные).

Program_step5;

Var

n:integer;

x,y:real;

Procedure_step2; Var

i:integer; Begin

y:=1; for_i:=1_to_n_do y:=y*x;

end;

Begin Read(n, x);

if_n:=0_then_y:=1 else if_n>0_then_step2 else;

Begin

n=-n;

x:= 1x ; step2;

End; Write (y); End.

В данном варианте программы оператор вызова процедуры осуществляет только ее вызов. Исходные данные передаются в процедуру каждый раз с помощью переменных n и x, описанных и определенных в теле

головной программы, содержащей обращение к этой процедуре с помощью глобальных (общих) переменных. Аналогично, через глобальные переменные y передаются в головную программу результата работы процедуры step2.

В связи с выше изложенным уместно сделать некоторые дополнительные разъяснения.

Дело в том, что понятия глобальных и локальных переменных введено в языке PASCAL из-за наличия в нем понятия блочной структуры, т.е. любая программа, процедура и функция представляют собой блок со своей областью описаний и могут содержать внутри этого блока описания других процедур и функций, а также обращения к ним. Таким образом, программа в целом и совокупность нескольких описанных в ней процедур и функций образуют блочную структуру. Блок, содержащий в своем разделе описаний другой блок (процедуру или функцию), называется внешним по отношению к нему. Блок же, содержащийся в разделе описаний некоторого блока, называется внутренним или

подблоком.

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

инедоступными внешним блокам, т.е. на них можно ссылаться только внутри блока, в котором они описаны.

Для пояснения сказанного приведем следующий рис., на котором изображена абстрактная структура какой-то усложненной программы, состоящей из трех блоков.

Из такой структуры следует, что переменные i, j

иk являются локальными по отношению к блоку 3 и недоступны в

блоках 1 и 2. Переменные x, y, z доступны в блоках 2, 3

инедоступны в блоке 1, т.к. по отношению к блоку 3

они являются глобальными. Переменные a, b, c доступны во всей программе и во всех процедурах, т.к.

являются глобальными по отношению

к

блокам 2,3.

 

 

Существуют и более сложные блочные

 

 

 

структуры.

 

 

Program_abc1;

Блок 1

 

Var

 

 

a, b, c:real;

 

Procedure_abc2;

Участок программы

Блок 2

Var

 

 

 

 

 

x, y, z:real;

 

 

 

выполнить (да)

 

Условие (if)

не выполнить

 

Procedure_abc3;

 

Блок 3

(нет)

Var

 

 

 

 

 

i, j, k:real;

 

 

 

 

Begin

 

 

 

Операт

Оператор 1

 

 

 

 

 

 

 

(после

(после then)

 

 

 

 

End;

 

 

 

 

Begin

 

 

 

 

 

 

 

 

 

End;

Продолжение программы

 

 

Рис.4.2.1. Структурная схема работы оператора IF.

Begin

 

 

 

 

 

 

 

 

 

 

Из этой схемы видно, что выполняется либо

End.

 

 

 

 

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

наоборот. Вполне возможны и такие формы данного

Рис. 4.2.8. Блок – схема структуры, головная

оператора.

 

 

 

 

программа – процедуры.

 

 

 

IF <условие 1> THEN

 

 

 

BEGIN

 

 

 

 

 

 

IF (условие 2) THEN (оператор 1)

END;

Источник: https://studfile.net/preview/16565609/