+ All Categories
Home > Documents > Limbaje 5

Limbaje 5

Date post: 03-Oct-2015
Category:
Upload: codrinamagda
View: 15 times
Download: 4 times
Share this document with a friend
21
Limbaje de programare inginereşti Tema 5 C++: date, operatori şi
Transcript
  • Limbaje de programare ingineretiTema 5C++: date, operatori i expresii

  • Programe n limbajul C++Un program scris n limbajul C (sau C++) este compus din unul sau mai multe fiiere surs. Un fiier surs este un fiier text care conine codul surs (n limbajul C) al unui program. Fiecare fiier surs conine una sau mai multe funcii i eventual, referine ctre unul sau mai multe fiiere header. Fiiere headermainFunciiFiier surs

    Program

    Biblioteci C++

    Funcii din bibliotec

  • Programe n limbajul C++Funcia principal a unui program este numit main. Execuia programului ncepe cu execuia acestei funcii, care poate apela, la rndul ei, alte funcii. Toate funciile folosite n program trebuie descrise n fiierele surs (cele scrise de ctre programator), n fiiere header (funciile predefinite, existente n limbaj), sau n biblioteci de funcii. Un fiier header este un fiier aflat n sistem sau creat de ctre programator, care conine declaraii i definiii de funcii i variabile.Aciunile din fiecare funcie sunt codificate prin instruciuni. O instruciune este orice expresie valid (de obicei, o atribuire sau un apel de funcie), urmat de simbolul ;

  • Preprocesoruln faza de compilare a fiierului surs este invocat nti preprocesorul. Acesta trateaz directivele speciale - numite directive preprocesor - pe care le gsete n fiierul surs.Directivele preprocesor sunt identificate prin simbolul #, care trebuie s fie primul caracter, diferit de spaiu, dintr-o linie. Directivele preprocesor sunt utilizate la:includerea fiierelor headerdefinirea numelor constantelor simbolicedefinirea macro-urilorrealizarea altor funcii (de exemplu, compilarea condiionat).

  • PreprocesorulExemple#include fisier header sistem#include headerul_meu.hfisier header utilizator#include "c:\\bc\\headerul_meu.h#define TRUE1definirea numelor a doua constante simbolice#define FALSE0#define NEGATIV(x)-(x)macrodefiniie

  • VOCABULARUL n scrierea programelor n limbajul C/C++ pot fi folosite doar anumite simboluri care alctuiesc alfabetul limbajului. Acesta cuprinde:Literele mari sau mici de la A la Z (a-z);Caracterul subliniere ( _ underscore), folosit, de obicei, ca element de legtura ntre cuvintele compuse;Cifrele zecimale (0-9);Simboluri speciale: Caractere: operatori (Exemple: +, *, !=); delimitatori (Exemple: spaiu, tab \t, newline \n, cu rolul de asepara cuvintele); Grupuri (perechi de caractere).

    Grupurile de caractere, numire adesea separatori, pot fi: ( ) - ncadreaz lista de argumente ale unei funcii sau sunt folosite n expresii pentru schimbarea ordinii de efectuare a operaiilor (n ultimul caz, fiind operator); { } - ncadreaz instruciunile compuse; // - Indic nceputul unui comentariu care se poate ntinde pn la sfritul liniei; /* */ - Indic nceputul i sfritul unui comentariu care poate cuprinde mai multe linii; " "- ncadreaz o constant ir (un ir de caractere); ' ' - ncadreaz o constant caracter (un caracter imprimabil sau o secven escape).

  • UNITILE LEXICALE Unitile lexicale (cuvintele) limbajului C/C++ reprezint grupuri de caractere cu o semnificaie de sine stttoare. Acestea sunt: Identificatori; Cuvinte cheie ale limbajului;

    Identificatorii reprezint numele unor date (constante sau variabile), sau ale unor funcii. Identificatorul este format dintr-un ir de litere, cifre sau caracterul de subliniere (underscore), trebuie s nceap cu o liter sau cu caracterul de subliniere i s fie sugestivi.Exemple: vitez, greutate_net, Viteza, Viteza1, GreutateNet

    Identificatorii pot conine litere mici sau mari, dar limbajul C++ este senzitiv la majuscule i minuscule (case-sensitive). Astfel, identificatorii viteza i Viteza sunt diferii.Nu pot fi folosii ca identificatori cuvintele cheie. Identificatorii pot fi standard (ca de exemplu numele unor funcii predefinite: scanf, clear, etc.) sau alei de utilizator.

    Cuvintele cheie sunt cuvinte ale limbajului, mprumutate din limba englez, crora programatorul nu le poate da o alt utilizare. Cuvintele cheie se scriu cu litere mici i pot reprezenta: Tipuri de date (Exemple: int, char, double); Clase de memorare (Exemple: extern, static, register); Instruciuni (Exemple: if, for, while); Operatori (Exemplu: sizeof).

  • TIPURI DE DATE Tipul unei date const ntr-o mulime de valori pentru care s-a adoptat un anumit mod de reprezentare n memoria calculatorului i o mulime de operatori care pot fi aplicai acestor valori. Tipul unei date determin lungimea zonei de memorie ocupat de acea dat. n general, lungimea zonei de memorare este dependent de calculatorul pe care s-a implementat compilatorul. Tipurile de baz sunt: charun singur octet (1 byte=8 bii), capabil s conin codul unui caracter din setul local de caractere; intnumr ntreg, reflect n mod tipic mrimea natural din calculatorul utilizat; floatnumr real, n virgul mobil, simpl precizie; doublenumr real, n virgul mobil, dubl precizie.n completare exist un numr de calificatori, care se pot aplica tipurilor de baz char, int, float sau double: short, long, signed i unsigned. Astfel, se obin tipurile derivate de date.

  • CONSTANTE O constant este un literal (o form extern de reprezentare) numeric, caracter sau ir de caractere. Numele i valoarea unei constante sunt identice. Valoarea unei constante nu poate fi schimbat n timpul execuiei programului n care a fost utilizat. Tipul i valoarea ei sunt determinate n mod automat, de ctre compilator, pe baza caracterelor care compun literalul.

  • CONSTANTE NUMERICEConstante ntregiConstantele ntregi sunt literali numerici (compui din cifre), fr punct zecimal, n baza 10, 8 sau 16

    45-78// constante ntregi decimale (n baza 10), tip int056077// constante ntregi octale, tip int0x450x3A0Xbc// constante ntregi hexagesimale, tip int

    Constante numerice, realeDac o constant numeric conine punctul zecimal, ea este de tipul double.3.1459//tip double

    Constante reale n format tiinificNumrul poate fi urmat de caracterul e sau E i de un numr ntreg, cu sau fr semn. n acest caz, constanta este n notaie tiinific. 1.5e-2//tip double, n notaie tiinific, valoare 1.5x10-2

  • CONSTANTE CARACTERConstantele caracter sunt ncadrate ntre apostroafe.Exemplu:'a'//tip charO constant caracter are ca valoare codul ASCII al caracterului pe care l reprezint.

    Constante caracter corespunztoare caracterelor imprimabileO constant caracter corespunztoare unui caracter imprimabil se reprezint prin caracterul respectiv inclus ntre apostroafe.Exemplu:Constant caracterValoareA65a97048*42Excepii de la regula de mai sus le constituie caracterele imprimabile apostrof (') i backslash (\).Caracterul backslash se reprezint:'\\'Caracterul apostrof se reprezint:'\''

  • CONSTANTE CARACTERConstante caracter corespunztoare caracterelor neimprimabile

    Pentru caracterele neimprimabile, se folosesc secvene escape. O secven escape furnizeaz un mecanism general i extensibil pentru reprezentarea caracterelor invizibile sau greu de obinut.

    Constant caracterValoare(Cod ASCII)Denumirea caracteruluiUtilizare\n10LFrnd nou (Line Feed)\t9HTtabulator orizontal\r13CRpoziioneaz cursorul n coloana 1 din rndul curent\f12FFsalt de pagin la imprimant (Form Feed)\a7BELactivare sunet

  • CONSTANTE IR DE CARACTERE Constanta ir este o succesiune de zero sau mai multe caractere, ncadrate de ghilimele. n componena unui ir de caractere, poate intra orice caracter, deci i caracterele escape. Lungimea unui ir este practic nelimitat. Dac se dorete continuarea unui ir pe rndul urmtor, se folosete caracterul backslash.

    Exemple:Acesta este un ir de caractereir de caractere continuat\pe rndul urmtor!

    ir \t cu secvene escape\n

  • VARIABILE Variabilele sunt date (obiecte informaionale) ale cror valori se pot modifica n timpul execuiei programului. Variabilele sunt caracterizate de atributele nume, tip, valoare i clas de memorare. Dac o dat nu are legturi cu alte date (de exemplu, relaia de ordine), vom spune c este o dat izolat. O dat izolat este o variabil simpl. Dac datele se grupeaz ntr-un anumit mod (n tablouri - vectori, matrici - sau structuri), variabilele sunt compuse (structurate). Este necesar specificarea tipului fiecrei variabile la declararea acesteia. Toate variabilele care vor fi folosite n program, trebuie declarate nainte de utilizare.

  • Declararea variabilelor Modul general de declarare a variabilelor este:tip_variabilelist_nume_variabile;

    Se specific tipul variabilei(lor) i o list format din unul sau mai muli identificatori ai variabilelor de tipul respectiv. Declaraiile de variabile pot apare n orice loc n programul surs.

    Exemple:int i, j;/*declararea var. simple i, j, de tip int.*/char c;/* declararea variabilei simple c, de tip char. */float lungime; /* declararea variabilei simple lungime.*/

    n momentul declarrii unei variabile, acesteia i se poate atribui o anumit valoare.Forma unei declaraii de variabile cu atribuire este:tip_variabil nume_variabil=expresie;

    Exemple:char backslash=\\;int a=7*9+2;float radiani, pi=3.14short int z=3;char d=\011;char LinieNoua=\n;

  • Operaii de intrare/ieire n limbajul C++ sunt predefinite urmtoarele dispozitive logice de intrare/ieire:cin - console input - dispozitivul de intrare (tastatura);cout - console output - dispozitivul de ieire (monitorul).

    Transferul informaiei se realizeaz cu operatorul >> pentru intrare i operatorul var; /* citete valoarea variabilei var de la tasatatur */cout > var2 >> var3;

    Operanzii operatorului extractor (>>) pot fi doar nume de variabile. Operanzii operatorului insertor (

  • OPERATORI I EXPRESII Datele (constante sau variabile) legate prin operatori, formeaz expresii.

    Operatorii pot fi: unari (necesit un singur operand); binari (necesit doi operanzi); ternari (trei operanzi).

    Operatorul de atribuire (de asignare) este un operator binar care se aplic tuturor tipurilor de variabile. Este folosit sub formele urmtoare:nume_variabil=expresie;expresie1=expresie2;

    Dac tipurile membrilor stng i drept difer, se pot realiza anumite conversii

  • Operatori aritmetici unari:OperatorSemnificaieExemple-Minus unar-a++Operator de incrementarea++sau(adun 1 la valoarea operandului)++a--Operator de decrementarea--sau(scade 1 din valoarea operandului)--a

    y=++xeste echivalent cu:x=x+1;y=x;y=x++este echivalent cu:y=x;x=x+1;y=--xeste echivalent cu:x=x-1;y=x;y=x--este echivalent cu:y=x;x=x-1;

  • Operatori aritmetici binari:OperatorSemnificaieExemple+Adunarea celor doi operanzia+b-Scderea celor doi operanzia-b*nmulirea celor doi operanzia*b/mprirea celor doi operanzia/b%Operatorul modulo (operatorul rest)a%b(furnizeaz restul mpririi operatorului stng la operatorul drept).

    Operatori aritmetici binari compuiOperatorSemnificaieExemple+=a=a+ba+=b-=a=a+ba-=b*=a=a*ba*=b/=a=a/ba/=b%=a=a%ba%=b

  • Operatori relaionali binariOperatorSemnificaieExemple==Egal cua==b!=Diferit dea!=b=b

    Clas de operatoriOperatoriAsociativitateUnari- (unar) ++ --de la dreapta la stngaMultiplicativi* / %de la stnga la dreaptaAditivi+ -de la stnga la dreaptaAtribuire=de la dreapta la stngaRelaionali< >=de la stnga la dreaptaDe egalitate== !=de la stnga la dreaptaAtribuire i aritmetici binari= *= /= %= += -=de la dreapta la stnga

  • Operatori logici pe cuvntOperatorSemnificaieExemple!Not (negaie logic)!(a==b)&&And (conjuncie, i logic)(a>b) && (b>c)||Or (disjuncie, sau logic)(a>b) || (b>c)

    Operatorul condiionalEste un operator ternar (necesit 3 operanzi), utilizat n construcii de forma:expresie1?expresie2:expresie3Se evalueaz expresia1, care trebuie s fie o expresie logic. Dac aceasta este adevrat, atunci tipul i valoarea ntregii expresii vor fi aceleai cu tipul i valoarea expresiei2. Altfel (dac expresie1 este fals), tipul i valoarea ntregii expresii vor fi aceleai cu tipul i valoarea expresiei3.

    Acest lucru este echivalent cu:Dac expresie1Atunci evalueaz expresie2Altfel evalueaz expresie3Exemplu:int semn=(x


Recommended