Limbajul Pseudocod
Limbajul Pseudocod
DEFINITII SI 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.
ETAPELE REZOLVARII UNEI PROBLEME
Orice prelucrare automata a informatiilor presupune definirea urmatorului lant:
1.Analiza problemei
Presupune determinarea:
– datelor de intrare si de iesire
– metodei de rezolvare
Exemplu: ecuatia de gr I 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.
Data se defineste prin: identificator, valoare si atribute.
Identificatorul -este numele atribuit datei de catre cel care defineste data.
Ex: a, alfa, x_1
b.Dupa valoare:
-variabile – isi pot modifica valoarea pe parcursul procesului de prelucrare
-constante – isi vor pastra valoarea pe tot parcursul prelucrarii
c.Dupa modul de compunere:
-date elementare – sunt date independente unele de altele
-structuri de date – sunt colectii de date
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:
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:
< (mai mic), > (mai mare), <= (mai mic sau egal), >= (mai mare sau egal), = (egal),
<> (diferit)
Exemple:
(12>10) = T
(7<=5) = F
(8>=8) = T
(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:
4.Operatorii logici:
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
nume ← expresie
Exemple:
a)x ←3 (x ia valoarea 3)
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;
daca a>b
atunci scrie a;
altfel
scrie b;
sfarsit_daca;
Exemple de conditii:
– testarea unui numar pozitiv: a > = 0
– testarea unui numar negativ:a < 0
sfarsit_in_caz_ca;
citeste a,b,c;
daca c=1
atunci
scrie a+b;
altfel
daca c=2
atunci
scrie a*b;
altfel
daca c=3
atunci
scrie (a+b)/2;
sfarsit_daca;
sfarsit_daca;
citeste a,b,c;
in cazul ca c
sfarsit_in_caz_ca;
instructiune;
sfarsit_pentru;
citeste n;
s<-0;
sfarsit_pentru;
scrie S;
actiune;
sfarsit_cat_timp;
citeste a;
P<-1;
sfarsit_cat_timp;
scrie P;
b) cu test final
repeta
actiune;
pana_cand conditie;
repeta
citeste a;
atunci
k<-k+1;
sfarsit_daca;
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).
inceput
citeste a,b;
aux<-a;
a<-b;
b<-aux;
scrie a,b;
sfarsit.
Algoritmul:
– se citeste primul numar si se considera ca fiind cel mai mare ( max <- a)
intreg n,i,a,max;
inceput
citeste n;
citeste a;
max <- a;
citeste a;
daca a>max
atunci
max <- a;
sfarsit_daca;
sfarsit_pentru;
scrie max;
sfarsit.
inceput
citeste a;
s <- 0;
sfarsit_cat_timp;
scrie s;
sfarsit.
inceput
citeste a;
inv <- 0;
sfarsit_cat_timp;
scrie inv;
sfarsit.
intreg a, i;
inceput
citeste a;
atunci scrie i;
sfarsit_daca;
sfarsit_pentru;
sfarsit.
inceput
citeste a;
sw <- 1;
atunci sw <- 0;
sfarsit_daca;
sfarsit_pentru;
daca sw = 1
sfarsit.
intreg a, b, r;
inceput
citeste a, b;
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
Se afiseaza 6 (cel mai mare divizor comun )