ВУЗ:
Составители:
Рубрика:
Решение. При решении подобных задач заранее неизвестно число
элементов ряда. Поэтому применяются операторы цикла while или
repeat. К переменной, в которой накапливается сумма ряда, добавля-
ется очередной элемент и производится проверка условия. Если преды-
дущая сумма отличается от последующей менее чем на заданную по-
грешность вычислений, то можно выходить из цикла и выводить ре-
зультат. Предыдущая сумма ряда сохраняется в дополнительной пере-
менной s1 для сравнения. При сравнении разницу берем по модулю,
используя функцию abs( ).
program summa;
var i,z:integer; x,s,s1:real;
begin
e:=1e-5; {погрешность вычислений}
s:=0; i:=1;
z:=1; {знак элемента}
repeat
s1:=s; {сохраняем старую сумму}
x:=1/(i*i); {вычисляем очередной элемент}
s:=s+z*x; {добавляем к сумме с учётом знака}
i:=i+1;
z:=-z; {меняем знак элемента}
until abs(s-s1)<=e; {проверяем условие выхода}
writeln(‘Сумма ряда = ’,s);
end.
Пример 2.14. Составить программу для вычисления факториала
числа n (для произвольного значения n, введённого с клавиатуры):
S = 1 ⋅ 2 ⋅ 3 ⋅ 4 ⋅ ... ⋅ n = n!
Решение:
program fact;
var i,n,s:integer;
begin
write(‘n=’); readln(n);
s:=1; {начальное значение для произведения - 1}
for i:=1 to n do
s:=s*i;
writeln(‘n!=’,s);
end.
28
Страницы
- « первая
- ‹ предыдущая
- …
- 25
- 26
- 27
- 28
- 29
- …
- следующая ›
- последняя »
