Conceptul de tip de date, cele mai simple tipuri de date, tipurile de date standard, tipurile organice

Concepte de bază ale structurilor

5. Burkov V.N. Bazele teoriei matematice a sistemelor active. - M: Science, 1977. - 254.

6. Aurelio Peccei. Calitățile umane. - M: Progress, 1985. - 311.







Tipurile de date diferă de la nivelurile inferioare ale sistemului. În toate limbile de programare, tipurile de date

Acest lucru se explică prin faptul că pentru numerele acestor tipuri sunt alocate volume diferite de memorie, se folosesc diferite registre de microprocesoare, iar pentru operațiile cu ele se folosesc diverse comenzi și diferite miezuri de microprocesor.

Conceptul de tip de date a apărut în limbile de programare la nivel înalt ca o reflectare a faptului că datele prelucrate pot avea:

· Seturi diferite de valori admisibile,

· Stocate în memoria calculatorului în diferite moduri,

· Ocupa diferite volume de memorie

· Procesat folosind diferite comenzi ale procesorului.

Există limbi fără tipuri? Teoretic, nu pot exista limbi în care nu există tipuri de date.

Acest lucru rezultă din faptul că toate limbile se bazează pe o mașină Turing sau pe un calcul lambda.

În practică, acest lucru nu este posibil. Puteți clasifica limbile de programare în funcție de modul în care sunt definite tipurile de date:

1. Limbi cu tip de date polimorfe. Ele nu leagă variabilele, constantele, parametrii formali, valorile de retur ale funcțiilor cu anumite tipuri, susținând un singur tip de date polimorfe.

În forma pură a acestor limbi nu se întâmplă, dar exemple similare - MS Visual Basic - varianta de tip, Prologue. În aceste limbi, variabila poate lua orice valoare de orice tip, puteți trece valori de orice tip la parametrii funcției și funcția poate returna orice valoare de orice tip.

O comparație a tipurilor de valori ale variabilelor și parametrilor cu operațiunile aplicate acestora se efectuează direct în timpul acestor operații.

De exemplu. expresia a + b, poate însemna

· Adăugarea numerelor dacă a și b au valori numerice.

· Aderați rândurile la unul dacă a și b au valori șir.

· O operație nevalidă (eronată) dacă valorile a și b sunt incompatibile.

Această comandă se numește tastare dinamică. Limbile care acceptă numai tastarea dinamică sunt uneori numite unitate. cu toate acestea, există în continuare tipuri de date în ele.

2. Limbi cu definiție implicită a tipurilor. BASIC este un exemplu de limbaj fără tipuri, dar acest limbaj puternic este diferit:

· Tipuri de coarde (se adaugă $),

· Tipuri numerice (nimic nu este adăugat).

3. Limbi cu un tip definit de utilizator. Limbile sunt cunoscute în care tipurile de date sunt determinate automat și nu sunt specificate de utilizator.

Fiecare variabilă, parametru, funcție este atribuită unui anumit tip de date.

În acest caz, pentru orice expresie, posibilitatea executării acesteia și tipul valorii obținute pot fi determinate fără executarea programului. Această abordare se numește scriere statică.

Regulile pentru manipularea variabilelor, expresiilor și parametrilor de diferite tipuri pot fi foarte stricte (C ++) și foarte liberale (C).

De exemplu. în limba clasică C aproape toate tipurile de date sunt compatibile - pot fi utilizate împreună în orice expresie, atribuie valoarea unei variabile de un tip la o altă variabilă fără aproape nici o restricție.

Compilatorul generează un cod care asigură conversia tipului, iar corectitudinea logică a unei astfel de conversii rămâne pe conștiința programatorului.

Limbi similare sunt numite limbi cu tastatură slabă. Opusul sunt limbile cu tastare puternică. Ada, unde fiecare operație necesită operanzi de tipuri strict specificate. Nu sunt acceptate conversii de tip automat.

În practică, limbile de programare suportă simultan mai multe tipuri de definiții de tip

Aplicare practică. Tipurile de limbi de programare nu corespund întotdeauna strict tipurilor matematice similare.

De exemplu, tipul de număr întreg al majorității limbajelor de programare nu se potrivește cu cel utilizat în matematică. pentru că În matematică, acest tip nu are nici o limită superioară sau inferioară, iar în limbile de programare, aceste constrângeri sunt prezente.







În limbi și sisteme, există multe tipuri întregi care diferă în cantitatea de memorie utilizată.

dacă tratăm o clasă ca tip de date, atunci definiția clasei este de fapt o definiție a unui predicat de tip. De asemenea, este posibilă testarea predicatului atât la etapa de compilare (verificarea tipului), cât și la etapa de execuție (polimorfism, foarte strâns legat de tipurile polimorfe). Pentru tipurile de bază astfel de predicate sunt date inițial inițiatorilor limbii.

În limbile de programare, clasificați variabilele în funcție de anumite caracteristici și distingeți:

Reprezentarea unor valori individuale, seturi de valori sau seturi de seturi.

Orice constantă, variabilă, expresie sau funcție este de un tip.

Principiile de bază ale conceptului de tip sunt următoarele:

1. Orice tip de date definește un set de valori la care aparține o anumită constantă pe care o variabilă sau expresie o poate lua și care poate fi formată printr-o funcție sau o operație

2. Tipul oricărei variabile notate cu o constantă, variabilă sau expresie poate fi dedusă după tipul sau descrierea sa. Pentru aceasta, nu este nevoie să efectuați calcule

3. Fiecare operație sau funcție necesită argumente pentru ao defini și dă un rezultat de un anumit tip. În cazul în care operațiunea dopekayut argumentele de mai multe tipuri, cum ar fi „+“ este utilizat pentru adăugarea de numere reale, și pentru a adăuga numere întregi, tipul de rezultat reglementat destul de anumite reguli.

4. Cele mai importante operațiuni de bază - comparație și atribuire. adică verificarea relației dintre egalitate (și ordinea în cazul tipurilor ordonate) și acțiunea de "stabilire a egalității".

Scopul principal al oricărui program este prelucrarea datelor. Diferitele tipuri de date sunt stocate și prelucrate în moduri diferite. În orice limbaj algoritmic, fiecare rezultat constant, variabil, de evaluare a unei expresii sau funcții trebuie să aibă un anumit tip.

Tipul de date definește:

· Reprezentarea internă a datelor în memoria calculatorului;

· Un set de valori care pot lua valori de acest tip;

• operațiuni și funcții care pot fi aplicate cantităților de acest tip.

O descriere tip obligatorie permite compilatorului să verifice valabilitatea diferitelor constructe de programe. Din alegerea tipului de magnitudine depinde de succesiunea instrucțiunilor de mașină compilate de compilator.

Toate tipurile de limbaj C ++ pot fi împărțite în:

· Simplu (scalar), poate fi programator standard și specific.

În C ++, definite șase tipuri standard de date simple pentru a reprezenta numere întregi, numere reale, caractere și valori logice. Pe baza acestor tipuri, precum și tablouri și indicii (un pointer nu este un tip separat, acesta este întotdeauna asociat cu un alt tip specific), puteți introduce o descriere a propriilor sale tipuri simple sau structurate.

Tipurile structurate includ:

Tipurile simple sunt împărțite în:

· Tipuri de puncte în virgulă mobilă.

Următoarele cuvinte cheie sunt definite pentru a descrie tipurile standard:

int (intreg); Tipul int nu este definit de standardul ANSI. Depinde de implementare. Pentru un procesor pe 16 biți, valorile pentru acest tip sunt 2 octeți, pentru procesoare pe 32 de biți, 4 octeți.

caractere (caractere); Tip de caractere (caractere). Valoarea tipului de caractere este numărul de octeți suficient pentru a accepta orice caracter din setul de caractere pentru acest computer. De obicei, acesta este un octet.

Tipul de caractere, ca și alte tipuri întregi, poate fi semnat sau nesemnat.

Valorile pot fi stocate cu valoarea semnul în intervalul -128 la 127. Când se utilizează specificator unsignedznacheniya poate fi în intervalul de la 0 la 255. Valorile de tip char este, de asemenea, utilizat pentru a stoca numere întregi care nu depășesc intervalul specificat.

wchar_t dublu-y-charm-underscore (caracter extins); Tipul wchar_t este conceput pentru a lucra cu un set de caractere, pentru codare care nu este suficient de 1 octet, de exemplu, Unicode. Mărimea acestui tip depinde de implementare; ca regulă, aceasta corespunde tipului scurt.

bool (logic); Tipul logic (bool). Valorile booleene pot avea valori adevărate și false. Reprezentarea internă a falsului este 0 (zero). Orice altă valoare este interpretată ca fiind adevărată. Când este convertit la un număr întreg, valoarea adevărată este setată la 1.

float (real); tipul de date pentru stocarea valorilor reale: Reprezentarea internă a unui număr real constă dintr-o mantisă și o ordine. Lungimea mantistei determină precizia numărului, iar lungimea ordinului este domeniul său.

Constantele punctului în virgulă au în mod implicit un tip dublu. Puteți specifica în mod explicit tipul constantei cu sufixele F, f (float) și L, l (lung). De exemplu, constanta 2E + 6L va fi de tip longdouble.

Tabel - Valori de valori ale tipurilor de date simple pentru IBM PC

dublu (real cu dublă precizie). tipul de date pentru stocarea valorilor reale: SM. plutitor

Există patru specificatori de tip care specifică reprezentarea internă și gama de valori ale tipurilor standard:

scurt (scurt); Calificatorul scurt înainte de numele de tip indică compilatorului că numărul este necesar pentru a aloca 2 octeți.

lung (lung); Specificatorul lung înseamnă că întreaga valoare va ocupa 4 octeți.

semnat (cu un semn); Atunci când se utilizează specificatorul semnat, cel mai semnificativ bit al unui număr este interpretat ca semnat (0 este un număr pozitiv, 1 este un număr negativ).

nesemnate (nesemnate). Constantele întâlnite în program sunt atribuite unui tip în funcție de tipul lor. Programatorul poate specifica în mod explicit tipul solicitat cu sufixele L, l (lungime) și U, u (nesemnate). De exemplu, constanta 32L este de tip lung și are 4 octeți.

Tipurile scurte, longint, signintint și unsignedint pot fi scurtate la scurt, lung, semnat și nesemnate, respectiv.







Articole similare

Trimiteți-le prietenilor: