Sunteți pe pagina 1din 17

Colegiul Național „Radu Negru” Făgăraș

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

Structura repetitivă cu test final (repetă – până când)


Pseudocod
┌repetă
│ instrucțiune
└până când condiție
Portofoliu Informatică 2020-2021 Albu R. Radu

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.

Structura repetitivă cu contor (pentru)


Pseudocod
┌pentru valoare_inițială, condiție, pas execută
│ instrucțiune
└■
Observație! În anumite situații, pasul poate lipsi! Dacă lipsește, atunci pasul este de la sine
înțeles 1
Portofoliu Informatică 2020-2021 Albu R. Radu

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

Cât timp Repetă


┌cât timp condiție execută ┌dacă condiție atunci
│ instrucțiune │ ┌repetă
└■ │ │ instrucțiune
│ └până când not condiție
└■

Transformarea lui Repetă- până când în Cât timp

Repetă Cât timp


┌repetă instrucțiune
│ instrucțiune ┌cât timp not condiție execută
└până când condiție │ instrucțiune
└■

Transformarea lui Pentru în Cât timp

Pentru Cât timp


contorvi
┌pentru contorvi, vf execută
┌cât timp contor ≤ vf execută
│ instrucțiune
│ instrucțiune
└■
│ contorcontor+1
└■

Transformarea lui Pentru în Repetă- până când


Pentru Repetă
contorvi
┌pentru contorvi, vf execută
┌dacă contor ≤ vf atunci
│ instrucțiune
│ ┌repetă
└■
│ │instrucțiune
│ │contorcontor+1
└■ └până când contor > vf
Portofoliu Informatică 2020-2021 Albu R. Radu

3. INSTRUCȚIUNILE LIMBAJULUI
C++
3.1 Instrucțiunea de atribuire

Pseudocod C++
x  y x = y;

3.2 Instrucțiunea de citire

Pseudocod C++
citește n cin>>n;

3.3 Instrucțiunea de afișare

Pseudocod C++
scrie n cout<<n;

3.4 Instrucțiunea de decizie

Pseudocod C++
┌dacă condiție atunci if(condiție){
│instrucțiune instrucțiune(i);
└■
Portofoliu Informatică 2020-2021 Albu R. Radu

3.5 Instrucțiuni repetitive

3.5.1 Instrucțiunea while

Pseudocod C++
┌cât timp condiție execută while(condiție){
│instrucțiune instrucțiune(i);
└■ }

3.5.2 Instrucțiunea do-while

Pseudocod C++
┌repetă do{
│instrucțiune instrucțiune(i);
└până când condiție } while (!condiție);

3.5.2 Instrucțiunea for

Pseudocod C++
┌pentru ivi, vf execută for(i=vi;i<=vf;i++){
│instrucțiune instrucțiune(i);
└■ }

4. LUCRUL CU CIFRELE UNUI


NUMĂR
Secvența generală

while (n!=0)
{
...//prelucrez pe n
n=n/10;
Portofoliu Informatică 2020-2021 Albu R. Radu

Program ce calculează suma cifrelor unui număr

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
}

Program ce calculează produsul cifrelor unui număr

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
}

Program ce calculează câte cifre are un număr

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

Program ce afișează doar prima cifră a unui număr

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
}

Program ce afișează oglinditul unui număr

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
}

Program ce verifică dacă un număr e palindrom

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

//testul de palindrom + afisarea mesajului corespunzator


if(cn==ogl) // Dacă copia e egală cu oglinditul, atunci nr e
palindrom
cout<<"Numarul este palindrom";
else
cout<<"Numarul nu este palindrom";
}

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;
}

Șirul de numere citit până la întâlnirea lui 0

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;
}

6. MAXIM/MINIM ÎNTR-UN ȘIR


Portofoliu Informatică 2020-2021 Albu R. Radu

Pentru comoditate, voi determina maximul dintr-un șir folosindu-mă de prima variantă ( citirea unui
număr determinat de numere).

Maximul dintr-un șir

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;
}

Minimul dintr-un șir

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

8. DIVIZORII UNUI NUMĂR


Divizori – algoritm

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 << " ";
}
}

Divizori primi- algoritm

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;
}

Algoritmul lui Euclid cu împărțiri

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

11. ȘIRUL LUI FIBONACCI

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;
}
}

S-ar putea să vă placă și