c++

32
ELEMENTELE DE BAZA ALE LIMBAJULUI C++ Limbajul C a aparut la inceputul anilor ’70, creat de dennis Ritchie si Brian Kernighan. Limbajul C++ este o extensie a limbajului C si a fost creat de Bjarne Stroustrup in scopul programarii orientate pe obiecte. Programele C / C++ sunt organizate sub forma de functii. O functie este o secventa de program care codifica un algoritm. De obicei, incercam sa scriem functii care rezolva o singura problema. De exemplu, fie problema : Se citesc de la tastatura n numere naturale. Sa se spuna cate perechi de numare citite consecutiv au cmmdc un numar prim. Ex: pentru n=7 si sirul de numere 16, 22, 15, 25, 100, 98, 7, se va afisa 4. Problema se poate rezolva luand cate 2 numere consecutive, afland cmmdc-ul lor si verificand daca acesta este prim. Rezolvarea se simplifica mult daca facem o functie care calculeaza cmmdc a doua numere si o alta care verifica daca un numar este prim. Un program C++ este asadar alcatuit din una sau mai multe functii, dintre care una este functia radacina main, care este obligatorie si cu care incepe executia oricarui program. Aceasta functie poate apela alte functii. Toate functiile folosite in program trebuie descrise in fisierele scrise de catre programator sau in fisierele header (Un fisier header este un fisier aflat in sistem sau creat de catre programator, care contine declaratii si definitii de functii si variabile). Un fisier header se invoca astfel : #include<fisier_header.h> Structura unui program in limbajul C++ Fisiere header main Funct ii Fisier sursa Program

Upload: tudor-ana

Post on 13-Sep-2015

216 views

Category:

Documents


4 download

DESCRIPTION

.

TRANSCRIPT

4

4

ELEMENTELE DE BAZA ALE LIMBAJULUI C++

Limbajul C a aparut la inceputul anilor 70, creat de dennis Ritchie si Brian Kernighan. Limbajul C++ este o extensie a limbajului C si a fost creat de Bjarne Stroustrup in scopul programarii orientate pe obiecte.

Programele C / C++ sunt organizate sub forma de functii. O functie este o secventa de program care codifica un algoritm. De obicei, incercam sa scriem functii care rezolva o singura problema.

De exemplu, fie problema: Se citesc de la tastatura n numere naturale. Sa se spuna cate perechi de numare citite consecutiv au cmmdc un numar prim.

Ex: pentru n=7 si sirul de numere 16, 22, 15, 25, 100, 98, 7, se va afisa 4.

Problema se poate rezolva luand cate 2 numere consecutive, afland cmmdc-ul lor si verificand daca acesta este prim. Rezolvarea se simplifica mult daca facem o functie care calculeaza cmmdc a doua numere si o alta care verifica daca un numar este prim.

Un program C++ este asadar alcatuit din una sau mai multe functii, dintre care una este functia radacina main, care este obligatorie si cu care incepe executia oricarui program. Aceasta functie poate apela alte functii. Toate functiile folosite in program trebuie descrise in fisierele scrise de catre programator sau in fisierele header (Un fisier header este un fisier aflat in sistem sau creat de catre programator, care contine declaratii si definitii de functii si variabile). Un fisier header se invoca astfel: #include

