Sunteți pe pagina 1din 35

Algoritmi şi Limbajul Pseudocod

Elaborat
l. univ. Branişte
Rodica
Planul prezentării:
1. Reprezentarea algoritmilor
Noţiune de algoritm
Scheme logice
Operații de bază
Caracteristici fundamentale
Structuri de control
2. Limbajul pseudocod
Reprezentarea algoritmilor prin limbajul pseudocod
Instrucţiuni în pseudocod
Exemple

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 2


Reprezentarea algoritmilor folosind scheme
logice
• Algoritmul este un concept folosit pentru a desemna o mulțime finită de operații,
complet ordonată în timp, care pornind de la date de intrare produce într-un timp
finit date de ieșire. Cu alte cuvinte, algoritmul redă metoda de rezolvare a unei
probleme într-un număr finit de paşi
• Programul este reprezentarea unui algoritm într-un limbaj de programare.
• Programarea este activitatea de elaborare a unui produs program.

Ea are două ramuri importante:

descrierea algoritmilor
codificarea algoritmilor într-un anumit limbaj de programare

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 3


Descrierea unui algoritm
Descrierea unui algoritm pentru rezolvarea unei probleme se poate
face prin scheme logice sau într-un limbaj de descriere a algoritmilor,
numit şi pseudocod
Exemplu: Paşii calculului mediei artimetice a două numere sunt:
 
1 - start;
 
2 - citeşte primul număr;
 
3 - citeşte al doilea număr;
 
4 - calculează suma lor;
 
5 - împarte rezultatul la 2;
 
6 - afişează rezultatul calculat;
 
7 - stop.

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 4


Moduri de exprimare a algoritmilor
Limbaj natural - fraze coerente în limba română care permit obţinerea
unei soluţii pentru o problema dată.
Scheme logice- diagrame de blocuri
Limbajul Pseudocod- propoziții scurte cu cuvinte cheie predefinite
exprimate în engleza sau română.

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 5


Scheme logice
• Schemele logice sunt notaţii grafice formate din blocuri legate între ele prin săgeţi
• Schemă logică descrie grafic paşii unui algoritm
• Schemă logică specifică prelucrările care se execută asupra datelor

Orice algoritm poate fi descris într-o schemă logică folosind următoarele doua structuri
de control

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 6


Datele din schemele logice
variabile
sunt zone de memorie care îşi schimbă valoarea şi care se caracterizează printr-un nume

numele poate fi format dintr-o înşiruire de :


litere mari
litere mici
cifre
semnul underscore “_”

numele unei variabile începe în mod obligatoriu cu literă


exemple de variabile:
x
Aria
perimetru
delta elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 7
Operaţii de bază - blocurile

Blocul de start

Blocul de stop

Blocul de citire

Blocul de scriere

Blocul de atribuire

Blocul de decizie
elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 8
Blocul start

este unic în cadrul unei scheme logice

reprezintă punctul de pornire al schemei

are formă ovală

scrie în el cuvântul predefinit start


elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 9
Blocul de stop

este unic in cadrul unei scheme logice

trebuie atins intr-un numar finit de pasi

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 10


Blocul de intrare
se mai numeşte şi bloc de citire

opreşte execuţia unui program


citeşte de la tastatură valori pe care le stochează în
variabile
tastatura – dispozitiv de intrare

este simbolizat printr-un trapez cu baza mare sus


Tipuri de variabile ce pot fi citite
 
Numere intregi-1, 77, 25
Numere reale-1.5, 6.7
Şiruri de caractere - se citesc toate impreuna-“nota de la matematică este”;“am susţinut
examenul la matematică cu nota”
elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 11
Blocul de ieşire

Se mai numeşte şi bloc de scriere

Are ca efect afişarea valorilor unor variabile pe ecran

Ecranul - dispozitiv de ieşire

Reprezentat printr-un trapez cu baza mare jos


elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 12
Blocul de atribuire
Are rolul de a da valori noi unor variabile

Valorile anterioare ale acelor variabile se vor pierde

Unele atribuiri se pot folosi de valorile “vechi” ale variabilei ce


primeşte noua valoare
De exemplu în i=i+1
înseamnă ca noul i va fi egal cu vechiul i plus o unitate
dacă i avea valoarea 7 înainte de atribuire, atunci după
atribuire i va avea valoarea 8

• Este simbolizat prin dreptunghi.


elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 13
Blocul de decizie
Este reprezentat printr-un romb

Din el pot ieşi în orice direcţii două săgeţi corespunzătoare celor


două căi de execuţie a algoritmului

Are rolul de a ramifica cursul de execuţie ale unui algoritm

Algoritmul se va executa după acest bloc doar pe una din


ramurile sale

Apare condiţia: fie pe ramura cu DA sau ramura NU

Decizia de a alege o ramură sau pe cealaltă se face pe baza


evaluării condiţiei din bloc elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 14
Pentru exprimarea conditiei se pot folosi operatori matematici

Relationali
 
Mai mic <, Mai mare >
 
Mai mic sau egal <=, Mai mare sau egal >=,
 
egal==, diferit!=

Logici
 
SI &&, SAU ||
 
Paranteze pentru expresii logice complexe
 
Rezultatul trebuie sa fie boolean adica adevarat sau
elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 15
fals
Caracteristici fundamentale

Orice algoritm trebuie să îndeplinească şase caracteristici


1. generalitate - un algoritm trebuie să ofere o metodă generală de rezolvare a unui
anumit tip de probleme, pentru date iniţiale arbitrare
2. precizie (claritate) - descrierea algoritmului trebuie facută fără ambiguităţi, iar
comenzile trebuie să exprime operaţii cunoscute calculatorului, care pot fi executate de
către procesor.
3. determinare - la fiecare pas, acţiunea care urmează a fi executată trebuie să poată fi
determinată fără echivoc şi unic pe baza acţiunilor precedente
4. finitudinea - un algoritm trebuie să conducă la obţinerea rezultatelor într-un număr
finit de paşi
5. eficienţă - un algoritm trebuie să fie construit în aşa fel încât să folosească resurse
hard cât mai puţine şi să necesite un timp minim de execuţie
6. executabilitate - algoritmul ca întreg
elaborat şi fiecare
l.univ. Braniste pasUTMal său trebuie să poată fi executat.
Rodica, DIIS, FCIM, 16
Structuri de control
Algoritmul proiectat pentru rezolvarea unei anumite probleme trebuie implementat intr-un
limbaj de programare; prelucrarea datelor se realizează cu ajutorul instrucţiunilor. Instrucţiunea
descrie un proces de prelucrare pe care un calculator îl poate executa. O instrucţiune este o
construcţie validă (care respectă sintaxa limbajului) urmată de ; . Ordinea în care se execută
instrucţiunile unui program defineşte aşa-numita structură de control a programului.
Limbajele moderne sunt alcatuite pe principiile programarii structurate şi orice algoritm
poate fi realizat prin combinarea a trei structuri fundamentale:

Iteraţia Iteraţia
Secvenţa Selecţia cu test cu test
iniţial final
elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 17
Secvenţa
• cea mai simplă structură de control
• este o notaţie abstractă folosită pentru a
defini alte structuri de control
• presupune execuţia unui şir ordonat de
operaţii de bază din cele prezentate anterior =
• de exemplu o secvenţă poate cuprinde
• două citire
• o atribuire
• din punct de vedere grafic secvenţa este
reprezentată printr-un dreptunghi marcat pe
margini cu două linii verticale
elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 18
Selecţia

Rolul de a selecta o secvenţă din două


• are

pentru execuţie în funcţie de valoarea


condiţiei.
Conţine:
• un bloc de selecţie
• cele două secvenţe ce se execută
atunci când condiţia evaluată este adevărată
respectiv falsă.

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 19


Iteraţia cu test iniţial
• Iteraţia cu test iniţial este numită şi structura
WHILE-DO
(În cadrul acestei structuri se evaluează mai întâi
valoarea expresiei logice)
• Instrucţiunea se execută în mod repetat atât i<5
timp cât valoarea expresiei logice este adevărată
(True).
• În caz contrar (False) se trece la secvenţa
următoare din schema logică

i=i+1

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 20


Iteraţia cu test final
• Iteraţia cu test final este numită şi structura DO-
WHILE
• mai întâi se execută Instrucţiunea (cel putin odată) i=i+1
• Apoi se evaluează expresia logică
• Cât timp expresia logică este adevărată (True) se
execută din nou Instrucţiunea
• În caz contrar (False) se trece la secvenţa următoare. i<5

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 21


Exemple
Calculam suma a două numere

• Citim primul număr de la tastatură


• Citim al 2-lea număr de la tastatură
• Calculăm suma celor două numere
• Afişăm pe ecran suma calculată

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 22


Calculăm funcţia modulului

• Citim un număr de la tastatură


• Dacă numărul este pozitiv
• Atunci modulul este egal cu numărul
• Altfel modulul este egal cu numărul negat
• Afişăm pe ecran modulul numărului

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 23


Functia signum
(În matematică , funcția semn sau funcția signum (din signum , latină pentru
„semn”) este o funcție matematică impară care extrage semnul unui număr
real . În expresiile matematice funcția semn este adesea reprezentată
ca sgn . Pentru a evita confuzia cu funcția sinus, această funcție este de obicei
numită funcție signum)

• Citim un număr de la tastatură


