18643757-Curs-C

download 18643757-Curs-C

If you can't read please download the document

Transcript of 18643757-Curs-C

Program postuniversitar de conversie profesional pentru cadrele didactice din med iul rural Specializarea TEHNOLOGIA INFORMAIEI Forma de nvmnt ID - semestrul III PROGRAMAREA CALCULATOARELOR Florentina MOCRIENCO Daniela VLDOIU 2006

Ministerul Educaiei i Cercetrii Proiectul pentru nvmntul Rural TEHNOLOGIA INFORMAIEI Programarea calculatoarelor Florentina MOCRIENCO Dana VLDOIU 2006

2006

Ministerul Educaiei i Cercetrii Proiectul pentru nvmntul Rural Nici o parte a acestei crri nu poate fi reprodus fr acordul scris al Ministerului Educaiei i Cercetrii ISBN 10 973-0-04555-0; ISBN 13 978-973-0-04555-0.

Cuprins CUPRINS Unitatea de nvare Nr. 1 ........................................................... ...................................... 1 DEFINIREA NOIUNILOR DE ALGORITM, PROGRAM I LIMBAJ DE PROGRAMARE Obiectivele Unitii de nvare 1 ................................ ..................................................... 1 1.1 Noiunea de algoritm . ................................................................................ .................. 1 1.2 Propietile algoritmilor ................................. ............................................................. 4 1.3 Programe i li mbaje de programare............................................................. .............. 8 1.3.1 Evoluia limbajelor de programare ......................... ....................................... 9 1.3.2 Etapele realizrii programelor ... ................................................................... 16 Rspunsuril e corecte la testele de autoevaluare............................................ .............. 20 Bibliografie.................................................. ..................................................................... 20 Lucrare a de verificare Nr. 1, notat de tutore .......................................... ..................... 21 Unitatea de nvare Nr. 2 .................................. ............................................................. 22 PRINCIPIILE PRO GRAMRII STRUCTURATE Obiectivele Unitii de nvare 2 .................................... ............................................... 22 2.1 Reprezentarea algoritmilo r .............................................................................. ......... 22 2.2 Elemente de programare structurat .............................. ......................................... 26 2.3 Structuri de control utilizate n programarea structurat ...................................... 29 2.3.1 Secvena sa u structura liniar............................................................... ....... 29 2.3.2 Decizia sau structura alternativ ............................... ................................... 32 2.3.3 Ciclul sau structura repetitiv ..... .................................................................. 36 Rspunsuri c orecte la testele de autoevaluare............................................... .............. 42 Bibliografie.................................................. ..................................................................... 42 Lucrare a de verificare Nr. 2, notat de tutore .......................................... ..................... 43 Unitatea de nvare Nr. 3 .................................. ............................................................. 44 STRUCTURA PROGR AMELOR N LIMBAJUL C. TIPURI DE DATE, OPERATORI I EXPRESII Obiectivele Unitii de nvare ............................................................................... .... 44 3.1 Privire de ansamblu asupra limbajului C............................. .................................... 44 3.2 Structura programelor n limbajul C .. ...................................................................... 46 3.3 Va riabile, tipuri de variabile i declarare ........................................ ......................... 51 3.4 Constante ..................................... .............................................................................. 5 4 3.5 Funcii aritmetice care opereaz cu valori de tip real i ntreg.................. ............ 57 3.6 Operatori n C................................................ ............................................................. 60 3.6.1 Operatoru l de atribuire ................................................................. ................ 60 3.6.2 Operatori aritmetici.................................. ..................................................... 61 3.6.3 Operatori relaiona li i logici ..................................................................... .... 65 3.6.4 Operatori de atribuire compus...................................... .............................. 67 3.6.5 Operatorul de conversie explicit (cast) . ...................................................... 68 3.6.6 Operatorul sizeo f............................................................................... ........... 68 3.6.7 Operatorul virgul (,) ........................................ .......................................... 69 Proiectul pentru nvmntul Rural i

