Sunteți pe pagina 1din 13

2.

NOIUNI DESPRE ALGORITMI I PROGRAMARE


STRUCTURAT
2.1. Noiuni introducti!
Rezolvarea problemelor cu ajutorul calculatorului presupune parcurgerea mai multor
etape:
1. analiza problemei (cu stabilirea datelor de intrare/ieire) i modelarea ei matematic;
2. descrierea algoritmului cu ajutorul scemei logice i (sau) a pseudocodului;
!. scrierea programului "ntr#un limbaj de programare evoluat;
$. compilarea programului;
%. asamblarea programului;
&. e'ecu(ia programului.
)tapele 1.#!. sunt etape realizate de programator* iar etapele $.#&. sunt realizate de c+tre
sistemul de operare al calculatorului.
,n algoritm reprezint+ o succesiune de calcule care* plec-nd de la condi(ii ini(iale
cunoscute i cu ajutorul unor opera(ii e.ectuate mecanic .+r+ aportul creator al omului*
permite ob(inerea solu(iilor unor probleme dintr#o anumit+ clas+.
/lt.el spus* un algoritm este un sistem de reguli care utiliz-nd un set de date ini(iale ale
unei probleme* dup+ e'ecu(ia unui num+r .init de pai* .aciliteaz+ ob(inerea datelor .inale*
trec-nd printr#un ir de rezultate intermediare.
,n algoritm nu este aplicabil oric+ror date ini(iale; o dat+ ini(ial+ pentru care se poate
aplica un algoritm se numete dat+ sau in.orma(ie admisibil+.
,n algoritm trebuie s+ satis.ac+ "n general urm+toarele cerin(e:
a) claritate # descrierea algoritmului trebuie s+ se .ac+ precis* .+r+ nimic arbitrar* .+r+
ambiguit+(i i s+ .ie prev+zute toate etapele de calcul i toate situa(iile care se pot ivi p-n+
la ob(inerea solu(iei;
b) generalitate # algoritmul trebuie s+ permit+ rezolvarea de probleme dintr#o "ntreag+ clas+;
c) finititudine # algoritmul trebuie s+ .urnizeze rezultatele "ntr#un num+r .init (c-t mai mic) de
pai;
d) unicitate # etapele algoritmului trebuie s+ .ie de.inite "n mod unic.
0pera(iile de baz+ care apar "ntr#un algoritm sunt urm+toarele:
operaii de intrare"ieire # datele de intrare se citesc* iar datele de ieire se a.ieaz+ (se
tip+resc);
operaii de atribuire # unei variabile i se atribuie valoarea unei e'presii;
operaii de decizie # se determin+ valoarea de adev+r a unei e'presii logice i* .unc(ie de
rezultatul ob(inut* se rami.ic+ rezultatul algoritmului.
0dat+ cu dezvoltarea in.ormaticii a ap+rut i no(iunea de programare structurat. 1a
baza acestui concept st+ ideea "ntocmirii algoritmilor .olosind c-teva structuri elementare*
av-nd o singur+ intrare i o singur+ ieire.
2n cazul program+rii structurate* problema de rezolvat se descompune "n subprobleme* a
c+ror rezolvare duce la rezolvarea problemei ini(iale. /lgoritmul* "n acest caz* apare ca o
secven(+ liniar+ de structuri elementare.
3tructurile elementare sunt urm+toarele:
structura liniar # const+ "n e'ecu(ia necondi(ionat+ a unei secven(e de instruc(iuni*
un algoritm liniar .iind un algoritm "n care etapele de calcul se succed una dup+ cealalt+;
1
structura alternativ # const+ "n rami.icarea e'ecu(iei algoritmului "n .unc(ie de
valoarea de adev+r a unei condi(ii evaluate* algoritmii rami.ica(i presupun-nd luarea unei
anumite decizii "n .unc(ie de care se continu+ e'ecu(ia pe ramuri distincte;
structura repetitiv # const+ "n e'ecu(ia repetat+* de un num+r .init de ori* a unei
secven(e de instruc(iuni. ,n algoritm repetitiv presupune repetarea unor etape de calcul de un
anumit num+r de ori. /nsamblul etapelor ce se repet+ alc+tuiesc un ciclu. 4ac+ num+rul de
repet+ri este cunoscut* ciclul se numete cu num+r cunoscut de pai* iar dac+ nu este cunoscut*
ciclul se numete cu condi(ie sau cu num+r necunoscut de pai.
3ubproblemelor ob(inute prin descompunerea unei probleme le corespunde conceptul de
subprogram.
3ubprogramele pot .i tip funcie sau tip procedur. 4i.eren(a dintre .unc(ie i procedur+
const+ "n .aptul c+ .unc(ia transmite programului apelant o singur+ valoare* "n timp ce
procedura poate s+ nu transmit+ programului apelant nici o valoare* sau s+ transmit+ una sau
mau multe valori.
Re.erirea unui subprogram poart+ denumirea de apel.
0 no(iune de baz+ "n programare o constituie no(iunea de variabil. 0 variabil+ este
caracterizat+ de patru elemente: nume* tip* valoare i adres+ "n memorie.
Numele unei variabile este .ormat din unul sau mai multe caractere (litere i ci.re*
primul .iind liter+)* de e'emplu: A, o ,min, X3.
Tipul indic+ mul(imea de valori posibile: "ntreg* real* ir de caractere* boolean etc.
,n tip variabil+ poate .i elementar sau structurat.
5ipurile structurate se ob(in prin gruparea tipurilor elementare. 4intre acestea amintim
tabloul* "n care variabilele au acelai nume i tip* deosebindu#se prin indici. ,n tablou cu o
singur+ dimensiune se numete ir* iar un tablou cu dou+ dimensiuni se numete matrice.
Adresa variabilei este adresa .izic+ din memoria calculatorului la care se a.l+ valoarea
variabilei. 4e obicei adresa este invizibil+ pentru programator.
aloarea variabilei reprezint+ valoarea e.ectiv+ pe care aceasta o are la un moment dat.
6aloarea unei variabile se poate modi.ica numai printr#o instruc(iune de citire sau atribuire.
2.2. R!#r!$!nt%r!% %&'orit(i&or
7entru reprezentarea algoritmilor se pot utiliza mai multe metode:
scema logic+;
pseudocodul (sau limbajul algoritmic);
limbajul de programare.
7rimele dou+ sunt independente de tenica de calcul* nu respect+ o sinta'+ rigid+ i
sunt utile programatorului doar "n .aza de proiectare a algoritmilor.
/lgoritmul scris "ntr#un limbaj de programare este singura .orm+ direct utilizabil+ pe
calculator* .iind un te't codi.icat* pe baza unor legi sintactice bine determinate.
2.2.1. Sc)!(% &o'ic*
3cema logic+ este o reprezentare gra.ic+ ce permite vizualizarea "nl+n(uirii i
subordon+rii secven(elor de opera(ii. 3cema logic+ .olosete simboluri gra.ice numite
blocuri* care prin .orma lor indic+ tipul opera(iei* iar prin te'tul con(inut speci.ic+ semantica
acesteia. 8locurile de baz+ sunt:
2
blocul delimitator sau terminal (.ig. 2.1.a) # de.inete "nceputul (.ig. 2.1.b) sau
s.-ritul (.ig. 2.1.c) unui algoritm* proceduri sau .unc(ii;
a) b) c)
9ig. 2.1. 8locuri delimitatoare.
blocul de citire!scriere (vezi .ig. 2.2.a) # se mai numete i bloc de intrare/ieire i este
utilizat pentru descrierea opera(iilor de citire* respectiv* scriere. 4e e'emplu* "n .ig. 2.2.b* se
citesc valorile variabilelor a i b * iar "n .ig. 2.2.c* se scriu valorile variabilelor a i b;
a) b) c)
9ig. 2.2. 8locuri de citire/scriere.
blocul de calcul # este utilizat pentru reprezentarea opera(iei de atribuire (.ig. !.2.a).
).ectul acestei opera(ii const+ "n evaluarea e'presiei e i atribuirea rezultatului ob(inut
variabilei v.
4e e'emplu* "n cazul opera(iei din .ig. 2.!.b* se adun+ valorile variabilei a cu valoarea
variabilei b i rezultatul se atribuie variabilei ". ).ectul opera(iei din .ig.2.!.c const+ "n
creterea cu o unitate a valorii variabilei i;
a) b) c)
9ig. 2.!. 8locuri de calcul.
blocul de decizie (.ig. 2.$.a i .ig. 2.$.b) # are o intrare i dou+ ieiri* c-te una pentru
.iecare valoare de adev+r. 4ac+ "n urma evalu+rii condi(iei rezultatul este :.als:* se urmeaz+
calea :;,:. 2n caz contrar* se urmeaz+ calea :4/:.

!
<itete
a, b
s<R=)
a* b
ve " a+b i i+1
Start
Stop
#ondiie
DA NU
#ondiie
NU
DA
a) b)
9ig. 2.$. 8locuri de decizie.
sgeile (.ig. 2.%.a) # pun "n eviden(+ "nl+n(uirea logic+ a elementelor scemei logice;
blocul conector (.ig. 2.%.b) # reprezint+ punctele de urm+rire i revenire ale scemei;
blocul de continuare (.ig. 2.%.c) # reprezint+ continuarea scemei logice la o alt+
pagin+;
a) b) c)
9ig. 2.%. 3+geata* blocurile conector i continuare.
blocul de procedur (.ig. 2.&) # reprezint+ apelul unei proceduri $. 7rocedura este o
secven(+ de instruc(iuni descris+ printr#o scem+ logic+ separat+ i care are "nscris "n blocul
terminal de "nceput numele procedurii i eventualii parametrii.
9ig. 2.&. 8locul de procedur+.
2.2.1.1. Structuri !&!(!nt%r!
2n scemele logice pot s+ apar+ urm+toarele structuri elementare:
a) structura liniar sau secvena (.ig. !.>.a) # este o "niruire de una sau mai multe ac(iuni
(A* %* ?) ce se e'ecut+ secven(ial.
9ig. 2.>. 3tructura liniar+.
/c(iunile (A* %* ?) pot .i blocuri: de calcul* de intrare#ieire* de procedur+* sau
combina(ii liniare ale acestora. 3tructura liniar+ se e'ecut+ necondi(ionat.
b) structura alternativ sau decizia (.ig. 2.@.) # utilizeaz+ un bloc de decizie. /tunci c-nd
este "ndeplinit+ condi(ia* e'ecu(ia programului se continu+ pe ramura :4/:* adic+ se
e'ecut+ instruc(iunile din secven(a A. 2n caz contrar* se e'ecut+ instruc(iunile din secven(a
%.
$
P
A
B
9ig. 2.@. 3tructura alternativ+.
3tructura alternativ+ poate s+ apar+ i "n una din variantele din .ig.!.A.a sau .ig.!.A.b
a) b)
9ig. 2.A. 6ariante de structuri alternative.
c) structura repetitiv sau ciclul # se bazeaz+ pe e'ecutarea repetat+ a unei secven(e de
blocuri. /ceast+ structur+ trebuie s+ con(in+ o condi(ie care* la un moment dat* s+
determine ieirea din structura repetitiv+.
)'ist+ trei tipuri de cicluri: &'ile* repeat i for.
ciclul &'ile (.ig. !.1B.a) este caracterizat prin .aptul c+ secven(a de instruc(iuni A se repet+
at-ta timp c-t condi(ia c este "ndeplinit+. 3e spune c+ este un ciclu cu test ini(ial deoarece*
mai "nt-i* se veri.ic+ dac+ este "ndeplinit+ condi(ia din blocul de decizie* dup+ care se
e'ecut+ secven(a de instruc(iuni A;
ciclul repeat (.ig. !.1B.b) este caracterizat prin .aptul c+ secven(a de instruc(iuni A se
repet+ at-ta timp c-t condi(ia c nu este "ndeplinit+. /cesta este un ciclu cu test .inal
deoarece* mai "nt-i* se e'ecut+ secven(a de instruc(iuni A* dup+ care se veri.ic+ dac+ este
"ndeplinit+ condi(ia din blocul de decizie;
%
Condi
ie
DA NU
B
AA
#ondiie
DA NU
AA
#ondiie
DA NU
A
#ondiie
DA
NU
A
#ondiie
nu
DA
A
a) b)
9ig. 2.1B. 3tructuri repetitive: a) de tip &'ile; b) de tip repeat.
ciclul for (.ig. !.11) este caracterizat prin .aptul c+ secven(a de instruc(iuni A se e'ecut+
pentru .iecare valoare pe care o poate lua o variabil+* numit+ contor. <ontorul pleac+ de la
o valoare ini(ial+ i crete cu o anumit+ valoare* p-n+ la o valoare .inal+. =eirea din ciclu
are loc atunci c-nd valoarea contorului devine mai mare dec-t valoarea variabilei .inale.
2n cazul ciclului din .ig. !.11* contorul* valoarea ini(ial+ a contorului* cretera contorului
i valoarea .inal+ a acestuia s#au notat cu i* v
i
r i* respectiv* v
f
. 2n cazul e'emplului* ieirea
din ciclu are loc atunci c-nd i C v
f
.
<iclurile de tip &'ile i de tip repeat sunt cicluri cu un num+r necunoscut de pai
deoarece* de cele mai multe ori* nu se cunoate dup+ c-te e'ecu(ii ale secven(ei / are loc
ieirea din ciclu.
<iclul de tip for este un ciclu cu un num+r determinat de pai* deoarece se poate
calcula de c-te ori se e'ecut+ secven(a A.
2n cazul ciclului &'ile* secven(a A poate s+ nu .ie e'ecutat+ niciodat+* dac+ ini(ial
condi(ia ciclului nu este "ndeplinit+.
9ig. 2.11. 3tructur+ repetitiv+ de tip for.
2n cazul ciclurilor repeat i for* secven(a A este e'ecutat+ cel pu(in o dat+* ciar dac+
ini(ial condi(ia ciclului nu este "ndeplinit+.
2.2.1.2. E+!(#&! d! ,c)!(! &o'ic!
&
i <=
v
f
DA
NU
A
ii+r
iv
i
7entru e'empli.icare* se vor "ntocmi scemele logice pentru rezolvarea ecua(iei de
gradul doi cu coe.icien(i reali i pentru calculul sumei a n numere reale.
2.2.1.2.1. Ecu%i% d! 'r%du& doi
3e d+ ecua(ia de gradul doi: a"
2
D b" D c E B* unde a* b* c(.
3e cere s+ se "ntocmeasc+ algoritmul ce .urnizeaz+ solu(iile reale ale acestei ecua(ii.
3itua(iile ce apar la rezolvarea ecua(iei sunt urm+toarele:
dac+ a E B* ecua(ia degenereaz+ "ntr#o ecua(ie de gradul unu* situa(ie semnalizat+ printr#un
mesaj;
dac+ a B* se calculeaz+ delta E b
2
# $ac;
dac+ delta F B* printr#un mesaj se semnalizeaz+ .aptul c+ ecua(ia are r+d+cini comple'e;
dac+ delta CE B* se calculeaz+ r+d+cinile "
1
* "
)
i se a.ieaz+.
/v-nd "n vedere aceste situa(ii* rezult+ scema logic+ din .ig. 2.12.
9ig. 2.12. 3cema logic+ pentru rezolvarea ecua(iei de gradul doi.
2.2.1.2.2. Su(% % n nu(!r! r!%&!
9iind date n numere reale: a
1
* a
2
*?* a
n
* se cere s+ se "ntocmeasc+ scema logic+ ce
calculeaz+ suma celor n numere.
1a calculul sumei* se eviden(iaz+ urm+toarele etape de calcul:
>
3tart
<itete
a,b*c
a E B
DA NU

SCRIE
Ec.
grad I
deltab
2
#$ac

delta<
0
DA NU

SCRIE
Rad.
comp!"!
"
1
(#b#delta )#
$%a)
"
2
(#b+delta)#
$%a) )#$%a))#
$%a)
3<R=)
"
1
* "
2

St&'
se citete n;
se citesc cele n numere reale* cu ajutorul unui ciclu for ;
se ini(ializeaz+ suma (notat+ cu s) cu valoarea zero;
se calculeaz+ suma celor n numere reale* tot cu ajutorul unui ciclu for ;
se a.ieaz+ suma.
3e ob(ine scema logic+ din .ig. 2.1!.
9ig. 2.1!. 3cema logic+ pentru calculul sumei a n numere reale.
0 scem+ logic+ prezint+ urm+toarele dezavantaje:
@
3tart
<itete
n
i 1
<itete
a
i
i <=
n
DA
NU
i i+1
s B
i 1
i <=
n
DA
NU
i i+
1
ss D a
i
SCRIE

s
St&'
scema logic+ nu este liniar+;
"n scema logic+ nu se pot insera declara(ii i comentarii;
citirea unei sceme logice este greoaie.
0 scem+ logic+ prezint+ urm+toarele dezavantaje:
scema logic+ nu este liniar+;
"n scema logic+ nu se pot insera declara(ii i comentarii;
citirea unei sceme logice este greoaie.
-.2.2. P,!udocodu&
7seudocodul permite o descriere mai liniar+ a algoritmului* uur-nd at-t reprezentarea c-t i
citirea acestuia. 7seudocodul se apropie mult de limbajul de programare 7/3</1* cu toate c+ nu are o
sinta'+ rigid+ ca aceea a unui limbaj de programare.
=nstruc(iunile pseudocodului sunt urm+toarele:
1. %&'orit(u& nume !,t! .
/ceast+ instruc(iune este prima din program i are rolul de a denumi programul. =nstruc(iunea
corespunde blocului 35/R5 din scema logic+ (vezi .ig !.1.b).
4e e'emplu: algoritmul valoareGpolinom este :
2. cit!/t! list variabile;
).ectul acestei instruc(iuni const+ "n citirea valorilor variabilelor din list+ (prin list variabile se
"n(elege o succesiune de variabile separate prin virgul+). =nstruc(iunea corespunde blocului de citire
din scema logic+.
4e e'emplu* instruc(iunea corespunz+toare blocului de citire din .ig !.2.b este urm+toarea:
citete a*b;
-. ,cri! list variabile;
).ectul acestei instruc(iuni const+ "n a.iarea valorilor variabilelor din list+. )a corespunde
blocului de scriere din scema logic+.
4e e'emplu* instruc(iunea corespunz+toare blocului de scriere din .ig !.2.c este urm+toarea:
scrie a*b;
0. variabil e"presie;
2n cazul acestei instruc(iuni* valoarea calculat+ a e'presiei se atribuie variabilei speci.icate "n
membrul st-ng. =nstruc(iunea corespunde blocului de calcul din scema logic+ (vezi .ig !.!.a).
4e e'emplu* instruc(iunea corespunz+toare blocului din .ig !.!.b este urm+toarea: ' a D b;
1. d%c* condiie %tunci secven de instruciuni /
H%&t2!& secven de instruciuni 8I
,23r/it4d!4d%c*5
/ceast+ instruc(iune corespunde structurii alternative din scema logic+ (vezi .ig. !.@).
).ectul acestei instruc(iuni const+ "n veri.icarea condi(iei speci.icate i e'ecu(ia secven(ei de
instruc(iuni /* atunci c-nd condi(ia este "ndeplinit+* sau e'ecu(ia secven(ei de instruc(iuni 8* atunci
c-nd condi(ia nu este "ndeplinit+.
Ramura asociat+ cuv-ntului ceie altfel este op(ional+ (de aceea s#a pus "ntre paranteze p+trate)*
adic+* "n anumite cazuri* aceasta poate lipsi. 2n asemenea situa(ii* instruc(iunea este urm+toarea:
d%c* condiie %tunci secven de instruciuni /
,23r/it4d!4d%c*5
i corespunde structurii alternative din .ig. !.A.a;
A
6. c%$ condiie 1 : secven instruciuni 1
condiie 2 : secven instruciuni 2
7
condiie n : secven instruciuni n
H%&t2!& secven de instruciuni nD1I
,23r/it4d!4c%$;
/ceast+ instruc(iune este o structur+ alternativ+ cu nD1 c+i i poate .i ecivalat+ cu mai multe
structuri alternative* conectate "n cascad+.
<ondi(iile ce pre.i'eaz+ secven(ele de instruc(iuni trebuie s+ .ie disjuncte dou+ c-te dou+.
Ramura cu altfel poate s+ lipseasc+.
)'ecu(ia acestei instruc(iuni const+ "n urm+toarele:
se veri.ic+ condi(iile;
dac+ una din condi(ii este "ndeplinit+* se e'ecut+ secven(a de instruc(iuni ce urmeaz+ condi(iei
"ndeplinite* alt.el:
se e'ecut+ secven(a ce urmeaz+ dup+ cuv-ntul altfel* dac+ aceast+ ramur+ e'ist+* sau* "n caz
contrar*
se trece la e'ecu(ia instruc(iunii ce urmeaz+ dup+ sf*rit+de+caz.
=nstruc(iunea caz nu are un bloc corespondent "n scema logic+. 5otui ea poat .i asimilat+ cu
mai multe structuri alternative conectate "n cascad+. 4e e'emplu* instruc(iunea:
c%$ condiie 1 : secven instruciuni /
condiie 2 : secven instruciuni 8
%&t2!& secven instruciuni <
,23r/it4d!4c%$;
este ecivalent+ cu structura de scem+ logic+ din .ig. !.1$*
9ig. !.1$. 3tructur+ logic+ ecivalent+ cu o instruc(iune caz
cu dou+ c+i i ramur+ altfel.
iar instruc(iunea:
c%$ condiie 1 : secven instruciuni /
condiie 2 : secven instruciuni 8
,23r/it4d!4c%$;
este ecivalent+ cu structura de scem+ logic+ din .ig. !.1%.
1B
Condi
ie 1
DA NU
A
Condi
ie %
DA NU
B C
Condi
ie 1
DA NU
A
Condi
ie %
DA NU
B
9ig. !.1%. 3tructur+ logic+ ecivalent+ cu o instruc(iune caz
cu dou+ c+i i .+r+ ramur+ altfel.
8. c3t4ti(# condiie !+!cut*
secven de instruciuni /
,23r/it4d!4c3t4ti(#;
/ceast+ instruc(iune corespunde structurii repetitive de tip &'ile (vezi .ig. !.1B.a).
)'ecu(ia instruc(iunii const+ "n urm+toarele etape:
se veri.ic+ condi(ia;
se e'ecut+ secven(a de instruc(iuni /* atunci c-nd condi(ia este "ndeplinit+* sau* "n caz contrar* se
trece la e'ecu(ia instruc(iunii ce urmeaz+ dup+ sf*rit+c*t+timp.
4ac+* ini(ial* condi(ia nu este "ndeplinit+* secven(a de instruc(iuni / nu se e'ecut+.
9. r!#!t*
secven de instruciuni /
#3n*4c3nd condiie;
/ceast+ instruc(iune corespunde structurii repetitive de tip repeat (vezi .ig. !.1B.b).
)'ecu(ia instruc(iunii const+ "n urm+toarele etape:
se e'ecut+ secven(a de instruc(iuni /;
se veri.ic+ condi(ia;
atunci c-nd condi(ia nu este "ndeplinit+* se e'ecut+ secven(a de instruc(iuni /* sau* "n caz contrar* se
trece la e'ecu(ia instruc(iunii ce urmeaz+ dup+ p*n+c*nd.
<iar dac+ ini(ial condi(ia nu este "ndeplinit+* secven(a / se e'ecut+ cel pu(in o dat+.
:. #!ntru i,v
i
* v
f
H* rI !+!cut*
secven de instruciuni /
,23r/it4d!4#!ntru5
/ceast+ instruc(iune corespunde structurii repetitive de tip for (vezi .ig. !.11).
)'ecu(ia instruc(iunii const+ "n urm+toarele etape:
se d+ variabilei (contorului) i valoarea ini(ial+ v
i
;
se e'ecut+ secven(a de instruc(iuni /;
se crete valoarea variabilei i cu valoarea (pasul) r;
dac+ valoarea variabilei i este mai mic+ sau egal+ cu valoarea .inal+ v
f
* se e'ecut+ secven(a /* sau* "n
caz contrar* se trece la e'ecu(ia instruc(iunii ce urmeaz+ dup+ sf*rit+de+pentru.
3peci.icarea valorii pasului r este op(ional+. 2n cazul "n care valoarea lui r nu se speci.ic+* se
consider+ r E1.
1;. ,to#5
11
/ceast+ instruc(iune determin+ terminarea e'ecu(iei programului* deci este ultima instruc(iune
dintr#un program.
2n scema bloc* acestei instruc(iuni "i corespunde blocul delimitator din .ig. !.1.c.
11. #roc!dur% nume H(list parametri formali)I;
secven de instruciuni
,23r/it4#roc!dur*
/ceast+ instruc(iune permite declararea procedurilor.
4eclararea unei proceduri const+ "n declararea numelui procedurii i declararea listei
parametrilor .ormali (list+ care este op(ional+).
7arametrii .ormali sunt parametrii ale c+ror valori .ie sunt preluate din programul apelant* .ie
sunt transmise programului apelant. Rezult+ c+* la apelul procedurii* valorile acestor parametrii sunt
actualizate.
2n list+* parametri .ormali se separ+ prin virgul+.
12. nu(! list parametri actuali;
/pelul unei proceduri se .ace speci.ic-nd numele procedurii urmat de lista parametrilor actuali.
2n list+* parametri actuali se separ+ prin virgul+.
1-. cic&u;
<u aceast+ instruc(iune se determin+ trecerea la s.-ritul celui mai interior ciclu ce con(ine
aceast+ instruc(iune (deci la un sf*rit+de+c*t+timp* la un p*n+c*nd* sau la un sf*rit+de+pentru)*
.+r+ a se produce ieirea din ciclu.
10. i!/ir!5
/caest+ instruc(iune determin+ trecerea la prima instruc(iune ce urmeaz+ celui mai interior ciclu
ce con(ine aceast+ instruc(iune. 7ractic* se provoac+ ieirea .or(at+ din ciclul respectiv;
11. < ir de caractere =;
2ncadrate de acolade* comentariile pot s+ apar+ oriunde "n program.
1a e'ecu(ia programului* rezultatul parcurgerii comentariilor este nul* acestea av-nd o valoare
in.ormativ+ numai pentru cel care citete programul.
-.2.2.1. E+!(#&! d! %&'orit(i d!,cri/i >n #,!udocod
7entru e'empli.icare* se vor "ntocmi algoritmii de rezolvare a ecua(iei de gradul doi cu
coe.icien(i reali i calculul sumei a n numere reale* dar "n pseudocod.
-.2.2.1.1. Ecu%i% d! 'r%du& doi
,tiliz-nd pseudocodul* pentru aplica(ia !.2.1.2.1* rezult+:
algoritmul ecuaie+de+gradul+doi este:
citete a* b* c;
dac+ a E B atunci scrie :)cua(ie de gradul =J
alt.el delta b
2
# $ac;
dac+ delta- . atunci scrie :Radacini comple'eJ
alt.el "
1
(#b#delta )/(2a);
"
2
(#bDdelta )/(2a);
scrie "
1
"
2
;
12
s.-ritGdeGdac+;
s.-ritGdeGdac+;
stop.
-.2.2.1.2. Su(% % n nu(!r! r!%&!
<u ajutorul pseudocodului* algoritmul de calcul a sumei a n numere reale (vezi aplica(ia
!.2.1.2.2) rezult+:
algoritmul suma+a+n+numere+reale este :
citete n;
pentru i E1* n e'ecut+
citete a
i
s.-ritGdeGpentru;
s B ;
pentru i E1* n e'ecut+
s s D a
i
;
s.-ritGdeGpentru;
scrie s;
stop;
1!

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