Упростить алгоритм - 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.
Объяснение кода листинга программы
- Программа на языке Free Pascal.
- Функция
step2
принимает два аргумента типаreal
:chislo
иstepen
. - Функция
f
принимает один аргумент типаreal
:x
. - Константы:
n
- 5;a
- 3.5;b
- 4;
- Переменные:
h
- (b - a) / n;x
- a + i * h;y
- f(x);sr
- сумма значений функцииf
на отрезке [a, b];min
- минимальное значение функцииf
на отрезке [a, b];max
- максимальное значение функцииf
на отрезке [a, b];
- Цикл
for
выполняется от 0 до n. - Внутри цикла вычисляется значение
x
иy
, после чего обновляются значенияsr
,min
иmax
. - Выводится текущее значение
x
иy
с шагом 0.05. - После выполнения цикла, вычисляется среднее значение функции
f
на отрезке [a, b] и выводится на экран вместе со значениямиsr
,min
иmax
. - Программа завершается чтением символа с клавиатуры.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д