Cuprins 3.6.8 Operatorul condiional (?) ................................................. ............................69 Rspunsuri corecte la testele de autoevaluare, sarc inile de lucru i exerciii ...........72 Bibliografie ............................. ................................................................................ ..........72 Lucrarea de verificare Nr. 3, notat de tutore....................... .........................................73 Unitatea de nvare Nr. 4 ............... ................................................................................ 76 CITIREA I SCRIEREA DATELOR Obiectivele Unitii de nvare 4 .......................... ..........................................................76 4.1 Noiuni introduct ive ............................................................................ .......................76 4.2 Funcia de scriere cu format ....................... ..............................................................77 4.3 Funcia de ci tire cu format ................................................................. .......................81 Rspunsuri corecte la testele de autoevaluare, sarcinile de lucru i exerciii ...........86 Bibliografie .................................. ................................................................................ .....87 Lucrarea de verificare Nr. 4, notat de tutore............................ ....................................87 Unitatea de nvare Nr. 5 .................... ...........................................................................89 IN STRUCIUNILE LIMBAJULUI C / C++ Obiectivele Unitii de nvare 5 ......................... ...........................................................89 5.1 Instruciunea ex presie ......................................................................... ......................89 5.2 Instruciunea compus.................................. ............................................................90 5.3 Instruciunea i f .............................................................................. ............................90 5.4 Instruciunea switch .......................... ........................................................................93 5.5 I nstruciunea break ............................................................... .....................................94 5.6 Instruciunea while................... ................................................................................ ..94 5.7 Instruciunea do-while .................................................. .............................................95 5.8 Instruciunea for............. ................................................................................ ............97 Rspunsuri corecte la testele de autoevaluare, sarcinile de lucru.. ..........................100 Bibliografie ..................................... ................................................................................ 100 Lucrarea de verificare nr.5, notat de tutore ................................ ...............................101 Unitatea de nvare Nr. 6 ........................ .....................................................................103 TABLOUR I Obiectivele Unitii de nvare 6 ..................................................... .............................103 6.1 Tablouri unidimensionale................... .....................................................................104 6.2 Poi nteri........................................................................... ...........................................111 6.3 iruri de caractere ........... ................................................................................ ........115 Rspunsuri corecte la testele de autoevaluare, sarcinile de lucru i exe rciii .........121 Bibliografie ................................................. ....................................................................121 Lucrarea de verificare Nr. 6, notat de tutore............................................ ..................122 ii Proiectul pentru nvmntul Rural

Cuprins

Unitatea de nvare Nr. 7 ........................................................... .................................. 123 FIIERE N LIMBAJUL C++ Obiectivele Unitii de nva e 7 ............................................................................ ..... 123 7.1 Declararea fiierelor .............................................. .................................................. 123 7.2 Deschiderea fiierelor ................................................................................ ............. 124 7.3 Citirea datelor dintr-un fiier ............................ ...................................................... 125 7.4 Scrierea datelor n tr-un fiier...................................................................... ............ 126 7.5 Operaii de test ............................................ ............................................................ 126 7.6 nchiderea un ui fiier......................................................................... ...................... 127 Rspunsuri corecte la testele de autoevaluare.......... ................................................. 129 Bibliografie.............. ................................................................................ ....................... 130 Lucrarea de verificare nr. 7, notat de tutore ....... ................................................. 130 Unitatea de nvare Nr. 8 ..... ................................................................................ ........ 132 FUNCII Obiectivele Unitii de nvare 8 .................................... ............................................. 132 8.1 Funcii nerecursive......... ................................................................................ ......... 132 8.1.1 Definirea unei funcii ....................................... ........................................................ 133 8.1.2 Declararea fu nciilor.......................................................................... ...................... 134 8.1.3 Apelul funciilor ............................... ........................................................................ 135 8.1 .4 Variabile globale i variabile locale ......................................... ................................ 140 8.2 Funcii recursive........................ .............................................................................. 1 45 Rspunsuri corecte la testele de autoevaluare, sarcinile de lucru ............. .............. 153 Bibliografie................................................. .................................................................... 155 Lucrare a de verificare Nr. 8, notat de tutore .......................................... ................... 156 ANEXE Laboratorul 1..................................... ............................................................................. 15 9 Laboratorul 2................................................................. ................................................. 168 Laboratorul 3............. ................................................................................ ..................... 171 Laboratorul 4......................................... ......................................................................... 176 La boratorul 5..................................................................... ............................................. 183 Laboratorul 6................. ................................................................................ ................. 189 Laboratorul 7............................................. ..................................................................... 194 BIBLIO GRAFIE.......................................................................... ..................................... 201 Proiectul pentru nvmntul Rural iii

