Sunteți pe pagina 1din 58

Capitolul 1.

Noiuni fundamentale utile n utilizarea i programarea calculatoarelor

1.1 Comunicarea

Limbaje de programare
Dup modul de abordare a rezolvrii problemelor cu calculatorul limbajele pot fi: procedurale - atunci cnd rezolvarea problemei urmeaz anumite etape i utilizeaz nite structuri fundamentale (cum sunt: Pascal, C, etc.) neprocedurale - ele se bazeaz pe reguli i sunt mai apropiate de limbajul i modul de raionare natural (cum sunt limbajele pentru inteligen artificial: Prolog, Lisp).

Comunicarea
orientate pe obiecte (C++, Java)
pentru aplicaii Web (PHP, Pearl) pentru aplicaii distribuite sau mobile pentru aplicaii de conducere a roboilor

i mainilor unelte

Etape de baz care trebuie urmate pentru rezolvarea unei probleme pe calculator
analiza problemei - se stabilete exact CE

subprobleme trebuie s rezolve programul programarea - reprezentarea problemelor ntr-un mod adecvat pentru rezolvarea cu calculator implementarea - scrierea programului care rezolv problema ntr-un anumit limbaj de programare

Etape de baz care trebuie urmate pentru


rezolvarea unei probleme pe calculator
CE Problema care trebuie rezolvat CUM Reprezentarea problemei Rezolvarea problemei folosind un limbaj de programare

Fig. 1.1. Abordarea rezolvrii unei probleme cu calculatorul

Informatica
O disciplin care ncearc s construiasc o baz tiinific pentru un numr mare de domenii
Proiectarea i programarea calculatoarelor Prelucrarea informaiilor Rezolvarea algoritmic a problemelor

tiina algoritmilor
Domenii: matematic, inginerie, psihologie, management, lingvistic, etc. Programare principii de baz ale instrumentelor de programare utilizate n prezent, evoluie i probleme

Algoritm
Set de pai prin care se definete modul n care poate fi dus la ndeplinire o anumit sarcin Un set ordonat de pai executabili, descrii fr echivoc, care definesc un proces finit Reprezentarea algoritmilor n calculator -> program -> software

Algoritmul lui Euclid


Nu
A=M-N A>0

Da

R=N/M

R=M/N
M=N N=R

Nu
R=0

Da

cmmdc(M,N)=N

Stop

Algoritmi
Capteaz i transmit informaie Rezolv o problem Sunt n form conceptual - trebuie s fie reprezentate ntr-o form n care pot s fie comunicate unui calculator prin setul de instruciuni (gramatic i limbaj) limbaj de programare - paradigme de programare

Algoritmi
Descoperire Reprezentare Analiz Execuie Comunicare Limite

1.2 Sisteme de numeraie utilizate n lucrul cu calculatorul

Sisteme de numeraie utilizate n


lucrul cu calculatorul
Un sistem de numeraie este constituit din

ansamblul regulilor de reprezentare a numerelor folosind cifre. Cifrele sunt simbolurile utilizate pentru reprezentarea numerelor

Sistemele de numeraie pot fi poziionale sau nepoziionale.

Sisteme de numeraie utilizate n


lucrul cu calculatorul
Sistemul de scriere roman este un sistem

nepoziional care reprezint numerele prin compunerea cifrelor n mod repetat ncepnd cu cele mari i obinnd valoarea numrului prin nsumarea lor. Sistemele poziionale au asociat o baz care reprezint numrul total de cifre utilizate.

Sisteme de numeraie utilizate n


lucrul cu calculatorul
Spre deosebire de oameni care lucreaz n

mod normal n baza 10 de numeraie, calculatorul este construit s lucreze cu numere reprezentate n baza 2. Se pare c explicaia utilizrii bazei 10 este aceea c avem 10 degete i primele calcule s-au fcut pe aceste"instrumente"."

Sisteme de numeraie utilizate n lucrul cu calculatorul


Informaia elementar vehiculat n calculator

