Sunteți pe pagina 1din 29

Algoritmul este o metod ce rezolv o problem pornind de la un set de date de intrare i parcurgnd un

numr finit de pai bine definii ,obinndu-se astfel un set de date de ieire.
Exist probleme rezolvabile i probleme nerezolvabile .Problema este rezolvabil dac exist un
algoritm care s o rezolve. O problem este nerezolvabil dac nu exist un algoritm care s o
rezolve.Pentru ca o succesiune de pai s constituie un algoritm acetia trebuie s ndeplineasc
urmatoarele proprieti :
1. claritatea la orice moment trebuie s tim paii care au fost parcuri i paii care urmeaz s fie
efectuai. ntotdeauna pasul urmtor trebuie s fie unic determinant i bine definit.
2. generalitatea un algoritm trebuie s rezolve toate problemele dintr-o anumit categorie ,adic
s obii date de ieire pentru orice set de date de intrare.
3. finititudinea un algoritm trebuie s se termine dup un numr finit de pai.
Datele cu care lucreaz algoritmii se clasific astfel :
1. Dup felul lor : _date de intrare ;
_date de ieire ;
_date de manevr ;
2. Dup stabilitatea lor : _date constante ;
_date variabile ;
3. Dup natura lor : _date numerice _ntregi ;
_reale ;
_date alfabetice _caractere sau iruri de caractere ;
_date logice _adevrat ;
_fals.
Constantele sunt date care nu i schimb valoarea de-a lungul unui algoritm. O constant se definete
prin numele i valoarea ei la nceputul algoritmului.
Variabilele sunt date care i pot schimba valoarea de adevr de-a lungul unui algoritm. O variabil se
declar prin nume i tip , tot la nceputul algoritmului.

O expresie reprezint o niruire de operanzi i operatori.


Operanzii pot fi constante ,variabile sau alte expresii situate ntre paranteze rotunde.
Operatorii sunt operaiile ce leag operanzii.
Operatorii se clasific astfel :

1. Dup numrul de operanzi la care se aplic _operatori unari ;


_operatori binari ;
Operatorii unari se aplic la un singur operand ( exemplu : + sau - ;semnul din faa constantei sau
variabilei ). Operatorii binari se aplic la doi operanzi.
2. Dup natura lor _operatori matematici (aritmetici) ;
_operatori relaionari (de comparaie) : < , >, =, <>, >= , <= ;
_operatori logici ;

1
Operatorii matematici (aritmetici).
Se aplic la date numerice ; Rezultatul obinut este numeric.
a) operatori unari (doar semnele + i - ) ;
b) operatori binari : 1. operatori multiplicativi _nmulirea - * ;
_mprirea - / ;
_mod;
_div.
Mod returneaz restul mpririi primului operand la cel de-al doilea.
Div returneaz partea ntreag mpririi primului operand la cel de-al doilea.
2. operatori aditivi _adunarea ;
_ scderea .
Operatori relaionari (de comparaie).
Sunt operatori binari . Acetia se aplic la date numerice, alfabetice, logice. Pentru datele alfabetice se
compar codurile ASCII corespunztoare caracterelor. Rezultatul
obinut n urma aplicrii operatorilor relaionari este logic.
Operatorii logici.
a) operatori unari : NOT (negaia n limba englez) ;
b) operatori binari : _ AND conjuncia;
_OR disjuncia;
_XOR exclusiv.
Operatorii logici se aplic la date de tip logic , rezultatul fiind tot logic.

Operatorul not Operatorul and

a not a a b a and b
A A A
A F A F F
F A F A F
F F F
Operatorul or Operatorul xor
a b a or b a b a xor b
A A A A A F
A F A A F A
F A A F A A
F F F F F F

1. operatori unari not, sem +, -


2. operatori multiplicativi *, /, div, mod
3. operatori aditivi +, -
4. operatori relaionari <, >, <=, >=, =, <>
5. and
6. xor
7. or

2
Orice algoritm , atunci cnd este conceput, trebuie s respecte teorema de structur a lui Jacopini
Bohm.
TEOREMA DE STRUCTUR se enunt astfel :
Orice algoritm poate fi reprezentat , folosind doar structurile de control (liniar , alternativ i
repetitiv).
Un algoritm poate fi reprezentat n mai multe moduri :
1. Limbaj natural este accesibil deoarece folosete pentru descrierea pailor cuvintele limbii romne .

2. Schema logic pentru fiecare operaie se folosete o reprezentare grafic . Pentru algoritmii de o
complexitate mai mare , schemele logice pot devenii greu de urmrit.

START STOP
Bloc de nceput Bloc de sfrit

CITETE SCRIE
Operaia de citire Operaia de scriere

a a+1 False True


a<b
Operaia de atribuire
Bloc de decizie

3. Limbaj pseudocod este format din reguli sintactice i cuvinte cheie cu ajutorul crora putem codifica
operaiile unui algoritm. Aceste cuvinte cheie aparin limbii romne.
operaia de citire ; operaia de scriere ; operaia de atribuire ; operaia de incrementare ; operaia de
decrementare.
A incrementa a mrii cu o unitate valoarea unei variabile : inc (a) sau a a+1 .
A decrementa a micora cu o unitate valoarea unei variabile : dec (a) sau a a - 1.

3
exemplu : nceput
instruciune 1 ;
instruciune 2 ;
.
instruciune n ;
sfrit.

Instruciunea compus este o niruire de instruciuni delimitate cu ajutorul cuvintelor cheie :


nceput i sfrit.
Orice algoritm reprezentat n pseudocod este o instruciune compus.

aa+b; Realizeaz interschimbul a dou variabile fr


bab; a folosi o variabil suplimentar.

a a b.

aux a ; Realizeaz interschimbul a dou variabile


folosind o variabil suplimentar ( aux ).
ab;
b aux .

I. FORMA COMPLET.
1. Sintaxa :
dac < expresie logic > atunci
< instruciune 1 >
altfel
< instruciune 2 > ;
sfrit dac.
2. Execuia pe pai :
Pasul 1 . Se evalueaz expresia logic.
2. Dac este adevrat , atunci se execut instruciunea 1.
3. Dac este fals , atunci se execut instruciunea 2.
dac a > b atunci
scrie a > b
altfel
scrie b > a ;
sfrit dac.

4
3. Observaii :
a) n loc de instruciune 1 , 2 putem avea orice alt structur de control.
b) Instruciunea 1 face parte din ramura de TRUE a structurii alternative.
c) Instruciunea 2 face parte din ramura de FALSE a structurii alternative.
d) La o execuie a structurii alternative se realizeaz FIE instruciune 1 , FIE instruciune 2 .
e) Ramura de false poate lipsi , atunci este o form incomplet a structurii alternative .

II. FORMA INCOMPLET.


1. Sintaxa :
dac < condiie > atunci
< instruciune 1 >
Sfrit dac.
2. Execuia pe pai :
Pasul 1. Se evalueaz expresia logic.
2. Dac este adevarat se execut instruciune 1.
3. Dac este fals se trece mai departe n algoritm.
3. Observaii :
Cuvintele cheie respect o anumit sintax i pot fi folosite numai ntr-un anumit context.

Sunt trei tipuri de structuri repetitive :

1. Structura repetitiv cu test iniial ;


2. Structura repetitiv cu test final ;
3. Structura repetitiv cu numr cunoscut de pai.

Structura repetitiv cu test iniial ( condiionat anterior ).

1. Sintaxa :
cttimp < condiie > execut
< instruciune>
sfrit cttimp.
2. Execuia :
Pasul 1. Se evalueaz expresia.
2. Dac este adevarat condiia se execut instruciunea.
3. Se repet execuia instruciunii cttimp condiia este adevrat.
4. Cnd condiia devine fals se trece mai departe n program.
3. Observaii :
a) n loc de instruciune putem avea orice alt structur de control ( liniar, alternativ sau
repetitiv ).
b) Dac de la nceput condiia este fals se trece mai departe n program fr ca instruciunea s se
execute vreodat .

Observatii !!!
1. ntotdeauna suma se iniializeaz cu valoarea 0 .
2. ntotdeauna produsul se iniializeaz cu valoarea 1.
3. ntotdeauna maximul se iniializeaz cu o valoare foarte mic i minimul se
iniializeaz cu o valoare foarte mare.

5
1. CEL MAI MARE DIVIZOR COMUN.

a) Prin scderi repetate :

D.I. : a, b ; { naturale }
nceput program
citete a, b ; { naturale }
cttimp a <> b execut
dac a > b atunci
a a b
altfel
b b a ;
sfrit dac
sfrit cttimp
scrie c.m.m.d.c. este , a ;
sfrit program.

b) Prin mpriri repetate ( algoritmul lui Euclid ) :

D.I. : a, b ; { naturale }
D.M. : d , i, r ; {naturale }
nceput program
citete a, b ; { naturale }
da;
ib;
r d mod i ;
cttimp r <> o execut
nceput
di;
i r;
r d mod i ;
sfrit
sfrit cttimp
scrie c.m.m.d.c. este , i ;
sfrit program.

6
2. CIFRELE UNUI NUMR.

D.I. : n ; { natural }
D.O. : s, p ; { naturale }
D.M. : c ; { naturala }
nceput program
citete n ; { natural }
s0;
p1;
cttimp n <> 0 execut
nceput
c n mod 10 ;
ss+c;
pp*c;
n n div 10 ;
sfrit
sfrit cttimp
scrie suma este , s ;
scrie produsul este , p ;
sfrit program.

3. PALINDROM.

D.I. : x ; { natural }
D.M. : c ; { natural }
nceput program
citete x ; { natural }
xo 0 ;
zx;
cttimp x <> 0 execut
nceput
c x mod 10 ;
xo xo * 10 + c ;
x x div 10 ;
sfrit
dac z = xo atunci
scrie x este palindrom , x ;
altfel
scrie x nu este palindrom , x ;
sfrit dac
sfrit cttimp
sfrit program .

7
4. DIVIZORII UNUI NUMR.

D.I. : n ; { natural }
D.O. : s , p ; { naturale }
D.M. : d ; { natural }
nceput program
citete n ; { natural }
s0;
p1;
d2;
cttimp d <= n div 2 execut
nceput
dac n mod d = 2 atunci
nceput
ss+d;
pp*d;
sfrit
sfrit dac
dd+1;
sfrit
sfrit cttimp
scrie suma este , s ;
scrie produsul este , p ;
sfrit program.

5. NUMR PRIM.

D.I. : a ; { natural }
D.M. : d , nr ; { naturale }
nceput program
citete a ; { natural }
d2;
nr 0 ;
cttimp d <= a div 2 execut
nceput
dac a mod d = 0 atunci
nr nr + 1 ;
sfrit dac;
dd+1;
sfrit
sfrit cttimp
dac nr = 0 atunci
scrie a este prim ;
altfel
scrie a nu este prim ;
sfrit dac
sfrit program.

8
6. MAXIMUL DINTR-UN IR DE NUMERE.

D.I. : n , x1, x2, x3, , xn ; { naturale }


D.M. : i ; { natural }
D.O. : x max ; { natural }
nceput program
citete n ; { natural }
i 0;
x max 0 ;
cttimp i <= n execut
nceput
citete x ; { natural }
dac x > x max atunci
x max x ;
sfrit dac
i I+1;
sfrit
sfrit cttimp
scrie x max este , x max ;
sfrit program .

7. MINIMUL DINTR-UN IR DE NUMERE .

D.I. : n, x1, x2, x3, , xn ; { naturale }


D.O. : x min ; { natural }
D.M. : i ; { natural }
nceput program
citete n ; { natural }
i0;
x max 11 ;
cttimp i <= n execut
nceput
citete x ; { natural }
dac x < x min atunci
x min x ;
sfrit dac;
i i +1 ;
sfrit
sfrit cttimp
scrie x min este , x min ;
sfrit program.

9
8. VALIDAREA DATEI DE INTRARE.

D.I. : n ; {natural}
D.M. : c, c min, nr ; {natural}
D.O. : c min ; {natural}
nceput program
repet
citete n ;{natural}
nr 0 ;
repet
nceput
c n mod 10 ;
n n div 10 ;
nr nr +1 ;
sfrit
pn cnd n=0 ;
pn cnd nr <=9 ;
scrie cifra minim este ,c min ;
sfrit program.

VALIDAREA DATELOR DE INTRARE SE FACE NTR - O STRUCTUR


REPETITIV CU TEST FINAL N CARE CONDIIA ESTE CEA MAI IMPORTANT
DIN ENUN PENTRU DATELE DE INTRARE.

9. C.M.M.M.C.

D.I. : a, b ; {natural}
D.M. : c ;{natural}
D.O. : x, y ; {natural}
nceput program
citete a, b ; {natural}
p 1 ;
x a ;
y b ;
repet
dac a >b atunci
a a b ;
altfel
b b a ;
sfrit dac;
p x * y;
pn cnd a = b ;
c p/a;
scrie c.m.m.d.c. este ,a;
scrie c.m.m.m.c este ,c;
sfrit program.

10
10. NUMR PERFECT.

D.I. : n; {natural}
D.M. : d, sd ;{natural}
nceput program
citete n ;{natural}
sd 0 ;
pentru d 1, n div 2 execut
dac n mod d =0 atunci
sd sd +d;
sfrit dac;
dac n = sd atunci
scrie n este perfect;
altfel
scrie n nu este perfect;
sfrit dac ;
sfrit program.

11. NUMR FACTORIAL.

D.I. : n ; {natural }
D.M. : i ;{natural}
D.O. : f ; {natural}
nceput program
citete n ; {natural}
f 1;
pentru i 1, n execut
f f * i;
scrie f este , f;
sfrit program.

12. IRUL LUI FIBONACCI.

D.I.:n, a, b ; {naturale}
D.M.: c, i ;{naturale}
D.O. : c; {natural}
nceput program
citete n ;{natural}
a 1;
scrie a;
b 1;
scrie b;
pentru i 3, n execut
nceput
c a +b;
scrie c;
a b;
b c;
sfrit
sfrit program.

11
13. TRECEREA NUMRULUI n DIN BAZA 10 N BAZA b.

D.I.: n, b ;{naturale}
D.O. : nr ;{natural}
D.M. :p, nr ;{natural}
nceput program
citete b ;{natural}
scrie introducei n n baza 10 ;
citete n ;{natural}
nr 0 ;
p 1 ;
cttimp n >0 execut
nceput
nr nr +p * (n mod 10);
n n div b;
p p*10;
sfrit
sfrit cttimp.

scrie nr;
sfrit program.

14. TRECEREA NUMRULUI n DIN BAZA b N BAZA 10.

D.I. : n, b; {naturale}
D.O. :nr ; {natural}
D.M. : p , nr ;{natural}
nceput program
citete b ; {natural}
citete n ;{natural}
nr 0 ;
p 1 ;
cttimp n > 0 execut
nceput
nr nr +p * (n mod 10);
n n div 10;
p p * b;
sfrit
sfrit cttimp.
scrie nr;
sfrit program.

n numrul n baza 10;


nr numrul n baza b.

12
15. DESCOMPUNEREA N FACTORI PRIMI.

D.I. : n ;{ natural }
D.M. : d, e, j ;{ naturale }
nceput program
citete n ;{ natural }
jn;
d2;
cttimp n > 1 execut
nceput
e0;
cttimp n mod d = 0 execut
nceput
ee+1;
n n div d ;
sfrit
sfrit cttimp ;
dac e > 0 atunci
scrie d , ^, e ;
sfrit dac ;
dd+1;
sfrit
sfrit cttimp ;
sfrit program .

ALGORITMII ECHIVALENI sunt algoritmii care pornind de la acelai set de


date de intrare , ajung la acelai set de date de ieire .

s0;
i0;
cttimp i <> 10 execut
nceput
s s +1 ;
i i +1 ;
sfrit
sfrit cttimp ;
scrie s, i .

s0;
i0;
repet
ss+1;
ii+1;
pn cnd i = 10 ;
scrie s, i .

Cei doi algoritmi sunt echivaleni .

13
1 . Sintaxa .

repet
< instruciune >
pn cnd < condiie > ;

2. Execuia .

a) Se execut instruciunea ;
b) Evalum condiia ;
c) Se repet execuia instruciunii atta timp ct condiia este fals .
d) Cnd condiia devine adevrat se trece mai departe n program .

3. Observaii .

a) n loc de < instruciune > putem avea orice alt structur de control ;
b) Indiferent de valoarea de adevr a condiiei , instruciunea se execut mcar o dat .

14
1 . Sintaxa .

pentru < contor > < vi > , < vf > execut


< instruciune > .

2. Execuia ( evaluarea ) .

a) Se iniializeaz contorul cu valoarea iniial .


b) Se execut instruciunea .
c) Se incrementeaz contorul cu o unitate .
d) Se testeaz dac noua valoare a contorului este mai mic sau egal cu valoarea final .
_ dac este adevrat se execut din nou instruciunea .
_ dac este fals se trece mai departe n program .
e) Se repet pasul d) , pn cnd contorul este egal cu vf . Situaie n care se execut pentru
ultima dat instruciunea .

3. Observaii .

a) n loc de instruciune putem avea orice alt structur de control ;


b) Dac vi = vf atunci instruciunea se execut o singur dat ;
c) Dac vi > vf atunci instruciunea nu se execut niciodat ;
d) Contorul , vi , vf , trebuie s aib tipuri compatibile .

Un sistem de numeraie conine o mulime de simboluri i un set de reguli de


reprezentare a numerelor cu ajutorul simbolurilor . Mulimea de simboluri reprezint
baza sistemului de numeraie .
Exist 2 tipuri de sisteme de numeraie .
1 . Sisteme poziionale poziia unui simbol este determinant : sistemul zecimal .
2 . Sisteme nepoziionale poziia unui simbol nu este determinant : sistemul roman .

SISTEMUL ROMAN

I V X L C D M
1 5 10 50 100 500 1000

1. Dac sunt 2 simboluri identice atunci valoarea se obine prin adunarea valorilor .
II = 1 + 1 = 2
2. Dac naintea unui simbol se afl un simbol de valoare mai mic atunci valoarea se obine
prin scderea valorii mai mici din valoarea mai mare .
IV = V I = 5 1 = 4
3. Dac dup un simbol avem un simbol de valoare mai mic atunci valoarea se obine prin
adunarea valorilor celor 2 simboluri .

15
C = LL = 100
Alte sisteme de numeraie poziionale : sistemul octal ( 07 ) , sistemul hexazecimal
( 09 , a , b , c , d , e , f ) , sistemul binar ( 0 , 1 ) .

1. Conversia numerelor din baza 10 b .


Aceast conversie se realizeaz mprind numrul la baz ,pn cnd ultimul ct are valoarea 0.
1263(10) b16 4ef (16)

1263 : 16 = 78 rest 15
78 : 16 = 4 rest 14
4 : 16 = 0 rest 4

2 . Conversia numerelor din baza b n baza 10.


Se realizeaz folosind dezvoltarea dup puterea bazei sistemului de numeraie i realiznd calculul
.
11001( 2) b10
11001( 2) 1 * 2 4 1 * 2 3 0 * 2 2 0 * 21 1 * 2 0 25

3 . Conversia numerelor din baza b n baza b .


Se realizeaz prin intermediul bazei 10 .

b10 b16 b2 b10 b16 b2


0 0 0000 8 8 1000

1 1 0001 9 9 1001

2 2 0010 10 A 1010

3 3 0011 11 B 1011

4 4 0100 12 C 1100

5 5 0101 13 D 1101

6 6 0110 14 E 1110

7 7 0111 15 F 1111

364125 (8) b16


0001.1110.1000.0101.0101
1E855 b8
00.011.110.100.001.010.101
364125
16 2 4
8 23

16
Un program C++ are o structur de bloc ; blocul are 2 pri :
1. partea declarativ (opional) ;
2. partea executabil (obligatorie).
Partea declarativ conine declaraii de obiecte utilizate n program : tipuri de date, variabile,
constante, funcii.
Partea executabil conine o niruire de instruciuni (citire, scriere, atribuire, insturciunea de
control care transform n limbaj de programare structurile de control).

#include <iostream .h> *directiv de preprocesare prin care se face


_definiii de tipuri ; apelul la diverse biblioteci cu care se
_definiii de constante ; lucreaz n program . ntr-un program
_declaraii de variabile ; se pot apela mai multe biblioteci.
_definiii de funcii.

PARTEA DECLARATIV

void main ( ) * p.e. este o funcie care se numete main ,


{ nu are parametrii i nu returneaz niciun
instruciuni ; rezultat . Corpul acestei funcii este o
} structur liniar delimitat cu ajutorul
acoladelor .

PARTEA EXECUTABIL

Cuprinde :
1. Sintaxa regulile respectate n scrierea unui program ;
2. Semantica nelesul elementelor folosite ntr-un program ;
3. Setul de caractere _ caractere alfabetice : literele alfabetului englez az ;AZ ;
_caractere numerice : cifrele sistemului zecimal 09 ;
_ caractere speciale : ; , , , [ , ] etc.

Identificatorii
Sunt nume cu ajutorul crora se recunosc diferitele obiecte din program .
Caracteristici : _31 de caractere ( lungimea maxim ) ;
_conine : caractere alfabetice , numerice i caracterul special _ ;
_ nu trebuie s nceap cu o cifr .

Separatorii
, separ identificatorii dintr-o list ;
; separ instruciunile .

Comentariile
Sunt opionale i utilizate pentru a oferi informaii suplimentare legate de program . Sunt
delimitate astfel :
1. dac sunt pe mai multe rnduri : / *
*/ .
2. dac sunt pe un singur rnd : //

Delimitatorii
{}

17
Clasificarea datelor cu care lucreaz algoritmii :
1. Dup stabilitatea lor : constante ; variabile .
2. Dup natura lor : numerice ( ntregi ; reale ) ; caracter ; ir de caractere ;
3. Dup structura lor : simple ; structurate .
Datele pot fi structurate astfel ;
_n memoria intern , avnd un numr finit de elemente de acelai tip ( tipul tablou ) ;
_n memoria extern , avnd elemente de acelai tip dar n numr nu neaparat finit (tipul fiier).

TIPURI SIMPLE DE DATE


Un tip de date se caracterizeaz prin :
1. nume ;
2. spaiul ocupat n memorie ;
3. domeniul de valori ;
Tipuri : ntregi sau reale .

TIPURI NTREGI

NUME SP.OC.N MEMORIE DOM.DE VALORI


CHAR 1 B (O) CS 27 27 1
INT 2 B (O) CS 32768 32767
NTREGI
FLOAT 4 B (O) CS 3,4 *10 38 3,4 *1038
DOUBLE 8 B (O) CS 1,7 *10 308 1,7 *10308
REALE

Caracterele se ncadreza la tipurile ntregi deoarece sunt memorate cu ajutorul codurilor ASCII.
Numerele ntregi sunt memorate n cod complementar lui 2 (binar) .

MODIFICATORII DE TIP
SIGNED ; UNSIGNED ; SHORT ; LONG .
Tpul CHAR suport modificatorii signed i unsigned .
Tipul INT suport toi cei 4 modificatori .
Tpul FLOAT nu suport niciun modificator .
Tipul SIGNED i SHORT nu au efect asupra tipurilor de baz .
UNSIGNED permite n domeniul de valori doar numere pozitive iar LONG modific spaiul
ocupat n memorie cu 2 B (O) .

TIPURI VARIATE DE DATE

NUME SP.OC.N MEMORIE DOM.DE VALORI


UNSIGNED CHAR 1 B (O) 0 255
UNSIGNED INT 2 B (O) 0 65535
LONG INT 4 B (O) 2147483648 2147483647
UNSIGNED LONG-INT 4 B (O) 0 4294967205
LONG - DOUBLE 10 B (O) 3,4 *10 4932 1,1*10 4932

18
CONSTANTE

Constantele pot fi : numerice ; caractere ; iruri de caractere ; cuvinte cheie .

1.Constante numerice
a) constante ntregi : zecimale 09 ; octale 07 (0 este nesmnificativ) ; hexazecimale 09 sau
af sau AF + prefixul ox .
b) constante reale : 3.15 ; 0.5 .Format tiinific folosete notaia cu mantis i exponent
ex. 3.5e-2 = 3.5 *10 2 .

2.Constante caracter
Aceste constante sunt delimitate cu ajutorul apostrofurilor.
Ex. a , B ,secvene escape (sunt delimitate cu ajutorul apostrofurilor i ncep cu \ )
\\ , \ , \ ;
\n are ca efect trecerea cursorului la nceputul unui rnd nou .
\123 constant octal , cele zecimale nu se afieaz .
\x123 constant hexazecimal.

3.Constante ir de caractere
Sunt delimitate cu ajutorul ghilimelelor .
Mocanu Ana

4.Constante cuvinte-cheie
NULL

OPERATORII

1.Operatorii matematici unari ( +, - ) ;


binari aditivi : adunarea i scderea ;
multiplicativi : *, / , % .

2.Operatorii relaionari
< , > , <= , >= , == , != .

3.Operatorii logici unari : ! (negaia) ;


binari : ||(or) , & & (and) .
0 reprezint FALSE i diferit de 0 reprezint TRUE .
OR dac ambii operanzi sunt 0 , rezultatul este 0 .
AND dac ambii operanzi sunt diferii de 0 , rezultatul este diferit de 0.

4. Operatorii logici pebii unari : ~ (negaia pebii )


binari : & (i pebii ) , ^ (xor pebii ) , | (sau pebii ) .

a b ~a a&b a^b a |b
0 0 1 0 0 0
0 1 1 0 1 1
1 0 0 0 1 1
1 1 0 1 0 1

19
5. Operatorii de incrementare decrementare
a) incrementare ++;
b) decrementare - - ;
Sunt operatori unari .
Acetia au 2 forme : _forma prefixat ++a , - - a .
_ forma postfixat a++ , - - a .
Se aplic la operanzi numerici, iar rezultatul este tot numeric.
Evaluarea formei prefixate : mai nti se aplic operatorul apoi se evalueaz expresia .
Evaluarea formei postfixate : mai nti se evalueaz expresia apoi se aplic operatorul .

6. Operatorii de atribuire ( = )
Atribuirea se realizeaz de la dreapta la stnga i dac este cazul nainte de atribuire se
realizeaz conversia implicit ( tipul expresiei din dreapta operatorului se convertete la tipul variabilei
din stnga operatorului ).
< v > = < exp >
Este de mai multe tipuri :
a) Simpl : < v >= <exp >.
b) Multipl : < v >= < exp1 >= <exp2 >==< exp n >.
c) Combinat : se obine prin combinarea operatorului de atribuire cu operatorii binari logici
pebii , cei de deplasare .
+= , -= , *= , /= , |= , &= , ^= , %= , <<= , >>= .

7. Operatorii de deplasare
Lucreaz la nivel de bit.
<< - operatorul de deplasare spre stnga . Este binar i deplaseaz spre stnga bii primului
operand cu un numr de poziii dat de cel de-al doilea operand .
a=01010101
a<<3=10101000
>> - operatorul de deplasare spre dreapta . Este binar i deplaseaz spre dreapta bii primului
operand cu un numr de poziii dat de cel de-al doilea operand.
a=10010
a>>2=00100

8. Operatorul sizeof
Este un operator unar ce returneaz spaiul ocupat n memorie de un anumit tip sau de o
anumit variabil .
sizeof (dat) ; sizeof (tip)
int a ; sizeof a = 2 B (O) ; sizeof ( float ) = 4 B (O) .

9. Operatorul ternar = condiional ( ?: )


Sintaxa : <exp1>?<exp2> :<exp3>
Evaluare : _se evalueaz exp1 ;
_dac este adevrat atunci exp capat valoarea exp2 ;
_dac este fals atunci ntrega exp capat valoarea exp3.
a>b?cout<<a :cout<<b ;

10. Operatorul cast (de forare a tipului )


Realizeaz conversia explicit a tipului unei variabile .
( tip ) < variabil . Este unar .
int a = 5
( float ) a= 5.0

20
NR. CRT. Operatori Categoria
1. () Paranteze
2. ! , ~ , + , - , + + , - - , sizeof , cast Unari
3. *,%,/ Multiplicativi
4. +,- Aditivi
5. < , <= , > , >=
6. == , ! = Egalitate
7. << , >> De deplasare
8. & i pebii
9. ^ Xor pebii
10. | Sau pebii
11. && i logic
12. || Sau logic
13. ?: Ternar
14. =, +=, - =, *=, /=, %=, &=, |=, ^=, <<=, >>= Atribuire

1. Instruciunea IF
Transcrie n limbaj C structura alternativ .
if (expresie logic )
<instruciune1>
else
<instruciune2>.

2. Instruciunea WHILE
Transcrie n limbaj C structura repetitiv cu test iniial .
while (condiie)
<instruciune>.

3. Instruciunea DOWHILE
Transcrie n limbaj C structura repetitiv cu test final .
do
<instruciune>
while (expresie logic ).
Evaluare :
a) Se execut instruciunea ;
b) Se evalueaz condiia ;
c) Se repet execuia instruciunii cttimp condiia este adevrat ;
d) Cnd condiia devine fals se trece mai departe n program .

4. Instruciunea FOR
for (exp1 ; exp2 ; exp3 )
<instruciune>.

Evaluare : exp1 se folosete pentru a iniializa valoarea contorului . Cu ajutorul exp2 se testeaz
dac s-a ajuns sau nu la valoarea final a contorului . Exp3 reprezint modul n care evolueaz contorul
, acesta poate fi incrementat sau decrementat. Instruciunea este executat cttimp contorul are valori
cuprinse ntre valoarea exp1 i valoarea exp2.

21
Operaii de intrare ieire
Citirea datelor de la intrarea standart (tastatura) se realizeaz astfel :
cin>> variabil ;
Afiarea datelor la ieirea standart (monitorul ) se realizeaz astfel :
cout << variabil ;
OBS. Dac se dorete afiarea mai multor variabile n instruciunea cout atunci numele
variabilelor se scriu separat cu ajutorul caracterelor << .

1. C.M.M.D.C.

a) #include<iostream.h>
int a , b ;
void main ( )
{
cin>>a ;
cin>>b ;
while (a!=b)
if (a>b)
a - = b;
else
b-=a.
cout<<a ;
}

b) #include <iostream.h>
int a, b, d, i, r ;
void main ( )
{
cin>>a ;
cin>>b ;
d=a;
i=b;
r=d%i;
while (r!=0)
{
d=i;
i=r;
r=d%i;
}
cout << i ;
}

22
2. PALINDROM

#include<iostream.h>
int x, z, xo, c ;
void main ( )
{
cin>> x ;
xo = 0 ;
z=x;
while (z != 0)
{
c=z % 10 ;
xo = xo *10 + c ;
z = z /10 ;
}
if ( x == xo )
cout << x este palindrom << x ;
else
cout << x nu este palindrom<< x .
}

3. NUMR PRIM

#include<iostream.h>
unsigned int a, d, nr ;
void main ( )
{
cin>>a ;
d=2;
nr = 0 ;
while ( d <= a/2 )
{
if ( a % d ==0 )
nr += 1 ;
d += 1 ;
}
if ( nr == 0 )
cout <<a este prim <<a ;
else
cout <<a nu este prim <<a ;
}

23
4 .MAXIMUL DINTR-UN IR DE NUMERE

#include<iostream.h>
int n, x, i, max ;
void main ( )
{
cin>>n;
i=0;
max = 0 ;
while ( i<=n)
{
cin>>x ;
if (x> max)
max = x ;
i += 1 ;
}
cout<<max ;
}

5. MINIMUL DINTR-UN IR DE NUMERE

#include<iostream.h>
int n, x, i, min ;
void main ( )
{
cin>>n;
min = 10000 ;
i=0;
while ( i <=n )
{
cin>>x ;
if (x<min )
min = x ;
i +=1 ;
}
cout <<min ;
}

24
6 . C.M.M.M.C.

#include<iostream.h>
int a, b, c, x, y, p ;
void main ( )
{
cin >> a ;
cin >>b ;
p=1;
x=a;
y=b;
do
if (a>b)
a-=b;
else
b-=a;
p = x*y ;
while (a != b) ;
c = p/a ;
cout <<c.m.m.d.c.=<<a ;
cout <<c.m.m.m.c.= <<c ;
}

7. IRUL LUI FIBONACCI

#include<iostream.h>
int a, b, c, i, n ;
void main ( )
{
cin >>n ;
a=1;
cout <<a ;
b=1;
cout <<b ;
for (i=3 ; i<=n ; i++)
{
c=a+b;
cout<<c ;
a=b;
b=c;
}
}

25
8. TRECEREA NUMRULUI n DIN BAZA 10 N BAZA b

#include<iostream.h>
int n, b, p, nr ;
void main ( )
{
cin >>b ;
cout << introducei n n baza 10 ;
cin >>n ;
nr = 0 ;
p = 1;
while ( n>0 )
{
nr = nr + p * ( n % 10 ) ;
n = n /b ;
p = p*10 ;
}
cout<<nr ;
}

9. TRECEREA NUMRULUI n DIN BAZA b N BAZA 10

#include<iostream.h>
int n, b, p, nr ;
void main ( )
{
cin >> b ;
cin >> n ;
nr = 0 ;
p=1;
while ( n> 0 )
{
nr = nr + p*( n % 10 ) ;
n = n/ 10 ;
p = p*b ;
}
cout<<nr ;
}

26
10 . DESCOMPUNEREA N FACTORI PRIMI

#include<iostream.h>
int n, d, e , j ;
void main ( )
{
cin >> n ;
j=n;
d=2;
while ( n> 1 )
{
e=0;
while ( n% d == 0 )
{
e += 1 ;
n = n /d ;
}
if ( e > 0 )
cout << e ;
d += 1 ;
}
}

11 . NUMR PERFECT

#include<iostream.h>
int n, d, sd ;
void main ( )
{
cin>>n ;
sd = 0 ;
for ( d = 1 ; d <=n/2 ; d ++)
if ( n%d ==0 ) ;
sd = sd + d ;
if ( n== sd )
cout <<n este perfect <<n ;
else
cout << n nu este perfect<<n ;
}

27
# include < math.h >

abs : Z N abs(x) modulul lui x ;


pow : R R pow(x , 2) x la puterea a doua ;
sqrt : R R sqrt(x) radical din x ;
sin : R [1,1] sin(x) , cos(x) , arctan(x) funcii
cos : R [1,1] trigonometrice ;
a tan : R R
log : R R log(x) logaritm natural (ln x) ;
log 10 : R R log10(x) logaritm n baza 10 (lg x) ;
exp : R R exp(x) e x (e 2,71 constanta Euler ) ;
ceil : R Z ceil(x) rotunjete la cel mai apropiat
ntreg mai mare dect x ;
floor : R Z floor(x) rotunjete la cel mai apropiat
ntreg mai mic decat x ;
pow : RxR R pow(x,y) calculeaz x y .

Tablourile sunt structurate de date ce contin un numar cunoscut de elemente(elementele fiind


de acelasi tip simplu).Exista 2 tipuri de tablouri :
1)Tablouri unidimensionale(elementele acestora pot fi identificate cu ajutorul unui singurindice)
2)Tablouri bidimensionale(elementele acestora pot fi identificati cu ajutorul a 2 indici)

Tablouri unidimensionale.Declararea unui tablou


unidimensional
<tip element> ;<nume tablou> ;[dimensiunea maxima a tabloului]
Caracteristicile unui tablou :-dimensiunea tabloului
-tipul elementelor
-numele tabloului

28
Fiierele sunt :
1 . de intrare dac se folosesc pentru a citi datele din ele ;
2. de ieire dac se folosesc pentru a afia rezultatele .
Exemplu :
*S se determine i s se afieze toate numerele prime mai mici ca o valoare n dat . Valoarea lui
n se va citi dintr-un fiier iar rezultatele se vor afia ntr-un alt fiier .
Orice fiier are un nume ce conine obligatoriu o extensie . n program se lucreaz cu o variabil
asociat fiierului .

#include<fstream.h>
#include<math.h>
ifstream f ( IN.TXT) ;
ofstream g ( OUT.TXT) ;
void main ( )
{
unsigned int d, n, i, nr ;
f >>n ;
for (i =1 ; i<=n ; i++)
{
nr = 0 ;
for (d= 2 ; (int)d<=sqrt(i) ; d++)
if (i % d ==0 )
nr ++;
if (nr == 0 )
g <<i<<endl ; // g<<i << ; // g << i ;
}
f.close ( ) ;
g .close ( ) ;
}

Etapele parcurse n realizarea unui program ce folosete fiiere :


Se creeaz fiierul /fiierele de intrare . Din mediul de programare se d comanda FILE NEW
(pe prima linie se scrie direct valoarea lui n ). Dup ce s-a scris , se salveaz fiierul i se nchide sub
numele de INT.TXT .
Obs.Fiierul de ieire se creez n mod automat atunci cnd se ruleaz programul.
( C BC45 BIN fiier ieire ) .

29

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