C++

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare

C++ (pronunțat în română "C plus plus" și în engleză "si plas plas") este un limbaj de programare general, compilat. Este un limbaj multi-paradigmă, cu verificarea statică a tipului variabilelor ce suportă programare procedurală, abstractizare a datelor, programare orientată pe obiecte. În anii 1990, C++ a devenit unul din cele mai populare limbaje de programare comerciale, rămânând astfel până azi[1].

Bjarne Stroustrup de la Bell Labs a dezvoltat C++ (inițial denumit C cu clase) în anii 1980, ca o serie de îmbunătățiri ale limbajului C. Acestea au început cu adăugarea noțiunii de clase, apoi de funcții virtuale, suprascrierea operatorilor, moștenire multiplă, șabloane (engleză template) și excepții. Limbajul de programare C++ a fost standardizat în 1998 ca și ISO 14882:1998, versiunea curentă fiind din 2003, ISO 14882:2003. Următoarea versiune standard, cunoscută informal ca C++0x, este în lucru.

Istoricul C++[modificare | modificare sursă]

Bjarne Stroustrup, creatorul limbajului C++.

Stroustrup a început să lucreze la C cu clase în 1979. Ideea creării unui nou limbaj a venit din experiența de programare pentru pregătirea tezei sale de doctorat. Stroustrup a descoperit că Simula avea facilități foarte utile pentru proiecte mari, însă era prea lent, în timp ce BCPL era rapid, însă nu era de nivel înalt și era nepotrivit pentru proiecte mari. Când a început să lucreze pentru Bell Labs, avea sarcina de a analiza nucleul UNIX referitor la calcul distribuit. Amintindu-și de experiența sa din perioada lucrării de doctorat, Stroustrup a început să îmbunătățească C cu facilități asemănătoare Simula. C a fost ales deoarece era rapid și portabil. La început facilitățile adaugate C-ului au fost clase, clase derivate, verificare a tipului, inline și argumente cu valori implicite.

În timp ce Stroustrup a proiectat C cu clase (mai apoi C++), a scris de asemenea și Cfront, un compilator care genera cod sursă C din cod C cu clase. Prima lansare comercială a fost în 1985.

În 1982, numele limbajului a fost schimbat de la C cu clase la C++. Au fost adaugate noi facilități, inclusiv funcții virtuale, supraîncărcarea operatorilor și a functiilor, referințe, constante, alocare dinamică, un control al tipului mai puternic și noua variantă de comentariu pe un singur rând (liniile care încep cu caracterele '//').

În 1985 a fost lansată prima ediție a cărții "The C++ Programming Language" (Limbajul de programare C++), oferind informații importante despre limbaj, care încă nu era un standard oficial. În 1989 a fost lansată versiunea 2.0 a C++. Au apărut acum moștenirea multiplă, clase abstracte, funcții statice, funcții constante și membri protected. În 1990 o altă carte a fost lansată, oferind suport pentru standarde viitoare. Ultimele adăugări includeau template-uri, excepții, spații de nume (namespace-uri) și tipul boolean.

O dată cu evoluția limbajului C++, a evoluat și o bibliotecă standard. Prima adăugire a fost biblioteca de intrări/ieșiri (I/O stream), care oferea facilități pentru a înlocui funcțiile tradiționale C cum ar fi printf și scanf. Mai târziu, printre cele mai semnificative adăugari la biblioteca standard a fost STL (Standard Template Library) (Biblioteca de formate standard).

După ani de lucru, un comitet ANSI-ISO a standardizat C++ în 1998 (ISO/IEC 14882:1998).

Exemple[modificare | modificare sursă]

Program care afiseaza textul "Hello World":

#include <iostream>
 
using namespace std;
 
int main() {
    cout << "Hello World" << endl;
    return 0;
}

Algoritmul lui Euclid prin impartiri:

#include<iostream.h>
 
using namespace std;
 
int main() {
    int a, b, r;
 
    cin >> a;
    cin >> b;
 
    r = a % b;
    while(r) {
        a = b;
        b = r;
        r = a % b;
    }
 
    cout << b << endl;
    return 0;
}


Citirea si afisarea unei matrici:

#include<iostream>
 
using namespace std;
 
int main() {
	int a[10][10], i, j, n, m;
	cout << "Dati numarul de linii: ";
	cin >> n;
	cout << "Dati numarul de coloane: ";
	cin >> m;
	for(i = 0; i < n; i++) {
		for(j = 0; j < m; j++) {
			cout << "Dati numerele: ";
			cin >> a[i][j];
		}
	}
	cout << endl;
	cout << "Matricea este: ";
	cout << endl;
	for(i = 0; i < n; i++){
		for(j = 0; j < m; j++)
			cout << a[i][j] << ' ';
		cout << endl;
	}
	return 0;
}

Alternativa citirii si afișării unei matrici folosind metoda while:

#include <iostream>
 
using namespace std;
 
int main() {
	int n,m,i=1,j;
	cout << "Dati numarul de linii: "; 
	cin >> n;
	cout << "Dati numarul de coloane: ";
	cin >> m;
 
	int a[n+1][m+1];
 
	while(i <= n) {
		j=1;
		while(j <= m) {
			cout << "Dati numerele: ";
			cin >> a[i][j];
			j++;
		}
		i++;
	}
 
	cout << endl;
	cout << "Matricea este: ";
	cout << endl;
 
	i=1;
	while(i <= n) {
		j=1;
		while(j <= m) {
			cout << a[i][j] << ' ';
			j++;
		}
		cout << endl;
		i++;
	}
	return 0;
}

Aflarea celui mai mare divizor comun prin scăderi repetate:

#include<iostream.h>
 
using namespace std;
 
int main() {
    int a, b, c;
    cin >> a >> b;
    while(a != b) {
        if(a > b)
            a = a - b;
        else
            b = b - a;
       c = a;
    }
    cout << c << endl;
    return 0;
}

Vezi și[modificare | modificare sursă]

Note[modificare | modificare sursă]

  1. ^ TIOBE Programming Community Index

Bibliografie[modificare | modificare sursă]

  • Doina Logofătu: Algoritmi fundamentali in C++. Aplicații, Ed. 1, Editura Polirom, Iași, 2007, ISBN 9734600939.