Вычисление конечных сумм - Free Pascal (786)
Формулировка задачи:
компилируется и запускается, но почему то не считает,
Листинг программы
- program hhhj ;
- const n=30;
- var k:longint;
- x,z,sum,h,a,y,b:real;
- BEGIN
- a:=0.1;b:=1;
- sum:=1;h:=0.1;
- x:=a;
- while x<=b+h/2 do
- begin
- y:=((x*x)/4+x/2+1)*exp(x/2);
- z:=1;
- for k:=1 to n do
- begin
- z:= ((2*n+1)/(n+1))*(x/2);
- sum:=sum+z;
- end; end;
- writeln(x:5:2,',,,',sum:9:5,',,,,',y:13:5);readln();
- END.
Решение задачи: «Вычисление конечных сумм»
textual
Листинг программы
- program hhhj ;
- const n=30;
- a=0.1;
- b=1;
- h=0.1;
- function f(x:real):real;
- begin
- f:=(x*x/4+x/2+1)*exp(x/2)
- end;
- function s(x:real):real;
- var i:integer;
- sm,t:real;
- begin
- t:=1;
- sm:=t;
- for i:=1 to n do
- begin
- t:=t*(x/2)/i;
- sm:=sm+t*(i*i+1);
- end;
- s:=sm
- end;
- var x:real;
- begin
- x:=a;
- while x<=b+h/2 do
- begin
- writeln('x=',x:4:1,' y=',f(x):6:3,' s=',s(x):6:3);
- x:=x+h
- end;
- readln
- end.
Объяснение кода листинга программы
В данном коде решается задача вычисления конечных сумм.
- Объявлены константы: n = 30 (количество точек для вычисления суммы), a = 0.1 (начальное значение переменной x), b = 1 (конечное значение переменной x), h = 0.1 (шаг изменения переменной x).
- Определены функции: f(x: real): real, s(x: real): real. Функция f(x) вычисляет значение функции y = (xx/4 + x/2 + 1) exp(x/2). Функция s(x) вычисляет сумму sm,t, используя формулу суммы ряда.
- Создана переменная x со значением a.
- Запускается цикл while, выполняющийся до тех пор, пока x <= b + h/2. Выполняется: — Вывод на экран значений x, y, s. — Увеличение x на h.
- В конце программы ожидается ввод пользователя с помощью readln.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д