Programare - C
Programare - C
Cornelia Gyrdi
Organizarea cursului
Acest modul de curs are 2 ore de curs si dou ore de lucrri practice pe sptmn Nota obinut la examen este divizat :
65% - exemenul final 15% - lurrile practice de la laborator 20% - testul final de laborator
Structura cursului
Introducere Introducere n programarea n limbajul C Programarea structurat n limbajul C Structuri de control n limbajul C Variabile, operatori i expresii Funcii Tablouri Pointeri iruri de caractere Structuri i uniuni, cmpuri pe bii
3
Structura cursului
Recursivitatea Funcii de intrare/ieire (I/O) pentru fiiere Funcii folosite n lucru cu fiierele
Bibliografie
C: How to Program 3rd Edition H.M. Deitel, P.J. Deitel 2001 Prentice-Hall ISBN 0130895725 The Joy of C 3rd Edition L.H. Miller, A.E. Quilici 1997 Wiley ISBN 047112933x Data Structures, Algorithms & Software Principles in C Thomas A. Standish 1995 Addison-Wesley ISBN 0201591189 Programarea n limbajul C, I. Mang, Cornelia Gyorodi, Robert Gyorodi, Editura Universitii, 1995 D. Costea - Iniiere n limbajul C - Editura Teora - 1995 V. Cristea, C. Giumale .a. - Limbajul C standard - Editura Teora 1992
Ce este un Computer?
Computer -Calculator Un dispozitiv capabil s execute operaii i s ia decizii logice Calculatorul proceseaz datele cu ajutorul unor seturi de instruciuni numite programe Hardware Varietate de dispozitive care compun un calculator Tastatur, ecran, mouse, disc, memorie, CD_ROM, unitate de procesare ( unitatea central) Software Programele care se execut pe un calculator
6
Un sistem de calcul este compus din 6 uniti: 1. Unitatea de intrare Obine informaii de la dispozitivele de intrare (keyboard, mouse) 2. Unitatea de ieire (Output unit) Transmite informaia spre vizualizare (ecranul, imprimanta alte uniti de control) 3. Unitatea de memorie Acces rapid, capacitate mic, stocheaz informaia de intrare, programele active 4. Unitatea aritmetic i logic (Arithmetic and logic unit -ALU) Execut operaiile aritmetice i logice 5. Unitatea central (Central processing unit -CPU) Supervizez i coordoneaz alte seciuni ale calculatorului 6. Unitatea de memorie secundar (Secondary storage unit) capacitate mare, mai ieftin Stochaz programele inactive Stores inactive programs 7
First-generation
assembler one-to-one
high-level languages like C, Pascal C++, Java one-to-5 10 4GLs one-to-30 50 (Focus, Natural)
8
Istoricul limbajului C
dezvoltat si implementat n 1972 la AT&T Bell Laboratories de Dennis Ritchie http://cm.bell-labs.com/cm/cs/who/dmr/chist.html contextul: evolutia conceptului de programare structurata (C inspirat de ALGOL 68, via BCPL si B) necesitatea unui limbaj pentru programe de sistem legatura strnsa cu sistemul de operare UNIX dezvoltat la Bell Labs) C dezvoltat initial sub UNIX; n 1973, UNIX rescris n totalitate n C cartea de referinta: Brian Kernighan, Dennis Ritchie: The C Programming Language (1978) n 1988 (vezi K&R editia II) limbajul a fost standardizat de ANSI (American National Standards Institute) dezvoltari ulterioare: C99 (standard ISO 9899)
10
Libraria standard C
Programele C sunt impartite in module numite functii Un programator isi poate crea propriile functii Avantaj: programatorul stie exact cum functioneaza Dezavantaj: consumator de timp Programatorii vor folosi adeseori functiile de biblioteca C: Evitarea reinventarii rotii Daca o functie exista deja, e mai bine sa fie folosita decat sa se scrie alta Functiile de biblioteca sunt scrise cu atentie, sunt eficiente si portabile
11
Obiective Componente software reutilizabile care modeleaza obiecte din viata reala Unitati software Obiecte de tip data, obiecte timp, obiecte plata, obiecte pt facturare, obiecte audio, obiecte video, obiecte fisier, obiecte de tip inregistrare, etc. Orice substantiv poate fi reprezentat ca si un obiect Reutilizare foarte buna Mai usor de inteles, organizat mai bine, si mai usor de intretinut decat programarea procedurala
12
C++ Superset al lui C dezvoltat de Bjarne Stroustrup la Bell Labs Are abilitati orientate pe obiect Modelarea orientata pe obiecte foarte bine dezvoltata Productivitate de la 10 pana la 100 ori mai mare Limbajul dominant in industrie si in mediile academice Invatarea lui C++ Deoarece C++ include C, unii cred ca e mai bine sa stapanesti C si apoi sa inveti C++ Incepand cu semestrul 2 din anul I se va incepe introducerea in C++
13
1. 2. 3. 4.
Programul preprocesor proceseaza codul Compilatorul creaza codul obiect si il stocheaza pe disc. Editarea de legaturi leaga codul obiect de librarii
Incarcator
Disk
.. .. ..
Primary Memory
CPU
.. .. ..
Programul de incarcare pune programul in memorie CPU executa fiecare instructiune, stocand eventual noi date pe masura executiei programului
14
Reprezentarea algoritmilor
Pentru reprezentarea algoritmilor se folosesc diferite forme de reprezentare caracteristice Formele convenionale cele mai folosite n reprezentarea algoritmilor sunt:
Principala calitate a acestora este posibilitatea de a evidenia cu claritate fluxul controlului algoritmilor, adic succesiunile posibile ale aciunilor. Astfel, schemele logice utilizeaz pentru aceasta sgei de legtur ntre diversele forme geometrice care simbolizeaz diversele tipuri de aciuni, n timp ce limbajele pseudocod folosesc cuvinte cheie, adic nite cuvinte cu neles prestabilit ce identific operaia care se execut, i cteva reguli simple de aliniere a textului scris.
15
Reprezentarea algoritmilor
Blocul delimitator are forma unei elipse alungite. El se folosete pentru a marca nceputul sau sfritul schemei logice.
Blocul de intrare / ieire are forma unui paralelogram. Acest bloc se folosete la introducerea datelor n calcule i afiarea rezultatelor.
Blocul de calcul se folosete pentru a preciza calculele care se fac. n blocurile de acest tip apar comenzi de forma: v=e unde v este o variabil, iar e este o expresie de tip compatibil cu v
16
Reprezentarea algoritmilor
Blocul de decizie are forma unui romb. n interiorul su se scrie o condiie care determin ramificarea calculelor.
Semnul = care apare n blocul de decizie are sens de comparaie. El nu se va confunda cu semnul = din blocurile de calcul. Pentru scrierea condiiilor se mai folosesc i celelalte semne de comparaie din matematic: <, , >, i .
17
Exemplu
Schema logic de rezolvare a ecuaiei ax+b=0 cu a i b numere reale. Evident, dac a=0 i b=0, atunci ecuaia este satisfcut de orice x. Prin urmare, n acest caz ecuaia are o infinitate de soluii. Dac a = 0 i b 0, atunci apare o incompatibilitate. n fine, dac a 0, atunci ecuaia are o singur soluie: x = -b/a, pentru orice b. Schema logic de rezolvare a problemei este:
18
acces la reprezentarea binara a datelor mare libertate n lucrul cu memoria foarte folosit n programarea de sistem, interfata cu hardware
produce un cod eficient (compact n dimensiune, rapid la rulare) apropiat de eficienta limbajului de asamblare datorita caracteristicilor limbajului, si maturitatii compilatoarelor slab tipizat (spre deosebire de PASCAL)
19
Principiile limbajului C
Programele C conin una sau mai multe funcii Toate instruciunile se termin cu ;. C nu recunoate sfritul liniei ca terminator.
21