C12 - Tipurile Fundamentale de Date

5
1 Bazele Informaticii (C12) 23-12-2010 By ncostyn Tipurile Fundamentale de date - Char; - Int; - Float; - Double. Standardul ANSCI nu precizeaza decat domaniul minimal de valori fiecarui tip de date, nu si dimensiunea sa. In majoritatea implementarilor, tipul char ocupa un octet, int ocupa doi octeti si tipul float ocupa patru octeti. Domeniul de valori poate fi modificat utilizand modificatorii de tip. Acestia sunt signed, unsigned, short, long. Toti modificatorii se pot tipului int, signed si unsigned se aplica tipului char iar long se aplica tipului double. n biti domeniul este de la [0,2 n – 1] pentru unsigned; domeniul este de la [2 n1 2 n1 -1] pentru signed. OBS: Pentru tipul intreg de date (char, int, short, long) reprezentarea mplicita este signed. Specificarea unui modificator fara tip inseamna considerarea implicita a tipului int. In C nu exista tipul de date bolean sau tipul de date logic. Din acest motiv functioneaza urmatoarea conventie: orice expresie diferita de 0 se considera adevarata, 0 este considerat fals. Variabile si tipuri de date; Tip lista – de variabile; Ex: int x, y, z; - declaratie variabile (prototip); int x=3, y=7; - declaratie variabile. Posibilitatea de a creea constante cu nume. Se pot creea cu ajutorul modificatorului de access sau a calificatorului const. Ex: const double pi = 3,1415926536;

description

tipuri fundamentale de date

Transcript of C12 - Tipurile Fundamentale de Date

Bazele Informaticii (C12)23-12-2010

By ncostyn

Tipurile Fundamentale de date

Char;

Int;

Float;

Double.

Standardul ANSCI nu precizeaza decat domaniul minimal de valori fiecarui tip de date, nu si dimensiunea sa. In majoritatea implementarilor, tipul char ocupa un octet, int ocupa doi octeti si tipul float ocupa patru octeti.

Domeniul de valori poate fi modificat utilizand modificatorii de tip. Acestia sunt signed, unsigned, short, long. Toti modificatorii se pot tipului int, signed si unsigned se aplica tipului char iar long se aplica tipului double.

n biti

domeniul este de la [ 1] pentru unsigned;

domeniul este de la [-1] pentru signed.

OBS: Pentru tipul intreg de date (char, int, short, long) reprezentarea mplicita este signed.

Specificarea unui modificator fara tip inseamna considerarea implicita a tipului int.

In C nu exista tipul de date bolean sau tipul de date logic. Din acest motiv functioneaza urmatoarea conventie: orice expresie diferita de 0 se considera adevarata, 0 este considerat fals.

Variabile si tipuri de date;

Tip lista de variabile;

Ex: int x, y, z; - declaratie variabile (prototip);

int x=3, y=7; - declaratie variabile.

Posibilitatea de a creea constante cu nume. Se pot creea cu ajutorul modificatorului de access sau a calificatorului const.

Ex: const double pi = 3,1415926536;

const ore zi = 24;

Functii uzuale de intrare/iesire la nivelul consolei.

Se impart in trei categorii:

1. Functii generale ( printf(), scanf() );

2. Functii speciale (nivel caracter, siruri de caratctere).

1. Functii generale;

Prototipul functiei este:

int printf (sir format, lista argumente)

Sirul format poate sa contina mesaje catre utilizator, secvente escape, descriptori de format.

Descriptorii de format permit conversia numerelor reprezentate intern intr-o forma externa si invers.

Lista de ragumente este lista de expresii; fiecare expresie din lista se asociaza de la stanga la dreapta cu un descriptor de format din sirul format. Functia intoarce numarul de argumente scrise efectiv.

Descriptori de format:

%u

Numere intregi zecimale fara semn;

%d sau %i

Numere intregi zecimale cu semn;

%f

Numere reale in notatie normala;

%e sau %E

Numere reale nu otatie stiintifica;

%x sau %X

Numere scrise in hexazecimal fara semn;

%o

Numere scrise in octal;

%s

Siruri de caractere;

%c

Scrierea unui caracter;

%p

Pointer (este o variabila in care se pot memora adrese).

Ex: printf (\n x=%d, y=%f, x, x=y);

Dimensiunea campului de afisare si precizia:

Ex: %7.2f

x = -8295436;

x

=

-

8

2

.

9

5

printf (n x=%7.2f,x);

In situatia in care numarul de caractere care urmeaza a fi scrise, inclusiv punctul si semnul - , depaseste dimensiunea prevazuta in descriptorul de format, se forteaza scrierea sa asa cum rezulta din reprezentarea de mai sus.

Functia scanf:

Int scanf (sir format, lista argumente);

Sir format poate contine descriptor de format, caractere albe de spatiere, alte caractere.

Lista de argumente este de forma:

&v, &v1, &v2.

Functia de intoarcere numere de argumente carora li s-au atribuit valori pozitive in caz de success si o valoare negativa in caz de nesuccess.

Caracterele de spatiere prezente in sir format trebuie trebuie sa fie prezente si in sirul de intrare.

Ex: scanf (%d_%f,&x,&y);

Functiile speciale de citire si scriere a caracterelor la nivel de consola.

ANSCI

Int getchar (void); la citire

Int putchar (intch); la scriere

Getch()

Getche()

Putch()

Functia getchar citeste un caracter numai daca dupa tastarea caracterului se apasa tasta enter.

Functia getch permite citirea caracterului fara a mai fi nevoie apasarea tastei enter.

Functia gethce afiseaza pe ecran caracterul citit.

Pentru siruri de caractere avem:

Gets (sir destinatie); ex: gets (nume);

puts (sir);

Operatori: clasificare:

1. Dupa numarul de operanzi:

a) Unari; ex: +x

b) Binari; ex: x+y

c) Ternari; ex: x>0?x:-x

2. Dupa tipul operanzilor:

a) Aritmetici;

b) Relationali;

c) Logici;

d) La nivel de bit;

3. Clase de precedenta:

Prioritatile operanzilor impun ordinea de evaluare a expresiilor. Ca si in calculele obijnuite, ordinea de evalluare poate fi modificata cu ajutorul parantezelor rotunde. Operatorii care au prioritati egale apartin aceleiasi clase de precedenta. Cu cat numarul clasei este mai mare, cu atat prioritatea operanzilor din acea clasa este mai mica.

Clase:

1. Paranteze, operatiori de selectie

(), [], ,

2. Operatiro unari

++, --, !, ~, -, +, &, *, sizeof, cost

3. Operatori multiplicativi

%, /, *

4. Operatori aditivi

+, -

5. Operatori shift

6. Operatori relationali

=

7. Operatori relationali

==, !=

8. si pe bit

&

9. sau exclusiv bit cu bit

^

10. sau bit cu bit

|

11. si logic

&&

12. sau logic

||

13. Operatori conditionali

?:

14. Operatori atribuire

=, +=, -=, *=, etc...

15. Operatori secventiere

,

Operatorul de atribuire:

V=e; V variabila; e expresie;

Limbajul C permite prezenta mai multor operatori de atribuire in aceeasi expresie.

Ex: A=L*l; V=(A=L*l)*h;

V=A*h;

Este posibila realizarea unor conversii.

Valoarea expresiei se converteste intotdeauna la tipul variabilei (membrul stang).

Deoarece sizeof(int)