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

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

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

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

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

textual
Листинг программы
  1. uses crt;
  2. const n=25;
  3. var y:array[1..n] of real;
  4.     x,min:real;
  5.     i,j,i1,j1:integer;
  6. begin
  7. clrscr;
  8. randomize;
  9. writeln('Массив Y');
  10. for i:=1 to n do
  11.  begin
  12.   y[i]:=20*random;
  13.   write(y[i]:8:2);
  14.  end;
  15. writeln;
  16. write('x=');
  17. readln(x);
  18. {пусть минимально отличное от х среднее первого и второго чисел}
  19. min:=abs((y[1]+y[2])/2-x);
  20. i1:=1;
  21. j1:=2;
  22. for i:=1 to n-1 do {пройдем от первого до предпоследнего}
  23. for j:=i+1 to n do проверим их среднее со всеми что впереди}
  24. if abs((y[i]+y[j])/2-x)<min then
  25.  begin
  26.   min:=abs((y[i]+y[j])/2-x); {находим среднее менее отличное от х}
  27.   i1:=i;   номера этих чисел}
  28.   j1:=j;
  29.  end;
  30. writeln('Минимально отличное от x=',x:0:2,' среднее у чисел:');
  31. write(i1,'=',y[i1]:0:2,' и ',j1,'=',y[j1]:0:2,' и равно ',min:0:2);
  32. readln
  33. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы