Дано действительное число x и массив A[n]. В массиве найти два члена, среднее арифметическое которых ближе всего к x — Pascal(Паскаль)

uses crt;
const nmax=100;
var a:array[1..nmax] of real;
    n,i,j,k1,k2:integer;
    x,dx:real;
begin
clrscr;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
randomize;
writeln('Исходный массив:');
for i:=1 to n do
 begin
  a[i]:=10*random;
  write(a[i]:5:2);
 end;
writeln;
writeln;
write('Введите число для поиска x=');
readln(x);
dx:=abs((a[1]+a[2])/2-x);
k1:=1;
k2:=2;
for i:=1 to n-1 do
for j:=i+1 to n do
if abs((a[i]+a[j])/2-x)<dx then
 begin
  k1:=i;
  k2:=j;
  dx:=abs((a[i]+a[j])/2-x);
 end;
writeln('Наиболее близко к ',x:0:2,' среднее чисел ',a[k1]:0:2,' и ',a[k2]:0:2);
write('оно=',(a[k1]+a[k2])/2:0:2,' отклонение=',dx:0:2);
readln
end.

Leave a Comment

31 + = 33