Вычислить значение выражения - 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. - Код завершается.