QReferate - referate pentru educatia ta.
Referatele noastre - sursa ta de inspiratie! Referate oferite gratuit, lucrari si proiecte cu imagini si grafice. Fiecare referat, proiect sau comentariu il poti downloada rapid si il poti folosi pentru temele tale de acasa.



AdministratieAlimentatieArta culturaAsistenta socialaAstronomie
BiologieChimieComunicareConstructiiCosmetica
DesenDiverseDreptEconomieEngleza
FilozofieFizicaFrancezaGeografieGermana
InformaticaIstorieLatinaManagementMarketing
MatematicaMecanicaMedicinaPedagogiePsihologie
RomanaStiinte politiceTransporturiTurism
Esti aici: Qreferat » Referate informatica

Limbajul de programare c++



LIMBAJUL DE PROGRAMARE C++

La inceputul anulor 70 a aparut limbajul C, creatia lui Dennis Ritchie si Brian Kernighan. Limbajul C++ -creatia lui Bjarne Stroustrup- e o extensie a limbajului C care permite programarea pe obiecte.

Limbajul C a aparut in anii 1970 si a fost creat de Dennis Ritchie in laboratoarele AT&T Bell. Limbajul C face parte din familia de limbaje concepute pe principiile programarii structurate, la care ideea centrala este "structureaza pentru a stapani o aplicatie". Popularitatea limbajului a crescut rapid datorita elegantei si a multiplelor posibilitati oferite programatorului (puterea si flexibilitatea unui limbaj de asamblare); ca urmare, au aparut numeroase alte implementari. De aceea, in anii '80 se impune necesitatea standardizarii acestui limbaj. In perioada 1983-1990, un comitet desemnat de ANSI (American National Standards Institute) a elaborat un compilator ANSI C, care permite scrierea unor programe care pot fi portate fara modificari, pe orice sistem.



 Limbajul C++ apare la inceputul anilor '80 si il are ca autor pe Bjarne Stroustrup. El este o varianta de limbaj C imbunatatit, mai riguroasa si mai puternica, completata cu constructiile necesare aplicarii principiilor programarii orientate pe obiecte (POO). Limbajul C++  pastreaza toate elementele limbajului C,  beneficiind de eficienta si flexibilitatea acestuia. Limbajul C++ este un superset al limbajului C. Incompatibilitatile sunt minore, de aceea, modulele C pot fi incorporate in proiecte C++ cu un efort minim.


Structura programelor C/ C++
Un program scris in limbajul C (sau C++) este compus din unul sau mai multe fisiere sursa. Un fisier sursa este un fisier text care contine codul sursa (in limbajul C) al unui program. Fiecare fisier sursa contine una sau mai multe functii si eventual, referinte catre unul sau mai multe fisiere header .


Functii si structuri

Functia principala a unui program este numita main. Executia programului incepe cu executia acestei functii, care poate apela, la randul ei, alte functii. Toate functiile folosite in program trebuie descrise in fisierele sursa (cele scrise de catre programator), in fisiere header (functiile predefinite, existente in limbaj), sau in biblioteci de functii.


Un fisier header este un fisier aflat in sistem sau creat de catre programator, care contine declaratii si definitii de functii si variabile.


Actiunile din fiecare functie sunt codificate prin instructiuni . Exista mai multe tipuri de instructiuni, care vor fi discutate in capitolul urmator.


