Вычислить значение выражения - Turbo Pascal (29149)
Формулировка задачи:
Всем привет. Нужно решить задачу:
Дано натуральное число n. Найдите a1b1+a2b2+...anbn, где a1=b1=1;
Спасибо!
Решение задачи: «Вычислить значение выражения»
textual
Листинг программы
var ak, ak1, bk, bk1, res: Real; i, n: LongWord; begin repeat Write('N (>0)='); ReadLn(n); until (n > 0); ak1 := 1; bk1 := 1; res := 1; for i := 2 to n do begin ak := (ak1 / 2 + Sqrt(bk1)) / 2; bk := 2 * Sqr(ak1) + bk1; res := res + ak * bk; ak1 := ak; bk1 := bk; end; WriteLn('res=', res:0:2); end.
Объяснение кода листинга программы
- Создается переменная
var
с необходимыми значениями типов данных. - Задается условие для цикла
repeat
, который будет выполняться до тех пор, покаn
больше 0. - Внутри цикла
repeat
считывается значениеn
с помощью функцииReadLn()
. - Создаются три переменные
ak
,ak1
иbk
со значениями 1. - Создается переменная
bk1
со значением 1. - Создается переменная
res
со значением 1. - Начинается цикл
for
, который будет выполняться от 2 доn
. - Внутри цикла
for
вычисляются значения переменныхak
иbk
по формуле:ak = (ak1 / 2 + Sqrt(bk1)) / 2
иbk = 2 * Sqr(ak1) + bk1
. - Значение переменной
res
увеличивается на произведениеak
иbk
:res := res + ak * bk
. - Значения переменных
ak1
иbk1
обновляются:ak1 := ak
иbk1 := bk
. - После завершения цикла
for
выводится значение переменнойres
с помощью функцииWriteLn()
. - Цикл
repeat
завершается, когдаn
становится равным 0. - Код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д