Elemente de baza în informatica
Cap.1. Definitii de baza
Informatia este un mesaj obiectiv (concret) care elimina nedeterminarile în cunoastere.
Informatia variaza în functie de contextul la care se refera.
Se poate vorbi despre:
- Natura informatiei, legata de domeniul la care se refera;
- Canalul (sau uneori suportul) informatiei, reprezentând modalitatea de transmitere a informatiei.
Orice proces de transmitere a unei informatii presupune existenta a doi parteneri:
- un emitator de informatie;
- un receptor de informatie.
Informatica reprezinta un complex de discipline prin care se asigura prelucrarea rationala a informatiilor prin intermediul masinilor automate.
Ca urmare a dezvoltarii sale ca stiinta, informatica este divizata în urmatoarele subdomenii:
- Arhitectura calculatoarelor, disciplina care se ocu 848b15i pa cu organizarea componentelor fizice (hardware) ale calculatoarelor;
- Sisteme de operare, disciplina care se ocu 848b15i pa cu organizarea programelor care controleaza resursele si actiunile calculatorului;
- Algoritmi si structuri de date, disciplina care se ocu 848b15i pa cu metodele de obtinere a aplicatiilor, reprezentarea informatiilor, optimizarea aplicatiilor;
- Limbaje de programare, disciplina care se ocu 848b15i pa cu regulile care guverneaza notatiile de reprezentare a algoritmilor si structurilor de date;
- Ingineria programarii, disciplina care se ocu 848b15i pa cu automatizarea si eficientizarea activitatilor de proiectare si realizare a aplicatiilor;
- Calcule numerice si simbolice, disciplina care se ocu 848b15i pa cu elaborarea de modele matematice destinate simularii obiectelor si fenomenelor reale;
- Sisteme de gestiune a bazelor de date, disciplina care se ocu 848b15i pa cu organizarea cantitatilor mari de date;
- Inteligenta artificiala, disciplina care se ocu 848b15i pa cu simularea comportamentelor inteligente;
- Animatie si robotica, disciplina care se ocu 848b15i pa cu generarea si prelucrarea imaginilor si, respectiv, actionarea robotilor.
Cap.2. Sisteme de numeratie.
În general se vorbeste despre un "sistem de numeratie în baza q" ca despre un sistem care are urmatoarele caracteristici:
1. Foloseste un alfabet cu un numar de q simboluri diferite între ele, numite cifre, care formeaza un sir de numere consecutive;
2. Prima cifra din sir este 0;
3. Cifra cu valoarea cea mai mare este cu o unitate mai mica decât baza sistemului, deci are valoarea q-1;
4. În functie de pozitia lor în numarul N, cifrele se înmultesc cu puteri crescatoare ale bazei q, obtinându-se dezvoltarea numarului N dupa puterile bazei în forma:
N(q) = an an-1 an-2 . a2 a1 a0 = an · qn + an-1 · qn-1 + an-2 · qn-2 + . + a2 · q2 + a1 · q1 + a0 · q0
Notatia N(q) arata ca numarul N este scris în baza q.
Iata, mai jos, câteva exemple de sisteme de numeratie:
Sistemul zecimal, foloseste alfabetul 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, baza fiind q=10.
De exemplu:
N(10) = 723(10) = 7 · 102 + 2 · 101 + 3 · 100 = 7 · 100 + 2 · 10 + 3 · 1
Sistemul binar, foloseste alfabetul 0, 1, baza fiind q=2.
De exemplu:
N(2) = 1011(2) = 1 · 23 + 0 · 22 + 1 · 21 + 1 · 20 = 8 + 0 + 2 + 1 = 11(10)
Sistemul binar este folosit la reprezentarea informatiei la nivelul de baza al calculatorului, acolo unde informatia este tradusa prin marimi care nu pot avea decât doua valori (curentul circula sau nu circula, exista impuls electric sau nu exista, câmpul magnetic are un sens sau sensul contrar, starea logica este adevarat sau fals).
El are avantajul de a reflecta în modul cel mai direct corespondenta dintre valoarea numerica si starea datelor (informatiei) în calculator. Are însa dezavantajul de a necesita la scrierea pe hârtie un spatiu cu atât mai mare cu cât valoarea reprezentata este mai mare.
Sistemul octal, foloseste alfabetul 0, 1, 2, 3, 4, 5, 6, 7, baza fiind q=8.
De exemplu:
N(8) = 125(8) = 1 · 82 + 2 · 81 + 5 · 80 = 64 + 16 + 5 = 85(10)
Sistemul hexazecimal, foloseste alfabetul 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, baza fiind q=16.
De exemplu:
N(16) = 2A3B(16) = 2 · 163 + 10 · 162 + 3 · 161 + 11 · 160 = 2 · 4096 + 10 · 256 +3 · 16 + 11 = = 10811(10)
Sistemul hexazecimal a fost conceput pentru a economisi spatiu de scriere la reprezentarea numerelor mari.
De asemenea, asa cum se va vedea în continuare, între el si sistemul binar cu care se afla într-o relatie de multiplicitate, exista o corespondenta care se poate folosi la conversia dintr-un sistem în altul.
Conversia din baza 2 în baza 16
Acest tip de conversie este des folosit de catre programatorii care lucreaza direct cu adresele fizice de memorie pentru a converti valorile numerice dintr-un sistem în altul.
Fie numarul binar:
1111(2) = 1 · 23 + 1 · 22 + 1 · 21 + 1 · 20 = 8 + 4 + 2 + 1 = 15(10)
Dar 15 este numarul cel mai mare reprezentabil printr-o singura cifra în baza 16, aceasta cifra fiind F.
Asadar, o grupare de 4 cifre binare poate, folosind diferite combinatii de 0 si 1 sa reprezinte o cifra binara din sistemul hexazecimal.
În acest caz, pentru un numar oarecare în baza 2, se poate defini o procedura de convertire la baza 16 dupa cum urmeaza:
- Se completeaza numarul binar la stânga cu zerouri pâna când se obtine un multiplu de 4 al numarului de cifre;
- Se separa grupe de câte 4 cifre binare care se convertesc la forma hexazecimala.
De exemplu:
Fie numarul 101101. Etapele de convertire sunt:
- Completarea cu zerouri produce numarul 00101101;
- Separarea pe grupe de câte 4 cifre binare produce grupele 0010, cu valoarea zecimala 2 si reprezentarea hexazecimala prin simbolul 2, si 1101 cu valoarea zecimala 13 si reprezentarea hexazecimala prin simbolul D.
Asadar numarul 101101(2) = 2D(16)
În practica informatica nu se mai foloseste notatia (2) pentru baza binara, dar pentru baza 16 se foloseste postfixarea cu litera H (de la hexazecimal).
Deci, se obisnuieste sa se scrie:
101101 = 2DH
Cap3. Reprezentarea informatiei în calculator.
Forma cea mai simpla sub care se poate reprezenta informatia, forma numita informatie elementara, este evenimentul cu doua stari: Adevarat sau Fals.
Din punct de vedere electric aceasta corespunde situatiei unui comutator care se poate afla într una din situatiile din figura 1, si anume:
Închis (curentul circula), starea
logica echivalenta fiind Adevarat;
Deschis (curentul nu circula), starea
logica echivalenta fiind Fals.
Acestor doua stari logice li se asociaza valorile numerice:
pentru Adevarat, si
pentru Fals.
De aici rezulta ca sistemul binar ca sistem de numeratie, este sistemul care se potriveste cel mai bine nevoilor de reprezentare a informatiei în calculator deoarece corespondenta dintre el si logica elementara binara este directa.
Informatia elementara se mai numeste si BIT (de la BInary digiT - cifra binara). Bit-ul poate avea starile 0 sau 1 si mai este denumit atom de informatie.
BYTE-ul (sau octetul) reprezinta o grupare de 8 biti si este o unitate de baza a masurarii cantitatii de informatie.
Multiplii byte-ului se obtin folosind ca factori de multiplicare:
210 = 1024 byte = 1 Kbyte
220 = 1024 Kbyte = 1 Mbyte
230 = 1024 Mbyte = 1 Gbyte
În concluzie, calculatorul este un ansamblu de circuite electronice si componente mecanice care poarta denumirea de parte fizica (HARDWARE - parte tare) dar si un set de programe (metode de prelucrare a informatiei) si de date care poarta denumirea de parte logica (SOFTWARE - parte moale).
Cap.4. Codificarea informatiei în calculator.
Pentru codificarea informatiei în calculator se foloseste codul ASCII (American Standard Code for Information Interchange - Codul american standard pentru interschimb de informatii). Acest cod este un cod pe 8 biti (sau pe un octet). El se împarte în doua sectiuni:
- Codul ASCII pentru caractere de baza. Acesta foloseste numai primii 7 biti realizând 128 de caractere, dintre care:
= codurile 00H . 1FH (0 . 31) reprezinta caractere de control. De exemplu:
00H NUL;
07H BEL - avertizare sonora;
09H HT - caracterul TAB - tabulator orizontal;
0DH CR - caracterul Cariage Return - salt la început de rând;
10H DEL - caracterul Delete - stergerea caracterului curent;
08H BS - caracterul Back Space - stergerea caracterului anterior;
1BH ESC - caracterul Escape - abandonarea procedurii curente;
. etc.
= codurile 20H . 2FH, 3AH . 40H, 5BH . 60H, 7BH . 7FH - semne speciale;
= codurile 30H . 39H - cifrele 0 . 9;
= codurile 41H . 5AH - literele mari ale alfabetului latin;
= codurile 61H . 7AH - literele mici ale alfabetului latin;
- Codul ASCII pentru setul de caractere extins, foloseste toti cei 8 biti ai octetului realizând alte 128 de caractere, si anume:
= 48 de caractere straine, cum ar fi:
= caracterele straine de limba engleza, provenite din alfabetele europene;
= simboluri monetare - cent, lira, yen, pesetas, franc;
= semne speciale de punctuatie;
= 48 de caractere pentru construirea de chenare (caractere semigrafice);
= 32 de caractere pentru grupul caracterelor stiintifice:
= litere grecesti;
= simboluri matematice speciale: integrala, ridicarea la patrat, radacina patrata.
Cap. 5. Reprezentarea datelor.
Data este informatia prelucrata de calculator. Ea este un model de reprezentare a informatiei accesibil unitatii de prelucrare a calculatorului.
Din punct de vedere logic, data poate fi reprezentata printr-un triplet de forma:
d=(i, v, a)
unde: d = data:
i = identificatorul datei;
v = valoarea datei;
a = atributele asociate datei.
Identificatorul datei este un simbol (nume) asociat datei pentru a o distinge de alte date si pentru a se putea face referiri la ea în timpul procesului de prelucrarea a datelor. În cazul bazelor de date simple constând dintr-o simpla enumerare a unor date din aceeasi familie (de acelasi tip), identificatorul poate fi subînteles, confundându-se cu indicele numeric al datei în baza. Necesitatea unui identificator (simplu sau compus) apare în bazele de date complicate continând date de naturi diferite si/sau cu structurare pe mai multe nivele, eventual cu apartenenta la diferite clase de apartenenta (sau cu proprietari diferiti).
Valoarea datei este proprietatea datei de a fi exprimabila într-un sistem de unitati de masura si într-un anumit domeniu de valori. Datele pot fi variabile (modificabile în timpul executiei programului) sau constante (nemodificabile).
Atributele datei sunt proprietati ale datei care determina modul în care ea poate fi tratata în cursul procesului de prelucrare.
Ca exemple de atribute se pot mentiona:
- tipul datei:
= tip numeric (întreg sau real);
= tip logic (valorile adevarat sau fals);
= tip alfanumeric (caractere sau siruri de caractere).
- precizia reprezentarii interne, este legata de capacitatea limitata de stocare a unei date de un anumit tip numeric. Astfel, pot exista:
= date numerice reale în simpla precizie;
= date numerice reale în dubla precizie (stocate într-o zona de memorie de lungime dubla).
Reprezentarea datelor alfanumerice (caractere)
Pentru reprezentarea datelor alfanumerice se foloseste codul ASCII.
De exemplu, caracterul A având codul hexazecimal 41H are codul binar 01000001 iar caracterul a are codul hexazecimal 61H sau în binar 01100001. Toate aceste caractere necesita un singur octet pentru a fi reprezentate.
Reprezentarea numerelor
În functie de tipul lor, numerele pot fi reprezentate în cadrul urmatoarelor conventii:
A. Reprezentarea numerelor întregi fara semn. Aici se pot deosebi urmatoarele cazuri:
= Reprezentarea pe un singur octet. În acest sistem pot fi reprezentate numere între valorile binare 00000000 si 11111111 respectiv de la 00H pâna la FFH, adica între 0 si 255;
= Reprezentarea pe doi octeti, de la 0000H pâna la FFFFH, adica de la 0 la 65535.
B. Reprezentarea numerelor întregi cu semn. Aici se deosebesc doua cazuri:
a. Reprezentarea prin marime si semn (reprezentare în cod direct). În aceasta conventie se foloseste bitul de rang cel mai înalt ca indicator de semn, cu semnificatiile:
0 - nu exista semn, adica numarul este pozitiv, si
1 - exista semn, adica numarul este negativ.
Folosind un singur octet (byte), bitul 7 este folosit ca indicator de semn iar bitii 6,5,.,1,0 sunt folositi pentru reprezentarea directa a valorii numarului.
De exemplu codul binar 11111111 reprezinta numarul -127
iar codul binar 01111111 reprezinta numarul +127
Dezavantajul acestui sistem este acela ca naste o ambiguitate si anume numarul 0 are doua reprezentari, adica 00000000 pentru + 0 si 10000000 pentru - 0.
Din acest motiv, cât si din altele, apar dificultati la modelarea operatiilor matematice cu ajutorul circuitelor electronice, fiind necesare doua proceduri aritmetice diferite: una pentru adunare si alta pentru scadere, plus o procedura de identificare a semnului pentru a se lua decizia privind procedura aritmetica de aplicat.
De aceea se prefera o adoua varianta, si anume:
b. Reprezentarea numerelor negative în cod complementar fata de 2.
Fie Nn un numar întreg nenegativ reprezentat prin n cifre binare.
Complementul fata de 2 al lui Nn este :
De exemplu, fie numarul 10 si numarul -3. Ele se reprezinta astfel:
10 = 00001010 (reprezentare directa)
00000011
011111101 complementul fata de 2 al numarului 3
În acest caz, operatia 10 + (-3) este:
00001010 +
11111101
100000111
Se neglijeaza bitul de rangul 8 (al noualea bit, cel care a rezultat 1) si rezulta numarul binar 00000111 adica numarul zecimal 7. Se observa ca prin acest procedeu se foloseste o singura operatie de adunare directa, atât la adunare cât si la scadere.
În concluzie, cu ajutorul a n cifre binare se pot reprezenta numere întregi N în domeniul:
-2n-1 N 2n-1 - 1
Asadar:
- numerele întregi cu semn reprezentabile pe 1 octet (pe 8 biti) se pot reprezenta în intervalul:
N 28-1 - 1 = 127
- numerele întregi cu semn reprezentabile pe 2 octeti (pe 16 biti) se pot reprezenta în intervalul:
N 216-1 - 1 = 32767
- numerele întregi cu semn reprezentabile pe 4 octeti (pe 32 biti) se pot reprezenta în intervalul:
N 232-1 - 1 = 2147483647
C. Reprezentarea numerelor reale în virgula mobila.
Aceasta reprezentare se inspira din reprezentarea numerelor zecimale în notatie stiintifica.
De exemplu, în notatie stiintifica, numarul 12.5 se poate scrie:
12.5 = 125 · 10-1 = + 125 E -1
La ultima forma de scriere se disting :
- un simbol pentru semnul numarului (+ sau minus);
- mantisa - în acest caz 125;
- semnul exponentului (aici -);
- valoarea exponentului (aici 1).
În cazul unei reprezentari pe 4 octeti (32 de biti) se folosesc:
1 bit pentru semnul numarului, cu valoarea 0 pentru plus si 1 pentru minus;
1 bit pentru semnul exponentului;
7 biti pentru valoarea exponentului;
23 biti pentru mantisa.
Harta repartitiei bitilor în cuprinsul cuvântului (grupului) de 4 octeti este urmatoarea:
| |||||||||||||||||||||||||||||||
Semn numar |
Semn exponent |
Valoarea exponentului |
Valoarea mantisei |
Asadar, marimea numarului reprezentat în virgula mobila si precizia reprezentarii lui depind de numaril de octeti pe care se face reprezentarea.
Ca si în cazul numerelor întregi, si la numerele în virgula mobila exista posibilitatea stocarii pe lungimi extinse (dubla precizie).
D. Reprezentarea numerelor reale în virgula fixa.
Am lasat intentionat la urma aceasta modalitate de reprezentare. Aici se presupune existenta imaginara a unei virgule care desparte numarul de biti folositi în doua grupuri, unul pentru partea întreaga si altul pentru cea fractionara. Pe lânga faptul ca acest mod de reprezentare creaza complicatii constructive, modelul de reprezentare variind la diferite calculatoare, domeniul de variatie al numerelor este mult mai restrâns iar precizia de reprezentare nu este nici pe departe satisfacatoare, si din acest motiv în prezent nu mai este folosit.
Reprezentarea altor tipuri de date.
Imaginile si sunetele pot constitui si ele stocuri de date. În acest caz exista doua cai principiale de reprezentare:
A. Prin coduri de definitie, reprezentând combinatii de caractere alfanumerice si coduri numerice.
De exemplu, într-o baza de date, o combinatie de valori numerice de forma:
frecventa (în cicli/secunda), durata (în milisecunde)
poate constitui codificarea unui sunet, ca mai jos:
care ar putea însemna definirea unui sunet cu frecventa de 1000 Hz cu o durata de 2 secunde
Pentru imagini, o combinatie de forma:
LINE 0, 0, 12, 5
ar putea semnifica trasarea unei linii între punctele de coordonate x=0, y=0 si x=12, y=5, pe un ecran pentru care, anterior, a fost stabilita o zona de lucru si o scara de reprezentare.
B. Prin digitizare, care înseamna transformarea datelor de stocat în succesiuni de biti codificate dupa anumite reguli.
De exemplu, pentru imagini este foarte frecvent folosit formatul de stocare BMP (BitMaP - harta de biti).
|