You are on page 1of 1

program Fibonacci_nerecursiv; program suma_recursiv; program suma_recursiv;

uses crt; {suma primilor n termeni ai sirului {suma primilor n termeni ai sirului
var n,k:integer; 1,3,5,7,...,2n-1,...} 2,7,12,17,22,...,5n-3,...}
F:array[1..10] of integer; uses crt; uses crt;
begin var n:integer; var n:integer;
clrscr; function sum(n:integer):integer; function sum(n:integer):integer;
writeln('Introdu n'); begin begin
readln(n); if n=0 then sum:=0 else sum:=sum(n- if n=0 then sum:=0 else sum:=sum(n-
f[1]:=1; f[2]:=1; 1)+(2*n-1); 1)+5*n-3;
for k:=3 to n do end; end;
f[k]:=f[k-1]+f[k-2]; begin begin
write('Sirul Fibonace= '); clrscr; clrscr;
for k:=1 to n do writeln('Introdu n'); writeln('Introdu n');
write(f[k],' '); readln(n); readln(n);
readkey; end. writeln('suma= ',sum(n)); writeln('suma= ',sum(n));
readkey; readkey;
program Fibonacci_recursiv; end. end.
uses crt;
var n,k:integer; program suma_nerecursiv;
function fib(k:integer):longint; {suma primilor n termeni ai sirului Notiuni generale despre recursivitate
begin 1,5,9,13,...,4n-3,...} Un algoritm recursiv se caracterizeaza
if (k=1) or (k=2) then fib:=1 else uses crt; prin proprietata de a se autoapela din
fib:=fib(k-1)+fib(k-2); var n,k,s:integer; interiorul tau . Algoritmul dat face
end; begin referinta pentru a realiza anumite actiuni
begin clrscr; clrscr; la el insusi . Se obtine un lant de auto-
writeln('Introdu n'); writeln('Introdu n'); apelari recursive . Un algoritm recursiv
readln(n); readln(n); are acelasi efect ca si un ciclu .
writeln('Fibonace(',n,')=',fib(n)); s:=0; A.rec. repeta executia uneia si aceleiasi
readkey; end. k:=1; secvente insa repetarea nu trebuie sa se
while k<=4*n-3 do produca pina la infinit , deaceea exista o
program factorial_nerecursiv; begin condtie care testeaza procesul dat shi se
uses crt; s:=s+k; numeste conditie de oprire care
var k,n,p:integer; k:=k+4; intrerupe lantul de autoapelari .
begin end; Numim suprogram recursiv
clrscr; writeln('suma= ',s); (procedura sau functie) , un subprogram
writeln('Introdu n'); readkey; care se autoapeleaza pe el insusi si
readln(n); end. trebuie sa indeplineasca urmatoarele
p:=1; cerinte :
for k:=1 to n do program suma_recursiv; 1.sa se poata executa cel putin odata fara
p:=p*k; {suma primilor n termeni ai sirului a se autoapela ;
writeln('factorial(',n,')=',p); 1,5,9,13,...,4n-3,...} 2.toate autoapelurile sa se produca astfel
readkey; uses crt; incit sa se tinda spre indeplinirea
end. var n:integer; conditiei de indeplinire fara autoapeluri .
function sum(n:integer):integer;
program factorial_recursiv; begin
uses crt; if n=0 then sum:=0 else sum:=sum(n-
var n,k:integer; 1)+(4*n-3);
function fact(k:integer):longint; end;
begin begin
if k=0 then fact:=1 else fact:=k*fact(k- clrscr;
1); writeln('Introdu n');
end; readln(n);
begin writeln('suma= ',sum(n));
clrscr; readkey;
writeln('Introdu n'); end.
readln(n);
writeln('factorial(',n,')=',fact(n)); program suma_nerecursiv;
readkey; {suma primilor n termeni ai sirului
end. 2,7,12,17,22,...,5n-3,...}
uses crt;
program suma_nerecursiv; var n,k,s:integer;
{suma primilor n termeni ai sirului begin
1,3,5,7,...,2n-1,...} clrscr;
uses crt; writeln('Introdu n');
var n,k,s:integer; readln(n);
begin s:=0;
clrscr; k:=2;
writeln('Introdu n'); while k<=5*n-3 do
readln(n); begin
s:=0; s:=s+k;
k:=1; k:=k+5;
while k<=2*n-1 do end;
begin writeln('suma= ',s);
s:=s+k; readkey;
k:=k+2; end.
end;
writeln('suma= ',s);
readkey;
end.

You might also like