• Dacă numărul este pozitiv
• Atunci signum este egal cu 1
• Altfel dacă numărul este nul
• Atunci signum este zero
• Altfel signum este -1
• Afişăm pe ecran funcţia signum

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 24


Reprezentarea algoritmilor prin limbaj pseudocod

Limbajul pseudocod este o modalitate de reprezentare a algoritmului care, deşi este independent de un


anumit limbaj de programare, respectă reguli de scriere şi o anumită sintaxă in descrierea operaţiilor ce-l
compun.
Pseudocod este un limbaj prin care sunt descriși pașii dintr-un algoritm. Limbajul pseudocod conține
structurile specifice unui limbaj de programare obișnuit (precum Pascal, C/C++, Basic, Python, etc), dar
este destinat a fi citit de către oameni, nu de către calculatoare.
De obicei sunt omise detaliile vitale într-un limbaj de programare, precum declararea variabilelor sau
secvențe specifice limbajului. Algoritmii pseudocod pot conține secvențe descrise în limbaj natural,
precum și expresii matematice compacte, care lipsesc din limbajele de programare reale.

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 25


Conceptele care intervin în algoritmii pseudocod sunt similare cu cele din limbajele de
programare:

• instrucțiuni
• variabile
• constante
• operații
• expresii

Moduri de exprimare în limbajul pseudocod

• propoziţii scurte
• cu cuvinte cheie predefinite
• exprimate în engleză sau română
elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 26
Instrucţiuni
Instrucțiunile sunt componentele algoritmului care au efect, atunci când se execută. Ele modifică
valorile unor variabile, citesc sau afișează date, repetă anumite acțiuni, etc. În limbajul pseudocod,
corespunzator operaţiilor de intrare / ieşire de la schemele logice avem definite instrucţiuni de intrare –
iesire
Citeste <lista de variabile>
Scrie <lista de variabile>
• Instructiunea de atribuire
v: = < expresie>

Orice algoritm poate fi reprezentat prin intermediul a trei tipuri de structuri:


• structura liniară
• structura alternativă
• structura repetitivă elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 27
Instrucţiune de decizie (liniară)
Sunt situaţii în care trebuie descrise în program
modalitatea de luare a unei decizii în care ne
intereseaza decât situaţia de adevarat a condiţiei

• daca <conditie>
•          atunci
• <instructiune>
• sf-daca

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 28


Structura alternativă

• Structura alternativa este descrisa in limbaj pseudocod prin


intermediul instructiunii de decizie cu urmatorul format general

• daca < conditie > (x>0)


• atunci
• instructiune_a (m=x)
• altfel
• instructiune_f (m=-x)
• sf-daca

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 29


Structura repetitivă 
Efectul instrucţiunii este următorul: se repetă grupul de instrucţiuni până la întâlnirea
cuvântului “sf_cât_timp”, atâta timp cât condiţia “condiţie” este adevărată. Corespunde
repetitivei anterior condiţionată prezentata în paragraful anterior şi este cunoscută sub numele
de WHILE-DO

• cat timp <condiţie> execută
•                  <instrucţiuni>
• sf-cât_timp

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 30


Structura repetitiva 
Efectul instrucţiunii este următorul: repetarea grupului de instrucţiuni ce constitue corpul
repetitivei până când condiţia ce apare în final devine adevărată. Corespunde structurii
repetitive posterior condiţionată şi este cunoscută sub numele de REPEAT-UNTIL (DO-WHILE)

• repetă
•                    <instrucţiuni>
• până când    <condiţie>

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 31


Exemplu Pseudocod

Funcţia signum Pseudocod


citeste x
• Citim un număr de la tastatură daca x>0
• Dacă numărul este pozitiv atunci s=1
• Atunci gn este egal cu 1 altfel
• Altfel dacă numărul este nul daca x==0
• Atunci signum este zero atunci s=0
• Altfel signum este -1 altfel s=-1

• Afişăm pe ecran funcţia signum scrie m

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 32


Exemplu Python de cod, pseudocod şi algoritm
Python
Suma a 2 numere:
• Citim primul număr de la tastatură.
• Citim al 2-lea număr de la tastatură.
• Calculăm suma celor două numere.
• Afişăm pe ecran suma calculată

Pseudocod
citeste a
citeste b
s=a+b
scrie s

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 33


Exemplu
Python
Aflăm minimul a 2 numere
întregi Pseudocod
• Citim 2 numere întregi de la
tastatură (a si b) citeste a
citeste b
• Dacă numărul a este egal sau
daca a<=b atunci
mai mic ca b
min = a
• Atunci numarul minim este a altfel
(folosim o variabila min = b
intermediară min) care va
scrie min
conţine valoarea minimă
• Altfel numărul minim este b
• Afişăm min

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 34


Mulţumesc pentru atenţie!

elaborat l.univ. Braniste Rodica, DIIS, FCIM, UTM 35

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