Sunteți pe pagina 1din 50

Cristian Marinsiu

Elena Simona Nicrrarfr

INTRSDUCERE
ll*t

INFSRIIfiAT ICA

Edita:ra tJ::iversit*{ii p*tr*l=G*ee


e$1 4

di* F3+i**ti

noliunilor expuse gi teste de autoevaluare la fiecare subcapitol. ln plus, rezumatul


realizat

la sfirqitul fiec[rui capitol gi unele

recomanddri bibliografice

CUPRINS

vin in

sprijinul unei mai bune fixdri a cunoqtinfelor.

incheiem prin

autorilor

in

fundamentale

predarea

INTRODUCERE...........

la baz6 experien{a
pe o perioadd de mai mulli ani a unor discipline
spune cd materialul prezentat are

in Informatici

Concepte debazdale

(Bazele Informaticii, Programarea calculatoarelor,

Stucturi de date, Proiectarea algoritmilor etc.)

la

informaticii.......'..."..,...

Arhitectura calculatoarelor

speciaiizdrile cu profil

Sisteme de operare.

................7

........'..........

Noliuni

debazi

"""""""'8

"""""""""""'

14

"""""""""""""30

informatic de la Universitatea Petrol-Gaze din Ploieqti.

Autorii

Eir:,?ilTHH:*:1i

PloieSti, iulie 2014

Tl1l::)l*:::Y::*':::

numera!ie.....
Reprezentarea informafiei in calculator.
Baze de

l,

::,,

"""""""""""""'40
""""""""""'49

REZOLVAREA PROBLEMELOR CU CALCUI"ATORUL ..'.............. 61


Etapele rezolvdrii problemelor cu

calculatorul...'..'...'.""""

""""""62

elementare

"""""""""""""66

date.....'...
Algoritmi - caracteristici 9i descriere

"""""""""""""69

Tipuri de date qi operalii


Structuri de

ElBt,loGRAFIE..............

""""""""""""77

""""'99

1.

lntroducere

Concepte debazd ale informaticii


Test de autoevaluare
Arhitectura calculatoarelor
Test de autoevaluare
Sisteme de operare. Nofiuni debazil
Test de autoevaluare

Rdspunsurile testelor de autoevaluare

Lucrare de verificare
Rezumat
Rec

omanddri b iblio gr afi c e


ift#ftl,il.|..ti!lIt:frHirX91lft?*ri#;#{t1rllF{i**$ti}}S#3*A'XJfi}ilHlE}#$l#Ei$*B'L1$,if.:{,ifiii:

Ob i e ctiv ele capito

lului

cunoa$terea conceptelor fundamentale ale

cunoaqterea arhitecturii calculatoarelor

cunoagterea sistemelor de operare

iij j}i

ii,,trniri;i|Jf ii;ljx,;i Hl.iii.rifi :jril!:i)ri::r

:i

k.
I

rrl,nrr I uco

ro in informatic[

1.

Introducere

Concepte de bazfl ale informaticii


Dupd manevrabilitate, calculatoarele sunt stalionare (de

Prjn datd se infelege un numdr, mdrime, rela{ie etc., reptezentarea unui


fenomen, lucru sau fapt,

fiind susceptibild de a fi memoratd, transformatd

lle. Principalele tipuri de calculatoare portabile sunt: calculatoarele laptop,

palmtop (PDA2), handheld, tabletd PC qi alte aparute "inteligente"

sau

vehiculatd [1].

telefoanele smarfphone). Caracteristicile acestora se referd la puterea

fi

ar

in sens 7arg, informalia desemneazdunelement nou, necunoscut anterior. in

tip desktop) sau

gtlcul, la porlabilitate (datd de dimensiuni, greutate, durata de via![

'), la conectivitate qi fiabilitate (in legdturd cu condifiile de utilizare

sens reskAns (tehnic) informalia desemneazi "incertitudinea inlSturatd prin

cu rnediile critice, cu rezistenla la gocuri mecanice).

rcalizareaunui eveniment dintr-un set de evenimente posibile,, [1].


s-a asociat o semnifica}ie. Spre exemplu,

I4formatica este gtiinla pluridisciplinard care are ca scop proiectarea,

valoarea 3, care este o datb memoratd in calculator, poate rcprezenta intr-un caz

area qi exploatarea unor tehnici qi sisteme pentru organizarca, memora"rea

informa{ie este

dat6, cdreia

htrlbuirea mai ef,rcientd a informaliei.

numdrul de obiecte dintr-un gir, iar in alt cazpreful unui produs.

Calculatorul este sistemul frzic care prelucreazd datele introduse intr-o

Tormenul ,,informatic6" provine

din cuvintele "INFORrmation" gi respectiv "autoMATIQIJE". Studiile

fie ca semnale destinate ac{ionlrii unor echipamente [1].

qi rezultatele lor in ce privegte informatica se reunesc in ceea ce

in funclie de modul de reprezentare a datelor exist6:


calculatoare numerice, unde datele sunt codificate numeric;

calculatoare analogice, unde pentru codificare se :utilizeazd, elemento

imbinl elemente de tip numeric

ou

elemente de tip continuu.

in aceastd lucrare ne referim la calculatoarele numerice. Principalele clasc


de calculatoare numerice sunt cele

denumirea de PCl-uri)

IBM gi compatibile IBM (reunite generic sub

gi calculatoarele Maclntosh (iMac). Atunci c6nd un

calculator face parte dintr-o relea, acesta se numegte statie de lucru sau server dc
retea, dup6 rolul pe care

cngl, Pcrron

al Contpulcrs

anumitor tehnici informatice

il indeplinegte in cadrul relelei.

in

diverse domenii (inginerie,

economie, medicind, astronomie, sociologie, psihologie, lingvistici,

politica) fac obiectul a

tip continuu;

calculatoare hibride, care

se

lnformaticd teoreticd, iar aplicarea acestor rezultate 9i chiar incercarea

cuvdntul "informatique" din limba

format prin alipirea qirurilor de caractere "infor" gi "matique"

formS prestabilitd qi fumizeazd rezultate fie intr-o formd accesibil5 utilizatorului,

de

din

ceea ce se numeqte

informaticd aplicatd.

Se fhce distinclia clard intre termenul "informatic6" gi alte noliuni inrudite,

lSRt ur

fi

"tehnologia informaliei gi a comunicaliilor (TIC)" sau ,,birotica"'

frhwilogia idormaliei Si a comunicaliilor trateazd tehnologiile necesars pentru


plgornrca informafiei, in particular prin folosirea calculatoarelor electronice. in
Ble 'l'te, prelucrarea se refer6 la procurarea, procesarea (prin operalii vizdnd
Fnnntul datelor la afiqare sau operalii de calcul de complexitate relativ redusi),
ilBeAron, convertirea

gi transmiterea informafiei. Informatica

Ut1l, I' e r;ton al Dlgltal Ass ls lant

desemneazd in

Introducere in informaticl

L. Introducere

expert3. Toate aceste progrese au prins


contur dupS anur 1gg0 gi au ruat amproare
in deceniile care alurmat.

Generalia a 6-a de carcuratoore se


dezvoltd in prezent qi are
rezultatele oblinute in optoerectronic6
gi mai ares bioerectronici,

bazd

Funclionarea calculatorului devine posibil[ prin activarea unui anumit tip


do conexiuni existente intre unit6file sale cu destinafie special[ numite unitdli
,funcsionale.

1.2. care dintre urmEtoarele sunt crasificiri


varide are calcuratoarelor?

calculatoare numerice, analogice gi portabile;


calculatoare numerice, analogice gi
hibride;
calculatoare stalionare gi portabile.

Arhitectura calculatoarelor
calculatorur, ca sistem fizic destinat imprement,rii
gi prerucrdrii automate a
unor modele logico-matematice are
labazdtrei tipuri de resurse
[2]:

.
.
'

care iau

in

calcul aspecte privind timpul gi costul

oflre sunt rezolvate etc.

1.1. Care este deosebirea dintre date qi


informafii?

o serie de criterii

prelucrdrilor, necesitilile de prelucrare qi transmitere a datelor, tipul problemelor

O frrt de autoevalaare

sale

funclionale qi a legdturilor dintre ele. Exist[ diverse tipuri arhitecturale, funcfie

de

Arhitectura unui calculalar cuprinde reprezentarca unitSlilor

resurse Jizice (procesoare, memorie,


dispozitive de intrare-iegire)
numite resurse hardwure;

resurse logice (sisteme de operare, programe


utilitare, programe
utilizator) numite resurse software;
resurse informarionale (date organizate
gi memorate pe suporli de
memorie externd).

Arhitectura clasici (seriali)

rcprezentatd

de sistemul de

calcul

monoprocesor sau maqina de calcul John von Neumann.

La modul cel mai general, un sistem de calcul von Neumann are la bazd
urm[toarele unitali funclionale [2]:

mediu de intrare

mediu de iegire

memorie

ansamblu de prelucrare

unitate de intrare (UI);

unitate de ieqire (UE);

unitate de memorie (UM);

unitate aritmeticd Si logicd (UAL) sau

unitate de execufie;

element de comandd gi control

unitate de comandd Si control

(ucc).

Unitatea de intrare (UI) preia sub controlul unitdtii de comandd gi control


rlntc sau instrucliuni de la diverse dispozitive (periferice) de intrare, le aduce la

lirrrna standard de reprezentare gi le transferd in unitatea de memorie. Exemple

do dispozitive de intrare sunt: cititorul de cartele, tastatura, banda magneticd,


rlinoul magnetic, mouse-ul, scanner-ul, creionul optic.

Unitatea de iesire (UE) preia sub controlul unitalii UCC informafia din
'sistemc care imit6 modul dr rrfilanrmrnt

mcmorie gi o transfer[ intr-o fonn[ adecvatd dispozitivelor periferice de iegire:

rlrxp4llel

umrnl

videomonitor, imprimantl, boxo audio, bandl magneticE, disc magnetic etc.

Introducere in informaticd

1.

unitatea de memorie (uM) are rolul de stocare primara gi secundard in


locafii (celule) de memorie - identificabile dup6 adrese a datelor de intrare, a

transferate

seturilor de instrucliuni destinate execufiei (programe) qi a rezultatelor executiei

ce trebuie executatd, trimite unitdlii

acestora.

memoriei transferul cdtre

unitatea aritmeticd

si

logicd (uAL) permite efectuarea unor operalii

citirea instruc{iunilor din memorie, decodificarea lor qi transmiterea


semnalelor de comandd pentru execu{ia lor c6tre UAL sau uniti{ile de intrare_
iegire (I/o), precum qi controlul bunei funcliondri a intregului sistem de calcul
unitatea aritmeticd

si logicd (uAL)

(ucc).

Aceasta,

in memorie unde sunt memorate in locafii identificabile prin

Fiecare instrucliune a programului este preluatd de

lnstrucliune.

ucc,

adrese.

care decodificd, operalia

UAL comanda corespunzdtoare qi solicitd

UAL al datelor aflate la adresele specificate in


UAL execut6 operafiile cerute gi depune sub controlul UCC

rczultatele temporar in memorie sau le transmite dispozitivelor de ieqire.

aritmetice sau logice conform instrucliunilor programului.

cad in sarcina unitdlii de comandd si control

Introducere

ucc,

impreun6 cu

formeazd unitatea centrald de prelucrare

(ucP) sau procesorul calculatorului. procesorul impreund cu unitatea

Arhitectura unit6{ii de memorie (UM)


Memoria calculatorului poate fi privitd ca un ansamblu de localii

de

memorie identificabile prin adrese. Se spune cd memoria este adresabild.

de

Fizic, memorarea datelor se realizeazd cu ajutorul unor elemente care pot

memorie alcStuiesc unitatea centrald a calculatorului (IJC).

Intre elementele funclionale de bazd ale calculatorului exist[

PrezentSm in continuare arhitectura unitdtii de memorie.

lua doud stdri stabile. Aceste doud stdri se asociazd


c6i de

comunicalie care permit circulalia informaliei reprezentatd prin adrese, date de


prelucrat, comenzi. Din punct de vedere funcfional, sistemul de calcul John von
Neumann se poate reprezenta sub forma schemei din Figura 1.1.

oifrele binare 0 sau 1, numite 9i bili

in mod

convenlional cu

pluralul termenului bit @lnary dtgi14). Ca

oxemple de elemente cu dou6 stdri stabile enumerdm: perechile de stdri perforatneperforat, stins-aprins, magnetizat-rtemagnetizat, perechea de tensiuni (0V, 5V)
a unui

circuit basculant bistabil etc. Prezenta elementelor cu dou6 stdri stabile in

construclia memoriei calculatoarelor a avut drept consecin[d, codiJicarea binard


a informa{iei.

O localie de memorie poate fi privit[ ca o

succesiune de

bi]i

(sau

bili consecutivi

se

pot reprezenta

cea mai micS unitate de date care poate

fi

reprezentatd qi

crrnfigurafie binard). Se constatd uqor cE pe m


2"' configuralii binare distincte.

Bitul rcprezintd

prelucratd de calculator. Pentru exprimarea unui bit se foloseqte litera b.

Figura 1.1. Arhitectura maginii de calcul John von Neumann

O succesiune de 8 bili formeazd un octet (sau byte). Acesta este cea mai

Modul de funclionare al acestui tip de calculator

Bc poatc rezuma astfel.

nic6 unitate de date adresabild. Pentru exprimarea unui byte

Datele in forma lor primari (neprelucratI) prccum gi programul sunt preluate r:u

ajutorul dispozitivolor de intrare, aduso la formr

mn&td ds roprozentarc

ai

larra tn fmr{rrnrrr din limhr enclol rmnifiaE ..^ifrl hiharlrt

se folosegte litera B.

-q'qIF

.=IlqEF:

1, Introducere

Introducere in informatic[

Multiplii folosili in exprimarea capacitilii memoriei sunt: Kilo,

fotmeazd pe o configuralie de m

Giga, Tera, Peta,Exa, Zetta Si Yotta gi au urmltoarea semnificalie:


1

Kilo byte (KB)

1 Mega byte

(MB)

lO24 bytes

(210

un spa{iu de adresare in

p0nh la oblinerea acesteia. Accesul la o localie de memorie este aleator (direct),

1024 MB (230 byes)

1 Tera

bYte (TB)

lO24 GB

1 Peta

bYte (PB)

LO}4TB

(EB)

1024 PB (Z60 bytes)

Zettabfie

se poate explora

Timpul de acces reprezintd.timpul scurs de la cererea unei date din memorie

lO24 I<B (220 bfes)

bili,

se

themorie de 2"'cuvinte.

bytes)

1 Giga byie (GB)

1 Exa byte

Accesul la o locafie de memorie se face pebaza adresei sale. Dacd adresa

Mega,

(ZB):

(240

(250

lor timpul de acces este aproximativ acelaqi pentru orice locafie.

bytes)

Transferul informafiei in memorie se numegte scriere, iar extragerea datelor

bytes)

dln memorie se numegte citire,Executarea unei operalii de citire-scriere se poate

hce doar cunoscAnd adresa localiei de memorie implicate.

LO24EB (270 bytes)

1 Yotta byte (YB) :

lO24 ZB

(280

Descrie,ti pe scurt arhitectura

uniti{ii

de memorie.

bytes)
Dupd persistenla datelor in memorie, aceasta se clasificd in memorie RAM

;l

Degi pentru m6surarea capacitSfii memoriei qi a dimensiunii

si

care nu mai sunt puteri ale

Kilo bit pe secundd (Kbps) = I 000 bps (103 bps)

Mega bit pe secundd (Mbps)

1 Giga

g;te

se foloseascf, multi

bit pe secundd (Gbps)

adicd igi pierde conlinutul la

Memoria ROM6,

o memorie nevolatil6, adicd iqi prstreazS con{inutul gi dup6 incetarea

rlimentlrii cu energie electricd a calculatorului.

lui 2, ci ale lui 10 [3]:

RoM. Memoria RAMs este volatild,

tntreruperea alimentdrii cu energie electricS a calculatorului.

multiplii unitililor sunt puteri ale lui 2 (deoarece se lucreazI in sistem bi


pentru vitezele de transfer al informaliei se obignuiegte

rnemorie

Dupd metoda de accesare a informaliei, memoria se poate ierarhiza in dou[


tlpuri [4, 5]:

1 000 000 bps (106 bps)

memorie principald, cu care procesorul luqeazd,in mod direct;


1 000 000 000 bps

(l0e bps)

rnetnorie secundard, care este accesibil[ prin intermediul unui


Aqadar, un fiqier de

I MB

dispozitiv de control suplimentar.

memoreazd,1024 (210) octeti de informalie, ins6

linie de comunica{ie de lMbps transmite

acest caz, de reguld, este

necesard migcare mecanicl pentru stocarea gi recuperarea datelor,

000 000 (106) biti pe secund6.

fapt care imprimi acestor operalii o vitezd mai redusd decdt in cazul

Doi, trei sau patru octeli consecutivi formeazd un cuvdnt.


cuv6ntului difer6 de la un tip de calculator la altul. Reprezentarea in memorie

in

memoriei principale.

informaliei se realizeazd la nivel de cuvdnt sau de multipli ai acestuia.


I angl,Random
rongl.

Access

Memory - mcmorie cu acces aleator

Read Only Memory

-:

lFr

Introduoora ln lnformatle6

1.

Memoria principalE, o'de lucru", este format[

din circuite integrate

electronice rapide care nu permit stocarea unor cantitdli mari de informalie qi nu

permit intotdeauna stocarea informaliilor


energie electricd. Timpul de acces este

in

absen{a alimentdrii unitalii cu

in consecinld foarte redus, de ordinul a

50-70 nanosecunde (ns)7.

lor fizic din calculator in vederea folosirii ulterioare

sau a

folosirii in alte dispozitive. Memoria secundarl este formata din dispozitive de


stocare de masd (care pot fi magnetice, magneto-optice sau de alte tipuri), pentru
care

timpul de acces este mai ridicat, de aproximativ l0 milisecunde (ms)8.

in

sistemele de calcul actuale,

in

ierarhia memoriei se interpun qi alte

niveluri intermediare [5]:

1:

on-chip

a accelera

accesul

unul sau mai multe nivele de memorie cache (nivelul


cache gi nivelul

2:

on-board cache), pentru

procesorului la informalii gi

Principiul

harddisc-urile (discurile dure)

magnetic

dischetele (floppy disk)

magnetic

discurile SSD (solid-state drive)

Avantajul memoriilor secundare este insd preful mai redus qi posibilitatea


extragerii suportului

Medii de stocare

9i

Introducere

de memorare

electric

memoriile flash (stick memory)

discurile optice

qi

discurile magneto-

optic, magneto-optic

optice
benzile magnetice

magnetic

memoriile holografice

optic-holografic

memoriile moleculare

electro-biologic

Harddisc-tl este un dispozitiv electromecanic pentru stocarea permanentd

clatelor, unde suprafala magneticb dispusd pe nigte platane rotunde metalice dure

registrele de uz general (care constituie nivelul 0 al memoriei pentru

este aceea care stocheazd informalia. Datele sunt citite/scrise prin deplasarea unui

date, incluzdnd adresele programului) gi registrur instrucliunii (care

eap de citire/scriere pe aceste platane. Capacitatea unui disc dur obignuit la

este

nivelul 0 al memoriei pentru cod).

momentul actual este

de2-4T8.

Dischetele sunt o versiune foarte simplificatd de disc dur, avdnd un singur

in

continuare vom descrie mai

pe targ unitdlile de stocare a

datelor.

platan magnetic flexibil. O dischetd poate stoca maxim 2.88 MB de date.

Acestea sunt formate din mediile de stocare (suporturile fizice) gi interfelele de

Discurile SSD sunt dispozitive care stocheazd date pe microcipuri cu

comunicare ale lol cu unitatea centrald, impreund cu protocoalele logice aferente.

semiconductori gi care nu implicd pdrli rnobile, ca in cazul harddisc-urilor; sunt

Principalele medii de stocare sunt urmdtoarele:

astfel mai rezistente

la gocuri mecanice, la vibralii gi la varialii mari de

temperaturd. Capacitatea obignuitl a unui astfel de disc la momentul actual este

cuprinsdintre 100 GB qi I TB.

Acelagi principiu de memorare gi funcfionare se regdsegte gi

' I ns = 10'e rooundo

memoriilor

' I mE -

provine de la fbptul

lO't acoundr

flash,

Aaoatea eunt memorii electronice nevolatile,

el oipul ctto organizat astfel inc6t

in

cazul

al c6ror

nume

gtergerea se realizeazl

Inuoducara

-lt

fn$hrm atic[

mciloulltor

Exemplu:

lygglgu.}= 78'ED,6

Conversia rapidd a unui numhr binar in octal se face astfel:

o
r
o

pentru partea intreagl se marcheazd triadele incepdnd de la virgul6

Observalie. Procedeele

de

conversie prezentate (binar-octal

9i

spre st6nga;

binar-hexazecimal) se fac mecanic, fErd calcule, qi din acest motiv sunt foarte

pentru partea fraclionarf, se marcheazd triadele incep0nd de la

rapide. O altd raliune pentru care sunt preferate bazele 8 qi 16 bazei2 rezultd din

virguld spre dreapta;

aspectul evident

fiecare triad[ este inlocuitd cu valoarea corespunzdtoare dinbazaS.

greu de manipulat.

Reguli de calcul inbaza? SibazaS


inbaza2 adunarca qi inmullirea se fac conform tabelului 2.3.La adunare se

Exemplu:
1 111 101.011 101-12
y,2\--/t-J
\-rvl-,

Co nv er sia

775.3748

observ5 cd aparc cifra de transport

binar-hexazecim al

Prezentdm mai

al faptului cd numerele binare, datoritd lungimii lor, sunt mai

jos (Tabelul 2.2) valoile cifrelor

hexazecimale

in

Tabelul2.3. Regulile

binar,

Oitul 1 oblinut din

10

1+1).

de calcul pentru adunare 9i inmullire

inbaza2

numite tetrade.

Tabelul 2.2. T etradele corespunzdtoare reprezentdrii inbaza 2


a cifrelor dinbaza16

hexazecimal binar
0000
0
0001
1
0010
2
0011
3
4
0100
0101
5
0110
6
0111
7
1000
8

hexazecimal

9
A
B
c
D
E
F

binar

1001
1010
1011

i100

1101
1110
1111

in

baza

8 tabelele pentru adunare qi inmullire sunt dup6 cum urmeaza

(Tabelul2.4):

Tabelul 2.4. Regulile de calcul pentru adunare qi inmullire in baza

0
1

2
J

in conversia binar-hexazecimal rolul triadolor

este luat de tetrade, iar pagii

algoritmului sunt idontici ou ooi ai oonvortioi binar.ootal,


I

4
5

6
7

- -.airriel-ra@-..

0123456
1,234567
23456710
3 4 s 6 7 l0 1l
4 s 6 7 101112
56710111213
671011121314
7101112137415

7
10
11

12
13
1,4

15

t6

-.
Cltrtto a, b, c,

<-a+b+c+d
Scrte s
s

Stsop

Oafl c8tevn cxstnpte de hrreglntrarl'

in mod

Dacd n are valoare mare (de exemplu 100), merg6nd pe aceeaqi idee, ar
trebui sd avern 100 de variabile gi sd le prelucrdm conform algoritmului de mai
sus. Evident, acest lucru este de neimaginat. Solu{ia practich este a folosi

de variabile indexate,

x;,

i=l,n

gi de a calcula

ru*u f x;

n:

natural, listele

de obiecte se pot

unidimensionale (numite vectori).

memora 1' tablouri

De exemplu, lista de persoane

Popescu, Georgescu, Vasilescu) poate

fi memoratl in vectorul

{lonescu'

p ersodfiei

100

persoane

Georsescu I Vasilescu

Ionescu

folosind o structurS

i=1

Folosind structura tablou, dou6 elemente vecine din

iterativi de control.

list[

adrese vecine (de exemplu, 'Popescu' 9i 'Georgescu' sunt

sunt mgrilOffE

memofall6ldffffh

vecine 2 9i 3).

Caracterizali tipul de date tablou. Dafi cAteva exemple.

rVfn[fUt
Aceast6 variantd de implementare a listelor (numit[ statiot) 66
presupunem cd pentru fiecare persoanl a unui colectiv ne intereseazd datele:

pltloultrtr
unei parcurgeri rapide in ambele sensuri, in orice punct ne-am afle,
cl
apare la eliminarea sau inserlia unui element nou in list[, ProfuPUnlnd

nume (tip alfanumeric), vdrst6 (tip intreg), salariu (tip real), sex (tip boolean).

vectorul

inregistrdrile modeleazd coleclii neomogene de date. De exemplu, sd

Pentru o persoand, datele de tip diferit pot


variabila inregistare info (F igora

Info -

fi reunite intr-o inregistrare

ca in

.2):

nume

vdrstd salariu

Ionescu

32

2 633

sex

care se

memorea

zd lista are o

d0 fiaro'
dimensiunc sUfiaiqll

dcplasarca
introducerea persoanei 'Marinescu' in listS pe pozilia a doua implio[
pozitie
0U o
subgirului 'Popescu', 'Georgescu', 'Vasilescu' 9i toate care Ufmeaz6
spre dreapta conform schilei din Figura 3'3'

Figura 3.2. Ilustrarea unei irnegistrlri cu patru cflmpuri

in

Ionescu

1P.-=--.---..- "'
Popescu

Jceorgescu I 'vastlescu

Figura 3.3. Inserlia unui element in vectorul

pe rsoane

:
I

pe poziliaa doua

nume, vdrstd, salariu gi sex se numesc cdmpuri ale inregistririi. Referirea la


un cAmp se face folosind construclia

nume_variabila.nume_camp
De exemplu , info.nume se referd la girul 'lonescu', nume.vdrsta la valoarea
32 gi aga mai departe.

se eliminl
Deplasdri, dar de data aceasta spre stdnga, au loc qi atunci c6nd

elemente
persoanei

din lista. De exemplu, daca din lista iniliala se dore'to

scoaterea

,popescu', acest lucru implicd deplas6ri spre sthnga cu o poZilie pentru

fiecare din elementele aflate dupd 'Popescu' (Figura 3'4)'

[71]

11.

Luca-Dan $erbinafi, varenfln c.rrrtcu,


rr,r,rrcn Mordoveanu, varcrru
rorga, Programarea sistemaricd in
rimhcrje re ,>ascar
si Fortran,Editun
Tehnicd, Bucureqti, I 9g4.

12.

Liviu Dumitraqcu, Monica Vlidoiu, Mihaela


Oprea, Cristian
Marinoiu gi colectiv, Borrand pascar in
r 3 conversarii cu cD, capitoiur
72, Structuri de date. Operalii
elementare,pag. 54g_5g3, Edifura

13.

14.

Universitdlii din ploiegti, 2001.


Gheorghe Barbu, Ion Viduva, Mircea
Bologteanu , Bazele
Editura Tehnica, Bucuregti, I997.
Gheorghe Dodescu, Radu M^rqanu,
Floarea Nfistase, CalculatoaroElemente fundamentare de structurd.
Ini[iere tn utirizarea pc-urrror,

Editura

ALL EDUCATIONAI, Bucureqti, 2000.

1.

Introducere in informatic6

Matematicianul american de origine germanA John von Neumann public[ in

in

1949 profesorul

M. Wilkes de la

qi

ALGOL (ALGOrithmic Language).

memoria calculatorului. Aceste principii folosite de von Neumann au stat labaza

dezvoltdrii calculatoarelor moderne.

nivol inalt: FORTRAN (FORmula

TMNslator), COBOL (COmmon Business Oriented Language)

in

SUA proiectul primului calculator cu prelucrare secvenliald a


instrucliunilor gi datelor, memorate impreund intr-o zonh specialS numitd
1946

apar limbajele de programare do

Introducere

Genera{ia a 3-a de calculatoare se lntinde de-a lungul perioadei 1964-1981

il

are la bazi tehnologia circuitelor integrate. Printre caracteristicile celei

de-a3'a

Universitatea Cambridge din Anglia construieqte primul calculator cu program

Itnera{ii amintim:

stocat intr-o memorie cu intdrziere care are la bazd principiile savantului John

volumul tedus, capacitatea mare de memorare;

vitezade calcul mare (aproximativ 106 adundri/secundi)

se dezvoltd vechile limbajele de programare de nivel inalt gi apar

von Neumann , calculator ce a primit numele EDSAC (Electronic Delay Storage

Automatic Calcul ator).

in etape de evolulie

Perioada care a urmat este impS(itd

numele de generafii
(aproxirnative

de calculatoare.

Prezent6m

in timp) ale fiecirei genera{ii,

in

cunoscute sub

Generalia 3.5

I de calculatoare

este cuprinsd intre

anii 1946-1958 qi foloseqte

calculatoare sunt:

elrouit integrat.

vitezdde calcul redusd (maxim

se programeazdin cod magind gi

tehnologia

cu

operalii/secundi);

in limbaje de asamblare.

tranzistoare

qi diode

semiconductoare.

Caracteristicile deb'azd, ale acestei generalii de calcuiatoare sunt:

memorie intem[ cu capacitate sporit6 qi timp de acces mai redus;

yTtezdde calcul sporit6 (maxim 105 operaliilsecundd);

Concomintent cu progresele oblinute

apar

Si foarte larg6

in domeniul tehnologiei folosite,

Bltui calculator, costul software-ului cregte sensibil

pe

se

primele sisteme de operare;

in raport cu costul

datorat

htrdware-ului. Se dezvoltd modul de lucru interactiv, sistemele de gestiune a


bgrclor de date, apar limbajele de programare concurente.

Generalia a 5-a de culculatoare se remarcd atat prin progrese tehnologice


derrrehite (grad ridicat de minituarizarc datorat circuitelor integrate pe scard

frnrte larga, viteze de ordinul miliardelor de operalii pe secund6, memorii


;,(lorne de ordinul Gigaoctelilor la prefuri tot mai mici), cdt 9i prin dezvoltarea
lmprosionant[

largl (LSI - Large Scale Integration)

der,voltA puternic componentele logice debazd ale calculatorului. Astfel, in preful


104

Genera(ia a 2-a de caleulatoare este localizat6 in timp intre anii 1958-1964

gi se bazeazd pe

sebazeaza pe tehnologia

- Very Large Scale Integration) - pdnd la un milion de tranzistoare

(Vl,Sl

memorie de capacitate redus6 gi timp de acces mare;

Pascal, LISP, Basic etc.) qi de nivel mediu

- 4 acoperS perioada 1982-1989 si

glfOuitelor integrate pe scarS

drept tehnologie de bazd tuburile electronice. Alte caracteristici ale acestor

fiPLll,

(limbajul C).

precum qi caracteristicile sale

principale [2].
Generalia

altele noi (cum ar

continuare limitele

elementelor de inteligen]d artificiald. Acest lucru

permis

tparlliu unor limbaje spccializatc Ai elaborarea mai eficienti a unor sisteme

Introducere in informaticl

schimb gfiinfa procesdrii sistematice

1.

informafiei,

algoritmilor.

in principar pe

De precizat faptul cd ideea

Introducere

utilizdrii cartelelor perforate pentru codificarea

algoritrn a fost preluati de Babbage de Ia productrtorul francez de fizboaie

paut Joseph Jacquard. Acesta autilizat in anul 1801 cartelele perforate ca


pentru codificarea paqilor pe care trebuia

s[-i execute un r[zboi de tesut

arealizaun anumit model de !es6tur5.


La recensamantul efectuat

in

1890

in suA, Herman Hollerith (1860-1929)

pentru memorarea datelor cartelele perforate, fapt ce

Evolu{ia masinilor de calcul _


scurt istoric
Ideea efectu,rii carcureror cu
ajutorur unor dispozitive nu
este de dattr
recentd. Astfer, abacur, unur
din primere dispozitive de carcul
rearizata" or gil
care este forosit gi astdzi, este
cunoscut din

timpul civilizafi,or antice greacd


gi

romanf,' un abac este format


dinh-un cadru dreptunghiurar prevdzut
cu sdrme pe
care pot fi deprasate manuar
un numd.r de bile. pozitjaunei
bile ra un moment dat
rcptezintd' o anumitd valoare
fapt ce permite reprezentarea gi
stocarea
datelor.

Algoritmul de carcur este imprementat


prin deprasarea manuald a b,eror.
Mult mai tdrziu apare ideea reprezentirii
datelor cu ajutorul
__ _- *L\vL
unor rofi
Vra
'
dinlate' varorile de intrare se
marcau manual, prin pozifionarea
corespunzStoare
a rolilor, angrenajul de ro{i
dinfate se decranga gi ra oprire
se interpretau pozi}iilo
lor finale' Legat de aceastd tehnologie,
cele mai importante nume sunt:
Blaise
Pascal (1623-1662, savant francez),
Gottfried wilhem Leibniz (1646_1716,
savant german), charles Babbage
(r7g2-rg7l,savant engrez).Maqin,e
de carcul
construite de pascar gi Leibniz
aveau incorpomte in structura
ror pagii
algoritmilor pe care ii executau.
Spre deosebire de invenfi,e predecesor,or
s6i, ra magina inventat, de
Babbage paqii algoritmilor erau
codificafi pe cartere perforate,
iu rezurtatere
erau tipdrite direct pe hartie,
dispozitivul creat in acest scop
fiind un precursor ar
imprimantei actuare. Aceste idei,
revorufionare pentru epoca in
care au aplrut,
vor fi folosite qi mai tilrziu, in
epoca modernd a calculatoarelor.

reduce

timpul de procesare a informaliilor. Legat qi de rezultatele oblinute


Hollerith,

in 1924 apare compania IBM (International Business

Machine

furporation), care va juca un rol important in evolulia tehnicii de calcul pe plan


Egndial. in 1940, George Stibitz construiegte la Bell Laboratories o maqind de
SllgUl clectromecanicd. Patru ani mai tdrziu,

in

1944, Howard Aiken de la

Unlvorsitatea din Harvard construiegte calculatorul Mark

I,

care :utilizeazi relee

illeanice comandate electronic. Primul calculator electronic bazat pe tuburi


ltgOtronice este considerat a fr ENIAC (Electronic Numerical Integrator And
QAleulator) construit de John Mauchly gi J. Presper Eckert, de la Universitatea

dltt l'cnsylvania, in perioada 1942-1945.

Nu existd insd unanimitate in aceastd privinfb.

cercetdtori ai istoriei

Woluliei calculatoarelor considerd cd prima maqind care foloseqte integral ln


$rnrtrucfia sa elemente electronice este calculatorul construit de John Atanasoff

;l

de asistentul

siu Clifford Beny in perioada 1937-1941.

Itevenind la ENIAC, se poate spune c5, fa!6 de calculatoarele din ziua de


f,Ul. cra un gigant care se "miqca" insS foarte lent. Avea

in structura

sa aproapc

o suprafald de 160 metri pdtrali 9i avea o


putea ajunge pdni la 5000
Broutate de aproximativ 30 de tone. Viteza de calcul
20 000 de tuburi electronice, ocupa

de ndunlri pe secund6. O problem6 dificild in cazul acestui calculator

era

Itttrotlucerea datelor gi a programului; aceastI activitate dura mai multe zile qi se


fhoeu cu

ajutorul figelor celor 40 de panouri special construite in acest scop.

.-.'#

_iq:!EEE-.

Introducere in informatlol

1, Introducere

printr-o singurd acfiune (sau ,,flash"). cipur poate fi gters


-Fgi rcprogramat, adic6
reincdrcat cu date, foarte rapid. Acest tip de memorii
se reg[segte Ia stick-urilo
usB (numite qi memory stick-uri), ra cardurile de memorie pentru
digitale de fotografi at, la player-ele audio, la telefoanele

mobile

[Jtichetele suporturilor optice con[in:

rtrat, iar unul DL (Double Layer) doud straturt.

este acera cd procesul de scri

Clapacitatea,

indic[ faptul cd perioada de

DL

funclionare

SS SL este de 1.46 GB, iar a unuia de 12 cm diametru etichetat DVD-18


oste de 17.08 GB.

lx

suporturile optice sunt de asemenea suporturi nevolatile de


memorie.

lx

este de

150 kB/g,

Discuri read only (care pot fi doar citite, nu gi scrise):

(lencrafiile de suporturi optice sunt urmdtoarele:

o CD-ROM (Compact Disk ROM);


o DVD-RoM (Digital video Disk sau Digitar versatile Disk RoM);
. BD-ROM (Blu-ray Disk ROM);

(sub forma 10x, 14x etc.), care in cazul discurilor de tip CD-ROM

de 150 kB/s. Pentru discurile de tip DVD-ROM, viteza de scriere

Acestea se clasificd dup6 cum urmeazd:

de exemplu, a unui disc optic de 8 cm diametru etichetat

Vitcza (teoretici) de transfer a informafiei se eticheteazd raportat la o vitezd

dispozitivului se apropie de terminare.

de

otlchetat DS (Double Side) arc doud fele utile, unul SL (Single Layer) un

de

creqterea intervalului

necesar pentru scriere

utile qi numdrul

pe ftecare faf[. Un disc etichetat SS (,Slngle Side) are o singurd fa{6 uti15,

distruge celulele de memorie; de aceea, dispozitiwr garanteazd.de


reguri p6nd
100.000 de scrieri succesive. pe mdsura utilizdrii sale,

timp

de

capacitatea de memorare, num[ru] de fele

smartphone qi chiar la consolele de jocuri electronice.

un neajuns al memoriilor de tip flash

tipul suportului, viteza

CD, discuri laser, discuri magneto-optice;

DVD, DVD-Audio, DualDisc, Digital Video Express (DIVX), Super


Audio CD, Video CD, Universal Media Disc;

Discuri write once (care pot fi scrise numai o datd):

BD, BD-RE (cu o capacitate de 50 GB pe un strat dublu), Forward

Versatile Disc, Digital Multilayer Disk sau Fluorescent Multilayer

CD-R, DVD-R, DVD+R, BD_R;

Disc, UDO.

Discurile rewritable(reinregistrabile):

o
o

CD-RW, DVD-RW, DVD+RW, DVD_RAM, BD_RE;

Stocarea magneticl qi stocarea opticd inregistreazd datele

Discuri uDo (uhra Density opticar), similare in capacitate


cu BDR sau BD-RE, dar folosite ra stocarea de date terliard (sau
off-rine),
Acest tip de discuri ofer[ un timp de acces de aproximativ
35 ms, o
capacitate de memorio
60-120 GB (chiar 500
pe

do

GB

discuri do

13.3 cm in diamctru) gr au durattr do vraft de aproximativ


50 de ani.

bit cu bit, liniar,

Be nrrrdificlri magnetice sau optice pe suprafala suportului ftzic. Memoriile


r

hohtgrotice,

in schimb,

stocheazd informafie in volumul suporhrlui de memorie

ttt npn manierd incdt o aceeagi zond poate inregistra mii de holograme

(de

oxomplu imagini) folosind lumina laser la unghiuri 9i lungimi de undd variabile.

Itlncipiul de func{ionare permite scrierea gi citirea a milioane de bifi in paralel,

fopt cnlc conduce la rate do transfor mai mari decdt in cazul memoriilor obignuite
f

0f

tln suport dc momorie do aooct tip

este discul HVD (Holographic Versatile

64Ere=

Introducero in informatlel

=qFF.
1.

Disc), care stocheaze 3,9 TB pe un diametru


de r0-r2 cm, volum de date care
echivaleazdcu cea a 5 g00 de discuri CD_ROM.

IDEro,
numitl nrai t6rziu ATArr gi apoi PATA @aratlel ATA) pentru
a o distinge de SATA (serial ATA): arc o ldlime de 16

Modalitr{i mai noi gi deocamdatd foarte pu{in puse


in practicd se referd Ia
memoriile molecurare (trtroteiru-coated ctisc)
care presupun stocarea dateror in
molecule organice, sinteticee sau vii, cu proprietrli
care le fac sE fie
intrerupdtoare moleculare. Structurile de reguld
dense in care sunt dispuse
moleculele permit stocarea a p6ni la 13 TB
de date pe o suprafald de

cm,

bili

qi permite

doud dispozitive pe fiecare canal.

EIDEl2, cu rate de transfer

de

4-16.6 MB/s, poate suporta

dispozitive de stocare de pAnd la 8.4 GB (Fast ATA sau Fast IDE sau

ATA-2). ATA-3 sau Ultra ATA suportd transferuri de 33 MB/s.

s71,

SATAI3, cu rate de transfer de 3 Gb/s per dispozitiv gi care permite

Alte avantaje sunt costur redus de oblinere qi praja


mare de temperaturi ra carc

indepdrtarea sau addugarea

pot opera, spre deosebire de memori,ebazatepe


semiconductoare.

Mediul de stocare este suporlur (detagab,) de


memorare, iar unitatea
stocare aferentd este, din punct de vedere
fizic, intregur ansamblu care

Introducere

de dispozitive

in

timpul operirii.

Modelul SATA 300 de exemplu asigurd ovitezd de transfer de 300


MB/s.

de

asigur[

SCSIr4, care folosegte comunicarea paraleld

memorarea. Denumirea unitdfii de stocare


incrude termenul ,,drive,, pe rangtr
numele mediului de stocare pe care il suportd.
De exemplu:

gi ofer6 o l[fimc

do

bandd maximd per dispozitiv de 320 MB/s qi rate dc transfer dc ptntr

la 80 MB/s, mai mari decdt alte porturi seriale gi paralele.


Mediu de stocare

Unitate de stocare

HD (Harddisk)

HDD (Harddisk Drive)

o generalie mai nou[ de protocoale de comunicaro seri{lfl


creatd pentru a permite viteze mai mai de transfer al datclor,

CD-ROM

CD-ROM Drive

compatibil cu SATA. Ofer6 o vitezd de transfer de 375 MB/s

SASrs,

gi

permite 4 dispozitive pe fiecare canal.

Caracteristicile mediilor de stocare sunt: tipul interfelei


suportate, viteza
maximd (teoretic6) de citire/scriere a inform
aliei, capacitatea, timpul de acces,
fiabilitatea gi viteza de acces (mdsuratf, in rota{ii pe
minut).

\ Eru..rafi principalele

medii de stocare a datelor.

Interfeyele (controiler-ere) unitdlitor de stocare


gestioneazd schimbur dc
informafie intre unitatea centrala gi unitdfile
de stocare a datelor. Arhitecturile do
bazS sunt urm[toarele:

substanfo forosito drcpt oororun[r ohlnrrol


[7]

sunt unitalile de stocare a datelor gi care este relalia acestora cu

unitfltea de memorie? Dar cu suporturile fizice de memorare?

tn

lnlegraled Driye Electronics

tt lilvanced
Technologt Attachment

t' llnhanced IDE

t'
tt

'Do oxemplu ftarocianinere,

c"

tt

Serlal Advanced Technologt Attachment

,\mall Computer Syslem lnlcrfaea


Serlal Auached SCSI

q-=-

IntrodUfrffilFffifilcl
Rearnintim

c[

unitatea de comandtr qi control

(ucc) lmpreun[ cu unitatea

9i logicd (uAL) formeazd. unitatea centrartr de prelucrare (ucp),


reprezentatd de procesorul calculatoralui (numit
microprocesor
aritmeticd

la

dimensiunea componentelor calculatorului,


Unele componente

magistralelor de adrese (num5r de

magistraleror

de date gi

bifi), de tiput socrurui utirizat, de viteza

maximd de Iucru (mf,suratr in Hz), de capacitatea


maximi de memorie pe care o
poate accesa qi de tehnologia de fabricalie (dimensiunea
componentei
elementare

procesorului, mdsuratd in microni

deoarece

ale calculatorului nu pot: avea dimensiuni sub valori

O solulie alternativ6 o

de

reprezintd folosirea mai multor procesoare in

oonstruclia unui calculator.Aceastd idee


Abandonarea principiului

lui

a prins contur in jurul anilor

John von Neumann

!,rosut[ o singurd instrucliune la un moment dat

1970.

un singur procesor

care

a insemnat de fapt apailia

gEleulatorului paralel.

pml8).

Calculatorul paralel reprezintd

luoru practic imposibil,

ordinul rnilimetrilor.

microcalculatoare). Puterea de carcur a unui- procesor


se mdsoard in MIps16 sau

in FLOPStT gi este detenninatd de: ldrgimea

1. Introducere

care sunt unitarile func{ionale

care arcdtuiesc arhitectura unui

calculator serial?

foolaqi

tip,

interconectate

o colectie de procesoare, de obicei de

intr-o anumitd refea care permite

coordonarea

aotivitalilor lor qi schimbul de date. Distan{ele dintre procesoare sunt reduse, iar
tntreg ansamblul oblinut contribuie la rezolvarea unor probleme de regul[ dificile

lau/qi de dimensiuni mari. Aceste caracteristici sunt esenliale pentru a deosebi un

calculatorur serial este construit dup6 principiile


stabilite de John von
Neumann' Conform acestor principii, calculatorul
este alcifuit din cele cinci
unitali funcfionale (unitatea de intrare, unitatea de
iegire, unitatea de memorie
care contine programul gi datere, unitatea aritmetica gi
I0gicd, unitatea de
comandd gi control). calculatorur serial are un
singur procesor care executd o
singur6 instrucfiune la un moment dat.

oalculator paralel de o relea de calculatoare. Astfel, degi o re[ea de calculatoare


poate

fi

vdzutd tot ca o colecfie de procesoare, diferenla este

c[, in

acest caz,

o arie geografrcd mare, sunt de obicei de tip


diferit, iar scopul urmdrit este utilizarea in comun a resurselor disponibile,
procesoarele sunt distribuite pe

prccum gi colectarea gi transmiterea informa{iilor.

Eficienla calculatorului paralel se datoreazd procesdrii paralele a datelor.

Yiteza de lucru a procesoarelor actuare poate depdgi


10e operalii pe
secundd [8] 9i, evident, se doresc viteze qi mai
mari. Se apreciazdins6 c6 limita
frzicd, a numdrului de operafii este in jur de
l0r0 operalii pe
secund6. Acest

Accst lucru permite reducerea timpului de rezolvare a unei probleme utilizdnd


procesoare cu viteze nu foarte mari qi

in consecinld ieftine. Din acest motiv, un

unlculator paralel nu este mai scump decdt unul serial.

ln ciuda

acestei realitdli,

rezultat este impus de limita vitezei de propagare a semnalului


electric, care este
de aproximativ un metru intr-o nanosecunda (10-e
secunde). pragul

frcnctrarea lor pe piaja calculatoarelor este destul de slabi. Cauza principalS este

operalii pe secunda ar putea

tlrnpului fondurile pentru cercetare in software au vizat in special calculatoarele

de l0ro

l,Million
t7

fi depdgit numai daca s-ar micqora foarte murt

tohnologia software relativ primitivd

calculatoarelor paralele: de-a lungul

roriale, iar un software eficient pentru un calculator serial nu rdmdne obligatoriu


Instructions per second

{loating operations per

" I pm = 10-6 mehi

second

mirioanede instrucliuni pe secundi


opera{ii in

virgul, mobirr pe secundi

olicicnt prin adaptarea sa pentru a

fi

executat

pc

un calculator paralel. Crearea

unor biblioteci performante de software destinat calculatoarelor paralele necesit6

linrp qi bineinfeles fonduri financiare.

.,,''OO;HFFffi

l,

calculatoarele cray qi ciber (apdrute

ln anii 1970) s-au numlrat printre

primele calculatoare din lume care au utilizat pararelismul. Ele au la bazd un


procesor vectorial care implementeazd, tehnica pipeline. originea termenului

Introducere

al sistemului, modul de organizare a memoriei, topologia dispunerii


procesoarelor. ln legEtur6 cu num6ru1 de procesoare apare termenul de
control

granulapie. Granulalia poate

fi:

"pipeline" o gdsim in industria petrolierd, unde desemneazd o linie de seleclie


pentru hidrocarburile dintr-un produs petrorier
de baz6.. Aceast[ tehnicr este

find - aproximativ 1000

asemdndtoare cu asamblarea unui produs pe o bandd rulanta:

grosierf, - aproximativ l6 procesoare care trateazdmulte date;

la

frecare unitate de

timp fiecare diviziune de opera{ii este in lucru.

de procesoare, fiecare tratdnd date

puline;

medie - aproximativ 64 de procesoare.

Urmeazd apoi o dezvoltare rapidd de noi generalii de supercalculatoare care

O modalitate clard de a clasifica calculatoarele paralele o datordm lui Flynn

cunosc imbunrtd{iri substan{iale: dispar buffer-ele (zonele tampon) de mare


vitezd, o parte din memorie este distribuitr intre proces oare, iar o parte este

(1966). Conform acestei clasificdri existi patru eategorii de calculatoare


paralele

l8l:

accesibild tuturor unitdfilor, se imagineazd gi se pun in practicd noi modalit6ti de


interconectare a procesoarelor etc.

calculatoarele paralele

isi

gisesc utilitatea mai ales

in

SISD (,Single Instruction Single Data) - un singur set de instrucliuni


gi un singur set de date (calculatorul serial)

rezolvarea

SIMD (Single Instruction Multiple Dya)

problemelor care necesitd solulii rapide sau sunt de dimensiuni mari. IatI cateva

- un singur set de

instrucliuni qi mai multe seturi de date;

exemple: probleme de procesare a imaginilor, probleme de modelare gi simulare

(de exemplu simularea numerici

zdcdmintelor

de petrol), probleme

MISD (Multiple Instruction Single Data) - mai multe seturi

de

instrucliuni gi un singur set de date;

previziune a fenomenelor meteorologice etc.

MIMD (Multiple Instruction Multiple Data)

\nali

o scurt6 definilie a calculatorului paralel.

\Cur"

sunt avantajele unui calculator paralel?

\Motivati de ce, in

ciuda performanfelor, calculatoarele paralele nu

cunosc o rdspAndire aqa de mare ca maqinile de calcul seriale.

clasificarea sistemelor paralele se poate face dup[ mai multe criterii cum
ar fi: num[ru] de procesoare, viteza de lucru a prooc8oarolor, mecanismul de

de

mai multe seturi de

instrucliuni gi mai multe seturi de date.

\C"

este arhitectura unui calculator?

fnn

de autoevaluare

1.3. Ce fel de resurse se afld labaza

funclionirii calculatoarelor

resurse frzice,logice gi informafionale;

risurs. hardware, software gi informafionale;

: fnlrFrnrtlc[

lntroduo.rt

lntrooucr

resurse fizice, software gi infonnafionale.

1.4. Ce

tipuri arhitecturale cunoaqtefi

1'5. Enumerati cdteva domenii

in

care

paralele.

iqi

gdsesc utilitatea calculatoarele

fie interfefe tip linie comanda (CLI: Command-Line Interfaces),

fie interfele grafice (GUI : Graphical User Interfaces)'

interfa!6 de

' cei bi{i poate memora un cD-RoM cu capacitatea de 700 MB

grafice cum sunt ferestrele, butoanele, listele etc'

Sisteme de operare. Nofiuni de bazd


Sistemul de operare este o interfa{i intre componenta hardware gi utilizator,
reprezentat prin programele sale, numite gi programe de aplicalie. Mai precis,
un

sistem de operare este un ansamblu de programe de control care ghideazd un

in

executarea sarcinilor sale

gi

asistd programele de aplicalie

gi

utilizatorul prin intermediul anumitor funcliuni [9]. Rolul sistemului de operare


ca interfa[d, om-calculator este eviden{iat in figura de mai

jos (Figura

1.2).

de operare ca interfald om-calculator (adaptare dupa


[9])

DupE cum se observ6 din figura 1.2, sistemul de operare comunicd cu


utilizatorul atat direct, cdt qi indirect (prin programele de aplicafie). Interfelele

a oferi servicii programelor de aplicalie se numesc Apl_uri


(Application Programming Interfaces), iar interfefele necesare pentru a oferi
necesare pentru

direct utilizatorului servicii

sunt:

de operare este alcStuit din dou6 categorii de programe [9]:

programe de comandd qi control;

programe de servicii.

Programele de comandd Ei control coordoneaza qi controleazd toate


de
funcliile sistemului de operare. Principalele componente ale sistemului
programe de comand6 gi control sunt [9]:

suPervizorul;

sistemul de gestiune a intrdrilor/ieqirilor'

Sarcinile

Figura 1.2. sistemul

- aceea cate permite rcalizarea de


comanda este

permite realizarca comenzilor prin selectare/mutare/derulare a unor elemente

un sistem

calculator

tip linie

acesteia intr-o
comenzi prin scrierea numelui comenzii qi eventual a atributelor
in schimb,
fereastra special conceputf, pentru acest lucru. o interfala gtafrcd,

1.6. Care este clasificarea lui Flynn?


1.7

up

emizorul

ui

sunt urmdtoarele [9]

coordoneazdtoate componentele sistemului de operare;

planificf, , lanseazdqi urm6reqte execulia programelorl

depisteazd si trateazdevenimentele care apar la execufle.

in
Rutinele debazd sau frecvent folosite ale supervizorului sunt rezidente
memoria
memoria internS. celelalte sunt tranziente, adic6 sunt stocate in
auxiliar[ gi inc[rcate la nevoie in memoria internd'
al
sistemut de gestiune a intrdrilor/iesirilor coordoneazl modul de afectare

dispozitivelor periferice programelor, precum


dispozitivele de intrare/iegire qi memorie.

9i

transferul datelor dintre

1,

lntroducoro in i nformn l,ir:il

Cea de-a doua componentb a unui sistem de operare, programele de

Introducoro

coordonarea execuliei mai multor programe, crearea unor facilitdli


de depanare etc.;

servicii, se referd la [9]:

translatoare (asambloare, compilatoare, interpretoare);

editoare de leg[turi (linkeditoare);

incdrcdtoare;

editoare de text;

programe utilitare;

progmme bibliotecar;

programe pentru gestiunea operaliilor de intrare/ieqire pentru fiqiere

asistarea execuliei programelor de aplicalie folosind posibilitalile de

comunicare om - calculator.
Existd patru tipuri de sisteme de operare [9]:

i,

gibaze de date.

secvenliale;

cu multiprogramare;

cu prelucrare multipld;

in timp real.

sistemele

de operarc

secvenliale (batchprocessing) prelucrarea

programelor se face serial. Execulia programului poate si inceapd numai dupS ce


acesta a fost incdrcat cornplet

Deoarece sarcina de bazd

a unui sistem de operare este de a pune la

qi
dispozi{ia utilizatorului mijtoace prin care sd poatd crea, stoca, prelucra, regdsi

gradul de ocupare al procesorului este redus

pregdtirea gi lansarea in execulie a programelor de aplicalie;

alocarea resurselor necesare executirii programelor;

planificarea execuliei lucr[rilor dupd anumite criterii, cum ar fi: timp


de execulie,

se

multc programe. Execulia

realizeazdprin multiplexarea unitfiii centruk:. l)uotl, de exemplu, in timpul

execuliei programului

Pl,

se

solicit[ o opcrafic tle inlrnre/icgire, se executd

ale unui alt program P2 gi aga mai departe, Accnl

sortare

(ordonare), pentru creare biblioteci de programe, pentru catalogare


(depunere programc ln trihliotcc[) cte'l

lor

fi inclrcatc mai

acest scop, in

intrerupere I/O (Input/Output), iar procesorul vu ootttitttln Hll cxecute instrucliuni

Prioritili etc';

folosirea utilitarelor pentru crearea unor facilitEli de

m[ri gradul de utilizare al procesorului. in

memoria partajatd corespunzltor pot

Prezentam mai jos lista funcfiilor debazdale unui sistem de operare [9]:

in raport cu timpul total folosit

Sistemele de operare cu multiprogramdre (multi programming) au ap[rut


tocmai din nevoia de a

Oali o definilie a sistemului de operare'

acest motiv

pentru execulia programului.

distruge informalia, funcliile sale de bazdtrmdrescrealizatea acestor obiective'

in memorie impreun6 cu datele. Din

llp rlo excou{ie (programare

concurentS) este, evident, mai eficient din punr.:t do vetlare El grudului de utilizare

al procesorului, iar vTteza cu care se executE pr(flfamelo areeazd


execuliei lor simultane. Gestiunea corect[ $ tnm(lflGl nHrll\irte, a

perceplia
accesului

programelor la resurse (memorie, procesori unlGll tle lttltere/ic;ire) sunt doar


doutr din problcmclc maiore care apar
operare,

ln plur ln

egCfle

ll;llri de sisteme

de

Int**ff0#l#ffiior

fntroduccre

Slslemele de prelucrare multipld se implementeaz[ pe calculatoarele cu


mai multe procesoare (calculatoare paralele). Mai multe procesoare pot executa

simultan acelagi program dacd este descompus in mai multe sarcini

(multitasking).

memorie obtinAndu-se formatul IMA (Imagine Absolutl a Memoriei). in aceast6

form[ programul poate fi executat.


Compilatorul limbajelor de asamblare

se numegte

asamblor.

Fazele execu{iei unui program translatat prin compilare sunt prezentate in

Sistemele de operare in timp real se folosesc pentru conducerea operativd a

Figura 1.3 [9]:

unor dispozitive ai cdror parametri se modific6 continuu.

Exemple mai cunoscute de sisteme de operare sunt: LINIX, Linux,


Windows, MS-DOS, MacOS, Android, iOS. Ultimele doud sunt sisteme de
operare folosite pentru dispozitive mobile de tip touchscreen'

Figura 1. 3. Fazele execuliei unui program translatat prin compilare

Enumera{i gi caracterizali tipurile de sisteme de operare'

Modul de lucru al interpretorului este urmitorul. Se analizeazd sintactic

linie cu linie programul. Dac[ linia de program analizatd este corectd din punct

Enumerali funcliile debazdale unui sistem de operare.

de vedere sintactic afunci aceasta se qi executd inainte de a se trece


urmdtoarei

linii.

programului.

La compilator

in raport cu analiza sintacticd

execufia se face

dupi ce tot programul a

translatat, [a interpretor analiza sintactic[ a unei


Programul poate fi privit ca o unitate de operare. Indiferent in ce limbaj este
scris, pentru a

fi

executat, programul trebuie translatat (tradus)

in

cod-ma;in6.

Existd dou6 tipuri mari de translatoare: compilatoarele gi interpretoarele.

Modul de lucru al compilatorului

este urmbtorul.

Se analizeazS sintactic

analiza

Se observd cd diferenla esenfialS dintre compilator qi interpretor

se referb la momentul c6nd se face execulia

Fazele execu(iei unui program

la

linii de program

fost

este urmatd

obligatoriu de execulia ei.


Fiecare din cele doud metode de translatareprezintd avantaje gi dezavantaje.

Cind se foloseqte compilatorul, necesarul de memorie este mai mare (memoria


trebuie sd conlind atAt codul sursl cdt gi codul obiect), dar modulele obiect

programul sursi gi se flmizeazd o list6 de erori. DupS eliminarea erorilor de c[tre

rezultate pot

programator, se obline forma binar translatabilA (BT) a programului. Formatul

in

fi catalogate in biblioteci gi folosite

separat la nevoie.

cazri interpretorului este nevoie de mcmorio rolativ redus[, dar execufia

BT inseamnS un numdr de module obiect fird leg6turd intre ele. Programul care

programului este mai anevoioasi deoarece presupune pcntru fiecare linie, la

realizeazd legdturile dintre module este editorul de legdturi (linkeditorul). Se

fiecare rulare, atdt translatarea c6t gi executia.

obline forma IMT (Imagine Translatabild a Memoriei). Este forma care va fi


preluatd de programul inc6rcdtor qi va

fi inclrcatl la o adresd concretd de

'l,

Introduccrc ln lnformatlcl

Introducere

Ll0.

rrndeautoevaluare

Compilaroa (sau analiza sintactic[)

a codului sursd, editarea

legdturilor intre modulele obiect rezultate, lncIrcarea formei

1.8. Care sunt cele doud categorii deprograme care alcdtuiesc un sistem de

IMT la o

adresb

concretd de memorie gi execu{ia programului.

operare?
1.9. Care sunt sarcinile supervizorului?
1.10. Enumerali

Lucrare de verijicare

funcliile debazd,ale unui sistem de operare.

1.11. care sunt fazele de execu{ie ale unui program translatat prin

Realizali o sistematizare a cunogtintelor dobAndite in acest capitol.

compilare?

Rezumut
Calculatoarele sunt sisteme ftzice care prelucreazl, date pentru
Rdsp uns

urile testelor de autoevaluare

1.1. Informalie

datd + semnificatie.

rezultate

fie intr-o form6 accesibili utilizatorului, fie ca

a furniza

semnale destinate

aclion6rii unor echipamente.


Resursele pe care sebazeazd funclionarea calculatoarelor sunt resurse fizice
(sau hardware), logice (sau software) gi informafionale. Resursele fizice se referd

1.2.b, c

la componentele tangibile, cele software la sistemul de operare gi programele de

1.3. a, b, c

aplica{ie, iar cele informa}ionale reprezintd "materia" prelucrabili.

1.4. Arhitectura seriald gi arhitectura paraleld.

1.5. Procesarea imaginilor, modelare gi simurare, previziune (economicr,

1.6. clasificarea calculatoarelor paralele in categoriile: sISD, SIMD, MISD

MIMD.
.l .7

. 7A0 MB

care ghideazd calculatorul

in

executarea sarcinilor

gi

asist6 programele de

aplicalie gi utilizatorul prin intermediul anumitor funcliuni speciale. Sarcina de

meteorologicd etc.).

9i

Sistemul de operare se definegte ca un ansamblu de programe de control

700

1024

bazd a unui sistem de operare este de a pune la dispozilia

prin care acesta

sd

utilizatorului mijloace

poatd crea, stoca, prelucra, regdsi gi distruge informa{ia.

Unit6lile dedicate ale unui calculator lmprcun[ cu conexiunile ce


1024 b.

1.8. Programele de comandd gi control gi programele de servicii.

se

stabilesc intre ele pentru asigurarea funcfionalitIfii sale se numegte arhitecturd de

calcul. Cele doud mari arhitecturi de calcul sunt:

(l)

arhitoctura serial6, clasicd

1.9. coordoneazd toate componentele sistemului de operare, planific[,


lanseavd gi urmdreqte execufia programelor, depisteazi gi trateaz[ evenimentele

(sistem de calcul monoprocesor sau maginl do caleul von Noumann) gi (2) cea

care apar la execu{ie.

vederea

paraleld, care presupune conlugrarea simultan6

a mai multor

rezolvlrii earcinilor lntr-un timp mult mai rodur,

procesoare ln

=''ulFF

lntroducerc ln lnformatlol

Arhitectura serial[ cuprinde unitatea de intrare, unitatea de ieqire, unitatea

le

memorie, unitatea de execulie qi unitatea de comandd 9i control, plus

2. Baze de numeratie.

;onexiunile intre acestea prin magistralele de adrese, de date qi de comenzi.

cea mai micd unitate de date care poate

fi reprezentata

Reprezentarea informafiei
in calculator

9i preluctatd de

calculator este bit-ul (o valoare binari asociati unui bistabil). Un grup de opt bili,

numit octet sau byte, este cea mai mic6 unitate de date adresabild, iar
reprezentarca in mernorie a informaliei se realizeazd de reguldla nivel de cuvdnt
(care este un grup de2,3 sau 4 octeli consecutivi).

Re c o man d dr i b ib

Rdspuns ur il e tes t elor de auto ev aluar e

lio gr aft c e

1. Leon Livovschi, Bazele Informaticii, Editura Didactica gi

Baze de numerafie
Test de autoevaluare
Reprezentarea informafiei in calculator
Test de autoevaluare

Lucrare de verificare
Pedagogica,

Rezumat

Bucuregti, 1981.

2. J. Glenn

Brookshear, Introducere tn Informaticd, Ed. Teora, Bucureqti,

Re c om anddr

ib li o graJic e

1998.

O bi ectiv ele cap it o lul ui

inlelegerea gi operarea facild cu diverse baze


de numerafie gi cunoagterea principiilor de
conversie a numerelor intregi qi reale dinh-o
bazd de numeratie in alta

cunoa$terea modalitEfilor de reprezentare a


informafiei in calculator, dup6 tipul acesteia

In'ffifuccra tn informatlct

l ln oalculaior

Conversh numorelor dlntr.o bazl ln alta

Baze de numerafie

C onversia

Orice numir natural q >

poate

fi

considerat o bazd de numeralie. Cifrele


Conversia numerelor intregi din baza oarecare q in baza I 0

in baza de numerafie q sunt 0, l, 2, ..., q-1. Baza 70 este evident cea mai
cunoscuti bazd qi are cifrele 0, 1,2,3,4,5,6,7,8,9. Datorit6 utilizdrii
bistabililor in construclia memoriei calculatoarelor, in informaticd se :utilizeazd
reprezentarea numerelor

Rezultatele oblinute

in baza 2

in analiza

scric inh-o bazd oarecare q >

nuftrerelor tntregl

sau puteri ale acesteia (baza 8 gi baza 16).

Conversia unui numdr intreg din baza aarecare

utiliz6nd dezvoltarea polinomiali. Mai precis, dac6 num5rul intreg

N, = a, an-r ar-z.,,o,

matematicd ne aratd. c6 orice num6r real se poate

se

oo
,

sub forma

ar_1 an_Z...dtaO. a_ta_za_l ... a_i...a__,.,,

undo a, eunt cifre ale bazei q, adicd o,

Nro = an

1.0

varezulta din dezvoltarea

4o * an-t q"-' * ar-,

q"''

"'+ atq +

ao '

{0,l, 2, ..., q - 1}. in informaticd, bazele

Uauslo Bunt 2, 8 qi 16. Cifrele inbaza 2 (binar) sunt

{0, l),inbaza 8 (octal) sunt

{0, l, 2, 3, 4, 5, 6, 7\, iar in baza 1 6 (hexazecimal) sunt {0,

l,

Exemple:

2, 3, 4, 5, 6, 7, 8, g,

1000112

A, B, C, D, E, F}.

=1x25 +Ox2a +0x23 +0x22 +1x2t+1x20 =3510

BD4rc=8x162 +Dxl6t +4x160 =


= 11 x162 + 13 x16r + 4x160 = 3028r0

Exomple:

in baza 10: 396.83, -25691, 48

lnbaza2:

inbazaS: 675.02, 0.36, -475

inbazaT6: 69A, DEA.AB5, CAD.39A

llDl.ll,

111001.11, 110101

Conversia numerelor intregi din baza

sI considerdm dezvoltarea polinomiald

Cur" sunt cifrele bazei de numeratie 6?

Calea cea rnai simpld de conversie a unui numdr dintr-o bazd,

in alta este

Din acest motiv, in

continuare

prezentdm conversia numerelor dinbaza

ql

num[rului N, = a n a n-t a n-2 ... al ao:

+"'+atq+ao,

(1)

de conversie este sI identifice cifrele


gi implicit numErul convertit in baza 8,

Sarcina algoritmului
an, a,,-1, a,-27...1as

utilizarea bazei 10 ca bazd, irrtermediard.

l0 in baza oarecare

Pentru a inlelege algoritmul de conversie dinbaza 10 intr-o bazd oarccare q

Nto=arqn ldn-rq''t

reprezintdinbaza 4 sub forma

atunci reprezentarea sa in baza

a,

q in baza l0 se face

l0 intr-o bazdoarecare qi invers [10].

, = a,

a n_r

...alao

imparlind relalia (1) prin 4 obtinem:

+=

dn

Qn-t

*an-rQ'-r*,,,*

n,

*?,

In

troduili['in

ln calculator

inform a tice

Cifrele numorolof eonve$lt6 ae ohlln eltllld de la sfilrgit spre inceput

finAnd cont c6 expresia


ff,(8) =
este intreagE,

iar

0 < ao <

rcsturile (cifrele lncoroulto), So obfln rouultatole afltoptate: 35'u =166911,

a, Q'-t *

on-r

g"-' +...+ al

ao

este

cifrd in baza q, rezulld cd a,

deoarece

obline ca rest al impdrlirii num6rului ly',o la q, iar


imparliri. Proceddm analog cu expresia

l/,f) li

N{p

se

qi

302q0 =8D4rc.

este catul acestei


Conversia num erelor redle

oblinem

rr(o)

a:

aq'-q Q'-'
= an

ien-., Q"-t +...+ a2

+lL =N,[) +{:-.

Conversia pdrlii intregi a unui numbr real se face dupd algoritmii prezcntati

Prink-un ralionament similar deducem cd cifta a, se obline ca rest al

nnterior.

in continuare prezentbm conversia p5r[ii fraclionare

l)artea fraclionard

imp64irii cAtului anterior, Nff),la bazaq.

F, a unui numdr real pozitiv

a unui num[r roal,

se scrie:

F, =o'a-, a-z a-t "'a-,' "'

in general, obfinem in ordine cifrele ao, at , a2, ..., a, pentru fiecare pas I
aplicat rela{iei
;rr(i-t)

qq

pdrlii frac{ionare a unui numdr real pozltlv dlntr'O b*d


q in baza l0

Conversia

tlli,

*?,

oarecare

i =0,1,2,..., n, unde N,(r-,) = N,o.

Ca pi in cazul numerelor intregi, conversia dintr-o

Algoritmul de conversie se termin[ c6nd se obline catu Nfi) egal cu zero.


Numirul inbaza q se scrie, prin urmare, cu cifrele

a,

ar-r, ..., at , ao,

aqadar

l0

unei fraclli F, se face utilizand dezvoltarea


Fro

in

sa

baz|

oarooarg

tn bfEf

polinomiald, adicl:

= a-rQ-r * o-rq-' + "' a-^q-" + "'

ordinea inversd a oblinerii lor.

Exemple: convertim dinbazal0inbaza2, numerele 35 gi 302g oblinute in


exemplul precedent, aplic6nd algoritmul descris.

3st2
34 17

@ro

Exemple:

+Ox2-2 +lx2-3

0.10112

=lx}-t

0.A5ru=

Axl6-t +5x16-2

+lx}a

=0.687510

=0.64453rc

Conversia pdrlii frac{ionare a unui numdr real pozitiv din baza

l0

intr-o

bazd oarecare q

-@-o

o-

Pentru a afla cifrele numdrului

F$inbazaq

se porneqte de

la dezvoltarea

sa

polinomialS, adic6:

Figura 2.1. Ilustrarea algoritmului, de conversie a numerelor intregi


din baza t0 ln bazti 2 gi respectiv 16
Fro

= a-tQ-t

* o-rq-' + "' + a-,nq-'

"'

(2)

sl ln caloulator

Inmul{ind relalia (2) cu q ob}inem:

qi deci

a-, =lqx

cifra

{o]

unde

a-2 se obtine

Fto = a_t

pri, k]

a_rQ-, +...a_,rq-**t +...

inferegem parteaintreagd a numrrurui x.

Convertili tn bazclc 2, 8, 16 numerele dinbaza l0: 62.845,261.38

t254.2968.

printr-un procedeu anarog pornind insb de ra fracfia:

4o) = a-zQ*t +...


Deci a-, = [q , 43,

qi anatog o_, =fq

se opregte.

?ntreg astfer

in caz conlrar

inc6t .(f) este numdr intreg, atunci

Tabelul 2.1. Triadele corespunzdto arc reprez.entfuii is baza 2


a

se obline o fracfie periodicd.

octal

0
1
2
3
4
5
6
7

Exemple:

Fie numdrul 4o=0.64453. se doreqte conversia acesfuia


in baza

16.

Aplicdm procedeul explicat mai sus gi avem:


0.64453x16 =10.3t248

0.31248x16=5
Se ob{ine

rezultatul

:+

in baza 2 (pe baza algoritmilor

prezentali) prin configuraliile binare urm6toare, numite triade ( Tabelul 2.1):

gi aqa mai departe.

at=A
e_z=5

O.ASrc.

cifrelor din baza 8

binar

000
001

010
011
100
101
110

triade

lll

Conversia rapidd a unui numdr din octal

in binar se face scriind in locul

fiecdrei cifre octale triada corespunzdtoarc.


0.7

x4=2.8

=
0.8x4=3.2
=
0.2x4=0.8
=

a_r

=Z

d_z

=3

a:=0

gibazaZ

- octal

Fiecare din cifrele bazei 8 se reprezintd

= a_rQ-' * o_oq-, ... + a_,,q-.*z +...

DacE existd un num6r

bazele 81 16

Fr,orrf,

Conversia binar

4["

rapidlintre

Procedee de conversie

+ a-,,Q-"'*'+...

unde

algoritmul

qi

0.8x4=3.2 :+
0.2x4=0.8

a_q

=3

Exemplu:

a_s

=0

Numdrul 47.368 se scrie inbazaZ fdcdndinloouirile:

se observE repetarea rezultateror gi drept urnare obfinem


fracfia periodicd

4
7

cu
cu

cu
cu

mixt[ 0.2(30)a.
I

Se

obline 473q= l00l 1 l. 01 I I 102.

100

lll

011
110

lrl E'I[JIrIIIOT

ReprezentirGs lnformaflol tn calculator


0

I
2
J

4
5

O frrtde

000
012
024
036
0410
0s12
0614
0716

00000
34567
610121416
lt 14 t7 22 25
t4 20 24 30 34
t7 24 31 36 43

22 30 36 44
25 34 43 52

Reprezentarea numerelor tntregi

Reprezentarea numerelor intregi in memoda calculatorului se poate rcaliza


in trei moduri [2]:

52

6t

autoevuluare

reprezentare in modul qi semn (cod direct);

reprezentare in complement fal5 de

'

reprezentare in cod complement fafd de 2 (codcomplementar).

(cod invers);

2.1. care este reprezentarea in baza 2 si 16 a numerelor: 3265, 2g, 293 gi


526 scrise inbaza

in

l0?

2.2. care este valoareainbaza 10 a numerelor binare: 00110101, 01110101,


0001001 l ?

2'3. convertili in baza 10 numerele: 0. 1l1012, 1r.0101112,


43.2676, ABA.BAr6.

10.01112,

reprezentarea

tn modul gi semn (cod direct). bitul din

extremitatea

stdngd este folosit pentru codificarea semnului. convenfia este urmltoarea:

dacd numdrul este pozitiv, bitul de semn trebuie str aib6 valoarea 0;

dac6 numdrul este negativ, bitul de semn trebuie sd aibd valoarea

l.

Exemplu. cifrele 6 gi -6 sunt reprezentate in binar pe g bili sub forma:

6
-6

2.4. Convertili in bazele Z,g, L6 numdrul 30.310.


2.5. Converriliinbaza 8 num5rul I

l0l

l1001.10102.

2.6.Converti{i in baza 2 numerele A4216,14g.Fr6 gi 331.50s

-+
-+

0000 0tt0
1000 0110

Modul de reprezentare in modul gi semn are urmitoarele dezavantaje:

existi dou6 reprezentdri pentru zero. De exemplu, intr-o rcprezentare


pe 8 bili avem:

+0 -+ 0000 0000
-0 -+ 1000 0000
Acest lucru creeazd probleme in realizarea circuitelor electronice
pentru adunare.

t48l

bilii

trebuie definitd operalia de scldere a numerelor astfel reprozentate.

de semn trebuie tratafi separat cand se efectueazd"operafii;


i

t4o'l

fald de I (cocl invers) al unui num[r reprozentat ln binar se


ob{ine prin inlocuirea fiecdrei cifre binare cu complementul ei fa}d de 1.
Complementul fa!6 de I al cifrei 0 este l, iar al cifrei 1 este 0'
Complementul

Exemplu. Valorile 6 gi -6 sunt reprezentate in binar, pe 8 bili sub forma:

6 -+ 00000110
-6 -> 1111 10 01

Seobservdc6

I t I I I I l0

configuralie de 8 bi[i,

Observalie.

$i in

acest

tip de reprezentare se menline dezarvanl6iul

reprezent[rii valorii zero sub dou[ forme, intalnit la codul direct'


Exemplu:

0 00 00100
1 11 11011

(+4)

+c4)

Operalia de sc[dere se reduce la o operalie de adunare prin reprezentarea


sc6zdtorului in cod invers. Dacd rezultatul este negativ atunci el va

fi

1111111

reprezentat

tot in cod invers. Dacd apare transport in stAnga rangului de semn aceasta se va

Se observd cele doud reprezentdri pentru zero

aduna la rangul cel mai pulin semnificativ (cel mai din dreapta) al rezultatului'

00000

000

11111

111

qi

Exemple:

intr-o reprezentare pe 8 bili operalia 6-5

6,n =

0000 0110,

5,0=0000

0101,

-5,0 = 1111 10102

e6toroproz6lttaronoll'roilincodinvosrspst

se efectueazdastfel:

pentru a in{elege reprezentarea in cod complementar

sd

scriem, de QXgmBlU,

operalia 4-3 sub forma

in cod direct

5 +(10

in cod direct

-3)-10

= 5 +7

-10 = 12'10 =2'

Observdm cd rezultatul se poate obline in felul urmdtor:

in cod invers

scazitorului, adic[
se adunS la descazut complementul fa!6 de 10 al

sefaceoPeralia5+7:I2
(+6)
+(-s)
1

0 0000110
+1 1111010
10 0 0 0 00 0 0

care ap0'1e (adic[


rerultat|tl final (2) se obline ignordnd transportul
1).

in binql sd fie
Acest exemplu sugereazd ideea ca un numlr negativ
Complsmentul
reprezentat in cod complement fald de 2 (cort complementay''

+4
I
0 0 0 0 00 0
1

faln de 2 al unui numdr se obline astfel:


Se observE cum transportul din stdnga rangului de semn se aduni la

bit. in aceeagi reprezentare pe 8 bili operalia 6-7 se efecfircazd astfel:

(+6)
+(-7)

-1

0 0000 110
+1 l l ll000
ll11110

ultimul

se determin6 complementul

se adund valoarea

faf[ dc I al num[rului;

la rangul cel mai scmnlflcativ al num6ry1ui.

gOmn aOOgta se ignorf,, iar daci


Dacf, apare transport la stfinga rangului do
f616 6s 2'
rezultatul estc negativ aceasta este reprezentat tot ln ood oomplernentar

-ruF
Observalie. Folosind acest cod, zeto arc o unic[ reprczontaro.

snu, corespunz[tor

in baaa

10,

0.0 < Nlo <15.93'15.

in cazul in care primul bit

Exemplu:

feprezentare pentru i/ro va fi:

7 are valoarca
7

este folosit pentru codificarea semnului, plaja de

0000

0l I 1 inbinar

1111 1000

are codul invers

-7 are codul complementar

Se observd

(+7)

0000111

+l 1111001
i0 0 0 0 0 0 00

c[

N,o

7.9375

puterea de reprezentare a numerelor reale

in cazul folosirii

virgulelor fixe este extrem de redus6. Din acest motiv folosirea virguloi fixo ln

1111 1001

+(-7)

-8.9315

r.:alculatoarele moderne se face numai dup6

ultimul rang, reprezentAndu.to Prrotlo

fn aceasti manierd numai numerele intregi.

4
Reprezentarea tn virguld mobild

se neglijeazd

in
Se constatd unicitatea reprezentdrii pentru zero.

Calculatoarele moderne utilizeazd pentru reprezentarea numerelor intregi

reprezentarea

ounoscut gi anume: orice numdr rcal


fbrma (numitd

&=

negative codul complementar.

4
a

Reprezentarea numerelor reale

in virguld mobilS

se porneqte de la un

poate

fi

rozultrt mrtamrtlo

reprezental

ln mod unlo rub

ir guld mob ild nor maliz at d):

axq', unde 1lq<lal<7,

q>Znumdr natural, b numdrlntreg,

este baza de reprezentare,


se numegte mantis6, b se numegte exponent.

Reprezentarea numerelor reale se poate face sub doud moduri:

in virguld.frxd;

in virguld mobilS.

De exemplu, num[rul

a =1423.208 in baza l0

mobilS narmalizatd:

a = 0.1423208

acest

tip de reprezentare, virgula care desparte partea inheagd de partea

subunitard are pozi{ie fix6. De exemplu, dacd intr-o reprezentare pe 8 bi!i, virgula
este plasatd dupd

x 104

Aici b are valoarea 4, q valoarca 10, iar mantisa

Reprezentarea in virguld fixd

in

are reprezentarea in virgulfl

4 bi!i, numdrul N reprezentat in baza 2 are valori.le extreme

Condilia ll q <l al
reprezenthrii . Pentru

0000.0000<

N,

<III

Ll 1 I I

a =0.1423208

'

<l este esenliald pentru asigurarea

unicit[fii

= 70 condilia se scrie 0.1 < | a | < 1 , ceea ce este echivalent

cu faptul cd prima cifrd dupd virgulS sd fie diferitd de 0. in cazul in care se


renunla la aceastd restriclie asupra mantisei, existd

dup6 cum urmeazd:

echivalente. De exemplu, numdrul

o infinitate de reprezentdri

de mai sus se poate scrie oehivalent:

_:

0,r 423209x r 01, ru.23208 x r 02, 1 42320w


r o-1, o.o r 42320gx r 0,

in programclc !n out ortoulcle ru ul gnd rldlort do oomploxitate, eroril6

.r..

Denumirea de virgur[ mobir[ vine tocmai


de ra deprasarea virgurei, funcfie
de valoarea exponentului.
Pentru a aduna dou6 numere scrise
sub formd normarizatdtrebuie ca
ere sd
aibd acelaqi exponent. Dacd exponenfii
sunt diferifi, num6rur cu exponent
mai
mic este scris in virgurd mobild nenormarizatri
astfer inc6t nour exponent ob{inut
sd fie egal cu cer mai mare dintre
cei doi exponen{i. inmurlirea se face
inmurtind
mantisele gi adunAnd exponen{ii.

diferd de aritmetica obiqnuit5.

nedorit se poate contracara prin utilizaroa unor metode numerice speciale, s41s
inhibd propagarea erorilor.

C"

2)

Reprezentarea

4)

0.6532 x 10a + 0.21x 103 0.6532x


l0a + 0.0210 x l0a = 0.6742
=

xl}a

0.6532 x t0a x 0.5632 x 104 1.2164 x


=
l0a =

0.l2l6x l0a

0.6532 x 104 x 0.21x 10-r 0.137172


x 103 =
=

0.l37l

x 103

in exemplul 2)

in exemprul 3)

nu

I CaracteristicA

(c)

Fraclie (fl

S=

0 cdnd numdrul reprezentat

I cdnd numdrul

Caracteristica

pierde nici o cifr6;

are semnul negafiv;

reprezentat are semnul pozitiv.

ocuph 8 biti

(bitii

24-31) 9i conline valoarea exponenfului

la care se ada-ug6 valoarea 127, adicd:


se pierd ultimele

se pierde urtima

trei cifre are numdrului 0.0001234.

cifr,

a numdrului

r.2164

din cauza

c=e+127.
Folosirea acestei formule permite economisirea unui bit care ar
pentru memorarea semnului exponentului. Zona de 8

in exemprul

4)

bit (bitul 32), 131

valorile sale au semnificalia urmdtoare:

operaliei de normalizare.

big tl

23

reprezintd semnul numdrului reprezentat, ocupd un

,S

se

24

31

-72

Se constatd urmdtoarele:

l)

in virguld mobild in simpld precizie gi reprezentarea ln virgull

^S

in exemplul

virguld mobild se poate face sub doud fonns:

are strucfura:

0.6532 x t0a + 0.1234 x 10 0.6532 x


=
t0a + 0.OOO]234 x10a
=

in

rnobili in dubl6 precizie.

= 0.6532x104 + 0.0001x lOa = 0.6533x lOa


;

3)

prin virgulS mobild normalizatil?

se inlelege

Reprezentarea in virguld mobild in simpld precizie se face pe 32 de

Pentru a ilustra acest lucru, s6 presupunem


cd mantisei i se rezervE patru
cifre zecimale gi sd considerdm exemplele:

96

pot propaga, iar cfcctul osto obfinorca unul rozultat afootat de erori. Acest elss1

reprezentarea

Din cauzarestricliilor privind rungimea


mantisei, aritmetica virgulei mobile

1)

srls(tletor

se pierd urtirnere

dou, cifre ale num,rurui 0.137r72.

este consideratd totdeaunapozitivd qi deci:

0<c<

lttl

28

-l=255

bili

fi

necgg6l

destinatd caracteristicii

==:[;le

Din acost motlv, valorile minime gi maximc alo oxponcntului sunt _127
si
respectiv 128.

!i

ffi'$-

Reprezentarea infonnatiei nenumerice (litere mari gi mici, cifre zecimale,


semne de punctuafie, operatori aritmetici qi logici, simboluri pentru controlul
comunicaliei gi editare etc.) se face pe baza unor coduri. Aceste coduri asociazd

Cu alte cuvinte:

dacd c2L27 atunci

dacf,

fiecdrui serrn utilizat o configuralie binar6. Pentru o mullime de rn semne sunt

e>0;

rlecesare

c<I27 atunci e<0.

2" conftgrra{ii

proprietatea

Fraclia (/) este reprezerrtatdin zonabililor l-23. Alinierea se face la st6nga,


iar dacd este cazul spaliile libere se completeazd cu cifra zero.
Reprezentarea in virguld mobitd tn dubtd precizie se face pe 64 de

bili

gi

binare unde

fi

distincte, cu lungimea de la 5 bi!i. Se observd c5 doud din cele 32 configurafii


binare posibile nu sunt folosite (sunt cuvinte fhrd sens).

moderne este codul

^t

I Caracteristicd (c)

caracterelor alfanurrerice,

in

calculatoarele

ASCII (American Standard Code for

52

Interchange). O configuralie binard din codul ASCII are 8

Fraclie (fl

28

53

de 30 de

codificat utilizdnd una din cele 2s = 32 configuralii binare

Convenfia de reprezentare

63

este cel mai mic numdr natural cu

2' ) m. De exemplu, fiecare element al unei mullimi

semne poate

are strucfura:

64

bili

Information

(se pot codifica

= 256 semne). Plajele de reprezentare sunt urmdtoarele:

cdmpurile din structurd au aceeagi semnificalie ca la reprezentarea in


virgul5 mobild simpld precizie. Diferd doar lungimea caracteristicii (11 bi!i)
9i a

0-31:
32

frac{iei (52 bili). Rela{ia dintre exponentul e qi caracteristica c este in acest


caz:

127:

codificarea caracterelor de control

codificarea literelor mari gi mici, a cifrelor zecimale qi

semnelor speciale

c = e +1023

I28

qi evident c are drept limite de reprezentare

- 255:

codificarea semnelor cu utilizare special6

0<c<2tt-l=2047.
valorile minime qi maxime ale exponentului sunt
-1023 gi 1024, ceea ce
arutd o putere de reprezentare deosebit de mare in cazul folosirii virgulei
mobile
in dubl[ precizie.

Repre1,entarea caracterelor alfanumerice

calculatoarele prelucreazd. informatie numericE, dar qi informatie


nenumeric6 (texte). Pentru reprezentarea informafici numerice se
folosesc
algoritmii gi convenliil e prezentate,

Existd gi alte coduri folosite in sistemele de calcul. Dintre acestea amintim


codul

EBCDIC (Extended Binary Coded Decimal Interchange Code).

-w

O fot de auroevaluare

2.6. 101001000010, 000101001000,1I I l, 00t l00l10001,01010000


2.7. 0.207022

2.7. Care este reprezentarea in virguld rnobild


nonnalizatl a numdrului in
baza 70,207 .022? Dar a numdrului 0.00446?

t03,0.446

lO-2

2.8.b

2.8. Care dintre urmltoarele este structura


reprezentIrii in virgula rnobild

2.9.Un cod de reprezentare

a caracterelor alfanumerice.

simplE precizie?
a)

64

Lucrare de verijicare

63

Realizali o sistematizare a cunoqtinlelor dobdndite in acest capitol.


b)

32

3l

Rezamat
Construclia memoriei calculatoarelor fiind bazatd pe utilizarea elemontelgf
cu dou[ stdri stabile, informafia numeric6 se reprezintd inbaza 2 sau in bazc

c)

64

63

sunt puteri ale acesteia (baza 8 gibaza 16). Pe de altd parte, valorile numerioe

le

pl

in baza 10, qi tot in baza l0


solicitdm rezultatele acestor programe. Prin urmare, in operarea cu valorl
numerice au loc foarte frecvent conversii in qi din baza l0 inbazele 2, 8 sau 16,
Acest capitol descrie conversiile numerelor intregi qi reale dintr-o baz[ da
numeralie in alta qi reprezentarea in calculator a informaliilor numerice gi
care

2.9. Ce este codul ASCII?

gtFt

furrrizdm programelor sunt exprimate

alfanumerice.

Rdspunsurile testelor de auto evuluare


Reprezentarea numerelor intregi se poate realiza in trei moduri:

2.1. 3265rc: 1100110000012 : CC1


ro, Zgto: 111002 : tCro, 293rc =
100100i012 : 1256, 526rc = 1000001 I 102=
208rc.
2.2. 53,
2.3.
'

ll7, 19.

0.9 062

5, 3 .3 5937 5, 2.437 5, I 63,1 50 I 464g437


5, 27 46.7 265 625.

2.4. 30.3rc= I 1 I 10.0(1001)2 = 36.2(3146)8


= lE.4(C)r6.

2.5, 671.50.

reprezentare in modul qi semn (cod direct);

reprezentare in complement fal6 de

reprezentare in cod complement faf[ de 2 (cocl complementar).

I (cod invers);

Reprezentarea utilizatd de calculatoarele modernc, cttre ofcrlt avantaje faf[


de celelalte reprezentdri, este reprezentarea in cod complonrontnr.

Reprezentarea numerelor reale se poate face tn

virgul[ flx6

sau

in virguld

mobil6. in cazul folosirii virgulei fixe puterea de reprezentare cste foarte redus6,
spre deosebirc de caztl folosirii virgulei mobile, bazate pe exprimarea numerelor
(reale) in virguld rnobild normalizatd.

3. RezolvareaProblemelor
cu calculatorul

Dupd dimensiunea qi structura spaliului de memorie utilizat, reprezerfiarea

in virguld mobilE poate fi: reprezentare in virguld mobil[ simpld precizie (pe 32
de

biti) sau reprezentare in virguld mobild dublS precizie (pe 64 de bi!i).

Infonnalia nenumeric[ (litere, cifre zecimale, semne de punctualie,


operatori aritmetici qi logici, simboluri pentru controlul comunicaliei qi editare
etc.) se reprezintdpebazaunor coduri care asociazd fiecIrui semn o configurafie

Etapele rezolvirii problemelor cu calculatorul


Tipuri de date qi operafii elementare
Test de autoevaluare
Structuri de date
Test de autoevaluare
Algoritmi - caracteristici 9i descriere
Test de autoevaluare

binar6. Cel mai cunoscut astfel de cod este codul ASCII.

Rdspunsurile testelor de autoevaluare


Re c o m an cldri

1.

iblio graft c e

Leon Livovschi, Bazele Informaticii, Editura DidacticS qi PedagogicS,


Bucuregti, 1981.

2.

Lucrare de verificare
Rezumat
Rec omanddr

i biblio grafi c e

A. Petrescu, N. fdpug, T. Moisa, Gh. Rizescu, V. Hdr6bor, N. M6rqanu,


Tr. Mihu, abc de calculatoare personale Si ... nu doar atdt ..., Vol'I, Ed'
Tehnic6, Bucureqti, 1990.
O b i e ctiv

o
o

ele cap it o lalui

cunoa$terea etapelelor
cu calculatorul

rezolvlrii problemelor

tipurilor de date elementare qi a


structurate utilizate in rezolvarea

cunoa$terea

celor

problemelor

dezvoltarea abilitilii de a proiecta un algoritm


corect in pseudocod sau scheml logicd pentru
probleme elementare

_-

in prima

Etapele rezolvirii problemelor cu calculatorul

gi

experien!6. Evident,

problemelor de rezolvat,

in-

condi[iile cregterii complexitdtii

in scopul mdririi eficienfei

enumerate devin cu atat mai necesare.

in timp,

obline eficien{d

in

via4a a impus o nou6 abordare a

acest domeniu au condus

la conturarea unor etape bine

definite, cu metode qi instrumente de lucru specifice. Astfel, o activitate care ln


trecut era vdzut6, mai ales ca un meqtegug sau

o artd, la ora actualr

este abordatd

tot mai des gi sub aspectul ei de activitate sistematicS.

O listd a

etapelor pe care programatorul

rezolvarea problemelor poate

le parcurge in mod uzual in


fi privitd ca un important ajutor in oblinerea unor

reztitate bune. Evident, etapele pe care le enumerdm mai jos trebuie privite mai
degrabd ca un ghid,

in sensul

cd parcurgerea

lor congtiincioasd nu va conduce ln

A ignora aceste etape este ins6 la fel de


lor. in general, se acceptd ca fiind necesare

mod obligatoriu la rezultatul scontat.

daunitor cu a exagera importanla

urmltoarele fazeinrezolvarea unei probleme cu calculatorul [11]:

analiza problemei;

proiectarea algoritmului de rezolvare;

descriereaalgoritmului;

codificarea algoritmului (obfinereaprogramului);

testareaprogramului;

in

vedere stabilirea

funcfiile) problemei, se stabilesc datele de intrare 9i datele de ieqire. Aceastb


etap6 are ca scop inlelegerea cdt mai exactd a problemei de rezolvat.

Etapa de proiectare

acestei activiEli, calitdfile

activitdlii de rezolvare a problemelor cu calculatorul. Dorinla qi nevoia de

elapa da anollzd a prublamcl so arc

nrodelului logico-inaten:atic al problemei. Se identificd cu claritate funclia (sau

Activitatea de rezolvare a problemelor cu calculatorul se bazeazd pe talent,


creativitate

etap6,,

a algoritmului

are ca scop stabilirea algoritmului do

rezolvare a problemei. Este etapa in care se precizeazd operaliile pe aare trebUi?

s[ Ie execute un

calculator pentru

rezolva problema.

ln

cazul problemOlOf

in subprobleme care pOt

complexe este recomandabil[ descompunerea problemei

fi rezolvate mai uqor. Aceastd tehnic6, numitS top-down (de sus in jos) va ave1 AO
efect final oblinerea unui sistem de module conectate intre ele dupd logiOi
impusd de rezolvarea problemei. Practic, intr-o prim6 fazd se ob{ine

o schifl

generald derezolvare care se taftneazd succesiv pdnd'la oblinerea comenzilOf


necesare execuliei pe calculator. tmpdrlirea problemei

in subprobleme ptezint[

avantajul lucrului eficient in echip[ - subproblemele pot

fi rezolvate simultan de

c6tre membrii echipei. De asemenea, oblinerea modulelor program prifr


implementarea

fiecdrei subprobleme uqureazl munca de depanare (depistare a

erorilor) gi de intrefinere a programului.

gi
Pe m[sur6 ce cregte complexitatea problemelor de rezolvat, creqte
dificultatea de a descrie algoritmii cAt mai exact, fird ambiguitdli, utilizdnd rra

limbaj natural. Din acest motiv s-au imaginat diferite forme de descriofe
(diagramd de structurd, scheme logice, pseudocodetc.) care, pe de o patte petrOit
reprezentalea corectl a algoritmilor intr-o manierd prietenoasi, naturald, iat pe

alt6 parte faclllteazd codificarea cu ugurinlb

acestora intr-un

de

limbaj de

programare.

Deqi foarte multe limbaje de programate

at un caracter

universal, totrr0i

executia programului, oblinerea rezultatelor gi interpretarea lor;

anumite trdslturi ale problemei de rezolvat pot recoman da utilizarea unui anurrrit

intretinereaprogramului.

tip de limbaj. Astfel, pentru o problemS in care predomini prelucr6rile numeriOe


Se

va alege un limbaj puternic in acest sens, cum ar

Pentru probleme

ln

fi

Fortran, Basic, Pascal

vtc'

care operaliile aritmetice au complexitate redus6, dAt

-:':-

'

predomin[ prelucr[rile nenumerice (sortare, c[utaro, rouniuno do figiere etc.)

se

rt,5 ou

oalcula[orur

O rnetod[ rapid[ constE ln afigarca unor mcsajc din loc ln loc, prin analiza
stabili zona unde se afl6 eroarea. Mediile moderne de programare

va alege un limbaj orientat pe aceste probleme (Cobol, dBase, FoxPro etc.), Dacd

clrora

problema necesitd prelucrdri ale unor baze de cunogtin{e se pot folosi limbaje

care asistd programatorul in punerea la punct a programului oferd qi alte

speciale ca Prolog, LISP, Ada etc.

de depanare, cum a.r

in etapa de codiftcare o importanld deosebit[ trebuie acordati stilului de


programare. in general se consid erd cd stilul de programare este bun dacd

gi expresii, execulia pas cu pas a

fi:

facilit{i

ferestre de observare in timpul execuliei a unor variabilc

liniilor

de program, puncte de oprire a exacutioi

etc. Odat6 indepirtate erorile de sintaxd qi de logic[, programul poate

Rezultatele ob{inute sunt analizate, iar

indeplineqte condilii cum ar fi:

se poate

fi cxccutat,

in urma interpretdrii lor sc iau doolzlllo

corespunzdtoare.

programul este insolit de documenta{ia de analizd gi proiectare care

trebuie sE conlin6 elementele minimale: descrierea funcliilor

Descrieli cdteva tris[turi ale unui bun stil de programaro.

programului, diagrama de structurd (schila generali a programului),


tabele de descriere a variabilelor de intrare gi ieqire etc.;

in mod

normal programele sunt proiectate spre a

fi

rulate (oxooutfh)

lr

existd procedee de validare a datelor. Se pot tttiliza diverse procedee

diverse intervale de timp, pe seturi de date diferite. Aplicalia informatlol obflnutl

(sume de control, coduri autocorectoare, intervale de apartenen{6,

din unul sau mai multe programe trebuie privitd qi ca un produs ouo

citirea cu ecou adicd afigarea datelor citite, verificarea unor relatii

timp un proces de uzurd morald. Activitatea de tntrelinere

existente intre variabilele de intrare etc.);

in modificdri ale programelor ori de ctte ori este nevoie, realizato toomai ln

programul este lizibil. Acest lucru se poate realiza prin scrierea


decalatd (in fierdstr6u) a

liniilor

de program, prin alegerea unor nume

sugestive pentru identificatori,

prin folosirea (neabuzivl)

progrumUlUl

OOnlttr

scopul de a menline aplicalia la zi. Depanarea gi intrelinerea programclor sunt

din activit[file care pun tn lumin6, in cel mai inalt grad, importanfa
adoptarii unui stil bun de programare. Este evident cI aceste activit[ti vor ft

doud

ingreunate daci programele

comentariilor etc.

luforl ln

nu sunt suficient

documentate, dacd lipsesc

comentariile, dacd scrierea nu este decalatb, iar logica programului se realizeazd

Etapa de testare este etapa in care se elimind erorile programului. Erorile

pot

fi

de naturl sintacticd sau de naturd logic[. Eliminarea erorilor de natur[

sintacticd se face analizdnd listele de erori afigate de compilatoare. Stabilirea


corectitudinii sub aspect logic a programului se poate face fie prin demonstrafie
matematicd,

fie prin testarea programului folosind date de test. Deoarece

demonstrarea matematic[ a coreotitudinii este

dificild chiar gi pentru programe

mici, metoda uzualE este mctoda datclor de test. Datele de test trebuie alese cu

grij[, astfel inctt s[

so poatA valida toato

iamurile programului. Dach sunt erori

incearc[ localizarca aocBtoro folorlnd dlvcrso metode.

se

prin folosirea abuzivd a instrucliunilor de salt.

Care

sunt

etapele de rezolvare ale unei probleme cu calculatorul?

Descrieli pe scurt fiecare etap6.

Tipuri
in

Operafiile folosito

de date gi opera{ii elementare

gi

obiectele pe care

le intdlnim de obicei intr-un limbaj de

programare.

elementare

fals.

Datele logice se referd la valorile logice (numite 9i booleene) adevdrat qi


operaliile permise sunt cele cunoscute: conjunclia ($I), disjunclia (SAU),

negalia (I{U), SAU exclusiv etc. Daci notdm cu 1 valoarea

Datele sunt obiectele folosite intr-un limbaj de programare 9i pot

tipui: date

fi de doud

valoarea f

Tabelul 3.1. Tabelul operaliilor untale cu date logice

date numerice;

date alfanumerice.

Printr-un tip de date se specificl o mullime de valori posibile, precum 9i


operaliile care se pot efectua cu aceste valori.

0
0

aSIb

aSAUb

0
0

0
1

Datele alfanumerice se referS |a caractere qi ;iruri de caractere. Asupra


acestor tipuri de date sunt permise operalii cum ar fi comparalia, copierea,
concatenarea (alipirea) etc. De exemplu, prin concatenarea qiruril

Datele numerice pot fi intregi sau reale, iar in unele limbaje (de exemplu in

limbajul FORTRAN) qi complexe.

'

-Vest' rezultd Sirul' PloieSti-Vest'

fi reprezentate in sistemul zecimal (de exemplu -64,

or 'PloieSti'

Si

oali exemple de date intregi, reale, alfanumerice'

9569 ,

+311) sau in alte baze de numera{ie (de exemplu in sistemul hexazecimal: AD4,
6E3C etc.).

in

cadrul unui algoritm, datele se prezint[ sub forma variabilelor qi a

in timpul execu{iei
algoritmului. De exempbt, 6.29 este o constant6 real[. O variabild i;i poate

constantelor. Constantele nu-qi modificd valoarea

Datele reale se rcprezintdin multe limbaje de programare sub doud forme:

in notalie uzuald (notalie cu punct), unde virgula

este reprezentatd

in notalie Stiinlificd (exponenliald). in acest caz succesiunile E+b

sau

e+

0.52 E +

02,

au
3.25e

semnificafia

- 07

de 10t6. De

modifica valoarea pe parcursul execufiei algoritmului. Numele unei variabile

se

asociaz6 cu adresa unei celule, iar valoarea ei la un momcnt dat se asociazfl cu

printr-un punct (de exemplu: -6.43,82.1, +0.6);

a SAU exclusiv b

date logice;

NUa
I

qi cu 0

qi date structurate (san structuri de date). Datele

urmdtoarele tipuri de date:

Datele intregi pot

adevarat

rezultatele acestor opera{ii sunt dupS cum urmeaz[ (Tabelul 3.1):

aIs,

elementare sunt recunoscute de calculator gi se refer6, in majoritatea cazurilor, la

mod obignuit sunt oporafii de adunare, sc[dere,

lnmulfire, imptrrfire, ridicare la putere.

acest paragraf vom prezenta, intr-o manierd generald, operaliile

elementare

ln

exemplu,

inseamnd 0.52 x 102 , rospoctiv 3,25 x 10-7

conlinutul acesteia. Variabilele pot


dinamice.

in

fi

clasiftcato

ln varldblle statice

cazul variabilelor statice numolui vulabllol

Si variabile

so asociazl adresa

unei locafii de memorie pe toatd durata oxcoutlol al3oritmului' Valoarea


variabilei aste dat[ de confinutul acestei locafii la rln momcnt dat, Dc exemplu,
atribuiroa

r e 3 rc poato schifa grafic sub forma:


I67l

:..
Structuri de date
Prin atribuirea

<-7

conlinutul localiei asociate variabilei

x Ya avea

valoarea 7, conform schilei:

.-an
Unei variabile dinamice
algoritm diferite adrese. O

Abordarea datelor sub aspectul

lor elementar este in foarte multe situatii

nesatisfdcdtoare. De foarte multe ori, este preferabil sau chiar imperios necesar ca
7

datele

si fie privite drept componente ale unor structuri de date mai

cornplexe.

Structurile de date folosite frecvent in algoritmi sunt: tabloul, inregisharea, lista

se poate asocia pe parcursul execuliei unui

dat6 fixat6 adresa celulei asociate se poate prelucra

liniard simplu inldnfuitS, lista liniar[ dublu inl6n[uit5, stiva, coada, arborele

gi

gratul [12].

conlinutul (informafia propriu-zisd) din celul6.

Tabloul reprezintd o colecfie omogend de date (de acelaqi tip, numit tip de

in cazul static

asocierea (nume variabilS

adresd celul6) este fixE

(staticd), conform schilei

la elementele unui tablou se face folosind indicii elementelor. De exemplu,


componentele hagurate ale vectorului

leg[turd
staticd

in

baz[). Tablourile rnodeleazdvectori, matrici, masive multidimensionale. Accesul

a de dimensiune 4 gi ale matricii b

dimensiune 3x4 din figura 3.1 se desemneazdprin a[3] gi

caz:ul dinamic, asocierea (nume variabild

- adres[ celuld)

variabil6 (dinamicd), dupd cum sugereazd schema urm[toare:

btlllz). Numerele 3, 1

gi 2 dintre paruntezele pdtrate sunt indici. Indicele 3


componentl din girul de componente {a[1], afZ), a[3],

de

desemneazd,

al4l], iar indicii

3-a

1 gi 2 se

referd la elementul aflat pe linia 1 qi coloana 2 din natricea b.

, ----D
';l---t

a-

'r[-l
Datele avute

in

vedere pdn6 acum sunt date elementare, indivizibile in

raport cu operaliile care

le prelucreaz[. Expresiile sunt combinalii

sirrtactic de date (operanzi) gi operaiii (operatori),

Figura 3.1. Ilustrarea graficd

tablourilor a qi

valide

Variabilele ob),1<i<4 $i D[,jb'],


indexate. Notalia indicelui

l<i<3,1<J's4

senumesc variabile

gi irnplicit folosirca tablourilor are o

importantd

cov6rgitoare in prelucrarea datelor. Pentru a iluctra acoit 1u0ru, s[ presupunem cd

O rntt de autoevaluare
3. I .

vrem sd calculdm suma a n numere reale, ou

Ce se lnfelege prin variabile etatice?

reprezenttnd cele 4 numere prin a, b, c

Ai

3.2. Ce se infelego prin varlabllo dlnamiec?

t6il

t691

ounotout. DacE n = 4 atunci,

vom avgr rlSgrltmul:

-,F: ,;*(

Ionoscu

Figura 3.4. Elirainarea elernenturui de pe poziriaa


doua din vectorurp ersoane

Aceste deplas,ri consumd timp carcul


ator, a cdrui m,rime depinde de
pozitia de inse(ie sau de gtergere.

$tergerea persoanol 'Poposeu' din lista inifial6 se face memorAnd in cOmpul


de adres[ al primului nod ('Ionescu') adresa o'nodului" ,Georgescu,. in felul
acesta

"nodul" 'Popescu' rdmdne izolat. Schifa urmdtoare ilustreazd acest lucru

(figura 3.7).

solufie de imprementare care rczorvd


eregant aceste probleme o
reprezintd listere tnldnruite. intr-o list6
inlanluita erementere vecine din ristS
nu
sunt memorate obrigatoriu ra adrese vecine.
Lista de mai sus poate fi
implementatd dinamic sub forma unei
liste simpru inlrnfuite, ca in figura 3.5.

Figura 3.7. Eliminarea elementului de pe poziliaa doua dintr-o list6lnllnluitl

Analiztnd lista simplu inlSnfuitl se observl cdvizitarea vecinului drept

fl

nodului curent se face cu uqurin!6, datorita sensului.,st6nga-dreapta,'ln care g.lu


Figura 3.5. List6 simplu inldnluitd (implementatd
dinamic)

orice erement ar ristei (numit nod) estealcdtuit


din doud c6mpuri: un c6mp
unde se memoreaz6 informa(ia propriu-zisd
(,Ionescu,, ,popescu,, .Georgescu,

ftcut inldnfuirile. Realizarea legdturilor in ambele sensuri (,.st6nga-dre apta,,


Sl
"dreapta-st6nga") presupune ca fiecare nod sr aibi doud cdmpuri de leg6tur[,
acest caz, ceea ce se ob{ine este lista dublu inldnyuitd, ilustratd.

in figura

ln

g.

etc.) gi un camp de leg6turr, unde se


memoreazd adresa urmdtorurui erement
din

list6.

f'igura 3.8. Lisrd dublu inlnn[uiti

Evident, consumul de memorie este mai


mare decdt in cazul risteror riniare
implementate prin vectori (static), insd
avantajur apare ra efectuarea operaliilor
de inserlie qi de qtergere.

Astfel, ingerria in list6 a persoanei ,Marinescu,


se rearizeazti, conform
schifei din Figura 3.6, foarte simplu, actualizdnd
sorespunzitor legdturile.
Popescu

I Georgescu |

-l-->fvasi"*,

In

cu preful introducerii unui c6mp de legdturi pentru fiecare c0mp se obline


astfel o listd dinamicr cu facilitdli de deplasare rapidd in ambele sensuri.
in informaticE, deosebit de utile sunt doud tipuri particulare de liste: str'va gi
coada. Stiva este lista liniard in care addugarea gi extragerea unui element se fac
pe la acelaqi cap al listei. Se spune c6 operaliile in stivd se fac dup6 disciplina

LIFO (Last In First out: ultimul Intrat primul leqit). pentru

extrageri este nevoie sd se qtie pozi[iaultimului element inserat din stiv6. Aceasta
este memoratd

Flgura 3.6. Inserlia unui element intr_o list[


simplu inltrnfuitl

172)

a face addugdri sau

intr-o variabild numit[ vdrf.in figura de mai jos (Figura 3.9)

prezint[ schematic cele doui implementhri ale stivei - staticd qi dinamicd.

I73I

se

'-Schifa de mal joo (Flgura

-= tI,

3,ll) ilusfosz[

organizarea studentilor p6n[ la

riivel de grupe ln cadrul spccializ6rii Matematic[ a Facultdfii de Litere pi $tiin[e.

Specializarea Matematicd

==
Figura 3.9. Ilustrarea grafici a stivei - implementare
staticd gi dinamicd
Coada este lista

liniarl in care adiugarea elementelor

se face pe la un cap,

iar extragerea elementelor pe la cel[lalt cap. Disciplina specificd unei cozi este

FIFO (First In First

out:

Primul Intrat Primul Ieqit). Figura 3.10 ilustreaz[

Figura 3.11. Ilustrarea unei organizdri arborescento

grafic cele doul modalitdfi de implementare: staticd Si dinamicd.

Elementele arborelui se numesc noduri. O pozilie aparte o ooupl ngdgl

7V

prim

zf-[l

ultim

pnm

etichetat "specializarea Matematic[", numit rdddcind. Pdstr6nd AnAlogia

OU Un

arbore intors, nodurile Grupal, Gnrya2 etc. se numesc frunze (sau nodutl

ultim

terminale).
Figura 3.10. Ilustrarea grafrcd a cozii - implementare staticd qi dinamicI

variabilele prim si ultim indicdlocul de unde se extrage, respectiv unde

Implementarea arborilor se face de reguli dinamic, insd existd 9i variante de


implementare staticS.
se

adaugdun element.

\
\

Caracterizali stiva. Dali citeva exemple.

Caracterizali arborcle' Dali cdteva exemple.

Pentru descrierea celor mai complexe relalii dintre obiecte se utilizeaz[

grafarile. Un graf foarte cunoscut este releaua de c[i ferate descrisi in mersul
tremnilor. in acest caz, obiectele (nodurile) sunt staliile de cale ferat6, iar

Caracterizali coada.Dafi c6teva exemple.

muchiile grafului sunt reprezentdrile cdilor ferate care leagd stafiile. Alte exemple
Deoarece foarte multe probleme se refer6 la obiecte aflate intr-o relafie de
ordin ierarhic (piramidal), structura adecvat6 pentru descrierea acestor relalii este

arborele. Ca exemple de structuri arborescente amintim: structura unei armate,


structura unei c6r[i, structura unoi firmo, organizarea teritorial[ a unci

Fri.

sunt: releaua de drumuri dintr-un oraq (nodurile sunt intersecfiile), releaua de


calculatoare din universitate etc.

C6nd relaliile dintre obiecte sunt nesimetrice modelarea sc face cu ajutbrul

digrafurllor (dlrected graph

graf direcfionat). Mai jos (Flgura 3.12),

se

prezinttr digraful datoriilor existente intre patru


persoane: cristina, Mihai, Andrei
gi Alina' o sIgeatd de la nodul a la nodul
& se traduce prin ,,a este dator lui b,,.

a,ryr__+a-il-)
---t--

,---^--

'lV --t --?Y


--

@/@
34

Figura 3.13. Implementare dinamicd

Figura 3'12. un exempru de graf al datoriilor intre patru


persoane

Se observd cd Andrei nu are datorii la

digrafului datoriilor fin Figura 3.12

Caracte rizali graful.Dafi c6teva exemple.

nici un membru ar ristei gi, in acelagi

timp, nici unul dintre acegtia nu-i este dator.


Implementarea unui digraf se poate face atdt

static

cdt

gi dinamic. in

implementarea staticd se foloseqte matricea


de adiacen[d. Dac6 vom considera
nodurile ca fiind numerotate r,2, ..., n, matricea
de adiacen[d,A aresemnificalia

urmltoare:

O r"rt de autoevaluare
3.3. Care este deosebirea dintre datele elementare qi datele structurate
(structurile de date)?
3.4. Care sunt principalele structuri de date utilizate in algoritmi?

,nli_
il=/O,daca
L) r l

intre i si 7 nu exista arc

ll, daca intre i si 7 exista arc

3.4. Enumerali avantajele gi dezavantajele implementdrilor statice

gi

dinamice ale listelor.

De exemplu, considerdnd codificdrile cristina<+r,


Arinae2, Mihai++3,
Andrei+>4, matricea de adiacenli atasatd.digrafurui
din Figura 3.12 este:

Algoritmi - caracteristici gi descriere


Deqi studiul algoritmilor reprezint6 punctul central al
Implementarea dinamioE ia furma llstelor de adiacenld.
Pentru exemplul
considerat, lista de adiaconfl eito Urmitoaroa:

calculatoarelor, totugi, nofiunea de "algoritm'n nu aro

gtiinlei

lnc[ o dofinifie riguroasi.

Intuitiv, ln algoritm constd dinh-o mulfime ordonat6 de papl exeoutabili, descriqi


fhrd ambiguitate, care definesc un proces finit, Cu qJutorul unul nlgoritrn. un set

.:
de dato de intraro, numit domeniul de de/tnllla al algoritmului osto transformat

de inceput gi un olngur punot do tormlnuo a oxooufloi poate

intr-un set de date de iegire, nu,mit domeniul de valorr al algoritmului

combinalie de maxim fiai structurl algorltmlce fund,amentale:

[il].

Un algoritm se caracterizeazd. prin:

generalitate

algoritmul fumizeazd, rezultate pentru o mul{ime de

date de intrare;

Jinititudine * procesul trebuie si fie finit pentru a fumizaun rezultat

secvenla de dou6 sau mai multe operalii;

decizia- alegerea unei operalii din doui alternative posibile;

iteralia cu test ini{iat

Se observd

neumbiguitate

fiecare pas se executd dup6 reguli bine precizate.

Cerinla ca paqii algoritmului sd fie executabili se referd la capacitatea lor

efectiv6 de a produce rezultate. De exemplu, comanda 'osorteazd"


descrescdtoare toate numerele intregi pozitive" nu poate

deoarece

fi

in

ordine

pasul unui algoritm,

a sorta toate numerele intregi pozitive (o infinitate) este o

acfiune

imposibi16.

repetarea unei secven(e c6t

timp

ca o

OftC

indeplinit6 o anumit[ condilie.

concret;

fi reprezentat

cI

cele trei structuri de control corespund unor proccgo naturglo

ale ralionamentului uman: enumerare, decizie, repetifie. Acest lucru OXpliCtr 9i


ugurinla gi naturalelea cu care sunt descrigi algoritmii folosind structurile do mai
sus. De cele mai multe

ori descrierea acestor structuri nu se face direct lnh-un

limbaj de programare, ci se tfiilizeazd anumite convenfii de reprezentare. Foarte

in practic6 sunt convenliile de reprezentare sub form6 de schemd


logicd Si pseudocod, Aceste convenlii au avantajul lipsei de formalism al
des intdlnite

limbajelor de programare (sunt mai intuitive) gi totodat[ permit reprezentarea cu

C" este algoritmul

Dali

claritate a structurilor algoritmice fundamentale'

cdtevaexemple.

Reprezentarea sub forma schemei logice foloseqte simboluri grafice ou

posibilitate de a descrie un algoritm este limbajul natural. Datoritd


polisemiei unor termeni, limbajul natural nu este potrivit pentru reprezentarea
algoritmilor. De foarte multe ori, ambiguitatea prezerrtd intr-un algoritm nu line
de algoritmul insuqi ci de modul sdu de reprezentare. Gradul de detaliere in

unui algoritm poate sd aibb drept obiectiv nivelul operaliilor


executabile de cdtre un calculator. in acest caz, descrierearenitatd, este stufoas6
gi puternic ingreunatd de omniprezenla structurilor de salt condilionat gi
reprezentarca

necondilionat.

Teorema de structurd elaboratd de B6hm

qi Jacopini

llrl

fumizeazd,

justificarea conceptului de programare stractaratd implementat in limbajele de


programare moderne. conform acestei teoreme, orice algoritm cu un singur punct

infeles prestabilit. Cele mai uzuale simboluri sunt (Figura 3'14):

,t
Bloc terminal
Bloc de
intrare

ieqire

Bloc de calcul

,n..

Bloc de decizie

Bloc conector

----->

Sdgeatd

1)V
/\

Figura 3.14. Simbolurile grafice utilizate in schemele logice

-:iF#

Pentru oxemprificare s6 considerdm


atgorrtrnur do rozorvRre ar ecuafiei de

gradul

I' Fie deci ecuafia ax+b=0. variabiloro

variabila de iegire este x.

in

gradul I se poate face astfel:

b, iar
rimbaj naturar, descrierca rezolvdrii ecua{iei
de

dacf, a

dacd.a=O atunci analizdrncazurile:

o
o

* 0 afitnci ecuafia

dacd,

este determinatd qi are r6ddcina

b:0

ecua{ia devine
nedeterminatl;
dacd'

*0

do intrarc sunt a qi

ecua{ia devine

x:

- bra

Nu
x

0x+0=0 adicd ecua}ia

este

/
,x+b= 0

<--bla
Scrie x
Scrie

adic6 ecualia este

imposibild.
Se observ, cd, degi exemplul este
destul de simplu, descrierea
natural este rerativ greoaie. o descriere
simpr' gi clar6 este realizatd
3.15 cu ajutorul schemei logice.

" 3cuatie

nedeter ninatE'

/ /
/ /

Scrio"Ecutfle
imposibill"

in limbaj
in figura

in pseudocod, in rocul simbolurilor grafice


se utirizeazdcuvinte cu in[eres

prestabilit, numite cuv,inte cheie. Astfer,


descrierea argoritmurui de rezolvare
ecualiei de gradul I ia forma:

Figura 3.15. Schema logicd a algoritmului de rezolvaro

Se observd cd modul de subordonare

Citegte a, b
Dacia#Oatunci
x <- -b/a
Scrie x
Altfe1
;Dacib=0atunci
Scrie '.Ecua f.ie nedetermlna td,,
II eLtter
Scrie .,Ecua lie inposibild*
I
H
I

Stop

a eeuatlol de grod I

logic[ este sugerat cu ajutorul unor

reguli de aliniere simple. Operalii elementare cum sunt citirea,

scrierea,

atribuirea, sfhrqit execufie, se pot reprezenta sub forma:

Citeqte lista de vatiabife


Scrie fista de exPresii
v +- expresie
Stop
Modul de reprezentare al celorlalte operalii complexe (decizia qi iterafia) va

fi descris in secliunile urmdtoare.

rffi

ou oaloulatorul

SECVENTA

secvenlil este o suitd de operafii caf,c sc oxocut[ ln ordinea in


care sunt

Exemplu. Calculul maximului dintre dou[ numere a gi b,

scrise.

De exemplu, descrierea argoritmului pentru calcurul expresiei


e
o secventd pe care o prezentdm mai jos:

:x + r

este

Citeste a,b
rDac5. a>b atunci

-* <-,

IL or.t"r

L---tr max<-D
Scrie max

Citegte x
e<-x+1_
Scrie e

Stop

Stop

DECIZIA
Decizia are urmitoarele reprezentrri in pseudocod gi schemd
logic5 (Figura
3.1

6):

Figura 3.17. Descrierea in pseudocod gi schemd logic6 a algoritmului de calcul al

conditie

maximului dintre doud numere

secven!,a1

ITERATIA CA TEST INITIAL


Iteralia cu test inilial are urmltoarele reprezentdri in pseudocod
Figura 3.16. Descrierea in pseudocod gi schemi rogicd a deciziei

logici (Figura 3.18).

fI

Execufia structurii de decizie se face astfel:

se evalueazd

dac6

qi schemd

ln

conditle executi
."cventa

Cats tsimp

eonditie;

conditie

este adev6rat6 se executi secvent,al,

contrar se executd secvent,a2

in

caz
Figura13.l8. Descrierea in pseudocod qi schemE logicd a iteraliei cu test inifial

','

Efoaful exoeufiei acestei structuri este urmf,torul: ro exocutd eacvenua cAt

timp

condltla

osto

tndeplinit[.

Observafii:

dacl din start conditie nu este indeplinitd, secvenla nu se executI


niciodat6;

. secventa trebuie sd

conlin6 enun,turi care s6 conducd la

modificarea valorii de adevrr a condiliei dupr un num6r finit de pagi


(condifia trebuie sa ia valoarea Fals la un moment dat pentru a se iegi

din ciclu; in caz contrar se produce ceea ce se nume$te o bucld


eternd sau un ciclu infinit).
Prezentlm mai jos un exemplu care contine o bucld etem5.

xe7
lCtE tlmp x>6 executi

y<-x

I
ln
I

Descrieli in pseudocod secvenla. Dali cdteva exemplc.

Descrieli in pseudocod decizia. Dali cdteva exemple'

Descrie{i in pseudocod iteralia cu test inilial. Dali cateva exemple.

9Eop
Sc observtr

c[ secvenfa y <- x nu va modifica niciodatd valoarea variabilei

r. ln consecin|[, x va ayea intotdeauna valoarea 7,


intotdeauna adevtrrat[ qi, deci, secventa

y <- x

se

condifia

x>7 va fi

va executa de o infinitate de

ori.

Forme echivalente pentru structurile de decizie Si de iterayie cu lest


Exemplu. calculul sumei elementelor unui gir de numere reare in

pseudocod gi in schemd logicS. Sfhrqitul girului este marcat de cifra zero.

inilial
Pentru a uqura implementarea qi a spori r;laritatea programelor, majoritatea

limbajelor de programare utilizeazd qi alte structuri algoritmice, echivalente logic

s+-0

Citegte x
rcat timp -rc*0 executl

I
IL-J

ScrLc

e.s+.r

"itestc

cu structurile algoritmice fundamentale ptezentate.

Astfel,
generulizatd

in

(s

au

cazul deciziei, amintim decizia cu ramur[ vidd


s e I

ecfi a).

StoXr

.r8ai,

t85l

9i

decizia

0ucaloulatoful.+-|q%
Declzla cu ramurd vldd ue fonna general[
(Flgura 3.lg):

Decizia generalizatd permite alegerea (selecfia) unei alternative din mai


rnulte posibile. Forma generald a selecliei este urmStoarea (Figura 3.20):

conditie atunci
secverrta
IJ-DacE

secvental

rn
I

secventan+l

expresie dintre
Cr: SeCvental
Cz: Secventa2

A1-ege

exprest-e

C,: secventa.
Al-tfel secventar*1
Figura 3.19. Descrierea in pseudocod gi
scheml logicd

deciziei cu ramurd vidd

secventa2

Efectul deciziei cu ramuri vidd const,


in execufia condi{ionat, a secventei
secvent.a se executl numai dacl conditie
este

Figura 3.20. Descrierea in pseudocod gi schem6 logicd a

adevEratl.

deciziei generalizate

Exemplu. calcurur maximului dintre


dou6 numere a si b utiliz6nd decizia

cu ramurd vidd.

Modul de execulie al deciziei generulizate este urmdtorul:

Citegte a,b
mx +- a

a<b atuncj.
;Daci
max<-b

se evalueazd

daci existd i .{1,2,...,n} astfel incat expresie

secventai

In

Scrie max
St,op

expresie;

= ci

S executl

gi se iese din structur[;

dacil pentru toate i e1,2,...,n\ expresie

+ ci se executd

secventar*1 gi se iese din structurtr.

Obs

ervalie. Secvenla s ecventan*1 este opfionalI.

Exemplu. Se citegte un caracter gi in funofio de valoarca sa se scriu diferite


mesaje. Algoritmul este descris ln pseudoood.

ou

Clteste x
dintre
'r', 'At: scrie
|
'""
scrie
|
'n'"'a':
scrie
| Altfe1:
Scrie (,Ati
Iln

oaloulAtotEl=sl%

Observallo, Blturlla dsasrla6 ln aohema loglc[ ele mai sus se refer[ la cazul

;----Alege x

'Ana')
'EIena')
'Mona, Nae,

v; S vTgi

Oana,

tastat gresit,

raliar > 0. C6nd v1> v7flir < 0 condifia

de test se schirnbd in v 2

v7.

Structura de control Pentru se folosegte cAnd se cunoaqte numdrul de

execu{ii ale secvenfei. Observa{iile frcute la structura Cf,t

Stop

timp

r6mdn valabile

gi aici.

De regulr, in rimbajele moderne de programare se implem


enteazdarrturi de
iteralia cu test inifial qi urmdtoarele dou6 forme echivarente:

Exemplu. Calculul sumei a ru numere reale citite de la tastaturS.

Citegte
s

<-0

i<-1, n executi
-Pentru
Citegte
x
I
L<-,s+x

itera{ia cu contor (structura pentru);

itera[ia cu testfinal (structura Repetd C6t Timp).

ln
Scrie

Stop
Itera(ia cu contor este un caz particurar al iterafiei cu
test inifial. Rorul
central il ocup[ aici o variabild speciald, numitr variabird
contor,
care poate

fi

inifializatd, actualizatd' 9i poate controla valoarea logica


a condifiei. Actualizarea
lnseamnd modificarea cu o valoare constantd (numit6
ralie sau pas) avariabilei
contor' Reprezentarea in pseudocod qi sub form6 de schemd
logic6 a iterafiei cu
contor este prezentatd in Figura 3.21:

Observa{ie. Cdnd ralia lipseqte se consideri cd acesta are valoarol

l,

Iterulia cu test final se reprezintd in pseudocod qi schemtr logio[ sub forma


(Figura3.22):

RepetE

secventa

cat uimp conditie

v <- vi, vr,


secventa
I;-Pentru

In
I

Figura 3.22. Descrierea in pseudocod gi schem[ logicd a


iterafiei cu test final

Observalii:

v+-y+r
Figura 3.21. Descrierea in pseudocod gi schemd logic[

iterafiei cu contor

SecvenLa se executd cel pufin o datd.

Pentru a nu se cicla la infinit, secventa trebuie sd confind enun]uri


care, dup[ un numdr

Fals pentru

finit

conditie.

de pagi, sd conducd la valoarea de adevdr

_.'!=*-.F

Exemplu. Calculul valorii

cu

! = .'lx pentru un num{r x

calculltortff?*E+

real citit de la

tastaturd.

Subalgoritmul poate lua forma unei procedurl sau a uneifanclii.

Repetd

ln pseudoco d o procedurd se reprezintd astfel:

v<-J;

Procedura nume*procedura (f ista-de-parametri)

Citegte x
Cat Timp ,<0
Scrie y

corpul procedurii
Sfirqit

Stop
Proceduri 9i funcfii
Sunt frecvente cazurile

in

care

o secventd de instrucliuni este reluatd

pe

parcursul unei algoritm schimbindu-se de fiecare datd.numai valorile iniliale ale

variabilelor. Pentru a se evita scrierea aceloragi instrucliuni de mai multe ori,


acestea sunt organizate separat, sub forma

unui subalgoritm gi apelate in

algoritmul principal ori de cAte ori este nevoie.

Precizdri:

cuvintele Procedura $i

. numejrocedura

sunt cuvinte tezewate.

este evident numele procedurii

gi sotvf;ts h

identificarea instrucliunilor care se apeleazd.

r ]isra_dejarameLri

Schematic, situalia se prezintd astfel:

sferFit

reprezin6 parametrii formali sau

flotlvl rl

procedurii; listapoate fi vid6.

Algoritm

-t
-r
_)
-')

Instrucliuni
care se repetd

Algoritm principal

o corpul procedurii

t-

apel subalgoritm

confine instrucfiunile subalgoritmului,

Subalgoritrn

i=

Apelul unei proceduri se face prin specificarea numelui procedurii urmat de


tista de parametri actuali sau efectivi cuprinqi intre paranteze rotunde:

numejrocedura
$i in acest caz f

jsta-de- parametri)

sta-de-parametri

poate sd fie vidd.

Transferul informafiei dinspre algoritmul principal spre procedurd 9i invers

-r
I

_)

se face prin intermediul parametrilor. Existd qi posibilitatea de a transmite


Instrucfiuni
care se repet[

apel subalgoritm

informalii prinvariabile globale, adicd variabile care sunt recunoscute (se "v[d")

gi in algoritmul principal qi in procedurd. Aceastd ultirni variant[ nu este


recomandatd deoatece, tocmai datoriti caracterului lor global, valorile
variabilelor pot fi modificate uneori din gre9eal6.

_t
-l

-I

Instrucfiuni
care se repot[

epel lubalgorltm

problcmalor ou caloulatoruf

Pararnetrii formari pot sau nu avea accrcafli


nume cu parametrii actuari.
Important este insr ca in ambele liste s6
existe un num6r egar de parametri,

iar

parametrii forrnali qi actuali de pe

aceeag

pozi[iesd fie de tipuri compatibile.

ln exemplul do mai
dat6 parametrii formali

nk

"

utilizdnd

parametrul formal
k:

m gi F, sunt pugi in corespondenfd

in F', so lntoaroc tn
actual corespunz6tor Fn, Anal{, dUpl

apelul succesiv al procedurii, in F4 se va afla valoarea

se face in

pseudocod.

(l-

i sta_de_parametrl

Precizdri:

cuvintele E"unctie qi seArgit sunt cuvinte rezervato.

Citegte n, k

nume_functie

Fact (n_k, Fnk)


C,,, F, /(F,ox Fo)
Scrie Cr1

o lisLa_dejarameLri

Fact. (n, Fn)


FacL (k, Fk)

este numele funcfiei.

reprezintd parametri

formali

sau

ficlivi;

lista poate fi vid6.

o corpuf functiei

Stsop

La efectuarea apelurui se executi instruc{iunile


din procedurd, iar

con{ine instrucfiunile subalgoritmului.

Transferul informaliei dinspre algoritm spre funcfie se face prin intermediul


dupd

terminare se revine in algoritmur principal


Ia prima instrucfiune de dupd aper.

subalgoritm poate apela la rAndul sdu alfi subalgoritmi.

Vflo$lf

Sf5rgit

T-.l

Un algoritm principal poate apela subalgoritmi diferifi,


iar

Frnr

se reprezintd astfel:

Funclia nume_funcLie
corpul func!iei

procedura Fact. (m, F^)


p<-l
Tpentru k<_Z,n executi
II t<- Pxk
F^? P
SfArgit

k!, iar ln

(n-k)t.

in pseudoco d, o funclie

n. Sa oxocutl

primeqte valoarea pararnetrului actual

algoritmul principal prin parametrul

procedurd pentru calculul factorialului.


Descrierea

cu pararnetrii actuali

instrucliunile din procedurd iar rezultatul (n!) calculat

n!

k!(n _ k)t

este apelat[ de trei ori. De fiecare

Fact (n, Fr)

apeleazd.

cdte

Fact

corespunz6tori. De exemplu, la apelul

Numele procedurii nu intervine in operaliile


expresiilor din argoritm. Rorur
sdu este numai de a identifica instrucliunile
care se
Exemplu. Calculul combin5rilor de nluate

auo procodura

fiecare

paramekilor formali la apelul funcliei. Rezultatul prelucrlrilor din corpul funcfiei


se intoarce

in algoritmul principal prin intermediul numelui funcliei. Din

acest

motiv, in corpul funcliei, nume_functie trebuie sd primeascl cel pu{in o


valoare. Numele funcfiei, urmat (dacd e cazul) de lista de parametri actuali
cuprinsd intre paranteze,poate sd fie operand intr-o expresie; la apel construcfia
nume_f

.-*;n-.f-

unct ie ( f i

s ta_

parametr i_ac tuaT

i)

="@

ruErrErl*

va fi lnlocuit[ cu rezultatul prelucrdrilor din coryul


funofloi,

Rdsp uns urllc teslclor de

Exemplu. Calculul expresiei y = (x)+ 5.63 unde


,
-f

PrEpl,tlrllilSf

gU-

gltlgtuaEglil*E+: i'!:=r

utoeval uare

3.1. Variabilele statice sunt variabile al c6ror nulne se asociaz[ pe toat[

daca x>7
"f(x)=jtO.ZS daca x=7
l"'-* daca x<7.

durata execufiei programului cu adresa unei loca{ii de memorie.

fx+2

3.2. Yariabllele dinamice sunt variabile cErora se pot asocia mai multG
adrese de localii de memorie pe durata execu{iei programultri,

Descrierea in pseudocod este urmItoarea:

3.3. Datele elementare sunt indivizibile


prehrcreazd, (exemple:

Funclia /(x)
Daci ;r>7 atunci
f <- x+2

4,

in raport cu oporallltc

-34.89, 's'), iar structurile

date, omogene sau nu, care pot

fi tratate unitar ln prelucratc,

3.4. Principalele strucruri de date utilizate

ALt,f e1

rDaci x = 7
I r <- 10.25

inregistrarea, lista

I attt"r

ortt ta
do datc iunt mnnblurl fi
pG

in algorlhrl rwtl

uHtd,

liniari simplu inl6nfuit6, lista liniarl dublu lnllnflrltt

dru

coada, arborele qi graful.

I f <--e'-x
ln

3.4. Avantajele implementdrilor statice ale listolor

frfl de oele dlnunloel

consum de memorie mai redus, acces direct la orice elomont al

SfArgit

littol, pruuryod

rapide in ambele sensuri.

Citegte x
y

<_

Dezavantaiele implementlrilor statice ale listelor faf6 de colc dinamice:

(x) + 5.63

Scrie y

dificultdfi la eliminarea sau inserarea de elemente in list6.

gEop

Explicafi rorul procedurilor qi funcliilor. Dafi trei exemple


de functii

trei exemple de proceduri.

3.5. Generalitatea, finititudinea gi neambiguitatea.


qi

3.6. orice algoritm cu un singur punct de inceput qi un singur punct de


terminare a execufiei poate

fi

reprezentat ca o combinalie de maxim trei strucfuri

algoritmice fundamentale: secvenfa, decizia gi iteralia cu test inilial.

O f"rt de autoevaluare

Lucrare de veriJicare

3,5. Enumerafi caracteristicile de baz[ ale algoritmului.


3.6. Enunfafi teorema de structurtr.

Realizali o sistematizare

..,...........A

a structurilor de date.

scrieli in pseudocod algoritmul de rezolvare a urmtrtoarei probleme: pentru

o companie genericr se citesc veniturile pe fiecare trimestru al ultimului


pentru toate sucursalele (incheierea

*js

an

citirii se face la int6lniroa unoi valorie

Tipurile de d.ate se ouraoterizeaztl printr-o mulfirne de valori 9i o mulfirne de

negative), so eor: venitul trimestrial maxim, veuitul trimoetrial minim, suma


veniturilor pentru toate sucursalele gi toate trimostrolo

ryi

venitul rnediu trirnestrial

operalii specifice care

pe sucursal[.

se

aplic[.

cadrul unui algoritm, datele se prezint6 sub forma constantelor Si

in
v

li

ariab il el or (statice sau dinamice).


lJn algoritm se defineqte ca o mullime ordonatd de paqi executabili, descriqi

frr[
Rer,umat

Etapele de rezolvare

ambiguitate, care definesc un proces finit. Un algoritm trebuie sE fie deci

general,

unei probleme cu calculatorul sunt: analiza

finit qi neambiguu.

Descrierea algoritmilor se tealizeazd prin anumite

convenlii de reprezentare) ca schema logicd

problemei, proiectarea algoritmului

qi

pseudocodul'

de rczolvare, descrierea algoritmului in


pseudocod sau schem[ logic6, codificarea algoritmului intr-un limbaj de

programare

programare (oblinerea programului), testarea programului, execulia sa, obtinerea

stipuleazd cd orice algoritm cu un singur punct de inceput qi un singur punct de

rezultatelor qi interpretarea lor qi intrelinerea programului.

terminare a execuliei poate

tn limbajele de programare se folosesc date elementare Si date structurate.


Datele elementate, care sunt date indivizibile gi recunoscute de calculator fdr6

algoritmice fundamentale (structuri de control): secvenla, decizia qi iteralia cu


test inifial. Aldturi de aceste forme standard ale structurilor de control mai apar:

prelucrdri suplimentare, sunt date numerice (intregi

gi reale),

Iogice

qi

alfanumerice. Datele structurate (sau structurile de date) folosite frecvent in

de structurd, care fumizeazd justificarea conceptului de


structuratd implementat in limbajele de programare moderne,

Teorema

fi

rcprezentat ca o combinalie de maxim ttei structuri

decizia cu ramur[ vidd, decizia generulizrtfi iteralia cu contor qi iterafia cu test

final.

algoritmi sunt: tabloul, inregistrarea, lista liniard simplu inl6nfuitd, lista liniard
dublu inldnfuitS, stiva, coada, arborele gi graful.

Tablourile reprezintd, coleclii omogene de date (qiruri).

inregistrdrile reprezintd coleclii neomogene de date.


Listele liniare (simplu si dublu tnldnluite) modeleazd giruri de elemente
omogene care nu se memoretvd obligatoriu la adrese vecine.

Stiva gi coada sunt liste liniare particulare care funclioneazd dupd,principiul

Ultimul Intrat Primul Iegit gi respectiv Primul Intrat Primul Ieqit.


Arborii sunt structuri pentru reprezentarea relaliilor ierarhice dintre obiect.

Grafurite sunt structuri de tip relea pentru reprezentarea rela{iilor (de


aproape orice

Re c oman d dri

iblio gr aft'c e

1. Robert Sedgewick, Algorithms, Brown University, Addison-wesley


Publishing company, Addison-wesley Series in computer science 1983.

2. Leon Livovschi, Horia

Georgescu, sinteza

analiza algoritmilor,

Universitatea din Bucuregti, Fac. de Matematica, Bucureqti, 1985'

3. Donald E. Knuth, The art

of

computer programming,

Vol' I -

Fundamerutal Algorithms, edifia a treia, Addison wesley Longman, 1997.

4. J. Glenn

Brookshear, Introducere tn Informaticd, Ed. Teora, Bucureqti,

1998.

tip) dintre obiecte.

1961

si

t971

5, Thomas H. Cormen,

C.E. Loisorson, R,R, Rlvott,


C, Stoin, Introduction ro

algorithms, MIT, ed. II,2001,

6. Bob
2013.

Sedgewick, Kevin Wayne,


Algortthms, online course, princeton,

BIBLIOGRAF'IE
Tiberiu Popescu (coordonato r), D i c ! i o nar de I nfo r mat i c d, Edit'xa
$tiinfificd qi Enciclopedici, Bucuregti, 1981.
Adrian Petrescu, Nicolae TIpu$, Trandafir Moisa, Gheorghe Rizetcu,
Viorica Hlribor, Mihai Mirqanu, Traian Mihu, abc de calculatoara
personale Si ... nu doar atdt ..., Vol.I, Ed. Tehnic6, Bucuregti, 1990,

Andrew Tanenbaum, Computer Networks, fourth edition, Pearson


Education International, 2003.

J. Glenn Brookshear , Introducere in Informaticd, Ed. Teora, Bucurcgtl,


1998.

Traian Ionescu, Radu Pietraru, Alexandru Velicu, Sisteme cu


microprocesoare, note de curs, Facultatea de Automaticd gi Calculatoaro,
Universitatea Politehnica Bucureqti, 20 12.

Jonathan Ashley, Maria-Pilar Bernal, Geoffrey W. Burr, Hans


Coufal, Harald Guenther, John A. Hoffnagle, C. Michael Jefferson,

Brian Marcus, Roger M. Macfarlane, Robert M. Shelby and Glenn T.


Sincerbox, Holographic data storage, IBM Journal ofResearch and
Development, 44(3),

34

-368, 2000.

Tomohiro Ikeda, Ryota Iino, Hiroyuki Noji, Real-time fluorescence


visualization of slow tautomerization of single free-base phthalocyanines
under ambient conditions, Chemical Comm unications 50, 201 4.

Dana Petcu, Calcul Paralel,Edibtra de Vest, Timigoara, 1994.

Florin Piunescu, Analiza

$tiinfifici
10.

operare, Editura

9i Enciclopedici, Bucuregti, 1982.

Leon Livovschi, Bazele Informaticii, Editura Didactici gi Pedagogicd,


Bucureqti, 1981.

p$

Si conceplia sistemelor de

S-ar putea să vă placă și