Sunteți pe pagina 1din 5

Elemente de bază ale limbajului C++

  La începutul anilor 70 a apărut limbajul C, creația lui Dennis Ritchie și Brian Kernighan. Limbajul C++
- creația lui Bjarne Stroustrup - este o extensie a limbajului C și permite programarea pe obiecte.
Un program scris într-un limbaj de programare este alcătuit din instrucțiuni. Instrucțiunile limbajului
sunt formate din cuvinte. Cuvintele sunt alcătuite din caractere.

Vocabularul limbajului C++ este format din următoarele caractere:


1) literele mari și mici ale alfabetului englez
2) cifrele sistemului de numerație în baza 10
3) caractere speciale: + - * / % = ; < > , [ ] { } # $ _

Instrucțiunile limbajului se incheie cu simbolul ; si sunt de două tipuri:


1) executabile care comandă îndeplinirea unei operații efective.Exemplu: citire,scriere,atribuire.
2) neexecutabile denumite și instrucțiuni de declarare care descriu caracteristicile datelor utilizate

C1.Structura unui program C++

#include<iostream> // directive preprocesor


using namespace std; // specifica utilizarea spatiului de nume standard
int main() { // inceputul programului
int a, b; // instructiune de declarare
cin>>a>>b; // instructiuni executabile
cout<<”Suma lor este “<<a+b;
} // sfarsitul programului

directivă preprocesor (indicată de simbolul #) - determină includerea în fişierul sursă a fişierului header cu


numele iostream. Acest header permite realizarea citirii de la tastatura si afişării pe monitor.
Ceea ce urmează după simbolul //, până la sfărşitul liniei, este un comentariu, care va fi ignorat de către
compilator. Dacă vrem să folosim un comentariu care cuprinde mai multe linii, vom delimita începutul acestuia
prin simbolulurile /*, iar sfârşitul - prin */ .

C2.Tipuri de date standard

Un tip de date este definit prin :


 o multime de valori
 o regula de codificare ( de reprezentare in memorie )
 o multime de operatii definite pe multimea valorilor
Tipul standard este tipul de date cunoscut de limbaj fara a fi definit in cadrul programului
Tipurile de date standard sunt: intregi si reale
Fiecarui tip de date i se atribuie un nume. Numele este un cuvant cheie.
Tipuri intregi: char, short, unsigned short, int, unsigned int, long, unsigned long, long long, unsigned long long
Tipuri reale: float, double, long double
Pentru afisarea dimensiunii memoriei ocupate si a limitelor specific fiecarui tip de date se utilizeaza fisierul
header limits si urmatoarele functii:
sizeof(tip_date) , numeric_limits<tip_date>::min() , numeric_limits<tip_date>::max()
Exemplu:
#include<iostream>
#include<limits>
using namespace std;
int main(){
cout<<sizeof(double)<<endl;
cout<<numeric_limits<double>::min()<<" "<<numeric_limits<double>::max();
}

C3.Constante
Constantele sunt valori fixe, care nu se pot modifica pe parcursul executarii programului.
Tipul constantelor este determinat de compilator pe baza valorii si a sintaxei utilizate.
Intregi : zecimale-34, -453 ; octale- 023 ( 19 in zecimal) ; hexazecimale- 0x3A (58 in zecimal)
Reale: 2.45 , -347.90 , 2.3e-12 ( Atentie! punct zecimal nu virgula )
Caracter: ‘a’, ‘x’, ‘\141’ (secventa escape) 141 reprezinta codul ASCII al caracterului
Tabela ASCII (American Standard Code for Information Interchange ) contine 256 de coduri ( 0 …255)
Siruri de caractere: “abc”
Unei constante i se poate atribui un nume in doua moduri:
const short n=1, m=n+1 ( folosind cuvantul cheie const )
#define pi 3.14 (folosind directiva preprocessor define)
Exemplu:
#include<iostream>
#define pi 3.14
using namespace std;
int main(){
const int n=1, m=n+1;
enum an {a, b=2015,c};
cout<<pi<<' '<<n<<' '<<m<<' '<<a<<' '<<b<<' '<<c;
} Se va afisa: 3.14 1 2 0 2015 2016
C4.Variabile
Variabilele sunt date ale caror valori se pot modifica pe parcursul executarii programului.
Numele unei variabile este un identificator.
Identificatorul poate contine doar: litere, cifre si _(underscore) , poate incepe cu litera sau _ .
C++ este un limbaj case- sensitive, adica face distinctie intre litere mici sau mari.
Exemplu: var este diferit de Var.
O instructiune declarativa poate fi pusa oriunde in corpul programului, cu conditia sa se afle inaintea utilizarii
variabilei declarate.
Intr-o instructiune declarativa se pot declara mai multe variabile de acelasi tip.
In momentul declararii variabilele pot fi initializate.
Exemplu:
#include<iostream>
using namespace std;
int main(){
int nr=0;
float valoare_curenta=7.5;
nr++; valoare_curenta=valoare_curenta+nr;
cout<<valoare_curenta<<' '<<nr;
} Se va afisa: 8.5 1

C5.Instructiuni de citire si scriere


Citire cin>>var1>>var2>>…>>varn;
Instructiunea de citire se incheie la intalnirea caracterului spatiu sau <enter> sau daca exista o neconcordanta
intre tipul variabilei si valoarea introdusa.
Exemplu1:
#include<iostream>
using namespace std;
int main(){
int a,b,c; cin>>a>>b>>c;
cout<<a<<' '<<b<<' '<<c;
} Daca se introduce sirul: 23 4r 6 <enter> se va afisa 23 4 4272976 ( citirea s-a incheiat la intalnirea
literei r )
Exemplul2:
#include<iostream>
using namespace std;
int main(){
int a,b; char c; cin>>a>>b>>c;
cout<<a<<' '<<b<<' '<<c;
} Daca se introduce sirul: 23 4r 6<enter> se va afisa 23 4 r ( a fost ignorata valoarea 6, deoarece toate
variabilele au fost citite cu succes)
De retinut: caracterul spatiu (‘ ‘) nu poate fi citit.
Scriere cout<<var1<<var2<<…<<varn;
Se afiseaza pe ecran valorile variabilelor ( constantelor sau valorile unor expresii). Nu se adauga spatii intre ele.
Cursorul ramane dupa ultimul caracter afisat.
Pentru a muta cursorul pe randul urmator se utilizeaza cout<<endl; sau cout<<’\n’;
In cazul variabilelor de tip caracter , care sunt initializate cu valori numerice se afiseaza caracterul cu codul
ascii egal cu valoarea numerica respectiva.
Exemplul3:
#include<iostream>
using namespace std;
int main(){
char a=49;
cout<<a;
} Se va afisa 1 ( codul ascii al caracterului 1 este 49)
C6.Operatori
 Aritmetici:+, -, *, /, %
Operatorul div [ / ] se comporta diferit in functie de tipul operanzilor: daca ambii sunt intregi
rezultataul este tot intreg deci catul , altfel rezultatul este real
Operatorul mod [ %] se utilizeaza numai cu operanzi intregi
 Relationali: <, <=, >, >=. = = , !=
Expresiile relationale au ca rezultat adevarat(1) sau fals (0)
In C++ orice valoare diferita de zero este considerate adevarata si orice valoare zero este falsa
 Logici: !(not) , && (and), || (or)
 Incrementare / Decrementare: ++, -- (postfixati a++, a-- si prefixati ++a, --a)
 Operatorul de atribuire =
int a,b,c,d=2;
a=b=c=d; // toate valorile primesc valoarea 2, valoarea expresiei este 2
 Operatorul , (virgula)
int x, y, z;
x=2, y=3, z=7 ; // valoarea expresiei este 7
 Operatorul conditional ? : <conditie> ? expresie_A :expresie_F
int a, b;
a=b=2;
a==b ? cout<<”Sunt egale” : cout<<”Nu sut egale” // valoarea expresiei “Sunt egale”
 Conversie explicita de tip: ( tip)
int a=3, b=2;
cout<< a/b<<endl; // se afiseaza 1, catul impartiri lui a la b
cout<<(float) a/b; // se afiseaza 1.5
C7.Expresii
Expresia este o succesiune valida de constante, variabile , operatori si / sau paranteze rotunde
Pentru evaluarea unei expresii se are in vedere prioritatea operatorilor. Parantezele rotunde pot mari
prioritatea.
Tipul unei expresii este dat de tipul comun al variabilelor si/ sau constantelor care apar in expresie sau de
tipul cu multimea valorilor cea mai mare, daca variabilelor si/ sau constantele sunt diferite.

Prioritatea operatorilor

Nr. Clasă de operatori Operatori Asociativitate


1. Primari () [] . ->  :: de la stânga la dreapta
2. Unari ! ~ ++ -- sizeof  (tip) de la stânga la dreapta
-(unar)  *(deferenţiere) &(referenţiere)
3. Multiplicativi *     /     % de la stânga la dreapta
4. Aditivi +     - de la stânga la dreapta
5. Deplasare pe bit <<     >> de la stânga la dreapta
6. Relaţionali <    <=    >    >= de la stânga la dreapta
7. De egalitate ==     != de la stânga la dreapta
8.  Logici pe bit & (ŞI logic pe bit) de la stânga la dreapta
9.   ^ (XOR pe bit) de la stânga la dreapta
10.   | (SAU logic pe bit) de la stânga la dreapta
11.  Logici && de la stânga la dreapta
12.   || de la stânga la dreapta
13. Condiţional ?: de la dreapta la stânga
14. De atribuire =   +=   -=   *=    %= de la dreapta la stânga
&=  ^=  |=  <<=  >>=
15. Virgulă , de la stânga la dreapta
Biblioteca cmath ( functii matematice uzuale )
abs – functia modul ; ceil – functia care rotunjeste ; floor – functia care trunchiaza ; sqrt – functia radical ;
pow – functia pentru ridicare la putere ;
Biblioteca iomanip ( pentru a afisa un numar cu format )
Afisarea unui numar real cu urmatorul format: 8 caractere in total, din care 2 la partea zecimala
float x=123.3456;
cout<<”**”<<setw(8)<<fixed<<setprecision(2)<<x<<”**”; se va afisa ** 123.34**

S-ar putea să vă placă și