Reprezentarea şi structurarea informatiei
Notiuni prezente in acest curs Date de tip caracter: Reprezentarea lor si operaţii cu tipul de date Date de tip logic: Reprezentarea lor si operaţii cu tipul de date Tipuri de date structurate Tipul de date tablou Operaţii asupra datelor de tip tablou Tipul de date şir de caractere Reprezentarea si operaţii asupra datelor Tipul de date articol Reprezentarea si operaţii asupra datelor Tipuri abstracte de date – Clase de obiecte
17 martie 2010
caracter logic
de tip şir de caractere de tip articol
1
Reprezentarea şi structurarea informatiei
Tipuri de date
Tipul de date caracter
Simbolurile de scriere (fie ele în alfabetul latin, chirilic sau japonez) se numesc caractere (în engleză „characters”) şi ele sunt necesare la scrierea textelor sau chiar a comenzilor prin care omul comunică cu calculatorul. Datele de tip char sunt caractere (în engleză character), adică litere, cifre, semne de punctuaţie şi caractere speciale.
17 martie 2010
Lect. ing. Florin Postolache
2
Reprezentarea şi structurarea informatiei
Tipuri de date
Reprezentarea interna a datelor se face binar utilizandu-se o codificare. Aceasta codificare poate fi:
17 martie 2010
ASCII – cea mai utilizată tabelă de cod, provenind din standardul american (American Standard Code for Information Interchange); tabela Unicode – pe 16 biţi, care este o altă extensie a tabelei ASCII şi care are un număr mare de coduri disponibile, pentru reprezentarea nu numai a caracterelor latine cu diverse diacritice dar şi a caracterelor diferite de cel latin (chirilic, arab, etc.) Descrierea autorizată a sistemului de codificare Unicode se găseşte pe site-ul Web "Unicode Home Page". O descriere foarte bună se găseşte şi în Wikipedia.
Lect. ing. Florin Postolache
3
Reprezentarea şi structurarea informatiei
Tipuri de date
Literalii de tip char sunt formaţi din caracterul
respectiv, încadrat între două apostrofuri, de exemplu 'A', 'a', '4', '&', '$', '+', '%', etc. Aşa cum am arătat deja, în afară de literele alfabetului latin, se pot folosi şi litere din alte alfabete, de exemplu litere româneşti cu diacritice ('Ă', 'ă', 'Â', ' â', ' Î', ' î', ' Ş', 'ş', ' Ţ', ' ţ'), greceşti ('α', 'β', 'γ', 'δ' etc.), chirilice ('Б', 'Г', 'Э', 'Я', etc) şi multe altele. 17 martie 2010
Lect. ing. Florin Postolache
4
Reprezentarea şi structurarea informatiei
Tipuri de date
Secvenţe escape
Caracterele Unicode pot fi reprezentate în programe prin secvenţe escape, care încep prin simbolul \ (backslash). O primă categorie de secvenţe escape este de forma \uxxxx, unde xxxx sunt patru cifre hexazecimale, care reprezintă codul numeric al caracterului respectiv. Codificarea tuturor caracterelor poate fi găsită pe Web la http://www.unicode.org/charts/. Pentru limba română, majoritatea literelor sunt cele ale alfabetului latin, la care se adaugă literele cu diacritice, pe care le găsim în extensiile alfabetului latin: 'Ă' ('\u0102'), 'ă' ('\u0103'), 'Â' ('\u00C2'), 'â' ('\u00E2'), 'Î' ('\u00CE'), 'î' ('\u00EE'), 'Ş' ('\u015E'), 'ş' ('\u015F'), 'Ţ' ('\u0162'), 'ţ' ('\u0163') 17 martie 2010
Lect. ing. Florin Postolache
5
Reprezentarea şi structurarea informatiei
Tipuri de date
Reprezentarea caracterelor
Pentru a se deosebi de identificatori (care pot fi litere singulare), la manipularea caracterelor acestea se indică prin încadrarea simbolului de scriere între apostrof, adică se indică literali de tip caracter. Exemplu ‘A’, ‘a’, ‘0’, ‘:’. Aceste simboluri nu au nici o semnificaţie în sistemul de programe, ci ele au rol numai de a fi desenate pe dispozitivele de ieşire (ecran, imprimantă) pentru a fi citite de om. În tabelele de cod caracterelor li se asociază un număr întreg (fără semn), astfel ca ordinea numerică a codurilor să fie similară cu ordinea lexicografică a caracterelor în alfabetul ales. Astfel, în tabela ASCII sau Unicode: ‘A’= 65, ‘B’= 66, ‘C’= 67, ‘a’= 97, ‘b’=98, etc.
17 martie 2010
Lect. ing. Florin Postolache
6
Reprezentarea şi structurarea informatiei
Tipuri de date
Reprezentarea caracterelor
Pentru a se deosebi de identificatori (care pot fi litere singulare), la manipularea caracterelor acestea se indică prin încadrarea simbolului de scriere între apostrof, adică se indică literali de tip caracter. Exemplu ‘A’, ‘a’, ‘0’, ‘:’. Aceste simboluri nu au nici o semnificaţie în sistemul de programe, ci ele au rol numai de a fi desenate pe dispozitivele de ieşire (ecran, imprimantă) pentru a fi citite de om. În tabelele de cod caracterelor li se asociază un număr întreg (fără semn), astfel ca ordinea numerică a codurilor să fie similară cu ordinea lexicografică a caracterelor în alfabetul ales. Astfel, în tabela ASCII sau Unicode: ‘A’= 65, ‘B’= 66, ‘C’= 67, ‘a’= 97, ‘b’=98, etc.
17 martie 2010
Lect. ing. Florin Postolache
7
Reprezentarea şi structurarea informatiei
Tipuri de date
Operaţii cu tipul de date caracter
Tipul de date caracter este un tip ordinal, deci permite operaţii prin care se indică poziţia relativă a valorilor caracterelor, unele faţă de altele - predecesor pred(),succesor succ(). Fiind reprezentate prin numere întregi, caracterele permit operaţii aritmetice admise pentru întregi. Între acestea, sunt utile cele de incrementare / decrementare (creştere / descreştere cu o unitate), prin care se poate parcurge tabela de cod sau şi se pot genera succesiuni de litere. Trebuie subliniat că cifra ‘3’, nu este acelaşi lucru cu numărul 3 – primul este un simbol de scriere (şi are drept cod numărul 51(10)) iar al doilea este util pentru calcule şi are o reprezentare în baza 2.
17 martie 2010
Lect. ing. Florin Postolache
8
Reprezentarea şi structurarea informatiei
Tipuri de date
Date de tip logic
Expresia logică, numită și expresie booleană, este o expresie în care se aplică operatori logici (booleeni) asupra unor operanzi care au valori logice. Din evaluarea unei expresii logice se obține o valoare logică (true sau false). Reprezentarea datelor de tip logic
17 martie 2010
Datele care transpun în memoria calculatorului informaţiile despre situaţii carateriyate prin atributul „adevărat” sau „fals” se numesc date de tip logic, iar reprezentarea lor se poate face folosind un singur bit: apariţia evenimentului este asociată valorii ‘1’ logic, iar ne-apariţia valorii ‘0’ logic.
Lect. ing. Florin Postolache
9
Reprezentarea şi structurarea informatiei
Tipuri de date
Date de tip logic
Operaţii cu tipul de date logic
Este posibilă combinarea mai multor situaţii logice (vezi exemplul de la începutul acestui paragraf), pentru cazurile când acestea:
apar numai simultan (conjuncţia) – ŞI logic (în engleză AND), apar alternativ sau simultan (disjuncţia) – SAU logic (în engleză OR), apar în contradicţie (negaţia) – NU logic (în engleză NOT),
a
b
SI
SAU
NU a
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
17 martie 2010
Lect. ing. Florin Postolache
10
Reprezentarea şi structurarea informatiei
Tipuri de date
Tipuri de date structurate
Această categorie de date se referă la colecţii de piese de date - simple sau structurate, numite şi tipuri compuse de date. Vectori Tablouri
17 martie 2010
Lect. ing. Florin Postolache
11
Reprezentarea şi structurarea informatiei
Tipuri de date
Tabloul (în engleză array) este o structură de date ordonată formată din elemente care pot fi accesate prin indici.
Piesele de date din tablou sunt organizate pe linii şi coloane şi pentru a fi accesate sunt referite, adică adresate, prin indicii de line (şi eventual coloană). Mai jos se prezintă o matrice cu m
linii şi m coloane, în care fiecare element amn este referit prin linia n şi coloana m la intersecţia cărora se află. a1,1 a1,2 a1,3... a1,n a2,1 a2,2 a2,3... a2,n . . . . . . . . . . . . . . . . . . . am,1 am,2 an,3... am,n .
17 martie 2010
Lect. ing. Florin Postolache
12
Reprezentarea şi structurarea informatiei
Tipuri de date
Operaţii asupra datelor de tip tablou
Fiindcă datele de tip tablou sunt structuri ale altor tipuri de date, operaţiile posibile asupra elementelor din tablou sunt cele permise pentru tipul de date respectiv, de exemplu:
suma tablourilor – suma elementelor de acelaşi indice pentru linie şi coloană; înmulţirea tablourilor – obţinerea unui tablou produs corespunzător operaţiei produs vizate: scalar (linii cu coloane) sau vectorial (coloane cu linii), cu reguli din algebră.
Parcurgerea element cu element a tabloului se face şi pentru operaţiile banale:
17 martie 2010
introducerea datelor în tablou – ataşarea către fiecare element a unei valori
din tipul indicat, cu informaţii preluate de la tastatură sau dintr-un fişier; afişarea datelor din tablou – înscrierea valorilor fiecărui element pe ecran sau într-un fişier pe disc.
Lect. ing. Florin Postolache
13
Reprezentarea şi structurarea informatiei
Tipuri de date
Tipul de date şir de caractere
Simbolurile de scriere (caracterele) sunt utile mai ales pentru a se construi cu ele cuvinte, propoziţii şi fraze, necesare comunicării inter-umane sau denumirii obiectelor (în interiorul sau exteriorul sistemului de calcul). În acest scop se alătură caractere în şiruri ordonate, poziţia fiecărui caracter respectând regulile de scriere în limba respectivă. Fiecare astfel de şir va fi memorat într-o variabilă (locaţie de memorie) – rezervată anterior spre a primi numărul de caractere specificat, adică variabila va „lua valoare”.
17 martie 2010
Lect. ing. Florin Postolache
14
Reprezentarea şi structurarea informatiei
Tipuri de date
Reprezentarea datelor de tip şir de caractere
Fie un tablou unidimensional (vector) ce are drept elemente piese de tip caracter, în cuvinte cu variabila Nume care ia valoarea „Vasile” apoi „Ion”. Cuvintele pot fi unele mai lungi, altele mai scurte, deci pe lângă vectorul de caractere mai este necesară o informaţie care să indice lungimea curentă a şirului (sau poziţia ultimului caracter în din vector). În diverse limbaje de programare această informaţie specifică: lungimea şirului – limbajul Pascal (în prima poziţie din vector) finalul şirului – limbajul C (caracterul NULL după ultimul caracter din şir).
17 martie 2010
Lect. ing. Florin Postolache
15
Reprezentarea şi structurarea informatiei
Tipuri de date
Operaţii asupra datelor de tip şir de caractere
Cu toate că reprezentarea şirurilor se bazează pe tipul de date tablou, operaţiile posibile sunt specifice şirurilor de caractere şi sunt implementate prin funcţii în biblioteci asociate limbajului de programare. Între acestea, cele mai uzuale sunt cele de „concatenare” a şirurilor (adăugare a unui şir după un altul), precum şi cele de înlocuire a unui subşir (parte a unui şir) cu un alt subşir, în scopul prelucrării textelor. Expresia de concatenare are forma șir1+șir2, în care șir1 și șir2 sunt două șiruri de caractere. Valoarea acestei expresii este
un nou șir de caractere, obținut prin concatenarea șiruriloroperanzi, adică prin punerea lor unul după altul. În această expresie, operatorul + se numește operator de concatenare. 17 martie 2010
Lect. ing. Florin Postolache
16
Reprezentarea şi structurarea informatiei
Tipuri de date
Date de tip articol
Acestea sunt intalnite in Bazele de date care grupează datele referitoare la „obiecte” din lumea reală. Un tabel se referă la o categorie de obiecte anume în care, la rândul lor, o linie se referă la un obiect anume iar o coloană (o rubrică) se referă la o anume proprietate sau atribut al acelui obiect. O linie din tabel se numeşte uzual articol (sau înregistrare – în engleză „record”) iar o celulă ce conţine date (pe o coloană cu numele în capul de tabel) se numeşte câmp (în engleză „field”). Câmpurile pot conţine date de tip şir de caractere, numeric, sau date de tip logic .
17 martie 2010
Lect. ing. Florin Postolache
17
Reprezentarea şi structurarea informatiei
Tipuri de date
Reprezentarea datelor de tip articol
Un articol este o structură cu piese de date de tipuri diferite, fiecare piesă referită prin nume. Prin intermediul articolelor se pot manipula datele din tabele, în memoria internă a calculatorului şi la transferul cu discul - memoria externă. Accesul al fiecare piesă de date (câmp) din articol se face prin numele rubricii (al câmpului).
17 martie 2010
Lect. ing. Florin Postolache
18
Reprezentarea şi structurarea informatiei
Tipuri de date
Operaţii asupra datelor de tip articol
Similar tipului de date tablou, tipul articol este o structură ce conţine alte tipuri de date, astfel că operaţiile posibile asupra valorilor câmpurilor sunt cele permise pentru tipul de date din câmpul respectiv. De exemplul pentru datele de tip şir de caractere din câmpurile Nume şi Prenume sunt permise operaţii de concatenare.
17 martie 2010
Lect. ing. Florin Postolache
19
Reprezentarea şi structurarea informatiei
Tipuri de date
Tipuri abstracte de date – Clase de obiecte
După cum s-a aratat anterior, fiecare tip de date are un nume, o semnificaţie, un domeniu de valori şi operaţii posibile asupra acestor valori. În abordarea obiectuală, se definesc clase de obiecte, ca tipuri abstracte de date ce înglobează structura de variabile şi operaţiile asupra lor. Iniţial, clasa este descrisă privind datele (proprietăţile) şi metodele (prelucrările) caracteristice obiectelor pe care le reprezintă.
17 martie 2010
Lect. ing. Florin Postolache
20
Reprezentarea şi structurarea informatiei
Tipuri de date
Programarea orientată obiect este o paradigmă de programare, conform căreia programul este constituit dintr-un ansamblu de obiecte, care interacționează prin transmiterea de mesaje. Obiectul este un program autonom, care conține atât date cât și metode. Datele din obiect sunt păstrate sub formă de valori ale unor variabile ale obiectului, numite și atribute sau proprietăți. Metodele obiectului sunt subprograme (funcții sau proceduri). În majoritatea limbajelor orientate obiect, transmiterea de mesaje între obiecte constă în apelarea de către un obiect a unei metode a altui obiect.
17 martie 2010
Lect. ing. Florin Postolache
21
Reprezentarea şi structurarea informatiei
Tipuri de date
Avantajul pe care programatorul îl are la folosirea claselor de obiecte este acela că poate declara orice structură de date corespunzătoare unei categorii de obiecte din lumea reală (o clasă de obiecte), defineşte operatori specifici clasei iar apoi foloseşte obiecte din această clasă în expresii, ca şi cum ar fi piese simple de date. Mai mult, chiar faza de proiectare a programului, se simplifică fiindcă nu vor trebui decât „imaginate” obiectele şi prelucrările necesare cu acestea, în scopul obţinerii unui rezultat dorit.
Ex.: dacă se defineşte o clasă „paralelogram” , avem operatiile:
folosind operatori şi simboluri definite specific în cadrul clasei se pot face prelucrările:
„modificarea dimensiunii a două laturi paralele” „modificarea unui unghi de colţ”,
transformarea paralelogramului în dreptunghi transformarea dreptunghiului în pătrat,
Valorile obţinute după prelucrări vor fi „dreptunghi” respectiv „pătrat”.
17 martie 2010
Lect. ing. Florin Postolache
22
Reprezentarea Ĺ&#x;i structurarea informatiei
Intrebari?
ď Ž
17 martie 2010
Multumesc !
Bazele Informaticii
23