Найти два члена последовательности, среднее арифметическое которых ближе всего к х - Turbo Pascal (29857)

Узнай цену своей работы

Формулировка задачи:

Даны действительные числа х, у1,…, у25. В последовательности у1,…, у25 найти два члена среднее арифметическое которых ближе всего к х. Я знаю, есть на этом сайте похожая задача. Но учитель изменил условия(или может я ошибаюсь). Проще будет объяснить вот так: после того как ввели 25 чисел, нужно ввести Х, и дальше проверять таким образом: (у1+у2)/2 то есть находим ср. арифм. И если это число ближе всего к Х, то выводим ее, если нет то проверяем дальше : (у1+у3)/2, (у1+у4)/2... (у24+у25)/2. Простите если не смог внятно разъяснить данную задачу, всегда имел трудности с этим. Буду ОЧЕНЬ БЛАГОДАРЕН если поможете мне, так как спасете мою задницу на экзаменах))

Решение задачи: «Найти два члена последовательности, среднее арифметическое которых ближе всего к х»

textual
Листинг программы
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, которая считывает значение х.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.5 из 5
Похожие ответы