# data[].attributes.body
Ecuația unei secvențe de instrucțiuni în funcție de valoarea unei expresii.

dacă EXPRESIE atunci INSTRUCȚIUNE 1

altfel INSTRUCȚIUNE 2

if (exprersie) instrucțiune 1

else instrucțiune 2

ex: {

int x,y,n;

cin>>x;

cin>>y;

if(y%x==0) n=y/x;

else n=y/x+1;

cout<

# data[].attributes.body
Cât timp expresie logică execută

instrucțiune

While (expresie)

instrucțiune

Pasul 1- se evaluează expresia logică.

Pasul 2- dacă expresia este adevărată, se execută instrucțiunea după care se revine la pasul 1.

Pasul 3- dacă expresia este falsă, instrucțiunea nu se execută și se trece la execuția următoarei instrucțiuni dupa while.

ex: Să se precizeze ce se află la sfârșitul execuției acesteia dacă se citește pentru n valoarea 4.

cât timp i <=n execută

s<-s+i

i<-i+1

scrie s

1<=4 A s=0+1; i=1+1

2<=4 A s=1+2; i=2+1

3<=4 A s=3+3; i=3+1

4<=4 A s=6+10; i=4+1

5<=4 F scrie 10.

# data[].attributes.body
Reprezintă executarea de mai multe ori a unei instrucțiuni.

execută instrucțiune

instrucțiune

cât timp expresie

do {

instrucțiune

}

while (expresie);

SAU

repetă

instrucțiune

până când expresie

do {

instrucțiune

}

while (!expresie);

Pasul 1: se execută instrucțiunea.

Pasul 2: se evaluează expresia logică.

dacă expresia logică este adevărată se revine la pasul 1;

dacă expresia este falsă, se oprește execuția structurii repetitive și se trece la execuția următoarei instrucțiuni după cea repetitivă.

ex

y=x

while (x<=3)

{

cout <<''*''; printf (''*'');

y=y+1; x=x+y;

}

x=0

y=0

# data[].attributes.headline
Structura repetitivă- cu număr finit de pași

# data[].attributes.subject
Structura repetitivă- cu număr finit de pași

# data[].attributes.body
Reprezintă execuția unei secvențe de instrucțiune de un număr cunoscuți de pași.

pentru variabilă<--- valoare inițială, valoare finală, execută

instrucțiune

for (variabilă= vali ; variabilă<=valf ; variabilă ++)

instrucțiune

Pasul 1: este inițializată variabila cu val i.

Pasul 2: verifică dacă este îndeplinită condiția de continuitate.

Pasul 3: dacă condiția de cont. se execută instrucțiune.

Pasul 4: se modifică valoarea variabilei și se revine la pasul 2.

OPERATORUL DE INCREMENTARE

x++=>x=x+1

OPERATORUL DE DECREMENTARE

x--=>x=x-1

ex:

for( i=1, i<=3; i++)

cout<<i<<;

i=1 i=<3 A scrie 1, i=2

2=<3 A scrie 2, i=3

3=<3 A scrie 4, i=4

4=<3 F

# data[].attributes.body
Să se scrie un program care citește și afișează suma divizorilor proprii ai lui x.

ex:

{ int x,d, s=0;

cin>>x;

for( d=2; d=x/2; d++)

if( x%d=0) s=s+d;

cout<<s;

}

x=24 d=2, 2<=12 A 24/2=0 A, s=2

d=3, 3<=12 A 24/3=0 A, s=5

d=4, 4<=12 A 24/4=0 A, s=9

d=5, 5<=12 A 24/5=0 F

...

d=12, 12<=12 A 24/12=0 A

scrie 35

# data[].attributes.body
Să se scrie un program care citește 2 nr. nat. x; y și care determină și afișează c.m.m.d.c al acestora.

while (x!=y)

if(x>y)x=x-y;

else y=y-x;

c.m.m.d.c=x;

x=18 y=24

18!=24 A; 18>24 F; y=6

18!=6 A; 18>6 A; x=12

12!=6 A; 12>6 A; x=6

6!=6 F

c.m.m.d.c=6

# data[].attributes.headline
Prelucrarea cifrelor unui număr- suma cifrelor

# data[].attributes.subject
Prelucrarea cifrelor unui număr- suma cifrelor

# data[].attributes.body
Să se scrie un program care citește un nr. nat. x și care determină suma cifrelor x. ==>s=20=(2+8+7+3)

int x, c, s=0;

cin>>x;

while (x!=0)

{

c=x%10;

// prelucrare c

s=s+c;

x=x/10;

}

cout<<s;

# data[].attributes.headline
Prelucrarea cifrelor unui număr- nr. de cifre

# data[].attributes.subject
Prelucrarea cifrelor unui număr- nr. de cifre

# data[].attributes.body
Să se scrie un program care citește un nr. nat. x și care determină nr. de cifre ale lui x.

int x, c, C=0;

cin>>x;

{

c=x%10;

C++;

x=x/10;

}

cout<<C;

# data[].attributes.headline
Prelucrarea cifrelor unui numar-  palindrom

# data[].attributes.subject
Prelucrarea cifrelor unui numar-  palindrom

# data[].attributes.body
Un nr. nat. este palindrom dacă citit de la stânga la dreapta este egal cu nr. citit de la dreapta la stânga.

Să se scrie un program care citește un nr. nat. x și care verifică dacă este palindrom.

o=0

while ( x!=0)

{

c=x%10;

o=o*10+c;

x=x/10;

}

x=3128 o=8213

3128!=0 A c=8 o=8 x=312

312!=0 A c=2 o=8*10+2=82 x=31

31!=0 A c=1 o=82*10+1=812 x=3

3!=0 A c=3 o=812*10+3=8213 x=0

# data[].attributes.headline
Noțiunea de algoritm+ proprietățile algoritmului

# data[].attributes.subject
Noțiunea de algoritm+ proprietățile algoritmului

# data[].attributes.body
Un algoritm reprezintă o metodă de rezolvare a problemelor de un anumit tip în care pe baza unor date de intrare se obțin niște date de ieșire.

PROPRIETĂȚI:

1. Claritate - la fiecare pas acțiunea care urmează este unic determinată, definită și realizabilă.

2. Generalitate - un algoritm trebuie să rezolve o clasă întreagă de probleme.

3. Finitudine - orice algoritm trebuie să se încheie după un număr finit de pași.

# data[].attributes.body
O expresie este formată dintr-o succesiune de operanzi legați între ei de operatori.

TIPURI DE OPERATORI:

1. Aritmetici:

unari: + ; - ;

binari: + ; - ; * ; / ; % ;

2.Relaționali: < ; > ; = ; <= ; >= ; != ;

3.Logici - se aplica datelor de tip logic.

negația

disjuncția logică sau (OR)

conjuncția logică sau (AND)

# data[].attributes.body
Reprezintă execuția instrucțiunilor în ordinea în care sunt scrise.

La începutul fiecărui algoritm facem declararea datelor.

a) Declararea datelor;

