- •Элементы технологии обработки информации с помощью эвм. Модели решения функциональных и вычислительных задач.
- •Алгоритмический язык Pascal. Алфавит языка, лексика, структура программы.
- •Общая структура Pascal-программы
- •Выражения. Операции.
- •2. Описание двумерных массивов
- •5. Организация сложных циклов.
- •2. Процедуры и функции. Блочная структура программы. Параметры.
- •Организация связи основной программы с подпрограммой
- •1. Структура подпрограмм
- •2. Функция
- •2.1. Структура функции
- •2.2. Обращение к функции
- •2.3. Программирование с использованием функции
- •3. Локальные и глобальные переменные.
- •4. Параметры - массивы.
- •5. Процедуры
- •5.1. Структура процедуры
- •5.2. Обращение к процедуре
- •5.3. Параметры-переменные и параметры-значения
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;
Здесь список формальных параметров - перечень имен для обозначения исходных данных и результатов работы процедуры с указанием их типов.