Introducere

INTRODUCERE Manualul de Programarea calculatoarelor este structurat astfel nct s ofere cursanilor cunotinele necesare pentru a fi capabili s neleag i s foloseasc un limbaj de program scopul rezolvrii unor probleme cu ajutorul calculatorului. n elaborarea acestuia s -a urmrit abordarea ct mai complet i mai adecvat a tematicii cuprinse n programele col re ale disciplinelor de profil din nvmntul preuniversitar pentru a oferi cursanilor po sibilitatea de a preda aceste discipline la orice nivel. Noiunile sunt prezentate gradat, punndu-se accent pe nelegerea i aplicarea acestora n practic. Se recomand ca procesul de predare nvare, activitatea s fie orientat pe probleme: analiza unor situai i practice (generale sau specifice unui anumit domeniu), identificarea fluxului informaional, elaborarea unui model algoritmic de rezolvare, implementarea i testa rea rezolvrii cu ajutorul limbajului de programare C i C++. Datorit caracterului pr egnant aplicativ al disciplinei, se recomand desfurarea orelor ntr-o sal dotat cu un n umr suficient de sisteme de calcul, astfel nct pe un sistem de calcul s lucreze cel mult doi cursani. Evaluarea activitii cursanilor se va face att pe baza activitii prac ice desfurate n timpul semestrului (sarcini de lucru, rezolvarea de probleme n labor ator i teme de cas), ct i prin susinerea unui examen final. Bibliografia de baz va cup rinde manuale, culegeri de probleme, programe de specialitate elaborate de ctre M inisterul Educaiei i Cercetrii pentru nvmntul preuniversitar, resurse WWW. Obiectivele modulului Dup studiul modulului Programarea calculatoarelor, vei reui s: programare n rezolvarea problemelor. Exprimai un mod de gndire creativ, n structurar ea i rezolvarea problemelor. V formai obisnuinele de a recurge la concepte i metode i nformatice de tip algoritmic specifice n abordarea unei varieti de probleme. Avei ca pacitatea de a nelege i folosi elementele de baz ale limbajului de programare C i C++ . Avei abilitatea de a rezolva probleme complexe prin organizarea corespunztoare a programelor sub forma de proiect. Manifestai iniiativ i disponibilitatea de a abord a sarcini variate. V adaptai abilitile pedagogice la domeniul specific Programrii calc ulatoarelor. Proiectul pentru nvmntul Rural Identificai rolul entitilor algoritm, program i limbaj de iv

Introducere Structurarea modulului pe uniti de nvare Modulul Programarea calculatoarelor, este integrat domeniului Tehnologia Informai ei i face parte din categora disciplinelor opionale de specialitate studiate n semes trul al III lea. Din totalul de 56 de ore destinat modulului, 75% din ore sunt a locate aplicaiilor practice. Stabilirea unitilor de nvare

Unitatea de nvare este o parte component a modulului de studiu, care are urmtoarele c aracteristici: Integreaz competene specifice Determin formarea unui anumit comporta ment al cursantului, generat prin integrarea unor competene specifice Este unitar din punct de vedere tematic Se desfoar n mod sistematic Se finalizeaz prin evaluare. Modulul este structurat pe urmtoarele opt uniti de nvare: DEFINIREA NOIUNILOR DE ALGOR TM, PROGRAM I LIMBAJ DE PROGRAMARE PRINCIPIILE PROGRAMRII STRUCTURATE STRUCTURA PR OGRAMELOR N LIMBAJUL C. TIPURI DE DATE, OPERATORI I EXPRESII CITIREA I SCRIEREA DAT ELOR INSTRUCIUNILE LIMBAJULUI C / C++ TABLOURI FIIERE N LIMBAJUL C++ FUNCII Construirea competenelor

Pentru fiecare unitate de nvare din acest modul, am construit cteva competene din per spectiva competenelor generale vizate de domeniul de studiu. Formarea lor este ur mrit sistematic, pe parcursul fiecrei uniti de nvare, iar pentru a determina gradul d ormare a competenelor specifice, la sfritul fiecrei uniti de nvare sunt prevzute lu evaluare. Coninuturile sunt informaiile de diverse tipuri, transmise prin intermed iul textului tiprit, al bibliografiei recomandate, al altor forme de transmitere precum Internet-ul, casete audiu sau video, CD-uri. Coninuturile acestui modul au fost alese astfel nct s rspund competenelor specifice anterior formulate. Construirea coninuturilor Proiectul pentru nvmntul Rural v

Introducere

Tem de reflecie Identificai cu ajutorul cuprinsului unitile de nvare ale modulului, a citii titlurile i obiectivele fiecrei uniti. Cursurile destinate Proiectului pentru n vmntul Rural au forme grafice asemntoare. Astfel, pe fiecare pagin, n partea dreapt t prevzut un spaiu alb care are un rol dublu, i anume: Folosete spaiul alb pentru notie! 1. adnotrile nscrise aici (elemente grafice sau de text) atrag atenia i te ajut la identificarea sau consolidarea unor informaii importante; 2. spaiul alb poate fi folosit pentru notie, completri, observaii. Atenie! Folosete spaiul alb! El are rolul de a te ajuta n nvare. Coninuturile sunt ntrerupte din loc n loc de diverse sarcini de lucru. Sarcinile de lucru sunt cuprinse n chenar i sunt anunate prin titluri specifice i prin imagini s ugestive. De exemplu, n chenarul de mai jos este formulat o sarcin de lucru. Tem de reflecie Indetific sarcinile de lucru formulate anterior. Ce rol crezi c au n aceast parte introductiv? Folosete spaiul liber de mai jos pentru rspuns. Spaiu pentru rspuns vi Proiectul pentru nvmntul Rural

Introducere

Exist sarcini de lucru care necesit un rspuns. Pentru acestea am lsat un spaiu n care putei scrie. Dac acest spaiu este prea mic n comparaie cu necesitile, atunci rspunsur se pot da pe foi de hrtie, care pot fi ataate ulterior cursului. Este util s rspunz i cu consecven la ntrebrile formulate, imediat dup ce ai parcurs coninuturile tematice . n acest fel, i este mult mai uor s sintetizai materia parcurs i s te pregtiti pe unde la sarcinile de lucru, la lucrrile de verificare notate de tutore, precum i l a evaluarea final. Dac avei neclariti n legtur cu sarcinile de lucru propuse, poi fo sugestiile de rezolvare ale acestora, care se afl la sfritul fiecrei uniti de nvare. ru a identifica mai uor rspunsurile, am numerotat sarcinile de lucru ale fiecrei un iti de nvare cu numere succesive. Atenie! Este recomandat s se pstreze legtura cu tu e, cruia s i adresezi ntrebri, la una din ntlniri prevzute prin program. n fiecare unitilor de nvare sunt formulate unul sau mai multe Sarcini de lucru. Ele sunt anunate prin simboluri i titluri specifice ca n exemplul urmtor.

Sarcin de lucru Enumer minim 3 uniti de nvare cuprinse n acest curs. Folosete spaiu de mai jos pentru rspuns.

Rspunsurile la aceste sarcini de lucru se gsesc la sfritul unitii de nvare respectiv eciunea Indicaii i rspunsuri i sunt asociate simbolului alturat. Proiectul pentru nvmntul Rural vii

Introducere

Pentru modulul Programarea calculatoarelor, evaluarea are dou componente: evaluar ea continu i evaluarea final. Evaluarea continu este o modalitate de apreciere a act ivitii cursantului, pe parcursul ntregului semestru. Evaluarea continu va fi fcut n pr ncipal pe baza Lucrrilor de verificare notate de tutore. Aceste teste se gsesc la sfritul fiecreia dintre unitile de nvare ale modulului i sunt anunate n cuprins. P rea de verificare este evaluat gradul de ndeplinire a competenelor specifice fiecre i unitii de nvare. Pentru fiecare item de evaluare, sunt precizate modul n care trebui e formulat rspunsul i baremul de notare. Lucrrile de evaluare, rezolvate individual , vor fi transmise tutorelui n modul i la datele anunate la nceputul semestrului. Cum se face evaluarea? Atenie! Notele obinute prin transformarea punctajelor n note de la 1 la 10, n urma c orectrii acestor lucrri de verificare, reprezint o parte important a evalurii continu e. Tem de reflecie Identificai cel puin trei lucrri de verificare - notate de tutore, pe care va trebui s le rezolvai. Folosii spaiul liber de mai jos, pentru a nota pagini le la care se gsesc aceste lucrri. O alt parte a evalurii continue provine din aprecierea activitii de-a lungul semestr ului i din timpul ntlnirilor cu tutorele. Pentru aceasta, vor conta: respectarea ca lendarului de lucru, calitatea ntrebrilor formulate, modul n care colaborai cu tutor ele, alte aspecte, dup caz. Pentru acest curs, forma de evaluare final este examen ul. Evaluarea final i evaluarea continu contribuie fiecare la stabilirea notei pent ru acest modul. n fixarea notei finale, evaluarea continu are ponderea de 60% din not, iar evaluarea final are ponderea de 40%. Nota minim pentru promovarea acestui modul este 5. viii Proiectul pentru nvmntul Rural

Introducere Evaluarea pe parcurs apreciaz activitatea desfurat de cursani n cadrul laboratorului ( rezolvare de probleme) i modul de rezolvare a temelor de cas, repartizate uniform pe durata semestrului. Fiecare dintre aceste doua subcomponente are pondere de 3 0% n cadrul notei finale. Evaluarea final se realizeaz sub form de examen scris. Cri teriile de evaluare utilizate sunt: corectitudinea i claritatea elaborrii algoritm ului, folosirea corect i eficient a elementelor limbajului de programare, utilizare a unui stil adecvat de implementare, corectitudinea funcionrii aplicaiei, diversita tea i completitudinea metodelor de testare a funcionrii aplicaiei folosite.

Atenie! Pstreaz legtura cu tutorele pentru a obine alte indicaii sau precizri. Mult su ces! Recitete introducerea pentru fixarea noiunilor! Proiectul pentru nvmntul Rural ix

Definirea noiunilor de algoritm, program i limbaj de programare Unitatea de nvare Nr. 1 DEFINIREA NOIUNILOR DE ALGORITM, PROGRAM I LIMBAJ DE PROGRAMARE

Cuprins Obiectivele Unitii de nvare 1 1.1 Noiunea de algoritm 1.2 Propietile algoritmilor 1.3 ograme i limbaje de programare 1.3.1 Evoluia limbajelor de programare 1.3.2 Etapel e realizrii programelor Rspunsurile corecte la testele de autoevaluare Bibliografi e Lucrarea de verificare Nr. 1, notat de tutore Pagina 1 1 4 8 9 16 20 20 21

Obiectivele Unitii de nvare 1 Dup parcurgerea acestei uniti de nvare vei fi capabili s: Definii noiunil ogram i limbaj de programare Identificai principalele etape de rezolvare a unei pr obleme Reprezentai diveri algoritmi n pseudocod Explicai principiile programrii struc turate n procesul de elaborare a algoritmilor Identificai principalele etape de implementare n limbaj de programare a unui algor itm 1.1

Noiunea de algoritm Algoritmul este o noiune matematic foarte veche. Cuvntul algoritm este de origine a rab. El deriv din numele matematicianului Abu Jafar Mohammed bn Ms al Horezmi care a is o carte celebr intitulat Kitab al jabr wal - muquabala. Din titlul acestei cri prov ne cuvntul algebr. Termenul algorism era folosit n evul mediu cu nelesul de proces al efecturii operaiilor aritmetice cu ajutorul cifrelor arabe. Se presupune c din aso cierea cuvntului algorism cu domeniul lui de referin, aritmetica, a rezultat termen ul algoritm. ncepnd cu anul 1950, n toate manualele de specialitate, cuvntul algorit m era frecvent asociat cu procesul de aflare a celui mai mare divizor comun a do u numere naturale, aa Proiectul pentru nvmntul Rural 1