b) Citirea datelor de intrare;

c)Scrierea datelor de ieșire;

d) Instrucțiunea de atribuire;

e) O instrucțiune compusă când două sau mai multe instrucțiuni se execută împreună;

ex: Să se scrie un algoritm care citește 2 nr. nat. X și Y și care citește și afișează suma, diferența, produsul și câtul celor 2 nr.

Date de intrare: X,Y naturale

Date de ieșire: suma, diferența, produsul, câtul natural

citește: X,Y

suma <- X+Y

diferența <- X-Y

produsul <- X*Y

câtul <- X/Y

Scrie suma, diferența, produsul și câtul.

X=8

Y=2

suma= 8+2=10

diferența= 8-2=6

produsul= 8*2=16

câtul= 8/2=4

scrie 10,6,16,4.

# data[].attributes.body
Reprezintă execuția unei instrucțiuni în funcție de valoarea unei expresii.

STRUCTURĂ:

dacă expresie logica atunci instrucțiunea 1

altfel instrucțiunea 2

ex: Scrieți o valoare care o poate avea x astfel încât la finalul execuții variabila y să aibă valoarea a) 1; b) 2; c) 3; d) 4;

Dacă x>3 atunci Dacă x<7 atunci Dacă x%2=0 atunci y<- 1

altfel y<- 2