este bitul (n l. engl. bit = bucic). El poate avea valoarea 0 sau 1. Aceste valori corespund fizic unor anumite nivele de tensiune, n funcie de circuitele electronice cu care este construit calculatorul. "Cuvintele" pe care le nelege calculatorul sunt formate din 8 bii i se numesc octei (n engl. bytes).

Sisteme de numeraie utilizate n lucrul cu calculatorul


1 K sau 1 Kilo octet (1 Kilo byte) = 1024 bytes

(210) 1 M sau 1 Mega octet (1 Mega byte) = 1024 K (220) 1G sau 1 Giga octet (1 Giga byte) = 1024 M (230) Calculatoarele folosesc baza de numeraie 2 sau cele dou derivate din aceasta: octal i hexazecimal. Acestea reprezint cifrele caracteristice n grupri de triade sau tetrade (8=23, 16=24).

Sisteme de numeraie utilizate n lucrul cu calculatorul


baza 2 8 Binar Octal sistemul 0, 1 0,1,2,3,4,5,6,7 cifre

10
16

Zecimal
Hexazecimal

0,1,2,3,4,5,6,7,8,9
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E, F

Conversia binar - zecimal


Un numr poate fi scris din baza 10 n binar

descompunnd prin mpriri repetate la doi numrul zecimal i scriindu-l dup puterile lui 2. Exemplu: 77 = 64 + 13 = 64 + 8 + 4 + 1 = 26 + 23 +22 +1= 0*27+1*26+0*25+0*24+1*23+1*22+0*21+1*20 Deci, 77 se scrie n binar 0100 1101.

Conversia zecimal - binar hexazecimal


Pentru numere mari este incomod scrierea

unui ir lung de cifre 1 i 0. De aceea s-a trecut la utilizarea sistemului hexazecimal n care numerele snt scrise utiliznd cifre i litere Vezi Tabelul 1. Reprezentarea numerelor, comparativ, n zecimal, binar i hexazecimal

Reprezentarea numerelor, comparativ, n zecimal, binar i hexazecimal ZECIMAL BINAR HEXAZECIMAL 1 00000001 01 2 00000010 02 3 00000011 03 4 00000100 04 5 00000101 05 6 00000110 06 7 00000111 07 8 00001000 08 9 00001001 09 10 00001010 0A 11 00001011 0B 12 00001100 0C 13 00001101 0D 14 00001110 0E 15 00001111 0F 16 00010000 10 17 00010001 11 255 11111111 FF

Operaii binare
Operaiile specifice cu numere reprezentate n binar sunt:
SAU (OR), SI (AND), SAU EXCLUSIV (XOR) i deplasri la stnga i dreapta (shift).

Operaii binare
X 0 0 1 1 Y 0 1 0 1 SAU 0 1 1 1 SI 0 0 0 1 SAU EXCLUSIV 0 1 1 0

Operaii binare
O deplasare la stnga cu o poziie, ntr-un numr reprezentat n binar, este echivalent unei nmuliri cu doi. Deplasrile cu mai multe poziii la stnga sunt echivalente cu nmuliri cu 2 la puterea numrului de deplasri. Exemplu: 0000 1011 este reprezentarea binar a numrului zecimal 11. Dac realizm o deplasare cu dou poziii la stnga obinem numrul binar 0010 1100, adic 44 n zecimal (11 x 22).

Operaii binare
O deplasare la dreapta cu o poziie, ntr-un numr reprezentat n binar, este echivalent unei mpriri cu doi. Deplasrile cu mai multe poziii la dreapta sunt echivalente cu mpriri cu 2 la puterea numrului de deplasri. Exemplu: 0011 1100 este reprezentarea binar a numrului zecimal 60. Dac realizm o deplasare cu dou poziii la dreapta obinem numrul binar 0000 1111, adic 15 n zecimal (60/ 22).

Coduri de reprezentare a datelor


Avnd n vedere c utilizatorii opereaz n sistemul zecimal, iar calculatorul lucreaz n sistem binar, este necesar un sistem de conversie care s fac posibil comunicarea facil ntre utilizator i calculator. Acest lucru se realizeaz prin utilizarea codurilor numerice i alfa numerice.

Codurile numerice
sunt codurile prin care pot fi reprezentate cele 10 cifre ale sistemului zecimal cu sau fr semnul asociat, utiliznd o tetrad binar. Acestea au fost specifice calculatoarelor care prelucrau date numerice. Dou tipuri de coduri numerice mai cunoscute sunt: DCB - cod zecimal codificat binar i codurile numerice detectoare de erori prin metoda controlului de paritate sau imparitate (n transmisia datelor).

Codurile alfanumerice
sunt utile pentru reprezentarea caracterelor: cifre, litere, semne de punctuaie, semne speciale. Coduri alfanumerice sunt: ASCII extins, ASCII - American Standard Code for Information Interchange. Unicode folosete modele pe 16 bii pentru reprezentarea fiecrui simbol (65 536 abloane diferite) ISO pe 32 de bii (17 x 106 simboluri)

Codurile alfanumerice
Codul ASCII extins poate reprezenta 256 caractere. Spre exemplu literele mari sunt cuprinse ntre 65 (Alt 65 pe tastatura calculatorului va determina afiarea literei A) i 90 (codul pentru litera Z). Literele mici au codurile cuprinse ntre 95 i 122. Cifrele de la 0 la 9 au codurile ntre 48 i 57. Dintre semne speciale, de exemplu, & are codul 38.

1.3. Structura i funcionarea unui calculator

Hardware
Termenul desemneaz componentele mecanice i electronice ale unui calculator (inclusiv echipamentele periferice). Structura hardware a unui calculator conine: microprocesorul dispozitiv de comand; memoria (intern i extern); echipamente periferice (PI periferice de intrare, PE periferice de ieire).

PERIFERICE

MEMORIE

P.DE INTRARE
P. DE IESIRE

UNITATE LOGICAARITMETI CA

UNITATE DE CONTROL
TRANSFER DE DATE

magistrale

CONTROL

Componente de baz
Pori logice dispozitive care produc rezultatul unei operaii logice (and, or) Circuite basculante bistabile (flip-flop) circuite care au la ieire una din cele dou valori fizice posibile (0 sau 1). Ieirea rmne stabil pn cnd un impuls de la alt circuit are ca efect comutarea lui la cealalt valoare stocheaz un bit Cip conine milioane de cbb

Tehnologie
Cbb fiind electronice pot fi acionate mai rapid dect cele pe suport magnetic sau optic. De aceea sunt folosite pentru construcia componentelor interne ale calculatorului. Cele pe suport magnetic sau care folosesc laser sunt folosite pentru componente externe deoarece chiar dac sunt mai lente au avantajul c pstreaz informaia i dup oprirea sursei de curent.

Microprocesorul
este "creierul" calculatorului. controleaz i comand toate operaiile din calculator:
Extrage din memoria intern a calculatorului, rnd pe rnd instruciunile programelor, le decodific i transmite comenzi pentru executarea lor.

Microprocesorul are dou componente principale:


unitatea de comand (UC) i unitatea aritmetic i logic (UAL).

Microprocesorul
Unitatea de comand controleaz funcionarea tuturor componentelor calculatorului. Unitatea aritmetic i logic realizeaz operaiile aritmetice i deciziile logice. Parametrii care caracterizeaz unitatea de comand sunt: numrul de instruciuni, lungimea unei instruciuni i viteza de execuie.

Microprocesorul
Pentru stocarea temporar a datelor cu care lucreaz UC are registre (regitri) necesare pentru realizarea imediat a unor operaii
Memoria intern stocarea datelor necesare pe termen scurt Memoria extern stocare pe termen lung

Microprocesorul
Instruciunile la nivelul UC i UAL (scriere, citire, operaii logice) sunt instruciuni n cod-main. Un program este o secven de astfel de instruciuni stocate n memoria intern Instruciunile n cod main i sistemul de codificare constituie limbajul main care definete modul n care comunicm calculatorului algoritmii pe care va trebui s i execute.

