Documente Academic
Documente Profesional
Documente Cultură
..
. ..
. ..
. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. ..
. ..
. ..
. ..
. ..
Fundamentele programrii
. Scop
Introducere n gndirea computaional Dobndire cunotine algoritmic i limbaje de programare nelegerea codului surs (altor coduri, reutilizare, plagiarism OK - cu limite) nelegerea scopului i limitelor limbajelor de programare (codarea problemelor tiinice)
..
. ..
. ..
. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. ..
. ..
. ..
. ..
. ..
Fundamentele programrii
. Administrativ
Titular curs: ef lucr.(Lector) dr.ing. GENGE Bla Titular laborator: Asist.dr.ing. LEFKOVITS Szidnia Pagina Web: http://www.ibs.ro/~bela/ Adresa email: bela.genge@ing.upm.ro Examen: pe calculator (50% nota nal) Laborator: evaluri pe parcurs (50% nota nal) Condiie prezentare la examen: min. nota 5 lab. & max. 2 absene lab.
..
. ..
. ..
. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. ..
. ..
. ..
. ..
. ..
Fundamentele programrii
Asigurarea unui job la (nainte de) terminarea studiilor Profesia de dezvoltator software vine cu o serie de avantaje Trim n era informaional - programarea dezvolt gndirea Vizionare opinie profesioniti: http://code.org Exemplu de limbaj de programare (CodeHS): http://code.org/learn/codehs
..
. ..
. ..
. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. ..
. ..
. ..
. ..
. ..
Fundamentele programrii
. Rolul calculatoarelor
Calculatoarele ne ajut s mecanizm, i.e., automatizm, procesul de rezolvare a unei probleme Exemplu: algoritmul ce determin maximul dintre dou numere a i b . Algoritmul min-max .
Intrare: a i b; Ieire: text; Dac a > b atunci text "a > b"; Altfel text "a <= b"; SfDac .
..
. ..
. ..
. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. ..
. ..
. ..
. ..
. ..
Fundamentele programrii
. Implementarea calculatoarelor
Primele calculatoare: set de circuite ce rezolv o anumit clas de probleme Calculatoare dedicate: ceas, calculatorul de buzunar Exemplu: Maina lui Turing (Bombe) construit pentru descifrarea codurilor criptate prin Enigma
..
. ..
. ..
. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. ..
. ..
. ..
. ..
. ..
Fundamentele programrii
Sunt instruite cum anume s rezolve o problem Intrarea este extins cu un set de instruciuni Primele arhitecturi: Von Neumann (Neumann Jnos Lajos) - 1945
..
. ..
. ..
. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. ..
. ..
. ..
. ..
. ..
Fundamentele programrii
. De ce C/C++?
Exist mai mult de 100 limbaje de programare Adoptarea unui anumit limbaj depinde de scopul aplicaiei Un programator bun se descurc cu orice limbaj (n limitele limbajului) De ce ar trebui s studiem C/C++:
Multe limbaje au fost inuenate de C/C++ (Java, JavaScript, C#, Perl, Python, Ruby) Majoritatea S.O. sunt implementate n C/C++ Codul main rezultat este foarte ecient
..
. ..
. ..
. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. ..
. ..
. ..
. ..
. ..
Fundamentele programrii
Elemente de baz (cuvinte rezervate, identicatori, constante, ...) Tipuri de date (scalare, derivate, tablouri, structuri, uniuni, ...) Instruciuni (if, switch, continue, goto, break) Funcii Operaii pe bii Pointeri (alocare dinamic, pointeri la funcii) iruri de caractere Scheme logice
..
. ..
. ..
. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. ..
. ..
. ..
. ..
. ..
Fundamentele programrii
. Resurse
Brian W. Kernighan, Dennis M. Ritchie - The C programming language. 1978 Adrian Runceanu - Programarea i utilizarea calculatoarelor. 2003 Ion Cozac - Programare n limbajul C. 2004 Vasile Petrovici - Programarea n limbajul C. 1993 Delia Ungureanu, Adrian Ungureanu, Sorin Moraru - Programarea calculatoarelor; ndrumar C++. 2001
..
. ..
. ..
. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. ..
. ..
. ..
. ..
. ..
Fundamentele programrii
Lansare Visual Studio. Cel mai simplu program Limbaj interpretat i compilat Drumul de la cod surs la ier executabil Aare mesaj n C i n C++ Comentarii
..
. ..
. ..
. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. ..
. ..
. ..
. ..
. ..
Fundamentele programrii
. Tipuri de date
Limbajul C permite stocarea valorilor n constante i variabile Tipul unei variabile determin:
Modul de reprezentare n memorie Valorile pe care le poate lua Timpul de via Dimensiunea zonei de memorie folosite
..
. ..
. ..
. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. ..
. ..
. ..
. ..
. ..
Fundamentele programrii
Fundamentele programrii
. Constante
Constantele sunt valori nemodicabile pe parcursul execuiei Dac au asociate un identicator: constante simbolice Constante ntregi: 12, 17, 20 (pot precizate i n alte baze de numeraie) Constante caracter:
\0: Terminator de ir \a: Generator de sunet \b: Backspace \n: Linie nou \r: Carriage return \t: Tab orizontal
Constante reale: 125.3, 32e3, -0.9 Constante ir de caractere: sirul meu, folosire \ escape Constante predenite: CHAR_MAX, CHAR_MIN, INT_MAX, INT_MIN, ...
.. . .. . .. .
. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. ..
. ..
. ..
. ..
. ..
Fundamentele programrii
. Segmente de memorie
..
. ..
. ..
. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. ..
. ..
. ..
. ..
. ..
Fundamentele programrii
. Declaraiile de variabile
Variabilele sunt datele care i pot modica valoarea pe parcursul execuiei. Sintaxa de declarare: clasa_memorie tip lista_nume_variabile; clasa_memorie: auto, static, extern, register tip: tipuri de baz i utilizator lista_nume_variabile: list cu denumiri alfa-numerice
..
. ..
. ..
. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. ..
. ..
. ..
. ..
. ..
Fundamentele programrii
. Exemple de declaraii
Tipuri: int, char ASCII: American Standard Code for Information Exchange
..
. ..
. ..
. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. ..
. ..
. ..
. ..
. ..
Fundamentele programrii
Valorile stocate Timpul de via Ecien program Exemple de declarri variabile pentru:
ora, minut, secunda i milisecunda temperatura rpm hard-disk
..
. ..
. ..
. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. ..
. ..
. ..
. ..
. ..
Fundamentele programrii
. Problem
Cunoatem previziunea temperaturii pentru ziua urmtoare sub forma valorii minime i maxime. S se implementeze o aplicaie ce determin valoarea temperaturii medie i o aeaz ca un ntreg.
..
. ..
. ..
. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. ..
. ..
. ..
. ..
. ..
Fundamentele programrii