Вычислить сумму выражения - Pascal ABC
Формулировка задачи:
Здравствуйте. Решаю такую задачу: дано натуральное число n. Вычислить
Программу написал, только в ней есть где-то ошибка. если n=1 или 2 то программа работает хорошо, если значение переваливает за 3, то в вычисления не сходятся с вычислениям при n=2, то есть первая "сумма" считается правильно, а вторая нет.
n=2
n=3
В чем может быть причина?
Решение задачи: «Вычислить сумму выражения»
textual
Листинг программы
var sum,p,f:real; k,i,n:integer; begin writeln('Ввести n'); readln(n); sum:=0; f:=1; for k:=1 to n do begin f:=f*k; p:=1; for i:=0 to k do p:=p*(i+2); sum:=sum+(f+power(k,n-k+1))/(7*k*sqrt(k)+p); writeln('sum=',sum,' k=',k); end; end.
Объяснение кода листинга программы
- Создаются переменные sum, p, f типа real и переменные k, i, n типа integer.
- Пользователю предлагается ввести значение переменной n.
- Инициализируются переменные sum и f значением 0 и 1 соответственно.
- Запускается цикл for, который выполняется n раз.
- Внутри цикла переменная f умножается на значение переменной k.
- Переменная p инициализируется значением 1.
- Запускается вложенный цикл for, который выполняется от 0 до k.
- Внутри вложенного цикла переменная p умножается на (i+2).
- Значение выражения (f+power(k,n-k+1))/(7ksqrt(k)+p) добавляется к сумме.
- Выводится значение суммы и значение переменной k.
- Цикл завершается.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д