Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice
Acasa » referate » informatica
Tipuri nestructurate

Tipuri nestructurate


Tipuri nestructurate

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,.,c.




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).

2. Tipuri standard predefinite

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


creeaza.com logo mic.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.