Директива forward
Если одна подпрограмма использует другую, а та, в свою очередь, использует первую, возникает проблема размещения этих процедур в программе. Какую из них поместить в программе первой? В этих случаях прибегают к директиве forward.
Например:
procedure pp1(a,b:integer):forward;
procedure pp2(c: real); {Вторая процедура}
var x,y:integer;
begin
…
pp1(x, y);
end;
procedure pp1; {Первая процедура}
var z:real;
begin
…
pp2 (z);
end;
…
Задача.
Задан одномерный массив вещественных чисел. Найти максимальный элемент массива и определить его номер.
Составим программу с использованием двух процедур:
процедура ввода элементов массива;
процедура поиска максимального элемента и определение его номера.
Для передачи массива в процедуру введем пользовательский тип mas.
program PP;
type
mas=array[1..100] of integer; {пользовательский тип}
var { глобальные переменные }
a:mas;
max:real;
n,max,kmax:integer;
procedure input_mas(n:integer ; var a:mas );
var i:integer; {локальная переменная}
begin
for i:=1 to n do readln(a[ i ]);
end;
procedure max_m(n:integer; a:mas; var max,kmax:integer );
var i:integer;
begin
max:=a[1];kmax:=1;
for i:=1 to n do
if a[i]>max then
begin max:=a[i]; kmax:=i; end;
end;
begin
writeln(‘ Введите n<=100’) ; readln( n );
writeln (‘ Введите элементы массива ‘);
input_mas(n,a);
max_m(n,a,max,kmax );
writeln(‘max=’,max,‘kmax=’,kmax);
readln;
end.
Дата добавления: 2015-05-21; просмотров: 569;