Professional Documents
Culture Documents
Conf. dr. ing. Dana Luca Motoc Catedra de Mecanic Fin i Mecatronic Facultatea de Inginerie Mecanic
Ca toate limbajele de programare, nu este altceva dect o modalitate de a da unui calculator indicaii precise din punct de vedere logic. Calculatoarele nu fac dect ceea ce li se spune. Utiliznd un limbaj de programare (C++, Visual Basic, Pascal, Fortran, etc.) dai unui calculator o list de sarcini. Acesta este programul. Calculatorul are nevoie de informaii. Acestea sunt datele programului. Acestea trebuie manipulate de ctre sistem. Instruciunile care arat calculatorului ce are de fcut poart denumirea de cod de program.
3.
4. 5.
Scrie mesajul Introducei valoarea razei: Citete un numr de la tastatur i stocheaz-l n variabila raza. Calculeaz aria cercului utiliznd formula: aria=Pi*raza*raza Afieaz mesajul Valoarea ariei este: Afieaz valoarea variabilei aria.
O instruciune este echivalentul n C++ a unei propoziii ca cele de anterior. Exemplul anterior: 1. Afieaz mesajul Valoarea ariei este: 2. Afieaz valoarea variabilei aria. se convertesc n urmtoarele intruciuni C++: cout<<Valoarea ariei este:; cout<<raza; cout (eng. console output)
Construcia programului procesul de conversie a codului surs (instruciuni C++) ntr-o aplicaie n vederea utilizrii acesteia. Procesul se deruleaz n 2 etape:
Compilarea programului conversia instruciunilor C++ in cod main (cod obiect). OK! Link-editarea combinarea cod-ului main cu linii de cod preluate din biblioteca C++.
Compilare Program.obj
Link-editare Program.obj
Testarea programului
Implic rularea de mai multe ori a programului (marile companii de software au departamente specializate n acest sens). Erorile cutate n acest stadiu poart denumirea de erori de logic de programare. Acestea semnific faptul c s-a utilizat corect sintaxa programului dar programul nu se comport conform cu ceea ce s-a dorit a fi.
Testarea programului
Erorile de logic de program pot fi mult mai greu detectabile comparativ cu erorile de sintax. Nu se poate furniza ntotdeauna un rspuns clar vis-a-vis de instruciunea care cauzeaz apariia erorii. Procesul de testare a unui program i de determinare a originii unei probleme poart denumirea de depanare.
Revizuirea
Compilare& link-editare
Succes?
Nu
Rulare i testare
Da
Erori logice?
Nu
Ai terminat!
Program rulat de ctre utilizator n vederea efecturii unei operaii. Tipuri de aplicaii: procesor de texte, browser de internet, program de gestiune a bazelor de date. Cnd programul dvs. a fost scris, testat i construit a devenit o aplicaie.
Serie de instruciuni i sintaxe aferente care compun un program. Ex.: cod main (succesiune de 0 i 1); cod surs (instruciunile C++) Denumirea se utilizeaz uneori pentru a diferenia informaia pasiv inclus ntr-un program (datele programului) i acea parte a programului care efectueaz operaii (codul).
Limbajul nativ al microprocesorului, n care fiecare instruciune de calculator const dintr-o combinaie (cod) unic format din 1 i 0. Limbajele precum C++ asigur o modalitate de a scrie programe ntr-o form mai apropiat de limba vorbit, dar suficient de precis din punct de vedere logic pentru a putea fi convertite n cod main.
Program scris ntr-un limbaj de nivel nalt (C++, Pascal, java, Fortran, Basic, etc.). Codul surs este compus din instruciunile specifice limbajului, instruciuni care formeaz programul dvs. Codul surs trebuie convertit n cod main nainte de a putea fi rulat efectiv pe un calculator. Codul main este compus din 1 i 0, dar este de regul reprezentat n baza hexazecimal (16). Ex.: 08 A7 C3 9E 58 6C 77 90 i chineza pare mai simpl!
if (salariu<salariul_minim) afiseaza_mesaj_demisie();
Convertorul de limbaj care preia instruciunile limbajului (codul surs) ca date de intrare i genereaz programul sub form de cod main. Acest fapt este necesar ntruct calculatorul n sine unitatea central de prelucrare a acestuia CPU nelege numai codu-ul main. Informaii stocate de un program n vederea manipulrii sau afirii. La nivel elementar informaiile sunt alctuite din cuvinte i/sau numere (dei pot fi organizate sub form de clase i obiecte).
Linie dintr-un program. Aceasta corespunde unei propoziii scrise ntr-o limb vorbit (englez). C++ mai accept i structuri complexe, alctuite din 1 sau mai multe instruciuni mai mici. Majoritatea instruciunilor din C++ execut o operaie, dei unele dintre ele pot executa mai multe operaii.
Program
Serie de intruciuni care urmeaz a fi duse la ndeplinire de un calculator folosind datele iniiale. Scrierea unui program poate necesita mult timp! Execuia acestuia se face cu viteza luminii! Utilizare la nesfrit!
Persoan care ruleaz un program. Numele oficial al utilizatorului este de utilizator final. Dup scrierea unui program vei fi probabil i prima persoan (chiar singura) care ruleaz i testeaz programul. A nu se uita! suntei ntotdeauna i utilizator nu numai programator.
Majoritatea consideraiilor anterioare se aplic limbajelor de nivel nalt, ceea ce nseamn c nu corespund ndeaproape codului main dar utilizeaz cuvinte cheie (ex. if, while). De ce sunt att de multe limbaje? Fiecare limbaj a fost creat cu un anumit scop. Basic a fost proiectat pentru a fi simplu de nvat i utilizat. Sintaxa este lejer dar n timp conduce la obiceiuri de programare proaste. Cu toate acestea Visual Basic (Microsoft) s-a dovedit a fi un instrument puternic, comod i rapid, utilizabil n vederea construciei de aplicaii pentru Windows.
Pascal a fost conceptul n vederea utilizrii n medii academice pentru nsuirea unor concepte sofisticate de programare. Spre deosebire de Basic, Pascal este elaborat i plin de sintaxe complexe. Programatorii l evit datorit numeroaselor restricii care sunt impuse.
C a fost conceput pentru scrierea sistemelor de operare. 1972 Dennis Ritchie (Bell Telephone Laboratories, Inc.) i completat ulterior de ctre Brian Kernighan. C este rezultatul combinrii a 2 limbaje de programare anterioare BCPL i B dezvoltate tot n cadrul Bell Laboratories. A fost asociat iniial cu sistemul de operare UNIX, acesta din urm fiind scris n C. 1983 ANSI (American National Standards Institute) s-a creat un comitet n vederea standardizrii limbajului.
C este adesea denumit limbaj de programare de nivel mediu. Combin elemente ale limbajelor de nivel nalt (Pascal, Fortran) cu funcii ale limbajului de asamblare. C este un limbaj structurat. Codul surs poate fi divizat n mai multe buci care la rndul lor vor fi nserate n subprograme (sau funcii). Programul principal va fi constituit din subprograme multiple. Fiecare subprogram are propria sa logic i se constituie un program el nsui. Aceasta permite concperea de programe mari care pot fi nelese cu uurin.
Programarea n C face din acesta un limbaj eficient. Programele n C pot fi scrise n cteva rnduri spre deosebire de alte limbaje de programare care necesit pagini ntregi pentru acelai lucru. Programele scrise n C sunt portabile. Aceasta presupune faptul c pot fi rulate (cu mici modificri) pe alte sisteme de operare (existena a mai multor compilatoare). Limbajul de programare C este puternic i flexibil. Acesta nu a fost conceput s fi citit cu uurin sau simplu pentru a fi neles. Scopul a constat n a permite programatorului s acceseze calculatorul la toate nivelele acestuia.
Care sunt principalele tipuri de date (informaii) din problema care urmeaz a fi rezolvat? Care sunt operaiile ce trebuie definite pentru fiecare tip de date? Cum interacioneaz ntre ele obiectele de date?
Java i C#?
Programarea orientat spre obiecte.
Limbaje bazate pe C. Au adoptat o mare parte din sintaxa utilizat n C/C++ dar spre deosebire de acestea nu permit accesul la adrese arbitrare de memorie. Unii le consider implementri pure ale programrii orientate spre obiecte. Nu exist diferene mari ntre Java i C#. Acestea difer ca platform i biblioteci de suport. Java creat de ctre Sun Microsystems ca limbaj independent de platform C# - creat de ctre Microsoft pentru platforma sa .NET. C++ odat nvat permite asimilarea mult mai uoar a programelor Java i C#.
Exemplul 1: # include <iostream.h> int main() { cout<<Am scris primul meu program in C++!\n; return 0; }
Semnificaia instruciunilor:
Definirea unei funcii main() { } care nu prezint nici un argument i nu face nimic. Acoladele { i } sunt utilizate pentru a indica nceputul i sfritul instruciunilor cuprinse n corpul funciei main. Fiecare program C++ trebuie s prezinte o funcie main() pe care o execut cel dinti. Programul de la exemplul 1 are o singur instruciune real: cout<<Am scris primul meu program in C++!\n;
Semnificaia instruciunilor:
cout este un obiect prescurtarea de la console output (ieire la consol). Se utilizeaz mpreun cu un operator de flux orientat spre stnga (<<) n vederea afirii datelor de ieire. Nu se va grei utilizarea dac se vizualizeaz astfel:
Semnificaia instruciunilor:
\n semnific trecerea la o linie nou. O alt modalitate de trecere la urmtoarea linie de afiare:
Sarcini de lucru!
Scriei, testai i rulai programul de la exemplul 1. Scriei, testai i rulai varianta modificat de program de la exemplul 1.1. Modificai programul de la exemplul 1 astfel nct instruciunea de afiare s efectueze trecerea la linie nou utiliznd opiunea endl. Rulai programul.
Scriei un program care afieaz mesajul C++ pare att de simplu! Scriei un program care afieaz numele dvs.
Exemplul 2 # include <iostream.h> int main() { cout<<Parc ncep s devin profesionist,<<endl; cout<<i-mi vine s dau examenul acum.<<endl; cout<<STOP! Visez prea frumos.<<endl; return 0; } Salvai programul sub denumirea de exemplul2.cpp, compilai-l i rulai-l.
Returnarea unei valori este procesul de trimitere napoi a unui semnal n cazul de fa ctre sistemul de operare sau mediul de dezvoltare. return 0 valoare returnat de ctre funcia main este un cod trimis sistemului de operare prin care 0 indic reuita. Returnarea unei valori din funcia main este unul dintre acele lucruri agasante care nu par utile la prima vedere, dar care trebuie fcute pentru a v asigura de corectitudinea efecturii operaiilor.
Sarcini de lucru!
Scriei, testai i rulai programul de la exemplul 2. Scriei, testai i rulai varianta modificat de program de la exemplul 2.1. Scriei, testai i rulai varianta modificat de program de la exemplul 2.2. Modificai exemplul 2.2 astfel nct s afieze o linie vid ntre fiecare dou linii de ieire (spaiai rezultatul la 2 rnduri nu la 1 rnd sugestie: afiai 2 caractere linie nou la sfritul fiecrui ir de text!).
Variabilele locaii n care se pot plasa date. Cum ajung valorile s fie inserate n variabile?
O metod const n introducerea de la consol. cin (en. console input) urmat de un operator de flux >> Ex.: cin >>variabila Ca rspuns la aceast instruciune:
Programul i suspend execuia i ateapt ca utilizatorul s introduc un numr. Utilizatorul introduce un numr i apas tasta ENTER. Numrul este acceptat i transmis n variabila predefinit. Programul i reia execuia.
Regul: n C++ este obligatorie declararea unei variabile nainte de utilizarea acesteia.
Toate datele dintr-un calculator sunt, n ultim instan numerice, i organizate ntr-unul din cele 3 formate elementare:
ntreg (ex. 5, -33, 306, etc.) Virgul mobil (ex. -8.7, 2.003, 387.1, etc.) ir de text (ex. Oficial mi-e bine)
Regul: Dac trebuie s stocai numere cu pri fracionare, utilizai o variabil n virgul mobil; n caz contrar utilizai tipul ntreg.
Alte exemple
Conversia temperaturilor Exemplul 3 # include <iostream.h> int main() { double gradC, gradK; cout<<Introduceti valoarea, in grade C, a temperaturii si apasati tasta ENTER:; cin>>gradC; gradK=gradC+273; cout<<Temperatura, in grade K, este:; return 0; } Deschidei un fiier surs nou, introducei programul i salvai-l sub numele de temperatura.cpp. Compilai programul i executai-l.
Alte exemple
Exemplul 3.1 (varianta modificata comentat) # include <iostream.h> int main() { // declararea variabilelor in virgula mobila double gradC, gradK; // introducerea unei valori de intrare pentru gradC cout<<Introduceti valoarea, in grade C, a temperaturii si apasati tasta ENTER:; cin>>gradC; // calcularea valorii gradK si afisarea acesteia gradK=gradC+273; cout<<Temperatura, in grade K, este:; return 0; }
Alte exemple
Liniile de program C++ care ncep cu o pereche de caractere slash (//) sunt comentarii i sunt ignorate de ctre compilator. Comentariile sunt opionale.
Instruciunea conine o atribuire. Se evalueaz valoarea din partea dreapt a semnului = urmat de copierea acesteia n variabila din partea stng.
gradK=gradC+273;
Alte exemple
Exemplul 3.2 (varianta optimizat) # include <iostream.h> int main() { // declararea variabilei gradC in virgula mobila double gradC; // introducerea unei valori de intrare pentru gradC cout<<Introduceti valoarea, in grade C, a temperaturii si apasati tasta ENTER:; cin>>gradC; // conversia temperaturii gradC cout<<Temperatura, in grade K, este:<<gradC+273; return 0; }
Alte exemple
Declararea variabilelor. Preluarea datelor de intrare de la utilizator. Efectuarea calculelor i afiarea rezultatelor.
Care sunt numele de variabile permise? Rspuns: oricare cu condiia de a se respecta urmtoarele reguli:
Primul caracter trebuie s fie o liter nu poate fi un numr. Se poate utiliza _ dar C++ utilizeaz acest semn n cadrul bibliotecii sale. Restul numelui poate fi format din litere, numere sau liniue de subliniere (_). A se evita utilizarea cuvintelor care au deja o semnificaie special, predefinit n C++.
Alte exemple
Exemplul 4 Care dintre cuvintele din lista urmtoare sunt nume corecte de variabile n C++ i care nu? a x x2 Eroilor29 Student Chiar?? 17Vlad_Tepes main main4
Alte exemple
Exemplul 5 (ridicarea unui numr la ptrat) # include <iostream.h> int main() { // declararea variabilei n ca variabila in virgula mobila double n; // introducerea unei valori de intrare pentru n cout<<Introduceti un numar si apasati apoi tasta ENTER:; cin>>n; // efectuarea calculului i afiarea valorii de ieire cout<<Patratul numarului este:<<n*n; return 0; } Salvai sub denumirea de patrat.cpp.
Alte exemple
Sarcini de lucru!
Rescriei programul de la exemplul 3 astfel nct s execute conversia invers: se introduce o valoare n gradK (Kelvin) i se convertete n gradC (Celsius). Scriei programul de conversie din Kelvin n Celsius utiliznd o singur variabil gradK. Varianta este o optimizare a exerciiului precedent. Scriei un program care s efectueze transformarea gradelor Celsius in Fahrenheit gradF=(gradC*1.8)+32. Cum arat varianta optimizat? Scriei un program care s realizeze conversia grad Fahrenheit in grad Celsius. Cum arat varianta optimizat?
Alte exemple
Sarcini de lucru!
Scriei un program care introduce o valoare ntr-o variabil n i afieaz cubul acesteia (n*n*n). Rescriei exemplul patrat.cpp utiliznd numele de variabila numar in loc de n. Scriei un program care s efectueze urmtoarea nmulire:
x=y*2