Sunteți pe pagina 1din 10

Tipuri de date

clasificare de date în informatică

Acest articol (sau secțiunea de mai jos) conține greșeli de ortografie sau de punctuație.

Puteți consulta manualul de stil și contribui prin corectarea greșelilor. Aflați mai mult

Acest articol se referă la tipurile de date utilizate în informatică și programare. Pentru tipuri
de date statistice, vedeți tipuri de date statistice. Pentru alte utilizări, vedeți Tipuri de date
(dezambiguizare).

În informatică și programare, un tip de date sau pur și simplu tip este o clasificare ce


identifică diferitele tipuri de date, cum ar fi: numere reale, numere întregi sau
valori logice(adevărate sau false), valori posibile pentru acest tip; operațiunile care pot fi
efectuate pentru valorile de acest tip; sensul datelor; și modul în care valorile de acest tip pot
fi stocate.[1][2]

Sumar

Tipurile de date sunt utilizate în "sisteme de tip" , care oferă diferite moduri de definire,
implementare și folosire. Diferite sisteme de tip asigură grade diferite de "siguranță de tip".

Aproape toate limbajele de programare includ în mod explicit noțiunea de tip de date, totuși
diferite limbaje pot folosi o terminologie diferită. Tipurile de date comune pot include:

Numere întregi 

Valori logice 

Caractere 
Numere cu virgulă

Șiruri de caractere alfanumerice

De exemplu, în limbajul de programare Java , "int" reprezintă setul de numere întregi


reprezentate pe 32 de biți cuprinse ca valoare între -2.147.483.648 și 2,147,483,647, precum
și operațiile care pot fi efectuate cu numere întregi, cum ar fi adunarea, scăderea, sau
înmulțirea. Culorile, pe de altă parte, sunt reprezentate de trei octeți care indică cantitățile de
roșu, verde și albastru, și un șir de caractere reprezentând numele culorii; operațiunile
permise includ adunarea și scăderea, dar nu înmulțirea.

Cele mai multe limbaje de programare, permit de asemenea, programatorului să defineasca


tipuri de date suplimentare, de obicei, prin combinarea mai multor elemente de alte tipuri și
definirea operațiunilor valide pentru noul tip de date. De exemplu, un programator ar putea
crea un nou tip de date numit " număr complex ", care ar include componente reale și
imaginare. Un tip de date reprezintă, de asemenea, o constrângere pusă pe interpretarea
datelor într-un " sistem de tip " , care descrie reprezentarea, interpretare și structura
de valori sau obiecte stocate în memoria calculatorului. Sistemul de tip utilizează informațiile
tipului de date pentru a verifica corectitudinea programelor de calculator care accesează sau
manipulează datele.

Cele mai multe tipuri de date din statistică au tipuri comparabile în limbajele de programare,
și vice-versa, așa cum se arată în tabelul de mai jos:

Statistică Programarea calculatoarelor

numere reale virgulă mobilă

contor de date (de obicei, non-negativ) întreg

date binare Tip logic

date categorice tip enumerat

vector aleator Listă sau matrice

matrice aleatoare matrice bidimensională

arbore aleator Arbore

Definiție a unui "tip"

( Parnas, Shore & Weiss 1976 ) a identificat cinci definiții ale unui "tip" care au fost utilizate
uneori-implicit-în literatura de specialitate:

Sintactic
Un tip este o etichetă pur sintactică asociată cu o variabilă atunci când este
declarată. Astfel de definiții ale unui "tip de date" nu dau nici un sens semantic tipului.
Reprezentare
Un tip este definit în ceea ce privește compoziția sa de tipuri mai primitive de multe ori
tipuri mașină.
Reprezentare și comportament
Un tip este definit ca reprezentarea sa și o serie de operatori de manipularea acestor
reprezentări.
Spațiu de valoare
Un tip este un set de valori posibile pe care o variabilă le poate avea. Astfel de definiții fac
posibilă discuția despre tipuri de date disjuncte, sindicate sau de produse carteziene pe
tipuri.
Spațiu de valoare și de comportament
Un tip este un set de valori pe care o variabilă poate avea și un set de funcții care se poate
aplica la aceste valori.

Definiția în termeni de reprezentare a fost de multe ori făcută în limbaje imperative, cum ar
fi ALGOL și Pascal , în timp ce definiția în termeni de spațiu și de comportament a fost
folosită în limbaje de nivel superior, cum ar fi Simula și CLU .

Clase de tipuri de date

Tipuri de date primitive

Articol principal:.

Articol principal: Tip de date primitiv.

Tipuri de date mașină