Cel mai simplu program C++ (care nu face nimic() este:

int main( )

{

return 0;

}

Acoladele au semnificatia de inceput functie si sfarsit functiesi constituie corpul functiei, in care se scriu instructiunile; main este numele functiei; intre parantezele rotunde se scriu, optional, anumiti parametri, care in acest caz lipsesc; void este tipul functiei (void=nici-un-tip), cu semnificatia ca functia nu intoarce nici un rezultat.

Observatii:

1. 1. Limbajul face distinctie intre literele mari si cele mici (spunem ca este case-sensitive).

2. 2. Nu are importanta plasarea cuvintelor pe linie, nici spatiile dintre ele. Dar, pentru lizibilitate, e bine sa existe o anumita aliniere a instructiunilor.

Vocabularul limbajuluiEste format din:

Setul de caractere

Literele mari si mici ale alfabetului englez (A Z, a z)

Cifre (0 9)

Caractere speciale (+ - * / = < > { } ( ) [ ] . ,:; # ^ _ si toate celelalte simboluri de pe tastatura)

Identificatori reprezinta succesiuni de litere, cifre si caracterul special _ , de lungime maxima 63 si care nu trebuie sa inceapa cu o cifra. Se utilizeaza pentru a da nume variabilelor, functiilor etc.Exemple de identificatori corecti: x, x1, eu_sunt_un_identificator_corect, _1XContraexemple: 1x, Tom&Jerry, eu-sunt-un-identificator-incorect

Cuvinte cheie sunt cuvinte ale limbajului, imprumutate din limba engleza, carora programatorul nu le poate da o alta utilizare. Cuvintele cheie se scriu cu litere mici (Exemple: int, char, double, if, for, while etc.);

Separatori pentru separarea unitatilor lexicale (cele mai simple elemente care au o semnificatie). Ca separatori se folosesc: blancurile (space, tab), enter, punctul si virgula (;).

Comentarii sunt secvente ignorate de compilator, in care de obicei programatorul explica semnificatia unei linii sau a unei secvente de program. Pot fi plasate oriunde in program si sunt de doua feluri:

Comentarii pe o singura linie sunt precedate de // si se considera comentariu toata secventa pana la sfarsitul linieiEx: a=b+c; // eu sunt un comentariu pe o singura linie

Comentarii pe mai multe linii incep cu /* si se termina cu /*Ex: /* eu sunt un comentariupe mai multe linii */

Tipuri de dateIn C++, datele pot fi intregi si reale.

Tipurile intregi sunt:

unsigned char caracter fara semn, ia valori intre 0 si 255 si ocupa 1 octet (ia valori intre 0 si 28-1, 1 octet=8 biti)

char caracter, ia valori intre 128 si 127 si ocupa 1 octet (imparte intervalul precedent in doua jumatati egale, una in stanga lui 0, cealalta in dreapta)

unsigned int intreg fara semn, ia valori intre 0 si 65535 si ocupa 2 octeti (ia valori intre 0 si 216-1, 2 octeti=16 biti)

int intreg, ia valori intre -32768 si 32767 si ocupa 2 octeti (imparte intervalul precedent in doua jumatati egale, una in stanga lui 0, cealalta in dreapta)

unsigned long intreg lung fara semn, ia valori intre 0 si 4.294.967.295 si ocupa 4 octeti (ia valori intre 0 si 232-1, 4 octeti=32 biti)

long intreg lung, ia valori intre 2.147.483.648 si 2.147.483.647 si ocupa 4 octeti (imparte intervalul precedent in doua jumatati egale, una in stanga lui 0, cealalta in dreapta)

Tipurile reale sunt:

float ia valori intre 3.4x10-38 si 3.4x1038 , are 6 zecimale exacte si ocupa 4 octeti

double ia valori intre 1.7x10-308 si 1.7x10308 , are 14 zecimale exacte si ocupa 8 octeti

long double ia valori intre 3.4x10-4932 si 1.1x104932 , are 20 zecimale exacte si ocupa 10 octeti

Observatii:

1. 1. Nu este necesar sa retineti aceste valori. Important e sa stiti numele tipurilor. Scrieti in editorul C++ numele unui tip, pozitionati cursorul in interiorul cuvantului si actionati combinatia de taste CTRL+F1 (Help). Vedeti in fereastra care se afiseaza toate detaliile tehnice.

2. 2. In header-ul sunt definite constantele simbolice (cum ar fi: MAXINT, MAXSHORT, MAXLONG, MINDOUBLE, MINFLOAT, etc.) care au ca valoare limitele inferioara si superioara ale intervalului de valori pentru tipurile de date enumerate. (de exemplu MAXINT reprezinta valoarea intregului maxim care se poate memora, etc. )

Constante

Constantele sunt date cu valoare fixa (care nu poate fi modificata). Constantele sunt de mai multe tipuri:

constante numerice, intregi sau reale (12, -34, 3.14)

constante caracter care se scriu intre apostroafe (a, 7, *) si care au ca valoare codul ASCII al caracterului pe care il reprezintaSe pune problema: cum pot scrie caracterul ? Daca scriem se semnaleaza eroare la compilare, deoarece al doilea apostrof il inchide pe primul iar al treilea nu mai are pereche. Pentru o astfel de situatie se folosesc secventele escape, adica se precede caracterul respectiv cu un \. Se va scrie: \. La fel se procedeaza pentru caracterul \ (\\). Mai exista o serie de secvente escape cu semnificatii prestabilite. Ex: \n face trecerea la o linie noua(newline); \t tab; \r retur de car (carriage return), pozitioneaza cursorul la inceputul liniei.

constante sir de caractere - o succesiune de zero sau mai multe caractere, incadrate de ghilimele. In componenta unui sir de caractere, poate intra orice caracter, deci si caracterele escape. Lungimea unui sir este practic nelimitata. Daca se doreste continuarea unui sir pe randul urmator, se foloseste caracterul backslash.Ex: Acesta este un sir de caractere

Sir de caractere continuat\

pe randul urmator!

Sir \t cu secvente escape\n

VARIABILE

Spre deosebire de constante, variabilele sunt date ale caror valori se pot modifica in timpul executiei programului. Variabilele sunt caracterizate de atributele nume, tip, si valoare. Variabilele sunt nume simbolice utilizate pentru memorarea valorilor introduse pentru datele de intrare sau a rezultatelor. La o variabila ne vom referi prin numele ei. Numele unei variabile ne permite accesul la valoarea ei, sau schimbarea valorii sale, daca este necesar acest lucru. Numele unei variabile este un identificator ales de programator. Ca urmare, trebuie respectate regulile de scriere a identificatorilor. Toate variabilele care vor fi folosite in program, trebuie declarate inainte de utilizare.

Declararea variabilelor

Modul general de declarare a variabilelor este:

tip_data lista_nume_variabile;

Se specifica tipul variabilei (variabilelor) si o lista formata din unul sau mai multi identificatori ai variabilelor de tipul respectiv. Intr-un program in limbajul C++, declaratiile de variabile pot apare in orice loc in programul sursa. La declararea variabilelor, se rezerva in memorie un numar de octeti corespunzator tipului variabilei, urmand ca ulterior, in acea zona de memorie, sa fie depusa (memorata, inregistrata) o anumita valoare.

Exemple:

int i, j;

/*declararea variabilelor i, j, de tip int. Se rezerva pentru i si j cate 2octeti */

char c;

/* declararea variabilei c, de tip char. Se rezerva un octet. */

float lungime; /* declararea variabilei reale lungime. Se rezerva 4 octeti */

Initializarea variabilelor in declaratii

In momentul declararii unei variabile, acesteia i se poate da (asigna, atribui) o anumita valoare. In acest caz, in memorie se rezerva numarul de locatii corespunzator tipului variabilei respective, iar valoarea va fi depusa (memorata) in acele locatii.

Forma unei declaratii de variabile cu atribuire este:

tip_data nume_variabila=valoare;

Variabilei specificate I se asigneaza valoarea valoare.

Exemple:

char backslash=\\;//declararea si initializarea variabilei simple backslash

int a=7*9+2;

/* declararea variabilei simple a, de tip int si initializarea ei cu valoarea 65*/

float radiani, pi=3.14;/*declararea variabilei radiani;declararea si initializarea var. pi*/

double x=9.8, y=0;

Calificatorul const, asociat unei variabile, nu va permite modificarea ulterioara a valorii acesteia, prin program (printr-o atribuire). Se poate spune ca o variabila precedata de const este de fapt un nume dat unei constante.

Exemple:

const float b=8.8;

b=4/5;

//nu este permisa modificarea valorii variabilei b

OPERATII DE INTRARE/IESIRE (CITIRI / SCRIERI)

Limbajele C/C++ nu poseda instructiuni de intrare/iesire, deci de citire/scriere (ca limbajul PASCAL, de exemplu). In limbajul C aceste operatii se realizeaza cu ajutorul unor functii (de exemplu, printf si scanf), iar in limbajul C++ prin folosirea operatorilor >> si > pentru intrare si operatorul var; /* citeste valoarea variabilei var de la tasatatura */

Sunt posibile operatii multiple, de tipul:

cout > var2 >> var3;

In acest caz, se efectueaza succesiv, de la stanga la dreapta, scrierea, respectiv citirea valorilor variabilelor var1, var2 si var3.

Observatie:

1. Tipurile de date transferate catre iesire pot fi: toate tipurile numerice, caracter sau sir de caractere.

2. Utilizarea dispozitivelor si operatorilor de intrare/iesire in C++ impune includerea fisierului iostream.h.

Exemple:

int x;

coutx;

//citirea valorii variabilei x, de tip int

int a, b, e; double d;

cin>>a>>b>>e>>d;

//citirea valorilor variabilelor a, b, e, d de tip int, int, int, double

cout