program funcion (input,output);
uses wincrt;
var n:integer; t:real;
opcion:char;
function fibonacci(n:integer):longint;
BEGIN
if (n=1)then fibonacci:=1
else t:=sqr(2+(fibonacci(n-1)+fibonacci(n-2)));
end;
begin
repeat
write ('Escriba un entero positivo,n=');readln(n);
if n<1 then
begin
gotoxy (27,8);
writeln('**************************************************');
gotoxy (27,9);
write ('* La funcion fibonacci no esta definida para n<1 * ');
gotoxy (27,10);
write ('* Digite un entero positivo n: n > = 2 *',t:1:2);
readln(n);
gotoxy (27,11);
write ('************************************************** ');
writeln;
end
else
writeln (' n fibonacci (n) ');
gotoxy (10,3);
for n:=1 to n do
writeln (n:10, fibonacci(n):15);
writeln;
write ('Desea continuar s/n: '); read (opcion);
readln;
clrscr;
until opcion='n';
gotoxy(22,12);
write ('***************************************************');
gotoxy (22,13);
writeln (' * USTED HA FINALIZADO LA SECION *');
gotoxy(22,14);
writeln ('**************************************************');
readln;
end.