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
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!