Documente Academic
Documente Profesional
Documente Cultură
PORTOFOLIU
INFORMATICĂ
ALBU R. RADU
2020-2021
Portofoliu Informatică 2020-2021 Albu R. Radu
CUPRINS
1. Structuri de control – reprezentare pseudocod + schemă logică + pașii care
se execută la întâlnirea structurii
2. Transformarea structurilor repetitive
3. Instrucțiunile limbajului C++ - reprezentare pseudocod/ limbaj C++
4. Lucrul cu cifrele unui număr- secvența generală, suma cifrelor, produsul
cifrelor, numărul de cifre, prima cifră, oglinditul unui număr, număr
palindrom
5. Șiruri de numere- șirul de n numere, șirul de numere citit până la întâlnirea
lui 0
6. Maxim/minim într-un șir
7. Funcții predefinite în limbajul C++
8. Divizorii unui număr- divizori, divizorii proprii, divizori primi
9. Numere prime
10.CMMDC – algoritmul care utilizează scăderi repetate, algoritmul lui Euclid,
formula pentru cmmmc.
11.Șirul lui Fibonacci
Portofoliu Informatică 2020-2021 Albu R. Radu
1. STRUCTURI DE CONTROL
Structura decizională
Pseudocod
Structura decizională are două forme:
1. 2.
┌dacă condiție atunci ┌dacă condiție atunci
│ instrucțiune1 │ instrucțiune
└■ │altfel
│ instrucțiune2
└■
Schemă logică
1. 2. NU DA
NU DA condiție
condiție
instrucțiune2 instrucțiune1
instrucțiune
Pașii de execuție
• Se execută condiție
o Dacă condiția este adevărată, se va executa instrucțiune/instrucțiune1
o Dacă condiția este falsă:
▪ Dacă există instrucțiunea altfel, se execută instrucțiune 2
▪ Dacă nu există un altfel, se sare peste instrucțiunea dacă, și se trece la
următoarea instrucțiune
Portofoliu Informatică 2020-2021 Albu R. Radu
Structuri repetitive
Structura repetitivă cu test inițial (cât timp)
Pseudocod
┌cât timp condiție execută
│ instrucțiune
└■
Schemă logică
NU DA
condiție
instrucțiune
Pașii de execuție
• Se evaluează condiție
o Dacă condiția este adevărată
▪ Se execută instrucțiune
▪ Se revine la condiție
o Dacă condiția este falsă, se trece la instrucțiunea de după căt timp
Schemă logică
instrucțiune
NU DA
condiție
Pașii de execuție
• Se execută instrucțiune
• Se evaluează condiție
o Dacă condiția este falsă, se reia instrucțiune.
o Dacă condiția este adevărată, se trece la instrucțiunea de după repetă- până
când.
Schemă logică
valoare_inițială
NU DA
condiție
instrucțiune
pas
Pașii de execuție
• Se evaluează valoare_initiala
• Se evaluează condiție
• Dacă condiția e adevărată:
o Se execută instrucțiune.
o Se evaluează pas.
o Se revine la condiție.
• Dacă condiția este falsă, se trece la instrucțiunea de după pentru
Portofoliu Informatică 2020-2021 Albu R. Radu
2. TRANSFORMAREA
STRUCTURILOR REPETITIVE
Transformarea lui Cât timp în Repetă-până când
3. INSTRUCȚIUNILE LIMBAJULUI
C++
3.1 Instrucțiunea de atribuire
Pseudocod C++
x y x = y;
Pseudocod C++
citește n cin>>n;
Pseudocod C++
scrie n cout<<n;
Pseudocod C++
┌dacă condiție atunci if(condiție){
│instrucțiune instrucțiune(i);
└■
Portofoliu Informatică 2020-2021 Albu R. Radu
Pseudocod C++
┌cât timp condiție execută while(condiție){
│instrucțiune instrucțiune(i);
└■ }
Pseudocod C++
┌repetă do{
│instrucțiune instrucțiune(i);
└până când condiție } while (!condiție);
Pseudocod C++
┌pentru ivi, vf execută for(i=vi;i<=vf;i++){
│instrucțiune instrucțiune(i);
└■ }
while (n!=0)
{
...//prelucrez pe n
n=n/10;
Portofoliu Informatică 2020-2021 Albu R. Radu
int main()
{
int n, s=0; //s trebuie inițializat cu 0
cin>>n; //citim pe n
while(n!=0)
{
s=s+n%10; // n%10 înseamnă ultima cifră a lui n
n=n/10;
}
cout<<s; //îl afișăm pe s
}
int main()
{
int n, p=1; //p trebuie inițializat cu 1
cin>>n; //citim pe n
while(n!=0)
{
p=p*n%10; // n%10 înseamnă ultima cifră a lui n
n=n/10;
}
cout<<p; //îl afișăm pe p
}
int main()
{
int n, nr=0; //nr trebuie inițializat cu 0
cin>>n; //citim pe n
while(n!=0)
{
nr=nr+1; // pentru fiecare cifră a lui n, nr crește cu o unit.
n=n/10;
}
cout<<nr; //îl afișăm pe nr
}
Portofoliu Informatică 2020-2021 Albu R. Radu
int main()
{
int n;
cin>>n; //citim pe n
while(n>9)
{
n=n/10; // Acest while îi scade toate cifrele lui n, până
când, n rămâne o cifră.
}
cout<<n; //îl afișăm pe n
}
int main()
{
int n, ogl=0; //ogl trebuie inițializat cu 0
cin >> n;
while(n!=0)
{
ogl =10*ogl + n%10; // Construim oglinditul prin
înmulțirea valorii precedente reținute în ogl cu 10 și
alipirea ultimei cifre a lui n
n =n / 10;
}
cout << ogl; //afișăm pe ogl
}
int main()
{
int n, ogl=0, cn;
cin >> n;
cn=n;// Îi facem o copie lui n
while (n != 0)
{
ogl = ogl * 10 + n % 10;
n = n / 10;
}
Portofoliu Informatică 2020-2021 Albu R. Radu
5. ȘIRURI DE NUMERE
Șirul de n numere (citire)
int main()
{
// Pentru a citi un șir de n numere, se va citi mai întâi un
număr n, pentru a determina câte numere să fie citite în
continuare.
int n,i,x;
cin>>n;
for(i=1;i<=n;i++)
cin>>x;
}
int main()
{
// Spre deosebire de celălalt caz, aici se citește un număr
nedeterminat de valori, până la apariția lui 0
int x;
while(x!=0)
cin>>x;
}
Pentru comoditate, voi determina maximul dintr-un șir folosindu-mă de prima variantă ( citirea unui
număr determinat de numere).
int main()
{
int n,i,x,max;
cin>>n;
cin>>x;
max=x;
for(i=2;i<=n;i++)
{
cin>>x;
if(x>max)max=x;
}
cout<<max;
}
int main()
{
int n,i,x,min;
cin>>n;
cin>>x;
max=x;
for(i=2;i<=n;i++)
{
cin>>x;
if(x<=min)min=x;
}
cout<<min;
}
Portofoliu Informatică 2020-2021 Albu R. Radu
7. FUNCȚII PREDEFINITE ÎN
LIMBAJUL C++
Fincțiile din tabelul de mai jos, sunt funcții care pot fi accesate în programul nostru C++, doar dacă
includem biblioteca <math.h>
FUNCȚIA (numele ei) SINTAXĂ DETALII
sqrt sqrt(x) Returnează √𝑥
Pow pow(x, y) Returnează xy
ceil ceil(x) Returnează cel mai mic întreg
mai mare sau egal cu x
floor floor(x) Returnează cel mai mare întreg
mai mic sau egal cu x
abs abs(x) Valoarea absolută a
argumentului, |x| (modul de x)
log log(x) Returnează ln(logaritm natural)
din x
log10 log10(x) Returnează lg(logaritm în bază
10) din x
int main()
{
int n,d;
cin >> n;
for(d =1 ; d * d <= n ; d ++ )
if(n % d == 0)
{
cout << d << " ";
if(d * d < n)
cout << n / d << " ";
}
}
int main()
Portofoliu Informatică 2020-2021 Albu R. Radu
{ int n, p, d=2;
cin >> n;
while (n > 1)
{
if(n % d == 0)
{
p = 0;
while(n % d == 0)
{
p = p + 1;
n = n / d;
}
}
d++;
}
9. NUMERE PRIME
int main()
{
int n,d,nr=0;
cin>>n;
for(d=2;d<=n/2;d++)
{
if(n%d==0)
nr++;
}
if(nr==0)
cout<<"Numarul este prim";
else
cout<<"Numarul nu este prim";
}
10. CMMDC
Algoritmul lui Euclid cu scăderi repetate
Portofoliu Informatică 2020-2021 Albu R. Radu
int main()
{
int a,b;
cin>>a;
cin>>b;
while (a!=b)
{
if (a>b) a=a-b;
else b=b-a;
}
cout<<a;
}
int main()
{
int n , m, r;
cin >> n >> m;
while(m != 0)
{
r = n % m;
n = m;
m = r;
}
cout << n;
}
CMMMC
int main()
{
int a,b,n,m;
n=a;
m=b;
while (m!=n)
{
if (m<n) m=m+a;
if (m>n) n=n+b;
}
cout<<m;
}
Portofoliu Informatică 2020-2021 Albu R. Radu
int main()
{
int i,n,f,a,b;
cin>>n;
a=1;
b=1;
cout<<a<<" "<<b<<" ";
for(i=3;i<=n;i++)
{
f=b+a;
cout<<f<<" ";
a=b;
b=f;
}
}