Последние аk =( 1,9x+ 7k)/k!program sum;const e = 0.001; var x, a,summa : real; k :...

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

Последние аk =( 1,9x+ 7k)/k!

program sum;
const e = 0.001;
var x, a,summa : real;
k : integer;
function Factorial(n: word): LongInt;
begin
if n=0 then Factorial := 1 else Factorial := n*Factorial(n-1);
end;
begin
writeln('Введите x:');
readln(x);
summa:= 0;
k:=1;
a := 1.9*x+exp(k*ln(7));
while abs(a) > e do
begin
summa:=summa + a;
k := k + 1;
a := exp(1.9*x+exp(k*ln(7)))/Factorial(k);
end;
writeln('Сумма=', summa:5:2);
writeln('Количество слогаемых=', k-1);
end.
Где ошибка?


Информатика (50 баллов)
оставил комментарий (50 баллов)

аn = (2х)n/(10n), выглядет как writeln('Введите число x:');readln(x);summa := 0;n: = 1;a := -2 * x;while abs(a) > e do beginsumma := summa + a;n := n + 1;{Вычисляем an+i}a := exp(n * ln(2 * x)) / (10*n);end;writeln('Сумма =', summa:5:2); writeln('Количество слагаемых =', n-1);

оставил комментарий (50 баллов)

это так пример

оставил комментарий (50 баллов)

ааа

оставил комментарий (50 баллов)

но тогда получается деление на 0 ошибка

оставил комментарий Архангел (148k баллов)

где?

оставил комментарий (50 баллов)

a := 1.9*x+exp(k*ln(7))/Factorial(k);

оставил комментарий Архангел (148k баллов)

Это комп выдаёт такую ошибку?

оставил комментарий (50 баллов)

Да паскаль

оставил комментарий Архангел (148k баллов)

В таком случае, надо считать не факториал, а 1 делить на факториал (факториал очень быстро растет и не помещается в обычные типы данных)

оставил комментарий (50 баллов)

Нет. Все ровно ошибка...

Дан 1 ответ
0 голосов
Архангел (148k баллов)
 
Правильный ответ

У меня такой файл работает правильно почти для всех иксов. 

...