Upload
others
View
14
Download
0
Embed Size (px)
Citation preview
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.
......
Fundamentele programăriiCurs 1
Șef lucr.dr.ing. GENGE Béla
Universitatea “Petru Maior”, Departamentul de InformaticăTîrgu Mureș, România
{bela.genge}@ing.upm.ro
Șef lucr.dr.ing. GENGE Béla Fundamentele programării
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.. Scop
Introducere în gândirea computaționalăDobândire cunoștințe algoritmică și limbaje de programareÎnțelegerea codului sursă (altor coduri, reutilizare, plagiarism OK - culimite)Înțelegerea scopului și limitelor limbajelor de programare (codareaproblemelor științifice)
Șef lucr.dr.ing. GENGE Béla Fundamentele programării
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.. Administrativ
Titular curs: Șef lucr.(Lector) dr.ing. GENGE BélaTitular laborator: Asist.dr.ing. LEFKOVITS SzidóniaPagina Web: http://www.ibs.ro/~bela/Adresa email: [email protected]
Examen: pe calculator (50% nota finală)Laborator: evaluări pe parcurs (50% nota finală)Condiție prezentare la examen: min. nota 5 lab. & max. 2 absențelab.
Șef lucr.dr.ing. GENGE Béla Fundamentele programării
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.. De ce ar trebui să studiem programare?
Asigurarea unui job la (înainte de) terminarea studiilorProfesia de dezvoltator software vine cu o serie de avantajeTrăim în era informațională - programarea dezvoltă gândirea
Vizionare opinie profesioniști: http://code.orgExemplu de limbaj de programare (CodeHS):http://code.org/learn/codehs
Șef lucr.dr.ing. GENGE Béla Fundamentele programării
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.. Rolul calculatoarelor
Calculatoarele ne ajută să mecanizăm, i.e., automatizăm, procesul derezolvare a unei problemeExemplu: algoritmul ce determină maximul dintre două numere a și b
.Algoritmul min-max..
......
Intrare: a și b;Ieșire: text;Dacă a > b atuncitext ⇐ "a > b";
Altfeltext ⇐ "a <= b";
SfDacă
Șef lucr.dr.ing. GENGE Béla Fundamentele programării
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.. Implementarea calculatoarelor
Primele calculatoare: set de circuite ce rezolvă o anumită clasă deproblemeCalculatoare dedicate: ceas, calculatorul de buzunarExemplu: Mașina lui Turing (Bombe) construită pentru descifrareacodurilor criptate prin Enigma
Șef lucr.dr.ing. GENGE Béla Fundamentele programării
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.. Pasul următor: calculatoare generice
Sunt instruite cum anume să rezolve oproblemăIntrarea este extinsă cu un set deinstrucțiuniPrimele arhitecturi: Von Neumann(Neumann János Lajos) - 1945
Șef lucr.dr.ing. GENGE Béla Fundamentele programării
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.. De ce C/C++?
Există mai mult de 100 limbaje de programareAdoptarea unui anumit limbaj depinde de scopul aplicațieiUn programator bun se descurcă cu orice limbaj (în limitele limbajului)De ce ar trebui să studiem C/C++:
Multe limbaje au fost influențate de C/C++ (Java, JavaScript, C#,Perl, Python, Ruby)Majoritatea S.O. sunt implementate în C/C++Codul mașină rezultat este foarte eficient
Șef lucr.dr.ing. GENGE Béla Fundamentele programării
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.. Despre ce vom discuta
Elemente de bază (cuvinte rezervate, identificatori, constante, ...)Tipuri de date (scalare, derivate, tablouri, structuri, uniuni, ...)Instrucțiuni (if, switch, continue, goto, break)FuncțiiOperații pe bițiPointeri (alocare dinamică, pointeri la funcții)Șiruri de caractereScheme logice
Șef lucr.dr.ing. GENGE Béla Fundamentele programării
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.. Resurse
Brian W. Kernighan, Dennis M. Ritchie - The C programminglanguage. 1978Adrian Runceanu - Programarea și utilizarea calculatoarelor. 2003Ion Cozac - Programare în limbajul C. 2004Vasile Petrovici - Programarea în limbajul C. 1993Delia Ungureanu, Adrian Ungureanu, Sorin Moraru - Programareacalculatoarelor; Îndrumar C++. 2001
Șef lucr.dr.ing. GENGE Béla Fundamentele programării
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.. Visual Studio și Primul Program
Lansare Visual Studio. Cel mai simplu programLimbaj interpretat și compilatDrumul de la cod sursă la fișier executabilAfișare mesaj în C și în C++Comentarii
Șef lucr.dr.ing. GENGE Béla Fundamentele programării
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.. Tipuri de date
Limbajul C permite stocarea valorilor în constante și variabileTipul unei variabile determină:
Modul de reprezentare în memorieValorile pe care le poate luaTimpul de viațăDimensiunea zonei de memorie folosite
Pentru declarațiile datelor sunt folosite două atribute:Tipul unei date: standard sau definit de utilizatorClasa de memorie: registru, stivă, heap
Șef lucr.dr.ing. GENGE Béla Fundamentele programării
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.. Clasificarea tipurilor de date
Tipuri de bază
Tipuri derivate: enumerate, structure, union, pointer
Șef lucr.dr.ing. GENGE Béla Fundamentele programării
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.. Constante
Constantele sunt valori nemodificabile pe parcursul execuțieiDacă au asociate un identificator: constante simboliceConstante întregi: 12, 17, 20 (pot fi precizate și în alte baze denumerație)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.9Constante șir de caractere: ”sirul meu”, ”folosire \” escape”Constante predefinite: CHAR_MAX, CHAR_MIN, INT_MAX,INT_MIN, ...
Șef lucr.dr.ing. GENGE Béla Fundamentele programării
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.. Segmente de memorie
Zona de memorie a unui program C este organizată în 4 segmenteprincipale:
Segmentul de cod: instrucțiunile programuluiSegmentul de date: variabile globale și staticeSegmentul de stivă: variabile locale, date apel funcțiiSegmentul de heap: zonă variabile alocate dinamic
Șef lucr.dr.ing. GENGE Béla Fundamentele programării
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.. Declarațiile de variabile
Variabilele sunt datele care își pot modifica valoarea pe parcursulexecuției.Sintaxa de declarare:
clasa_memorie tip lista_nume_variabile;
clasa_memorie: auto, static, extern, registertip: tipuri de bază și utilizatorlista_nume_variabile: listă cu denumiri alfa-numerice
Șef lucr.dr.ing. GENGE Béla Fundamentele programării
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.. Exemple de declarațiiTipuri: int, charASCII: American Standard Code for Information Exchange
Șef lucr.dr.ing. GENGE Béla Fundamentele programării
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.. Alegerea corectă a variabilelor
Valorile stocateTimpul de viațăEficiență program
Exemple de declarări variabile pentru:ora, minut, secunda și milisecundatemperaturarpm hard-disk
Șef lucr.dr.ing. GENGE Béla Fundamentele programării
..........
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
.....
.....
......
.....
......
.....
.....
.
.. Problemă
Cunoaștem previziunea temperaturii pentru ziua următoare sub formavalorii minime și maxime. Să se implementeze o aplicație ce determinăvaloarea temperaturii medie și o afișează ca un întreg.
Șef lucr.dr.ing. GENGE Béla Fundamentele programării