altfel y<- 3

altfel y<- 4

a) y=1 x%2=0 și x<7 și x>3

b) y=2 x%2!=0 și x<7 și x>3

c) y=3 x>=7 și x>3

d) y=4 x<=3

# data[].attributes.body
Reprezintă executarea de mai multe ori a unei instrucțiuni.

STRUCTURĂ:

Cât timp expresie logică execută

instrucțiune

Pasul 1- se evaluează expresia logică.

Pasul 2- dacă expresia este adevărată, se execută instrucțiunea după care se revine la pasul 1.

Pasul 3- dacă expresia este falsă, instrucțiunea nu se execută și se trece la execuția următoarei.

ex: Să se precizeze ce se află la sfârșitul execuției acesteia dacă se citește pentru n valoarea 4.

cât timp i <=n execută

s<-s+i

i<-i+1

scrie s

1<=4 A s=0+1; i=1+1

2<=4 A s=1+2; i=2+1

3<=4 A s=3+3; i=3+1

4<=4 A s=6+10; i=4+1

5<=4 F scrie 10.

# data[].attributes.body
Reprezintă executarea de mai multe ori a unei instrucțiuni.

STRUCTURĂ:

execută

instrucțiune

cât timp expresie logică

Pasul 1: se execută instrucțiunea.

Pasul 2: se evaluează expresia logică.

dacă expresia logică este adevărată se revine la pasul 1;

dacă expresia este falsă, se oprește execuția structurii repetitive și se trece la execuția următoarei instrucțiuni după cea repetitivă.

ex: Ce valoare se afișează la sfârșitul execuției acestuia dacă pentru n=3.

citește n

i<- 1

s<- 0

repetă

s<-s+i

i<-i+1

până când i>n

scrie s

s=0+1; i=1+1 2>4 F

s=1+2; i=2+1 3>4 F

s=3+3; i=3+1 4>4 F

s=6+4; i=4+1 5>4 A

scrie 10

# data[].attributes.headline
Structura repetitiva cu număr cunoscut de pași

# data[].attributes.subject
Structura repetitiva cu număr cunoscut de pași

# data[].attributes.body
Reprezintă execuția unei secvențe de instrucțiune de un număr cunoscuți de pași.

STRUCTURĂ:

pentru variabilă<--- valoare inițială, valoare finală, execută

instrucțiune

ex: Se consideră următorul algoritm

k<- 0

pentru i<- 1, 9 executd

dach i%3=0 atunci k<- k+1

scrie k

i= 1; 1%3=0 F

i=2; 2%3=0 F

i=3; 3%3=0 A; k=0+1=1

i=4; 4%3=0 F

i=5; 5%3=0 F

i=6; 6%3=0 A; k=1+1=2

i=7; 7%3=0 F

i=8; 8%3=0 F

i=9; 9%3=0 A; k=1+2=3

scrie 3

# data[].attributes.body
1. PRIMALITATE: un număr natural este prim dacă nu are nici un divizor propriu.

Ex: Să se scrie un algoritm care citește un nr. natural x și care verifică dacă acesta este prim.

x=24

DIVIZORII : • proprii: 2, 3 ,4 ,6 ,8, 12;

• improprii :1, 24;

Vom pleca de la presupunerea că nr. este prim (ok=1) și vom parcurge mulțimea posibilităților divizorilor proprii. Dacă vom găsi un divizor propriu al lui x, ok=0 și înseamnă că nr. nu este prim.

2. SUMA DIVIZORILOR PROPRII: