Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_Информатика.doc
Скачиваний:
6
Добавлен:
16.04.2019
Размер:
738.82 Кб
Скачать

3. Локальные и глобальные переменные.

В описательной части как основной программы, так и подпрограммы объявляются метки, константы, переменные и другие величины. Те из них, что объявлены в головной программе называются глобальными, а величины, объявленые в подпрограмме- локальными.

Глобальные величины оказывают влияние на всю программу, они доступны в любом месте программы, в том числе в любой ее подпрограмме.

Локальные(вспомогательные) величины доступны только внутри подпрограммы. Обращение к ним в любом месте, кроме подпрограммы, где она определена невозможно.

Пример 5. В предыдущей программе PL (примера 4) локальной переменной функции Str является p. Она доступна только внутри функции Str и не доступна в основной программе. Это значит, что при обращении к ней в основной программе при трансляции будет выдано сообщение об ошибке, а именно "p-неопределенный идентификатор".

Имена в программах, содержащих подпрограммы, целесообразно выбирать так, чтобы имена локальных и глобальных параметров не совпадали. Это делает программу нагляднее.

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

4. Параметры - массивы.

Типом любого параметра в списке формальных параметров подпрограммы на Паскале может быть только стандартный или ранее объявленный тип.

Поэтому если передается весь массив следует первоначально описать его тип в разделе описания типов, который начинается со служебного слова TYPE.

В общем случае описания массивов имеет вид

TYPE имя=ARRAY[k..m] OFT;

VAR V: имя;

где TYPE (тип),ARRAY(массив),OF(из)-ключевые слова,

имя-имя объявляемого типа, задаваемое пользователем;

T-тип элементов массива;

k,m- нижняя и верхняя граница индекса, значения будут задаваться константой целого типа;

V-имя массива.

Пример 6.

TYPE int=ARRAY[1..60]of real;

VAR x,y:int;

здесь переменные x,y описаны как переменные типа int представляют собой одномерный массив из 60 элементов действительного типа.

Пример 7.

....

TYPE mas=ARRAY[1..10]OF REAL;

FUNCTION ST(a:mas):REAL

....

здесь в качестве формального параметра функции ST использован весь одномерный массив a, длина 10, его тип mas описан предварительно в разделе TYPE, согласно правилам языка Паскаль.

Пример 8. Вычислить значения: .

Вычисление суммы оформим в виде функции.

Рис. D Схема алгоритма примера 8

program FS;

const nK = 50;

type mas = array[1..nK] of real;

var t,p:mas;

i:integer;

r:real;

function Sum(z:mas;k:integer):real;

var j:integer;

begin

Sum:=0;

for j:=1 to k do

Sum:=Sum+z[j];

end;

begin

for i:=1 to 30 do read(p(i));

for i:=1 to 20 do read(t(i));

r:=sum(p,20)/sum(t,30);

write('r=',r);

end.

5. Процедуры

Процедура универсальна и используется в тех случаях, когда необходимо в подпрограмме получить не один результат.

5.1. Структура процедуры

Процедура состоит из заголовка процедуры и ее тела. Заголовок процедуры имеет вид:

PROCEDURE имя (VAR P1:T1; P2:T2;... Pn:Tn);

где PROCEDURE (процедура) и VAR (переменная) - ключевые слова;

имя - имя процедуры, задаваемое пользователем;

Pi - необязательный список формальных параметров;

Ti - тип параметров;

Пример 9.

PROCEDURE ML (VAR Z:REAL; X:REAL);

Заголовок процедуры с именем ML, формальными параметрами которой будут переменные Х и Z типа real.

Общая структура процедуры может быть записана так

PROCEDURE имя (VAR P1:T1; P2:T2;... Pn:Tn);

раздел описаний

BEGIN

оператор

...

оператор

END;

Здесь список формальных параметров - перечень имен для обозначения исходных данных и результатов работы процедуры с указанием их типов.