Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

Calculatoare


Qdidactic » stiinta & tehnica » informatica » calculatoare
TIPURI DE DATE - tipuri simple standard, tipuri simple definite de utilizator



TIPURI DE DATE - tipuri simple standard, tipuri simple definite de utilizator


TIPURI DE DATE




Data este o entitate asupra careia poate opera calculatorul. Limbajul Pascal permite programatorului sa foloseasca tipuri de date predefinite (puse la dispozitie de acest limbaj) sau sa-si construiasca singur noi tipuri de date definite de utilizator. Tipul este definit ca o multime de valori careia ii este asociat un set de operatii. O data care apartine unui tip poate lua oricare din valorile tipului si a-supra ei se poate efectua oricare din operatiile permise de acest tip.

**Clasificare amanuntita a tipurilor de date:

*Tipuri simple standard *

Tipurile simple, exceptand tipurile reale, sunt ordinale. Operatiile asocia-

te acestor tipuri sunt descrise prin operatori sau prin functii predefinite. Aceasta categorie este formata din patru tipuri de date. Toate acestea au aceeasi multime de valori:TRUE si FALSE.

Tipul logic are domeniul de valori format doar din doua valori:true si false. Setul

de operatii permis asupra datelor acestui tip este:operatia de disjunctie reprezen-

tata prin operatorul binar OR;operatia de conjunctie reprezentata prin operato-

rul binar AND;operatia de negatie reprezentata prin operatorul unar NOT. In afara acestor operatii logice se pot aplica asupra datelor tipurilor booleene si ope-

ratii relationale reprezentate prin urmatorii operatori relationali:”>”, ”<”, ”>=”,            „<=”, ”=”, ”<>”.

Tipul intreg are elemente numere intregi reprezentate in mod uzual. Setul de

operatii permis asupra datelor acestui tip este:adunarea(+), scaderea(-), inmulti-

rea(*), impartirea intreaga(div), operatia de determinare a restului la impartirea intreaga(mod), exponentierea, reprezentata prin scrierea matematica obisnuita, compararea(<, >, =, >=, <=, <>), schimbarea semnului prin operatorul unar „-„.



Toate operatiile au rezultat intreg, cu exceptia compararilor care dau un rezultat de

tip logic. Exista cinci tipuri intregi, reprezentate prin identificatorii:INTEGER, BYTE, SHORTINT, WORD, LONGINT.

Tipul caracter are numele descris prin identificatorul CHAR. Valorile acestui tip formeaza o multime finita si ordonata ce cuprinde caractere ale codului ASCII extins(0-255). Fiecare valoare a acestui tip este formata dintr-un singur caracter cuprins intre apostrofuri. Operatiile asociate ale acestui tip de date sunt descrise prin functiile predefinite:SUCC(var_char), PRED(var_char), ORD(var_char), CHR (var_numerica), UPCASE(var_char). Se pot aplica de asemenea operatorii relatio- nali.

Tipul real are ca valori submultimi ale numerelor rationale. Exista cinci tipuri reale de date:REAL, SINGLE, DOUBLE, EXTENDED si COMP. Un tip real este finit din cauza limitarilor date de reprezentarea interna a valorilor sale. Nu se poate determina numarul de ordine al unei date reale in multimea ordonata a valorilor tipului respectiv. De aceea, nu se poate identifica succesorul sau predecesorul unei valori reale. Acesta este motivul pentru care tipul real nu este ordinal. Setul de operatii permise asupra datelor acestui tip este in general acelasi cu setul de operatii permise pe tipul intreg, cu singura diferenta ca operatiile desemnate de operatorii DIV si MOD nu se pot aplica datelor de tip real. Opera- torii aritmetici sunt:”+”-adunarea, ”-„-scaderea, ”*”-produsul, ”/”-impartirea, ”-„- schimbarea semnului. Operatorii relationali, aplicati asupra datelor reale, conduc la obtinerea unor rezultate de tip boolean. Functiile predefinite care pot fi folosite sunt:ABS(var_reala), SQR(var_reala), SQRT(var_reala), TRUNC(var_reala), INT (var_reala), ROUND(var_reala), FRAC(var_reala), SIN(var_reala), COS(var_reala), ARCTAN(var_reala), EXP(var_reala).

*Tipuri simple definite de utilizator

Din aceasta categorie fac parte doua tipuri de date:tipul enumerare si tipul interval. Ambele tipuri sunt ordinale. Utilizatorului i se ofera posibilitatea definirii numelui tipului si a valorilor acestuia.

Tipul enumerare. Elementele unui astfel de tip formeaza o multime ordonata de valori reprezentate de identificatori. Operatiile permise asupra acestor tipuri sunt desemnate de operatorii relationali si de functiile predefinite SUCC, PRED si ORD. Valorile acestor tipuri, fiind definite in interiorul programului, nu pot fi citite si nici afisate.

