21
Implementarea algoritmilor. Limbajele C și C++. Tipuri de date Unitatea de învăţare nr. 3 IMPLEMENTAREA ALGORITMILOR. LIMBAJELE C, C++ . TIPURI DE DATE Cuprins Pagin a Obiectivele unităţii de învăţare nr. 3 2 3.1 Teoria rezolvării problemelor 2 3.2 Etapele rezolvării unei probleme cu ajutorul calculatorului (implementarea) 3 3.3 Programe în limbajul C/C++ 4 3.4 Structura unui program în C 4 3.5 Tipuri de date fundamentale 6 3.5.1 Tipuri de date caracter 6 3.5.2 Tipuri de date întreg 7 3.5.3 Tipuri de date float 8 3.4.2 Tipuri de date în dublă precizie 9 3.4.2 Nume de identificatori 11 Test de autoevaluare – unitatea de învăţare nr. 3 12 Răspunsuri şi comentarii la întrebările din testele de autoevaluare 12 Recapitulare 12 1 Programarea calculatoarelor și limbaje de programare – Curs și aplicaţii

Curs FR - Unitatea de Invatare 3

  • Upload
    marius

  • View
    229

  • Download
    2

Embed Size (px)

DESCRIPTION

pclp

Citation preview

Page 1: Curs FR - Unitatea de Invatare 3

Implementarea algoritmilor. Limbajele C și C++. Tipuri de date

Unitatea de învăţare nr. 3

IMPLEMENTAREA ALGORITMILOR.LIMBAJELE C, C++ . TIPURI DE DATE

Cuprins Pagina

Obiectivele unităţii de învăţare nr. 3 2

3.1 Teoria rezolvării problemelor 2

3.2 Etapele rezolvării unei probleme cu ajutorul calculatorului (implementarea) 3

3.3 Programe în limbajul C/C++ 4

3.4 Structura unui program în C 4

3.5 Tipuri de date fundamentale 6

3.5.1 Tipuri de date caracter 6

3.5.2 Tipuri de date întreg 7

3.5.3 Tipuri de date float 8

3.4.2 Tipuri de date în dublă precizie 9

3.4.2 Nume de identificatori 11

Test de autoevaluare – unitatea de învăţare nr. 3 12

Răspunsuri şi comentarii la întrebările din testele de autoevaluare 12

Recapitulare 12

Bibliografie – unitatea de învăţare nr. 2 13

1Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

Page 2: Curs FR - Unitatea de Invatare 3

Implementarea algoritmilor. Limbajele C și C++. Tipuri de date

OBIECTIVELE unităţii de învăţare nr. 3

Principalele obiective ale Unităţii de învăţare nr. 3 sunt:

Înțelegerea etapelor rezolvării unei probleme cu ajutorul calculatorului

Înțelegerea etapelor parcurse în implementare

Însușirea tipurilor valorice de date prezente în etapa de implementare

Însușirea regulilor de definire a identificatorilor

3.1. TEORIA REZOLVĂRII PROBLEMELOR

Creşterea complexităţii problemelor supuse rezolvării automate (cu ajutorul calculatorului) a determinat ca activitatea de programare să devină, de fapt, un complex de activităţi.

Pentru rezolvarea unei probleme trebuie parcurse următoarele etape: Analiza problemei (înţelegerea problemei şi specificarea cerinţelor

acesteia). Se stabileste ce trebuie să facă aplicaţia, şi nu cum. Se stabilesc datele de intrare (identificarea mediului iniţial) şi se stabilesc obiectivele (identificarea mediului final, a rezultatelor);

Proiectarea (conceperea unei metode de rezolvare a problemei printr-o metodă algoritmică);

Implementarea (codificarea algoritmului ales într-un limbaj de programare);

Testarea aplicaţiei obţinute (verificarea corectitudinii programului); Exploatarea şi întreţinerea (mentenanţa, activitatea de modificare a

aplicaţiei la cererea beneficiarului sau în urma unor deficienţe constatate pe parcursul utilizării aplicaţiei).

