19
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fundamentele programării Curs 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

Fundamentele programării Curs 1

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

.

......

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

Page 2: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

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

Page 3: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

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

Page 4: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

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

Page 5: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

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

Page 6: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

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

Page 7: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

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

Page 8: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

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

Page 9: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

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

Page 10: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

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

Page 11: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

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

Page 12: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

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

Page 13: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

.. Clasificarea tipurilor de date

Tipuri de bază

Tipuri derivate: enumerate, structure, union, pointer

Șef lucr.dr.ing. GENGE Béla Fundamentele programării

Page 14: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

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

Page 15: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

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

Page 16: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

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

Page 17: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

.. Exemple de declarațiiTipuri: int, charASCII: American Standard Code for Information Exchange

Șef lucr.dr.ing. GENGE Béla Fundamentele programării

Page 18: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

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

Page 19: Fundamentele programării Curs 1

..........

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

.....

.....

......

.....

......

.....

.....

.

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