Вычислить Z=(Xmax-Ymin)/2 ,где Xmax- максимальный элемент массива X(50) Ymin-минимальный элемент массива Y(40), Xmax и Ymin вычислять в одной подпрограмме — Pascal(Паскаль)

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.

Leave a Comment

50 − 41 =