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)
Publicat de: Stelian Florescu
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Grigoras

Cuprins

  1. Cap 1 INTRODUCERE ÎN LIMBAJUL C 4
  2. 1.1 Scurt istoric 4
  3. 1.2 Forma unui program C 8
  4. 1.3 Compilarea unui program C 9
  5. Cap 2 Tipuri, operatori, expresii 11
  6. 2.1. Tipuri simple 11
  7. 2.2. Literali 12
  8. 2.3. Declararea unei variabile şi a unei constante 13
  9. 2.4. Operatori 14
  10. 2.4.1. Operatori aritmetici 15
  11. 2.4.2. Operatorii relaţionali (de comparaţie) 15
  12. 2.4.3. Operatori logici 16
  13. 2.4.4. Operatori la nivel de bit 16
  14. 2.4.5. Operatorul de asignare 17
  15. 2.4.6. Operatorul condiţional 17
  16. 2.4.7. Operatorul virgulă 18
  17. 2.4.8. Precedenţa operatorilor 18
  18. Cap 3 FUNCTII 20
  19. 3.1. Definirea unei funcţii 20
  20. 3.2. Returnarea unui apel 21
  21. 3.3. Funcţii cu un număr variabil de parametri 21
  22. 3.4. Sfârşitul execuţiei unui program 21
  23. 3.5. Apelul şi transmiterea parametrilor 22
  24. 3.6. Funcţia principală main 23
  25. Cap 4 FUNCŢII DE INTRARE IEŞIRE 25
  26. 4.1.Fluxuri şi fişiere 25
  27. Semnificaţia 27
  28. 4.2. Funcţii de intrare/ieşire pentru caractere 28
  29. 4.3. Scrierea cu format 29
  30. 4.5. Citirea cu format 33
  31. Cap 5 INSTRUCŢIUNI DE CONTROL 36
  32. 5.1. Instrucţiunea if 37
  33. 5.3. Instrucţiunea while 39
  34. 5.4. Instruc]iunea do ... while 40
  35. 5.5. Instrucţiunea for 40
  36. 5.6. Instrucţiunea break 42
  37. 5.7. Instrucţiunea continue 43
  38. 5.8. Instrucţiunea go to 43
  39. 5.9. Exerciţii 44
  40. 1. Calculul factorialului. 44
  41. 2. Conversie 44
  42. 3. Numărarea biţilor 1 într-un număr 44
  43. 4. Prezentare de date 44
  44. 5.10. Soluţii la exerciţii 44
  45. 1. Calculul factorialului 44
  46. 2. Conversie 45
  47. 3. Numărarea biţilor 1 într-un număr 46
  48. 4. Prezentare de date 46
  49. Cap 6 TABLOURI ŞI POINTERI 48
  50. 6.1. Pointeri 48
  51. 6.2. Tablouri cu o dimensiune 49
  52. 6.2.1. Referenţierea unui element al tabloului 49
  53. 6.2.2. Iniţializarea unui tablou 49
  54. 6.3. Relaţia între pointeri şi tablouri 51
  55. 6.4. Operaţii aritmetice cu pointeri 51
  56. 6.5. Şiruri de caractere 52
  57. 6.6. Tablouri cu mai multe dimensiuni 52
  58. 6.7. Tablouri de pointeri 54
  59. 6.8. Pointeri şi alocarea memoriei 55
  60. 6.9. Operatorul “sizeof” 55
  61. 6.10. Pointeri către funcţii 56
  62. 6.11. Exerciţii 57
  63. 6.12. Soluţii 58
  64. Cap 7 CONSTRUIREA DE NOI TIPURI 60
  65. 7.1. Redenumirea unui tip 60
  66. 7.2. Tipul structură 61
  67. 7.3. Accesul şi iniţializarea câmpurilor unei structuri 62
  68. 7.4. Structuri autoreferenţiate 62
  69. 7.5. Tipul enumerare 64
  70. 7.6. Uniuni 64
  71. 7.7. Exerciţii 66
  72. 7.8. Soluţii 66
  73. Cap 8 GESTIUNEA MEMORIEI 71
  74. 8.1. Precizarea unui mecanism de memorare 71
  75. 8.2. Gestiunea automată a memoriei 72
  76. 8.3. Gestionarea “register” a memoriei 72
  77. 8.4. Gestionarea statică a memoriei 73
  78. 8.5. Variabile globale 73
  79. 8.6. Declararea variabilelor externe 73
  80. 8.7. Gestiunea dinamică a memoriei 74
  81. 8.8. Exerciţii 74
  82. 8.9. Soluţii 75
  83. Cap 9 CONVERSIA DE TIP 78
  84. 9.1. Mecanisme de conversie 78
  85. 9.1.1 Conversia la asignare 79
  86. 9.1.2 Evaluarea expresiilor aritmetice 79
  87. 9.1.3. Evaluarea expresiilor logice 80
  88. 9.1.4 Conversii explicite 80
  89. 9.1.5 Conversie de pointeri. Pointerul universal 81
  90. Cap 10 PREPROCESORUL 82
  91. 10.1 Directive preprocesor 82
  92. 10.1.1 Constante simbolice. Directiva #define 83
  93. 10.1.2 Includerea fişierelor 83
  94. 10.1.3 Compilare condiţionată 84
  95. 10.1.4 Directiva #error 84
  96. 10.2 Macroinstruţiuni 85
  97. 10.2.1 Macroinstrucţiuni predefinite 85
  98. 10.2.2 Macroinstrucţiuni tip funcţie 85
  99. Cap 11 EXERCIŢII 87
  100. BIBLIOGRAFIE 89
  101. ANEXA 90
  102. Biblioteca standard C 90
  103. Codul ASCII 93

Extras din curs

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

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...

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...

Proiectarea Web - Dezvoltarea Sistematica a Aplicațiilor Web

- orientarea actuală în domeniul dezvoltării aplicaţiilor web - abordare ad-hoc şi o lipsă a metodelor de dezvoltare > calitate - construirea unui...

Clase și Programare C++ Builder

1. Un tur rapid al C++Builder Pentru moment, nu vom acorda decât o privire rapidă mediului de dezvoltare C++Builder, urmând ca în lecţia a şasea...

Limbajul C

În continuare vom defini un calculator, ca fiind un sistem electronic de foarte mare complexitate, capabil de prelucrarea automata a datelor de...

Structuri de Date și Alogoritmi

EXTENSII ALE LIMBAJULUI C++ A. Operaţii de intrare-ieşire specifice limbajului C++ I. Noţiuni teoretice Limbajul C++ furnizează o bibliotecă...

Te-ar putea interesa și

Comanda unei Stații Automate de Spălat Autovehicule cu Automatul Programabil LG Glofa GM7

I. PARTEA TEORETICA 1. Automate programabile 1.1 Introducere Sistemele automate de control a proceselor sunt un conglomerat de dispozitive...

Validarea datelor de intrare și manipularea erorilor în programarea web

INTRODUCERE Într-o epocă modernă ca aceasta în care se poate rezolva totul cu ajutorul internetului printr-un simplu ”click” - o singură apăsare a...

Baze de date relaționale - proiectare și implementare

INTRODUCERE Tema proiectului Proiectul tratează aspecte teoretice ale proiectării bazelor de date relaţionale şi transpune aceste aspecte în...

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...

Analiza descriptivă și comparată a domeniilor de programare ORIE

INTRODUCERE În era digitală în care trăim, dezvoltarea software-ului reprezintă un aspect esențial al progresului tehnologic. Două paradigme...

Compilatoare

Grace Murray Hooper a fost o figură importantă în domeniul informaticii. Aceasta a fost un ofiţer în marina militară a Statelor Unite ale Americii...

Programarea Calculatoarelor și Limbaje de Programare

MODULUL 1. ALGORITMI 1.1. GENERALITATI Termenul de produs program desemneazã atât programul sursã propiu-zis cât ºi documentaþia necesarã pentru...

Ai nevoie de altceva?