În acest context, activitatea de programare a devenit o activitate organizată, definindu-se metode formale de dezvoltare a fiecărei etape. Etapele descrise anterior alcătuiesc ciclul de viaţă al unui produs software şi constituie obiectul de studiu al disciplinei numite ingineria sistemulor de programe (software engineering).

3.2. ETAPELE REZOLVĂRII UNEI PROBLEME CU AJUTORUL CALCULATORULUI (IMPLEMENTAREA)

2Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

Page 3: Curs FR - Unitatea de Invatare 3

Implementarea algoritmilor. Limbajele C și C++. Tipuri de date

După analiza problemei şi stabilirea algoritmului, acesta trebuie tradus (implementat) într-un limbaj de programare.

Scrierea (editarea) programului sursă.Programele sursă sunt fişiere text care conţin instrucţiuni (cu sintactica şi

semantica proprii limbajului utilizat). Programul (fişierul) sursă este creat cu ajutorul unui editor de texte şi va fi salvat pe disc (programele sursă C primesc, de obicei, extensia .c, iar cele C++, extensia .cpp).

Pentru a putea fi executat, programul sursă trebuie compilat şi linkeditat.

CompilareaProcesul de compilare este realizat cu ajutorul compilatorului, care translatează

codul sursă în cod obiect (cod maşină), pentru ca programul să poată fi înţeles de calculator. În cazul limbajului C, în prima fază a compilării este invocat preprocesorul. Acesta recunoaşte şi analizează mai întâi o serie de instrucţiuni speciale, numite directive procesor. Verifică apoi codul sursă pentru a constata dacă acesta respectă sintaxa şi semantica limbajului. Dacă există erori, acestea sunt semnalate utilizatorului. Utilizatorul trebuie să corecteze erorile (modificând programul sursă). Abia apoi codul sursă este translatat în cod de asamblare, iar în final, în cod maşină, binar, propriu calculatorului. Acest cod binar este numit cod obiect şi de obicei este memorat într-un alt fişier, numit fişier obiect. Fişierul obiect va avea, de obicei, acelaşi nume cu fişierul sursă şi extensia .obj.

LinkeditareaDupa ce programul sursă a fost translatat în program obiect, el este va fi supus

operaţiei de linkeditare. Scopul fazei de linkeditare este acela de a obţine o formă finală a programului, în vederea execuţiei acestuia. Linkeditorul “leagă” modulele obiect, rezolvă referinţele către funcţiile externe şi rutinele din biblioteci şi produce cod executabil, memorat într-un alt fisier, numit fişier executabil (acelaşi nume, extensia .exe)

ExecuţiaLansarea în execuţie constă în încărcarea programului executabil în memorie şi

startarea execuţiei sale.

3.3. PROGRAME ÎN LIMBAJUL C/C++

Un program scris în limbajul C (sau C++) este compus din unul sau mai multe fişiere sursă. Un fişier sursă este un fişier text care conţine codul sursă (în limbajul C) al unui

3Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

Cod sursăCod sursă (Preprocesor)Compilator

LinkeditorCod obiectCod obiect Cod executabil

Cod executabil

Etapele necesare obţinerii fişierului executabil

Page 4: Curs FR - Unitatea de Invatare 3

Implementarea algoritmilor. Limbajele C și C++. Tipuri de date

program. Fiecare fişier sursă conţine una sau mai multe funcţii şi eventual, referinţe către unul sau mai multe fişiere header .

Funcţia principală a unui program este numită main. Execuţia programului începe cu execuţia acestei funcţii, care poate apela, la rândul ei, alte funcţii. Toate funcţiile folosite în program trebuie descrise în fişierele sursă (cele scrise de către programator), în fişiere header (funcţiile predefinite, existente în limbaj), sau în biblioteci de funcţii.

Un fişier header este un fişier aflat în sistem sau creat de către programator, care conţine declaraţii şi definiţii de funcţii şi variabile.

