Упростить алгоритм - Free Pascal

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

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

Помогите исправить ошибки и упростить алгоритм. Выбрать алгоритм, составить блок-схему и программу для вычисления в точках xi = a + i×h, i = 0,1,2…,n, h = (b – a)/n промежутка [a,b]наибольшего и среднего значений функции y = f(x), указанной в варианте задания. Для выполнения задания воспользоваться оператором цикла FOR; http://saveimg.ru/show-image.php?id=9104d6110c1d1bde4d18890f4f8c212b
program lab3_12A
function step2(chislo,stepen:real):real;
begin
   Result:=exp(stepen*ln(chislo));
end;
 
function f(x:real):real;
begin
   Result:=(Step2(ln((x-1)*(x-1)/x),3)+cos(2*x)*cos(2*x))/Step2(x*x-5*x+6,1/6)*
      sin(Step2(3,x*x-1)/2);
end;
 
const n=5;
      a=3.5;
      b=4;
var h,x,y,sr,min,max:real;
    i:integer;
begin
   sr:=0;
   min:=f(a);
   max:=f(a);
   h:=(b-a)/n;
   For i:=0 to n do
   begin
      x:=a+i*h;
      y:=f(x);
      sr:=sr+y;
      If min>y then
         min:=y;
      If max<y then
         max:=y;
      Writeln(x:5:5,'   ',y:5:5);
   end;
   sr:=sr/(n+1);
   Writeln;
   Writeln('sr = ',sr:5:5);
   Writeln('min = ',min:5:5);
   Writeln('max = ',max:5:5);
   Readln;
end.

Решение задачи: «Упростить алгоритм»

textual
Листинг программы
program lab3_12A;
 
  function step2(chislo, stepen: real): real;
  begin
    step2 := exp(stepen * ln(chislo));
  end;
 
  function f(x: real): real;
  begin
    f := (Step2(ln((x - 1) * (x - 1) / x), 3) + sqr(cos(2 * x))) /
      Step2(x * x - 5 * x + 6, 1 / 6) * sin(Step2(3, x * x - 1) / 2);
  end;
 
const
  n = 5;
  a = 3.5;
  b = 4;
var
  h, x, y, sr, min, max: real;
  i: integer;
begin
  sr := f(a);
  min := f(a);
  max := f(a);
  h := (b - a) / n;
  for i := 0 to n do
  begin
    x  := a + i * h;
    y  := f(x);
    sr := sr + y;
    if min > y then
      min := y;
    if max < y then
      max := y;
    Writeln(x: 5: 5, '   ', y: 5: 5);
  end;
  sr := sr / (n + 1);
  Writeln;
  Writeln('sr = ', sr: 5: 5);
  Writeln('min = ', min: 5: 5);
  Writeln('max = ', max: 5: 5);
  Readln;
end.

Объяснение кода листинга программы

  1. Программа на языке Free Pascal.
  2. Функция step2 принимает два аргумента типа real: chislo и stepen.
  3. Функция f принимает один аргумент типа real: x.
  4. Константы:
    • n - 5;
    • a - 3.5;
    • b - 4;
  5. Переменные:
    • h - (b - a) / n;
    • x - a + i * h;
    • y - f(x);
    • sr - сумма значений функции f на отрезке [a, b];
    • min - минимальное значение функции f на отрезке [a, b];
    • max - максимальное значение функции f на отрезке [a, b];
  6. Цикл for выполняется от 0 до n.
  7. Внутри цикла вычисляется значение x и y, после чего обновляются значения sr, min и max.
  8. Выводится текущее значение x и y с шагом 0.05.
  9. После выполнения цикла, вычисляется среднее значение функции f на отрезке [a, b] и выводится на экран вместе со значениями sr, min и max.
  10. Программа завершается чтением символа с клавиатуры.

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


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

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

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