67% au considerat acest document util (3 voturi)
2K vizualizări15 pagini

Limbajul Pseudocod

Un limbaj pseudocod este o scriere intermediară, menită să simplifice scrierea unui algoritm într-un limbaj de programare și să ajute la realizarea clarității algoritmului, în timp scurt.

Încărcat de

Emilia Demeter
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
67% au considerat acest document util (3 voturi)
2K vizualizări15 pagini

Limbajul Pseudocod

Un limbaj pseudocod este o scriere intermediară, menită să simplifice scrierea unui algoritm într-un limbaj de programare și să ajute la realizarea clarității algoritmului, în timp scurt.

Încărcat de

Emilia Demeter
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
Sunteți pe pagina 1/ 15

Limbaj 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:

Intrari ————– Prelucrari ——————— Iesiri

Astfel pentru rezolvarea unei probleme se vor parcurge urmatoarele etape:

1.Analiza problemei
Presupune determinarea:
– datelor de intrare si de iesire
– metodei de rezolvare
Exemplu: ecuatia de gr I ax+b=0

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.

2.Elaborarea algoritmului de rezolvare


Presupune scrierea algoritmului in limbajul pseudocod.
3.Transcrierea algoritmului intr-un limbaj de programare
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.
Data se defineste prin: identificator, valoare si atribute.

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.
Cel mai important atribut este tipul datei.
Tipul datei – defineste apartenenta datei la o anumita clasa de 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
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:

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), / (impartire reala), ^ sau ** (ridicare la putere),


div (impartire intreaga – calculeaza catul impartirii), mod( modulo – calculeaza restul
impartirii)
Exemple:
2*4=8
5/2=2.5
2^3=8
13 div 4=3
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), <= (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:

+ – reuneste doua siruri de caractere intr-un singur sir.

Exemplu: “Buna” + “ziua” = “Buna ziua”

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

1.Structura alternativa simpla


Se realizeaza selectarea intre doua actiuni in functie de indeplinirea sau neindeplinirea
unei conditii.

Sintaxa:

daca conditie

atunci
actiune 1;

altfel

actiune 2;

sfarsit_daca;

Exemplu: Se compara valorile a doua variabile a si b.

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

-testarea unui numar de doua cifre:a >=10 and a <= 99

-testarea unui numar par: a mod 2 = 0

-testarea unui numar impar: a mod 2 = 1

2.Structura alternativa generalizata


Se executa o anumita actiune in functie de o conditie numita selector.
in cazul ca selector

cazul v1: actiune 1;

cazul v2: actiune2;


........

cazul vn: actiune n;

altfel actiune n+1;

sfarsit_in_caz_ca;

Exemplu: Se citesc de la tastatura doua numere intregi a si b si un numar c. Daca se


citeste in variabila c valoarea 1 sa se calculeze suma, daca se citeste valoarea 2
produsul iar daca se citeste valoarea 3 sa se calculeze media aritmetica a celor doua
numere.
Utilizand structura alternativa simpla

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;

altfel scrie " Valoare gresita";


sfarsit_daca;

sfarsit_daca;

sfarsit_daca;

Utilizand structura alternativa generalizata

citeste a,b,c;

in cazul ca c

cazul 1: scrie a+b;

cazul 2: scrie a*b;

cazul 3: scrie (a+b)/2;

altfel scrie "Valoare gresita";

sfarsit_in_caz_ca;

3.Structura repetitiva cu numar cunoscut de pasi


pentru contor <- v_i, v_f,[pas v] executa

instructiune;

sfarsit_pentru;

unde v_i este valoarea initiala

v_f este valoarea finala

Exemplu: Determinati suma primelor n numere naturale.

citeste n;

s<-0;

pentru i<-1,n executa


S<-S+i;

sfarsit_pentru;

scrie S;

4.Structura repetitiva cu numar necunoscut de pasi


a) cu test initial
cat_timp conditie executa

actiune;

sfarsit_cat_timp;

Exemplu: Determinarea produsului cifrelor unui numar.

citeste a;

P<-1;

cat_timp a<>0 executa

P<- P * a mod 10;

a<-a div 10;

sfarsit_cat_timp;

scrie P;

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.

2.ALGORITMUL PENTRU DETERMINAREA MAXIMULUI


Sa se determine cea mai mare valoare dintr-un sir de n numere intregi citite de la
tastatura.

Algoritmul:

– se vor utiliza variabilele: n ( numarul de valori citite), i (contor), a ( valoarea citita),


max (maximul)

– se citeste primul numar si se considera ca fiind cel mai mare ( max <- a)

– se citesc pe rand valorile de la tastatura si se compara cu maximul curent. Daca


valoarea citita este mai mare decat maximul atunci se atribuie variabilei max acea
valoare.

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.

3.ALGORITMI PENTRU PRELUCRAREA CIFRELOR UNUI NUMAR


a) Extragerea cifrelor unui numar
Ex: Se citeste de la tastatura un numar intreg a. Sa se determine suma cifrelor
numarului a.

Algoritmul presupune extragerea pe rand a cifrelor numarului a incepand de la ultima


cifra si adaugarea cifrei la suma prin operatia s <- s + a mod 10 unde a mod 10 este
ultima cifra a numarului, apoi eliminarea cifrei prin operatia a <- a div 10. Algoritmul
se incheie atunci cand s-au adunat toate cifrele numarului deci valoarea
variabilei a este 0.
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.

4.Determinarea divizorilor unui numar


Pentru determinarea divizorilor unui numar se vor utiliza variabilele: a (numarul citit
de la tastatura), i (contor). Se vor cauta posibilii divizori in intervalul [2, a/2]. Daca a
mod i = 0 (a se divide la i) atunci se afiseaza divizorul (i).

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.

5.Determinarea unui numar prim


Un numar este prim daca se divide doar la 1 si la el insusi.
Pentru verificarea unui numar prim se vor utiliza variabilele: a (numarul citit de la
tastatura), i (contor) si sw. Vom considera ca numarul este prim deci variabila sw se
va initializa cu valoarea 1. Se vor cauta posibilii divizori in intervalul [2, a/2]. Daca a
mod i = 0 (a se divide la i) atunci rezulta ca numarul nu este prim deci schimbam
valoarea variabilei sw=0.
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
Se afiseaza 6 (cel mai mare divizor comun )

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