Sunteți pe pagina 1din 159
© Editura Universitatii Titu Maforescu, 2008 Bucuresti, Romania Calea Vacaresti, nr. 187, sector 4 tel.: (004021) 330,21.42 (004021) 316.16.48 fax: (004021) 330,10.83 (004021) 331.22.97 yaw.utm.ro, ©Toate drepturile asupra prezentei editii sunt rezervate Edituri Universitatii Titu Maiorescu. Orice reproducere, prelucrare partiala sau integral, prin orice mijloc, a textului este interzisa, acesta fiind proprietatea exclusiva a editorului. Descrierea CIP a JOITA, DANIELA Programare structurala IDaniela Joita — Bucuresti, Editura Universitatii ,Titu Maiorescu", 2008 ISBN 978-973-569-972-0 004.42(075.8) liotecii Nationale a Romaniei PROGRAMARE PROCEDURALA Prefata Cursul de fat& prezinté © introducere aprofundaté in procesul de programare cu exemplificari in limbajul de programare C. Materialul nu presupune o experienta de programare. Cursul se adreseazi in special studentilor anului I ai Facultitii de $tiinfa si Tehnologia Informatiei, dar poate fi parcurs cu usurin{d de oricine doreste si invefe si programeze in acest Jimbaj. Elementele de baza ale sintaxei limbajului C sunt prezentate intr-o ordine naturala, de la cele mai simple, ca de exemplu, variabile, expresii si instructiuni de atribuire pand la alocare dinamica, pointeri si lucrul cu fisiere. Un capitol special este dedicat funcfiilor din bibliotecile standard. Este foarte important ca parcurgerea materialului s& se faci in ordinea capitolelor incluse. Ultimul capitol, Un pas spre C-+F a fost inclus in acest material deoarece limbajul C++, o extensie a limbajului C, confine anumite imbunsititiri pe care studentii se pare ca le prefer’ atunci cénd invatd si programeze. ‘Materialul se imparte in 13 capitole. Capitolul 1 prezintd principalele notiuni: program, programare, algoritm, compilare, etc. Capitolul 2 abordeazi in detaliu dowd metode de reprezentare a algoritmilor: limbajul natural si mai des folositul pseudocod. Capitolele 3 si 4 constituie o introducere in programare in limbajul C. Dac la inceputul cursului studentul este familiarizat cu programe complete dar simple, in Capitolul 5 se introduce scrierea functiilor ca 0 caracteristicé majori a programarii structurate. Capitolul 6 introduce cea mai simpla structura de date: sirul, ca mod de organizare secventiala a datelor. Capitolul 7 se concentreazit pe tucrul cu un tip special de siruri, sirurile de caractere. Capitolul 8 descrie modul de management al memoriei in C, introducand si nofiunea de pointer. in Capitolul 9 sunt prezentate trei tipuri de date ce pot fi definite de utilizator: struct, union si enum. Capitolul 10 prezinta o tehnica de programare, recursivitatea, ce poate fi implementata in limbajul C. Capitolul 11 este cel dedicat lucrului cu fisierele, iar Capitolul 12, functiilor din biblioteca C. Fiecare capitol confine, pe ling prezentarea nofiunilor teoretice, un numar de exemple de programe sau secvente de programe explicate si alese cu grija, care puncteaza caracteristicile importante ale limbajului C si care faciliteazi o intelegere mai rapida a materialului inclus. Pe langa aceste exemple, prezentarea fiecdrui capitol contine si o serie de exercitii (pe Kinga cele incluse la sfargit) cu intenfia ca ele s& fie rezolvate in timp ce materialul teoretic este parcurs. De asemenea, va recomandam ca atunci cand parcurge}i material! sa rulati atat exemplele de programe prezentate, cat si scurte programe, scrise de dumneavoastra, similare celor date in exemple. Fiecare capitol confine la final o listé de exercitii si probleme de programare care testeazi cunoasterea limbajului de c3tre student. Menfionam ca aceste probleme nu sunt ordonate dupa gradul lor de dificultate. Concepiele si experienja dobindite in acest curs formeaza 0 bazA important pentru urmatoarele cursuri de programare. in speranja c& organizarea si prezentarea materialului va fi pe placul dumneavoastra, va urm MULT SUCCES! Daniela Joija PROGRAMARE PROCEDURALA Cuprins Prefata Capitol! 1. Introducere in programar: 1.1 Algoritmi 1.2 Programe. 13 Limbaje de programare - scurtistoric 14 Editarea, compilarea si rularea unui program C.. Capitolul 2, Algoritmi. 2.1 Reprezentarea algoritmilor in limbaj natural 2.2 Reprezentarea algoritmilor in limbajul pseudocod.. 2.3. Algoritmi scrisi in formatul ,,de sus in jos” (top-down design) Exercitii si probleme propuse.. Capitolul 3. Elementele de bazi ale limbajului C. 3.1. Introducere in C. 3.2 Unexemplu simplu de program in C.... 3.3 Variabile 3.4 Operatori si expres. 3.5 Instrucfiunea de atribuire 3.6 Conversii de tp. 37 38 3.9 3.10 Tipuri de erori Exercitii si probleme "propuse.. Capitolul 4, Instrucfiuni de control al modului de rulare a programului.. 4.1 Instructiuni specifice structurilor alternative 4.1.1 Instructiunea if. 4.1.2 Instrcyiunea switch. 4.2. Instrucfiuni specifice structurilor repetitive. 4.2.1 Instructiunea repetitiva while 4.2.2 Instructiunea repetitiva do-whil 4.2.3 Instructiunea for 4.3 Instrucfiunile break i continue .. Exercitii si probleme propuse 3. 5.2. Functii definite de utilizator 1.1 Varianta2 1.2 Varianta 1 5.3 Variabile locale, globale.... 5.4 Organizarea programelor mari 5.5 Directive preprocessor