La cel mai scazut nivel, toate datele din computerele bazate pe electronică digitală sunt
reprezentate ca biți care pot lua valoarea 0 sau 1. Cea mai mică unitate adresabilă de date
este, de obicei, un grup de biți numit octet sau byte (un octet (byte), contine 8 biți). Unitatea
ce poate fi prelucrată de instrucțiunile codului mașină este numită cuvânt (din 2011, de
obicei conține 32 sau 64 de biți). Majoritatea instrucțiunilor interpretează cuvântul ca
un număr binar, astfel încât un cuvânt de 32 biți poate reprezenta valori fără semn întregi de
la la   sau valori întregi cu semn de la  la . Datorită complementului
binar, limbajul mașină și ca atare mașina nu trebuie să se facă distincția între aceste tipuri de
date cu semn și cele fără semn în cea mai mare parte.
Există un set specific de instrucțiuni aritmetice, virgula mobilă care folosesc o interpretare
diferită a biților în cuvânt.

Tipurile de date mașină trebuie să fie expuse sau puse la dispoziție în sisteme sau în


limbajele de programare de nivel scăzut , pentru a permite un control cu granulatie fina pe
hardware. Limbajul de programare C , de exemplu, oferă tipuri de număr întreg cu lățimi
diferite, cum ar fi  short  și  long . În cazul în care un tip nativ corespunzător nu exista pe
platforma vizată, compilatorul le va descompune în cod folosind tipuri de date existente. De
exemplu, dacă un întreg pe 32 de biți este cerută pe o platformă de 16 biți, compilatorul îl va
trata tacit ca o serie de două numere întregi de 16 biți.

Mai multe limbaje permit declaratii ale datelor in sistem binar și sistem hexazecimal, pentru o
manipulare mai ușoară a datelor mașină.

În limbajele de programare de nivel superior, tipurile de date mașină sunt de multe ori
ascunse sau abstractizate ca un detaliu de implementare, care ar face codul mai puțin
portabil dacă ar fi expuse. De exemplu, un tip  numeric generic poate fi furnizat în loc de
tipuri întregi cu diferite lungimi de biți.

Tip logic

Tipul Boolean reprezintă valorile: adevărat și fals . Deși doar două valori sunt posibile, ele


sunt rareori puse în aplicare ca o singură cifră binară din motive de eficiență. Multe limbaje
de programare nu au un tip boolean explicit, ci interpretează (de exemplu) 0 ca fiind fals și a
alte valori ca adevărat.

Tipuri numerice

Cum ar fi:

 Tipurile de date întregi, care pot reprezenta numere întregi. Pot fi clasificate în funcție de
capacitatea lor de a conține valori negative (de exemplu,  unsigned  în C și C + +). Pot
avea, de asemenea, un număr mic de subtipuri predefinite (cum ar fi  short  și  long  în
C / C + +); sau permite utilizatorilor să definească în mod liber subintervale, cum ar fi 1 .. 12
(de exemplu,Pascal / Ada ).

Virgulă mobilă tipuri de date, numite uneori eronat reale, conțin valori fracționare. Ei au, de
obicei limite predefinite atat pentru valorile extreme cât și pentru precizia lor. Acestea sunt
adesea reprezentate ca numere zecimale.

Tipuri de date "punct fix" sunt convenabile pentru a reprezenta valori monetare. Ele sunt
adesea reprezentate intern ca numere întregi, ceea ce duce la limite predefinite.
Bignum sau de precizie arbitrară sunt tipuri numerice fără limite predefinite. Ele nu sunt
tipuri primitive, și sunt utilizate cu moderație, din motive de eficiență.

Tipuri de compozite

Articol principal:.

Articol principal: Tip de date compozit.

Tipuri de compozite sunt derivate din mai mult de un tip primitiv. Aceasta se poate face în
mai multe moduri. Modalitățile în care sunt combinate sunt numite structuri de
date . Compunerea unui tip primitiv într-un tip de compus rezultă în general într-un nou tip, de
exemplu, cu matricea de-întreg este un tip diferit la număr întreg.

Un tablou stochează o serie de elemente de același tip într-o anumită ordine. Acestea sunt


accesate folosind un întreg pentru a specifica care este necesar elementul (deși elemente
pot fi de aproape orice tip). -Lungime fixă ​sau extensibilă matrice poate fi.

Înregistrare (de asemenea, numit tuplu sau struct) Înregistrările sunt printre cele mai
simple structuri de date . O înregistrare este o valoare care conține alte valori, de obicei în
număr fix și ordine și de obicei indexate după numele. Elementele de înregistrări sunt de
obicei numite domenii sau membri.

