Documente Academic
Documente Profesional
Documente Cultură
PROIECT
PENTRU SUSȚINEREA EXAMENULUI DE
ATESTARE A COMPETENȚELOR
PROFESIONALE
PROFIL: MATEMATICĂ-INFORMATICĂ
2022
COLEGIUL NAȚIONAL „SPIRU HARET” TECUCI
TEMA PROIECTULUI:
2022
Memoriu justificativ
Am ales această lucrare deoarece șirul lui Fibonacci este unul dintre cele
mai importante șiruri recurente ce are aplicabilitate atât în domeniul
informaticii, cât și al matematicii, fiind prezent chiar și în natură unde reprezintă
armonia și perfecțiunea în creație.
3
GENERALITĂȚI
ȘIRURI RECURENTE
Un șir se numește recurent dacă fiecare dintre termenii săi poate fi scris în
funcție de unul sau mai mulți termeni anteriori, excepție făcând primul/primii
termen/i, așa cum se poate observa și următoarele exemple:
- n!=n*(n-1)! Ɐ n≥2, n număr natural sau n!=1 pentru n=0 sau n=1
- progresiile aritmetice, în care a n=an-1+r=a1+(n-1)*r, unde n≥1, n număr
natural, iar rația r și termenii șirului an sunt numere reale
- progresiile geometrice, în care bn=bn-1*q=b1*qn-1, unde n≥1, n număr
natural, iar rația q și termenii șirului bn sunt numere reale
4
FORMA GENERALĂ A ALGORITMULUI DE
GENERARE A ȘIRULUI FIBONACCI
5
Algoritmul de generare a șirului Fibonacci fără a utiliza o
funcție recursivă
#include <iostream>
using namespace std;
intmain()
{
unsignedn, a = 0, b = 0, c = 1;
cin>>n;
if(n == 1)
{
cout<<1;
return0;
}
if(n == 2)
{
cout<<1 <<' ' <<1;
return0;
}
while(n >0)
{
cout<<c <<' ';
a = b;
b = c;
c = a + b;
n = n - 1;
}
return0;
}
6
PROPUNEREA ȘI REZOLVAREA UNEI
PROBLEME
#include <fstream>
intmain()
{
unsignedx = 0, y = 1, z = 1, a, b, sw= 0, n;
ifstreamf("atestat.in");
f >>a >>b >>n;
f.close();
while(z <a)
{
x = y;
y = z;
z = x + y;
}
ofstreamg("atestat.txt");
while(z <n)
{
g <<z <<' ';
x = y;
y = z;
z = x + y;
sw= 1;
}
if(z == n)
{
g <<n <<endl;
sw= 2;
}
if(sw== 2)
8
while(z <= b)
{
g <<z <<' ';
x = y;
y = z;
z = x + y;
}
else
if(sw== 0 &&z >b)
{
g <<"Nu exista";
g.close();
return0;
}
else
{
if(sw== 0)
g<<0;
g <<endl;
sw= 0;
while(z <= b)
{
g <<z <<' '; Dacă în fișierul „atestat.in” se află
x = y; numerele:
y = z; 50 103
z = x + y; 89
sw= 1;
} Atunci în urma executării
if(sw== 0) algoritmului, în fișierul „atestat.txt” s-
au scris valorile:
g<<0;
} 55 89
g.close(); 89
return0;
}
9
BIBLIOGRAFIE:
https://ro.wikipedia.org/wiki/Sec
%C8%9Biunea_de_aur
https://tutoriale-pe.net/sirul-lui-fibonacci-in-c/
https://ro.wikipedia.org/wiki/Rela
%C8%9Bie_de_recuren%C8%9B%C4%83
https://ro.wikipedia.org/wiki/Numerele_Fibonacci
https://www.scribd.com/doc/85340916/Recursivitate
10
CUPRINS
1. Memoriu justificativ...................................................................3
2. Generalități privind tema abordată.............................................4
3. Forme generale ale algoritmului corespunzător temei...............5
4. Propunerea și rezolvarea unei probleme....................................7
5. Listing-ul programului...............................................................8
6. Bibliografie...............................................................................10