Prez Cap2 2009 Protejat

download Prez Cap2 2009 Protejat

of 33

Transcript of Prez Cap2 2009 Protejat

  • 7/22/2019 Prez Cap2 2009 Protejat

    1/33

    PROGRAMAREA IN

    LIMBAJELE C/C++

    Note de curs

  • 7/22/2019 Prez Cap2 2009 Protejat

    2/33

    CUPRINS1.

    NOIUNI INTRODUCTIVE2. DATE, OPERATORI I EXPRESII

    3. IMPLEMENTAREA STRUCTURILOR DE CONTROL

    4. TABLOURI5. POINTERI

    6. FUNCII

    7. TIPURI DE DATE DEFINITE DE UTILIZATOR8. FISIERE

  • 7/22/2019 Prez Cap2 2009 Protejat

    3/33

    CAPITOLUL 2

    DATE, OPERATORI SI

    EXPRESII

  • 7/22/2019 Prez Cap2 2009 Protejat

    4/33

    CAP.2. DATE, OPERATORI SIEXPRESII

    1. Programe in C/C++

    2. Preprocesorul

    3. Elemente de baza ale limbajului1. Vocabularul

    2. Unitatile lexicale

    4. Date in limbajele C/C++1. Tipuri de date

    2. Constante3. Variabile

    5. Operatori si expresii1. Operatori

    2. Expresii

    6. Conversii ale tipului operanzilor

  • 7/22/2019 Prez Cap2 2009 Protejat

    5/33DATE, OPERATORI SI EXPRESII 5

    1.Programe in limbajul C/C++

  • 7/22/2019 Prez Cap2 2009 Protejat

    6/33DATE, OPERATORI SI EXPRESII 6

    Programe in limbajul C/C++ (cont)

  • 7/22/2019 Prez Cap2 2009 Protejat

    7/33DATE, OPERATORI SI EXPRESII 7

    Programe in limbajul C/C++ (cont)

  • 7/22/2019 Prez Cap2 2009 Protejat

    8/33DATE, OPERATORI SI EXPRESII 8

    Programe in limbajul C/C++ (cont)

  • 7/22/2019 Prez Cap2 2009 Protejat

    9/33

    DATE, OPERATORI SI EXPRESII 9

    2.Preprocesorul

    Directive preprocesor pentru:Includerea fiierelor header n codul surs#include

    #include "headerul_meu.h"

    #include "c:\\bc\\head\\headerul_meu.h"

    Asignarea de nume simbolice constantelor

    #define TRUE 1

    #define FALSE 0

    Macrodefiniii#define NEGATIV(x) -(x)

  • 7/22/2019 Prez Cap2 2009 Protejat

    10/33

    DATE, OPERATORI SI EXPRESII 10

    3.Elemente de baza ale limbajului VOCABULARUL - Alfabetul:

    Literele mari sau mici de la A la Z (a-z) Caracterul de subliniere (_underscore)

    Cifrele zecimale (0-9)

    Simbolurispeciale: Caracterecare reprezint:

    operatori(+, *, !=)

    delimitatori(blank (spaiu), tab \t, newline \n)

    Grupuri de caractere

    ( ){ }

    //

    /* */

    " "

    ' '

  • 7/22/2019 Prez Cap2 2009 Protejat

    11/33

    DATE, OPERATORI SI EXPRESII 11

    Elemente de baza ale lbj-ului (cont)

    Unitatile lexicale (cuvintele): Identificatori

    viteza, greutate_net,Viteza,Viteza1, GreutateNet

    Cuvinte cheie: Tipuri de date

    int, char, double

    Clase de memorare

    extern, static, register Instruciuni

    if, for, while

    Operatorisizeof

  • 7/22/2019 Prez Cap2 2009 Protejat

    12/33

    DATE, OPERATORI SI EXPRESII 12

    4.Date in limbajul C/C++

    Datele obiectele informationale de baza

    prelucrate prin program (constante sau variabile) Atributele datelor:

    nume tip

    valoare

    clasa de memorare

  • 7/22/2019 Prez Cap2 2009 Protejat

    13/33

    DATE, OPERATORI SI EXPRESII 13

    Tipuri de date

    Tipul unei date = mulime de valori(pentru care

    s-a adoptat un anumit mod de reprezentare nmemoria calculatorului) + mulime de operatori

    Tipuri de baza: char int

    float

    double

    Tipuri derivate: tip de baza + short, long, signed, unsigned

    long int, unsigned int, long double

  • 7/22/2019 Prez Cap2 2009 Protejat

    14/33

    DATE, OPERATORI SI EXPRESII 14

    Tipuri de date

  • 7/22/2019 Prez Cap2 2009 Protejat

    15/33

    DATE, OPERATORI SI EXPRESII 15

    Constante

    Constanta = literal

    Nume si valoare identice

    Tipul determinat automat de catre compilator

    Constante: Numerice intregi

    in diferite baze de numeratie

    intregi derivate

    Numerice reale

    Caracter

    Sir de caractere

  • 7/22/2019 Prez Cap2 2009 Protejat

    16/33

    DATE, OPERATORI SI EXPRESII 16

    Constante numerice intregi

    Intregi: 234, -897, 78 //tip int, baza 10

    Intregi in diferite baze de numeratie: in baza 8: 034, 077

    in baza 16: 0x345, 0X67, 0x4a45, 0XFFa3 Intregi, derivate

    tip long int: 14566L, -5668l

    tip unsigned int: 1476u, 567767U tip unsigned long int:

    234uL, 78865Ul, 5234UL

  • 7/22/2019 Prez Cap2 2009 Protejat

    17/33

    DATE, OPERATORI SI EXPRESII 17

    Constante numerice reale

    234.56, -89.75, 78.8898 //tip double

    234.56f, -89.75F, 78.8898F //tip float

    Derivate

    tip long double: 145.66L, -56.68l

  • 7/22/2019 Prez Cap2 2009 Protejat

    18/33

    DATE, OPERATORI SI EXPRESII 18

    Constante caracter

    Fiecare caracter - codASCII (American

    Standard Code for Information Interchange) Constante caractercorespunztoare caracterelor

    imprimabile:

    Exceptii: \\, \ Constante caractercorespunztoare caracterelor

    neimprimabile(secvente escape)

    \n , \t, \v

  • 7/22/2019 Prez Cap2 2009 Protejat

    19/33

    DATE, OPERATORI SI EXPRESII 19

    Constante sir de caractere

  • 7/22/2019 Prez Cap2 2009 Protejat

    20/33

    DATE, OPERATORI SI EXPRESII 20

    Variabile

    Variabila = nume simbolic dat unor locatii de

    memorie Declarare:

    int i;

    double a, b, c; char x;

    long double A, B;

    long X;

  • 7/22/2019 Prez Cap2 2009 Protejat

    21/33

    DATE, OPERATORI SI EXPRESII 21

    Variabile

    Variabila = nume simbolic dat unor locatii de

    memorie Declarare si intializare:

    char backslash=\\;

    int a=3*6+9;

    float radiani, pi=3.14;

    double x=9.56, k, l;

  • 7/22/2019 Prez Cap2 2009 Protejat

    22/33

    DATE, OPERATORI SI EXPRESII 22

    Folosirea calificatorilor ladeclararea variabilelor

    Calificatori:

    const

    volatile

    char backslash=\\;

    const int a=3*6+9; a=34; //atribuire nepermisa!!!

    float radiani, pi=3.14;double x=9.56, k, l; x=4; //permis

  • 7/22/2019 Prez Cap2 2009 Protejat

    23/33

    DATE, OPERATORI SI EXPRESII 23

    Operatii de intrare/iesire Limbajul C functii de I/O (in )

    scanf, printf Limbajul C++:

    cin - console input disp. de intrare (tastatura) si operatorul

    >>; cout - console output disp. de ieire (monitorul) si

    operatorul var2 >> var3;

  • 7/22/2019 Prez Cap2 2009 Protejat

    24/33

    DATE, OPERATORI SI EXPRESII 24

    Operatii de intrare/iesirechar c;

    cout

  • 7/22/2019 Prez Cap2 2009 Protejat

    25/33

    DATE, OPERATORI SI EXPRESII 25

    5. Operatori si expresii Datele (constante sau variabile) legate prin

    operatori (simboluri pentru operaii), formeazexpresii.

    O expresie este o combinaie corect din punct

    de vedere sintactic, format din operanzi ioperatori. Expresiile, ca i operanzii, au tipivaloare.

    Operatori: unari

    binari

    ternari

  • 7/22/2019 Prez Cap2 2009 Protejat

    26/33

    DATE, OPERATORI SI EXPRESII 26

    Operatorul unar adres& (de refereniere)

    int a;cout

  • 7/22/2019 Prez Cap2 2009 Protejat

    27/33

    DATE, OPERATORI SI EXPRESII 27

    Operatori aritmetici Operatori aritmetici unari

    - Minus unar -a ++ Operator de incrementare a++ sau ++a

    -- Operator de decrementare a-- sau --a

    (forma postfixata sau prefixata)

    Operatori aritmetici binari simpli

    *, /, %, +, -

    Operatori aritmetici binari compusi

    *=, /=, %=, +=, -=

  • 7/22/2019 Prez Cap2 2009 Protejat

    28/33

    DATE, OPERATORI SI EXPRESII 28

    Operatori relationali binari De egalitate:

    == Egal cu a==b != Diferit de a!=b

    < Mai mic dect a= Mai mare sau egal cu a>=b

    Diferenta intr = si ==

  • 7/22/2019 Prez Cap2 2009 Protejat

    29/33

    DATE, OPERATORI SI EXPRESII 29

    Operatori logici pe cuvnt Op. Semnificaie Exemple

    ! Not (negaie logic) !(a==b) && And (conjuncie, i logic (a>b)&&(b>c)

    || Or (disjuncie, sau logic) (a>b)||(b>c)

  • 7/22/2019 Prez Cap2 2009 Protejat

    30/33

    DATE, OPERATORI SI EXPRESII 30

    Operatori logici la nivel de bit SIMPLI:

    Op. Semnificaie Exemple ~ Negaie (cod complementar fa de unu) ~a

    & AND (Conjuncie, i logic pe bit a&0377

    | OR (Disjuncie, sau logic pe bit) a|0377

    ^ XOR (Sau exclusiv logic pe bit) a^b

    >2

    COMPUSI:

    &=, ^=, |=, =

  • 7/22/2019 Prez Cap2 2009 Protejat

    31/33

    DATE, OPERATORI SI EXPRESII 31

    Alti operatori Operatorul conditional

    ?: Operatorul virgula

    , [, , . . . ]

    Operatorul sizeof Operatorul (tip)

    Operatorul unar * (de defereniere)

    Operatorul ( ) (apel de functie) Operatorul de indexare [ ]

    Operatori de acces la membrii struct.: ::, ., ->, .*, ->*

  • 7/22/2019 Prez Cap2 2009 Protejat

    32/33

    DATE, OPERATORI SI EXPRESII 32

    Prioritate si asociativitate

  • 7/22/2019 Prez Cap2 2009 Protejat

    33/33

    DATE, OPERATORI SI EXPRESII 33

    6. Expresii si conversii ale tipului

    operanzilor

    Conversiile automatechar, short int-> int

    Conversiile cerute de evaluarea expresiilor

    Conversiile explicite (cerute de programator)