Вычисление конечных сумм - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д