Definirea noiunilor de algoritm, program i limbaj de programare

numitul algoritmul lui Euclid. De asemenea, regulile operaiilor aritmetice sunt d enumite algoritmi de efectuare a operaiilor respective. Noiunea de algoritm nu are o definiie matematic. n aceeai situaie se afl i alte noiuni din matematic, cum ar f nea de mulime. Prin algoritm se accept s se neleag un sistem de calcule, care, pentru o anumit clas de probleme, din condiiile iniiale ale problemei permite s se obin solu problemei respective, cu ajutorul unui ir finit i ordonat de operaii univoc determi nate, efectuate mecanic, fr aportul creator al omului. Un algoritm este compus din unul sau mai muli pai, un pas reprezentnd efectuarea unei singure operaii din irul c elor care alctuiesc algoritmul.

Exemplul 1.1 a. Algoritmul mpririi ntregi a dou numere naturale Se tie c mprirea ntreag a dou numere const din efectuarea unor scderi succesive, p tul devine mai mic dect scztorul. Pentru fiecare scdere care se efectueaz, desczutul e ste rezultatul scderii precedente, iar scztorul este mpritorul. Rezultatul ultimei scd ri efectuate este tocmai restul mpririi celor dou numere, iar numrul de scderi efectua te reprezint ctul mpririi. Paii acestui algoritm sunt constituii de operaiile de scd de operaiile de comparare a desczutului cu scztorul. Este evident c irul acestor opera i este finit, deoarece desczutul se micoreaz cu fiecare nou scdere, n timp ce scztoru e neschimbat. Fie, de exemplu, numerele 23 i 7. Paii algoritmului care duc la afla rea ctului i restului mpririi sunt prezentai n tabelul 1.1. Operaia scdere comparare e comparare scdere comparare Pasul 23-7 = 16 16c atunci max=b altfel max=c scrie max stop Se observ folosirea a dou structuri alternative pentru rezolvarea problemei, a doua dintre ele fiind inclus ntr-una din ramurile de decizie ale structurii, i anume pe cea corespunztoare neverificrii condiiei testa te. Se folosesc trei variabile reale corespunztoare celor trei numere citite (a, b i c) i o variabil pentru pstrarea valorii maxime, tot real, max. Dac a este mai mare dect celelalte dou numere b i c, atunci valoarea maxim va fi a, altfel ea trebuie cu tat ntre celelalte dou valori; dac b este mai mare dect c, atunci b este maxim, altfe l maximul va fi c. Exemplul 2.5 S se realizeze schema logic pentru evaluarea expresiei: A2 B,c < 0 E= A 2 B , c = 0 1 B,c > 0 A2 Schema logic a acestei probleme se afl la capitolul de Anexe, Laboratorul 1. Proiectul pentru nvmntul Rural 33

Principiile programrii structurate Exemplul 2.6 Un exemplu de problem la care se folosete cea de-a doua variant a schemei logice pe ntru structura alternativ este: S se determine valoarea absolut a numrului real x, c itit de la tastatur. Rezolvare: real x citete x dac x 0 E ( x ) = x 3 2 x + 7 daca a b < 0 x 2 5 daca a b = 0

5. Dndu-se a, b i c, coeficienii unei ecuaii de gradul doi, s se determine semnul rdci ilor ecuaiei, dac exist, fr a se rezolva ecuaia (innd cont de valorile lui , P i S) Variantele corecte de rspuns se afl la pag 42. Proiectul pentru nvmntul Rural 35

Principiile programrii structurate 2.3.3 Ciclul sau structura repetitiv De multe ori este necesar repetarea unor operaii, n funcie de anumite condiii. Ciclul cu test iniial sau structura repetitiv condiionat anterior Execuia presupune parcurg erea urmtoarelor etape: se evalueaz condiia; dac rezultatul este adevrat, se execut se cvena A, dup care se trece din nou la evaluarea condiiei; n caz contrar, se ncheie ex ecuia ciclului. Condiie False NU DA True Exprimarea n pseudocod a acestei structuri este: cat_timp condiie execut secvena A A ceast structur mai este cunoscut ca structura de tip WHILE DO A Figura 2.8 Observaie Figura 2.8 Atunci cnd condiia este fals de la nceput, secvena A n u se execut niciodat; n acest caz numrul de iteraii este zero (adic de cte ori a fost xecutat secvena A).

