Sunteți pe pagina 1din 4

Pseudocod (Cod fals)

Pseudocod (cod fals) reprezint o scriere intermediar, menit s simplifice scrierea


unui algoritm ntr-un limbaj de programare i s ajute la realizarea claritii algoritmului, n
timp scurt.
n principal un algoritm prezentat ntr-un limbaj pseudocod este alctuit din 2 zone sau
seciuni:
- Zona de declaraii - folosit pentru declararea variabilelor
- Zona de calcul - etapele rezolvrii problemei

Instruciunile limbajului pseudocod


Instruciunile limbajului pseudocod sunt:
1. De citire
Sintaxa comenzii: citeste p,q
2. De scriere
Sintaxa comenzii: scrie x, ' '
3. De atribuire
Sintaxa comenzii: yx
4. Alternativ
Sintaxa comenzii:
dac x>0 atunci
scrie 'pozitiv'
altfel
scrie 'negativ'

5. Repetitiv
a. Cu test iniial
Sintaxa comenzii:

ct timp xq execut

xx+1

b. Cu test final
Sintaxa comenzii:
repeta
1|Page
xx+1
pan cnd x>q
c. Cu numr cunoscut de pai
Sintaxa comenzii:
pentru xa,b,1 execut
ss+x

Transformri ntre structuri repetitive


1. Din cea cu test iniial n cea cu test final
ct timp condiie execut
instruciune

Echivalent cu
dac condiie atunci
repeta
instruciune
pan cnd not condiie

2. Din cea cu test final n cea cu test iniial


repeta
instruciune
pan cnd condiie
Echivalent cu
instruciune
ct timp not condiie execut
instruciune

3. Din cea cu numr cunoscut de pai n cea cu test iniial
pentru vcvi,vf,pas execut
instructiune

Echivalent cu

2|Page
vcvi
ct timp vc<=vf execut
instruciune
vc vc+pas

Aplicaii:
Problema 1:
Se consider algoritmul urmtor reprezentat n pseudocod:
S-a notat cu x%y restul mpririi numrului ntreg x la numrul ntreg nenul y i cu
[a] partea ntreag a numrului real a.
citete n (numr natural)
z<-0; p<-1
ct timp n>0 execut
c<-n%10
n<-[n/10]
dac c%2=0 atunci
z<-z+p*(c+1)
p<-p*10


scrie z
Cerine:
a. Ce valoare va fi afiat dac se citete valoarea 1092744?
b. Scriei toate numere naturale, distincte, fiecare avnd exact dou cifre, care pot fi
citite pentru variabila n astfel nct s se afieze valoarea 7.
c. Scriei n pseudocod un algoritm, echivalent cu cel dat, n care s se nlocuiasc
structura ct timp...execut cu o structur repetitiv de alt tip.
d. Scriei programul Pascal/C/C++ corespunztor algoritmului dat.

Pentru admitere se pot defini i funcii n pseudocod astfel:

3|Page
subprogram F(a,b)
returneaz a+b

Sau chiar funcii recursive:
subprogram F(a,b)
daca a>0 atunci retuneaza b
altfel returneaz F(a-1,b+1)

Aplicaii admitere:
Problema 1(Iai 2016):
Se consider subprogramul recursiv F de mai jos, descris n pseudocod. Subprogramul
primete ca parametri doua numere naturale u si v si ntoarce un numr natural. Operatia %
reprezint restul mpririi, iar max(a,b) reprezint maximul dintre a s ,i b.
subprogram F(u,v) (u, v - numere naturale)
daca u=v sau u=0 sau v=0 atunci
returneaza max(u,v)
altfel daca u%2=0 atunci
daca v%2=0 atunci returneaz 2*F(u/2, v/2)
altfel returneaz F(u/2, v)
altfel daca v%2=0 atunci returneaz F(u, v/2)
altfel
daca u<v atunci returneaz F(u, (v-u)/2)
altfel returneaz F((u-v)/2, v)

a. Care este valoarea returnat de subprogram pentru parametrii u = 42 si v =
35?
b. Dai exemplu de dou numere naturale u, v distincte si nenule astfel nct F(u,
v) sa returneze 5.
c. Daca u = 14, care este cea mai mare valoare strict mai mica dect 100 pentru
v, astfel nct F(u, v) sa returneze 7?
d. Scriei funcia C/C++ corespunztoare subprogramului alturat.

4|Page