0% au considerat acest document util (0 voturi)
426 vizualizări21 pagini

Programare - C

Acest curs prezintă structura și conținutul modulului de Programarea calculatoarelor I. Include informații despre organizarea cursului, structura acestuia, bibliografie și concepte de bază ale programării.

Încărcat de

Cheregi Marius
Drepturi de autor
© Attribution Non-Commercial (BY-NC)
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
426 vizualizări21 pagini

Programare - C

Acest curs prezintă structura și conținutul modulului de Programarea calculatoarelor I. Include informații despre organizarea cursului, structura acestuia, bibliografie și concepte de bază ale programării.

Încărcat de

Cheregi Marius
Drepturi de autor
© Attribution Non-Commercial (BY-NC)
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
Sunteți pe pagina 1/ 21

Programarea calculatoarelor I Profesor dr. ing.

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

Prezena la curs i laborator este obligatorie !!!


2

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

Componentele unui sistem de calcul (Computer)

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

Evoluia limbajelor de programare

First-generation

binary machine code switches

Second-generation (1940s 1950s)

assembler one-to-one
high-level languages like C, Pascal C++, Java one-to-5 10 4GLs one-to-30 50 (Focus, Natural)
8

Third-generation (1960s 1970s)

Fourth-generation (late 1970s)

Limbaje de nivel nalt: scurt istoric


conceptul de compilator : descris prima data de Grace Hopper (1952) 1954-1957: limbajul si compilatorul FORTRAN (John Backus, IBM) 1958: LISP (LISt Processing, John McCarthy, la MIT) (Lots of Idiotic, Silly Parantheses :)) 1959: COBOL (Common Business Oriented Language) dezvoltat de CODASYL: Committee on Data Systems Languages 1960: ALGOL 60: limbaj structurat, sta la baza multor limbaje 1964: BASIC (John Kemeny, Tom Kurtz; la Dartmouth) 1967: SIMULA (Ole-Johan Dahl, Kristen Nygaard): primul limbaj orientat pe obiecte ! 1968: Edsger W. Dijkstra: \GO TO Considered Harmful" - principiile programarii structurate 1971: PASCAL (Niklaus Wirth); ulterior MODULA-2

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

Tendinta principal: programarea obiectual

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++ si cum se programeaza in C++

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

Elementele unui mediu de dezvoltare C


Fazele unui program C++
Editor Preprocesor Compilator Linker Disk Disk Disk Disk
Primary Memory

1. 2. 3. 4.

Editare Preprocesare Compilare Editarea de legaturi 5. Incarcare 6. Executie

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:

schemele logice sau organigramele limbajele pseudocod.

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

Caracteristici ale limbajului C


limbaj de nivel mediu ofera tipuri, operatii, instructiuni simple fara facilitatile complexe ale limbajelor de nivel (foarte) nalt limbaj de programare structurat permite programarea la nivel scazut, apropiat de hardware

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.

function_name ( ) { secvena instruciunilor }

Limbajul C recunoate deosebirile dintre litere mari i litere mici.


20

Componentele unui program C


Funcia main ( ) este funcia cu care ncepe execuia programului. O component comun celor mai multe programe C sunt fiierele header. Aceste fiiere header pot fi adugate programului folosind directiva preprocesor # include. Un exemplu de program C: # include <stdio.h> main ( ) { printf ("Acesta este un scurt program C "); } unde: printf( ) este funcie de bibliotec care afieaz pe ecran caracterele care sunt cuprinse ntre ghilimele.

21

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