Найти два члена последовательности, среднее арифметическое которых ближе всего к х - Turbo Pascal (29857)
Формулировка задачи:
Решение задачи: «Найти два члена последовательности, среднее арифметическое которых ближе всего к х»
uses crt;
const n=25;
var y:array[1..n] of real;
x,min:real;
i,j,i1,j1:integer;
begin
clrscr;
randomize;
writeln('Массив Y');
for i:=1 to n do
begin
y[i]:=20*random;
write(y[i]:8:2);
end;
writeln;
write('x=');
readln(x);
{пусть минимально отличное от х среднее первого и второго чисел}
min:=abs((y[1]+y[2])/2-x);
i1:=1;
j1:=2;
for i:=1 to n-1 do {пройдем от первого до предпоследнего}
for j:=i+1 to n do {и проверим их среднее со всеми что впереди}
if abs((y[i]+y[j])/2-x)<min then
begin
min:=abs((y[i]+y[j])/2-x); {находим среднее менее отличное от х}
i1:=i; {и номера этих чисел}
j1:=j;
end;
writeln('Минимально отличное от x=',x:0:2,' среднее у чисел:');
write(i1,'=',y[i1]:0:2,' и ',j1,'=',y[j1]:0:2,' и равно ',min:0:2);
readln
end.
Объяснение кода листинга программы
В данном коде используется язык программирования Turbo Pascal. Он предназначен для решения задач, связанных с обработкой данных.
В начале кода подключается библиотека crt, которая обеспечивает работу с консолью.
Далее определяются некоторые переменные: n - количество элементов в массиве y, y - массив из n элементов типа real, x - переменная для хранения значения х, min - переменная для хранения минимального значения среди первых двух элементов массива y, i, j, i1, j1 - переменные для хранения текущего и следующего элементов массива y.
Затем происходит инициализация массива y случайными числами.
После этого выводится сообщение x= и считывается значение х.
Далее находится минимальное значение среди первых двух элементов массива y. Для этого вычисляется среднее арифметическое этих двух элементов и сравнивается с значением х. Если среднее менее отличное от х, то обновляется значение min и сохраняются номера этих элементов в переменных i1 и j1.
Затем выводится сообщение с найденными минимальными значениями.
Код завершается командой readln, которая считывает значение х.