Вычислить значение выражения - 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. - Код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д