Помогите пожалуйста!! Решить задачу с использованием процедур. Указать выделенные...

0 голосов
27 просмотров

Помогите пожалуйста!!
Решить задачу с использованием процедур. Указать выделенные подзадачи, решаемые процедурами. Дан числовой ряд и некоторое число e. Найти сумму тех членов ряда, модуль которых больше или равен заданному e. Общий член ряда имеет вид:
a(n-нижний индекс)=n!/n^n


Информатика (93 баллов) | 27 просмотров
0

А зачем модуль? Значение n!/n^n для любых натуральных n положительно, следовательно модуль от него брать - просто лишняя операция. Другое дело, когда рассматривается вариант, что два соседних члена ряда различаются не меньше, чем на e, тогда можно и модуль брать, если конечно ряд не монотонно убывает (как в данном случае) или возрастает. Так что модуль тут, как теперь часто говорят, "ни о чём".

0

хорошо, но что с модулем,что без него, я не знаю как составить программу!

Дан 1 ответ
0 голосов
Правильный ответ

Var
    i, n: integer;
    a, s, e: real;

function Factorial(n: integer): longint;
var
    f, i: longint;
begin
    f := 1;
    for i := 1 to n do
        f := f * i;
    Factorial := f;
end;

function Power(x: real; n: integer): real;
var
    i: integer;
    p: real;
begin
    p := 1;
    for i := 1 to n do
        p := p * x;
    Power := p;
end;

begin
    readln(e, n);
    
    s := 0;
    for i := 1 to n do
    begin
        a := Factorial(n) / Power(n, n);
        if abs(a) < e then
            s := s + a;
    end;
    
    writeln(s);
end.

(53.1k баллов)