Раздел операторов основной программы
END.
Имена, объявленные в разделе описаний основной программы, действуют в разделе операторов основной программы и в любой подпрограмме. Эти имена называются глобальными. Имена, объявленные в какой-либо подпрограмме, действуют в этой подпрограмме и в любой, объявленной в ней процедуре или функции. Такие имена называются локальными. Они недоступны для операторов основной программы. Область действия меток переходов в пределах каждой программной единицы своя. Нельзя перейти по оператору GOTO из одной процедуру в другую.
Рассмотрим пример разработки программы, содержащей две процедуры, каждая из которых используется дважды с различными фактическими параметрами.
Даны два массива М1 и М2, содержащие К1 и К2 целых чисел, соответственно. Определить максимальные числа в каждом из этих массивов, сравнить найденные значения между собой и вывести большее из них на экран.
Схема алгоритма
нет
да
Выделим глобальные переменные, которые используются в главной программе: М1, М2, К1, К2, Мах1, Мах2.
Текст программы
Uses crt;
Type Tmas=array[1..1000] of integer;
Var M1, M2: Tmas;
K1, K2, Max1, Max2 : integer;
{ Процедура ввода длины массива и самого массива }
Procedure Vvod(Var K:integer; Var M:Tmas);
Var i:integer;
Begin
Write(' Введите длину массива');
Readln(K);
Writeln(' Введите элементы массива целых чисел, через пробел');
For i:=1 to K do
Read(M[i]); readln;
End; { конец процедуры ввода}
{ Процедура поиска максимального элемента в массиве}
Procedure Poisk_max(K:integer; M:Tmas; Var Max:integer);
Var i:integer;
Begin
Max:=M[1]; { За максимум принимаем первый элемент}
For i:=2 to K do
If M[i]>Max then Max:=M[i]; {Запоминаем новый максимум}
End;
{ Начало основной программы}
Begin
Clrscr;
Writeln(' Ввод первого массива');
Vvod(K1, M1);
Writeln(' Ввод второго массива');
Vvod(K2,M2);
Poisk_max(K1, M1, Max1);
Poisk_max(K2, M2, Max2);
If Max1>Max2 then writeln(' Max1 больше и оно = ',Max1)
Else writeln(' Max2 больше и оно = ',Max2);
Readkey; { Останов для просмотра результатов}
End.
Дата добавления: 2015-09-28; просмотров: 910;