Uniune . O definiție de tip uniune va specifica care dintre o serie de tipuri primitive permise
pot fi stocate în cazurile sale, de exemplu ", float sau întreg lung". Contrast cu
o înregistrare , care ar putea fi definit pentru a conține un flotor și un întreg; în timp ce, într-o
uniune, există doar o singură valoare la un moment dat.

O uniune etichetat (de asemenea, numit o variantă , înregistrare variantă, discriminați


uniune, sau uniune disjuncte) conține un câmp suplimentar care indică tipul de curent,
pentru siguranță sporită tip.

Un set este o structură de date abstract , care poate stoca anumite valori, fără nici un fel
special ordine , și nu valori repetate. Valori înșiși nu sunt preluate de la seturi, mai degrabă
unul testează o valoare de membru pentru a obține un boolean "în" sau "nu".

Un obiect conține un număr de câmpuri de date, cum ar fi un record, și, de asemenea, o


serie de fragmente de cod de program pentru a accesa sau de a le modifica. Structuri de
date care nu conțin cod, cum ar fi cele de mai sus, sunt numite simplu structură de date
vechi .

Multe altele sunt posibile, dar acestea tind să fie variațiuni și compuși de mai sus.

Enumerările

Articol principal:.
Articol principal: Tip de date enumerat.

Tipul enumerat . Aceasta are valori care sunt diferite între ele, și care pot fi comparate și
atribuie, dar care nu au în mod concret o reprezentare în memoria calculatorului;compilatoare
și interpretoarele le pot reprezenta în mod arbitrar. De exemplu, cele patru culori într-un
pachet de cărți de joc pot fi reprezntate de patru valori: TREFLĂ, ROMB, INIMĂ ROȘIE, INIMĂ
NEAGRĂ aparținând unui tip enumerat numit cărți de joc În cazul în care o variabilă V este
declarată având cărți de joc ca tip de date, i se poate atribui oricare dintre aceste patru
valori. Unele implementări permit programatorilor să atribuie valori întregi valorilor
enumerate, sau chiar să le trateze ca un tip echivalent cu numere întregi.

Caractere și șiruri de caractere

Caractere alfanumerice litere, cifre, spațiu, semne de punctuație, etc

Șiruri alfanumerice de caractere, o secvență de caractere. Acestea sunt de obicei folosite


pentru a reprezenta cuvinte și text.

Tipurile caracter și șir de caractere pot stoca secvențe de caractere dintr-un set de caractere,
cum ar fi ASCII sau UTF-8. Deoarece cele mai multe seturi de caractere includ cifre, este
posibil să existe un șir numeric, cum ar fi  "1234" . Cu toate acestea, mai multe limbaje ar
trata acest șir ca aparținând unui tip diferit, cu valoarea numerică  1234 .

Tipurile caracter și șir de caractere pot avea diferite subtipuri în funcție de mulțimea
necesară de caractere. Tipul original pe 7-biti, ASCII, s-a dovedit a fi limitat, și a fost înlocuit
cu seturi de 8 și 16 biți, (UTF-8, UTF-16) care poat codifica o mare varietate de alfabete non-
latine (ebraică, chineză, japoneză, arabă ) și alte simboluri. Sirurile de caractere pot fi fie
alocate dinamic sau de dimensiune fixă, chiar în cadrul aceluiași limbaj de programare. Ele
pot fi, de asemenea, categorisite prin dimensiunea lor maximă.

Notă: siruri de caractere nu sunt primitive în toate limbajele, de exemplu în C, ele pot fi
compuse din tablouri de caractere.

Alte tipuri

Tipurile pot fi de baza, sau derivate din, tipurile de bază explicate mai sus. În unele limbaje,
cum ar fi C, funcțiile au un tip de date derivat din tipul de date al valorii intoarse de acestea.

Pointeri și referințe

Principalul tip derivat non-compozit este pointerul, un tip de date a cărui valoare referențiază
(sau "indică la"), o altă valoare stocată în altă parte în memoria calculatorului cu ajutorul
adresei de memorie. Este un fel primitiv de referință . (În termeni de zi cu zi, un număr de
pagină într-o carte ar putea fi considerat o bucată de date care se referă la alta). Pointerii
sunt adesea stocați într-un format similar cu un număr întreg; Cu toate acestea, încercarea de
a dereferenția, un pointer a cărui valoare nu a fost niciodată o adresă validă de memorie ar
putea duce la o eroare în program. Pentru a ameliora această problemă potențială, pointerii
sunt considerați un tip distinct de tipul de date pe care le indică, chiar dacă reprezentarea de
bază este aceeași.

Tipuri de date funcție

Articol principal:.

Articol principal: Tip de date funcție.

Puteți îmbunătăți această secțiune (https://ro.wikipedia.org/w/index.php?title=Tipuri_de_date&action=e


dit) extinzând-o.
Aflați mai mult

