Упростить алгоритм - 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
Листинг программы
  1. program lab3_12A
  2. function step2(chislo,stepen:real):real;
  3. begin
  4. Result:=exp(stepen*ln(chislo));
  5. end;
  6. function f(x:real):real;
  7. begin
  8. Result:=(Step2(ln((x-1)*(x-1)/x),3)+cos(2*x)*cos(2*x))/Step2(x*x-5*x+6,1/6)*
  9. sin(Step2(3,x*x-1)/2);
  10. end;
  11. const n=5;
  12. a=3.5;
  13. b=4;
  14. var h,x,y,sr,min,max:real;
  15. i:integer;
  16. begin
  17. sr:=0;
  18. min:=f(a);
  19. max:=f(a);
  20. h:=(b-a)/n;
  21. For i:=0 to n do
  22. begin
  23. x:=a+i*h;
  24. y:=f(x);
  25. sr:=sr+y;
  26. If min>y then
  27. min:=y;
  28. If max<y then
  29. max:=y;
  30. Writeln(x:5:5,' ',y:5:5);
  31. end;
  32. sr:=sr/(n+1);
  33. Writeln;
  34. Writeln('sr = ',sr:5:5);
  35. Writeln('min = ',min:5:5);
  36. Writeln('max = ',max:5:5);
  37. Readln;
  38. end.

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

textual
Листинг программы
  1. program lab3_12A;
  2.  
  3.   function step2(chislo, stepen: real): real;
  4.   begin
  5.     step2 := exp(stepen * ln(chislo));
  6.   end;
  7.  
  8.   function f(x: real): real;
  9.   begin
  10.     f := (Step2(ln((x - 1) * (x - 1) / x), 3) + sqr(cos(2 * x))) /
  11.       Step2(x * x - 5 * x + 6, 1 / 6) * sin(Step2(3, x * x - 1) / 2);
  12.   end;
  13.  
  14. const
  15.   n = 5;
  16.   a = 3.5;
  17.   b = 4;
  18. var
  19.   h, x, y, sr, min, max: real;
  20.   i: integer;
  21. begin
  22.   sr := f(a);
  23.   min := f(a);
  24.   max := f(a);
  25.   h := (b - a) / n;
  26.   for i := 0 to n do
  27.   begin
  28.     x  := a + i * h;
  29.     y  := f(x);
  30.     sr := sr + y;
  31.     if min > y then
  32.       min := y;
  33.     if max < y then
  34.       max := y;
  35.     Writeln(x: 5: 5, '   ', y: 5: 5);
  36.   end;
  37.   sr := sr / (n + 1);
  38.   Writeln;
  39.   Writeln('sr = ', sr: 5: 5);
  40.   Writeln('min = ', min: 5: 5);
  41.   Writeln('max = ', max: 5: 5);
  42.   Readln;
  43. 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

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

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

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