Tipul interval(subdomeniu). Multimea de valori a unui astfel de tip reprezinta un subdomeniu al unui tip ordinal, deja definit, numit tip gazda. Rezulta ca se pot defini tipuri interval pe orice tip intreg, boolean, char sau enumerare. Operatiile definite pe tipul interval sunt aceleasi cu cele asociate tipului gazda. Astfel, un tip interval extras din tipul integer are asociate aceleasi operatii cu acesta.
*Tipuri structurate de date* Tipurile de date care apartin acestei grupe au ca valori date construi-te ca agregari ale unor tipuri de date simple sau structurate. Turbo Pascal permite definirea urmatoarelor tipuri structurate:tablou, multime, inregistrare, fisier. Tipul tablou(ARRAY). Se foloseste pentru a implementa in Pascal structura unui tablou. Tabloul reprezinta un ansamblu(o structura de date) cu un numar fix de elemente de acelasi fel in care referirea la un element al tabloului se face prin intermediul unui sau a doi indici si prin numele tabloului. Daca regasirea unui ele- ment din tablou se face pe baza unui singur indice, atunci tabloul se numeste uni- dimensional si i se mai spune vector sau sir. Daca regasirea unui tablou se face pe baza a doi indici, atunci tabloul se numeste bidimensional si i se mai spune matri- ce. Vectorul este un tablou unidimensional si se declara astfel:array[liminfind. . limsupind] of tip element, unde nume reprezinta un indetificator utilizator prin care specificam numele sirului;liminfind si limsupind reprezinta valorile extreme pe care le ia indicele dupa care vom gasi fiecare element din sir. Tipul indicelui poate sa fie orice tip ordinal definit de integer, word si longint, dar putem folosi subdomenii ale acestor tipuri. Indicele ne va spune numarul efectiv de elemente din sir ;numarul de elemente este fix. Tipelemente reprezinta tipul elementelor tabloului;poate sa fie un tip oarecare standard sau defunit de utilizator, simplu sau structurat. Definirea completa a unui vector se poate face precizand numele vectorului pentru a ne putea referi in interiorul programului la acel vector, numa- rul elementelor se specifica prin liminf si limsup a indicelui, tipul elementelor si numarul elementelor trebuie specificate pentru ca in memorie sa se rezolve spatiu pentru toate elementele sirului in functie de tipul lor;elementele se pastreaza in memorie unul dupa altul de ordinea indicelui. Zona de memorie alocata pentru vector in partea de declaratii in functie de numarul de elemente declarat si de tipul elementelor ramane fixa pe toata durata executiei programului chiar daca introduce valori numai pentru o parte din elementele specificate. Acesta este motivul pentru care tabloul este considerat o sructura de date statica. O declaratie de variabila de tip tablou denumeste intreaga structura a tabloului;pentru ca doua declaratii diferite de tablouri anonime sa introduca tipuri distincte va trebui ca variabilele de acelasi tip sa apara in aceasi declaratie de variabila sau sa fie de un tip comun declarat in TYPE. Se pot efectua toate operatiile permise de tipul de baza al tabloului. O- peratiile care actioneaza la nivelul unei variabile de tip tablou luata in intregime sunt urmatoarele:atribuirea-o variabila de tip tablou primeste valoarea unei alte variabile de tip tablou numai daca cele doua variabile fac parte din aceeasi declaratie sau daca sunt din acelasi tip ede data definit de utilizator;selectarea unei componente-selectarea unei variabile de tip tablou se realizeaza prin specificarea numelui variabilei urmat intre [ ] de expresia indiceala.

Matricea este un tablou bidimensional adica regasirea unui element se face pe baza a doi indici:i-linie, j:coloana. Matricea in care numarul de linii=cu numarul de coloane se numeste matrice patratica. Relatii intre indicii elementelor unei ma- trici patratice:pe diagonala principala-i=j, deasupra diagonalei principale-i<j, sub diagonala principala-i>j, pe diagonala secundara-i+j=n+1, deasupra diagonalei secundare-i+j<n+1, sub diagonala secundara-i+j>n+1.


Tipul string. Este tip special de vector cu elemente de tip char care memoreaza inafara caracterelor din sir si lungimea respectivului sir de caractere, adica numarul de caractere existente efectiv in sir. Variabilele de tip string ocupa in memorie un spatiu egal cu n+1 octeti pentru ca se memoreaza si lungimea variabilei(n=nr de caractere din sir);o variabila de tip string este o succesiune de caractere cuprinse intre doua caractere” „. Tipul string este predefinit(cunoscut)deci nu este nevoie sa fie declarat cu type;este asemanator tipului tablou de caractere, diferenta esenti- ala dintre aceste tipuri consta in posibilitatea ca numarul de caractere al unei date de tip string sa varieze dinamic intre 0 si o valoare maxima specificata in definirea tipului, in timp ce nr elementelor unui tablou de caractere este fixat.

Operatii permise cu siruri de caractere:citirea-variabilele de tip string pot sa apara ca argumente in apelul procedurii Read, in acest fel citindu-se intregul sir de caractere;scrierea-permite doua tipuri:v sau v:w;selectarea de componente-componentele unei variabile de tip string au tipul char si se specifica prin identificatorul variabilei urmat intre paranteze drepte de o expresie indiceala intreaga cu valori cuprinse intre 0 si lungimea efectiva, din acest punct de vedere se aseamana cu tablourile; aplicarea operatorilor relationali-spre deosebire de tablouri, variabilele de tip string pot sa apara in expresii relationale. Operatorii relationali, aplicati unor date de tip string, furnizeaza o valoare booleana. Compara- tia consta in :compararea caracter cu caracter de la stanga la dreapta a codului ASCII a caracterelor pana cand se ajunge la doua caractere diferite sau se epui- zeaza caracterele unuia dintre siruri. Expresia relationala primeste valoarea booleana in conformitate cu relatia dintre cele doua caractere pe care s-a oprit operatia si operatorul din expresia relationala. Functii si proceduri legate de datele de tip string. Subprogramele reprezinta parti identificabile prin nume ale unui program care se pot executa la cere prin intermediul acestor nume. In limbajul Pascal se impart in doua categorii: proceduri si functii. Deosebirea dintre ele consta in nr de valori calculate si returnate programului apelant:procedurile calculeaza mai multe valori sau nici una;functiile calculeaza si returneaza o singura valoare asociata numelui functiei. Functia Concat-concateneaza intr-un singur sir toate sirurile de caractere care apar in lista de parametri efectivi-CONCAT(s1, s2, . , sn). Functia Copy-returneza subsirul unui sir care apare ca parametru efectiv al functiei, obtinut prin prelucrarea a n caractere din sir, incepand cu o pozitie i precizata in apel-COPY(sir, i, n). Functia Pos-returneaza pozitia unui subsir intr-un sir-POS(subsir, sir). Functia Length(x)-are ca argument o expresie de tip string si are ca rezultat lungimea efectiva a sirului. Procedura Delete-sterge n caractere dintr-un sir, incepand cu o pozitie i-DELET(sir, i, n). Procedura Insert-inserteaza un sir de caractere intr-un alt sir incepand cu o pozitie i-INSERT(sir-sursa, sir-rezultat, i). Procedura Str-converteste o valoare numerica intr-un sir de caractere-STR(x:w:f, sir). Procedura Val-converteste o expresie de tip string intr-o valoare numerica- VAL(sir, n, cod).

Tipul Multime. Multimea de valori a tipului de date set este formata din submultimi ale unui tip ordinal. Operatii permise pe tipul de date set:reuniunea a doua multimi+, intersectia a doua multimi*, diferenta a doua multimi-, codificarea operatiei de apartenenta a unui element la o multime in, codificarea operatiei de incluziune<=, codificarea operatiei de inegalitate<>, codificarea operatiei de egalitate=.

Tipul Record. O data de tip record contine mai multe componente, numite campuri, care pot avea tipuri diferite. Se defineste astfel:

Type id_tip_inreg=Record

Lista_camp1:tip1;

. . . . . .

end;

Var var_inreg:id_tip_inreg;

Accesarea unui camp dintr-o data de tip inregistrare se face prin specificarea identificatorului datei si a campului respectiv separate prin punct. Limbajul Turbo Pascal pune la dispozitie instructiunea WITH care permite accesarea campurilor unei date de tip inregistrare, fara specificarea identificatorului datei respective. Citi- rea si scrierea unei date de tip inregistrare se face prin efectuarea acestor operatii asupra fiecarui camp pe care il cuprinde.


Tipul Fisier. In sens general, fisierul este o colectie de date stocata pe un suport extern. Exploatarea unui fisier extern poate fi facuta si printr-un program pascal,      pentru aceasta, punandu-se la dispozitie tipul FILE. Fisierul ar putea fi considerat o multime de date stocate pe disc. Fisierele text contin date care sunt inmagazina- te sub forma unor succesiuni de caractere ASCII. Organizarea lor este facuta pe linii de lungimi diferite, fiecare fiind terminata cu marcajul de final END OF FILE(EOLN). Variabila de fisier nu are voie sa apara in operatii de citire, tiparire, atribuire. Se foloseste doar pentru a crea legatura intre programul sursa de creare, exploatare si fisierul fizic de pe disc.


Operatii asociate tipului text:operatia de asociere-face legatura intre vari abila fisier(fisierul logic)si fisierul fizic existent pe suportul extern. Se realizeaza prin intermediul procedurii predefinite ASSIGN(fis_logic, fis_fizic);crearea fisierelor-presupune deschiderea unui fisier gol, realizata de procedura predefinita REWRITE(VAR_FIS);citirea datelor din fisiere-presupune deschiderea fisierului realizata de procedura predefinita RESET(f);adaugarea unor noi date in fisier-se deschide fisierul cu APPEND(f), efectul va fi pozitionarea indicatorului de fisier dupa ultima linie a fisierului existent;ERASE(f)-sterge fisierul fizic asociat variabi- lei f;in momentul apelarii procedurii fisierul trebuie sa fie inchis;dupa ce fisierul fizic s-a sters putem asocia variabilei f alt fis fizic;RENAME(f, ’nume_noufis’)-re-denumeste fisierul fizic asociat variabilei f cu noul nume;din acel moment, vechiul nume nu mai are nici o semnificatie.




Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright