Documente Academic
Documente Profesional
Documente Cultură
A. Definitii si caracteristici
B. Datele
C. Operatori si expresii
D. Structuri de control
E. Fișă de control. Exerciții
Definitii și caracteristici
Definitie:
Algoritmul este un set finit de pasi executabili, descrisi fara echivoc, pentru determinarea solutiei
unei probleme.
Proprietati:
Finitate: orice algoritm trebuie sa rezolve problema într-un numar finit de pasi;
Claritatea : algoritmul trebuie descris clar, fara ambiguitati
Universalitate: orice algoritm trebuie sa rezolve toate problemele dintr-o clasa de
probleme;
Succesiunea bine determinata a pasilor
Realizabilitatea: orice algoritm trebuie sa poata fi codificat într-un limbaj de
programare;
Eficienta-se refera la timpul de executie si la spatiul de memorie utilizat.
Datele de intrare sunt coeficientii ecuatiei a si b, data de iesire va fi solutia ecuatiei x iar metoda
de rezolvare este metoda matematica de rezolvare de rezolvare a ecuatiilor de gr I.
4. Testarea algoritmului
Presupune determinarea erorilor care pot fi erori de editare sau erori privind algoritmul de
rezolvare. Pentru testare se vor folosi mai multe seturi de date.
Algoritmul de rezolvare a ecuatiei ax+b=0
Pas 1 - Inceput
Pas 2 - Comunica valorile pentru a si b.
Pas 3 - Compara a = 0. Daca este adevarat executa pasul 4. Altfel executa pasul 7.
Pas 4 - Compara b = 0. Daca este adevarat executa pasul 5. Altfel executa pasul 6.
Pas 5 - Comunica mesajul “Ecuatia are o infinitate de solutii”. Mergi la pasul 9.
Pas 6 - Comunica mesajul “Ecuatia nu are solutii”. Mergi la pasul 9.
Pas 7 - Calculeaza x = -b/a.
Pas 8 - Comunica valoarea lui x.
Pas 9 - Terminat.
Datele
Data este un model de reprezentare a informatiei, accesibil calculatorului, cu care se poate opera
pentru a obtine noi informatii.
Identificatorul - este numele atribuit datei de catre cel care defineste data.
Ex: a, alfa, x_1
Valoarea - reprezinta continutul zonei de memorie in care este stocata data.
Atributele - sunt proprietati ale datelor care determina modul in care sistemul va trata acele date.
Clasificarea datelor:
a. Dupa momentul in care se produc:
date de intrare - datele care urmeaza sa fie prelucrate in cadrul algoritmului
date intermediare - folosite pentru realizarea unei prelucrari
date de iesire - reprezinta rezultatul obtinut
b. Dupa valoare:
variabile - isi pot modifica valoarea pe parcursul procesului de prelucrare
constante - isi vor pastra valoarea pe tot parcursul prelucrarii
d. Dupa tip:
date numerice
date logice
siruri de caractere
Tipul datei determina:
dimensiunea zonei de memorie alocate datei (octeti)
operatorii care pot fi aplicati pe acea data
modul de reprezentare in memoria interna(codificare in binar)
Tipuri de date:
1. Tipul numeric - pentru reprezentarea numerelor intregi (intreg) sau cu zecimale (real).
Ex: 3, -1.5, 15.0
2. Tipul logic - pentru reprezentarea datelor care nu pot lua decat doua valori:
adevarat (true, T) sau fals (false, F)
3. Tipul sir de caractere - pentru reprezentarea unei multimi de caractere tratata ca un tot unitar.
Ex: “alfa”, „abc‟
Operatori si expresii
Operatorii sunt caractere speciale sau cuvinte cheie prin intermediul carora se reprezinta
operatiile care se efectueaza in cadrul algoritmului.
Clasificare:
1. Operatori matematici:
+ (adunare)
- (scadere)
* (inmultire) 2*4=8
/ (impartire reala) 5/2=2.5
^ sau ** (ridicare la putere) 2^3=8
div (impartire intreaga - calculeaza catul impartirii) 13 div 4=3
mod( modulo - calculeaza restul impartirii) 13 mod 4=1
Obs: Operatorii matematici se aplica pe date de tip numeric iar rezultatul va fi numeric.
2. Operatorii relationali:
< (mai mic)
> (mai mare) (12>10) = T
<= (mai mic sau egal) (7<=5) = F
>= (mai mare sau egal) (8>=8) = T
= (egal)
<> (diferit) (23<>6) = T
Obs: Operatorii relationali se aplica pe date de tip numeric sau sir de caractere iar rezultatul este
de tip logic.
3. Operatorul de concatenare:
+ reuneste doua siruri de caractere intr-un singur sir.
4. Operatorii logici:
and (si logic)
or (sau logic)
not (negare)
Considerand doi operanzi a si b se vor aplica operatorii logici asupra operanzilor:
a b a and b a or b not a
T T T T F
T F F T F
F T F T T
F F F F T
5. Operatorul de atribuire
← atribuie a anumita valoare unei date:
nume ← expresie
Exemple:
a) x ←3 (x ia valoarea 3)
b) a ← 7 +3 ( se calculeaza expresia si apoi a ia valoarea 10)
c) s←2
s ← s+4 (noua valoare a variabilei s este vechea valoare, adica 2, la care se aduna 4
rezultand valoarea 6 pentru s)
Structuri de control
CLASIFICARE
1. Structura alternativa
simpla
generalizata
2. Structura repetitiva
cu numar cunoscut de pasi
cu numar necunoscut de pasi
Sintaxa:
daca conditie
atunci
actiune 1;
altfel
actiune 2;
sfarsit_daca;
a) cu test initial
cat_timp conditie executa
actiune;
sfarsit_cat_timp;
b) cu test final
repeta
actiune;
pana_cand conditie;
Exemplu: Se citesc numere de la tastatura pana la intalnirea valorii 0.Determinati cate numere
pare s-au citit.
k<-0;
repeta
citeste a;
daca a mod 2=0
atunci
k<-k+1;
sfarsit_daca;
pana cand a=0;
scrie k;
Algoritmi elementari
1. Algoritmul de interschimbare
Interschimba valorile a doua variabile de memorie.
Exemplu: Presupunem ca avem 2 pahare: primul pahar (a) contine apa, al doilea pahar (b)
contine lapte. Cum putem interschimba continuturile celor doua pahare? Raspuns: utilizand un
alt pahar (aux).
Se vor utiliza 3 variabile: a si b (variabilele care isi interschimba valorile) si o variabila aux.
intreg a,b,aux;
inceput
citeste a,b;
aux<-a;
a<-b;
b<-aux;
scrie a,b;
sfarsit.
intreg n,i,a,max;
inceput
citeste n;
citeste a;
max <- a;
pentru i <- 2,n executa
citeste a;
daca a>max
atunci
max <- a;
sfarsit_daca;
sfarsit_pentru;
scrie max;
sfarsit.
intreg a, s;
inceput
citeste a;
s <- 0;
cat_timp a <> 0 executa
s <- s + a mod 10;
a <- a div 10;
sfarsit_cat_timp;
scrie s;
sfarsit.
b) Inversul unui numar
Pentru determinarea inversului (oglinditului) unui numar se vor utiliza variabilele: a ( numarul
citit de la tastatura) si inv (inversul). Initial valoarea variabilei inv este 0. Inversul se va construi
pas cu pas prin formula inv <- inv *10 + a mod 10;
intreg a, inv;
inceput
citeste a;
inv <- 0;
cat_timp a <> 0 executa
inv <- inv * 10 + a mod 10;
a <- a div 10;
sfarsit_cat_timp;
scrie inv;
sfarsit.
intreg a, i;
inceput
citeste a;
pentru i <- 2,a/2 executa
daca a mod i=0
atunci scrie i;
sfarsit_daca;
sfarsit_pentru;
sfarsit.
intreg a, i,sw;
inceput
citeste a;
sw <- 1;
pentru i <- 2,a/2 executa
daca a mod i=0
atunci sw <- 0;
sfarsit_daca;
sfarsit_pentru;
daca sw = 1
atunci scrie "Numarul este prim";
altfel scrie "Numarul nu este prim."
sfarsit.
6. Determinarea celui mai mare divizor comun
Algoritmul determina cel mai mare divizor comun pentru doua numere intregi a si b citite de la
tastatura.
Se vor utiliza variabilele: a,b (numerele citite de la tastatura), r (restul impartirii a mod b).
intreg a, b, r;
inceput
citeste a, b;
cat_timp b <> 0 executa
r <- a mod b;
a <- b;
b <- r;
sfarsit_cat_timp;
scrie a;
sfarsit.
Exemplu:
a=30 b= 18
I. 18 <> 0 se calculeaza r = 30 mod 18 = 12 a = 18 b = 12
II. 12 <> 0 se calculeaza r = 18 mod 12 = 6 a = 12 b=6
III. 6 <> 0 se calculeaza r = 12 mod 6 = 0 a=6 b=0
IV. 0 <> 0 Fals
Fisa de lucru
Operatori si expresii
b.
c)
a b (b d ) 2
ab
d c
ac
3. Scrieti conditiile corespunzatoare pentru ca valoarea unei variabile a sa fie:
a. divizibila cu 5
b. numar par
c. divizibila cu 3 dar nu si cu 5
d. un numar de 3 cifre
e. litera mica
f. cifra
4. Ce valori vor avea cele trei variabile a, b si c in urma urmatoarei secvente de atribuiri:
a2 b4 c3 ac ba cb
5. Completati urmatorul tabel stiind ca a,b,c sunt numere intregi si x,y sunt numere reale:
Expresie Valid (Da/Nu) Tip rezultat
x*y +2
a div 2-1
y mod b +1
b<>c and x<10
6. Ce se va afişa în urma secvenţei de mai jos, dacă se citeşte x=1, y=2 şi z=3?
citeşte x, y, z;
xz + y;
yx + z;
zx + y;
scrie x, y, z;
7. Pentru urmatoarele valori ale lui a=6, b=8, c=3, d=1 evaluati urmatoarele expresii:
a. a + b mod c * d
b. a * b – 3 * c
c. 2 * a + c div 2
d. (a<=d) and (c>0)