const
NMAX = 100;
type
MyArr = array [1..NMAX] of real;
procedure Write_Arr(var a: MyArr; n: byte; c: char);
var
i: byte;
begin
WriteLn('Array ', c, ':');
for i := 1 to n do
begin
Write(c, '[', i, ']: ');
ReadLn(a[i]);
end;
end;
procedure FindMin(a: MyArr; n: byte; var res: real);
var
i,min: byte;
begin
min := 1;
for i := 2 to n do
if a[i] < a[min] then
min := i;
res := a[min];
end;
procedure FindMax(a: MyArr; n: byte; var res: real);
var
i,max: byte;
begin
max := 1;
for i := 2 to n do
if a[i] > a[max] then
max := i;
res := a[max];
end;
var
max,min: real;
a,b: MyArr;
n: byte;
begin
Write('---- : ');
repeat
ReadLn(n);
until
n in [0..NMAX];
Write_Arr(a, n, 'A');
Write_Arr(b, n, 'B');
FindMax(a, n, max);
FindMin(b, n, min);
WriteLn('Result: ', (max - min) / 2);
end.
Следующий вариант
program nums;
uses crt;
type
xmas = array [1..50] of integer;
ymas = array [1..40] of integer;
var
x: xmas; Xmax:integer;
y: ymas; Ymin:integer;
i: integer; {счетчик}
z: real; {результат}
procedure proc(const XX:xmas; const YY:ymas; var max,min: integer);
var i:integer;
begin
max:=xx[1];
for i:=2 to 50 do if max<xx[i] then max:=xx[i]; {максимальное значение X}
min:=yy[1];
for i:=2 to 40 do if min>yy[i] then min:=yy[i]; {минимальное значение Y}
end;
BEGIN
clrscr;
for i:=1 to 50 do x[i]:=random(101); {чтобы не вбивать все руками}
for i:=1 to 40 do y[i]:=random(101); {--//--}
proc(x,y,Xmax,Ymin);
z:=(Xmax-Ymin)/2;
writeln(z:5:4);
readkey;
END.