Вычислить сумму ряда - Pascal (80290)
Формулировка задачи:
подскажите, если учесть, что мы не проходили длинную арифметику и всего такого, правильное ли решение
Вычислить значение выражения:
n=20; x=4.75
program laba2;
var
y, x, pow: real;
n, i, j, fact: longint;
begin
n := 14;
x := 4.75;
y := 0;
for i := 4 to n do //общая сумма
begin
fact := 1;
pow := 1;
for j := 1 to i do //factorial
fact := fact * j;
for j := 1 to i do //stepen
pow := pow * x;
y := y + pow / fact;
writeln(i, ' ', fact);
end;
writeln(y);
readln;
//при n > 12 считается неправильно, потому что 13! > longint
end.Решение задачи: «Вычислить сумму ряда»
textual
Листинг программы
const n=20;
x=4.75;
var y,t:real;
i:integer;
begin
y := 0;
t:=x*x*x/6;//значение члена ряда при i=3
for i:=4 to n do //общая сумма
begin
t:=t*x/i;//на каждой итерации умножаем на Х и делим на I, получаем x^i/i!
y:=y+t;
end;
writeln('y=',y:0:2);
readln;
end.
Объяснение кода листинга программы
- Объявление и инициализация констант:
n= 20x= 4.75
- Объявление переменных:
y,t- вещественные числа (для вычисления суммы ряда)i- целое число (для использования в цикле)
- Присвоение начального значения переменной
y:y= 0
- Вычисление значения переменной
tдля i=3:t=x*x*x/6
- Цикл для вычисления общей суммы ряда от i=4 до n:
- На каждой итерации:
- Умножение значения
tнаx/i - Добавление результата в переменную
y
- Умножение значения
- На каждой итерации:
- Вывод результат:
- Вывод значения переменной
yс округлением до двух знаков после запятой - Ожидание ввода пользователя (для завершения программы) Итак, данный код вычисляет сумму ряда, используя константы, переменные и цикл.
- Вывод значения переменной