Suport de curs pentru clasele 9-11

profil matematica-informatica neintensiv

Limbajul C++

Prof.informatica Gabriela Gligor

Limbajului C++ - Suport de curs pentru clasele 9-11, profil matematica-informatica

prof.informatica Gabriela Gligor

Limbajul C++ A.Notiuni introductive
Orice program C++ este perceput ca o colectie de linii de text despartite de caracterul ENTER. Orice linie este alcatuita din cuvinte .Cuvintele pot fi: identificatori,cuvinte cheie,separatori,constante operatori si comentarii. 1.Identificator= sunt nume de obiecte folosite in program si reprezinta o succesiune de litere alfabetice (a…z , A…Z), cifre(0….9) si caracterul underscore( _ ). Obs.1.Regula de constructie a unui identificator este ca intotdeauna acesta va incepe cu o litera. Ex: ab! // identificator incorect 1bcd // identificator incorect Asdfg // identificator corect _a1b // identificator incorect Ab1_d // identificator corect 2.Cuvintele cheie= sunt identificatori cu o semnificatie precisa care nu pot fi folositi cu alt scop decat cel stabilit. Ex: int, char,float, const, while, if, break etc. 3.Separatorii= caractere cu o semnificatie anume care separa siruri de caractere intr-un program C++. Acestia sunt: -spatiul si caracterul Tab cu rol in separarea cuvintelor - ; pentru a separa instructiunile(similar cu punctul care separa propozitiile) - caracterul enter care separa liniile de text din program - virgula(,)care separa elementele unei liste(similar cu virgula care separa cuvintele unei enumerari). 4.Constantele =sunt valori efective. Ex: 23, 457, 23.8, ‘a’. 5.Operatorii =sunt caractere speciale(semne) cu o semnificatie definita specific limbajului C++. 6. Comentariile =sunt texte explicative folosite in program pentru a-l face mai usor de inteles(este strict pentru programator si nu face parte din program). Exista 2 modalitati de utilizare: - cand explicatia se face pe o singura linie Ex: //Acesta este un exemplu -cand explicatia se face pe mai multe linii Ex: /* Acesta este Un exemplu */

B.Structura unui program C++
1.Instructiune= actiune. 2.Functie = Secventa de instructiuni(actiuni) menita sa rezolve o cerinta(actiune mai ampla). Clasificare:- functie standard = functie realizata de creatorii C++ - functie utilizator = functie creata de utilizator ce poate sa utilizeze atat functii standard cat si functii utilizator deja create. 3.Biblioteca= colectie de functii Clasificare: - biblioteca standard = contine functii standard - biblioteca utilizator = contine functii utilizator 1

a.h> #include <math.parte declarativa-contine instructiuni(actiuni)declarative ale obiectelor necesare rezolvarii problemei cu rol de alocare a unui spatiu de memorie corspunzator fiecarui obiect. 5.a.informatica Gabriela Gligor 4. 2 .Tipuri de date utilizator sintaxa: typedef tip_vechi tip_nou. #include <iostream.Suport de curs pentru clasele 9-11.Tipuri de date. -tipuri de date utilizator : multimi de valori definite de utilizatori folosind tipurile de date standard. 3.a. compilatorul C++ sa stie unde sa caute functiile standard sau functiile utilizator folosite in program. Intotdeauna se vor declara la inceputul programului atat bibliotecile standard cat si cele utilizator pentru ca.Obiectele unui program C++ Clasificare:-tipuri de date -constante -variabile 5.h> #include <conio.folosind obiecte deja declarate in partea declarativa.Structura unui program C++ Declararea bibliotecilor #include <numebibl. 5.parte executabila-contine instructiunile(actiunile) care rezolva problema.Limbajului C++ . Clasificare:-tipuri de date standard : multimi de valori definite de creatorii limbajului C++ . Orice program este alcatuit din: a.2.h> Declararea tipurilor utilizator si a variabilelor globale Declararea functiilor utilizator Nota: functia obligatorie in orice program C++ este void main() (functia principala) Obs: 1.multimi de valori cuprinse intr-un interval inchis.h> Ex. profil matematica-informatica prof. b. ex: typedef unsigned natural. Cel mai simplu program c++ este: void main() { } 2.1. Tipuri de date standard Tipuri de date pentru caractere Tipuri de date pentru numere intregi Tip data char unsigned char int unsigned long unsigned long float double long double Spatiu alocat in memorie 1 octet(8 biti) 1 octet(8 biti) 2 octeti(16 biti) 2 octeti(16 biti) 4 octeti(32 biti) 4 octeti(32 biti) 4 octeti(32 biti) 8 octeti(64 biti) 10 octeti(80 biti) Interval de valori -128 – 127 0 – 255 -32 768 – 32 767 0 – 65 535 -2*1010 – 2*1010 0 – 4*1010 interval de valori reale foarte mari Tipuri de date pentru numere reale 5.

Ex: 0xa1.) Constante literale de tip Ex: 3. numeric intregi In baza 16 cu 0x la inceputul numarului.b. Ex: 023. 3 .1.C++ recunoaste un numar ca este in baza 16 daca are 0x la inceput. valoare= valoarea cu care este initializata constanta simbolica.Constantele literale nu se declara deoarece sunt valori recunoscute . 56. 0456.constante literale: valori efective. Un numar in baza 16 ce reprezinta codul ascii (baza 10 ) convertit in baza 16. .Constante. tip_data=multimea valorilor din care face parte constanta simbolica.C++ recunoaste un numar ca este in baza 8 daca are 0 la inceput. Ex: \ . Ex: 032.) in loc de virgula(.b. Se reprezinta cu punct(.45 . ? Nota: caracterele escape se exprima putin diferit: ‘\ caracter escape’ Ex: \ => ‘\\’ .constante simbolice: nume date valorilor efective(constantelor literale).34 0.informatica Gabriela Gligor 5. 0457. nume=numele constantei simbolice.123.backspace.1415. Constantele simbolice se declara in memorie deoarece sunt nume date valorilor. 0x45.b. ‘ => ‘\’’ .0 numeric reale Obs. Ex: 89.valori ce raman constante pe tot parcursul programului Clasificare: . 5. Constante literale de tip sir de se reprezinta intre “……” ex: “buna ziua” caractere in baza 10. ex: const float pi=3.Suport de curs pentru clasele 9-11.enter -caractere speciale: au o semnificatie speciala in limbajul C++. ? => ‘\?’ . profil matematica-informatica prof. 5.Constante simbolice sintaxa: const tip_data nume=valoare.34. Ex: 0x9a.Limbajului C++ . ‘B’) Prin codul Ascii al caracterului precizat in baza 10 (ex: ‘a’ 97) Un numar in baza 8 ce reprezinta codul ascii (baza 10 ) convertit in baza 8. Cazuri particulare: -caracterele escape:-caractere albe(care nu se vad pe ecran) Ex: tab. .Constante literale Clasificare Constante literale de tip caracter Modalitati de exprimare Printr-un caracter delimitat intre apostrofuri (ex: ‘a’. Obs.2. 0x46. 5.234 Constante literale de tip in baza 8 cu 0 la inceputul numarului. 56. tab => ‘\t’ etc. ‘ .

b=5.….Declarare fara initializare: Sintaxa: tip_data var1. c=789.iar citirea de la tastatura tocmai asta permite:modificarea valorii unei locatii de memorie in functie de dorinta utilizatorului. b.Suport de curs pentru clasele 9-11. tip_data . e.Declarare cu initializare Sintaxa: tip_data var1=val1. ……… cin>>a>>b>>c>>d. 6.Se observa ca intr-o singura instructiune se pot citi mai multe variabile.1.. char d. tip_data .…. char c=’Z’.multimea valorilor din care fac parte variabilele. cin>>var1>>var2>>var3>>….1423.. Ex: double a=3.numele variabilelor declarate. Nota:1. Nota:1.c.….Operatiile de citire si scriere 6.b1.var2. profil matematica-informatica prof.varn . Se observa ca intr-o singura declaratie se pot defini mai multe variabile de acelasi tip.multimea valorilor din care fac parte variabilele. 4 . 2.4567. var1. d.b. 2.varn. Acest tip de declarare determina ca initial variabila sa contina in memorie valori rezidente(ramase). Ex: int a=6. 2 Nu se pot citi constante deoarece acestea nu se pot modifica. Obs: Cele doua moduri de declarare se pot combina.d=99. varn=valn.var3. Acest tip de declarare determina ca initial variabila sa ia valoarea precizata.>>varn. var1.numele variabilelor declarate.varn .b..Operatia de citire-presupune citirea unor valori de la tastatura.Limbajului C++ .valn – valorile cu care sunt initializate variabilele.c.…..c.Variabile – nume date unor obiecte a caror valoare se schimba pe parcursul programului. b. Ex: float a. Se observa ca intr-o singura declaratie se pot defini mai multe variabile de acelasi tip. Tipuri de declarare: a. Sintaxa: Ex: int a. valori care vor putea fi atribuite doar unor variabile deja declarate in memorie.……. int a1. Nota: 1. var2=val2.informatica Gabriela Gligor 5. val1.

.ternari . Ex: const float pi=3.1. 2. int a. constante simbolice.operatori de incrementare/decrementare .se aplica pe trei operanzi. .operatori aritmetici .au acelasi nivel de prioritate.Limbajului C++ .2. Reguli ale operatorilor: 1. 2.expresii numerice(rezultatul obtinut este un numar intreg sau real).operator virgula .expresii logice conditie (rezultatul obtinut este 0=false sau 1=true) . . Clasificare operatori: .Suport de curs pentru clasele 9-11.operatori de atribuire . ……… cout<<’a’<<”buna”<<32<<5.Se observa ca se pot afisa intr-o singura instructiune.unari – se aplica pe un singur operand.Operatorii binari:.operator conditional . C.functii care returneaza un rezultat ex: sqrt(n) => n .Expresii C.operator de conversie explicita .se executa in expresie de la stanga la dreapta.operatori logici .informatica Gabriela Gligor 6.operator dimensiune 5 .deci ordinea de executie depinde de tipul operatorilor(adica unari sau binari). . 3.Operatia de scriere(afisare)-presupune afisarea pe ecran a unor valori ce pot proveni atat din variabile cat si din constante(constante literale.Operatorii in limbajul C++ sunt structurati pe 16 niveluri de prioritate(nivelul 1 fiind cel mai prioritar). constante literale(valori) obtinute din calculul unor expresii ). Sintaxa: cout<<var1| const1<<var2|const2<<……<<varn|constn.se executa in expresie de la dreapta spre stanga. profil matematica-informatica prof. Nota:1.Operatorii care au acelasi nivel de prioritate au aceeasi asociativitate.alte expresii separate intre ( ) Operatorii = caractere speciale(semne) care determina executarea unor operatii.Expresia= succesiune de operatori si operanzi Clasificare(dupa tipul rezultatului obtinut in urma evaluarii): .sunt structurati pe mai multe nivele de prioritate(14) .2.sunt mai prioritari decat operatorii binari si ternari. C.41<<pi<<a<<b<<a+2*3.simbolice) . .expresii de tip text(rezultatul este un sir de caractere) Operanzii pot fi: .1415.Operatorii unari :.b.variabile sau constante(literale. succesiv mai multe informatii.operatori relationali .binari – se aplica intre doi operanzi. 4.Tipuri de operatori Casificare: .La un moment dat poate fi afisata fie o variabila fi o constanta.

-operatori binari: -de multiplicare: * operatorul de inmultire / operatorul de impartire % operatorul modulo(restul impartirii) -de adunare: + operatorul de adunare ..informatica Gabriela Gligor C. //se afiseaza -1.2.Pentru a schimba ordinea implicita de executare a operatorilor.333333 2. cout<<a+b. float x=-1.1. char b=’a’. //se afiseaza 98.In cazul in care in expresie exista operanzi de diverse tipuri.Semnificatia operatorului / depinde de tipul operanzilor astfel: . Ex: ….0 (rezultatul de tip float) Obs. Ex: 7%2 => 1 3.Conversia explicita este conversia care se face la cererea programatorului catre tip_data.In cazul in care expresia este alcatuita dintr-un operand. Ex: -7/2 => -3 -7%2 => -1 4. //se afiseaza 3. +3.5 -1 2. float a=1.1.5 cout<<x<<” “<<(int)x.2.daca ambii operanzi sunt de tip intreg.operatori de semn ex: -3.56. .5.. Ex: …. precizat de acesta. int a=10. profil matematica-informatica prof.. b=2.rezultatul expresiei se va converti implicit catre tipul care ocupa cei mai multi octeti in memorie. cout<<a/b<<” “<<(float)a/b. rezultatul impartirii este un numar intreg si reprezinta catul impartirii. operatorul de conversie explicita nu schimba tipul operandului.333333 cout<<a/3.Operatorul modulo % se aplica doar pe operanzi intregi.Operatorul de conversie explicita -este operator unar Sintaxa: (tip_data) expresie Efect: Converteste rezultatul obtinut in urma calcularii expresiei in tipul de data ( tip_data) precizat. float b=10.Operatorii / si % se pot folosi pentru a calcula catul (c) si restul(r) impartirii a doua numere intregi cu semn. rezultatul impartirii este un numar real.se pot folosi parantezele rotunde ( ). -a.2. //se afiseaza 2 2.Operatori aritmetici Clasificare:-operatori unari: +. Ex: ….Limbajului C++ . 6 .operatorul de scadere Obs: 1.daca cel putin un operand este de tip real.Semnul catului si restului se obtine cu ajutorul formulei: d=i*c+r.Suport de curs pentru clasele 9-11. Ex: (2+3)*5 =>25 5. cout<<a/3. int a=5.data de prioritatea lor. C. // se afiseaza 3 cout<<b/3. Conversia implicita este realizata de catre compilatorul C++ in scopul aducerii lor la o forma prelucrabila.. Obs. //se afiseaza 3.

d=3.operator logic unar : !(negatia) sintaxa: !operand . Obs.neaga valoarea logica a operandului pe care se aplica astfel: !0 => 1 !1 => 0 3. //se afiseaza 0 cout<<(c&&d)<<endl.<= si >=.Operatorii logici se aplica pe operanzi logici si intorc un rezultat logic. Ex: …… int a=2. Tabele de adevar ale operatorilor logici binari sunt: || 0 1 0 0 1 1 1 1 Ex:……… float a=2..b=3. cout<<(a>b)<<endl. //se afiseaza 0 cout<<(a!=b)<<endl.>. cout<<(a>0)<<endl. 1true). //se afiseaza 1 C.operatori logici binari : && (si logic) || (sau logic) sintaxa: operand1 operator_logic operand2 Obs: 1.4. In cazul in care operandul este numeric acesta va fi interpretat ca un operand logic astfel: -daca valoarea operandului este diferita de 0 atunci logic va fi 1(true).5.2.Suport de curs pentru clasele 9-11.2. C.c=2. //se afiseaza 1 ……. -operatori relationali de egalitate: = =(egal).3.2.Operatori relationali -sunt operatori binari Sintaxa: operand1 operator_relational operand2 Clasificare:-operatori relationali de inegalitate: <. profil matematica-informatica prof.Operatorul logic !(negatie).Limbajului C++ . 2. int b=0.informatica Gabriela Gligor C.Operatorii relationali se aplica intre doi operanzi numerici si intoarce un rezultat logic (0-false. !=(diferit).5. //se afiseaza 1 cout<<(!a)<<endl. -daca valoarea operandului este egala cu 0 atunci logic va fi 0(false).Operatorii de atribuire Tipuri de atribuire:-atribuire simpla -atribuire multipla -atribuire cu operator && 0 1 0 1 0 0 0 1 7 .Operatori logici Clasificare: .

Efect: -se evalueaza expresia -se calculeaza valoarea noii expresii obtinuta din aplicarea operatorului (operator) pe valoarea variabilei (var) si valoarea obtinuta in calculul expresiei (expresie)./2.0 2 2 x=y=a=5.8.valoarea acesteia este trunchiata.c=-2.5. a=x=y=5.7. cout<<a<<” “<<x<<” “<<y<endl. var = var operator expresie. profil matematica-informatica prof. …………………. int x.Limbajului C++ . //se afiseaza 1 a=c. Obs: Daca unei variabile de tip intreg i se atribuie o valoare reala. //se afiseaza 2.5 2 2 ………….Daca este cazul se va face si conversia de tip.1. cout<<a<<” “<<x<<” “<<y<endl. varn-1=varn.facandu-se conversia de tip daca e cazul.3. float a. varn=expresie. Efect:-se evalueaza expresia -valoarea obtinuta se introduce in locatia de memorie a varn. ……………. Ex: …………. Ex: …. C. 8 . //se afiseaza -2 C.Atribuirea cu operator -operator binar Sintaxa: var operator = expresie. -valoarea var2 se introduce in locatia de memorie a var1.y.5.facandu-se conversia de tip daca e cazul.informatica Gabriela Gligor C. cout<<a<<endl.2. cout<<a<<endl.5.Atribuirea multipla -operator binar Sintaxa: var1=var2=var3=……=varn=expresie. //se afiseaza 2. float b=1.2. var2=var3. Atribuirea simpla -operator binar Sintaxa: var = expresie. a=b.2.facandu-se conversia de tip daca e cazul.Suport de curs pentru clasele 9-11. int a.2.facandu-se daca este cazul conversia implicita de tip. var1=var2. Efect: -se evalueaza expresia -valoarea obtinuta se introduce in locatia de memorie corespunzatoare variabilei var./2. -valoarea varn se introduce in locatia de memorie a varn-1.

. //se afiseaza 3 4 ……………….informatica Gabriela Gligor Obs: Operatorul poate fi oricare din operatorii aritmetici: *. profil matematica-informatica prof. .. //se afiseaza 60 ………….atunci se evalueaza expresie 3 si se intoarce valoarea rezultata.b=20. -noua valoare a variabilei var intra in calculul expresiei.var=var+1. . cin>>x.6. Ex: …………. var . int a=10.c=30. // a=a+(b+c) cout<<a.var.atunci se evalueaza expresie2 si se intoarce valorea rezultata.. Ex:…. int x.altfel…).6. -valoarea variabilei var creste/scade cu 1. Efect: -creste/scade cu 1 valoarea variabilei var. a+=b+c.Suport de curs pentru clasele 9-11.2. int a=1. var=var-1. cout<<a++ +b++<<endl. var++.b=2...Limbajului C++ . Obs: Operatorul conditional poate fi folosit in locul unei structuri de control alternative simple(daca…atunci. Ex:………….. Efect:-creste/scade cu 1 valoarea variabilei (var). Acesti operatori pot fi: -prefixati: ++var / --var. C.2. + . //se afiseaza 3 cout<<a<<” “<<b<<endl.. C. -daca valoarea expresiei1 este egala cu 0(False). / . 9 . % . …….Operatorul de incrementare/decrementare -operator unar Sintaxa: ++var. //se afiseaza 7 cout<<a<<” “<<b<<endl.Corespunde operatiei de atribuire var=var+1 / var=var-1.Operatorul conditional -operator ternar(singurul) Sintaxa: expresie1 ? expresie2 : expresie3 Efect:-se evalueaza expresie1 -daca valoarea expresiei1 este diferita de 0 (True). //se afiseaza 2 3 cout<<++a+(++b)<<endl. cout<<”modulul=”<<(x>=0 ? x : -x). -postfixati: var++ / var— Efect:-valoarea variabilei intra in calculul expresiei.

int a=5. b=10. Obs: Operatorul se aplica de la stanga spre dreapta. ++a. --.c. /= . //se afiseaza 4 2 :rezultatul primei expresii este de tip float.b=10. b=10. //se afiseaza 5 : rezultatul expresiei este valoarea lui b si este de tipul lui b. iar rezultatul celei de a doua expresii este de tip int. ++a. //se afiseaza 2 4 cout<<sizeof(c*a++)<<” “<<sizeof(a/b--)<<endl.Suport de curs pentru clasele 9-11. Ex:…………… int a=5. Tabela cu prioritatile operatorilor Nivel 1 2 3 4 5 6 7 8 9 10 11 Categorie Prioritate maxima Operatori unari Operatori aritmetici de multiplicare Operatori aritmetici de adunare Operatori relationali de inegalitate Operatori relationali de egalitate Operator SI logic Operator SAU logic Operator conditional Operatori de atribuire Operatorul virgula 10 Operatori () + .7. !. …….2. //se afiseaza 12 11 11 1. float d. > .8. -=. != && || ?: = .090909 a=5.. -.informatica Gabriela Gligor C. c=a=++b. >= = =. cout<<(c=a=++b. -se evalueaza expresie_n si se intoarce valoarea rezultata. *=. <=. +=. adica int. profil matematica-informatica prof. sizeof. cout<<sizeof(int)<<” “<<sizeof(float) <<endl. d=(float)a/b. .Operatorul virgula Sintaxa: expresie_1. float c. ++b)/2. (tip) *. ++b. % +.Operatorul dimensiune -operator unar Sintaxa: sizeof(expresie) sau sizeof(tip_data) Efect: intoarce numarul de octeti pe care tip_data sau valoarea rezultata din calculul expresie il ocupa in memorie. expresie_2. /. ++. < . expresie_n Efect:-se evalueaza expresie_1 -se evalueaza expresie_2 ……………………………. C.2. cout<<a<<” “<<b<<” “<<c<<” “<<d<<endl.Limbajului C++ . c=(float)a/b--. Ex:………………….

2.1. instr_1. …… instr_n.Instructiunea liniara. D.secventa de instructiuni in care fiecare instructiune se executa dupa executia celei anterioare.4.Instructiunea vida-lipsa unei instructiuni care intra in sintaxa unei instructiuni de control (ex: if. sa executam mai multe instructiuni => este interpretata ca o singura instructiune.}.. instr_2..daca conditia este adevarata pas3 altfel pas4 pas3. else instr2.while. Schema logica Limbajul C++ Efect: pas1.se evalueaza conditie pas2.Instructiuni C++ D.3.se executa instr1 pas4.else. for… etc.este pusa in evidenta cu {….Limbajului C++ . D.). instr_3.informatica Gabriela Gligor D.se executa instr2 11 . D.Suport de curs pentru clasele 9-11. Nota: Este folosita in cazul instructiunilor de control cand dorim. do. ca in loc de instructiunea din sintaxa. profil matematica-informatica prof.Instructiunea compusa.Instructiunea alternativa simpla Pseudocod daca conditie atunci actiune1 altfel actiune2 if (conditie) instr1.

Ex: Programul afiseaza modulul unui numar intreg.Un caz particular al instructiunii if este. #include <iostream.cin>>x. } 12 . b=x. } 3.Suport de curs pentru clasele 9-11. } 2. profil matematica-informatica prof. #include <iostream. else cout<<”nr..b. par”. } else { ……….h> void main() { int n.se foloseste instructiunea compusa.x. Ex:Programul verifica daca un numar intreg citit de la tastatura este un numar impar.Limbajului C++ . if (x<0) x=-x. cout<<”n=”. cand pe ramura de else nu mai avem instr2.h> void main() { int x. cout<<”x=”. if(conditie) instr1. if (conditie) { ……. a=b. cout<<”a=”.informatica Gabriela Gligor Obs: 1.In cazul in care in loc de instr1 sau instr2 este nevoie sa se execute mai multe instructiuni.cin>>b. citit de la tastatura.h> void main() { int a.. if (n%2) // if(n%2!=0) cout<<”nr. cout<<”b=”. cout<<”modulul=”<<x. #include <iostream. if(b<a) { x=a.cin>>a.impar”. } Ex:Programul afiseaza in ordine crescatoare doua numere citite de la tastatura.In cazul in care in conditie se testeaza daca o valoare este diferita de 0(adica 1-true) conditia poate fi scrisa condensat.cin>>n.

instructiunea urmatoare dupa switch. else if(conditie2) instr21.Instructiunea alternativa generalizata(cu mai multe variante) Pseudocod in caz ca expresie cazul const_1: actiune_1.Uneori pentru a rezolva o problema se pot folosi instructiuni if imbricate.Limbajului C++ . daca expr_num=const_i atunci se executa instr_i si apoi salt pas_n+2 altfel pas_i+1 ………………………………………………………………. altfel actiune_n+1. break. pas_i.. daca expr_num=const_1 atunci se executa instr_1 si apoi salt pas_n+2 altfel pas_2 pas_2. ……………………………… case const_n: instr_n. ……………………………… case const_i: instr_i. pas_n. se executa instr_n+1 pas_n+2 pas_n+2. if(conditie1) instr1.. profil matematica-informatica prof. case const_2: instr_2. daca expr_num=const_2 atunci se executa instr_2 si apoi salt pas_n+2 altfel pas_3 ………………………………………………………………. cazul const_n: actiune_n. break. ………………………. ] } Schema logica Efect: pas_1. else if(conditie3) instr31.case 13 .Suport de curs pentru clasele 9-11. break. break. …………………………. sfarsit in caz ca Limbajul C++ switch(expr_num) { case const_1: instr_1.. [default: instr_n+1. daca expr_num=const_n atunci se executa instr_n si apoi salt pas_n+2 altfel pas_n+1 pas_n+1. cazul const_2: actiune_2.informatica Gabriela Gligor 4. cazul const_i: actiune_i. else ……… D5.

#include <iostream. break. 4. 3. mesajul “alt caracter”. switch(c) { case ‘1’: case ‘3’: cout<<a+b. case 2: cout<<2<<’ ‘.Limbajului C++ . default: cout<<”ati ales alt numar”.cin>>b. int a. Ex: #include <iostream. .h> Se observa ca: void main() -daca n=3. cout<<”c (1. case ‘2’: case ‘4’:cout<<a-b. 2..case se poate scrie folosind instructiunile if imbricate (vezi tabelul echivalenta instructiunilor in limbajul C++). se continua executia instructiunii switch. break.b.h> Se observa ca atunci cand: void main() . case 1: cout<<1<<’ ‘.c nu este nici una din valorile date se afiseaza char c. } } 5.2 sau 3 )sau un mesaj corespunzator in caz contrar.2.Instructiunea atasata acestei etichete se executa numai daca nu a fost indeplinit nici un caz anterior. ceea ce va determina executia int n.In cazul in care lipseste instructiunea break..Instructiunea break.3 sau 4)=”. profil matematica-informatica prof.b. Ex: #include <iostream. Ex:Sa se afiseaze pe ecran numarul tastat(1. cout<<”b=”. celorlalte instructiuni pana intalneste primul break. acestea se vor scrie succesiv.case cu urmatoarele instructiuni pana la intalnirea primei instructiuni break.cin>>a.2. pe ecran se va afisa:3 2 1deoarece { lipseste break.informatica Gabriela Gligor Obs: 1. 14 . default: cout<<”alt caracter”. sau pana la intalnirea separatorului } care inchide blocul instructiunii switch…case. -daca n=2 se afiseaza: 2 1 switch(n) -daca n=1 se afiseaza:1 { case 3: cout<<3<<’ ‘. este oligatorie si are rolul de a intrerupe executia instructiunii switch…case si de a trece la urmatoarea instructiune din program.Toate constantele corespunzatoare cazurilor (const_i) trebuie sa fie diferite intre ele. cout<<”n (1. { .cin>>n. } } 6.c=’1’ sau c=’3’ se afiseaza suma a+b.h> void main() { int a. cout<<”a=”.Eticheta default este optionala(poate sa lipseasca).c=’2’ sau c=’4’ se afiseaza diferenta a-b.Orice instructiune switch….sau 3)=”. break.cin>>c.In cazul in care exista mai multe cazuri pentru care se executa aceeasi instructiune.Suport de curs pentru clasele 9-11.

6. else cout<<”alt caracter”.Se numeste instructiune repetitiva cu test initial deoarece verificarea conditiei se face inaintea executiei instructiunii. cout<<”b=”. 3. cout<<”c (1.Limbajului C++ .Instructiunea repetitiva cu test initial (while). else if (c= =’2’ || c= =’4’) cout<<a-b. 4.Daca dupa un anumit numar de pasi conditia nu devine falsa spunem ca s-a intrat in bucla infinita. 5.cin>>c. } D.Numarul minim de executii a instructiunii este 0 atunci cand din start conditia este falsa. profil matematica-informatica prof. In cazul in care in loc de instructiune este necesar a fi folosite mai multe instructiuni se introduce instructiunea compusa.daca conditia este adevarata atunci pas2 altfel pas3 pas2. Schema logica Efect: pas1. } 15 . 2. while(conditie) { ……….1.cin>>b. cout<<”a=”. Pseudocod cat timp conditie executa instructiune Limbajul C++ while (conditie) instructiune. Obs.se incheie executia lui while si trece la instructiunea urmatoare. if (c= =’1’ || c= =’3’ ) cout<<a+b.cin>>a.Se numeste instructiune repetitiva pentru ca se executa repetat instructiunea cat timp conditia este adevarata.informatica Gabriela Gligor char c.2.Suport de curs pentru clasele 9-11.3 sau 4)=”.se executa instructiunea pas1 pas3.

Limbajului C++ . expr3. expr1. //lipseste expr1(initializarile) for(expr1.expr2. Instructiunea repetitiva cu test initial (for) Limbajul C++ for(expr1.expr2. ……..a/=10). sunt obligatorii chiar daca lipsesc expresiile si instructiunea.expr2..daca expr2 este adevarata atunci =>pas3 altfel pas5 pas3. a!=0.se evalueaza epr1 => pas2 pas2.Cazuri particulare: for(expr1. 16 . s+=a%10. Efect: pas1. 3. //lipseste expr2 => ciclu infinit 5.expr3) instr..se evalueaza expr3 =>pas2 pas5. . } Schema logica Unde: expr1(pentru intializare) este starea initiala dinaintea primei executii a instructiunii(starea de pornire). 2. profil matematica-informatica prof.expr3) instr.expr3) . //lipseste expr3 for( .informatica Gabriela Gligor D. expr2(pentru testare)este conditia in functie de care se executa sau nu instructiunea(ciclul). ) instr. expr3(pentru modificare)determina schimbarea starii curente. for(int i=1.expr3) instr. 6.expr2.7.In expr1 puteti sa declarati variabile si sa le initializati. Ex: ……….Suport de curs pentru clasele 9-11.Instructiunea for este tot o instructiune repetitiva cu test initial la fel ca si instructiunea while. //lipseste instr(deci avem instructiune vida) for(expr1.s=0.). 4.se executa instructiunea =>pas4 pas4.se incheie ciclul for si se trece la urmatoarea instructiune din program. while(expr2) { instr.Atunci cand expr2 nu este niciodata falsa spunem ca avem ciclu infinit.Caracterele (. Obs: 1.Avantajul intructiunii for fata de instructiunea while este ca permite o scriere mai condensata.i++.

. 5. while (conditie).expr3) { ……… } D.informatica Gabriela Gligor 7.while) Pseudocod executa actiune cat timp conditie do instructiune.daca conditia este adevarata atunci pas1 altfel pas3 pas3.insa trebuie avuta in vedere diferenta care apare datorita pozitiei testului care poate influenta rezultatul final.while si se trece la urmatoarea instructiune din program. 2.Limbajului C++ . Obs.se iese din ciclul do.Suport de curs pentru clasele 9-11.. instr.while presupune studierea cazului particular conditie=fals (vezi tabelul echivalenta instructiunilor in limbajul C++). do { …. Daca dupa un anumit numar de pasi conditia nu devine falsa spunem ca s-a intrat in bucla infinita. 4. Instructiunea repetitiva cu test final (do…. 1.In cazul in care in loc de instructiune este necesar a fi folosite mai multe instructiuni se introduce instructiunea compusa. for(expr1. contor<=vf.Instructiunile repetitive pot fi implemenate atat cu instructiunea while cat si cu instructiunea do.. contor+=v) actiune.. In cazul in care in loc de instructiune este necesar a fi folosite mai multe instructiuni se introduce instructiunea compusa.vf [pas v] executa for(contor=vi. 8.Numarul minim de executii a instructiunii do…while este 1. Schema logica Limbajul C++ Efect: pas1.Transformarea unei instructiuni while in do. 6.Deoarece in limbajul C++ nu exista instructiunea repetitiva cu numar cunoscut de pasi aceasta se implementeaza astfel: Pseudocod Limbajul C++ pentru contor=vi.Instructiunea repetitiva do…while se numeste cu test final deoarece verificarea conditiei se face dupa executia instructiunii. profil matematica-informatica prof.se executa instructiunea =>pas2 pas2. 17 .expr2. } while(conditie).8. 3.while.

while(cond). ……………………………… case const_i: instr_i.Suport de curs pentru clasele 9-11. expr3.expr3) instr.expr2. break. else if(expr_num==const_2) instr_2. else ………………. break. while while(cond) instr. else nstr_n+1. while(cond). [default: instr_n+1. ] } if if(expr_num==const_1) instr_1.. do…while if(cond) do instr. while instr. do…while do instr. } for for(expr1.informatica Gabriela Gligor Echivalenta instructiunilor in limbajul C++ switch switch(expr_num) { case const_1: instr_1.Limbajului C++ . else if(expr_num==const_n) instr_n. 18 . case const_2: instr_2. break. while(cond) instr. break. while(expr2) { instr. profil matematica-informatica prof. ……………………………… case const_n: instr_n. while expr1.

4) =>16 pow10(2) =>100 sin(0.479426 cos(0.5) =>0.Suport de curs pentru clasele 9-11.7) =>-3 ceil(11.5) =>12 ceil(-2.7) =>-2 sqrt(9) =>3 pow(2.y) pow10(x) powl10(x) sin(x) cos(x) tan(x) Cel mai apropiat numar intreg mai mic sau egal cu x Cel mai apropiat numar intreg mai mare sau egal cu x Radical de ordinl 2 din x ( x) x la puterea y (xy) 10 la puterea x (10x) Sinus de x Cosinus de x Tangenta de x 19 .877583 tan(0. profil matematica-informatica prof.h Functia cin cout clrscr() abs(x) labs(x) fabs(x) floor(x) floorl(x) ceil(x) ceill(x) Tip rezultat int long double double long double double long double double long double double long double double long double double double double Tip parametri int long double double long double double long double double long double double long double double long double double double double Furnizeaza Citire de la tastatura Afisare pe monitor Sterge ecranul Modulul lui x ( |x| ) Exemplu cin>>a.h sqrt(x) sqrtl(x) pow(x.5) =>0. cout<<23.h conio.546302 math.informatica Gabriela Gligor Functii standard Biblioteca iostream.Limbajului C++ . abs(-12) => 12 abs(12) =>12 fabs(-1.y) powl(x.5) =>0.2) =>1.2 floor(11. clrscr().5) =>11 floor(-2.

Deschiderea unui fisier . Crearea unui fisier nou : File => New Obs. Nota.. urmarirea variabilelor din program prin intermediul ferestrei Watch: Window => Watch sau Debug => Add watch. Verificarea sintactica a programului : Compile => Compile (Alt+F9) sau Make (F9) Obs. => un alt nume_fisier 5.informatica Gabriela Gligor Mediul de programare C++ Editarea unui program sursa presupune parcurgerea urmatorilor pasi : 1.exe 2. Editarea programului 6. Daca in program exista o instructiune care cicleaza la infinit.Parcurgand fiecare eroare.cpp presupune lansarea in executie a programului BorlandC si : File => Open => nume_fisier dorit 4. 2. 7. se va opri executia programului cu Ctrl+Break. Salvarea fisierului : File => Save => nume_fisier Nota.Limbajului C++ . Lansarea in executie/depanarea programului • Lansarea in executie presupune executia programului si vizualizarea rezultatelor: Run => Run(Ctrl+F9) Nota.Daca doriti sa faceti o copie a fisierului vostru atunci dati : File=> Save as.. profil matematica-informatica prof. ne plaseaza la instructiunea din program care contine eroarea semnalata. Se vor parcurge urmatorii pasi : a.\Bin\bc. 1.. => Edit watch (Ctrl+F7) Nota. Schimbarea directorului curent : File => Change dir. Se vor insera in Watch toate variabilele din program 20 . => z : 3.Suport de curs pentru clasele 9-11.. • Depanarea programului presupune executia programului pas cu pas(instructiune cu instructiune) in scopul identificarii erorilor semantice(de programare). Lansarea programului BorlandC cu ajutorul fisierului . compilatorul.Compilarea programului cu F9 presupune afisarea unui mesaj : • Succes Press any key => programul este corect sintactic => se poate lansa in executie • Error Press any key => programul este incorect sintactic => se vor afisa erorile intr-o fereastra Message. De cate ori doriti sa salvati noile modificari de editare dati File => Save sau F2.

lansarea depanarii pas cu pas : Run => Step over (F8) Nota.In cazul in care stim sigur ca programul functioneaza corect pana intr-un anumit punct se poate rula rapid programul pana in acel punct cu: Run => Go to cursor (F4) dupa care se poate continua cu rularea pas cu pas a programului(F8). 1.informatica Gabriela Gligor b. profil matematica-informatica prof.Suport de curs pentru clasele 9-11.Limbajului C++ . In cazul in care dorim sa abandonam depanarea programului pasa cu pas : Run => Program reset (Ctrl+F2) 21 . 2.

Sign up to vote on this title
UsefulNot useful