Documente Academic
Documente Profesional
Documente Cultură
Capitolul I
Noțiuni de bază în programare
Capitolul II
Limbaje de programare
Orice limbaj constituie un mijloc de comunicare între două entități: emițătorul și
receptorul.
În general limbajele sunt de două tipuri:
• limbaje naturale;
• limbaje artificiale.
Limbajele naturale s-au constituit de-a lungul timpului în procesul conlucrării
membrilor societății.
Limbajele artificiale au fost şi sunt create pentru comunicarea într-un
domeniu particular de activitate.
Elementele de limbaj
Limbajul C++ este caracterizat de:
sintaxă – este formată din totalitatea regulilor de scriere corectă a
programelor;
semantică – reprezintă semnificaţia construcţiilor corecte din punct de
vedere sintactic;
vocabular – este format din totalitatea cuvintelor care pot fi folosite într- un
program.
Vocabularul limbajului C++ este format din:
• setul de caractere;
• identificatori;
• cuvinte cheie;
• comentarii;
• separatori.
Setul de caractere
Setul de caractere utilizat pentru scrierea programelor C++ este setul de
caractere al codului ASCII.
Comentarii
Pentru ca un program să fie uşor de înţeles se folosesc comentariile. Acestea
sunt texte care vor fi ignorate de compilator, dar au rolul de a explicita pentru
programator anumite secvenţe de program.
// comentariu
sau
/* comentariu
comentariu
.......*/
Tipuri simple de date (standard)
Prin date se înţelege, în general, tot ceea ce este prelucrat de un
calculator. Fiecare dată are un anumit tip.
Un tip de date defineşte:
Constantele
• constanta are un tip și o valoare fixă pe toată durata execuției programului
care o conține;
• tipul și valoarea unei constante se definesc prin caracterele care compun
constanta respectivă.
Constantele se clasifică astfel:
• numerice: - întregi
- reale
• caracter
şir de caractere
Declararea constantelor
Sintaxa:
const [tip_dată] nume=valoare;
unde:
• const este un cuvânt cheie;
• tip_dată precizează tipul constantei (poate lipsi);
• nume este identificatorul constantei;
• valoare este valoarea constantei.
Variabile
• nume asociat cu una sau mai multe locaţii de memorie;
• valoarea păstrată în aceste locaţii se poate modifica în cursul execuţiei
programului;
• trebuie declarate – se specifică tipul şi numele.
Declararea variabilelor
Sintaxa:
tip_dată nume;
unde:
• tip_dată precizează tipul datei memorate în variabila de memorie;
• nume este identificatorul variabilei de memorie.
Operatori şi expresii
Operatori
Operatorii sunt caractere speciale care indică operaţia care se efectuează în
cadrul unui program.
Clasificarea operatorilor:
• operatori aritmetici;
• operatori relaţionali;
• operatori de egalitate;
• operatori de incrementare şi decrementare;
• operatori logici;
• operatori de atribuire;
• operatorul „,‟ (virgulă);
• operatorul de conversie explicită.
Operatori aritmetici
• - minus (unar) – pentru semn
• + plus (unar) – pentru semn
• + (binar) – adunare
• - (binar) – scădere
• * (binar) – înmulţire
• / (binar) – împărţire întreagă
• % (binar) – restul împărţirii întregi
Operatori de egalitate
== egal
!= diferit
Sintaxa: cin>>nume_var;
sau cin>>nume_var1>>nume_var2 >> … >>nume_varn;
Instrucțiuni
Instrucțiunea expresie
Instrucțiunea expresie este cel mai frecvent folosit tip de instrucțiune dintr-un
program C++. O expresie devine instrucțiune dacă este urmată de ;.
Sintaxa:
Expresie;
Exemple:
x = 2;
x ++;
cout << x;
Instrucțiunea declarativă
Printr-o instrucțiune declarativă se pot declara identificatori de un anumit tip.
Identificatorii pot fi variabile, dar vom vedea mai târziu că pot fi și funcții.
Sintaxa este:
Tip_de_date Lista_identificatori;
unde
Exemple:
int x, y , z;
double a;
Instrucțiunea compusă
Instrucțiunea compusă sau blocul este o grupare de declarații și instrucțiuni închise
între acolade {}. Ele au fost introduse cu scopul de a folosi mai multe instrucțiuni
acolo unde sintaxa cere o singură instrucțiune. Instrucţiunea compusă sau blocul
sunt echivalente sintactic cu o singură instrucţiune.
Exemple:
#include <iostream>
using namespace std;
int main(){
int x = 5;
{
int x = 7;
cout << x << endl; // se va afisa 7
}
cout << x << endl; // se va afisa 5
return 0;
}
Instrucțiunea if
Instrucțiunea if este cea mai utilizată structură alternativă.
Sintaxa
Instrucțiunea if are două forme:
Varianta 1
Varianta 2
if ( Expresie ) Instrucțiune1
Mod de execuție
Expresia trebuie să fie de tip bool sau să poată fi convertită la bool. Conversia se
face astfel:
Varianta 1
se evaluează Expresia, care este de tip bool sau poate fi convertită la bool
dacă valoarea ei este true
o se execută Instrucțiune1
o se continuă cu instrucțiunea care urmează după if
dacă valoare expresiei este false
o se execută Instrucțiune2
o se continuă cu instrucțiunea care urmează după if
Varianta 2
se evaluează Expresia
dacă valoarea ei este true
o se execută Instrucțiune1
o se continuă cu instrucțiunea care urmează după if
dacă valoare expresiei este false
o se continuă cu instrucțiunea care urmează după if
Observații
Instrucțiunea switch
Instrucțiunea switch permite executarea unor instrucțiuni, în funcție de egalitatea unei
expresii cu anumite valori numerice constante:
Sintaxa
switch ( Expresie ) { case Constanta_1: Grup_Instructiuni_1 break; case
Constanta_2: Grup_Instructiuni_2 break; … case Constanta_N: Grup_Instructiuni_N
break; default: Grup_Instructiuni_default break; }
Mod de execuție
se evaluează Expresie
dacă valoarea expresiei este egală cu una dintre valorile constante din
clauzele case, se execută instrucțiunile din grupul de instrucțiuni
corespunzător, apoi se trece la instrucțiunea de după switch
dacă valoarea expresiei nu este egală cu niciuna dintre valorile constante din
clauzele case, se verifică existența clauzei default;
o dacă există clauza default, se execută instrucțiunile din grupul de
instrucțiuni corespunzător clauzei default, apoi se trece la instrucțiunea
de după switch
o dacă nu există clauza default, se trece la instrucțiunea de după switch
Observații
switch(n)
{
case 1:
cout << "n = 1\n";
case 2:
cout << "n = 2\n";
break;
case 3:
cout << "n = 3\n";
break;
}
n=1
n=2
Instrucţiunea break
Instrucţiunea break se foloseşte în instrucţiunea decizională switch sau în
instrucţiunile repetitive. Sintaxa: break;
Efect:
• determină ieşirea necondiţionată din instrucţiunea în care apare (switch, while, do
while sau for).
Sintaxa
while (Expresie) Instructiune;
Mod de execuție
Observații
Exemplu
Următorul program citește valoarea variabilei n și calculează suma
primelor n numere naturale.
Instrucțiunea do ... while este o structură repetitivă cu număr necunoscut de
pași și test final.
Sintaxa
do Instructiune while ( Expresie );
Mod de execuție
1. Se execută Instructiune
2. Se evaluează Expresie. Rezultatul se convertește la bool.
3. Dacă rezultatul este true, se reia pasul 1.
4. Dacă rezultatul este false, se trece la instrucțiunea de după do ... while.
Observații
Sintaxa
for (Expresie_de_Initializare ; Expresie_de_Testare ; Expresie_de_Continuare)
Instructiune
Mod de execuție
1. Se evaluează Expresie_de_Initializare
2. Se evaluează Expresie_de_Testare. Rezultatul se convertește la bool.
3. Dacă rezultatul este true:
o Se execută Instructiune.
o Se evaluează Expresie_de_Continuare.
o Se revine la pasul 2.
4. Dacă rezultatul este false, se trece la instrucțiunea de după for.
Observații
Sintaxa
break;
Mod de execuție
Am văzut semnificația instrucțiunii break atunci când apare în
instrucțiunea switch.
Sintaxa
continue;
Mod de execuție
Efectul instrucțiunii continue este ignorarea instrucțiunilor care îi urmează în
corpul ciclului și revenirea la evaluarea Expresiei, în cazul lui while, do ...
while, respectiv la evaluarea Expresiei_de_Continuare, în cazul lui for.