Exemplul 2.7 S se calculeze xn, unde x este un numr real, iar n un numr natural. real x, putere n treg n, i citete x, n i=1 putere = 1 cat_timp in scrie fact stop Proiectul pentru nvmntul Rural 37

Principiile programrii structurate

Exemplul 2.9 S se calculeze suma primelor n numere naturale. Pentru rezolvarea acestei problem e, sunt necesare variabilele intregi n, i, s, primele dou variabile avnd aceeai sem nificaie ca la problema precedent, iar s este variabila necesar pstrrii valorii sumei numerelor naturale de la 1 la n. intregi n, i, s citete n i=1 s=0 repet s=s+i i=i +1 pn_cnd i>n scrie s stop S probm funcionalitatea algoritmului pentru n=3: i ia valoa rea 1 iar s ia valoarea 0; (se iniializeaz cu aceste valori) i se adaug la vechea val oare a lui s s=0+1=1 i crete cu o unitate (se incrementeaz) i=1+1=2 se compar i cu n; deoarece i este mai mic dect n, se trece la repetarea celor doi pai; i se adaug la vechea valoare a lui s s=1+2=3 i crete cu o unitate (se incrementeaz) i=2+1=3 se co mpar i cu n; deoarece i nu este mai mare dect n, se trece la repetarea celor doi p ai; i se adaug la vechea valoare a lui s s=3+3=6 i crete cu o unitate (se incremente az) i=3+1=4 i este mai mare dect n, deci se oprete execuia ciclrii, se tiprete valoar sumei s i algoritmul se ncheie. Observaie Dac se compar aceast problem cu precedenta, e observ o asemnare n rezolvarea lor, i anume o parte de iniializare a variabilelor i o ciclare pentru calculul celor dou valori: factorial, respectiv suma. Diferenele constau n valorile de iniializare a factorialului (1, deoarece se calculeaz un prod us), respectiv a sumei (s=0) i operaiile de calcul a celor dou variabile; nmulire, re spectiv adunare. Exemplul 2.10 n primul capitol a fost prezentat, n limbaj natural, algoritmul de mprire a dou numere naturale prin scderi repetate. Iat cum se poate scrie n pseudocod acest algoritm: intregi a, b, cat 38 Proiectul pentru nvmntul Rural

Principiile programrii structurate

citete a, b cat=0 ct_timp a>=b execut a=a-b cat=cat+1 scrie cat=, cat, rest=,a stop Pe tru rezolvarea acestei probleme a fost ales ciclul cu test iniial deoarece el va da rezultatul corect i pentru cazul cnd a= < 3+5 este eva luat ca i cum ar fi fost scris 7>(3+5); reultatul este Fals, adic zero. ntr-o expresie se pot combina mai multe operaii, ca n exemplul urmtor: 10>5 && !(9= < 10 da rezultatul %d\n, n, n>10); printf(%d==100 da rezultatul %d\n, n, n== 100); printf(%d y ? (aux=x: x=y, y=aux) : y; are ca efect ordonarea variabilelor x i y n ord ine cresctoare. Ca rezultat se obine cea mai mare valoare dintre cele dou variabile .

Test de autoevaluare 3.4 Dai rspunsul corect la urmtoarele ntrebri. Fiecare ntrebare valoreaz 20 de puncte. Pun taj minim: 80 1. Care din urmtorii sunt operatori aritmetici? a) + b) & c) % d) < a,c 71 Proiectul pentru nvmntul Rural

Structura programelor n limbajul C. Tipuri de date, operatori i expresii

2. Rescriei instruciunile urmtoare folosind operatorul postdecrementare sau operato rul de atribuire compus: numar=numar+1; poz=poz-1; pas=pas*3; 3. Expresiile urmtoa re sunt adevrate sau false? a) 1>2; c) 1= =2; b) ab) d) (a>b) || !(d