Acţiunile din fiecare funcţie sunt codificate prin instrucţiuni. Există mai multe tipuri de instrucţiuni, care vor fi discutate în capitolul următor. O instrucţiune este orice expresie validă (de obicei, o asignare sau un apel de funcţie), urmată de simbolul. Uneori, ca instrucţiune poate apare instrucţiunea nulă (doar ;), sau instrucţiunea compusă (privită ca o succesiune de instrucţiuni simple, încadrate între acoladele delimitatoare {}.

De reținut :

1. Mediile de programare integrate (BORLANDC, TURBOC) înglobează editorul, compilatorul, linkeditorul şi depanatorul (utilizat în situaţiile în care apar erori la execuţie);

2. Dacă nu se utilizează un mediu integrat, programatorul va apela în mod explicit (în linie de comandă) un editor de texte, compilatorul, linkeditorul. Lansarea în execuţie se va face tot din linie de comandă.

3.3. STRUCTURA UNUI PROGRAM ÎN C

În caz general, structura unui program în C este următoarea:

declaraţii globalereturnează-afişeză main (lista de parametrii) {

secvenţă de instrucţiuni }returnează-afişeză funcţia_1 (lista de parametrii) {

secvenţă de instrucţiuni }returnează-afişeză funcţia_2 (lista de parametrii) {

secvenţă de instrucţiuni }…

4Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

Page 5: Curs FR - Unitatea de Invatare 3

Implementarea algoritmilor. Limbajele C și C++. Tipuri de date

returnează-afişeză funcţia_N (lista de parametrii) {

secvenţă de instrucţiuni }

Majoritatea programelor includ apeluri la biblioteca standard, adică încep cu una sau mai multe instrucţiuni #include. Instrucţiunea #include cere compilatorului să folosească conţinutul unui anumit fişier. Acesta este un fişier ASCII, conţine cod sursă în C şi are extensia h. Numele fişierului trebuie încadrat de delimitatorii < >.

De exemplu, în programul:

#include <iostream.h>

void main ( )

{

cout<<"Mesaj";

}

i se cere compilatorului utilizarea fisierului iostream.h.

Observaţie: Fişierele apelate cu directiva #include sunt denumite fişiere antet (“header”) sau fişiere includ.

După directiva #include, de obicei se utilizează o instrucţiune de genul:

void main(void)

instrucţiune care, pentru compilator, identifică grupul de instrucţiuni ce trebuie executate mai întâi, adică instrucţiunile programului principal. Instrucţiunile sunt încadrate de două acolade({ }). Când între acolade sunt plasate mai multe instrucţiuni, acestea se separă prin caracterul punct şi virgulă (;)

5Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

Page 6: Curs FR - Unitatea de Invatare 3

Implementarea algoritmilor. Limbajele C și C++. Tipuri de date

Pentru a explica procesele ce se execută într-un program, se pot utiliza comentarii. Acestea se pot scrie pe un singur rând, caz în care trebuie să înceapă cu două caractere slash:

// comentariu

sau se pot scrie pe unul sau mai multe rânduri , dacă sunt încadrate de grupurile de caractere: (/*) şi (*/):

/* comentariu */

De exemplu, următorul program conţine două categorii de comentariu:

// Acesta este un comentariu de un rand

/* Acesta este un comentariu

pe doua randuri */

#include <iostream.h>

void main(void)

{

/*acesta este mesajul afisat */ cout<<”Program in C";

}

3.5. TIPURI DE DATE FUNDAMENTALE

O variabilă este un nume pe care compilatorul de C îl asociază cu una sau mai multe locaţii de memorie. Tipul unei variabile specifică setul de valori pe care variabila le poate păstra şi setul de operaţii pe care programul le poate executa asupra datelor.

În C, există cinci tipuri de date fundamentale:

caracter (char);

întreg (int);

în virgulă mobilă(float);

în virgulă mobilă cu dublă precizie(double);

fără nici o valoare (void).

Toate celelalte tipuri de date se bazează pe acestea cinci, gama tipurilor fiind extinsă de următorii modificatori de tip: signed, unsigned, register, short şi long.

Tipului char i se pot aplica modificatorii signed şi unsigned, tipului int i se pot aplica modificatorii signed, unsigned, short şi long, iar tipului double i se poate aplica modificatorul long.

6Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

Page 7: Curs FR - Unitatea de Invatare 3

Implementarea algoritmilor. Limbajele C și C++. Tipuri de date

Modificatorul register se utilizează pentru a indica compilatorului ca o anume variabilă, des utilizată, (de exemplu un contor) să fi păstrată într-un registru. În acest fel scade timpul de acces la variabila respectivă.

Un modificator de tip schimbă domeniul valorilor pe care o variabilă le poate păstra sau modul în care compilatorul păstrează o variabilă.

3.5.1. TIPURI DE DATE CARACTER

Variabilelor de tip char li se alocă un octet. Acestea pot să păstreze valori în intervalul dintre –128 şi 127. Aceste afirmaţii sunt valabile şi pentru tipul signed char. În fig.1, este reprezentată o variabilă de tip char sau signed char, în limbajul C.

1 octet

7 biţi de date

Bit de semn

Fig. 1. Reprezentarea unei valori de tip char sau signed char.

Variabilelor de tip unsigned char li se alocă tot un octet, dar nu se mai rezervă bit pentru semn. Acestea pot să păstreze valori în intervalul dintre 0 şi 255. În fig.2, este reprezentată o variabilă de tip unsigned char, în libajul C.

1 octet

8 biţi de date

Fig. 2. Reprezentarea unei valori de tip unsigned char.

3.5.2. TIPURI DE DATE ÎNTREG

Variabilelor de tip int li se alocă 2 octeţi. Acestea pot să păstreze valori în intervalul dintre –32.768 şi 32.767. Aceste afirmaţii sunt valabile şi pentru tipurile signed int, short int sau signed short int.

În fig.3, este reprezentată o variabilă de tip signed int, short int sau signed short int, în libajul C.

2 octeţi

7Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

Page 8: Curs FR - Unitatea de Invatare 3

Implementarea algoritmilor. Limbajele C și C++. Tipuri de date

Bit de semn 15 biţi de date

Fig. 3. Reprezentarea unei valori de tip int, signed int, short int sau signed short int.

Variabilelor de tip unsigned int li se alocă tot doi octeţi, dar nu se mai rezervă bit pentru semn. Acestea pot să păstreze valori în intervalul dintre 0 şi 65.535. Aceste afirmaţii sunt valabile şi pentru tipurile unsigned short int. În fig.4, este reprezentată o variabilă de tip unsigned int sau de tip unsigned short int, în libajul C.

2 octeţi

16 biţi de date

Fig. 4. Reprezentarea unei valori de tip unsigned int sau unsigned short int.

Variabilelor de tip long int li se alocă patru octeţi. Acestea pot să păstreze valori în intervalul dintre –2.147.483.648 şi 2.147.483.647. Aceste afirmaţii sunt valabile şi pentru tipurile signed long int. În fig.5, este reprezentată o variabilă de tip long int sau signed long int, în libajul C.

4 octeţi

Bit de semn 31 biţi de date

Fig. 5. Reprezentarea unei valori de tip long int sau signed long int.

Variabilelor de tip unsigned long int li se alocă patru octeţi, dar nu se rezervă bit pentru semn. Acestea pot să păstreze valori în intervalul dintre 0 şi 4.294.967.295. În fig.6, este reprezentată o variabilă de tip unsigned long int, în libajul C.

4 octeţi

32 biţi de date

Fig. 6. Reprezentarea unei valori de tip unsigned long int.

8Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

Page 9: Curs FR - Unitatea de Invatare 3

Implementarea algoritmilor. Limbajele C și C++. Tipuri de date

3.5.3. TIPUL DE DATE FLOAT

Variabilelor de tip float li se alocă patru octeţi: un bit pentru semn, 8 biţi pentru exponent şi 23 de biţi pentru mantisă. Aceste variabile pot să păstreze valori în intervalul dintre 3.4E-38 şi 3.4E+38. În fig.7, este reprezentată o variabilă de tip float, în libajul C.

9Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

Page 10: Curs FR - Unitatea de Invatare 3

Implementarea algoritmilor. Limbajele C și C++. Tipuri de date

4 octeţi

Exponent pe 8 biţi Mantisă pe 23 biţi

Bit de semn

Fig. 6. Reprezentarea unei valori de tip float.

3.5.4. TIPURI DE DATE ÎN DUBLĂ PRECIZIE

Variabilelor de tip double li se alocă opt octeţi: un bit pentru semn, 11 biţi pentru exponent şi 52 de biţi pentru mantisă. Aceste variabile pot să păstreze valori în intervalul dintre 1.7E-308 şi 1.7E+308.

Variabilelor de tip long double li se alocă 10 octeţi: un bit pentru semn, 19 biţi pentru exponent şi 60 de biţi pentru mantisă. Aceste variabile pot să păstreze valori în intervalul dintre 3.4E-4932 şi 1.1E+4932. Precizia este de 80 de cifre.

***

În completare, există un număr de calificatori, care se pot aplica tipurilor de bază char, int, float sau double: short, long, signed şi unsigned. Astfel, se obţin tipurile derivate de date. Short şi long se referă la mărimea diferită a întregilor, iar datele de tip unsigned int sunt întotdeauna pozitive. S-a intenţionat ca short şi long să furnizeze diferite lungimi de întregi, int reflectând mărimea cea mai "naturală" pentru un anumit calculator. Fiecare compilator este liber să interpreteze short şi long în mod adecvat propriului hardware; în nici un caz, însă, short nu este mai lung decât long. Toţi aceşti calificatori pot aplicaţi tipului int. Calificatorii signed (cel implicit) şi unsigned se aplică tipului char. Calificatorul long se aplică tipului double. Dacă într-o declaraţie se omite tipul de bază, implicit, acesta va fi int.

Tip Descriere

MS-DOS

char 8 Valoarea unui singur caracter; poate fi întâlnit în expresii cu extensie de semn

unsigned char 8 Aceeaşi ca la char, fară extensie de semn

10Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

Page 11: Curs FR - Unitatea de Invatare 3

Implementarea algoritmilor. Limbajele C și C++. Tipuri de date

signed char 8 Aceeaşi ca la char, cu extensie de semn obligatorie

int 16 Valoare întreagă

long 32 Valoare întreagă cu precizie mare

(long int)

long long int 32 Valoare întreagă cu precizie mare

short int 16 Valoare întreagă cu precizie mică

unsigned int 16 Valoare întreagă, fără semn

unsigned long int

32 Valoare întreagă, fără semn

float 32 Valoare numerică cu zecimale, simplă precizie (6 )

double 64 Valoare numerică cu zecimale, dublă precizie (10 )

long double 80 Valoare numerică cu zecimale, dublă precizie

Să considerăm, de exemplu, tipul int, folosit pentru date întregi (pozitive sau negative). Evident că mulţimea valorilor pentru acest tip va fi, de fapt, o submulţime finită de numere întregi. Dacă pentru memorarea unei date de tip int se folosesc 2 octeţi

de memorie, atunci valoarea maximă pentru aceasta va fi 2 - 1, deci 2 - 1 (32767),

iar valoarea minimă va fi - 2 , deci -2 (-32768). Încercarea de a calcula o expresie

de tip int a cărei valoare se situează în afara acestui domeniu va conduce la o eroare de execuţie.

Mulţimea valorilor pentru o dată de tip unsigned int (întreg fără semn) va fi formată din numerele întregi situate în intervalul [0, 2 - 1].

În header-ul <values.h> sunt definite constantele simbolice (cum ar fi: MAXINT, MAXSHORT, MAXLONG, MINDOUBLE, MINFLOAT, etc.) care au ca valoare limitele inferioară şi superioară ale intervalului de valori pentru tipurile de date enumerate. (de exemplu MAXINT reprezintă valoarea întregului maxim care se poate memora, etc. )

11Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

Page 12: Curs FR - Unitatea de Invatare 3

Implementarea algoritmilor. Limbajele C și C++. Tipuri de date

Fără a detalia foarte mult modul de reprezentare a datelor reale (de tip float sau double), vom sublinia faptul că, pentru acestea, este importantă şi precizia de reprezentare. Deoarece calculatorul poate reprezenta doar o submulţime finită de valori reale, în anumite cazuri, pot apare erori importante.

Numerele reale pot fi scrise sub forma: N = mantisa baza

unde:baza reprezintă baza sistemului de numeraţie; mantisa (coeficientul) este un număr fracţionar normalizat ( în faţa virgulei se află 0, iar prima cifră de după virgulă este diferită de zero); exponentul este un număr întreg. Deoarece forma internă de reprezentare este binară, baza=2. În memorie vor fi reprezentate doar mantisa şi exponentul. Numărul de cifre de după virgulă determină precizia de exprimare a numărului. Ce alte cuvinte, pe un calculator cu o precizie de 6 cifre semnificative, două valori reale care diferă la a 7-a cifră zecimală, vor avea aceeaşi reprezentare. Pentru datele de tip float, precizia de reprezentare este 6; pentru cele de tip double, precizia este 14, iar pentru cele de tip long double, precizia este 20.

Lungimea zonei de memorie ocupate de o dată de un anumit tip (pe câţi octeţi este memorată data) poate fi aflată cu ajutorul operatorului sizeof.

Exemplu:

cout<<"Un int este memorat pe "<<sizeof(int)<<"octeti.\n";

Instrucţiunea are ca efect afişarea pe monitor a mesajului: Un int este memorat pe 2 octeţi.

3.5.5. NUME DE IDENTIFICATORI

Identificatorii sunt nume de variabile, constante, funcţii sau alte obiecte definite de către utilizator. Identificatorii pot să conţină unul sau mai multe caractere; primul caracter trebuie să fie o literă sau caracterul de subliniere ( _ ), iar următoarele pot fi litere, cifre sau caracterul de subliniere. De exemplu, identificatorii: a, nume, fis_1, _ab sunt corecţi, iar identificatorii: 1a, n!, fis..1 sunt incorecţi.

12Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

Page 13: Curs FR - Unitatea de Invatare 3

Implementarea algoritmilor. Limbajele C și C++. Tipuri de date

De reținut :

1. Într-un identificator literele mari sunt tratate distinct de literele mici. De exemplu, următorii identificatori sunt diferiţi: nume, Nume, NUME.

2. Un identificator nu poate fi identic cu un cuvânt-cheie.

13Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

Page 14: Curs FR - Unitatea de Invatare 3

Implementarea algoritmilor. Limbajele C și C++. Tipuri de date

Test de autoevaluare 2.1

1. Care este deosebirea între algoritm şi program?

2. Care este deosebirea între compilarea și editarea programului sursă ?

3. Ce sunt identificatorii?

4. Ce conţin fişierele header?

5. Ce tipuri de variabile se utilizează pentru datele numerice?

Răspunsuri şi comentarii la întrebările din testele de autoevaluare

1. Programul este forma implementată pe calculator a algoritmului

2. La compilare, programul trebuie să fie deja editat, conform sintaxei limbajului în care se face editarea, acesta fiind supus unei „traduceri” în limbaj mașină. Dacă are erori de scriere, acestea vor fi semnalate, în cadrul acestui process.

3. Identificatorii sunt șiruri de caractere prin care se identifică variabile, constant, funcții și alte obiecte, definite de către utilizator.

4. Fișierele header conțin cod sursă în C, care definește noțiuni folosite în program.

5. Variabilele numerice pot fi de tipul int, dacă sunt valori întregi, și float, double, dacă sunt valori reale.

RecapitularePentru rezolvarea unei probleme trebuie parcurse următoarele

etape: Analiza problemei Proiectarea Implementarea Testarea aplicaţiei obţinute Exploatarea şi întreţinerea

Implementarea programului într-un liumbaj de programare presupune :

Scrierea (editarea) programului sursă.Pentru a putea fi executat, programul sursă trebuie compilat şi

14Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

Page 15: Curs FR - Unitatea de Invatare 3

Implementarea algoritmilor. Limbajele C și C++. Tipuri de date

linkeditat.

Compilarea Linkeditarea Execuţia

În C, există cinci tipuri de date fundamentale de date:

caracter (char);

întreg (int);

în virgulă mobilă(float);

în virgulă mobilă cu dublă precizie(double);

fără nici o valoare (void).

În completare, există un număr de calificatori, care se pot aplica tipurilor de bază char, int, float sau double: short, long, signed şi unsigned. Astfel, se obţin tipurile derivate de date. Short şi long se referă la mărimea diferită a întregilor, iar datele de tip unsigned int sunt întotdeauna pozitive.

Bibliografie

15Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii