1. Tipul enumerare
In marea majoritate a programelor se utilizeaza numerele intregi, chiar atunci cand nu sunt implicate valori numerice si cand intregii reprezinta de fapt abstractizari ale unor entitati reale. Pentru a evita aceasta situatie limbajele de programare introduc un nou tip de date primitiv nestructurat precizat prin enumerarea tuturor valorilor sale posibile
Un astfel de tip se numeste Tip enumerare si el este definit prin enumerarea tuturor valorilor sale posibile: c1,c2,.,cn .
TYPE TipEnumerare=(c1,c2,c3,,cn); [1.3.1.a]
enum TipEnumerare variabila;
typedef enum nume_tip; [1.3.1.b]
Este un tip ordonat, valorile sale considerandu-se ordonate crescator in ordinea in care au fost definite in baza conventiei:(ci < cj) (i < j)
Cardinalitatea tipului este card(TipEnumerare) = n .
Tipul enumerare este un tip nestructurat definit de utilizator, in consecinta utilizarea sa presupune atat faza de implementare (declarare a tipului) cat si faza de instantiere (declarare de variabile apartinatoare tipului).
Tipurile standard predefinite sunt acele tipuri care sunt disponibile in marea majoritate a sistemelor de calcul ca si caracteristici hardware
Tipurile standard predefinite includ numerele intregi, valorile logice, caracterele si numerele fractionare,: INTEGER, BOOLEAN, CHAR, REAL.
Tipul intreg implementeaza o submultime a numerelor intregi,
Dimensiunea intregilor (numarul maxim de cifre) variaza de la un sistem de calcul la altul si depinde de caracteristicile hardware ale sistemului. Se presupune insa ca toate operatiile efectuate asupra acestui tip conduc la valori exacte si se conformeaza regulilor obisnuite ale aritmeticii. Procesul de calcul se intrerupe in cazul obtinerii unui rezultat in afara setului reprezentabil (depasirea capacitatii registrelor - DCR). Pe multimea numerelor intregi in afara operatorilor clasici de comparare si atribuire, pe tipul intreg se definesc si operatori standard. Operatori standard: adunare (+), scadere (-), inmultire (*), impartire intreaga (DIV) si modulo (MOD)
m - n < (m DIV n)* n <= m
(m DIV n)* n + (m MOD n) = m
Tipul real implementeaza o submultime reprezentabila a numerelor reale.
In timp ce aritmetica numerelor intregi conduce la rezultate exacte, aritmetica valorilor de tip real este aproximativa in limitele erorilor de rotunjire cauzate de efectuarea calculelor cu un numar finit de cifre zecimale.
Tipului Boolean are doua valori care sunt precizate de catre identificatorii TRUE (adevarat) si FALSE (fals).
In limbajul C aceste valori lipsesc fiind substituite de valori intregi: 1 sau <> 0 semnifica adevarat, respectiv 0 semnifica fals.
o Operatorii specifici definiti pentru acest tip sunt operatorii logici: conjunctie, reuniune si negatie
P |
Q |
P AND Q |
P OR Q |
NOT P |
true |
true |
true |
true |
false |
true |
false |
false |
true |
false |
false |
true |
false |
true |
true |
false |
false |
false |
false |
true |
Tabelul 1.3.2.a. Operatori logici
Tipul standard caracter cuprinde o multime de caractere afisabile.
o Codificarea ASCII (American Standard Code for Information Interchage)
Litere mari:A B CX Y Z
hexazecimal: x'41' x'42' x'43' x'58' x'59' x'5A'
zecimal: 656667 888990
Cifre: 0 1 29
hexazecimal: x'30' x'31' x'32'x'39'
zecimal: 4849 50 57
Litere mici:a b c z
hexazecimal: x'61' x'62' x'63' x'7A'
zecimal: 97 98 99 122
Caracterul blanc: hexazecimal: x'20' zecimal: 32
Limbajul Pascal defineste tipul primitiv char i
Limbajul C tipurile char si int sunt echivalente.
Stabilirea naturii unui caracter:
('A' <= x) AND (x <= 'Z') - x este litera mare;
('a' <= x) AND (x <= 'z') - x este litera mica;
('0' <= x) AND (x <= '9') - x este o cifra.
3. Tipul subdomeniu
Este destul de frecvent cazul in care o variabila a unui anumit tip poate sa ia valori doar intr-un anumit interval limitat.
Acest lucru poate fi exprimat definind variabila ca apartinand unui tip subdomeniu al tipului respectiv conform relatiei:
TYPE TipSubdomeniu = min..max; [1.3.3.a]
unde min si max sunt limitele intervalului.
Se precizeaza faptul ca tipul TipSubdomeniu se refera la un tip deja definit (predefinit) care se numeste tip scalar asociat si ca min si max sunt valori ale acestui tip.
In secventa [1.3.3.b] se prezinta cateva exemple de definire a unor astfel de tipuri:
TYPE TipAn = 1900..1999;
TipLitera = 'a'..'z'; [1.3.3.b]
TipCifra = '0'..'9';
TipOfiter = sublocotenent..general;
In acest context fiind date variabilele y: TipAn si c: TipLitera , atunci atribuirile y:= 1973 si c:= 'W' sunt permise, iar y:= 1291 sau c:= '9' nu.
Legalitatea unor asemenea atribuiri nu poate fi verificata de catre compilator decat in cazul in care valoarea de atribuit este precizata printr-o constanta sau printr-o variabila de acelasi tip.
Atribuiri de forma y:= i si c:= a unde i este de tip INTEGER iar a de tip CHAR pot fi verificate numai in timpul executiei programului element care complica si lungeste codul generat de catre compilator.
Practica confirma insa valoarea deosebita a unor astfel de verificari in dezvoltarea de programe.
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |