Составить программу вычисления значения выражения k=sqrt(2+(sqrt(2+(sqrt(2+..sqrt(2)))))) при N больше или равном 1 и меньше или равном 100.

program chisla; {Составить программу вычисления значения выражения
k=sqrt(2+(sqrt(2+(sqrt(2+..sqrt(2)))))) при N больше или равном 1 и
меньше или равном 100.}

var
n : integer;
i : integer;
k : real;
begin
Writeln(' Введите N.');
readln(n);
k := 0;
if (n > 0) and (n <= 100) then
for i := 1 to n do
k := sqrt(2 + k)
else writeln('Данные не удовлетворяют условию.');
writeln('При N = ', n, ' K = ', k:2:10);
readln;
end.

( Скачать решение. )

Ниже решение независимого эксперта с применением функций и рекурсии.

function k(n:integer):real;
var i : integer;
res : real;
begin
res := 0;
for i := 1 to n do
res := sqrt(2+res);
k := res;
end;

var n : integer;
begin
WriteLn('Input N:');
ReadLn(n);
if not (n>=1)and(n<=100) then
WriteLn('Input n: 1 <= n <= 100')
else
WriteLn('k = ', k(n):2:30);
ReadLn;
end.

( Скачать решение. )
Hosted by uCoz