Programare II - Limbajul C

Curs
8/10 (6 voturi)
Conține 1 fișier: doc
Pagini : 94 în total
Cuvinte : 24612
Mărime: 161.04KB (arhivat)
Cost: Gratis
Profesor îndrumător / Prezentat Profesorului: Grigoras

Cuprins

Cap 1 INTRODUCERE ÎN LIMBAJUL C 4

1.1 Scurt istoric 4

1.2 Forma unui program C 8

1.3 Compilarea unui program C 9

Cap 2 Tipuri, operatori, expresii 11

2.1. Tipuri simple 11

2.2. Literali 12

2.3. Declararea unei variabile şi a unei constante 13

2.4. Operatori 14

2.4.1. Operatori aritmetici 15

2.4.2. Operatorii relaţionali (de comparaţie) 15

2.4.3. Operatori logici 16

2.4.4. Operatori la nivel de bit 16

2.4.5. Operatorul de asignare 17

2.4.6. Operatorul condiţional 17

2.4.7. Operatorul virgulă 18

2.4.8. Precedenţa operatorilor 18

Cap 3 FUNCTII 20

3.1. Definirea unei funcţii 20

3.2. Returnarea unui apel 21

3.3. Funcţii cu un număr variabil de parametri 21

3.4. Sfârşitul execuţiei unui program 21

3.5. Apelul şi transmiterea parametrilor 22

3.6. Funcţia principală main 23

Cap 4 FUNCŢII DE INTRARE IEŞIRE 25

4.1.Fluxuri şi fişiere 25

Semnificaţia 27

4.2. Funcţii de intrare/ieşire pentru caractere 28

4.3. Scrierea cu format 29

4.5. Citirea cu format 33

Cap 5 INSTRUCŢIUNI DE CONTROL 36

5.1. Instrucţiunea if 37

5.3. Instrucţiunea while 39

5.4. Instruc]iunea do ... while 40

5.5. Instrucţiunea for 40

5.6. Instrucţiunea break 42

5.7. Instrucţiunea continue 43

5.8. Instrucţiunea go to 43

5.9. Exerciţii 44

1. Calculul factorialului. 44

2. Conversie 44

3. Numărarea biţilor 1 într-un număr 44

4. Prezentare de date 44

5.10. Soluţii la exerciţii 44

1. Calculul factorialului 44

2. Conversie 45

3. Numărarea biţilor 1 într-un număr 46

4. Prezentare de date 46

Cap 6 TABLOURI ŞI POINTERI 48

6.1. Pointeri 48

6.2. Tablouri cu o dimensiune 49

6.2.1. Referenţierea unui element al tabloului 49

6.2.2. Iniţializarea unui tablou 49

6.3. Relaţia între pointeri şi tablouri 51

6.4. Operaţii aritmetice cu pointeri 51

6.5. Şiruri de caractere 52

6.6. Tablouri cu mai multe dimensiuni 52

6.7. Tablouri de pointeri 54

6.8. Pointeri şi alocarea memoriei 55

6.9. Operatorul “sizeof” 55

6.10. Pointeri către funcţii 56

6.11. Exerciţii 57

6.12. Soluţii 58

Cap 7 CONSTRUIREA DE NOI TIPURI 60

7.1. Redenumirea unui tip 60

7.2. Tipul structură 61

7.3. Accesul şi iniţializarea câmpurilor unei structuri 62

7.4. Structuri autoreferenţiate 62

7.5. Tipul enumerare 64

7.6. Uniuni 64

7.7. Exerciţii 66

7.8. Soluţii 66

Cap 8 GESTIUNEA MEMORIEI 71

8.1. Precizarea unui mecanism de memorare 71

8.2. Gestiunea automată a memoriei 72

8.3. Gestionarea “register” a memoriei 72

8.4. Gestionarea statică a memoriei 73

8.5. Variabile globale 73

8.6. Declararea variabilelor externe 73

8.7. Gestiunea dinamică a memoriei 74

8.8. Exerciţii 74

8.9. Soluţii 75

Cap 9 CONVERSIA DE TIP 78

9.1. Mecanisme de conversie 78

9.1.1 Conversia la asignare 79

9.1.2 Evaluarea expresiilor aritmetice 79

9.1.3. Evaluarea expresiilor logice 80

9.1.4 Conversii explicite 80

9.1.5 Conversie de pointeri. Pointerul universal 81

Cap 10 PREPROCESORUL 82

10.1 Directive preprocesor 82

10.1.1 Constante simbolice. Directiva #define 83

10.1.2 Includerea fişierelor 83

10.1.3 Compilare condiţionată 84

10.1.4 Directiva #error 84

10.2 Macroinstruţiuni 85

10.2.1 Macroinstrucţiuni predefinite 85

10.2.2 Macroinstrucţiuni tip funcţie 85

Cap 11 EXERCIŢII 87

BIBLIOGRAFIE 89

ANEXA 90

Biblioteca standard C 90

Codul ASCII 93

Extras din document

Cap 1 INTRODUCERE ÎN LIMBAJUL C

1.1 Scurt istoric

1.2 Forma unui program C

1.3 Compilarea unui program C

1.1 Scurt istoric

Strămoşii limbajului C sunt limbajele de programare CPL, BCPL, B şi Algol 68. CPL a fost dezvoltat la Universităţile Cambridge şi London în anii 1960-1963. BCPL a fost proiectat de Martin Richards în 1967 şi face parte din categoria “low-level languages”, sau “systems programming languages”. În anii ’60, la Bell Laboratories în USA, Ken Thomson a început proiectarea sistemului de operare Unix. Primul limbaj de nivel înalt implementat sub acest sistem de operare a fost limbajul B, un limbaj bazat pe BCPL care a fost proiectat de asemenea de către Ken Thompson în 1970. Asemănarea cu BCPL a fost mai degrabă semantică; sintaxa este total diferită. Proiectarea limbajului B a fost influienţată de limitele maşinii pe care a fost implementat: un PDP-7 cu capacitatea 4K ( cuvinte de 18 biţi).

Limbajele BCPL şi B sunt limbaje de nivel scăzut faţă de limbajul Pascal şi nici unul din ele nu este tipizat: toate datele sunt considerate cuvinte maşină încât, exemple simple de programe duc la complicaţii nebănuite. În una din implementările BCPL-ului, operanzii flotanţi din expresii trebuiau precedaţi de punct; restul operanzilor erau consideraţi întregi.

Problemele create în jurul limbajelor BCPL şi B au dus la dezvoltarea unui nou limbaj, bazat pe B, care la început s-a numit NB dar numele său a fost stabilit C. Numele “C”, considerat la început a proveni de la Cambridge, este oficial din “Combined” dar neoficial se consideră a fi iniţiala pronumelui lui Cristopher Strachey, cel care a condus echipa ce a proiectat CPL-ul. Limbajul a fost proiectat şi implementat de către Dennis Ritchie la Bell Laboratories în 1972. În mare parte ( construcţiile for şi switch, tratarea pointerilor etc.) limbajul a fost influienţat şi de Algol 68. Genealogia limbajului C este prezentată în Figura 1.1.

Ritchie a lucrat pe un calculator DEC PDP-11 sub sistemul de operare Unix. Din acest motiv varianta clasică a limbajului C a fost asociată sistemului de operare Unix - versiunea 5 şi multă vreme a constituit un standard (neoficial de altfel) al limbajului şKeR 78ţ.

Odată cu creştere popularităţii calculatoarelor personale, au apărut numeroase alte implementări ale limbajului C şi astfel a crescut şi popularitatea acestuia. Un fapt cu totul inedit a fost acela că, mare parte din implementările C -ului s-au dovedit de un mare grad de compatibilitate: un program scris pentru una din variante putea fi compilat cu succes folosind o altă variantă. Se înţelege că au existat şi neconcordanţe în multitudinea de “dialecte” ale limbajului. Pentru eliminarea acestora în 1983 a fost creată o comisie care să stabilească un standard al acestui limbaj. Standardul ANSI ( American National Standard Institute) a fost redactat abia în decembrie 1989 şi a fost pus la dispoziţia celor interesaţi la începutul lui 1990. Firma Borland a folosit acest standard în faza de proiect şi a realizat implementările Turbo C care se bucură de un succes remarcabil. De altfel, în prezent , toate compilatoarele C sunt compatibile cu standardul ANSI C; unele din acestea au adăugate o serie de facilităţi sau extensii proprii care nu împiedică compilarea unui program standard.

•FORTRAN I (1957)

•FORTRAN II (1958)

•ALGOL 60 (1960)

•CPL (1963)

•ALGOL 68 (1968)

•BCPL (1967)

•B (1970)

•C (1972)

•C++ (1984)

Figura 1.1.

Limbajul C este privit ca un limbaj de nivel mediu întrucât combină cele mai reuşite elemente ale limbajelor de nivel înalt ( Pas-cal, Fortran, Algol, Modula, Ada) cu gradul de control şi flexibilitatea oferite de către limbajul de asamblare. C permite manevrarea biţilor, a octeţilor şi a adreselor de memorie, adică a elementelor de bază în funcţionarea unui calculator. În ciuda acestui fapt , programele scrise în C au un grad mare de portabilitate: uşurinţa de a adapta programele scrise pentru o anumită categorie de calculatoare sau sisteme de operare la alte calculatoare sau sisteme de operare.

Limbajul C are structuri de control adecvate precum şi facilităţi de structurare a datelor care îl fac să fie folosit într-o diversitate de domenii. Are de asemenea o mulţime bogată de operatori care-i dau un înalt grad de expresivitate. Unul din motivele pentru care limbajul C este în acelaşi timp agreat de mare parte din programatori şi dezagreat de altă mare parte din programatori, este lipsa totală a verificării tipului (type checking). De exemplu, o variabilă de un tip scalar oarecare poate apare în aceeaşi expresie cu o variabilă de un alt tip scalar. Cei care agrează limbajul C îi apreciază flexibilitatea sa, cei care nu-l agrează îl consideră un limbaj lipsit de siguranţă.

Ceea ce este sigur, este că datorită faptului că face parte din sistemul de operare Unix, limbajul a căpătat o mare popularitate în lumea academică şi nu numai. Compilatoarele oferite împreună cu sistemul Unix sunt relativ ieftine (uneori chiar gratuite) şi pot fi folosite pe o diversitate de maşini.

O nouă versiune a limbajului C, numită C++, a apărut în 1984. Originea acestui limbaj şSTR 94ţ trebuie căutată în proiectul care a început în Aprilie 1979 la “Computing Research Center of Bell Laboratories” în Murray Hill, New Jersey, USA, proiect ce trebuia să realizeze distribuirea nucleului UNIX într-o reţea de computere conectate LAN. Pentru realizarea acestui proiect, Bjarne Stroustrup a realizat în Octombrie 1979 un preprocesor, numit Cpre, care a adăugat la limbajul C conceptul de clasă folosit pentru prima dată de limbajul Simula ( dezvoltat în anii 1962-1967 de norvegienii Kristen Nyagaard şi Ole-Johan Dahl). În martie 1980 preprocesorul îmbunătăţit era implementat pe 16 sisteme iar limbajul acceptat de acesta a fost numit “C cu Clase”. Motivele pentru care a fost ales limbajul C (în faţa altor limbaje ale vremii: Modula-2, Ada, Smalltalk, Mesa, Clu) pentru acest proiect sunt expuse chiar de creatorul noului limbaj:

Preview document

Programare II - Limbajul C - Pagina 1
Programare II - Limbajul C - Pagina 2
Programare II - Limbajul C - Pagina 3
Programare II - Limbajul C - Pagina 4
Programare II - Limbajul C - Pagina 5
Programare II - Limbajul C - Pagina 6
Programare II - Limbajul C - Pagina 7
Programare II - Limbajul C - Pagina 8
Programare II - Limbajul C - Pagina 9
Programare II - Limbajul C - Pagina 10
Programare II - Limbajul C - Pagina 11
Programare II - Limbajul C - Pagina 12
Programare II - Limbajul C - Pagina 13
Programare II - Limbajul C - Pagina 14
Programare II - Limbajul C - Pagina 15
Programare II - Limbajul C - Pagina 16
Programare II - Limbajul C - Pagina 17
Programare II - Limbajul C - Pagina 18
Programare II - Limbajul C - Pagina 19
Programare II - Limbajul C - Pagina 20
Programare II - Limbajul C - Pagina 21
Programare II - Limbajul C - Pagina 22
Programare II - Limbajul C - Pagina 23
Programare II - Limbajul C - Pagina 24
Programare II - Limbajul C - Pagina 25
Programare II - Limbajul C - Pagina 26
Programare II - Limbajul C - Pagina 27
Programare II - Limbajul C - Pagina 28
Programare II - Limbajul C - Pagina 29
Programare II - Limbajul C - Pagina 30
Programare II - Limbajul C - Pagina 31
Programare II - Limbajul C - Pagina 32
Programare II - Limbajul C - Pagina 33
Programare II - Limbajul C - Pagina 34
Programare II - Limbajul C - Pagina 35
Programare II - Limbajul C - Pagina 36
Programare II - Limbajul C - Pagina 37
Programare II - Limbajul C - Pagina 38
Programare II - Limbajul C - Pagina 39
Programare II - Limbajul C - Pagina 40
Programare II - Limbajul C - Pagina 41
Programare II - Limbajul C - Pagina 42
Programare II - Limbajul C - Pagina 43
Programare II - Limbajul C - Pagina 44
Programare II - Limbajul C - Pagina 45
Programare II - Limbajul C - Pagina 46
Programare II - Limbajul C - Pagina 47
Programare II - Limbajul C - Pagina 48
Programare II - Limbajul C - Pagina 49
Programare II - Limbajul C - Pagina 50
Programare II - Limbajul C - Pagina 51
Programare II - Limbajul C - Pagina 52
Programare II - Limbajul C - Pagina 53
Programare II - Limbajul C - Pagina 54
Programare II - Limbajul C - Pagina 55
Programare II - Limbajul C - Pagina 56
Programare II - Limbajul C - Pagina 57
Programare II - Limbajul C - Pagina 58
Programare II - Limbajul C - Pagina 59
Programare II - Limbajul C - Pagina 60
Programare II - Limbajul C - Pagina 61
Programare II - Limbajul C - Pagina 62
Programare II - Limbajul C - Pagina 63
Programare II - Limbajul C - Pagina 64
Programare II - Limbajul C - Pagina 65
Programare II - Limbajul C - Pagina 66
Programare II - Limbajul C - Pagina 67
Programare II - Limbajul C - Pagina 68
Programare II - Limbajul C - Pagina 69
Programare II - Limbajul C - Pagina 70
Programare II - Limbajul C - Pagina 71
Programare II - Limbajul C - Pagina 72
Programare II - Limbajul C - Pagina 73
Programare II - Limbajul C - Pagina 74
Programare II - Limbajul C - Pagina 75
Programare II - Limbajul C - Pagina 76
Programare II - Limbajul C - Pagina 77
Programare II - Limbajul C - Pagina 78
Programare II - Limbajul C - Pagina 79
Programare II - Limbajul C - Pagina 80
Programare II - Limbajul C - Pagina 81
Programare II - Limbajul C - Pagina 82
Programare II - Limbajul C - Pagina 83
Programare II - Limbajul C - Pagina 84
Programare II - Limbajul C - Pagina 85
Programare II - Limbajul C - Pagina 86
Programare II - Limbajul C - Pagina 87
Programare II - Limbajul C - Pagina 88
Programare II - Limbajul C - Pagina 89
Programare II - Limbajul C - Pagina 90
Programare II - Limbajul C - Pagina 91
Programare II - Limbajul C - Pagina 92
Programare II - Limbajul C - Pagina 93
Programare II - Limbajul C - Pagina 94
Programare II - Limbajul C - Pagina 95

Conținut arhivă zip

  • Programare II - Limbajul C.doc

Alții au mai descărcat și

Elaborare unui Web-site si a unui Program de Administrare, Utilizand Php, Delphi, Mysql

INTRODUCERE Tehnologiile şi aplicaţiile de pe Internet se extind extraordinar de rapid, capătând o atenţie deosebită, deoarece Internetul...

Programare HTML

1.1 Istoric al Limbajului HTML Unul din primele elemente fundamentale ale WWW ( World Wide Web) este HTML ( Hypertext Markup Language ), care...

Evidența Elevilor din Ciclul Inferior

Argumentare Într-o unitate şcolară este foarte importantă existenţa unei baze de date, nu numai a profesorilor, ci şi a elevilor. O bază de date...

Limbaje de Programare

Cap.I ARGUMENT Lucrarea de fata “Limbaje de programare” isi propune sa pregateasca cititorul in scopul insusirii si utilizarii unui limbaj de...

Medii de Programare

MODULUL 1. INTRODUCERE IN STUDIUL LIMBAJELOR DE PROGRAMARE 1.1 Notiuni generale privind limbajele de programare 1.2 Clasificarea limbajelor de...

Siruri de Caractere in C++

Generalităţi Vectorii de caractere pot fi iniţializaţi la declarare, caracterul nul fiind memorat automat. char vect[11]=“calculator” char...

Prolog Limbaj de Programare Logica

In domeniul programarii calculatoarelor este cunoscuta urmatoarea clasificare a limbajelor de programare: limbaje algoritmice (PASCAL, FORTRAN,...

Manual Limbaj C

1. Generalitati asupra limbajului C 1.1. Introducere Limbajul C a fost creat la începutul anilor '70 de catre Brian W Kernigham si Dennis M...

Ai nevoie de altceva?