Tipuri de date abstracte

Articol principal:.

Articol principal: Tip de date abstract.

Orice tip care nu specifică o punere în aplicare este un tip abstract de date . De exemplu,
o stivă (care este un tip abstract) poate fi implementat ca o matrice (un bloc contiguu de
memorie care conține mai multe valori), sau ca o listă de legat (un set de blocuri de memorie
non-adiacente legate de indicii ).

Tipuri abstracte pot fi manevrate de cod care nu știu sau "grijă" ce tipuri de bază sunt
cuprinse în ele. De programare care este agnostic cu privire la tipurile de date concrete este
numit de programare generic . Arrays și înregistrările pot conține, de asemenea, tipuri de
bază, dar sunt considerate de beton, deoarece acestea specifica modul în care conținutul sau
elementele acestora sunt prevăzute în memorie.

Exemplele includ:

O coadă este un prim-in lista de primul-out. Variațiile sunt Deque și coadă prioritate .

Un set poate stoca anumite valori, fără nici un fel special ordine , și cu valori repetate.

O stivă este un ultim în primul ieșit,.

Un copac este o structură ierarhică .

Un grafic .
Un hash sau dicționar sau hartă sau harta / asociativă matrice / Dicționar este o variație
mai flexibil pe o înregistrare, în care perechi nume-valoare pot fi adăugate și șterse în mod
liber.

Un pointer inteligent este omologul abstract la un pointer. Ambele sunt tipuri de referință

Tipuri de utilități

Pentru comoditate, limbaje de nivel înalt poate furniza tipuri de date de-a gata "lumea reală",
de exemplu, ori date și valori monetare și de memorie, chiar și în cazul în care limba le permite
să fie construit din tipuri primitive.

Sisteme de tip

Articol principal:.

Articol principal: sistem de tip de date.

Un sistem de tip asociază tipuri cu fiecare valoare calculată. Prin examinarea fluxului pe


aceste valori, un sistem de tip încearcă să demonstreze că pot apărea erori de tip. Sistemul
tip în cauză determină ceea ce constituie o eroare de tip, dar un sistem de tip general,
urmărește să garanteze că operațiunile așteaptă un anumit tip de valoare si nu sunt folosite
cu valorile pentru care această operațiune nu are sens.

Un compilator poate utiliza tipul static a unei valori pentru a optimiza depozitarea are nevoie
și de alegerea unor algoritmi de operații asupra valorii. În multe compilatoare C tipul de
date float, de exemplu, este reprezentat în 32 de biți, în acord cu specificațiile IEEE pentru
numere de precizie simpla în virgulă mobilă. Ei vor folosi astfel de virgulă flotantă
specifice operațiunilor de microprocesor pe aceste valori (virgulă flotantă, plus, înmulțire etc).

Adâncimea de constrângeri de tip și modul de evaluare a acestora


afectează tastarea limbii. Un limbaj de programare poate asocia mai mult o operațiune cu
diferite algoritmi de beton pe fiecare tip în cazul polimorfismului. Introduceți teorie este
studiul de sisteme de tip, cu toate că sistemele de tip concret de limbaje de programare
provin de la probleme practice de arhitectura de calculator, punerea în aplicare a compilator,
și design limbaj.

Sistemele de tip pot fi variate static sau dinamic, puternic sau slab dactilografiere, și așa mai


departe.

Note
1. ^ http://foldoc.org/data+type

2. ^ Shaffer, C.A. Data Structures and Algorthms, 1.2

Lectură suplimentară

Parnas, David L.; Shore, John E.; Weiss, David (1976). „Abstract types defined as classes of
variables”. Proceedings of the 1976 conference on Data : Abstraction, definition and
structure: 149–154. doi:10.1145/800237.807133 (https://doi.org/10.1145%2F800237.80
7133) .

Cardelli, Luca; Wegner, Peter (decembrie 1985). „On Understanding Types, Data
Abstraction, and Polymorphism” (http://lucacardelli.name/Papers/OnUnderstanding.A4.p
df) (PDF). ACM Computing Surveys. New York, NY, USA: ACM. 17 (4): 471–523.
doi:10.1145/6041.6042 (https://doi.org/10.1145%2F6041.6042) . ISSN 0360-0300 (http
s://www.worldcat.org/issn/0360-0300) .

Cleaveland, J. Craig (1986). An Introduction to Data Types. Addison-Wesley.


ISBN 0201119404.

Adus de la https://ro.wikipedia.org/w/index.php?
title=Tipuri_de_date&oldid=14478477

Ultima modificare efectuată acum 1 an de către Turbojet.

S-ar putea să vă placă și