Microprocesorul
O instruciune cod-main are dou cmpuri
Cod operaie (ex. shft,or, and,etc.) Operand (valoarea unui operand sau adresa valorii)

Execuia unui program ciclul main


Extragere UC solicit memoriei principale s furnizeze urmtoarea instruciune care va fi executat; UC are adresa de memorie a instruciunii care va fi executat n registrul contorului programului. UC plaseaz instruciunea din memorie n registrul de instruciuni i incrementeaz registrul contorului programului pentru a pregti adresa urmtoarei instruciuni.

Execuia unui program ciclul main


Decodificare analiza cmpului codoperaie i operand. Execuie realizarea aciunilor conform instruciunii decodificate Reluarea ciclului.

Memoria intern
cuprinde spaiul de memorare la care are acces procesorul, fr s includ utilizarea canalelor de intrare-ieire ale calculatorului. Programele mpreun cu datele i rezultatele prelucrrilor sunt nregistrate n memoria intern sub form de iruri de cifre binare. Parametrii memoriei interne sunt: capacitatea memoriei i timpul de acces.

Memoria intern
Conine cuvinte organizate n octei, fiecare avnd asociat o adres prin care locul su este determinat n mod unic xxxxxxxx Bitul cel mai puin
semnificativ Bitul cel mai semnificativ

Tipuri de memorie intern


Random Access Memory (RAM) n aceast memorie se ncarc temporar programele i datele curente care se prelucreaz pe calculator. Ea poate fi scris sau citit. Coninutul su este volatil.(Se poate pierde n urma deconectrii calculatorului de la reea).

Tipuri de memorie intern Random Access Memory (RAM)


Majoritatea adaptoarelor de tip VGA sau SVGA au ncorporat o memorie RAM suplimentar necesar manipulrii informaiei afiate curent pe ecran i creterii vitezei de remprosptare a ecranului.

Tipuri de memorie intern Random Access Memory (RAM)


Modulele SIMM sunt plci cu circuite imprimate avnd lipite pe ele cipuri de memorie. Pe un SIMM poate fi montat un numr variabil de cipuri, pe o singur fa a plcii sau pe amndou. Pe una din laturile sale, modulul SIMM are un rnd de contacte cositorite sau aurite. Modulele SIMM sunt montate n socluri speciale, prevzute cu mecanisme de blocare care fixeaz modulul n soclu.

Tipuri de memorie intern Random Access Memory (RAM)


Sunt disponibile dou tipuri de module SIMM:
cu 30 de pini i cu 72 de pini.

Memoriile cele mai rspndite sunt EDO si SDRAM. SDRAM sunt mai rapide si au o capacitate mai mare de stocare.

Evoluia capacitii memoriei

Memorii i plci de baz

Memorii i plci de baz

16 Mb EDO

4Mb EDO

32 Mb EDO

64 Mb SDRAM

32 Mb SDRAM

Tipuri de memorie intern


Read Only Memory (ROM) - programele i datele din acest tip de memorie sunt scrise de productor prin tehnici speciale i nu pot fi modificate de utilizator. Ea poate fi doar citit. O parte din acest tip de memorie se declaneaz la pornirea calculatorului i gestioneaz iniializarea i ncrcarea sistemului de operare. La calculatoarele IBM-PC aceste memorii ROM conin programele prin care se realizeaz comunicarea cu perifericele: BASIC INPUT OUPUT SYSTEM, BIOS.

Tipuri de memorie intern


CMOS este o memorie de tip RAM. Spre deosebire de memoria RAM ea are avantajul unui consum mai mic i ca urmare la deconectarea calculatorului ea rmne alimentat printr-un acumulator din calculator i pstreaz informaia nregistrat n ea. Conine informaii pentru BIOS i partea care se modific.

Tipuri de memorie intern


CACHE este o memorie special ataat microprocesorului care contribuie la mrirea vitezei calculatorului prin dou proprieti: are timp de acces mic (similar registrelor microprocesorului) i evit o serie de operaii intermediare care apar n cadrul memoriei RAM n ceea ce privete accesul la microprocesor.