O instructiune este orice expresie valida (de obicei, o asignare sau un apel de functie), urmata de simbolul . In figura 2.2.b. este dat un exemplu de instructiune simpla. Uneori, ca instructiune poate apare instructiunea nula (doar ;), sau instructiunea compusa (privita ca o succesiune de instructiuni simple, incadrate intre acoladele delimitatoare


 Functiile trebuie descrise fie in fisierele sursa, fie in fisiere separate numite fisiere header, fie in biblioteci de functii
Functia main are urmatoarea forma:
    void main( )
  

Pentru a intelege mai bine notiunile prezentate, sa consideram un exemplu foarte simplu. Programul urmator afiseaza pe ecran un mesaj (mesajul Primul meu program). Informatia de prelucrat (de intrare) este insusi mesajul (o constanta sir), iar prelucrarea ei consta in afisarea pe ecran.

Exemplu:

#include <iostream.h> // linia 1

void main            // linia 2 - antetul functiei main

                   // linia6-sfarsitul corpului functiei


Prima linie este o directiva preprocesor (indicata de simbolul ) care determina includerea in fisierul sursa a fisierului header cu numele iostream.h. Acest headerpermite realizarea afisarii pe monitor.


Programul contine o singura functie, functia principala, numita main, al carui antet (linia 2) indica:

- tipul valorii returnate de functie (void, ceea ce inseamna ca functia nu returneaza nici o valoare)

- numele functiei (main

- lista argumentelor primite de functie, incadrata de cele 2 paranteze rotunde.

Functiile comunica intre ele prin argumente. Aceste argumente reprezinta datele de intrare ale functiei. In cazul nostru, nu avem nici un argument in acea lista, deci puteam sa scriem antetul functiei si astfel:

void main(void)


Ceea ce urmeaza dupa simbolul , pana la sfarsitul liniei, este un comentariu, care va fi ignorat de catre compilator. Comentariul poate contine un text explicativ; informatii lamuritoare la anumite aspecte ale problemei sau observatii. Daca vrem sa folosim un comentariu care cuprinde mai multe linii, vom delimita inceputul acestuia indicat prin simbolulurile , iar sfarsitul - prin (vezi liniile 3, 4). Introducerea comentariilor in programele sursa usureaza intelegerea acestora. In general, se recomanda introducerea unor comentarii dupa antetul unei functiei, pentru a preciza prelucrarile efectuate in functie, anumite limite impuse datelor de intrare, etc.

    Cele doua paranteze se ataseaza oricarei functii. Intre ele se scriu optional anumiti parametri ( in acest caz lipsesc)
    O functie poate intoarce un rezultat. Daca nu intoarce nici un rezultat spunem ca tipul rezultatului este void. Exista functii cu rezultat de tip real, intreg etc.

    De asemenea, programul poate contine si declaratii de variabile globale - adica variabile cu care pot lucra toate functiile care il alcatuiesc.
    Instructiunile care pot aparea sunt fie expresii fie implementari ale structurilor de control ca if, for, while etc.

Inceputul si sfarsitul corpului functiei main sunt indicate de cele doua acoalade (linia 6).


Corpul functiei (linia 5) este format dintr-o singura instructiune, care implementeaza o operatie de scriere.


Cuvantul cout este un cuvant predefinit al limbajului C++ - console output - care desemneaza dispozitivul logic de iesire;


simbolul <<  este operatorul de transfer a informatiei. Folosite astfel, se deschide un canal de comunicatie a datelor catre dispozitivul de iesire, in cazul acesta, monitorul.


Dupa operator se specifica informatiile care vor fi afisate (in acest exemplu, un sir de caractere constant). Faptul ca este un sir constant de caractere este indicat de ghilimelele care il incadreaza.


La sfarsitul instructiunii care implementeaza operatia de scriere, apare


Etapele rezolvarii unei probleme cu ajutorul calculatorului


Sa detaliem in continuare etapa de implementare. Dupa analiza problemei si stabilirea algoritmului, acesta trebuie tradus (implementat) intr-un limbaj de programare.


q   Scrierea (editarea) programului sursa.

Programele sursa sunt fisiere text care contin instructiuni (cu sintactica si semantica proprii limbajului utilizat). Programul (fisierul) sursa este creat cu ajutorul unuieditor de texte  si  va fi salvat pe disc (programele sursa C primesc, de obicei,  extensia .c, iar cele C++, extensia .cpp).

Pentru a putea fi executat, programul sursa trebuie compilat  si linkeditat


q   Compilarea

Procesul de compilare este realizat cu ajutorul compilatorului, care translateaza codul sursa in cod obiect (cod masina), pentru ca programul sa poata fi inteles de calculator. In cazul limbajului C, in prima faza a compilarii este invocat preprocesorul. Acesta recunoaste si analizeaza mai intai o serie de instructiuni speciale, numite directive procesor. Verifica apoi codul sursa pentru a constata daca acesta respecta sintaxa si semantica limbajului. Daca exista erori, acestea sunt semnalate utilizatorului. Utilizatorul trebuie sa corecteze erorile (modificand programul sursa). Abia apoi codul sursa este translatat in cod de asamblare, iar in final, in cod masina, binar, propriu calculatorului. Acest cod binar este numit cod obiect si de obicei este memorat intr-un alt fisier, numit fisier obiect. Fisierul obiect va avea, de obicei, acelasi nume cu fisierul sursa si extensia .obj.


q   Linkeditarea

Dupa ce programul sursa a fost translatat in program obiect, el este va fi supus operatiei de  linkeditare. Scopul fazei de linkeditare este acela de a obtine o forma finala a programului, in vederea executiei acestuia. Linkeditorul "leaga" modulele obiect, rezolva referintele catre functiile externe si rutinele din biblioteci si produce cod executabil, memorat intr-un alt fisier, numit fisier executabil (acelasi nume, extensia .exe)


q   Executia

Lansarea in executie consta in incarcarea programului executabil in memorie si startarea executiei sale.






Observatii:

   Mediile de programare integrate (BORLANDC, TURBOC) inglobeaza editorul, compilatorul, linkeditorul si depanatorul (utilizat in situatiile in care apar erori la executie);

   Daca nu se utilizeaza un mediu integrat, programatorul va apela in mod explicit (in linie de comanda) un editor de texte, compilatorul, linkeditorul. Lansarea in executie se va face tot din linie de comanda.

  Extensiile specificate pentru fisierele sursa, obiect si executabile sunt  CPP (sau C), OBJ respectiv EXE.

 

Preprocesorul

    In prima faza a etapei de compilare este apelat preprocesorul C. Acesta va trata o serie de directive speciale numite directive preprocesor pe care le gaseste in fisierul sursa. O directiva preprocesor incepe cu simbolul #
    Directivele preprocesor se folosesc in urmatoarele situatii:

1.  Includerea fisierelor header in codul sursa. Exemplu: directiva include:

    # include<iostream.h>
     pentru citiri sau scrieri

parantezele unghiulare < > indica faptul ca este vorba de un fisier header sistem (predefinit). Cand procesorul intalneste aceasta linie, datorita simbolului #, o recunoaste ca fiind o directiva preprocesor, localizeaza fisierul header indicat.

  Programatorul isi poate crea propriile fisiere header caz in care acesta va fi incadrat intre ' De exemplu:
#include 'headerul_meu.h'

Numele fisierului header inclus intre ghilimele, indica faptul ca headerul_meu.h este un fisier header creat de utilizator. Preprocesorul va cauta sa localizeze acest fisier in directorul curent de lucru al utilizatorului. In cazul in care fisierul header nu se afla in directorul curent, se va indica si calea catre acesta.

Exemplu:  
#include 'c:bcheadheaderul_meu.h'

In acest exemplu, pentru interpretarea corecta a caracterului backslash , a fost necesara 'dublarea'  acestuia, din motive pe care le vom prezenta in paragrafeleurmatoare

2. Asignarea unor nume simbolice pentru constante. De exemplu:
    #define    PI   3.14
   PI este numele constantei simbolice iar 3.14 este valoarea constantei

   In locurile in care in codul sursa apar numele constantelor simbolice carora li s-a asignat o valoare printr-o directiva define in mod automat numele constantei este inlocuit prin valoarea acestora

Exemplu:

#define TRUE  1

#define FALSE 0

Tratarea acestor directive preprocesor are ca efect asignarea (atribuirea) valorii intregi 1 numelui   (constantei simbolice) TRUE, si a valorii 0 numelui simbolic FALSE. Ca urmare, inaintea compilarii propriu-zise, in programul sursa, aparitiile numelor TRUE si FALSE vor fi inlocuite cu valorile 1, respectiv 0.

Un prim exemplu de program C++:

    #include <iostream.h>

    void main( )

 Obs.: << este operatorul de insertie
   >> este operatorul de extractie
   cin este 'console in' pentru citire de date


Unitatile lexicale, numite si lexeme (engl. token, lexeme)  sunt constructiile elementare ale limbajului ('atomii' acestuia). Acestea sunt simboluri, formate din unul sau mai multe caractere, care au o anumita semnificatie in limbaj. Dupa rolul indeplinit, unitatile lexicale sunt:identificatori,cuvinte cheie,literali,separatori,operatori,comentarii si spatii

1.Identificatori 
    Numele date programelor sau componentelor acestora (clase, variabile, functii etc.) se numesc identificatori. Identificatorii se aleg de catre programator, respectand anumite reguli.
In limbajul C++, identificatorii sunt siruri formate din litere, cifre si caractere de subliniere ('_'), care nu pot incepe cu o cifra. Lungimea identificatorului nu prezinta importanta, insa acesta nu poate contine spatii libere sau alte caractere, decat cele mentionate aici.

Exemple de identificatori valabili:

viteza
v15XB7
pretDeVanzare
pret_de_vanzare

Este de preferat ca identificatorii sa aiba nume sugestive, amintim insa ca, pentru calculator, identificatorii nu au nici o alta semnificatie, deci, din acest punct de vedere, toate exemplele de identificatori date aici sunt la fel de bune.

2.Cuvinte cheie
In orice limbaj de programare, exista un set de cuvinte, numite cuvinte cheie, care sunt considerate simboluri sintactice si nu pot fi folosite in program ca identificatori.  De exemplu: for, while, pentru ca acestea sunt nume de instructiuni.

3.Literali (constante)
    Literalii sunt reprezentarile in fisierele sursa ale valorilor  constante. Exemple de literali:
    - caractere: 'a', 'A', '+', '$', '5';
    - siruri de caractere: 'sir de caractere', 'abc$79.28#^z';
    - numere intregi: 14726, -25413;
    - numere reale:   12.7389, -0.05673, 2.3075E12, -1.4237E-5;
 
4.Separatori
    Separatorul este un caracter care delimiteaza formele sintactice sau le separa intre ele. In limbajul C++  se folosesc urmatorii separatori: spatiul, caracterul CR, sfarsit de linie sau ';'.

5.Comentariile
    Comentariile sunt texte care pot fi introduse in programul sursa, dar nu sunt luate in consideratie de compilator si deci nu au efect in timpul executarii programului. Comentariile sunt utile pentru o mai buna intelegere a programului de catre om.
In programele C++, se pot folosi doua feluri de comentarii:
    a) comentarii care se pot extinde pe una sau mai multe linii si au forma
           /* <comentariu> */
    b) comentarii de sfarsit de linie, care incep cu simbolul // si continua pana la sfarsitul liniei respective, deci au forma
       // <comentariu>

#include<iostream.h>

/* functia main este functia principala, cu care
   incepe executarea programului */
  void main( )
  // sfarsitul functiei main

Observatie :comentariile sunt absolut necesare pentru intelegerea programului. In acelasi timp, abuzul de comentarii poate sa faca urmarirea acestuia dificila. Este, deci, recomandabil sa se introduca in program toate comentariile necesare pentru o buna intelegere a acestuia, dar nu mai mult.





Exemplu de program realizat in C++


#include<iostream.h> void main()

if(s==2)
cout<<'Numarul este prim'
else
cout<<'Numarul nu este prim'}



Cu ajutorul acesui program se poate verifica daca un numar este prim.un numar este prim daca nu are alti divizori decat pe 1 sau pe el insusi.Primul pas este sa introducem biblioteca iostream.h care lucreaza cu siruri de caractere



Nu se poate descarca referatul
Acest referat nu se poate descarca

E posibil sa te intereseze alte referate despre:


Copyright © 2024 - Toate drepturile rezervate QReferat.com Folositi referatele, proiectele sau lucrarile afisate ca sursa de inspiratie. Va recomandam sa nu copiati textul, ci sa compuneti propriul referat pe baza referatelor de pe site.
{ Home } { Contact } { Termeni si conditii }