Sunteți pe pagina 1din 147

Bazele informaticii economice 1

UniversitateaTRANSILVANIA din Bra șov


Facultatea de Științe Economiceși Administrarea Afacerilor

Bazele informaticii
economice
SUPORT DE CURS
PENTRU
ÎNVĂȚĂMÂNT LA DISTANȚĂ

Prof. Dr. Dorin Lixăndroiu


L ector dr. Radu Lixăndroiu

Brașov
2011
2 Curs pentru învăţământ la distanţă

Introducere

Obiectivele cursului
Principalul obiectiv al cursului este de a înţelege locul şi rolul informaticii într-o
organizaţie. Prezentarea principalelor elemente definitorii ale conceptelor sistem
informaţional / sistem informatic va permite înţelegerea importanţei activităţilor de
culegere, prelucrare, transmitere şi stocare a informaţiei economice în procesul
decizional.
Un alt obiectiv îl reprezintă înţelegerea arhitecturii calculatoarelor din punct de
vedere hardware şi software. După o descriere succintă a evoluţiei sistemelor de
calcul, se prezintă structura generală a unui calculator tip von Neumann, iar apoi se
regăsesc elementele structurale în analiza unui calculator personal (PC). După
structura hardware, se prezintă conceptele de sistem de operare şi reţea de
calculatoare.
Alte obiective sunt: prezentarea și explicarea algoritmilor, a tabelelor de decizie
percum și opreațiile care se pot efectua la nivelul structurilor de articol și fișier.

Competenţe conferite
După parcurgerea acestui curs studenții vor înțelege următoarele concepte: de
informaţie şi entropie, noţiunea de sistem. sistem cibernetic, sistemul
informaţional, sistemul informatic, calculatoare personale, sisteme de operare,
reţele de calculatoare, limbajul algoritmic, analiza algoritmilor, tabele de decizie
structuri elementare de date, algoritmi fundamentali, structura de articol şi fişier,
operaţii de prelucrare (gestiune) a fişierelor

Resurse şi mijloace de lucru


Mijloace informatice necesare parcurgerii materialului şi rezolvării testelor:
Windows Explorer, Microsoft Word, Microsoft Excell, Microsoft Power Point.

Structura cursului
numărul de Unităţi de învăţare (UI) ce compun cursul: 4
numărul temelor de control 8
locul, în cadrul materialului, în care se găsesc formulate temele de control – la
sfarșitul unităților de învățare
modul de transmitere al temelor de control către cadrul didactic şi, respectiv, a
rezultatelor către studenţ -(prin încărcarea pe platforma eLearning, material
tipărit, etc.

Discipline deservite
Analiza și Proiectarea Sistemelor Informatice
Baze de Date
Pachete de Programe de Contabilitate
Tehnologia Informatiei
Programarea Calculatoarelor

Durata medie de studiu individual – 15 ore


Bazele informaticii economice 3

Evaluarea
Se va specifica componenţa notei finale: – ponderea evaluării finale (examen)
– 50%
– ponderea proiectelor de laborator – 50%

CUPRINS

Unitatea de învăţare 1. INFORMAŢIE, ENTROPIE, SISTEM


INFORMATIC .................................. 5
4 Curs pentru învăţământ la distanţă

Unitatea de învăţare 2. ARHITECTURA


CALCULATOARELOR .................................................... 27
Unitatea de învăţare 3.
ALGORITMI ..................................................................................................... 60
Unitatea de învăţare 4. ORGANIZAREA DATELOR ÎN
FIŞIERE .................................................. 111
PROBLEME
PROPUSE........................................................................................................................ 122
Bibliografie ............................................................................................................................................
.. 139

Unitatea de învăţare 1. INFORMAŢIE, ENTROPIE,


SISTEM INFORMATIC

Introducere

Principalul obiectiv al capitolului este de a înţelege locul şi rolul informaticii într-o


organizaţie. Sunt prezentate conceptele de informaţie, entropie, sistem şi sistem
cibernetic, care vor ajuta la abordarea într-o viziune sistemică a tuturor activităţilor
Bazele informaticii economice 5

dintr-o organizaţie. Prezentarea principalelor elemente definitorii ale conceptelor


sistem informaţional / sistem informatic va permite înţelegerea importanţei
activităţilor de culegere, prelucrare, transmitere şi stocare a informaţiei economice
în procesul decizional.

Competenţele unităţii de învăţare


După parcurgerea acestei părți studenții vor înțelege următoarele concepte: de
informaţie şi entropie noţiunea de sistem. sistem cibernetic.
sistemul informaţional sistemul informatic

Durata medie de parcurgere a primei unităţi de învăţare este de 4 ore.

1.1.Conceptele de informaţie şi entropie


[BVB97], [DOD87], [GER97], [LIX94], [NIR96], [POP86], [PUR88]

Prin organizaţie înţelegem două sau mai multe persoane asociate în vederea
realizării unui scop productiv sau de servicii. Orice organizaţie pentru a funcţiona
are nevoie de resurse: materiale, financiare, umane (resurse vizibile) şi
informaţionale (resurse invizibile).
Secolul XX marchează trecerea de la societatea industrială, în care producţia de
bază este producţia industrială, iar resursa strategică este capitalul, la societatea
informaţională, în care producţia de bază este cea intelectuală, iar resursa cea mai
importantă este informaţia.

„Avantajul competitiv real se obţine de surse invizibile, adică din informaţii sau
circuite informaţionale, resursele vizibile pot fi cumpărate sau copiate rapid, cele
invizibile se acumulează însă în ani” (Hiroyouki Itami).

Noţiunile de dată şi informaţie se consideră în vorbirea curentă ca fiind sinonime,


ele însă diferă esenţial. Se remarcă două moduri de abordare:
se consideră noţiunea de bază cea de informaţie, iar cea de dată derivă din aceasta;
noţiunea de bază este cea de dată, iar informaţia se consideră ca derivată din
aceasta.
A) Noţiunea de informaţie este complexă, de mare generalitate şi se ridică la
nivelul noţiunii de materie. Nu i s-a putut da încă o definiţie unitară, fiind
considerată un concept primar, la fel cum în matematică există noţiunea
fundamentală de mulţime. Informaţia este una din cele trei forme de manifestare
ale materiei, alături de substanţă şi energie. În general, se identifică trei nivele la
care poate fi analizată informaţia: sintactic, semantic şi pragmatic.

1. Nivelul sintactic se referă la sistemul de semne şi reguli de reunire a acestora în


construcţii sintactice utilizate pentru reprezentarea informaţiei în procesul
culegerii, transmiterii şi prelucrării acesteia.
În informatică modelul de reprezentare a informaţiei este data. Conceptul de dată,
corespunzând nivelului sintactic, poate fi definit în notaţia BNF (Backus-Naur-
Form), astfel:
<dată> = <identificator> <atribut> <valoare>
6 Curs pentru învăţământ la distanţă

Din definiţia noţiunii de dată în informatică, se observă că ea cuprinde şi noţiunea


de valoare, dar presupune în plus elementul de reprezentare şi manipulare, adică o
modalitate simbolică de exprimare şi un sistem de reguli de transformare a
acesteia, prin care se pot obţine noi date.
Deosebirea dintre informaţie şi dată este echivalentă cu deosebirea dintre obiect şi
modelul său. Informaţia şi data se pot utiliza ca sinonime numai în măsura în care
convenim să identificăm obiectul prin modelul său.

Nivelul semantic presupune trecerea de la structură la sens. Sub aspect semantic,


informaţia poate fi caracterizată, de fapt, ca semnificaţia datelor. Sensul informaţiei
la nivel semantic este corespondenţa dintre o dată şi obiectul real sau situaţia pe
care o reprezintă această dată.

Nivelul pragmatic este cel mai concret nivel de considerare a informaţiei, singurul
care raportează informaţia la scopurile receptorului. În raport cu necesităţile
receptorului se definesc caracteristici, ca importanţa sau utilitatea informaţiei.
Abordarea pragmatică include problemele de management, de necesar de
informaţii şi de eficienţă a sistemelor informaţionale, care constituie baza luării
deciziilor. Actul managerial de utilizare a informaţiilor în procesul decizional este
considerat o artă. De aceea, aspectul pragmatic al informaţiei este în acest moment
neformalizabil.

B) Activitatea umană, în cele mai diverse forme ale sale a fost întotdeauna
caracterizată prin entităţi faptice exprimate fie sub formă de valori numerice, fie ca
percepţii sau observaţii nenumerice. Aceste entităţi faptice independente şi
neevaluate existente în general în număr nelimitat se numesc date.

Din acest material informaţional brut, printr-un proces de transformare şi


prelucrare (evaluare, selectare, ordonare) se obţin informaţii. Deci, datele
reprezintă materia primă din care se obţin informaţiile.
Informaţiile la rândul lor constituie baza raţionamentelor, experimentărilor, imaginate în scopul
Utilizare
obţinerii de noi cunoştinţe. În figura 1.1 se prezintă acest proces care începe cu achiziţionarea datelor
şi se încheie cu înregistrarea de noi cunoştinţe
Informaţii
Raţionamente / Experimentări
Date Pre
luc
rar
e Cunoştinţe

Figura 1.1

În informatica economică nivelul dată-informaţie este considerat un prim nivel.


Nivelul cunoştinţelor reprezintă un al doilea nivel, rezultat din informaţii derivate
din alte informaţii pe bază de raţionamente şi/sau experimentări.
Bazele informaticii economice 7

Cunoştinţa este conform lui Peter Drucker “informaţia care schimbă ceva sau pe
cineva – fie devenind baza unor acţiuni, fie permiţând unei persoane sau
organizaţii să acţioneze diferit sau mai eficace”.
Cunoştinţa include capacitatea de a evalua informaţia într-un sens sau scop. A
avea cunoştinţe sau abilitatea de a efectua sarcini complexe, presupune mai mult
decât a avea o listă de instrucţiuni sau informaţii necesare; se cere abilitatea
manipulării informaţiilor sau a sarcinilor.

Comentariu. Nu orice informaţie este cunoştinţă, aşa cum nu orice cunoştinţă este
de valoare pentru o organizaţie. Tocmai acesta este şi obiectivul principal al noului
domeniu legat de gestiunea conoştinţelor, Knowledge Management (KM), de a
găsi cunoştinţele de valoare în masa de informaţii.
KM poate fi considerat ca fiind o formă de implementare a schimbării
organizaţionale, care constă în a înregistra cunoştinţele (atât la nivel individual cât
şi la cel instituţional) şi apoi a le pune în comun în scopul de a ameliora capitalul
intelectual al unei organizaţii.
Cel mai frecvent tip de definiţie descrie KM ca un set de procese dirijate către
“crearea – captura – stocarea – punerea în comun – aplicarea – reutilizarea”
cunoştinţelor (ex: Sydanmaanlakka, 2000).
Această definiţie prezintă KM ca implicând un set oarecum mecanic şi secvenţial
de etape şi se focalizează asupra cunoştinţelor explicite în detrimentul conoştinţelor
tacite. O altă definiţie care prezintă mai bine caracterul complex al KM este:
“identificarea, optimizarea şi gestiunea activă a bunurilor intelectuale, fie sub
forma cunoştinţelor explicite conţinute în artefacte, fie a cunoştinţelor tacite
aparţinând indivizilor sau comunităţilor” (Snowden, 2000).
(Notă. Artefact, conform Dicţionarului enciclopedic, vol.I, 1993, pag. 117, este un
produs artificial sau accidental întâlnit în observarea şi experimentarea unui
fenomen natural.)
Optimizarea cunoştinţelor explicite presupune consolidarea şi punerea la dispoziţia
indivizilor de diverse artefacte. Optimizarea cunoştinţelor tacite se realizează prin
crearea de comunităţi care deţin, pun în comun şi dezvoltă acest tip de cunoştinţe.
Gestiunea activă a bunurilor intelectuale constă în crearea de infrastructuri şi de
procese de management, pentru a reuni artefactele şi comunităţile într-o dinamică
comună, care va susţine crearea, utilizarea şi menţinerea capitalului intelectual.
Această definiţie are meritul de a recunoaşte că demersul KM se adresează atât
cunoştinţelor explicite cât şi celor tacite, precum şi interacţiunii între cele două şi
de a lua în considerare mecanismele care permit acest lucru.

În informatica economică, datorită preocupării centrale asupra aspectelor


pragmatice ale informaţiei, se consideră sinonime conceptele de informaţie şi dată.
Nivelul pragmatic reflectă cel mai fidel mecanismul procesului de cunoaştere.
Procesul de cunoaştere se realizează în timp prin acumularea treptată de informaţii
despre obiectul cunoaşterii. La un moment dat, cunoştinţele reprezintă totalitatea
informaţiilor dobândite anterior – tezaurul – la care trebuie raportat rezultatul
oricărui proces de informare. La limită sunt posibile următoarele situaţii:
Procesul de informare este nul, dacă informaţia respectivă face parte din tezaurul
receptorului, adică a devenit o cunoştinţă;
Procesul de informare este maxim, dacă intersecţia între conţinutul tezaurului şi cel
al informaţiei este vidă.
8 Curs pentru învăţământ la distanţă

Informaţiile se pot clasifica după mai multe criterii:


natură: cantitative, calitative;
situarea în timp: active, pasive, previzionale;
modul de apariţie: la intervale precizate, la cerere, ocazionale;
conţinut: elementare, complexe, sintetice;
frecvenţă: continue (în timp real), anuale, trimestriale, lunare, zilnice etc.;
nivel: strategic, tactic, operaţional;  origine: interne, externe.

O aceeaşi informaţie poate avea utilităţi diferite pentru receptori diferiţi,


depinzând de gradul cunoaşterii anterioare, ca şi de poziţia receptorului în raport cu
obiectul.
Gradul de utilitate a informaţiei şi eficacitatea utilizării acesteia în procesul
decizional sunt determinate de indici de calitate specifici:
oportunitatea sau actualitatea – exprimă faptul că o informaţie este utilă într-un
anumit moment, legat de desfăşurarea în timp a unor fenomene şi care impun
luarea unor decizii;
precizia sau acurateţea – este măsurată prin cantitatea de informaţie corectă în
raport cu întregul volum de informaţii produs într-o perioadă de timp;
completitudinea – exprimă necesitatea de a dispune de cât mai multe informaţii
care să acopere aria dorită de factorul decizional;
relevanţa – exprimă necesitatea ca informaţiile achiziţionate să poată furniza
cunoştinţele care lipsesc în procesul decizional; în multe situaţii este dificil să se
spună la un moment dat dacă o informaţie este sau nu relevantă;
conciziunea – exprimă necesitatea ca informaţiile să aibă o exprimare succintă,
concentrată, adică un anumit nivel de agregare necesare procesului de luare a
deciziilor.

Contribuţii la măsurarea utilităţii informaţiei aduce matematicianul român Silviu


Guiaşu, care introduce în 1968 entropia ponderată, analoagă conceptului de
utilitate introdus de John von Neumann şi Oskar Morgenstern în 1944.
Pentru a opera cu noţiunea de informaţie, pe lângă evaluarea calitativă este
necesară şi o exprimare cantitativă.
Bazele teoriei matematice a informaţiei au fost puse de Claude Shannon în
1948, prin lucrarea „A Mathematical Theory of Communication”. Se consideră o
mulţime de evenimente e1,e2,,en care sunt rezultatele posibile ale unui
experiment oarecare X. Probabilităţile de realizare ale acestor evenimente vor fi
notate p1, p2,,pn.
Se presupune că sistemul de evenimente  1, 2,, neste un sistem complet de
e e e

evenimente, adică în urma efectuării experimentului X se va obţine ca rezultat unul


e e e
din evenimentele elementare 1, 2,, n . Matematic, aceasta se exprimă prin
relaţiile:

n
pi  0, i  2,,n;  pi  1 (1.1) i1
În acest mod, experimentul X pune în evidenţă un câmp finit de probabilitate
X,e, pe, care se mai poate nota prin repartiţia variabilei aleatoare discrete:
Bazele informaticii economice 9

X :pe 11 ep22 epnn (1.2)


Expresia (1.2) evidenţiază faptul că experimentul X conţine un anumit grad de


nedeterminare atât timp cât rezultatul lui nu este cunoscut.
Între informaţie şi nedeterminare există o strânsă legătură. Cu cât nedeterminarea
de la începutul experimentului este mai mare, cu atât este mai mare informaţia care
se obţine după efectuarea experimentului.
Cantitativ, cele două concepte pot fi identificate şi deci măsurate în acelaşi mod,
dar trebuie privite separat în ceea ce priveşte sensul de variaţie şi semnificaţia
fiecăruia. Ca semnificaţie, informaţia este eliminarea unei nedeterminări
(incertitudini), iar cantitatea de informaţie a unui eveniment măsoară cantitatea de
nedeterminare (incertitudine) asupra producerii lui.
e
Realizarea evenimentului i , furnizează o cantitate de informaţie I i . Intuitiv,
e

e
informaţia adusă prin producerea evenimentului i este cu atât mai mare cu cât
probabilitatea acestuia  este mai mică.
p
i

Definiţia 1.1. Se numeşte entropie Shannon a variabilei aleatoare X,


mărimea: n
HX  Hnp1,p2,,pn   pi log2 pi (1.3)
i1

Termenul de entropie vine din limba greacă (en - „în”, tropo – „conversiune”,
„involuţie”, „transformare”, „schimbare”) şi a fost introdus în termodinamică de
fizicianul german Rudolf Clausius în 1850, pentru a indica gradul de
ireversibilitate a transformărilor energiei într-un sistem închis.
Observaţie. H X este cantitatea medie de informaţie obţinută prin efectuarea
experimentului cu n rezultate posibile, descris de variabila aleatoare X.
HX se mai numeşte entropie informaţională.
Ca unitate de măsură a cantităţii medii de informaţie a fost acceptat „bit”-ul
(BInary digiT – cifră binară). Un BIT reprezintă cantitatea de informaţie obţinută
prin apariţia unui eveniment din două egal probabile.
Entropia informaţională care se obţine prin precizarea uneia din cele două cifre
echiprobabile 0 şi 1 ale sistemului binar, cu repartiţia:

0 1
X : 1/ 2 1/ 2

se poate calcula după relaţia (1.3) astfel:

HX  H2 1 ,1   2 pi log pi   1 log2 1  1 log2 1  1BIT


10 Curs pentru învăţământ la distanţă

 2 2 i1 2 2 2 2

Ca multipli se utilizează:
1 byte (octet) = 23 bits = 8 bits
1 KB (kilo byte) = 210 bytes = 1024 bytes
1 MB (mega byte) = 1024 KB = 220 bytes
1 GB (giga byte) = 1024 MB = 230 bytes

Proprietăţi ale entropiei

Entropia, ca orice măsură, este nenegativă


Hnp1,p2,,pn0 (1.4)

p p
Dacă i 1şi k 0pentru k  i şi 1 k  n, atunci:
Hnp1,p2,,pn0
În situaţia în care un eveniment este sigur, celelalte sunt imposibile; deci nu există
nici o incertitudine şi informaţia medie este nulă.

Entropia satisface inegalitatea:


Hnp1,p2,,pn Hnn1 ,n1 ,,n1  log2 n (1.5)
 Dacă toate evenimentele sunt egal probabile entropia este maximă şi informaţia
medie creşte logaritmic cu numărul de evenimente n. Numărul n de evenimente
independente semnifică varietatea sistemului, adică numărul său de grade de
libertate.

1.2. Noţiunea de sistem. Sistem cibernetic.


[BCB82], [SCA97a], [SCA97b]

Conceptele şi metodele specifice teoriei generale a sistemelor îşi găsesc o largă


aplicabilitate în diverse domenii ale teoriei şi practicii economice.
Concepţia sistemică oferă bazele unei abordări integrale a fenomenelor cercetate,
tratând întregul ca o entitate unitară şi nu ca o simplă alăturare de elemente
componente.
Viziunea sistemică permite evidenţierea unor determinări calitative pe care nu le
posedă nici una din componente luate separat.
Conceptul de sistem apare în filosofia antică greacă. Aristotel (384-322 î.Hr.)
afirmând că „întregul este mai mult decât suma părţilor”, dă o primă definiţie
noţiunii de sistem, care se va dezvolta şi va evolua timp de peste două mii de ani,
pentru a ajunge la forma actuală de abia la începutul secolului XX.
Biologul austriac Ludwig von Bertalanffy (1901-1973) publică între anii
19281950 o serie de lucrări punând bazele teoriei generale a sistemelor (TGS).
Bazele informaticii economice 11

Conform lui L. von Bertalanffy „sistemul este format dintr-o mulţime de elemente
aflate într-o interdependenţă neîntâmplătoare”.

Definiţia 1.2. Prin sistem se înţelege orice secţiune a realităţii în care se identifică
un ansamblu de fenomene, obiecte, procese, concepte, fiinţe sau grupuri,
interconectate printr-o mulţime de relaţii reciproce, precum şi cu mediul
înconjurător şi care acţionează în comun în vederea realizării unor obiective bine
definite.

Dacă un sistem poate fi descompus în minimum două părţi, în care se pot


identifica intrări şi ieşiri, astfel încât ieşirile unei părţi să constituie intrări pentru
cealaltă parte, aceste părţi se numesc subsisteme.
Între elementele (subsistemele) unui sistem există interacţiuni sau conexiuni
(legături endogene). Un sistem poate stabili conexiuni externe (legături exogene)
cu alte sisteme sau elemente din mediul înconjurător.
Structura sistemului reprezintă ansamblul format din elementele (subsistemele)
unui sistem şi conexiunile interne ale acestora. Structura unui sistem asigură
coerenţa lui internă şi stabileşte limitele sistemului.
Starea sistemului este dată de mulţimea caracteristicilor sistemului măsurată la un
anumit moment de timp. Starea reprezintă o măsură a evoluţiei sistemului la
momentul t.
t
Starea iniţială este starea sistemului la momentul 0 , un moment arbitrar ales ca
moment iniţial.
t
Starea finală este starea sistemului la momentul n considerat ca moment final.
Traiectoria de evoluţie a sistemului este definită de mulţimea stărilor
intermediare ale sistemului cuprinse între starea iniţială şi starea finală (dacă
există).
Comportamentul general al sistemului este un ansamblu rezultat din
comportamentul intern (modificarea stării sistemului datorită factorilor interni) şi
comportamentul extern (modificarea stării în urma acţiunii unor perturbaţii
externe).
Principalele concepte prezentate în definirea sistemului general se identifică la
nivelul firmei astfel:
elementele sunt maşinile, utilajele, mijloacele de transport, clădirile, oamenii etc.;
conexiunile sunt date de legăturile (fluxurile) materiale, monetare, umane şi
informaţionale care se stabilesc între elementele (subsistemele) firmei sau cu
sisteme aflate în mediul înconjurător (furnizori, beneficiari, bănci, guvern ş.a.);
starea sistemului este reprezentată de valorile variabilelor de nivel: producţia,
stocurile, capitalul, numărul de personal, volumul afacerilor ş.a.;
traiectoria de evoluţie a firmei este dată de succesiunea de stări de-a lungul unei
perioade de timp; de exemplu traiectoria de evoluţie poate fi analizată între starea
iniţială, ceea de la începutul anului şi terminând cu starea finală, cea de la sfârşitul
anului respectiv;
comportamentul general al firmei este evidenţiat de forma traiectoriei de evoluţie
şi poate fi monotonă (crescătoare, descrescătoare, constantă), oscilantă (amortizată,
explozivă sau cu amplitudine constantă) sau haotică. Acest comportament este
influenţat de comportamentul intern (productivitatea, funcţionarea maşinilor şi
utilajelor, decizia managerială ş.a., conduc la variaţii ale volumului producţiei şi
12 Curs pentru învăţământ la distanţă

stocurilor), precum şi de comportamentul extern modificarea stării firmei se poate


datora unor cauze externe: cererea pe piaţă, concurenţa, livrările furnizorilor,
falimentul unor bănci ş.a.).

Conceptul de „cutie-neagră” (black-box) abordează comportamentul sistemului


prin prisma intrărilor şi ieşirilor, făcând abstracţie de procesele sale interne (figura
1.2).
x S y

Figura 1.2
Transformarea vectorului de intrare X în vectorul de ieşire Y se realizează cu
ajutorul funcţiei de transformare :
Y X 

Observaţie. Sistemul este caracterizat de ieşiri care răspund intrărilor în sistem,


dar ieşirile sunt izolate de intrări şi nu au nici o influenţă asupra acestora.
Rezultatele acţiunii trecute nu comandă acţiunea viitoare.
Sistemul devine cibernetic atunci când apare reglarea (conexiune inversă,
feedback) (figura
x 1.3). y
S

Figura 1.3

În cazul în care apar diferenţe între vectorul ieşirilor (Y) şi vectorul obiectivelor
propuse (Z), mecanismul de reglare va genera mărimea de reglare x în scopul
de a aduce ieşirile (Y) la nivelul obiectivelor stabilite. Din relaţia Z xx se
poate determina vectorul de reglare x .

Se deosebesc două clase de sisteme cu conexiune inversă:


Sisteme cu conexiune inversă negativă – au un obiectiv, iar evoluţia lor este o
consecinţă a neatingerii acestui obiectiv; rolul conexiunii este de a echilibra
anumite mărimi, limitând cauzalitatea intrare – ieşire. De exemplu: un ceas şi
posesorul lui, formează un sistem cu conexiune inversă negativă când ora indicată
de ceas este comparată cu ora exactă, care este luată ca obiectiv, iar ceasul este
potrivit pentru a elimina erorile.
Sisteme cu conexiune inversă pozitivă – ieşirea influenţează intrarea în sensul
accentuării cauzalităţii intrare – ieşire: aceasta generează procese de creştere, în
care rezultatul unei acţiuni produce o amplificare continuă a acţiunii. De exemplu:
beneficiile obţinute sunt investite în dezvoltare: rezultă un spor de producţie, de
beneficii etc.

Termenul de cibernetică (în greceşte kybernetes = navigator, cârmaci) a fost


utilizat prima oară de matematicianul american Norbert Wiener (1894-1964) în
titlul cărţii sale „ Cibernetica, sau comanda şi controlul la fiinţe şi maşini” apărută
în 1948.
Bazele informaticii economice 13

Ideea de bază de la care a pornit Norbert Wiener a fost aceea că toate sistemele de
comandă şi control (sistemele de conducere), indiferent de natura lor, au o structură
principială unică, constând din existenţa a două legături între sistemul de conducere
şi sistemul condus: o legătură directă prin care se transmit comenzile şi deciziile de
la sistemul de conducere către sistemul condus şi o legătură inversă (feedback) prin
care se transmit informaţiile de urmărire şi control de la sistemul condus spre
sistemul de conducere (figura 1.4).

Notă. Unele dintre ideile ciberneticii au fost enunţate încă din anul 1938 de
legătură
medicul român Ştefan Odobleja, directăsa publicată la Paris „Psychologie
în lucrarea
consonnantiste”.

Program de Sistem de Intrări Sistem Ieşiri


conducere conducere condus

legătură inversă

Figura 1.4

Termenul de cibernetică economică apare pentru prima oară în lucrările lui V.


Nemcinov, O. Lange, G. Grenievski şi Şt. Beer. În lucrarea sa „Introducere în
cibernetică economică”, economistul polonez Oskar Lange arată că cibernetica
economică analizează economia, structura şi funcţionarea părţilor sale componente
ca sisteme, în care au loc procese de conducere bazate pe mişcarea şi transformarea
informaţiei.

Proprietăţile sistemelor cibernetice se împart în două clase mari:


proprietăţi general sistemice;
proprietăţi specifice cibernetice.

PROPRIETĂŢI GENERAL SISTEMICE

A1. Sistemul cibernetic este un SISTEM DINAMIC. Structura şi/sau comportamentul


sistemului cibernetic se modifică în timp ca urmare a acţiunii unor perturbaţii
externe sau ca efect al unor cauze interne.

A2. Sistemul cibernetic este un SISTEM DESCHIS. Un sistem deschis este


caracterizat de faptul că are conexiuni neneglijabile cu alte sisteme din mediul
ambiant. Aceste conexiuni sunt de două tipuri, în raport cu direcţia lor: intrări în
sistem şi ieşiri din sistem.

A3. Sistemul cibernetic este un SISTEM DE DIMENSIUNI MARI. Un sistem mare este
caracterizat de numărul mare al elementelor componente şi de varietatea legăturilor
dintre acestea.
14 Curs pentru învăţământ la distanţă

A4. Sistem cibernetic este un SISTEM COMPLEX. Complexitatea este dată de


dimensiuni, de numărul conexiunilor dintre elemente, de intensitatea acestora, de
costul realizării şi întreţinerii sistemului respectiv.

PROPRIETĂŢI SPECIFIC CIBERNETICE.

Aceste proprietăţi constituite principiile generale ale organizării şi funcţionării


sistemelor cibernetice.
B1. LEGEA VARIETĂŢII NECESARE (Ross Ashby)
„Varietatea la ieşirea (outputul) unui sistem poate fi modificată doar printr-o
varietate suficientă la intrarea (inputul) acestuia”.

Comentariu. Constrângerea apare ca o relaţie dintre două mulţimi de obiecte


(elemente, subsisteme) care determină reducerea varietăţii dintr-o mulţime datorită
varietăţii din cealaltă mulţime. Intensitatea unei constrângeri este cu atât mai mare
cu cât ea determină o reducere mai mare a varietăţii. Constrângerile iau de regulă
forma legilor. Orice lege a naturii reprezintă o constrângere, întrucât ea este un
invariant al sistemelor din natură, care limitează varietatea fenomenelor naturale. În
sistemele economice legile au caracter mai general, deci constrângerile sunt mai
slabe.
Gradele de libertate asociate unui sistem exprimă raportul dinamic dintre varietate
şi constrângere – cu cât numărul de grade de libertate este mai mare, cu atât
varietatea acestuia este mai mare şi în consecinţă, constrângerea la care este supus
sistemul este mai mică.

B2. LEGEA CONEXIUNILOR INVERSE (N. Wiener)


„Orice sistem cibernetic conţine cel puţin o buclă inversă (feedback)”.
Comentariu. O buclă feedback este un circuit închis de relaţii între diferite
variabile care definesc un sistem. Orice modificare între anumite limite, a unei
variabile ce intervine în acest circuit, determină un lanţ de reacţii care în final
realizează modificarea din nou a variabilei iniţiale. Sistemul cibernetic îşi asigură
supravieţuirea şi integritatea o anumită perioadă de timp cu ajutorul structurii de
feedback existente în procesele de autoreglare. Cunoaşterea şi reprezentarea
structurii buclelor feedback dintr-un sistem reprezintă o modalitate de a reflecta
conexiunile interne şi/sau externe, precum şi principalele fluxuri prin care aceste
conexiuni determină modificări în sistem

B3. PRINCIPIUL SINERGIEI (Hacken)


”Efectul total al interacţiunilor şi interdependenţelor dintr-un sistem este neaditiv
în raport cu efectele locale”.

Comentariu. Termenul de sinergie (în greceşte sunergia = cooperare) defineşte


(conform dicţionarului Larousse) asocierea mai multor acţiuni care conduc la un
efect unic cu economie de mijloace.
Fie S un sistem format din n subsisteme s1,s2,,sn. Atunci:

n
ESS  Wsi s1,s2,,sn (1.6)
Bazele informaticii economice 15

i1

unde:
ESS - efectul sinergic integral al sistemului S ;
s
Ws - efectul sinergic al subsistemului i determinat prin funcţionarea
sa izolată;
Δ(s1, s2,..., sn) - efectul sinergic determinat de funcţionarea interdependentă a
subsistemelor sale componente. Δ(s1, s2,..., sn) poate fi o valoare
pozitivă sau negativă, adică efectul sinergic poate avea un efect
complementar pozitiv determinând o amplificare a efectului
integral sau negativ, micşorând efectul integral.

În sistemul economice reale există posibilitatea utilizării favorabile a efectelor


sinergice dacă sunt orientate în aşa fel încât să determine amplificarea efectului
total.

B4. PRINCIPIUL COMPLEMENTARITĂŢII EXTERNE


„Orice sistem cibernetic constituie un element (subsistem) al cel puţin unei bucle
feedback dintr-un sistem cibernetic de ordin superior”.

Comentariu. Acest principiu arată că orice sistem cibernetic este un subsistem al


unui alt sistem cibernetic de ordin superior. Orice sistem cibernetic poate fi analizat
ca sistem izolat doar în mod formal, el fiind, prin intermediul intrărilor şi ieşirilor
sale în interacţiune cu alte sisteme cibernetice.

B5. LEGEA ENTROPIEI NEGATIVE


„În sistemele cibernetice există tendinţa ca sintropia informaţională să crească şi
entropia informaţională să scadă”.
Comentariu. Conceptul de sintropie reprezintă tendinţa de creştere a ordinii. În
sistemele cibernetice organizarea şi funcţionarea subsistemelor componente ca şi a
întregului sistem se pot considera dependente de cantitatea de informaţie existentă:
cu cât entropia informaţională este mai mică cu atât cantitatea de informaţie
acumulată este mai mare şi deci, sintropia informaţională creşte. Sistemele
cibernetice au proprietatea că îşi pot păstra şi chiar mări gradul de organizare pe
măsură ce acumulează şi utilizează informaţia existentă în mediul înconjurător.

În economia reală există o mare diversitate de sisteme care au proprietăţile


sistemelor cibernetice. După funcţia îndeplinită de sistem în cadrul economiei
naţionale avem:
sistemul cibernetic al producătorului;
sistemul cibernetic al consumatorului;
sistemul guvernamental (sectorul public);
sistemul relaţiilor externe (sectorul extern).

De exemplu, sistemul cibernetic al producătorului are ca funcţie esenţială


formarea ofertei agregate pe piaţa bunurilor şi serviciilor, precum şi cererea pe
piaţa factorilor de producţie (figura 1.5).
16 Curs pentru învăţământ la distanţă
Piaţa bunurilor şi
serviciilor
Venit Oferta de
total Preţurile produselorproduse
Sistemul cibernetic
Inputuri outputuri
al producătorilor
Cererea de
Serviciile Preţurile factorilor factori de
factorilor
Piaţa factorilor de producţie
producţie

Figura 1.5 Sistemul cibernetic al producătorului ([SCA97a])

Sistemul guvernamental (Guvernul sau Sectorul public) constituie un sistem cu


un rol special de reglare şi control al activităţii economice generale.
Guvernul propune şi creează cadrul general necesar desfăşurării activităţii
celorlalte sisteme cibernetice, stabileşte norme de comportament pentru acestea,
dar realizează şi anumite activităţi care nu pot fi îndeplinite de loc sau în mod
eficient de nici un alt sistem cibernetic (de exemplu lucrări de interes naţional:
sistemul de autostrăzi, porturi, aeroporturi etc.).
Pentru a-şi exercita aceste funcţii, Guvernul percepe de la agenţii economici
producători şi consumatori impozite şi taxe, care constituie venitul său.

Bunuri pentru Piaţa bunurilor şi Cererea de bunuri şi consum serviciilor servicii pt.
consum guvernamental Preţurile produselor guvernamental
Impozite şi taxe Sistemul Plăţi transferabile guvernamental
Împrumuturi Cererea de bani
guvernamentale Rata dobânzii pentru acoperirea deficitului
Piaţa financiară
Figura 1.6 Sistemul guvernamental ([SCA97a])

El realizează cheltuieli guvernamentale pentru produse şi servicii de interes public


(educaţie, sănătate, apărare ş.a.), dar poate şi transfera o parte din venituri direct
agenţilor economici sau indivizilor sub forma de plăţi nereturnabile (plăţi
transferabile).
Bazele informaticii economice 17

1.3. SISTEMUL INFORMAŢIONAL


[JOR95], [KOH90], [LIX94], [NIR96], [OPR99], [POP86]

În structura oricărei organizaţii (firme) se pot identifica trei sisteme corelate între
ele (figura 1.7):

S
i
s
t
e
m
u
l
d
e
c
i
z
i
o
n
a
l
Sistemul Sistemul
informaţional operaţional
Figura 1.7 Sistemele organizaţiei

Sistemul operaţional (condus, de execuţie) cuprinde toate activităţile firmei legate


de producţie, căutare de noi clienţi etc., în general toate activităţile de execuţie
pentru realizarea obiectivelor fixate de sistemul decizional.
Elementele sistemului sunt constituite din: mijloace umane (personalul cu
responsabilităţi exacte în execuţia sarcinilor) şi mijloace materiale (maşini, linii de
producţie, calculatoare etc.).
Sistemul decizional (de conducere) constă din mulţimea centrelor unde se
analizează informaţiile şi se elaborează deciziile. Regăsim la acest nivel deciziile
strategice şi tactice:
Pe termen mediu şi lung (de exemplu, având ca obiective: creşterea cotei de piaţă,
modificarea gamei de produse commercialization etc.);
pe termen scurt (obiectivele pot fi de exemplu: lansarea unei campanii de
prospectare a clienţilor în vederea promovării unui nou model, modificarea politicii
de aprovizionare etc.)
Elementele sistemului sunt: mijloacele umane (persoanele din firmă cu
responsabilităţi în luarea deciziilor) şi mijloace materiale (calculatoare, sisteme
interactive în sprijinul luării deciziei bazate pe modele matematice etc.)
Sistemul informaţional asigură legătura în ambele sensuri între sistemul
operaţional şi cel decizional. Pe de o parte pune la dispoziţia sistemului decizional
toate informaţiile necesare luării deciziilor. Aceste informaţii provin din sistemul
operaţional şi mediul înconjurător (exterior organizaţiei). Pe de altă parte permite
18 Curs pentru învăţământ la distanţă

transmiterea informaţiilor şi a deciziilor luate la nivelul sistemului de conducere,


sistemului operaţional sau factorilor interesaţi din mediul înconjurător.

În schema din figura 1.8, se observă caracterul central al sistemului


informaţional şi rolul lui de interfaţă cu mediul înconjurător.

Definiţia 1.3. Sistemul informaţional al unui organism economic reprezintă


ansamblul informaţiilor (utile sau nu, structurate sau nu, formale sau informale),
canalelor de circulaţie, procedurilor (regulilor de gestiune) şi mijloacelor de tratare
a informaţiilor din cadrul respectivului organism.
Sistemul informaţional asigură culegerea, prelucrarea, păstrarea şi transmiterea
informaţiilor necesare luării deciziilor de către sistemul de conducere, în scopul
realizării funcţiilor conducerii asupra sistemului condus.

Legăturile şi circulaţia informaţiilor în sistemul informaţional, care definesc fluxul


informaţional, sunt strâns legate de strâns legate de structura celorlalte două
sisteme (sistemul de conducere şi sistemul condus).
Dimensiunea sistemului informaţional este determinată de complexitatea şi modul
de organizare a celorlalte două sisteme, de obiectivele urmărite şi de resursele
existente în unitatea economică.
Poziţia de intermediar a sistemului informaţional face ca obiectivul principal al
acestuia să fie asigurarea unei cuplări dinamice a sistemelor conducător şi condus,
prin realizarea tuturor legăturilor directe şi inverse între ele, în condiţiile unui
mediu în permanentă evoluţie.
Firma este un sistem cibernetic, având cu mediul înconjurător schimburi sub
forma fluxurilor materiale, de personal, monetare şi informaţionale. Natura precisă
Bazele informaticii economice 19

a fluxurilor schimbate cu mediu depinde de scopurile finale ale firmei şi de


opţiunile strategice luate (de exemplu: gama de produse, pieţe deservite, canale de
distribuţie, alegerea tehnologică, structura financiară etc.).
Fiecare din cele trei mari categorii de fluxuri: materiale, de personal şi monetare
 este tratat în de
subsistemul interiorul
controlsistemului
şi gestiunefirmă de subsisteme care asigură funcţii specifice.
strategică.
Se disting următoarelePieţesubsisteme
financiare(figura 1.9);
subsistemul logistic şi de producţie;
împrumuturi
subsistemul de marketing; rambursări
subsistemul financiar-contabil;
plăţi subsistemul încasări
subsistemul de personal;
financiar-contabil
facturi facturi

clienţi
comenzi comenzi
subsistemulsubsistemul de control logistic
furnizori

livrări şi de şi gestiune strategică producţie livrări

studii pro
subsistemul de subsistemul de
personal moţionale
marketing
(resurse umane)

plecări observaţii – studii


angajări
piaţa forţei de  concurenţa
muncă  tehnologia
 legislaţia
 evoluţia culturală

Figura 1.9. – Sistemul firmă şi principalele sale subsisteme


Cele cinci subsisteme sunt în interacţiune şi au nivele proprii de reglare, care corespund nivelelor
ierarhice. La primele patru subsisteme (logistic şi de producţie, financiar-contabil, marketing şi
personal) se disting:
nivelul tranzacţional unde se efectuează operaţii elementare;
nivelul operaţional unde se efectuează operaţii curente, putând să intervină un prim
nivel de decizie.
În cadrul subsistemului de control şi gestiune strategică întâlnim:
nivelul tactic corespunde activităţii de control;
nivelul strategic unde se iau decizii pe termen lung sau care angajează global firma.
20 Curs pentru învăţământ la distanţă

Analizând prin prisma teoriei informaţiei, se poate afirma că sistemul


informaţional al unei firme poate conduce la scăderea entropiei şi creşterea
gradului de organizare.
Cu cât se obţin mai multe informaţii despre stările şi modul de manifestare a
elementelor sistemului, cu atât nedeterminarea sa este mai mică. Acest proces de
„distrugere” a entropiei unui sistem prin cunoaşterea sa, se numeşte proces de
negare a entropiei, iar cantitatea de entropie distrusă se numeşte negentropie.
Rezultă că mărimea entropiei diminuate prin procesul cunoaşterii reprezintă
tocmai cunoştinţele noi obţinute despre sistem, deci cantitatea de informaţii
rezultată din procesul cunoaşterii.
Numărul evenimentelor independente semnifică varietatea sistemului, adică
numărul său de grade de libertate. Varietatea este un concept de bază al
ciberneticii, având rolul de a face legătura cu teoria informaţiei prin legea:
„entropia maximă a unui sistem este logaritmul varietăţii sale”.
Domeniul de definiţie al entropiei 0, max este variabil, în funcţie de numărul
H

stărilor posibile ale elementelor sistemului. Această variaţie a domeniului de


definiţie provoacă greutăţi în compararea mărimii entropiei, respectiv a cantităţii de
informaţii conţinută în două sau mai multe sisteme ce diferă ca număr de stări ale
elementelor. Pentru înlăturarea acestui inconvenient se determină o mărime relativă
a entropiei:

HX 
Hr X  HmaxX  (1.7)

care va lua valori în intervalul [0,1].

Faţă de entropia relativă se poate determina mărimea:


X1 HrX (1.8)

care reprezintă ponderea cantităţii de informaţii deţinute despre sistem faţă de


entropia sa în momentul iniţial, când se prezenta sub forma unui sistem complet
necunoscut.

Observaţie: Mărimea X  poarte fi utilizată pentru definirea gradului de


H
organizare a unui sistem. Dacă max = constant, prin creşterea gradului de
organizare se obţine o reducere a entropiei informaţionale.

Perfecţionarea sistemului informaţional se realizează prin raţionalizarea lui, care


cuprinde următoarele aspecte:
sporirea calităţii informaţiei, astfel încât să răspundă cerinţelor enunţate;
circulaţia raţională a informaţiei, prin continuitatea fluxurilor şi asigurarea
legăturilor inverse în reglarea traiectoriei sistemului;
circulaţia economică a informaţiei prin eliminarea paralelismelor de informare, a
prelucrărilor repetate;
construcţia raţională a suporţilor de date primare prin tipizare şi standardizare;
finalizarea informaţiei printr-o decizie sau acţiune;
Bazele informaticii economice 21

asigurarea unităţii sistemului informaţional prin abordarea integrată a metodelor,


tehnicilor şi mijloacelor de tratare a datelor.

Principala modalitate de raţionalizare a unui sistem informaţional, este realizarea


unui sistem informatic.

1.4. SISTEMUL INFORMATIC


[JOR95], [OPR99], [NIR96]

Definiţia 1.4. Sistemul informatic este un ansamblu coerent structurat, format din
echipamente electronice de calcul şi comunicaţie, procese, proceduri automate şi
manuale, inclusiv structurile organizatorice şi personalul care utilizează
calculatorul ca instrument în procesul de prelucrare a datelor.

Sistemul informatic este un sistem informaţional în care operaţiile de culegere,


stocare, prelucrare şi transmitere a datelor se realizează cu calculatorul electronic.
Orice sistem informatic este grefat pe sistemul informaţional la care se referă.

Notă. Datorită dezvoltării informaticii şi tehnologiilor informaţionale, în literatura


de specialitate străină nu se mai face distincţie între cele două concepte: sistem
informaţional – sistem informatic, folosindu-se în literatura anglo-americană
termenul information system, iar în cea franceză système d’information.

Elementele unui sistem informatic sunt:


Resursa fizică (hardware) – este constituită din ansamblul de echipamente pentru
culegerea, transmiterea, prelucrarea şi stocarea informaţiilor.
Resursa logică (software) – cuprinde totalitatea programelor care asigură utilizarea
optimă a hardware-ului (sistemul de operare), precum şi pachetele de programe de
aplicaţii (de exemplu: sistemul de gestiune a bazelor de date, programele de
contabilitate etc.).
Baza de date – constituie un ansamblu de date organizat în fişiere interconectate.
Resursa umană şi cadrul organizatoric – cuprinde personalul de specialitate
(informaticieni), utilizatorii nespecialişti (toate persoanele care utilizează un sistem
informatic) şi cadrul legislativ necesar funcţionării sistemului informatic (de
exemlu: legea contabilităţii, codul fiscal etc.).
Obiectivul principal al oricărui sistem informatic îl constituie asigurarea selectivă
şi în timp util a tuturor nivelelor de conducere cu informaţiile necesare şi reale,
pentru fundamentarea şi elaborarea operativă a deciziilor cu privire la desfăşurarea
cât mai eficientă a întregii activităţi din unitatea economică.
Sistemele informatice au următoarele particularităţi:
au un ciclu de viaţă lung – intervalul de timp de la începerea lucrărilor de realizare
a unui sistem informatic până la introducerea unui nou sistem este mare;
fac apel la o mare cantitate de date – realizarea sistemelor informatice integrate
permite răspunsuri la cele mai variate cerinţe ale conducerii;
sunt folosite de un număr mare de utilizatori – situaţi de cele mai multe ori la
distanţă, lucrul posibil prin utilizarea reţelelor de calculatoare şi a noilor tehnologii
de comunicare;
22 Curs pentru învăţământ la distanţă

utilizează intens aparatul matematic- cercetarea operaţională, analiza factorială,


teoria stocurilor, teoria aşteptării, teoria reînnoirii etc.
îmbină utilizarea procedurilor automate cu procedurile manuale;
datorită schimbărilor frecvente ale cerinţelor utilizatorilor, sistemul informatic
trebuie să fie prevăzut încă din faza de proiectare cu posibilităţi rapide şi simple de
modificare;
sunt costisitoare – datorită resurselor materiale pe care le solicită atât în faza de
proiectare cât şi în exploatare. Se apreciază că ponderea componentei software în
cadrul preţului unui sistem electronic de calcul este în creştere continuă, ajungând
la 80-90%.

Clasificarea sistemelor informatice – poate fi făcută în raport cu gradul de


cuprindere al domeniului sistemului informaţional, astfel:

sisteme informatice parţiale – realizează prelucrarea automată a datelor dintr-un


sector de activitate, de regulă cel mai important;
sisteme informatice totale – cuprind toate activităţile informaţionale şi
prelucrează toate datele cu calculatorul electronic; abordează sistemul ca fiind
suma unor subsisteme considerate ca entităţi distincte care deservesc anumite
activităţi, fără a evidenţia legăturile dintre ele; nu sunt recomandabile, deoarece nu
asigură în totalitate cunoaşterea legăturilor de cauzalitate dintre subsisteme şi nu
permit utilizarea cea mai eficientă a capacităţii de prelucrare a calculatorului;
sisteme informatice integrate – abordează global procesul de prelucrare a datelor
din cadrul sistemului informaţional al firmei, reliefând legăturile de cauzalitate
dintre subsistemele acestuia. Se bazează pe principiul prelucrării în toate modurile
utile a datelor primare introduse o singură dată în sistem. Rezultatele acestor
prelucrări vor fi utilizate apoi la toate nivelele de conducere în vederea analizei şi
deciziei.
Structural, un sistem informatic integrat trebuie să cuprindă toate componentele ce
corespund subsistemelor întreprinderii. Modulele sistemului trebuie să asigure
funcţionalităţi specifice: contabilitatea financiară şi de gestiune, planificarea şi
controlul producţiei, gestiunea aprovizionării, vânzarea şi distribuţia,
managementul personalului, managementul calităţii, managementul proiectelor,
mentenanţa echipamentelor, managementul serviciilor, controlul întreprinderii
(furnizarea de informaţii pentru cel mai înalt nivel managerial).
Un rol important va trebui să-l aibă analiza concepţiei unitare de realizare a
produsului software – tehnologia, arhitectura, mediul de dezvoltare şi baza de date
folosită. Sunt importante de asemenea flexibilitatea, deschiderea şi
adaptabilitatea. Acestea se referă la posibilităţile oferite de sistemele integrate:
utilizare modulară şi apoi extindere în mai multe etape, adaptabilitate la cerinţele
specifice ale benefiaciarului şi integrarea aplicaţiilor interne ale acestuia.
Deschiderea trebuie înţeleasă şi prin oportunităţile de afaceri ce pot apare prin
utilizarea schimbului electronic de date informatizate şi conectarea la reţeaua
Internet. Un sistem informatic modern trebuie să integreze tehnologia Internet –
Intranet, aceasta contribuind la îmbunătăţirea comunicării în interiorul organizaţiei.
Dezvoltarea rapidă a comerţului electronic şi legat de acesta a cybermarketingului,
va produce mutaţii majore în viaţa întreprinderilor. Fenomenul de globalizare a
economiei are drept consecinţă imediată faptul că activităţile managerială şi
productivă vor trebui să se desfăşoare pe cât mai multe pieţe şi pentru un număr cât
mai mare de clienţi.
Bazele informaticii economice 23

În cadrul oricărei firme se pot pune în evidenţă mai multe nivele de decizie (fig.
1.10).

 La nivel stategic deciziile angajează organizaţia de regulă pe termen lung, ele


necesită un mare volum de informaţii, majoritatea provenind din exterior (mediul
înconjurător). Anumite informaţii necesare luării deciziilor rezultă în urma
prelucrării automate (curbe de evoluţie, histograme, analize statistice, analize
macroeconomice etc.), dar cel mai frecvent prelucrarea informaţiilor se face
manual.

Exemple:
Lansarea unui nou produs –sistemul informatic de gestiune furnizează studii de
piaţă, rapoarte asupra costurilor etc.
Recrutarea personalului cu calificare superioară – sistemul informatic furnizează
CV-urile candidaţilor, rapoarte grafologice, scrisori de recomandare etc.

 La nivel tactic deciziile sunt mult mai frecvente; ele corespund adesea la
adaptarea sistemului la mediul înconjurător sau la încercarea de ameliorare a
funcţionării sistemului.

Exemple:
Alegerea unei noi politici de preţ – sistemul informatic de gestiune furnizează
elementele de contabilitate analitică ale fiecărui produs, rapoartele asupra
sondajelor făcute cu clienţi etc.
Modificarea politicii de aprovizionare – sistemul informatic evidenţiază stările de
lipsă de stoc, o scrisoare a unui furnizor care refuză sau amână livrarea unei
comenzi etc.

Fig. 1.10

 La nivel operaţional deciziile sunt zilnice; ele aparţin frecvent personalului


operaţional şi utilizează în marea lor majoritate prelucrarea automată cu ajutorul
calculatorului. Exemple:
24 Curs pentru învăţământ la distanţă

Editarea unei somaţii către un client debitor – sistemul informatic de gestiune


furnizează automat lista clienţilor debitori. Decizia constă în a valida editarea
automată a somaţiei.
Editarea unei facturi – sistemul informatic de gestiune furnizează informaţii asupra
cantităţilor de produse comandate şi asupra clientului. Operaţia de facturare se
desfăşoară automat.
Înregistrarea intrărilor în stoc – sistemul furnizează bunurile de intrare validate.
Înregistrare se poate face interactiv.

Concluzii:
În general se constată la nivelul organizaţiei o lipsă de informaţii utile şi o mare
cantitate de informaţii inutile. Rolul sistemului informatic este de a filtra din
volumul de informaţii, numai pe acelea utile.
Sistemul informatic dă posibilitatea îmbunătăţirii procesului decizional prin
punerea la dispoziţie a informaţiei necesare la momentul oportun.
Fluiditatea informaţiei şi accesibilitatea contribuie, de asemenea, la îmbunătăţirea
gestiunii organizaţiei. În viziunea bazelor de date informaţia trebuie să fie
accesibilă tuturor celor care o solicită. Acest lucru se realizează prin utilizarea
limbajelor de interogare a bazelor de date.

Prezentaţi organizaţia (firma) în care lucraţi (sau o organizaţie cunoscută) într-o


viziune sistemică prin identificarea principalelor concepte teoretice.
Realizaţi o sinteză a sistemului informaţional / informatic existent în organizaţia
studiată. (Lucrarea va avea maxim 3 pagini A4, redactată în Word, font TNR 12,
line spacing: single).

Să ne reamintim...
„Avantajul competitiv real se obţine de surse invizibile, adică din informaţii sau
circuite informaţionale, resursele vizibile pot fi cumpărate sau copiate rapid, cele
invizibile se acumulează însă în ani” (Hiroyouki Itami).
Cunoştinţa este conform lui Peter Drucker “informaţia care schimbă ceva sau pe
cineva – fie devenind baza unor acţiuni, fie permiţând unei persoane sau
organizaţii
să acţioneze diferit sau mai eficace”.

Rezumat
Cunoştinţa include capacitatea de a evalua informaţia într-un sens sau scop. A
avea cunoştinţe sau abilitatea de a efectua sarcini complexe, presupune mai mult
decât a
avea o listă de instrucţiuni sau informaţii necesare; se cere abilitatea manipulării
informaţiilor sau a sarcinilor.

Optimizarea cunoştinţelor explicite presupune consolidarea şi punerea la dispoziţia


indivizilor de diverse artefacte. Optimizarea cunoştinţelor tacite se realizează prin
Bazele informaticii economice 25

crearea de comunităţi care deţin, pun în comun şi dezvoltă acest tip de cunoştinţe.
Gestiunea activă a bunurilor intelectuale constă în crearea de infrastructuri şi de
procese de management, pentru a reuni artefactele şi comunităţile într-o dinamică
comună, care va susţine crearea, utilizarea şi menţinerea capitalului intelectual.
Această definiţie are meritul de a recunoaşte că demersul KM se adresează atât
cunoştinţelor explicite cât şi celor tacite, precum şi interacţiunii între cele două şi
de a lua în considerare mecanismele care permit acest lucru.

Informaţiile se pot clasifica după mai multe criterii:


natură: cantitative, calitative;
situarea în timp: active, pasive, previzionale;
modul de apariţie: la intervale precizate, la cerere, ocazionale;
conţinut: elementare, complexe, sintetice;
frecvenţă: continue (în timp real), anuale, trimestriale, lunare, zilnice etc.;
nivel: strategic, tactic, operaţional;  origine: interne, externe.

Conceptul de sistem apare în filosofia antică greacă. Aristotel (384-322 î.Hr.)


afirmând că „întregul este mai mult decât suma părţilor”, dă o primă definiţie
noţiunii de sistem, care se va dezvolta şi va evolua timp de peste două mii de ani,
pentru a ajunge la forma actuală de abia la începutul secolului XX.

Sistemul operaţional (condus, de execuţie) cuprinde toate activităţile firmei legate


de producţie, căutare de noi clienţi etc., în general toate activităţile de execuţie
pentru realizarea obiectivelor fixate de sistemul decizional.
Elementele sistemului sunt constituite din: mijloace umane (personalul cu
responsabilităţi exacte în execuţia sarcinilor) şi mijloace materiale (maşini, linii de
producţie, calculatoare etc.).
Sistemul decizional (de conducere) constă din mulţimea centrelor unde se
analizează informaţiile şi se elaborează deciziile. Regăsim la acest nivel deciziile
strategice şi tactice:
pe termen mediu şi lung (de exemplu, având ca obiective: creşterea cotei de piaţă,
modificarea gamei de produse comercializate etc.);
pe termen scurt (obiectivele pot fi de exemplu: lansarea unei campanii de
prospectare a clienţilor în vederea promovării unui nou model, modificarea politicii
de aprovizionare etc.)

Sistemul informatic este un sistem informaţional în care operaţiile de culegere,


stocare, prelucrare şi transmitere a datelor se realizează cu calculatorul electronic.
Orice sistem informatic este grefat pe sistemul informaţional la care se referă.

Obiectivul principal al oricărui sistem informatic îl constituie asigurarea selectivă


şi în timp util a tuturor nivelelor de conducere cu informaţiile necesare şi reale,
pentru fundamentarea şi elaborarea operativă a deciziilor cu privire la desfăşurarea
cât mai eficientă a întregii activităţi din unitatea economică.
Sistemele informatice au următoarele particularităţi:
au un ciclu de viaţă lung – intervalul de timp de la începerea lucrărilor de realizare
a unui sistem informatic până la introducerea unui nou sistem este mare;
fac apel la o mare cantitate de date – realizarea sistemelor informatice integrate
permite răspunsuri la cele mai variate cerinţe ale conducerii;
26 Curs pentru învăţământ la distanţă

sunt folosite de un număr mare de utilizatori – situaţi de cele mai multe ori la
distanţă, lucrul posibil prin utilizarea reţelelor de calculatoare şi a noilor tehnologii
de comunicare;
utilizează intens aparatul matematic- cercetarea operaţională, analiza factorială,
teoria stocurilor, teoria aşteptării, teoria reînnoirii etc.
îmbină utilizarea procedurilor automate cu procedurile manuale;
datorită schimbărilor frecvente ale cerinţelor utilizatorilor, sistemul informatic
trebuie să fie prevăzut încă din faza de proiectare cu posibilităţi rapide şi simple de
modificare;
sunt costisitoare – datorită resurselor materiale pe care le solicită atât în faza de
proiectare cât şi în exploatare. Se apreciază că ponderea componentei software în
cadrul preţului unui sistem electronic de calcul este în creştere continuă, ajungând
la 80-90%.

Test de evaluare a cunoştinţelor


Care sunt indicii de calitate ai informaţiei ?
Ce este entropia informaţională ?
Cum se defineşte unitatea de măsură a cantităţii de informaţie ?
Definiţi şi comentaţi conceptul de Knowledge Management.
Care sunt principalele concepte utilizate în abordarea sistemică ?
Exemplificaţi în cazul sistemului firmă.
Ce se înţelege prin sistem cibernetic şi care sunt principalele
proprietăţi ale unui sistem cibernetic ?
Care este locul şi rolul sistemului informaţional într-o organizaţie ?
Care sunt principalele subsisteme ale sistemului firmă şi ce legături endogene şi
exogene se stabilesc ?
Care este legătura sistem informaţional – entropie ?
Care sunt elementele caracteristice ale unui sistem informatic ?
Cum acţionează sistemul informatic la diferitele nivele de decizie ale unei
organizaţii ?
Ce se înţelege prin sistem informatic integrat.

Unitatea de învăţare 2. ARHITECTURA


CALCULATOARELOR

Introducere
Bazele informaticii economice 27

Înţelegerea arhitecturii calculatoarelor din punct de vedere hardware şi software.


După o descriere succintă a evoluţiei sistemelor de calcul, se prezintă structura
generală a unui calculator tip von Neumann, iar apoi se regăsesc elementele
structurale în analiza unui calculator personal (PC). După structura hardware, se
prezintă conceptele de sistem de operare şi reţea de calculatoare.

Competenţele unităţii de învăţare


După parcurgerea acestei părți studenții vor înțelege următoarele concepte:
structura generală a unui calculator calculatoare personale
sisteme de operare
reţele de calculatoare

Durata medie de parcurgere a primei unităţi de învăţare este de 4 ore.

2.1. SCURT ISTORIC AL SISTEMELOR DE CALCUL


[NIR 96], [PET90], [SPB99]

Primul „calculator” numeric, abacul (numărătoarea), a apărut cu circa 20003000


de ani î.Hr. în China, fiind preluat apoi de Grecia, Roma antică şi celelalte popoare
ale antichităţii. În Rusia este întâlnit sub numele de sciot.
Un exemplu remarcabil de instrument pentru prelucrarea informaţiilor cantitative
este faimosul instrument de navigaţie descoperit în anul 1900 lângă insula
Antikythera (Marea Egee), datând din secolul 1 î.Hr. şi atribuit, de către adepţii
paleoastronauticii, datorită surprinzătoarei sale complexităţi şi marelui număr de
roţi dinţate, intervenţiei unor extratereştri.
De un adevărat progres al calculatoarelor nu poate fi vorba înainte de generalizarea
sistemului de numeraţie arab care înlocuieşte în Europa sistemul roman la
începutul epocii Renaşterii (secolul XV).
Un impuls decisiv în răspândirea şi perfecţionarea maşinilor de calcul l-a
constituit, abia în secolul al XVII-lea, avântul general al comerţului şi
manufacturilor, în urma căruia volumul operaţiilor contabile a crescut considerabil.

În anul 1617 John Neper (matematician scoţian, care a introdus în 1614 noţiunea
de logaritm), crează un dispozitiv de calcul care permite înlocuirea operaţiilor de
înmulţire şi împărţire prin adunare şi scădere.

În anul 1621 Wiliam Oughtred inventează rigla de calcul, bazată pe logaritmi.

Blaise Pascal (1623 –1662), filosof, matematician şi fizician francez, construieşte


în 1642 o maşină de calcul cu roţi dinţate, în funcţionarea căreia apar principii ce
aveau să fie aplicate frecvent la viitoarele dispozitive de calcul: transport automat
de la ordine inferioare la ordine superioare, conceptul de complement şi altele.

Gottfried von Leibniz (1646-1716), matematician şi filosof german, adaptează în


1671 maşina lui Pascal pentru a putea efectua înmulţiri şi împărţiri prin adăugarea
de noi dispozitive. Leibniz intuieşte avantajul sistemului de numeraţie binar pentru
a descrie fenomenele cu două stări stabile. Maşina de calcul realizată de Leibniz a
28 Curs pentru învăţământ la distanţă

fost numită aritmometru şi a cunoscut de-a lungul timpului mai multe perfecţionări
( de la acţionarea manuală la cea electrică), sub următoarele forme:
maşini de casă pentru magazine;
maşini de calcul mecanice, acţionate manual, realizând afişarea rezultatelor prin
intermediul unor tamburi (principiul odhner utilizat şi la realizarea contoarelor de
energie, apă, kilometrajul mecanic al autovehiculelor etc.);
maşini de calcul electromecanice bazate tot pe principiul mecanic al roţilor odhner,
dar alimentate electric.

Joseph Marie Jacquard (1752-1834) construieşte în 1804 o maşină de ţesut la


care comanda operaţiilor era realizată prin cartele perforate.

Matematicianul britanic Charles Babbage (1792-1871) a realizat împreună cu


asistenta sa Ada Augusta de Lovelace (1815-1852), fiica poetului englez Byron, în
1834 proiectul unei maşini analitice, la care se regăsesc toate principiile de bază ale
unui calculator electronic modern. Dintre acestea amintim:
introducerea datelor şi programelor pe cartele perforate;
posibilitatea de memorare;  existenţa unui dispozitiv de calcul;
existenţa unui dispozitiv de ieşire.

În anul 1889 statisticianul american Hermann Hollerith (1860-1929) brevetează


cartela cu codificare binară, care va fi folosită la prelucrarea datelor obţinute cu
ocazia recensământului populaţiei din 1890, din S.U.A.
Hollerith este fondatorul firmei de calculatoare electromecanice, Tabulating
Machine Corporation (1896), care va deveni din 1924, IBM (International
Business Machine Corporation), cea mai mare companie de calculatoare pe plan
mondial.

Creşterea în continuare a nevoilor de prelucrare a informaţiilor a dat impulsul


hotărâtor pentru realizarea unui calculator mai rapid şi mai puternic. La
Universitatea Harvard, în 1944, sub conducerea lui Howard Aiken, era terminat
calculatorul MARK I, primul la care tradiţionalele roţi dinţate au fost înlocuite cu
dispozitive mai moderne, în acest caz cu relee electromagnetice.
Cel de-al doilea război mondial a accelerat cercetările în domeniu, s-au alocat
sumele necesare şi s-au format mai multe echipe de cercetare.
În 1941, germanii au realizat prin Konrad Zuse, două maşini Z3 şi Z4, care
funcţionau pe bază de program şi puteau executa calcule.
Englezii au realizat calculatorul COLOSUS, cu ajutorul căruia a fost descifrat în
1943 codul german ultrasecret ENIGMA.

În anii 1930-1942, John Atanasoff de la Iowa State College, împreună cu un


student al său, Clifford Berry au început să construiască primul calculator
electronic, bazat pe circuite logice realizate cu tuburi electronice (tubul electronic
fusese inventat în 1904 şi era utilizat în radio şi televiziune). După moartea lui
Atanasoff în 1942, proiectul calculatorului ABC (Atanasoff-Berry Computer) a fost
abandonat.
Bazele informaticii economice 29

Ideile acestui proiect sunt continuate de J.W. Mauchley şi J.P. Eckert la


Universitatea din Pennsylvania, terminând în 1946 primul calculator electronic
ENIAC (Electronic Numeric Integrator and Computer). Calculatorul conţinea
18000 de tuburi electronice, 7500 rele, 7 milioane de rezistenţe şi multe alte piese.
Cântărea 30 de tone, ocupa 145 m 2 şi realiza 5000 de adunări pe secundă. O ultimă
greutate care trebuia învinsă era aceea că ENIAC avea 6000 de comutatoare a căror
manevrare în vederea programării devenea foarte complicată.

Matematicianul John von Neumann (1903-1957) formulează într-un raport din


1946 principiile care ar trebuie să stea la baza construcţiei calculatoarelor:
necesitatea unei componente specializate destinate calculului;
execuţia secvenţială a operaţiilor;
pentru a asigura elasticitatea şi o relativă universalitate se impune o distincţie între
instrucţiunile necesare rezolvării unei probleme particulare şi controlul general
asupra acestor instrucţiuni;
existenţa unei componente numită memorie pentru instrucţiunile şi datele necesare
rezolvării problemei (memoria internă);
existenţa unei componente care să „ţină minte permanent” (memoria permanentă);
posibilitatea de trecere în ambele sensuri de la memoria internă la cea permanentă.
În rezumat, structura calculatorului a fost împărţită în cinci părţi principale:
unitatea centrală
unitatea de intrare
unitatea de ieşire
memoria de lucru
memoria permanentă
Aceste principii constructive sunt aplicate pentru prima dată la calculatoarele:
EDSAC (Electronic Digital Sequential Automatic Computer), realizat la
Universitatea din Cambridge – Massachusetts (1949);
UNIVAC – I (Universal Automatic Computer), fabricat de firma Sperry Rand
(1951), este primul calculator destinat comercializării;  EDVAC la Universitatea
din Princeton (1952).

Datorită principiilor constructive elaborate de von Neumann, calculatoarele


electronice ale primelor patru generaţii vor fi denumite calculatoare von
Neumann.

În funcţie de componenta electronică de bază, calculatoarele au înregistrat mai


multe generaţii (periodizarea este relativă):

Generaţia 1 – cuprinde calculatoarele construite între 1946-1958. Au drept


componentă de bază tubul electronic, utilizează sistemul de numeraţie binar şi
logica booleană, iar programarea se făcea în limbaj de asamblare. Sunt
caracterizate prin volum mare şi fiabilitate redusă. Capacitatea memoriei interne
era de 2 KB, iar viteza de prelucrare era de 10 instrucţiuni pe secundă.

Generaţia a 2-a - cuprinde calculatoarele construite între 1959-1963, la care sau


folosit tranzistorii. În 1956, W. Shockley, J. Barden şi W.H.Brattain primeau
premiul Nobel în fizică pentru inventarea tranzistorului. Această descoperire care a
revoluţionat electronica a fost făcută în 1948 în laboratoarele Bell.
30 Curs pentru învăţământ la distanţă

Memoria internă este realizată din inele de ferită, ceea ce-i conferă rapiditate,
fiabilitate mai bună, capacitate de stocare a datelor până la 32 KB. Viteza de calcul
ajunge la 2 x 105 instrucţiuni pe secundă.
Apar echipamentele periferice (cititorul de cartele, imprimanta, banda
magnetică), sunt programate proceduri de interfaţă (drivere) care asigură legătura
dintre dispozitivul de intrare/ieşire, memorie şi unitatea de control şi de calcul
(CPU). Se realizează primele produse software de bază, care vor revoluţiona
programarea: asambloare, linkeditoare, compilatoare etc.

Generaţia a 3-a – cuprinde calculatoarele construite în perioada 1964-1970 şi care


utilizează circuitele integrate. În 1953 Harwick Johnson prezintă patentul pentru
circuite integrate. Un circuit se realizează printr-o tehnologie MOS (Metal-
OxideSemiconductor) şi reprezintă echivalentul unui număr mare de componente
electronice.
În funcţie de capacitate circuitele integrate se împart în:
MSI (Medium Scale Integration), până la 500 de componente;
LSI (Large Scale Integration), peste 500 de componente;
VLSI (Very Large Scale Integration), peste 10.000 de componente.
Calculatoarele de generaţia a 3-a au la bază circuite integrate MSI. Memoria
internă ajunge la 2 MB, viteza de calcul la 5 MIPS (milioane de instrucţiuni pe
secundă). Se dezvoltă limbajele de programare de nivel foarte înalt.

Generaţia a 4-a – cuprinde perioada 1971 – prezent şi implică o serie de progrese


tehnologice şi arhitecturale. Se utilizează microprocesoarele ce conţin circuite larg
integrate (LSI) şi foarte larg integrate (VLSI). Microprocesorul inventat de
Marcian Ted Hoff în anul 1971 a fost o reacţie americană la expansiunea japoneză
pe piaţa calculatoarelor miniaturizate.
Se utilizează memorii externe perfecţionate care permit reducerea timpului de
acces la informaţiile stocate pe suporturi magnetice. Viteza de prelucrare creşte
sensibil, ajungând la 30 MIPS, se generalizează teleprelucrarea şi modul de lucru
interactiv.
Se dezvoltă facilităţile de conectare în reţele de calculatoare, creşte ponderea
implementărilor de sisteme de gestiune a bazelor de date şi apar limbajele de
programare orientate pe obiect.

Generaţia a 5-a – de calculatoare cuprinde perioada după 1990. De fapt începutul a


fost marcat de proiectul japonez lansat în 1981 legat de dezvoltarea inteligenţei
artificiale (AI-Artificial Intelligence).
Proiectul prevede construirea şi implementarea unor sisteme inteligente pentru
procesarea cunoştinţelor (Knowledge Base System). Aceasta presupune existenţa
unei baze de cunoştinţe şi a unui motor inferenţial care să permită prelucrarea
logică, simulând astfel gândirea umană: deducţia şi inducţia ca procese
fundamentale ale raţiunii.

2.2. Structura generală a unui calculator [DOD87], [JOR95], [LIX94]

Un sistem electronic de calcul este alcătuit din două componente:


Bazele informaticii economice 31

sistemul de echipamente (hardware), care reuneşte toate componentele fizice


folosite în culegerea, memorarea, prelucrarea datelor şi transmiterea rezultatelor
prelucrării;
sistemul de programe (software), reprezintă componenta logică şi cuprinde
totalitatea programelor care asigură conducerea, supravegherea, controlul şi
realizarea procesului de prelucrare; dintre elementele software un rol deosebit
revine sistemului de operare.
Indiferent de structura constructivă, de sistemul de operare şi de domeniul de
utilizare, arhitectura calculatoarelor se dezvoltă în jurul următoarelor concepte
funcţionale:
funcţia de memorare;
funcţia aritmetică – logică;
funcţia de comandă şi control; - funcţia de intrare – ieşire.
Unităţile funcţionale se concretizează în componente materiale ce formează
arhitectura calculatorului.
Una din formele de abordare sistemică utilizate în cibernetică o reprezintă metoda
black box (metoda cutiei negre). Astfel la un prim nivel calculatorul se poate vedea
ca o cutie neagră în care se introduc programele şi datele de prelucrat şi de la care
se obţin rezultatele (figura 5.1).

Program Rezultate
Calculatorul
Date electronic

Figura 5.1.

Matematicianul John von Neumann (1903-1957) stabileşte în 1946 principiile


constructive ale viitoarelor calculatoare electronice. Astfel calculatoarele primelor
patru generaţii vor fi denumiteCENTRALĂ
UNITATEA calculatoare tip von Neumann .
Un calculator clasic este compus din (figura 5.2):

Unitatea de
comandă

Date
Unitatea aritmetică şi Memoria
logică Rezultate Centrală

Ansamblul de periferice
32 Curs pentru învăţământ la distanţă

Figura 5.2.

Unitatea centrală – cu rol de prelucrare şi comandă; realizează memorarea


(temporară) şi prelucrarea datelor.
Ansamblul de periferice – permite memorarea datelor (memoria externă),
introducerea datelor şi programelor în calculator şi extragerea rezultatelor.

A. Unitatea centrală este compusă din:


Memoria centrală (internă);
Blocul de calcul (procesorul) este format din:
unitatea de comandă;
unitatea aritmetică şi logică.

1. Memoria centrală (MC)


Rolul memoriei centrale
Memoria centrală (internă sau principală) face parte din unitatea centrală a
calculatorului, păstrează informaţii reprezentând programe ale sistemului şi ale
utilizatorului, datele de prelucrat, rezultatele intermediare şi finale ale prelucrării.

Conţinutul memoriei centrale este redat


în figura 5.3.

Figura 5.3.

Organizarea
Memoria centrală poate fi considerată o succesiune de elemente fizice (celule
elementare) care pot memora o informaţie binară. Un grup ordonat de 8 celule
binare formează un octet (byte). Octeţii sunt numerotaţi crescător începând cu 0.
Numărul asociat fizic fiecărui octet din memoria internă se numeşte adresa
absolută. Cea mai mică unitate adresabilă în memoria centrală este octetul. Prin
specificarea adresei, un octet este precis localizat în memorie. Unui octet i se poate
schimba conţinutul, dar adresa îi rămâne întotdeauna aceeaşi.
Un grup de octeţi consecutivi formează o zonă de memorie. Identificarea unei zone
de memorie se face prin adresa şi lungimea ei. De regulă, adresa unei zone de
memorie este adresa celui mai din stânga octet, iar lungimea este dată de numărul
octeţilor din zona respectivă.

Funcţionarea memoriei centrale


Bazele informaticii economice 33

Este comandată de unitatea de comandă. Cantitatea de informaţie accesibilă la un


moment dat pentru procesor o constituie cuvântul memorie. Operaţiile de citire /
scriere (adresarea memoriei) sunt efectuate prin intermediul a doi regiştri
specializaţi (figura 5.4).

Selecţie memorie RM

Figura 5.4

Registrul de adresă (RA) sau registrul de selectare a memoriei conţine adresa


cuvântului care urmează să fie scris sau citit; dimensiunea lui depinde de
capacitatea memoriei.

Registrul de memorie (RM) conţine informaţia detectată după citire, sau informaţia
care urmează să fie stocată în memorie la adresa indicată de (RA).
Registrul de memorie este o zonă de tranzit obligatorie; are aceeaşi dimensiune cu
cuvântul memorie.

Citirea unui cuvânt memorie – după analiza şi decodificarea adresei cuvântului


(conţinută în RA) informaţia citită este transferată în RM.
Scrierea unui cuvânt memorie – după analiza şi decodificarea adresei cuvântului
(conţinută în RA) informaţia din RM este transferată şi stocată în locaţia selectată.
Caracteristicile memoriei centrale sunt:
capacitatea de memorare, adică numărul maxim de locaţii de memorie adresabile
independent, unitatea de măsura este KB;
timpul de acces (durata ciclului de memorie) este intervalul minim de timp între
operaţii consecutive de scriere sau citire în/din memorie; - dimensiunea cuvântului
memorie.

Clasificarea memoriei interne


Se poate face în funcţie de natura accesului la informaţie. Principalele tipuri de
memorie sunt:
RAM (Random Access Memory) – memorie cu acces aleator pentru citire şi
scriere, volatilă, adică informaţia stocată poate fi ştearsă şi înlocuită cu alta, însă la
oprirea calculatorului, informaţia memorată se şterge; memoria RAM ocupă cea
mai mare parte a memoriei interne.
ROM (Read Only Memory) – memorie pentru citire, nevolatilă şi programabilă
numai de constructor; informaţia pe care o conţine este esenţială pentru calculator
şi de obicei reprezintă componenta de bază a sistemului de operare.
34 Curs pentru învăţământ la distanţă

PROM (Programmable Read Only Memory) – memorie permanentă (nevolatilă),


programabilă o singură dată de utilizator; informaţia este esenţială pentru utilizator,
care o va folosi în mod frecvent..
EPROM (Erasable Programable Read Only Memory) – memorie permanentă
programabilă ce poate fi ştearsă; utilizatorul poate modifica în funcţie de necesităţi,
conţinutul memoriei.

2. Unitatea aritmetică şi logică (UAL)


Rolul unităţilor aritmetice şi logice Execută două funcţii, necesare prelucrării
datelor:
calculul logic: deplasare, funcţii logice;
calculul aritmetic: adunare, scădere.
Calculatorul poate executa aceste operaţii numai dacă primeşte o succesiune de
ordine elementare (instrucţiunile), care reprezintă programul utilizatorului.

Noţiunea de instrucţiune
Instrucţiunea, ca orice informaţie este în prealabil înregistrată în MC. Ne vom
referi la instrucţiunile în limbaj de asamblare care descriu în general o singură
operaţie în cod maşină (de exemplu încarcă un registru cu conţinutul unei locaţii de
memorie, adună la valoarea memorată într-un registru o valoare dispusă în alt
registru sau într-o locaţie de memorie etc.). Acţiunea descrisă de o instrucţiune a
unui limbaj de nivel înalt presupune, de obicei, execuţia unei secvenţe de operaţii
în cod de maşină.
Se numeşte format al instrucţiunii, descrierea conţinutului ordinului elementar dat
calculatorului. Formatul unei instrucţiuni conţine:
codul operaţiei (COP), care indică natura ordinului de executat; - adresa
operanzilor (AOP).
Observaţie. Datele sunt indicate prin adresa lor în MC; aceasta păstrează caracterul
general, independent al programului de valorile concrete ale datelor de prelucrat.

Structura şi funcţionarea UAL


Execuţia unei operaţii logice sau aritmetice se poate face în două moduri:
modul de lucru cu „3 adrese”, presupune cunoaşterea următoarelor elemente:
codul operaţiei, adresa primului operand în MC, adresa celui de-al doilea operand
în MC, adresa locaţiei de memorie unde va fi depus rezultatul. Deci, UAL trebuie
să conţină 3 regiştri, conform schemei (figura 5.5):
Rezultat

C omanda
operaţiei

Opera Opera
nd 1 nd 2

Figura 5.5
Bazele informaticii economice 35

modul de lucru cu „acumulator”, presupune existenţa unui registru acumulator;


acest registru special va conţine, succesiv primul operand, apoi rezultatul. Astfel,
execuţia unei operaţii simple necesită următorii paşi:
Pasul 1. Încărcarea primului operand în registrul acumulator
Pasul2. Execuţia operaţiei între conţinutul registrului acumulator şi al doilea
operand, rezultatul rămânând în registrul acumulator;
Pasul 3. Depunerea conţinutului registrului acumulator în memoria centrală.

Acest mod de lucru este reprezentat în figura 5.6.


Acumulator

Operand 2 Operand 1

Figura 5.6.

3. Unitatea de comandă (UC)


Funcţiile unităţii de comandă sunt:
comandă şi controlează execuţia operaţiilor de calcul în UAL, conform
instrucţiunilor;
determină instrucţiunea care urmează să fie executată după terminarea
instrucţiunii curente;
controlează operaţia de citire din memorie a instrucţiunii următoare; -
controlează operaţiile de introducere/extragere a datelor în/din calculator.

Structura unităţii de comandă (figura 5.7).


Pentru a asigura aceste funcţii, unitatea de comandă conţine doi regiştri esenţiali:
contorul de adrese (program counter (CA)) – controlează derularea secvenţială şi
înlănţuie automat instrucţiunile programului; contorul de adresa conţine adresa
instrucţiunii care urmează să fie executată;
registrul instrucţiune (RI) – conţine instrucţiunea extrasă din memoria centrală.
Unitatea de comandă posedă şi un generator secvenţial care, după analiza codului
operaţiei, dă comenzile necesare pentru execuţia diferitelor faze ale instrucţiunii.
36 Curs pentru învăţământ la distanţă

Funcţionarea unităţii de comandă


se citeşte instrucţiunea de executat, adresa fiind conţinută în contorul de adresă
(CA);
această instrucţiune este transferată din registrul memorie (RM) în registrul
instrucţiune (RI);
codul operaţiei este decodificat şi informaţia este transmisă circuitelor de comandă;
contorul de adrese este incrementat automat, fiind astfel pregătit să adreseze
următoarea instrucţiune;
în funcţie de codul operaţiei este comandată citirea din memorie a operanzilor şi
este iniţiată operaţia de efectuat în unitatea aritmetică şi logică.

Observaţie. Pentru a lansa un program în execuţie unitatea de comandă (UC)


trebuie să cunoască adresa primei instrucţiuni de executat (adresa de start); această
adresă este încărcată în CA. În UC este încărcată întotdeauna instrucţiunea aflată la
adresa precizată de CA.

B. Ansamblul de periferice

Realizează legătura cu mediul exterior, îndeplinind următoarele funcţii:


permite schimbul de informaţii între utilizator şi sistemul de calcul; prin dialogul
utilizator – calculator poate fi supravegheată funcţionarea calculatorului,
introducerea programelor şi datelor, lansarea în execuţie sau întreruperea execuţiei
unui program;
are rolul de memorii auxiliare (externe), putând înmagazina un mare volum de
informaţii.
Performanţele tehnice ale diferitelor tipuri de periferice vizează în general două
aspecte: - capacitatea de înmagazinare a informaţiei;
viteza de transfer a informaţiei.

Ansamblul de periferice conectat la unitatea centrală reprezintă configuraţia unui


calculator electronic. Numărul şi tipul perifericelor ce formează configuraţia unui
calculator constituie o opţiune a utilizatorului. Orice sistem de calcul are în general
o structură modulară, în sensul că o configuraţie poate fi modificată prin adăugarea
de noi dispozitive. În funcţie de necesităţi (volumul datelor de prelucrat, numărul şi
Bazele informaticii economice 37

tipul aplicaţiilor), utilizatorul poate opta pentru o configuraţie adecvată, care să-i
permită rezolvarea problemelor.

2.3. CALCULATOARE PERSONALE


[BVB 97], [JOR95], [LIX94], [NIR96], [SPB99]

Primul microcalculator este construit în Franţa în 1973, la societatea R2E condusă


de André Troung Thi. Se numea MICRAL şi era construit cu microprocesorul
Intel 8008, având o memorie internă de 256 B extensibilă până la 2 KB.
În 1975, în California, Stephen Wozniak (26) şi Steve Jobs (20) construiesc un
calculator numit APPLE I, introducând o dată cu el noţiunea de calculator
personal.
În anul 1980, firma IBM intră în competiţia producătorilor de microcalculatoare şi
realizează primul calculator personal.
Politica firmei de a impune calculatorul IBM PC (Personal Computer) ca un
standard mondial în domeniu este susţinută de o puternică campanie publicitară şi
de publicarea specificaţiilor tehnice. În aceste condiţii, majoritatea firmelor încep
să fabrice calculatoare „compatibile IBM PC”, iar programele de aplicaţii sau de
bază trebuie să aibă acea caracteristică tot mai des folosită de „compatibil PC”.
Problema compatibilităţii se referă la un minim de cerinţe:
Microprocesor de tip INTEL;
Sistem de operare compatibil MS-DOS.

Calculatorul IBM PC era construit cu microprocesorul Intel 8088, memorie internă


de 128 K extensibilă la 640 K, unitate de disc flexibil de 180 K şi ecran monocrom.

Arhitectura standard a unui calculator personal (PC) conţine: microprocesor,


memorie internă, memorie externă, periferice, toate acestea comunicând prin
intermediul magistralelor de comunicaţie (de adresă, de date şi de comenzi). O
schemă generală a unui PC este prezentată în figura 5.8.
38 Curs pentru învăţământ la distanţă

(FD/HD/CD
/DVD)
Figura 5.8

John von Neumann a fost primul care a realizat un computer cu o memorie de


lucru (ceea ce astăzi se numeşte RAM). Dacă aplicăm acest model la un PC actual
vom obţine schema de mai jos:

1. Microprocesorul

Microprocesorul este un circuit integrat complex care poate efectua operaţii


aritmetice şi logice sub controlul unui program. Este componenta principală a
unităţii centrale a calculatorului, specializată pe operaţii de calcul, comandă şi
control. Reprezintă creierul calculatorului.

Microprocesorul
Bazele informaticii economice 39

Microprocesorul controlează întreaga activitate a calculatorului: trimite şi


recepţionează semnalele de control (prin magistrala de control), adresele de
memorie (prin magistrala de adrese) şi datele (prin magistrala de date) de la o
componentă la alta a calculatorului (figura 5.9.)

Rolul microprocesorului este de a executa programele scrise în limbaj maşină,


aflate în memoria internă a calculatorului.
Magistrala de date I
N
T
Microprocesor Memoria E
internă R
F
Magistrala de adrese E
Magistrala de comenzi Ţ
E

Figura 5.9.

Microprocesorul cuprinde mai multe unităţi specializate interconectate. Cele mai


importante sunt: unitatea aritmetică şi logică şi unitatea de comandă şi control.
Structura de bază a unui microprocesor este descrisă în figura 5.10.

Figura 5.10 Schema bloc a unui microprocesor [NIR96]


40 Curs pentru învăţământ la distanţă

UC - unitatea de comandă la nivel „microprogram”; realizează secvenţierea


acţiunilor elementare asociate execuţiei unei instrucţiuni, generează secvenţe
pentru RALU şi semnale de sincronizare spre exterior (comenzi); conţine un
registru de instrucţiuni (RI) în care se aduce codul instrucţiunii curente şi care
comandă în continuare evoluţia automatului pentru execuţia instrucţiunii;
RALU - unitatea aritmetică şi logică şi registrele; execută operaţiuni aritmetice,
logice şi transferuri de date între registre la comanda UC;
UCPG - unitatea de comandă a programelor;
comandă secvenţierea instrucţiunilor extrase din memoria principală
(internă), asociind fiecărei instrucţiuni o secvenţă de microinstrucţiuni care
vor comanda efectiv sistemul;
pentru adresarea datelor şi a instrucţiunilor sunt necesare următoarele registre în
UCPG:
contorul de adresă (CA), ce conţine adresa din memoria internă a instrucţiunii ce
urmează a fi executată;
registrul de adresă (RA), ce furnizează adresa datelor citite/scrise din / în memorie
la execuţia unei instrucţiuni.
BLA, BLD, BLC - blocuri (zone) speciale de memorie distincte adreselor, datelor
şi comenzilor;
DBUS, ABUS, CBUS - magistralele de date, adrese şi comenzi.
BDI - magistrala internă de date.

Un microprocesor este caracterizat de viteza de lucru, capacitatea maximă de


memorie pe care o poate adresa şi setul de instrucţiuni pe care le poate executa.
Viteza de lucru a microprocesorului este determinată de:
frecvenţa ceasului intern;
dimensiunea registrelor interne;
capacitatea magistralei de date; - existenţa şi capacitatea memoriei cache; -
tipul constructiv al microprocesorului.

Ceasul intern este un oscilator ce emite pulsaţii la intervale de timp egale. Toate
activităţile sunt coordonate de aceste pulsaţii periodice emise de ceasul intern.
Ceasul intern nu are nici o legătură cu ceasul sistem care dă timpul curent (ora şi
data), contorizat de memoria CMOS şi care poate fi modificat prin comenzi ale
sistemului de operare.
Frecvenţa cu care sunt generate pulsaţiile se numeşte frecvenţa ceasului intern.
Unitatea de măsură este hertz-ul care are ca multipli kilohertz-ul (1kHZ = 103 Hz),
megahertz-ul (1 MHz = 106 Hz), gigahertz-ul (1 GHz = 109).
Fiecare microprocesor se caracterizează printr-o valoare maximă a frecvenţei de
ceas la care funcţionează. De exemplu, un procesor Intel Celeron poate funcţiona la
2.80 GHz. Dimensiunea registrelor interne şi capacitatea magistralei de date sunt
importante pentru viteza de lucru a microprocesorului. Procesoarele actuale
folosesc registre interne de 32 bits. Cu cât dimensiunea registrelor este mai mare,
cu atât numărul operaţiilor de transfer cu memoria internă este mai mic şi deci
timpul de lucru se micşorează.
De asemenea, cu cât dimensiunea magistralei de date este mai mare, cu atât
volumul de date care circulă pe această magistrală este mai mare, iar viteza
calculatorului creşte.
Dimensiunea magistralei de adrese dă posibilitatea de adresare. Procesoarele
recente dispun de o magistrală de adrese pe 32 bits, ceea ce extinde posibilităţile de
Bazele informaticii economice 41

adresare până la 4 GB memorie RAM, iar dimensiunea magistralei de date este de


64 bits.
În general, magistrala care leagă memoria de procesor nu este suficien de rapidă
faţă de frecvenţa ceasului. Procesorul lucrează în acest caz cu o frecvenţă internă
ridicată, care este frecvenţa efectivă a prelucrărilor, în timp ce frecvenţa externă,
mai mică, corespunde schimburilor de informaţii cu exteriorul. Pentru a evita ca
procesorul să piardă timp aşteptând instrucţiunile sau datele venind de la memoria
volatilă (RAM) se utilizează un mecanism de memorie format dintr-o memorie
ultrarapidă integrată procesorului şi care este rezervată pentru stocarea
intermediară a instrucţiunilor sau datelor. Această memorie cache internă are o
capacitate limitată şi nu trebuie confundată cu memoria cache externă intermediară
între microprocesor şi memoria RAM.
Memoria cache este de tip SRAM (Static Random Access Memory), cu un timp de
access de 12 ns (o nanosecundă este egală cu 10-9 secunde).
Memoria cache se comportă ca o oglindă a memoriei RAM, păstrând o copie a
datelor şi programelor din diverse zone ale memoriei interne. Eficienţa memoriei
cache se măsoară printr-o rată (hit ratio) ce indică numărul cererilor de acces ale
procesorului rezolvate de memoria cache.
Viteza microprocesorului depinde de tipul constructiv şi de firma producătoare.
Printre cele mai performante microprocesoare sunt cele din familia PENTIUM,
produse de firma INTEL. Pentium apărut în 1993 nu mai respectă regula de
denumire I 80x86, având un nume comercial care poate fi protejat din punct de
vedere legal.
Setul de instrucţiuni pe care un calculator le poate executa este în general
caracterizat de tipul microprocesoruluui şi a înregistrat o creştere ascendentă
corespunzătoare dezvoltării procesoarelor.
În realizareaa procesoarelor s-au aplicat două tehnologii diferite: CISC şi RISC.
Tehnologia CISC (Complex Instruction Set Computer) a promovat ideea de a mări
setul de instrucţiuni prin includerea unor instrucţiuni din limbaje de nivel înalt.
Tehnologia RISC (Reduced Instruction Set Computer) constă din implementarea
hard doar a instrucţiunilor simple, urmând ca instrucţiunile complexe să fie
simulate prin programe. Obiectivul arhitecturilor RISC este atingerea unei
instrucţiuni la fiecare bătaie de ceas (pulsaţie), ajungându-se ca viteza
procesoarelor RISC să depăşească de 3 ori viteza procesoarelor CISC.

Memoria internă

Memoria internă face parte alături de microprocesor din unitatea centrală şi


constructiv se compune din circuite integrate.

Memoria ROM conţine informaţii permanente despre operaţiile de bază ale


calculatorului. Acestea sunt informaţii fundamentale pentru orice calculator, cum
ar fi programul de pornire care verifică părţile componente ale calculatorului
înainte de activarea sistemului de operare. În memoria ROM este stocat în primul
rând, programul BIOS (Basic Input Output System), care controlează modul în care
informaţiile sunt apelate sau transferate la monitor, tastatură, unităţi externe de
memorie, memorii RAM şi ROM. Programele din ROM, livrate odată cu
calculatorul de producător, alcătuiesc firmware –ul (un intermediar între software
şi hardware). Se pot diferenţia:
POST (Power On Self Test)
42 Curs pentru învăţământ la distanţă

SETUP-ul, care face legărura cu CMOS-ul


BIOS-ul, care face legătura cu diferitele periferice
BOOT-ul, care apelează sistemul de operare (DOS, OS/2 sau Windows)

Memoria ROM

Memoria RAM oferă stocarea temporară a informaţiilor, creând zona de lucru a


calculatorului.

Memorie RAM

În afara sistemului principal, diverse tipuri de RAM se găsesc şi în alte zone ale
calculatorului avînd diferite utilizări:
memoria cache (prezentată anterior la microprocesor);
memoria – tampon pentru imprimantă (printer buffer) – păstrează datele ce
urmează a fi tipărite până ce imprimanta le poate prelua. În acest mod,
calculatorului i se permite să transmită datele respective şi apoi să continue lucrul
în timp ce imprimanta tipăreşte;
memoria video (video buffer) – permite afişarea rapidă pe monitor a unor imagini
video complexe;
memoria fantomă (shadow RAM) sporeşte viteza de lucru a calculatorului copiind
informaţiile din ROM în RAM. În acest mod informaţiile elementare de intrare /
ieşire sunt citite din RAM, operaţie mult mai rapidă decât citirea din ROM BIOS.
Bazele informaticii economice 43

Duplicarea se realizează prin utilizarea unităţii de gestiune a memoriei (MMU –


Memory Management Unit) încorporată în procesor.
memoria CMOS ( Complementary Metal Oxide Semiconductor) – este o memorie
RAM semipermanentă. Informaţiile depozitate sunt păstrate de către o baterie ce
alimentează non-stop circuitul integrat CMOS. Când bateria se consumă, datele se
pierd şi trebuie reîncărcate sau transferate de pe disc. Memoria CMOS conţine
informaţii esenţiale despre calculator, cum ar fi: memoria disponibilă, tipul
monitorului, mărimea şi tipul fiecărei unităţi de memorie externă, data şi ora
curentă.

Rolul memoriei CMOS


Memoria externă
Are rolul de a stoca în mod permanent volume mari de date şi programe.
Suportul tehnic de date reprezintă mediu material pe care informaţiile sunt stocate.
Acest termen generic cuprinde toate tipurile de memorie externă: hard disk, floppy
disk, bandă magnetică, CD-ROM, DVD, etc.
În configuraţia calculatorului personal există dispozitive ce permit citirea / scrierea,
din/în aceste suporturi tehnice de date (unitatea de hard disk, unitatea de floppy
disk, unitatea CD, unitatea DVD, etc.).

Unitatea de disc fix (hard disk)


Un disc fix (hard disk) este format din unul sau mai multe platane (plates), fiecare
având două feţe; pe fiecare faţă se află câte un cap de citire – scriere. Înregistrarea
magnetică se face pe piste concentrice (tracks), numerotate de la 0 ..n, începând de
la periferice spre centru; pistele cu acelaşi număr de ordine de pe toate feţele
alcătuiesc un cilindru. Pe pistă, înregistrarea datelor se face în mod ordonat pe
grupe de 512 octeţi, numite sectoare.
44 Curs pentru învăţământ la distanţă

Hard-disk

Capacitatea unui disc se poate calcula astfel:

C = nr. feţe x nr.piste / faţă x nr.sectoare / pistă x nr.octeţi / sector

Capacitatea de stocare depinde de densitatea de înregistrare a informaţiei. În cazul


discului hard pentru înregistrarea datelor se utilizează formatul CAV (Constant
Angular Velocity), adică viteza de rotaţie constantă şi deci volumul ocupat de o
informaţie depinde de locul de înregistrare a acesteia pe disc, densitatea de scriere
fiind mai mare în apropierea axului central, deoarece viteza liniară este diferită.
Datorită tehnologiilor actuale tot mai performante, capacitatea de stocare este în
prezent de ordinul GB, iar preţul exprimat în sensul raportului preţ / GB a scăzut
treptat.
Unitatea de disc flexibil (floppy disk)
A fost inventată în laboratoarele IBM din San José în 1967. Dimensiunile dischetei
au evoluat (în sensul micşorării) de la 8 inch la 5.25 inch iar în prezent
configuraţiile calculatoarelor personale prezintă doar unităţi floppy de 3.5 inch ( 1
inch = 2.54 mm). În prezent există tendinţa de renunţare la acest sistem de
memorare.

Unitate de Floppy Disk

3.3. Unitatea de bandă magnetică


Este cunoscută sub numele de streamer. Banda magnetică este un suport
neadresabil de mare capacitate. Se utilizează pentru arhivare, adică păstrarea unor
copii de siguranţă ale unor fişiere mari de date de pe un calculator pe altul.

3.4. Unitatea CD
Discul CD – ROM (Compact Disk Read Only Memory) reprezintă un mediu
performant de stocare a datelor prin mijloace optice. Înregistrarea datelor pe CD se
Bazele informaticii economice 45

face în format CLV (Constant Linear Velocity), sectoarele succedându-se continuu


în formă de spirală.
Pentru a avea la citire / scriere o viteză de trasnsfer uniformă, rotaţia discului este
variabilă în funcţie de poziţia sectorului. Unităţile CD - ROM au în prezent o largă
răspândire, deoarece reprezintă un mijloc important de distribuţie a informaţiei
ştiinţifice şi principalul mod de livrare a produselor software. Din punct de vedere
al posibilităţilor de imprimare există două categorii: CD-R (imprimabile o singură
dată) şi CD-RW (imprimabile de mai multe ori).

Unitate de CD-ROM

Dispozitive periferice
Asigură interfaţa dintre utilizător şi calculator – introducerea comenzilor,
programelor şi a datelor precum şi extragerea rezultatelor.

Tastatura (keyboard)
Reprezintă dispozitivul principal de intrare pentru comenzi şi date în sistem. Se
permite astfel, intervenţia în desfăşurarea unui proces. Tastatura standard
dezvoltată de IBM conţine 101 taste. Ordonarea literelor pe tastatură este dată de
frecvenţa apariţiei lor în diferite limbi, de exemplu prima linie este AZERTY în
cazul tastaturii franţuzeşti şi QWERTY la tastatura englezească.

Monitorul ( VDU – Video Display Unit)


Este un dispozitiv de ieşire utilizat pentru comunicarea om – calculator. Cea mai
răspândită tehnologie de fabricaţie a monitoarelor este cea a tubului catodic.
Conform standardelor video, imaginea se obţine prin baleierea ecranului cu un
fascicul de electroni, linie cu linie, în mod repetat.
În cazul calculatoarelor laptop monitoarele utilizează tehnologia bazată pe cristale
lichide (LCD – Liquid Cristal Display) sau pe plasmă (GPD – Gas Plasma
Display). Noile tehnologii propuse pentru monitoarele plate urmăresc economisirea
energiei utilizate şi limitarea radiaţiilor (Low Radiation).
Caracteristicile unui monitor sunt:
46 Curs pentru învăţământ la distanţă

definiţia – orice imagine afişată pe ecran este realizată dintr-o mulţime de puncte
numite pixeli. Dimensiunea (diametrul) unui pixel dă definiţia monitorului: cu cât
această valoare este mai mică, cu atât imaginea este mai clară;
rezoluţia – este dată de dimensiunea matricei de pixeli;
dimensiunea monitorului – este reprezentată de lungimea diagonalei
ecranului şi este dată în inches;
rata de împrospătare a imaginii reprezintă numărul de imagini afişate pe secundă
şi deci viteza cu care se realizează reîmprospătarea imaginii. Pixelii monitorului
sunt puşi în corespondenţă bijectivă cu celulele binare din memoria video, aflată în
blocurile memoriei interne. Transformarea informaţiilor din formă binară în forma
semnalelor video care se transmit monitorului se realizează cu ajutorul unui
adaptor video.

Imprimanta
Este un periferic suplimentar destinat tipăririi informaţiilor.
Principalele caracteristici:
rezoluţia – se măsoară în dpi (dots per inch), adică numărul de puncte tipărite pe un
inch.
viteza de tipărire – se măsoară în caractere pe secundă (cps) sau pagini pe minut
(ppm).
dimensiunea hârtiei utilizate – depinde de mărimea carului (în general poate fi A3
sau A4).
Există în prezent mai multe tipuri:
imprimante matriceale (imprimante cu ace (pins)): capul de tipărire având 9, 18
sau 24 de ace acţionează asupra benzii tuşate; rezoluţia este mică (180 – 360 dpi) la
o viteză între 120 şi 800 cps; sunt zgomotoase şi sunt pe cale de dispariţie;
imprimante cu jet de cerneală (imprimante color) au o rezoluţie înaltă (600 dpi) şi
o viteză de aproximativ 8 – 9 ppm. Cerneala este pulverizată printro serie de mici
capilare (duze speciale) la nivelul hârtiei, realizând caractere sau imagini într-o
mare varietate de culori.
imprimante laser – utilizează tehnologia copiatoarelor: o rază laser polarizează
electrostatic un cilindru care va atrage cantităţi variabile dintrun praf de cărbune
(toner) care se va fixa astfel pe hârtie. Au o rezoluţie foarte bună (600 dpi) iar
viteza poate ajunge la 200 ppm.

Alte periferice

Mouse – dispozitiv de intrare, care permite deplasarea unui simbol luminos pe


monitor realizând selectarea unei opţiuni prin punctare (click) sau deplasarea
obiectelor pe ecran. Face parte din configuraţia standard a unui PC.

Trackball – deplasarea cursorului se realizează prin mişcarea unei bile; se


întâlneşte la calculatoarele portabile (laptop, notebook).

Touch Screen – ecranul tactil – selecţia este realizată direct de utilizator pe ecranul
sensibil la atingere; se foloseşte similar mouse-ul.

Touch Pad – este o mică suprafaţă sensibilă la atingere, folosită ca dispozitiv de


punctare pe unele calculatoare portabile.
Bazele informaticii economice 47

Scanner – dispozitiv pentru introducerea (preluarea de imagini) şi texte. Procesul


de scanare constă din baleierea imaginii cu o rază luminoasă şi în analiza
cantitativă a luminii reflectate cu ajutorul celulelor fotosensibile.

Plotter – dispozitiv de desenat ce permite realizarea de desene tehnice, hărţi etc. de


mare precizie pe suporturi de hârtie, calc, film.

Modem – dispozitiv care permite calculatorului să transmită date prin liniile


telefonice, realizând conversia digital – analogic la transmitere şi analogic – digital
la recepţie.

4.5. Interfeţe pentru cuplarea dispozitivelor periferice


Permite comunicarea: unitate centrală – periferic, prin adaptarea semnalelor de pe
magistrala microprocesorului la cerinţele perifericului. Interfaţa se cuplează la
unitatea centrală printr-un port. Conceptul de interfaţă este generic, el
corespunzând unor denumiri particulare, ca de exemplu:
- adaptor video (placă video) pentru interfaţa cu monitorul; - cuplor (controller) de
disc pentru interfaţa cu discul.
În funcţie de modalitatea de transmitere a datelor interfeţe se pot clasifica în:
Interfeţe seriale – transferul datelor se realizează bit cu bit pe linia de comunicaţie.
Sunt necesare mecanisme de serializare / deserializare a informaţiilor. Interfaţa
serială (asincronă) este mai lentă şi se întâlneşte la tastatură, mouse etc.
Interfeţe paralele – modul Serial
de lucru
Bus)permite transmiterea simultană a 8 bits. Este
necesar săse asigure sincronizarea între diversele semnale transmise simultan pe
USB (Universal – permite conectarea oricăror periferice.
mai multe linii fizice. Interfaţa paralelă (sincronă) se întâlneşte în general la
imprimantă.

Modem extern Modem intern

2.4. SISTEME DE OPERARE


48 Curs pentru învăţământ la distanţă

[ALB 96], [BVB 97], [LIX 94], [NIR 96], [SPB 99]

Sistemul de operare reprezintă componenta logică de bază şi este o colecţie


organizată de programe care permite utilizarea eficientă a resurselor sistemului de
calcul.
Sistemul de operare asigură alocarea şi controlul tuturor resurselor, înlănţuirea
proceselor de prelucrare şi interfaţa cu utilizatorul.
Sistemul de operare se livrează pe suporturi magnetice şi optice (floppy-disk, CD-
ROM), utilizatorul generându-şi un sistem de operare personalizat, în funcţie de
configuraţia calculatorului său şi de tipurile de aplicaţii pe care doreşte să le
utilizeze. Sistemul de operare astfel generat este reţinut pe discul hard.
Se manifestă în prezent tendinţa ca tot mai mule funcţii ale sistemului de operare
să fie implementate la nivelul hard-ului în memorii de tip ROM, aceste programe
alcătuind firmware-ul.

Principalele funcţii ale unui sistem de operare sunt:


gestiunea unităţii centrale – are ca scop lansarea în execuţie a programelor,
planificarea derulării proceselor, depistarea erorilor şi tratarea acestora;
gestionarea memoriei interne – cuprinde evidenţierea stării de alocare a fiecărei
locaţii de memorie, alocarea zonelor de memorie, etc.
gestiunea datelor – asigură organizarea, identificarea şi protecţia datelor grupate în
fişiere; această funcţie este îndeplinită de sistemul de gestiune al fişierelor;
gestionarea dispozitivelor periferice – constă în alocarea şi eliberarea acestora,
iniţierea operaţiilor de intrare / ieşire;
asistenţa acordată utilizatorului – comunicarea este asigurată prin interfeţe
„prietenoase” uşor de utilizat.

Interfaţa dintre utilizator şi sistemul de calcul este concretizată, în cadrul


sistemului de operare, de un interpretor al comenzilor utilizatorului exprimate cu
ajutorul unui limbaj de comandă.
Procesul este un concept cheie al oricărui sistem de operare şi reprezintă un
program în execuţie. El poate avea unul sau mai multe subprocese, se poate afla în
anumite stări, se poate sincroniza cu alte procese, poate comunica cu alte procese
etc. Evoluţia sistemelor de operare urmează îndeaproape evoluţia sistemelor de
calcul.
Primele sisteme de operare (corespunzând generaţiei a doua de calculatoare)
realizau prelucrarea pe loturi ( sisteme de operare batch). Erau sisteme de operare
monoutilizator şi monotasking, adică un singur program este prezent în memorie şi
se execută la un moment dat.
Caracteristica de bază a modelului de prelucrare pe loturi o reprezintă
imposibilitatea intervenţiei utilizatorului pentru a interacţiona cu programul său.
Perfecţionarea sistemelor de operare a fost impusă de dezvoltarea hard-ului şi de
cerinţele utilizatorilor legate de uşurinţa în exploatarea sistemelor.
Concepul de multiprogramare presupune că la un moment dat în memoria
sistemului se află încărcate pentru execuţie mai multe procese care concurează, pe
baza unei scheme de priorităţi, pentru accesul la anumite resurse ale sistemului.
Sistemele cu multiprogramare rezolvă problemele de alocarea optimă a resurselor,
evitarea interblocărilor, protecţia utilizatorilor şi protecţia sistemului în raport cu
utilizatorii.
Bazele informaticii economice 49

Sistemele de operare monoutilizator şi multitasking permit unui singur utilizator să


lanseze în execuţie, în acelaşi timp, mai multe programe, utilizatorul având senzaţia
că toate programele se execută simultan. În realitate programele utilizează
concurent resursele sistemului, procesorul fiind disponibil într-un anumit moment
unui singur program.
Minicalculatoarele permit conectarea prin intermediul terminalelor a mai multor
utilizatori. Sistemele de operare implemenate pe minicalculatoare s-au
particularizat prin caracterul lor interactiv şi prin introducerea conceptului de
multiacces. Interactivitatea, care va fi preluată de toate sistemele de operare
ulterioare, presupune „dialogul” între utilizator şi sistem (utilizatorul trimite
comenzi sistemului, în caz de eroare sistemul de operare lansează mesaje de
atenţionare şi asistă utilizatorul la depanarea lor). Multiaccesul presupune
conectarea interactivă a mai multor utilizatori la acelaşi calculator.
Aceste sisteme multiuser (multiutilizator) au ridicat probleme noi privind
gestiunea concurentă a programelor lansate de diverşi utilizatori, posibilitatea
comunicării între utilizatori plasaţi la terminale diferite şi asigurarea unui sistem de
protecţie corespunzător.
În cazul sistemelor de operare multiuser şi multitasking, mai mulţi utilizatori sunt
conectaţi simultan, dar procesul lucrează în tehnica time-sharing (timp divizat,
partajat) în care alocarea timpului de acces se realizează pe baza unor cuante de
timp fixe sau variabile, utilizatorii având impresia că lucrează simultan cu sistemul.
Dacă sistemul de calcul dispune de mai multe procesoare (multiprocessing) pe
fiecare din ele se execută câte un proces; în acest caz programele se execută
simultan în mod efectiv.
Sistemele de operare în timp real permit controlul execuţiei lucrărilor în interiorul
unui interval de timp specificat. Aceste sisteme se caracterizează prin preluarea
imediată a datelor de intrare, asigurând un timp de răspuns minim şi sunt
implementate pe calculatoare pentru rularea unor aplicaţii ce necesită răspunsuri în
timp util (rezervări de locuri, conducerea operaţiilor bursiere etc.).
Din punct de vedere al modului de exploatare a echipamentelor informatice, au fost
elaborate sisteme de operare specializate:
sisteme de operare pentru exploatare individuală a calculatoarelor: MS-DOS,
UNIX, WINDOWS’xx etc.
sisteme de operare pentru reţele de calculatoare.

Sistemele de operare au un limbaj de comandă destinat interfeţei cu utilizatorul.


Instrucţiunile acestui limbaj se numesc comenzi şi sunt interpretate de componenta
numită interpretorul de comenzi ce determină acţiuni ale sistemului de operare.
Majoritatea sistemelor de operare sunt structurate pe două nivele:
Nivelul fizic – apropiat de hardware, este în general transparent pentru utilizator.
Interfaţa hardware este compusă din programe care controlează componentele
fizice ale calculatorului. Acest software este parţial sau integral stocat permanent în
memoria ROM. Rolul lui este de a gestiona şi controla componentele hardware.
Comunicarea se face prin intermediul unui sistem de întreruperi prin care se
semnalează anumite evenimente din sistem. La apariţia unei întreruperi, controlul
este dat unor rutine de pe nivelul logic, în scopul tratării întreruperii şi al informării
utilizatorului despre cauzele cea au generat-o.
Nivelul logic constituie interfaţa cu utilizatorul. Acesta comunică cu sistemul prin
comenzi, instrucţiuni, mesaje. Interfaţa poate fi de tip linie de comandă sau grafică
GUI (Graphic User Interface).
50 Curs pentru învăţământ la distanţă

Sistemul de operare MS-DOS (Micro Soft – Disc Operating System) este un sistem
monoutilizator şi monotasking, implementat pe calculatoarele cu o arhitectură de
tip IBM-PC.
Sistemul de operare MS-DOS oferă o serie de avantaje:
interfaţă utilizator simplă, accesibilă, uşor de utilizat, de tip linie de comandă;
mecanism evoluat de detectare şi tratare a erorilor;
posibilitatea conectării unui număr mare de dispozitive periferice;
gestionarea unei structuri de fişiere eficientă cu o organizare ierarhic-arborescentă;
contabilitatea datei şi orei curente, sistemul inserându-le în informaţiile legate de
fişiere la crearea şi modificarea acestora.

Fişiere şi directoare
Gestionarea datelor pe disc este una din funcţiile cele mai importante ale sistemului
de operare. Fişierul reprezintă elementul fundamental al organizării informaţiei pe
discuri. Fiecare sistem de operare îşi are propriile reguli de organizare a fişierelor
pe disc, reguli care formează sistemul de gestiune a fişierelor.
Sistemul de operare MS-DOS grupează fişierele pe disc într-o structură
arborescentă formată dintr-un director rădăcină (root) şi mai multe subdirectoare.
Un disc în format MS-DOS este divizat în patru părţi:
zona BOOT – este destinată programului de încărcare al sistemului de operare; 
zona FAT (File Allocation Table) conţine informaţii de gestiune a sectoarelor; se
marchează sectoarele defecte pentru a fi izolate şi precizează pentru fiecare sector
utilizabil dacă a fost ocupat sau este încă liber;
zona ROOT Directory păstrează informaţiile de gestiune asupra tuturor fişierelor şi
directoarelor: denumirea, lungimea, data creării, atributele;
zona FILE este cea mai mare şi cuprinde fişierele grupate în directoare.

Sistemul de operare WINDOWS este în prezent cel mai răspândit în rândul


utilizatorilor de calculatoare personale. Anunţat pentru aprilie 1984 ca o extensie a
sistemului MSDOS, sistemul este livrat în noiembrie 1985, având disponibile doar
25 de aplicaţii compatibile. A cunoscut o dezvoltare rapidă şi mai multe, versiuni,
fiind disponibil în prezent pe tot globul, într-un mare de limbi.
Sistemele Windows 3.0, Windows 3.1, Windows 3.11 funcţionau împreună cu
sistemul MS-DOS şi nu reprezentau sisteme de operare propriu-zise, ci doar medii
grafice de operare. În anul 1995 apare sistemul Windows 95, un sistem de operare
pe 32 de bits, complet independent şi integrat, care poate exploata şi aplicaţii scrise
în MS-DOS. Sistemele Windows 95, 98, 2000, XP au posibilităţi de lucru
multitasking şi multithreading (adică facilitatea de a efectua lucrări pe porţiuni ale
unei aplicaţii complexe, economisind astfel timp). Dintre caracteristicile mediului
Windows, amintim:
interfaţa WIN accesată prin pictograme (ICON);
Bazele informaticii economice 51

un număr mare de accesorii şi utilitare prin care sistemul comunică cu


utilizatorii
săi;
protocolul OLE (Object Linking and Embedding) pentru realizarea de
documente complexe; de exemplu pot fi astfel incorporate grafice, tabele în
documente, iar modificările pot fi făcute fără a părăsi documentul;  permite
crearea de legături active între aplicaţii;
tehnologia Plug and Play permite ca instalare unui nou periferic să nu impună
restartarea calculatorului.

2.5. REŢELE DE CALCULATOARE


[BVB 97], [LIX94], [NAS98], [NIR6], [SPB 99]

Modelul unui singur calculator care rezolvă problemele mai multor utilizatori
este rapid înlocuit cu modelul unui număr de calculatoare interconectate într-un
sistem numit reţea de calculatoare. Ideea formarii de reţele pentru a face
posibilă partajarea diferitelor resurse şi schimbul de informaţii apare în anii‟70.
Legătura între calculatoare se face instalându-le ca noduri într-o reţea;
interconectările se pot face prin cabluri electrice, fibre optice, laser, satelit,
semnale radio de frecvenţă înaltă (microwave).

Avantajele reţelelor de calculatoare:


partajarea resurselor hardware – mai mulţi utilizatori pot avea acces la
periferice costisitoare;
partajarea resurselor software – informaţiile existente în reţea pot fi accesibile
utilizatorilor, evitându-se astfel existenţa unor copii multiple pentru date sau
programe; accesul este controlat prin parole, atribute ale fişierelor şi
directoarelor şi drepturi de acces specifice fiecărui utilizator, aceste probleme
fiind rezolvate de administratorul de reţea;
flexibilitatea – posibilitatea extinderii simple şi integrării de noi echipamente
într-o reţea deja existentă;
funcţionalitate crescută – prin distribuirea şi multiplicarea unor aplicaţii pe mai
multe calculatoare, astfel încât, dacă din motive tehnice se defectează o parte a
reţelei, partea intactă poate continua să funcţioneze, fără a altera prea mult
performanţele sale;  diversificarea serviciilor oferite utilizatorilor,
posibilitatea de comunicare între utilizatorii aceleiaşi reţele, ceea ce permite o
mai bună coordonare şi eficientizarea
activităţii;
realizarea unor sisteme adaptabile la noile cerinţe, fiabile şi robuste;
costul scăzut al unei reţele faţă de un calculator mare, în condiţiile unei
productivităţi apropiate.

În funcţie de aria geografică de cuprindere, reţelele de calculatoare se clasifică


în:  Reţele locale (LAN – Local Area Networks). Sunt primele reţele apărute.
Statistic s-a observat că peste 60% din informaţiile generate într-un birou se
52 Curs pentru învăţământ la distanţă

folosesc în aceeaşi clădire sau perimetru al firmei. Aria lor de cuprindere se


limitează la spaţiul unei organizaţii (instituţie financiar-bancară, firmă,
bibliotecă, universitate, etc.), permiţând conectarea unui număr mare de
calculatoare într-un spaţiu geografic limitat (de ordinul a câtorva kilometri).
Aceste reţele se pot interconecta la alta reţele mai mari (MAN sau WAN) prin
punţi de comunicaţie (gateway) ce asigură compatibilitatea software şi
hardware între două medii.
Reţele metropolitane (MAN – Metropolitan Area Networks). Se întind la limita
unui oraş, permiţând interconectarea filialelor unei firme, instituţii bancare etc.
O astfel de reţea poate interconecta mai multe reţele locale prin tehnologii
speciale.
Reţele mari (WAN – Wide Area Networks) de mare întindere geografică, la
nivel continental şi planetar. S-au dezvoltat de asemenea şi reţelele VAN (Value
Added Networks), care reprezintă reţele pe arii extinse private, realizate şi
gestionate de firme specializate. Reţelele private VAN sunt specializate în
realizarea transferurilor electronice de date (EDI – Electronic Data
Interchange) în domenii cum ar fi: comerţul electronic, servicii financiare,
bursiere etc.

Reţele locale (LAN)


O reţea locală este formată dintr-un ansamblu de calculatoare, elemente
periferice (imprimante, scannere, plottere, etc.), elemente de conectare (cablu,
plăci de interfaţă, dispozitive nodale de comunicaţie – HUB).
Staţiile existente într-o reţea locală pot fi de două tipuri:
Calculatoare server (FS-File Server) – care controlează întreaga activitate a
reţelei; dispun de o memorie externă mare şi conţin toate sau o mare parte din
programele şi fişierele comune. Pe server este instalat un sistem de operare
specializat pentru lucrul în reţea numit NOS (Network Operating System).
Staţiile de lucru (WS – Work Station) sunt calculatoare personale ce pot lucra
independent sau accesând resursele harware şi software ale serverelor.
Un server poate lucra numai pentru controlul reţelei (server dedicat), sau poate
lucra simultan cu controlul reţelei şi ca staţie de lucru (server nededicat).

Întreaga activitate a unei reţele de calculator este controlată de un software


specializat, de exemplu: sistemul NetWare al firmei Novell, sistemul Windows
NT (firma Microsoft), sistemul UNIX (firma Santa Cruz Operation).
Principalele funcţii ale unui software de reţea sunt:
partajarea fişierelor – mai mulţi utilizatori pot lucra în acelaşi timp asupra unui
fişier;
stabilirea unor mecanisme de protecţie şi securitate a informaţiilor;
gestiunea cozilor de aşteptare pentru utilizarea resurselor comune puse la
dispoziţia staţiilor de lucru de către server;
stabilirea protocolului care determină regulile de acces la reţea pentru a evita
coliziunile dintre mesajele care circulă la un moment dat în reţea.
În funcţie de modul de conectare a calculatoarelor în reţea, există mai multe
topologii de reţele locale, pentru care s-au definit standarde:
Topologia de tip stea (star) în care file server-ul este plasat în centrul reţelei,
staţiile de lucru fiind conectate fizic la server. Toate mesajele trimise de o staţie
de lucru ajung la server, care le distribuie staţiilor destinatare. Topologia are
Bazele informaticii economice 53

avantajul că poate fi uşor extinsă, iar în cazul defectării unei staţii funcţionarea
reţelei nu este influenţată.
Standardul specific acestei topologii este ARCNET.
Topologia de tip inel (ring) se caracterizează prin conectarea calculatoarelor
din reţea printr-o cale de comunicaţie ce formează un inel complet. Pentru
această topologie standardul specific este TOKEN RING.
Topologia de tip magistrală (bus) presupune existenţa unui canal unic de
comunicaţie duală (mesajele pot circula în două sensuri) împărţit între staţii.
Mesajele transmise sunt recepţionate de toate staţiile, acestea selectându-şi
informaţiile care le sunt adresate. Defectarea unei staţii nu afectează
funcţionarea reţelei, dar disfuncţionalităţile la nivelul magistralei (ca şi în cazul
topologiei inel), afectează întreaga reţea. Se utilizează standardul ETHERNET.

Pentru topologiile care utilizează o cale unică de comunicaţie s-au elaborat


două protocoale de acces:
Metoda CSMA/CD (Carrier Sense Multiple Access / Collision Detection)
constă în ascultarea liniei de fiecare staţie şi depistarea, dacă există, a unei
emisii în curs, pentru a stabili disponibilitatea reţelei. Dacă două staţii emit
simultan apare o coliziune detectată de emiţători, care aşteptând un timp diferit
(interval aleatoriu de ordinul milisecundelor), vor emite din nou fără a produce
o nouă coliziune.
Metoda Token Passing permite staţiei de lucru să sesizeze starea de
disponibilitate a căii de comunicaţie, cu ajutorul unui mesaj, numit jeton
(pachet de control), pe care staţia îl recepţionează. Jetonul poate fi marcat ca
liber sau ocupat de un mesaj. O staţie care vrea să emită trebuie să aştepte
jetonul şi să-l verifice – dacă este liber poate declanşa emisia şi marchează
jetonul ca ocupat. Acesta trece apoi pe la fiecare staţie care verifică adresa
destinatarului, staţia receptoare copiază mesajul şi lasă jetonul să treacă
nemodificat. Emiţătorul va modifica valoarea jetonului, eliberând astfel calea
de comunicaţie, dar nu va putea să-l ocupe imediat pentru a evita fenomenul de
acaparare a sistemului de o singură staţie.

Conceptual, reţelele locale pot fi clasificate astfel:


Reţele bazate pe arhitectura client – server. Acest model este caracterizat de
existenţa în cadrul reţelei a unuia sau mai multor calculatoare cu rol de server şi
a unui număr de alte calculatoare reprezentând staţiile de lucru, puse la
dispoziţia utilizatorilor. Clientul reprezintă entitatea care cere execuţia sarcinii,
server-ul reprezintă entitatea care execută un set de sarcini, răspunzând astfel
solicitării clientului. Dintre avantajele acestei arhitecturi, folosită în sistemele
informatice, amintim:
adaptabilitate sporită la nevoile utilizatorilor;
asigurarea integrităţii datelor din baza de date;
actualizarea aplicaţiilor se poate face dintr-un punct central al reţelei;
reducerea costurilor prin partajarea resurselor hardware şi software.

Reţele bazate pe modelul peer-to-peer. Se caracterizează prin faptul că toate


calculatoarele prezintă aceleaşi funcţii în reţea. Resursele fiecărui calculator pot
54 Curs pentru învăţământ la distanţă

fi partajate în reţea, dar cu performanţe reduse. Modelul se caracterizează prin


flexibilitate, uşurinţă şi simplitate în instalare, administrare şi utilizare.

Reţele false, în care interconectarea a două calculatoare se face prin intermediul


interfeţelor (porturilor) seriale sau paralele existente, fără a utiliza echipamente
speciale de interconectare (plăci de reţea). Interconectarea se face ocazional
pentru transferuri de fişiere, cu ajutorul unor programe utilitare.

Reţele mari (WAN)


În contextul procesului de informatizare a întregii societăţi, interconectarea
reţelelor locale a devenit o necesitate.
Într-o reţea mare pot fi interconectate calculatoare şi reţele de calculatoare
eterogene din punct de vedere al tehnologiei, protocoalelor de comunicaţie şi al
software-ului utilizat, situate în zone geografice diferite. Un astfel de exemplu
îl constituie reţeaua INTERNET (Internetwork System – sistem de
interconectare ale reţele).
Internet-ul reprezintă o supermagistrală informaţională şi un adevărat spaţiu
cibernetic. Este o reţea descentralizată, din punct de vedere administrativ fiind
gestionată de ISOC (Internet SOCiety), o asociaţie de voluntari, fondată în
1992, care are ca scop analizarea noilor tehnologii şi definirea strategiilor de
viitor. ISOC alege în fiecare an un consiliu – IAB (International Architecture
Board), care are ca sarcină realizarea unor pe termen lung privind arhitectura
internet şi standardizarea tehnologiei folosite.
Internet îşi are originea în reţeaua americană ARPA (Advanced Research
Project Agency), iniţiată în anul 1969 de Ministerul Apărării al S.U.A.
Începând la anul 1980, marile universităţi americane, muzee, biblioteci şi
instituţii guvernamentale s-au conectat la reţeaua ARPA. Deoarece aceasta
devine foarte solicitată şi în consecinţă greu de utilizat, o agenţie a guvernului
american NSF (National Science Foundation) realizează o reţea numită
NSFNET, care atrage o parte din utilizatorii reţelei ARPANET.

Tehnologia Internet oferă o serie de avantaje:


calculatoarele conectate la reţea pot partaja şi transfera informaţii text sau
multimedia;
calculatoarele din reţea pot avea instalate diferite sisteme de operare şi poate fi
utilizat orice hardware;
se pot realiza conexiuni între două calculatoare aflate în reţea în vederea
transmiterii de mesaje;
oferă o interfaţă grafică ce permite o navigare uşoară, transparentă;
programarea în limbajul HTML – singurul standard universal pentru
comunicaţii electronice;
utilizatorii deţin controlul informaţiei, prin legăturile ce permite regăsirea
fişierelor în site-ul local sau pe alte site-uri.

Serviciile oferite de Internet sunt aplicaţii de reţea bazate pe principiul client –


server. Principalele servicii sunt:
Bazele informaticii economice 55

serviciul de poştă electronică (e-mail) – asigură transmiterea şi recepţionarea


de masaje în reţea, utilizând adresele Internet;
conectarea la distanţă (telnet) – permite conectarea unui terminal utilizator
local la un server aflat la distanţă;
transfer de fişiere (FTP – File Transfer Protocol) – permite transferul fişierelor
între două noduri ale reţelei Internet;
serviciul de informare (WWW – World Wide Web) – asigură funcţia de regăsire
a
informaţiei.

Întocmiţi o cerere de ofertă pentru achiziţionarea unui calculator necesar pentru


secretariatul unei firme.
(Documentul va avea o pagină A4 şi va conţine antetul firmei. Redactare în
Word, font Arial 12)

Să ne reamintim...
Un sistem electronic de calcul este alcătuit din două componente:
sistemul de echipamente (hardware), care reuneşte toate componentele fizice
folosite în culegerea, memorarea, prelucrarea datelor şi transmiterea
rezultatelor prelucrării;
sistemul de programe (software), reprezintă componenta logică şi cuprinde
totalitatea programelor care asigură conducerea, supravegherea, controlul şi
realizarea procesului de prelucrare; dintre elementele software un rol deosebit
revine
sist
em
ulu
i de
ope
rar
e.

Rezumat
Indiferent de structura constructivă, de sistemul de operare şi de domeniul de
utilizare, arhitectura calculatoarelor se dezvoltă în jurul următoarelor concepte
funcţionale:
funcţia de memorare;
funcţia aritmetică – logică;
funcţia de comandă şi control;
funcţia de intrare – ieşire.
56 Curs pentru învăţământ la distanţă

John von Neumann a fost primul care a realizat un computer cu o memorie de


lucru (ceea ce astăzi se numeşte RAM). Dacă aplicăm acest model la un PC
actual vom obţine schema de mai jos:

Sistemul de operare reprezintă componenta logică de bază şi este o colecţie


organizată de programe care permite utilizarea eficientă a resurselor sistemului
de calcul.
Sistemul de operare asigură alocarea şi controlul tuturor resurselor,
înlănţuirea proceselor de prelucrare şi interfaţa cu utilizatorul.

Principalele funcţii ale unui sistem de operare sunt:


gestiunea unităţii centrale – are ca scop lansarea în execuţie a programelor,
planificarea derulării proceselor, depistarea erorilor şi tratarea acestora;
gestionarea memoriei interne – cuprinde evidenţierea stării de alocare a fiecărei
locaţii de memorie, alocarea zonelor de memorie, etc.
gestiunea datelor – asigură organizarea, identificarea şi protecţia datelor
grupate în fişiere; această funcţie este îndeplinită de sistemul de gestiune al
fişierelor;
gestionarea dispozitivelor periferice – constă în alocarea şi eliberarea acestora,
iniţierea operaţiilor de intrare / ieşire;
asistenţa acordată utilizatorului – comunicarea este asigurată prin interfeţe
„prietenoase” uşor de utilizat.

Modelul unui singur calculator care rezolvă problemele mai multor utilizatori
este rapid înlocuit cu modelul unui număr de calculatoare interconectate într-un
sistem numit reţea de calculatoare. Ideea formarii de reţele pentru a face
posibilă partajarea diferitelor resurse şi schimbul de informaţii apare în anii‟70.
Bazele informaticii economice 57

Avantajele reţelelor de calculatoare:


partajarea resurselor hardware – mai mulţi utilizatori pot avea acces la
58 Curs pentru învăţământ la distanţă

periferice costisitoare;
partajarea resurselor software – informaţiile existente în reţea pot fi accesibile utilizatorilor,
evitându-se astfel existenţa unor copii multiple pentru date sau programe; accesul este controlat prin
parole, atribute ale fişierelor şi directoarelor şi drepturi de acces specifice fiecărui utilizator, aceste
probleme fiind rezolvate de administratorul de reţea;
flexibilitatea – posibilitatea extinderii simple şi integrării de noi echipamente într-o reţea deja
existentă;
funcţionalitate crescută – prin distribuirea şi multiplicarea unor aplicaţii pe mai multe calculatoare,
astfel încât, dacă din motive tehnice se defectează o parte a reţelei, partea intactă poate continua să
funcţioneze, fără a altera prea mult performanţele sale;
diversificarea serviciilor oferite utilizatorilor, posibilitatea de comunicare între utilizatorii aceleiaşi
reţele, ceea ce permite o mai bună coordonare şi eficientizarea activităţii;
realizarea unor sisteme adaptabile la noile cerinţe, fiabile şi robuste;
costul scăzut al unei reţele faţă de un calculator mare, în condiţiile unei productivităţi apropiate.

Test de evaluare a cunoştinţelor


Precizaţi principalele momente ale evoluţiei dispozitivelor de calcul.
Generaţii de calculatoare.
Structura generală a unui calculator. Memoria centrală.
Structura generală a unui calculator. Unitatea de comandă.
Structura generală a unui calculator. Unitatea aritmetică şi logică. 6. Structura generală a unui
calculator. Ansamblul de periferice.
Calculatoare personale. Microprocesorul.
Calculatoare personale. Memoria internă. 9. Calculatoare personale. Memoria externă.
Calculatoare personale. Dispozitive periferice.
Sisteme de operare (definiţie, principale funcţii, tipuri de sisteme, structurare).
Sistemele de operare MS-DOS şi Windows.
Reţele de calculatoare (structura unei reţele, topologii, avantaje, tipuri de reţele, funcţiile unui
software de reţea).

Unitatea de învăţare 3. ALGORITMI

Introducere
Acest capitol familiarizează studenții cu noțiunile de algoritm, limbaj
algoritmic, tabelă de decizie, oferă exemple ample penrtu o înțelegere
în detaliu și crează un
fundament logic ce poate fi utilizat în proiectări viitoare de sisteme informatice.

Competenţele unităţii de învăţare


Bazele informaticii economice 59

După parcurgerea acestei părți studenții vor


înțelege următoarele concepte: principiile teoretice ale
programării structurate limbajul algoritmic analiza
algoritmilor tabele de decizie
structuri elementare de date
algoritmi fundamentali

Durata medie de parcurgere a primei unităţi de învăţare este de 4 ore.

3.1. Caracterizare generală


[BVB97], [CTT97], [LIG86], [LIX94], [MAR96], [PMM94]

Noţiunea de algoritm nu are o definiţie. Termenul derivă de la numele


matematicianului arab Abu Ja‟far Mohamed ibn Mûsa al Kahowârizmi (în limba arabă
algoritm = al-khârezmi).
Algoritmul este un concept(1) folosit în mod intuitiv pentru a desemna o mulţime finită de
operaţii cunoscute, care, executate într-o ordine bine stabilită, pornind de la o

(1)
În cadrul matematicii şi logicii, algoritmii apar ca metode generale pentru rezolvarea tuturor problemelor dintr-o
clasă dată.
În perioada 1931-1947 s-au dezvoltat în cadrul logicii matematice un număr de concepte de
„algoritm” bine delimitate care precizează noţiunea intuitivă. Cele mai importante sunt rezolvarea
ecuaţiilor (J. HERBRAND, K. GÖDEL, S.C., KLEENE, aproximativ în perioada 1931-1936), maşina lui
Turing (A.M. TURING, 1936), λ - calcul (A. CHURCH, 1936) şi conceptele algoritmice ale lui E.L.
POST (1936) şi A.A. MARKOV (1947).
Semnificativ este faptul că toate aceste noţiuni sunt echivalente în sensul că aceleaşi funcţii definite
pe domeniul numerelor naturale, aşa numitele funcţii recursive pot fi calculate prin fiecare din ele. Pe baza
acestei echivalenţe se poate adopta punctul de vedere prin care conceptul intuitiv de algoritm câştigă astfel
precizie. Acest punct de vedere a fost formulat în 1936 de către Church şi este cunoscut în literatura
matematică ca ipoteza lui Church.

mulţime de valori numită domeniul de definiţie, produce în timp finit un alt set de valori (ieşirea).
Algoritmul constituie baza programării calculatoarelor electronice. În activitatea de
rezolvare a problemelor cu calculatorul elaborarea algoritmilor reprezintă cea mai
importantă etapă, obligatorie şi de multe ori dificilă. De calitatea algoritmului proiectat
depinde calitatea şi fiabilitatea programului şi succesul execuţiei acestuia.
Studiul unei probleme compatibile din punctul de vedere al calculatorului
(principial rezolvabilă şi cu soluţie practică realizabilă) conduce la formalizarea şi
abstractizarea ei, în scopul înţelegerii de către calculator. Rezolvarea cu calculatorul a
unei probleme concrete constă din parcurgerea următoarelor etape: a) Formularea
60 Curs pentru învăţământ la distanţă

exactă a problemei de rezolvat:  definirea datelor problemei (intrările) caracterizându-


le prin tip, proprietăţi, domeniul valorilor;
• definirea rezultatelor problemei (ieşirile);
• precizarea relaţiilor dintre date şi rezultate.
b) Descrierea modului de rezolvare a problemei (algoritmul).
c) Scrierea într-un limbaj de programare convenabil a unui program pe baza algoritmului definit
anterior şi a datelor de prelucrat.
Acest proces este prezentat schematic în figura 3.1

abstractizare Algoritm codificare


Problema + Program
Date
Figura 3.1

Principalele caracteristici ale unui algoritm sunt:


 Generalitatea reprezintă proprietatea algoritmului de a fi aplicabil tuturor
problemelor din clasa de probleme pentru a fost elaborat.
 Finitudinea algoritmului presupune că într-un timp determinat (un număr finit de
paşi, cunoscut sau necunoscut), problema se consideră soluţionată. În caz contrar
algoritmul ciclează, adică algoritmul va efectua la infinit transformări asupra
datelor de intrare.
 Claritatea (unicitatea) algoritmului presupune ordinea exactă a paşilor şi perfecta
lor determinare şi inteligibilitate; totul trebuie exprimat corect, fără ambiguităţi şi neclarităţi.

Succesiunea logică şi determinată de operaţii prin care se trece de la informaţia iniţială la


informaţia finală, reprezintă paşii algoritmului.
În practica programării se utilizează diverse forme de reprezentare a algoritmilor, dintre
care vom prezenta:
1. Schema logică constituie un mod intuitiv de reprezentare a unui algoritm, utilizând
simboluri grafice ce permit o vizualizare expresivă şi sintetică, uşor de urmărit, a
algoritmilor.
2. Limbajul convenţional permite exprimarea neambiguă a ordinii de execuţie a paşilor
unui algoritm cu ajutorul unor reguli sintactice simple.
3. Limbajul algoritmic constituie o formă intermediară între limbajul natural şi limbajul de
programare.
4. Tabela de decizie permite reprezentarea compactă a unor clase de algoritmi (cu număr
mare de decizii bazate pe condiţii complexe).

Deoarece activitatea de elaborare a unui algoritm este strâns legată de etapa


următoare de codificare şi transpunere într-un limbaj de programare (etapa de
programare), este necesar ca abordarea construcţiei şi analizei algoritmilor să se facă
prin prisma principiilor programării structurate.

3.2. Principiile teoretice ale programării structurate


[BVB97], [LIG86], [LIX94], [LPG81], [PMM94]
Bazele informaticii economice 61

Un program poate fi privit ca un sistem. Structura unui program, adică elementele şi


relaţiile dintre ele, a fost studiată atent odată cu dezvoltarea teoriei programării
structurate.
Programarea structurată este o metodă de concepere, organizare, codificare, testare,
menţinere şi documentare a programelor.
Programarea structurată reprezintă modalitatea de ordonare a activităţii mentale
desfăşurate în scopul obţinerii de programe constituite din structuri fundamentale
(secvenţială, alternativă, repetitivă), în condiţiile minimizării efortului de programare,
dar realizării unor produse program fiabile şi de bună calitate.
Începutul programării structurate aparţine profesorului E.W. Dijkstra de la
Universitatea Eindhoven care în 1965 propune construirea unor programe mai bune prin
evitarea folosirii instrucţiunii de salt necondiţionat (GOTO).
Fundamentarea matematică este făcută de Bőhm şi Jacopini într-un articol publicat în
1966, în care demonstrează că sunt suficiente trei tipuri de structuri de transfer a
execuţiei pentru a exprima logica internă a oricărui program: secvenţa, selecţia şi
iteraţia.
În 1974, Knuth prezintă două situaţii în care utilizarea instrucţiunii GOTO nu modifică claritatea
programelor.
a) situaţia în care se doreşte să se iasă din mai multe repetiţii ierarhizate pe nivele,
astfel încât să se ajungă pe primul nivel;
b) situaţia unei selecţii multiple în care variantele selectate sunt apropiate; în cazul în
care soluţia unei variante poate fi redusă la soluţia unei alte variante printr-un
calcul simplu, cel mai natural mod de a rezolva prima variantă este efectuarea unui
salt necondiţionat.

În 1972 Mills dă o fundamentare riguroasă programării structurate, modelând programul cu


ajutorul conceptului de funcţie.
Schema logică (organigrama) este rezultatul unei analize inductive, care duce la o
înlănţuire de acţiuni şi teste. Făcând abstracţie de unele convenţii de reprezentare,
organigrama unui proces de calcul conţine 3 tipuri de simboluri:
a) Acţiunea elementară – poate fi o instrucţiune simplă (instrucţiune de atribuire, apel
de subrutină, instrucţiuni de intrare/ieşire), proceduri interne sau externe cu o
singură intrare şi o singură ieşire; acţiunea elementară include şi grupurile de
instrucţiuni care se execută secvenţial; se reprezintă:

a1

b) Predicatul (condiţie, expresie booleană, text) – ia valoarea de adevăr (T) sau de


fals (F); corespunzător acestor valori se continuă execuţia pe un arc sau pe celălalt;
se reprezintă:

P
62 Curs pentru învăţământ la distanţă

c) Simbolul de regrupare – pentru a continua pe un singur arc; se asigură astfel ieşirea


sau intrarea într-o structură standard; se reprezintă:

În continuare se prezintă în sinteză principalele structuri şi teoremele fundamentale legate de


acestea.

1) Structura D (Dijkstra) – conţine:


1. acţiunea elementară;
2. compoziţia (înlănţuirea secvenţială):

a b

unde a, b sunt structuri D. Această diagramă se va nota SEQ (a, b).

3. selecţia (structura alternativă):


a
T
unde a, b sunt structuriD,
P iar p este un predicat

F
b

Această diagramă se va nota IF-THEN-ELSE (p, a, b);

4. ciclul cu test iniţial (structura repetitivă condiţionată anterior):

unde a este o structură D,


iar p este un predicat
F

P
Bazele informaticii economice 63
a T

această diagramă se va nota DO-WHILE (p, a);

2) Structura D’ - reprezintă o extindere a structurii D. Conţine:


1. structura D;
2. selecţia redusă (structura pseudoalternativă):
a
T

unde a este o structură D‟, iar p este un predicat

Această diagramă se va nota cu IF-THEN (p, a). Se observă că se poate introduce pe


ramura fals o acţiune elementară vidă, notată cu Ø, obţinând astfel echivalenţa:

IF-THEN (p, a) ≡ IF-THEN-ELSE (p, a, Ø) (3.1)

3. ciclul cu test final (structura repetitivă


condiţionată posterior):
a
T

unde a este o structură D‟, iar p este un predicat

Această diagramă se va nota DO-UNTIL (p, a); între structurile DO –WHILE şi DO-UNTIL se
stabilesc următoarele echivalenţe:

DO-UNTIL (p, a) ≡ SEQ (a, DO –WHILE (p, a)) (3.2)

DO-WHILE (p, a) ≡ IF-THEN (p, DO –UNTIL (p, a)) (3.3)

Tema: demonstraţi cu ajutorul organigramelor echivalenţele (3.1), (3.2) şi (3.3).


64 Curs pentru învăţământ la distanţă

4. selecţia multiplă (structura alternativă multiplă):


1 a1


an
n

Această diagramă se va nota CASEOF;a1,a2,,an.

3) Structura L – este o structură oarecare „bine formată”, adică pe orice cale avem un drum de la
intrare la ieşire; poate conţine instrucţiuni de salt necondiţionat; nu există restricţii asupra
predicatelor.

Definiţia 3.1. Dacă o schemă logică are numai structuri D sau D’, atunci ea se numeşte schemă
logică structurată.

S S
Definiţia 3.2. O structură 1 este convertibilă funcţional într-o structură 2 , dacă şi numai
S S
dac pentru orice intrare, 2 calculează aceeaşi funcţie ca şi 1.

TEOREMA DE STRUCTURĂ A LUI BÖHM ŞI JACOPINI


a) Orice structură L este echivalentă funcţional cu o structură D (D’).
b) În conversia funcţională a unei structuri L într-o structură D (D’) sunt
eventual folosite un număr finit de variabile booleene de control.

Notă. La sfârşitul acestui paragraf, în aplicaţiile 1 şi 2 se exemplifică modul de


transformare a unui structuri L într-o structură D (D’). Schemele logice prezentate
determină diferenţa a două mulţimi date sub formă de vectori:

C  A B x/ x A şi xB

COROLARUL „TOP – DOWN”


Un program structurat este echivalent cu un program pus sub una din formele:
P  SEQa,b
P  IF THEN  ELSEp,a,b
Bazele informaticii economice 65

P  DO WHILEp,a
P  DO UNTILp,a
unde p este un predicat, iar a şi b sunt structurile privilegiate D sau D’; dacă se porneşte
de la un program nestructurat şi se realizează echivalentul său structurat, p poate fi şi o
variabilă booleană.
Corolarul „top-down” este aplicat la analiza problemelor după principiul de „sus în jos”,
realizându-se descompuneri succesive până la ultimul nivel.

Exemplu:
Programul:

s1 s2 s5
T
T

P= p4 s6
p1 F
s3
T
F
p2
F
F T
s4 p3

poate fi descompus succesiv până ultimul nivel astfel:

P = SEQ(f1,f2,s6) f1 = IF-
THEN-ELSE(p1,f4,f5) f4 =
SEQ(s1,s2) f5 = IF-
THEN-ELSE(p2,s3,f6)
f6 = DO-UNTIL (p3,s4)
f2 = DO-WHILE(p4,s5)

Rezultă că structura programului P poate fi scrisă sub forma:


P = SEQ (IF-THEN-ELSE (p1,SEQ(s1,s2),
IF-THEN-ELSE(p2, s3, DO-UNTIL (p3, s4))),
DO-WHILE (p4, s5),s6)

SCHEME LOGICE STRUCTURATE

Schema logică (organigrama) este o reprezentare grafică a unui algoritm, care foloseşte
diferite figuri geometrice având o anumită semnificaţie; figurile sunt unite prin săgeţi
care arată modul în care acestea se înlănţuiesc. Pentru sporirea clarităţii se admit
următoarele simboluri grafice pentru reprezentarea schemelor logice:
66 Curs pentru învăţământ la distanţă

Simbolul Denumire Utilizare

bloc terminal

bloc de calcul

bloc de intrare / ieşire

bloc de intrare

bloc de ieşire

bloc de decizie

bloc conector

săgeata
reprezintă o prescurtare a
ceea ce urmează să se
bloc de procedură dezvolte sau exiată şi doar
se utilizează.
sau

marchează începutul
START sau sfârşitul STOP
al unei scheme logice; sunt
evidenţiate calculele şi
atribuirile ce se efectuează;
indică citirea / scrierea
valorilor unor variabile;

pentru introducerea datelor;

pentru extragerea datelor;


Bazele informaticii economice 67

marchează ramificaţiile în
funcţie de o anumită
condiţie; leagă diferitele
puncte ale unei scheme
logice; arată înlănţuirea
blocurilor într-o schemă
logică;

Notă. În paginile următoare se exemplifică modul de transformare a unei structuri L într-o


structură D (D‟).

Aplicaţia 1. Diferenţa a două mulţimi date sub forma de vectori.


68 Curs pentru învăţământ la distanţă

Exemplu de structura L

Aplicaţia 2. Diferenţa a două mulţimi date sub forma de vectori.


Bazele informaticii economice 69

Exemplu de structura D’

3.3. Limbajul algoritmic


[ARG93], [BVB97], [DOD87], [GNC96], [LIG86], [LIX94], [PMM94]
70 Curs pentru învăţământ la distanţă

Limbajul algoritmic realizează o scriere mai apropiată de cea liniară. Permite folosirea
unor instrucţiuni care conţin condensat câteva subscheme utilizate frecvent şi câteva
reguli simple de aliniere a textului scris.
Având un algoritm descris într-un astfel de limbaj, translatarea în limbaj de programare nu
presupune decât o concentrare asupra aspectelor sintactice.
Limbajul algoritmic (pseudocodul) realizează specificarea algoritmilor prin două
tipuri de enunţuri: nestandard şi standard:
- enunţurile nestandard sunt fraze în limbaj natural, care pot fi utilizate de
programator în schiţarea formelor iniţiale ale algoritmilor; ele pot fi înlocuite treptat cu
enunţuri standard; sunt marcate cu simbolul „*”;
- enunţurile standard exprimă operaţii cu corespondenţe directe în limbajele de
programare.

Observaţie. Limbajul algoritmic nu este conceput cu un limbaj de programare; are


puţine reguli sintactice, lăsând o mare libertate de exprimare a acţiunilor algoritmilor.
Principalele elemente ale limbajului algoritmic sunt:
A. Cuvintele cheie – sunt cuvinte care identifică o instrucţiune; vor fi evidenţiate în scris.
B. Datele – pot fi clasificate conform mai multor criterii:
- după tip: date numerice (întregi şi reale); logice (booleene) şi şir de caracter;
- după natură: constante şi variabile;
• constantele întregi şi reale sunt numere întregi şi reale reprezentante în modul
uzual;
• constantele booleene (logice) sunt adevăr (T) şi fals (F);
• variabilelor li se asociază un nume, care este un şir de caractere alfanumerice
(litere sau cifre), începând cu o literă;Organizarea datelor – admitem
următoarele moduri de organizare a datelor: tablouri
(vectori şi matrice), lista, stiva, coada, articolul şi fişierul.
Operaţiile cu date – depind de natura şi organizarea datelor;
- asupra datelor numerice se folosesc operaţiile uzuale: adunarea, scăderea, înmulţirea,
împărţirea şi exponenţierea, comparaţiile uzuale (<, >, ≤, ≥, =, ≠), rezultatul fiind
exprimat printr-o valoare logică;
- asupra datelor logice se pot efectua operaţiile de disjuncţie (or), conjuncţie (and) şi
negaţie (not);
- asupra şirurilor de caractere se pot efectua concatenarea şi comparaţiile (bazate pe
ordinea lexicografică).

C. Instrucţiunile limbajului algoritmic

1. Instrucţiuni de citire/scriere:
read lista – variabile
write lista – variabile

Citirea constă din transferul de valori de pe mediul de intrare în locaţiile de memorie ale
calculatorului. Scrierea constă din transferul conţinutului (valorii) unor variabile de memorie pe
mediul de ieşire. Pentru citirea/scrierea unor variabile de tip tablou vom utiliza forma:
Bazele informaticii economice 71

vi ,i  1,n sau aij ,i  1,m, j  1,n


2. Instrucţiunea de atribuire:

variabilă: = expresie

Se evaluează expresia şi rezultatul este atribuit variabilei.

3. Instrucţiunea de oprire:
stop

Marchează sfârşitul algoritmului.

4. Instrucţiunea de ramificare: if condiţie


then secvenţa 1
else secvenţa 2

Observaţie. Prin secvenţă înţelegem un grup de instrucţiuni scrise una după alta.

5. Instrucţiunea repetitivă condiţionată anterior (ciclul cu test iniţial):

while condiţie
do secvenţa
Se execută secvenţa atât timp cât condiţia este adevărată; dacă rezultatul evaluării este fals
execuţia se termină.

6. Instrucţiunea repetitivă condiţionată posterior (ciclul cu test final):

repeat
secvenţa
until condiţie
Se execută secvenţa (cel puţin o dată) până condiţia devine adevărată.

7. Instrucţiunea repetitivă cu un număr fixat de paşi (ciclul cu contor):

for contor = val.


iniţială, val. finală,
pas do secvenţa

Observaţie. Instrucţiunea „ciclul cu contor” o considerăm echivalentă cu:

Contor : = val. iniţială


72 Curs pentru învăţământ la distanţă

while (contor – val. finală) × pas ≤ 0


do secvenţă
contor: = contor + pas

8. Instrucţiunea de ramificare multiplă: case expresie of C1 : secvenţa 1


………………

Cn : secvenţa n
else secvenţa n + 1

Se evaluează expresia; dacă valoarea expresiei este egală cu C1, C2, . . . , Cn se execută
secvenţa corespunzătoare: secvenţa 1, secvenţa 2, . . ., secvenţa n. În caz contrar se
execută secvenţa n + 1.

9. Instrucţiunea de ramificare redusă: if condiţie


then secvenţa

10. Instrucţiunea de ieşire dintr-un ciclu:


exit

Determină trecerea la execuţia primei instrucţiuni care urmează celui mai interior ciclu while,
repeat, for care o conţine, ieşindu-se deci din acel ciclu.

11. Comentariul are forma:


/* şir de caractere */

Comentariul poate apărea oriunde în program, având rolul de a mări claritatea algoritmului, oferind
explicaţii suplimentare.

Exemple.
1. Algoritmul de calcul al factorialului N!123N se poate prezenta în limbaj algoritmic
astfel:

read N read N read N


F :1 F :1; i:1 F :1;
i:1 for i 1,N,1 while N  i repeat
do F : Fi do F : F i F : Fi
i: i 1 i:=i+1
write F Write F until N  i
Bazele informaticii economice 73

write F
stop stop stop

2. Diferenţa a două mulţimi date sub formă de vectori (trecerea în limbaj algoritmic a schemei
logice structurate prezentate în paragraful 3.2).
/* diferenţa a două mulţimi */

read m,n, ai,i 1,m,bj, j 1,n


l : 0 ; i:1
repeat logic: =T repeat
j :ifa1i  bj
then logic: = F
else j : j 1
until j  n or (not logic)
if logic
then l : l 1
cl := ai

i: i 1 until
i  n

if l  0
then write „diferenţa este vidă”

else write ci, j 1,l


stop.

PROCEDURI ŞI FUNCŢII
Un program poate face apel la unul sau mai multe subprograme.
Structura programului complet conţine:
- un program principal, care nu poate fi apelat ca subprogram; -
o structură de subprograme.
Dacă programul P face apel la un alt program P 1, atunci P se numeşte program apelant, iar
P1 se numeşte program apelat (subprogram).
Subprogramele reprezintă secvenţe de operaţii executate în scopul rezolvării unei
probleme. Aceeaşi secţiune din algoritm în mai multe puncte ale acestuia, poate fi scrisă
o singură dată şi apelată ori de câte ori este nevoie.
Utilizarea procedurilor şi funcţiilor conduce la creşterea eficienţei activităţii de
programare: părţi ale algoritmului pot fi proiectate, codificate şi testate independent una
74 Curs pentru învăţământ la distanţă

faţă de alta. Se pot construi mult mai uşor algoritmi cu complexitate mare, utilizând
module deja proiectate şi verificate. Aceasta sporeşte fiabilitatea programelor şi reduce
efortul de programare.

1. Utilizarea procedurilor:
procedure nume (parametrii
formali) secvenţa
end
apelul procedurii
call nume (parametrii efectivi)
2. Utilizarea funcţiilor:
function nume (parametrii formali)
secvenţa end apelul
funcţiei: nume (parametrii efectivi)

Exemplu. Calculul formulei n  n! se poate realiza utilizând o funcţie pentru k!n


C k

k!

calculul factorialului.
function FACT(M)
FACT: =1 for
i=1,M,1
do FACT: = FACT  i

end
Programul principal este:
read n, k
c: FACTn/FACTk/FACTnk
write c
stop
Comentarii.
 O procedură poate avea un număr oarecare de parametrii, eventual zero; de exemplu, o
procedură care realizează tipărirea unui mesaj fix nu are parametrii.
 Între parametrii formali şi cei efectivi se realizează o corespondenţă biunivocă;
corespondenţa este poziţională. Parametrii actuali şi cei efectivi trebuie să
corespundă cu număr şi tip.
 Pentru funcţii, lista de parametrii formali conţine doar parametrii de intrare; singurul
parametru de ieşire este chiar numele funcţiei, care este utilizat în secvenţa de
operaţii a funcţiei ca orice parametru; apelul unei funcţii este considerat ca un
operand al expresiilor.

ITERATIVITATE ŞI RECURSIVITATE
Bazele informaticii economice 75

Iterativitatea este procesul prin care rezultatul este obţinut ca urmare a execuţiei
repetate a unui set de operaţii, de fiecare dată cu alte valori de intrare. Numărul de
iteraţii poate fi cunoscut, dar determinabil pe parcursul execuţiei. Indiferent de situaţie,
numărul de iteraţii trebuie să fie finit.
Recursivitatea este procesul iterativ prin care valoarea unei funcţii se determină pe
baza uneia sau mai multora dintre propriile ei valori anterioare, prin autoapelarea
funcţiei.
Valorile unei funcţii recursive se calculează din aproape în aproape, pe baza valorilor cunoscute
ale funcţiei pentru anumite argumente iniţiale.
Puterea de exprimare a recursivităţii constă în posibilitatea definirii unui număr
infinit de calcule printr-un program recursiv, chiar dacă acesta nu conţine repetări
explicite.
Instrumentul necesar şi suficient folosit la exprimarea calculelor recursive este
subprogramul (procedură sau funcţie) deoarece acest mecanism permite identificarea
printr-un nume a mai multor instrucţiuni.
Subprogramul P este direct recursiv dacă se autoapelează, adică P conţine o referire explicită
la el însuşi.
Subprogramul P este indirect recursiv dacă P conţine un apel la subprogramul
Q, care conţine o referire directă sau indirectă la P.
Pentru a nu conduce la calcule infinite, un subprogram recursiv trebuie să conţină o
condiţie C care la un moment dat devine falsă, caz în care se încheie apelarea recursivă.
Schema unei proceduri recursive poate fi descrisă astfel:

procedure P
if C then . . .
call P
………..
end

Tehnica cea mai des utilizată pentru a termina apelul recursiv constă în definirea unei
funcţii f x, astfel încât f x 0 determină terminarea apelului recursiv.
Dacă se poate demonstra că la fiecare apel valoarea funcţiei scade, atunci rezultă caracterul finit
al calculului descris de procedura respectivă.
Pentru a exemplifica procedeul considerăm funcţia factorial descrisă de:

factn  1, dacă n0

nfactn -1, dacă n 1

Calculul pentru n  4 decurge astfel:

fact4 4 fact3 43 fact2 432


fact1  4321 fact0
43211 4321
76 Curs pentru învăţământ la distanţă

 432 46  24.

Funcţia recursivă va fi: function


FACTn if n  o
then FACT :1
else FACT : nFACTn1
end
Un algoritm recursiv poate fi înlocuit cu unul iterativ echivalent cu el.
În general forma iterativă a unei funcţii este mai eficientă decât cea recursivă în ceea ce
priveşte timpul de execuţie şi memoria ocupată. Pentru probleme de complexitate redusă
este preferată varianta iterativă.
Forma recursivă este preferată în cazurile în care transformarea recursivităţii în
interaţie cere un efort de programare deosebit, algoritmul pierzându-şi claritatea
exprimării, testarea şi întreţinerea devenind astfel foarte dificile.

Aplicaţie.

Se consideră polinomul Px 0x  1 x


a n a n1 a a
 n1x n cu

x
ai , i  0,n. Să se calculeze valoarea polinomului pentru 0 dat.
Polinomul se poate scrie:
Px  0x 1x n1x
a a a a
n şi rezultă relaţiile de recurenţă:

P  a0
P  Px0 ai, pentru i 1, 2,n
Algoritmul iterativ de calcul a valorii polinomului este:

read n, ai,i  0,n,x0


P:

a0
; k
:1 while k  n do
P: Px0 ak
k : k 1
write x0,P
stop
Bazele informaticii economice 77

În variantă pentru determinarea valorii polinomului Px de grad n trebuie calculată funcţia
poln definită recursiv astfel:

poln  a0, dacă n 1

poln1 x  a0 , dacă n 1
Algoritmul recursiv de calcul a valorii polinomului este:
function POL n if n  0 then POL : a0

else POL : POLn1x0 an

end

read n, ai, i  0,n, x0


P: POLn write
x0, P
stop

3.4. ANALIZA ALGORITMILOR


[BAU91], [BVB97], [GNC96], [LIG86], [PMM94]

Pentru rezolvarea unei probleme se pot construi mai mulţi algoritmi, care pot
avea o comportare diferită, chiar dacă setul de date de intrare este acelaşi. Comportarea
se referă la timpul de execuţie şi la memoria necesară.
Analiza unui algoritm înseamnă determinarea resurselor necesare pentru funcţionare
(timp de execuţie şi necesare de memorie). Datorită evoluţiei sistemelor de calcul,
problema memoriei a devenit secundară. Timpul necesar execuţiei unui algoritm este în
general dependent de numărul datelor de intrare.
Pentru fiecare algoritm se poate estima în funcţie de diverse date de intrare
(numărul de parametrii, mărimea tablourilor folosite etc.) un ordin de mărime al timpului
în care se realizează comparările cuprinse în acel algoritm (se consideră) că fiecare
operaţie de comparare se execută într-un segment de timp care se ia ca unitate).
Fie f : N  R* o funcţie arbitrară

Definiţia 3.3. Ordinul lui f n este mulţimea funcţiilor gn mărginite superior de
un multiplu pozitiv al lui f n, adică:

Of n g : N  R*cR , nN, gn c f n




78 Curs pentru învăţământ la distanţă

În această idee, dacă o implementare a unui algoritm, nu ia mai mult de gn secunde
pentru a rezolva o problemă cu n comparaţii (sau operaţii aritmetice), atunci orice altă
implementare a aceluiaşi algoritm ia un timp de ordinul lui gn secunde. Spunem că
un astfel de algoritm ia un timp de ordinul lui f n pentru orice funcţie f : N  R*
astfel ca gnOf n.
În general însă se încearcă exprimarea ordinului unui algoritm ca timpul de rulare al celei mai
simple funcţii f astfel ca gnOf n.
Să presupunem că printr-o analiză riguroasă s-a ajuns pentru timpul de execuţie al unui
algoritm la expresia:

T n an bnc
2

an2
De la un n suficient de mare termenul preponderent devine , ceilalţi având o
contribuţie nesemnificativă la valoarea exactă pentru T n şi deci vor fi neglijaţi. De
asemenea, factorul constant din expresia termenului principal va fi ignorat, pentru că şi
el devine nesemnificativ în caracterizarea ordinului de mărime. Pentru rezultatul obţinut
prin aceste simplificări vom nota:

T n O n  2

Practica a impus ca acceptabili numai algoritmii cu comportare în timp polinomială, adică pentru care

k  0 cu T n
O
n .
k

Algoritmii cu comportare în timp exponenţială sunt consideraţi inacceptabili; pentru o


întreagă clasă de astfel de algoritmi nu se cunoaşte dacă pot fi reduşi la algoritmi cu
eficacitate polinomială.
În tabelul 3.1, se prezintă variaţia timpului de execuţie în cazul comportării polinomiale şi
exponenţiale pentru mai multe valori ale lui n.

Tabelul 3.1. ([BAU91])


O n
n =10 n = 20 n = 30 n = 40 n = 50 n = 60


n 0.00001 0.00002 0.00003 0.00004 0.00005 0.00006
sec sec sec sec sec sec
n2 0.0001 0.0004 0.0009 0.0016 0.0025 0.0036
sec sec sec sec sec sec
n3 0.001 0.008 0.027 0.064 0.125 0.216
sec sec sec sec sec sec
n5 0.1 3.2 24.3 1.7 5.2 13.0
sec sec sec sec sec sec
2n 0.001 1.0 17.9 12.7 35,7 366
Bazele informaticii economice 79

sec sec min zile ani secole


3n 0.059 58 6.5 38.55 8 13
210 1.310
sec min ani secole secole secole

În general se consideră că un algoritm este mai eficient decât altul dacă are un ordin de
mărime pentru timpul de execuţie mai mic.

Exemplu. Determinarea minimului şi maximului elementelor unui vector. Se dă


vectorul A   1, 2,, n; să se determine; m  min a1,a2,,an şi M
a a a

 maxa1,a2,,an.

Metoda 1.
O metodă evidentă este de a determina în paralel cele două valori. Algoritmul este:
/* algoritmul MINIMAX1*/

read n, ai,i 1,n m: a1;


M : a1
for i 
2,n do if
ai  m
then m:
a1

if ai  M

then M : ai

write m, M
stop
Numărul de comparaţii efectuate între elementele vectorului A şi valorile m şi M este
2n1

Metoda 2.
a
Algoritmul prezentat anterior poate fi îmbunătăţi dacă se efectuează comparaţia i  M
a
numai în cazul în care condiţia i  m este falsă.
Algoritmul este următorul: /*
algoritmul MINMAX2 */
80 Curs pentru învăţământ la distanţă

read n, ai,i 1,n

m: a1; M : a1 for


i  2,n
do if
then m: a1
else if ai  M
then M : ai

write m, M stop
Cazul cel mai defavorabil apare atunci când elementele vectorului sunt în ordine
crescătoare, numărul de comparaţii fiind 2n1. Se poate arăta că numărul mediu de
comparaţii în acest caz este 3n/21.

Metoda 3.
În funcţie de paritatea lui n, se începe cu una din următoarele iniţializări:
 m: min a1,a2 M : max  1, 2
a a
- dacă n par
a a
- dacă n impar  m: 1 M : 1
Se consideră perechi succesive de elemente de forma:
ak ,ak1 cu k =3, 5, …, n-1 pentru n par;
şi k = 2, 4, …, n-1 pentru n impar.
Se compară m cu min  k , k1 şi M cu max  k , k1 actualizându-se eventual valorile
a a a a

variabilelor m şi M.
Algoritmul pentru această metodă este:
/* algoritmul MINMAX3 */
Bazele informaticii economice 81

read n,

ai,i
1,n  if
n mod 2 = 0
a a
then if 1 2

then m:a1; M :a2


a a
els e m: 2; M : 1
k :3 else m: a1; M : a1; k : 2

while kn-1
do
if ak,ak1
then if ak <m
then m: ak

a
ifthen Mk:1akM1
82 Curs pentru învăţământ la distanţă

else ifthen mak:+=1a<k+M1

ifthen aMk :>Mak

k :k2

write m,M
stop

Dacă n  2s se efectuează o comparaţie la iniţializare la iniţializare şi 3s 1comparaţii în continuare

 3s  2   3 2n  2comparaţii, unde x  nn1 ,,dacdacăă x nnx  n1

Dacăn  2s 1 nu se efectuează nici o comparaţie la iniţializare şi 3s 1

  
comparaţii în rest, deci  3s 3  3 2 n  2 comparaţii.


Propoziţia 3.1. Orice algoritm care determină cel mai mic şi cel mai mare element al unei
mulţimi neordonate cu n elemente necesită cel puţin

   
3 2 n  2 comparaţii.


Concluzie. Algoritmul prezentat în metoda 3 este optim.

VERIFICAREA CORECTITUDINII ALGORITMILOR


Algoritmul trebuie să furnizeze rezultate corecte pentru orice set de date-testarea unui
algoritm pentru toate seturile de date nu este în general posibilă.
Datorită caracterului secvenţial al calculelor efectuate, un algoritm corect se încheie
după parcurgerea unui număr finit de paşi; în caz contrar se spune că algoritmul ciclează.
Verificarea corectitudinii unui algoritm cuprinde două probleme:
a) problema corectitudinii parţial – constă în verificarea corectitudinii
rezultatelor, în ipoteza că algoritmul se încheie într-un număr finit de paşi;
b) verificarea terminării într-un număr finit de paşi.
Cele două aspecte: a) şi b) formează problema corectitudinii totale.
Bazele informaticii economice 83

3.5. LIMBAJUL CONVENŢIONAL [BVB97],


[VAD76]
În limbaj convenţional algoritmul se reprezintă printr-un şir ordonat de propoziţii care se
numerotează (paşii algoritmului).
Se utilizează:
- propoziţii nestandard (care pot fi transformate în propoziţie standard); -
propoziţii standard.
Notăm:
 - condiţie simplă (predicat sau compusă; -
bloc de calcul, sau transfer la un alt pas; v -
variabilă
v0
- valoarea iniţială a variabilei
e - expresie aritmetică.
Propoziţii standard sunt:
• dacă  atunci 1altfel 2;
v0
• v  (iniţializare);
• v e (valoarea calculată a expresiei este atribuită variabilei);
• stop (marchează sfârşitul algoritmului);  citeşte / intrare (introducere datelor);
• scrie / ieşire (extragerea datelor).

Exemple.
1. Generarea unei variabile aleatoare simplă (variabilă discretă) de forma:

X : px 11px22  xp3n  , in1 p1 1

se poate realiza prin metoda inversă după următorul algoritm:
Pasul 0. Iniţializează RND (algoritmul de generare pentru numere aleatoare uniforme pe (0,1)).

x p
Pasul 1. Intrare: i,i 1,n ; i, i 1,n.
i

Pasul 2. Se calculează: i   j, i 1,n. j1


F p

Pasul 3. j  0; generează U cu RND


Pasul 4. j  j 1
84 Curs pentru învăţământ la distanţă

F
Pasul 5. Dacă U  j transfer la pasul 4.
x
Pasul 6. Ieşire X  j. Stop.

2. Evaluarea stocurilor prin metoda „prima intrarea prima ieşire” (FIFO) se


bazează pe principiul potrivit căruia „loturile procurate primele sunt şi primele primele
ieşite” ceea ce determină faptul că ultimele loturi rămân în stoc şi vor impune preţul de
inventariere.
Algoritmul de evaluare a stocului pentru un produs este:

S P
Pasul 0. Intrare: 0 (stocul iniţial), 0 (preţul unitar)
S P
Se calculează: soldul_ iniţial  0  0
Pasul 1. Intrări în cursul perioadei (stoc, preţ unitar):

Si,Pi , i 1,n.
n
Se calculează:
valoare_intrăr
i   i  i
S P

i1
Pasul 2. sold_maxim_disponibil = sold_iniţial +valoare_intrări
Pasul 3. Se determină stocul inventariat Q (prin evaluare directă)
S
sold_inventar  0 Pasul 4. Dacă Q  n
atunci sold_inventar = sold_inventar +Sn Pn
Q QSn; n  n1 şi transfer la pasul 4. altfel
sold_inventar = sold_inventar +QPn
Pasul 5. Se determină:
Valoare_vânzări = sold_maxim disponibil – sold_inventar
Pasul 6. Ieşire: valoare_vânzări, sold_inventar.
Stop.

3.6 TABELE DE DECIZIE


[LIX94], [POV88]

Tabele de decizie este un nou mod de reprezentare a unui algoritm, permiţând


formalizarea şi sintetizarea proceselor complexe de prelucrare a datelor precum şi
verificarea corectitudinii lor.
Tabele de decizie reprezintă un instrument util de comunicare între persoanele care participă
la realizarea unui proiect de sistem informatic.
Bazele informaticii economice 85

Cu ajutorul tabelelor de decizie este posibilă analiza proceselor complexe de decizie şi


evidenţierea eventualelor ambiguităţi.
În esenţă un proces de decizie este determinat de condiţii şi acţiuni în relaţie unele cu altele.
Legarea unei anumite situaţii, caracterizată prin realizările concrete ale factorilor de
influenţă, de o anumită variantă de adoptat se va numi regulă pentru cel ce ia decizia.

Definiţia 3.4. O tabelă de decizie ( TD ) asociată unui proces de prelucrare P este un tablou
bidimensional (cu dublă intrare) având forma prezentată în figura 3.2, unde:

C
i,i 1,nsunt condiţiile (situaţiile semnificative) ale procesului P; aceste condiţii sunt variabile logice, fiecare
condiţie i putând să ia i  i  2 valori logice alternative;
C v v

A
j, j 1,m sunt acţiunile posibile (programele de acţiuni) ale procesului P, care se iau când condiţiile
îndeplinesc anumite sisteme de valori;

R
k, k 1,M sunt regulile ce precizează acţiunile ce se execută pentru sistemul de valori asociat condiţiilor.

Se notează TD TDn,m,M. Se observă că numărul maxim posibil de reguli


distincte ale unei tabele de decizie este:
n
N   vi (3.4) i1
n
Deoarece vi  2  N  2 .
R1 R2 … RM
C1 C2 C11 C12 … C1M
. C21 C22 Intrări condiţii C2M
. …
Condiţii .
Cn
Cn1 Cn2
CnM
A1 A2 *
. *
Acţiuni .
. Intrări acţiuni *
Am
*
Figura 3.2

În consecinţă, tabela de decizie este o matrice de forma n  mM , primele n


linii reprezentând condiţiile şi următoarele m reprezentând acţiunile; cele M coloane ale
matricei reprezintă regulile.
86 Curs pentru învăţământ la distanţă

R
Există două tipuri de reguli de decizie: AND şi OR. Regula k se numeşte regulă de tip
ND dacă legătura dintre valorile condiţiilor este: C1k AND C2k AND … AND Cnk şi se
numeşte de tip OR dacă C1k OR C2k OR . . . OR Cnk.

Definiţia 3.5. O tabelă de decizie care conţine toate regulile posibile (M=N) se numeşte tabelă
de decizie cu intrări complete.
În descrierea proceselor de prelucrare a informaţiilor tabelele de decizie nu sunt întotdeauna
complete.
De exemplu, dacă tabela are M reguli, M  N , tabela nu are intrări complete şi deci nu
este completă; pentru a o transforma într-o tabelă completă mulţimea regulilor care
lipsesc se identifică cu o nouă regulă (regula M 1) denumită regula ELSE, care se
ataşează tabelei. Dacă pentru regula ELSE nu este asociată o acţiune atunci la această
regulă se asociază acţiunea E= eroare.
Deci, când se construiesc tabele de decizie, acestea trebuie să fie complete; numai astfel
se pot descrie procesele complete de prelucrare, cerinţă ce se impune oricărui algoritm
de calcul.

Definiţia 3.6. Tabela de decizie RD (n, m; M) se numeşte cu intrări limitate

dacă i1,n, i  2. În acest caz se iau intrări ale condiţiilor valorile: D i TRUE şi
v C

N i  FALSE.
C

v
Dacă există i1,n, încât i 2 tabela se numeşte cu intrări extinse.

Observaţie. Orice tabelă de decizie cu intrări extinse este echivalentă cu o anumită


tabelă de decizie cu intrări limitate. Tabela cu intrări limitate obţinută prin transformare
are acelaşi număr de reguli ca şi cea iniţială, dar un număr de condiţii mult mai mare.

REDUCEREA TABELEI DE DECIZIE


Dacă mai multe reguli distincte ale tabelei conduc la acţiuni identice, atunci în anumite
condiţii tabela de decizie este redundantă, adică acele reguli se pot reduce la una
singură.
v C
Să presupunem că există i reguli pentru care intrările condiţiilor j, j  i (i fixat) sunt
C v
identice, iar condiţia i ; atunci cele i reguli se reduc la o singură regulă pentru care
C
condiţia i ia valoarea convenţională „indiferent”, notată ”~”. Această operaţie,
efectuată pentru toate seturile de reguli redondante se numeşte operaţia de reducere a
tabelei de decizie; iar tabela rezultantă se numeşte tabela redusă.

R
Definiţia 3.7. Regula k din tabela cu intrări limitate se numeşte elementară
Bazele informaticii economice 87

C
dacă ik "~”, i1,n şi se numeşte compusă dacă i1,n, încât Cik = ”~”.

Observaţie. Dacă regula compusă Rk are r intrări ”~” atunci aceasta conţine 2 reguli elementare.
Definiţia 3.8. O tabelă de decizie este ambiguă dacă există regulile compuse
R R R
Rk şi l cu k  l încât k  l  , adică regulile compuse au cel puţin o regulă elementară
comună.
R R A A R R
• Dacă k  l  , şi k  l , atunci k şi l sunt contradictorii (cele
două reguli compuse conţin reguli elementare contradictorii);
R R A A R R
• Dacă k  l  , şi k  l , atunci k şi l sunt redundante (cele două reguli
compuse conţin reguli elementare redundante).

Exemplu.
Să analiză tabela de decizie redusă:

R
Observăm că 1 este independentă de toate celelalte reguli deoarece pe linia condiţiei
C
1 avem (D), iar toate celelalte reguli au (N). Există 6 perechi de reguli dependente:

1)  2, 3 conţin în comun regula elementară (NDDD);


R R

2) R2,R4 conţin în comun regula elementară (NDDN);


3) R2,R8 conţin în comun regula elementară (NDDN);
4) R3,R7  conţin în comun regula elementară (NDND);
5) R4,R6 conţin în comun regulile elementare (NNDN) şi (NNNN);
6) R4,R8 conţin în comun regula elementară (NDDN);
24
Numărul total de reguli ce ar rezulta din cele 4 condiţii este 16 .
3 2
Tabele conţine 2 222 2211 22 reguli, din care 7 sunt comune, deci în tabelă
există 15 reguli din 16 posibile.
Rezultă că:
- tabela este incompletă;
- tabela este ambiguă;
- toate ambiguităţile sunt redundanţe.
88 Curs pentru învăţământ la distanţă

ALGORITMUL DE CONSTRUIRE A TABELEI DE DECIYIE CU INTRĂRI COMPLETE.


C v
Presupunem că fiecare din cele n condiţii, i, 1 i  n, are i alternative; se acceptă ordinea de
C C C
scriere pe verticală 1, 2, n.

N v
Pasul 1. Se calculează 1  N / 1, cu N dat de (3.4). Se scrie pe linie în dreptul
C N v
condiţiei 1de 1 ori fiecare din cele 1 valori logice ale condiţiei:
C
rezultă N valori logice ale condiţiei 1, fiecare din valori repetându-se în
N
grupe de 1.
N N v C
Pasul 2. Pentru i  2, 3,, n se calculează i  i1 / i , pe linia lui i se
N
vor scrie sub fiecare din grupele de valori constante ale condiţiei Ci1de i
v C
ori, fiecare din cele i valori ale condiţiei i . Se observă că
N
n 1, adică ultima condiţie va avea repetate de un număr de ori valorile sale în
aceeaşi ordine.

Notă. O interesantă aplicare a tabelelor de decizie se poate realiza în studiul şi elaborarea


legislaţiei. O lege juridică se referă de obicei la un anumit domeniu. Prevederile legii
sunt exprimate prin referiri la materii ( o materie poate fi interpretată ca o condiţie cu
mai multe valori logice descrisă prin termeni).
Îndeplinirea unui sistem de condiţii referitoare la materii conduce la o acţiune juridică.
Deci, o lege poate fi descrisă compact cu ajutorul unei tabele de decizie. Această tabelă
poate fi redusă – se va asigura astfel conciziunea legii. Stabilirea regulilor redundante şi
ambigue conduce la stabilirea corectitudinii legii; se pot astfel elimina, în faza de
elaborare, eventualele prevederi contradictorii ale legilor.
Pentru a exemplifica conceptul de tabelă de decizie se prezintă două aplicaţii, în care
regulile de decizie vor fi de tipul AND.

1. Sistemul de credite transferabile (ECTS) a fost introdus la Facultatea de Ştiinţe


Economice a Universităţii „Transilvania” din Braşov începând cu anul universitar
19981999.
Prevederile extrase din regulament care acţionează la trecerea din anul I în anul
II sunt:
a) înscrierea în anul II este condiţionată de obţinerea a minim 40 p.c.;
b) promovarea anului I este condiţionată de obţinerea a 60 p.c.;
c) punctele de credit alocate ciclului I (primii 2 ani de studiu) trebuie obţinute în maxim
3 ani, în caz contrar studentul este exmatriculat;
Bazele informaticii economice 89

d) în cazul unui concediu medical mai mare de 30 de zile de activitate didactică pe


semestru, prevederea de la punctul a) se reduce la 30 p.c., urmând ca în anul
II studentul să-şi completeze studiile, obţinând cel puţin 50 p.c. pentru a promova, astfel
încât perioada de 3 ani să nu fie depăşită.

Din analiza acestor prevederi, se deduc următoarele condiţii;


C1 – numărul de puncte de credite obţinute I: <30, [30, 40), [40, 60),  60 (4 valori);
C2 – dacă are concediul medical mai mare de 30 zile de activitate didactică pe semestru: D, N, (2 valori);
C3 – dacă a fost 2 ani în anul I: D, N (2 valori).

Acţiunile sunt:
A1 – studentul este declarat promovat şi este înscris în anul II; A2 –
studentul este înscris în anul II;
A3 – studentul rămâne în anul I (prelungire de şcolaritate); A4 –
studentul este exmatriculat.
Tabela de decizie cu intrări complete va avea 16 reguli. Aplicând algoritmul de construire a
tabelei de decizie cu intrări complete, se obţine:

R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13


R14 R15 R16
C1 60 60 60 60 40 40 40 40 30 30 30 30 30 30 30 30
C2 D D N N D D N N D D N N D
D N N
C3 D N D N D N D N D N D N D
N D N
A1 * * * *

A2 * * * * * *

A3 * *
* A4 * *
*

Observaţie. S-a notat două valori ale condiţiei C1 astfel: 30,40 cu ”30” şi

40,60 cu ”40”.

2. Algoritmul de interclasare a trei fişiere


Se consideră trei fişiere secvenţiale FA, FB, FC, având aceeaşi structură şi sortate după
valorile unui câmp cheie (cheia de sortare) K. Să se construiască tabela de decizie
asociată procesului de prelucrare care realizează interclasarea acestor fişiere. În urma
90 Curs pentru învăţământ la distanţă

procesului de interclasare rezult un fişier FD având înregistrările sortate după acelaşi


criteriu.
Din studiul problemei rezultă următoarele condiţii ( cu intrări limitate):
C1 – începutul procedurii;
C2 – s-a terminat fişierul FA (EOF (FA));
C3 – s-a terminat fişierul FB (EOF (FB));
C4 – s-a terminat fişierul FC (EOF (FC));
C5 – cheia înregistrării SA este mai mică decât a înregistrării SB (KAKB);
C6 – cheia înregistrării SA este mai mică decât a înregistrării SC (KAKC);
C7 – cheia înregistrării SB este mai mică decât a înregistrării SC (KBKC);

Acţiunile sunt:
A1 – scrierea înregistrării SA în FD;
A2 – citirea fişierului FA;
A3 – scrierea înregistrării SB în FD;
A4 – citirea fişierului FB;
A5 – scrierea înregistrării SC în FD;
A6 – citirea fişierului FC; A7 –
reluarea examinării tabelei; A8 –
încheierea procedurii.

Algoritmul de interclasare este cel general şi constă în: Pasul 1.


Citirea simultană a celor trei fişiere.
Pasul 2. Din tripletul (SA, SB, SC) se alege înregistrarea cu cea mai mică valoare şi aceasta
va fi scrisă în fişierul rezultat FD.
Pasul 3. Tripletul este refăcut prin citirea următoarei înregistrări din fişierul ce conţine
ultima înregistrare scrisă în FD.
Pasul 4. După ce s-a atins sfârşitul unui fişier, procesul continuă pentru celelalte fişiere
rămase.
Pasul 5. În momentul în care se depistează şi sfârşitul celui de-al doilea fişier, articolele
rămase în cel de-al treilea vor fi transferat în FD.

Tabele de decizie obţinută este:


Bazele informaticii economice 91

3.7. STRUCTURI ELEMENTARE DE DATE


[BVB97], [CRA98], [GNC96], [IVA92], [LIG86], [LIX94], [PMM94], [TUD94]

Rezolvarea unei probleme cu calculatorul începe cu definirea structurilor de date,


continuă cu utilizarea acestora şi se încheie cu stocarea rezultatelor prelucrării tot sub
forma unor structuri de date.
Limbajele de programare în marea lor diversitate se aseamănă prin tipurile de date care
pot utilizate. Trecerea de la un limbaj la altul în condiţiile cunoaşterii caracteristicilor
generale ale structurilor de date, devine posibilă cu un efort minim. Fiecărui tip de dată
şi mod de structură îi corespund anumite situaţii în care utilizarea conduce la timp de
acces la informaţie şi necesare de memorie reduse. În caz contrar, pot apărea operaţii de
prelucrare suplimentare (conversii, citiri şi scrieri) care micşorează viteza de obţinere a
rezultatelor, conducând la creşterea costului prelucrării. Organizarea datelor este un
proces complex în care se stabilesc structurile logice şi fizice de date. Modul de
organizare a datelor influenţează hotărâtor calitatea programelor şi eficienţa prelucrării.
Data scalară (elementară) este o entitate indivizibilă atât în raport cu informaţia pe care o
reprezintă, cât şi în raport cu procesorul care o prelucrează.
Data scalară este definită de un triplet de forma: (identificator, atribut, valoare).
• identificatorul – este numele datei pentru a o putea distinge de alte date şi a o putea
referi în procesul de prelucrare;
• atributele – precizează proprietăţi ale date: domeniul de valori, apartenenţa la o
anumită clasă de date, mod de reprezentare, precizie. Atributele determină modul de
prelucrare al datei.
• valorile – pe care le poate lua data, se pot preciza prin enumerare sau printr-o
proprietate comună.

Structura de date reprezintă o colecţie de date pe care s-a definit o structură şi pentru care s-au
stabilit procedee de înregistrare şi identificare a componentelor.
92 Curs pentru învăţământ la distanţă

Componentele unei structuri de date pot fi date elementare sau alte structuri de date.
Acestea sunt identificate şi selectate prin nume (identificatori) sau prin poziţia pe care o
ocupă în structură..

3.7.1. STRUCTURA DE TABLOU

Tabloul este o structură de date constituită dintr-o mulţime de elemente de acelaşi tip.
Specificarea unui tablou se face precizând numele, dimensiunea, tipul componentelor,
limitele valorilor indicilor pentru fiecare dimensiune. Tabloul cu o dimensiune se
numeşte vector iar cel cu două dimensiuni matrice. Referirea elementelor se realizează
specificând numele tabloului şi poziţia elementului sub forma unei expresii indiciale
pentru fiecare dimensiune în parte. Memoria internă a unui calculator poate fi
considerată ca fiind structurată liniar. Variabilele simple ocupă câte o locaţie de
memorie, iar elementele unui vector ocupă în ordine locaţii succesive de memorie.
Fie A o matrice de m linii şi n coloane; pentru memorarea ei se pot folosi două metode:
a) sunt memorate succesiv coloanele matricei;
b) sunt memorate succesiv liniile matricei.

În cazul memorării pe coloane se realizează o corespondenţă bijectivă între indicii matricei


Amn şi numărul locaţiei de memorie corespunzător:

f :1,2,,m 1,2,,n 1,2,,mn

f i, j j 1mi  k


(3.5)

1
Calculul funcţiei inverse f ;

 k 1
j   1, i  k j 1m (3.6)

m

unde x n dacă n  x  n1 (partea întreagă inferioară).


Bazele informaticii economice 93

Fie 1, 2,, n mulţimi total ordonate; se notează cu , cele n relaţii de ordine.
A A A
A A A
Atunci pe mulţimea 1 2  n se pot introduce următoarele relaţii de ordine:
1) relaţia de ordine lexicografică: pentru a   1, 2,, n avem a  a' dacă:
a a a

a  a' sau a  a' , adică i 0,1,,n1 astfel


încât:

a1  a1' ,,ai  ai' , ai1  ai'1


2) relaţia de ordine invers lexicografică: a  a' dacă: a 
a' sau a  a' , adică i 1,2,,n astfel încât:
a a a' a a '
i  a', i1  i 1,, n  n

Observaţie. Pentru o matrice A M mn, ordinea de memorare pe linii corespunde ordinii


lexicografice, adică:

 1,2 1, 3 2,1


iar ordinea de memorare pe coloane corespunde ordinii invers lexicografice, adică:
 2,1 3,1 1,2 2, 2
3.7.2. STRUCTURA DE LISTĂ

Lista liniară este o structură de date omogenă, secvenţială formată din elemente aparţinând unei
mulţimi date. Cele două capete ale listei se numesc bază, respectiv vârf.
Fiecare element al listei informaţia specifică şi eventual informaţia de legătură.
Poziţia elementelor din listă defineşte ordinea elementelor.
Asupra listelor se pot efectua operaţii de tipul:
- accesul la un anumit element, identificat prin numărul de ordine din listă sau prin
valoare;
- ştergerea (eliminarea) unui element dintr-o listă; - concatenarea listelor;
- inserarea unui element într-un anumit loc din listă; - reordonarea elementelor conform
unui anumit criteriu; - descompunerea unei liste în mai multe liste.
Memorarea listelor liniare se poate face în mai multe moduri:

a) Alocarea secvenţială (statică) – constă din memorarea elementelor listei în


locaţii succesive de memorie, conform ordinii din listă (elementele vecine ocupă
poziţii alăturate în memorie). Adresa de bază reprezintă adresa primului element
din listă (figura 3.3).

e e e
1 2 n

adresa de bază
94 Curs pentru învăţământ la distanţă

Figura 3.3

Operaţiile de acces la un element din listă, parcurgerea listei şi adăugarea unui


element la sfârşitul listei se fac fără dificultate, în timp ce operaţiile de inserare
şi ştergere de elemente din mijlocul listei presupun deplasarea unor elemente.

b) Alocarea înlănţuită (dinamică) – presupune că fiecare element al listei are două


părţi (figura 3.4):
- o parte de informaţie;
- o parte de legătură ce conţine adresa următorului element din listă (pointerul la
elementul următor).

inf ○ inf inf inf

Figura 3.4.

Alocarea înlănţuită cere mai multă memorie decât alocarea secvenţială. Ştergerea şi
inserarea de elemente se fac prin modificarea unor adrese de legătură (figurile 3.5 şi 3.6).
Căutarea unui element se face, ca şi în cazul alocării statice, prin parcurgerea secvenţială
a listei, de la începutul către sfârşitul listei.

şters inserat

Figura 3.5 Figura 3.6

Pentru a putea referi cu uşurinţă elementul dinaintea elementului curent se poate utiliza lista
dublu înlănţuită (figura 3.7). Fiecare element conţine trei părţi:
- o parte de informaţie;
- adresa elementului predecesor din listă;
- adresa elementului următor din listă.

inf inf inf inf

Figura 3.7.
Bazele informaticii economice 95

Avantaj – alocarea dublu înlănţuită permite refacerea cu uşurinţă a drumului invers de la un


element la primul element.

3.7.3. STRUCTURA DE STIVĂ

Prin stivă (stack) se înţelege o listă liniară cu proprietatea că operaţiile de introducere şi


extragere din stivă se fac pe la vârful stivei. Elementul vizibil este ultimul introdus în
structură (figura 3.8).

elementul
vizibil
(vârful stivei )

baza stivei

Figura 3.8.

Stiva mai poartă numele, după disciplina de lucru, de lista LIFO (Last Input First Output),
adică, ultimul intrat este primul ieşit.
Stiva se poate implementa folosind alocarea secvenţială sau alocarea înlănţuită; implementarea
presupune un spaţiu limitat de memorie.
În cazul alocării secvenţiale, elementele stivei vor fi memorate într-un vector; dimensiunea vectorului
reprezintă capacitatea maximă a stivei.
În cazul alocării înlănţuite, adresa de bază este adresa vârfului stivei, legăturile mergând de la
ultimul spre primul element (de la vârf spre bază).
Încercarea de a scoate un element dintr-o stivă vidă sau de a adăuga un element unei stive
pline conduce la eroare (underflow / overflow).
Întreaga teorie a recursivităţii se bazează pe structura de tip stivă.

3.7.4. STRUCTURA DE COADĂ


Prin coadă (queue) se înţelege o listă în care introducerile se efectuează la baza listei,
iar extragerile se fac la vârful listei. Coada se mai numeşte lista FIFO (First Input First
Output) după disciplina de lucru, adică primul intrat este primul ieşit (figura 3.9).

Elementul vizibil


Baza Vârful
Figura 3.9.

În cazul cozii, elementul vizibil este cel mai vechi introdus.


96 Curs pentru învăţământ la distanţă

Coada se poate implementa folosind alocarea secvenţială sau alocarea înlănţuită.

3.7.5. STRUCTURILE DE GRAF ŞI ARBORE

Definiţia 3.9. Un graf neorientat este o pereche G  X, , unde X este o mulţime
finită, nevidă de elemente numite noduri, iar  X X este o mulţime de perechi
(neordonate) ale lui X, numite muchii.

Definiţia 3.10. Numim lanţ o succesiune de muchii de forma


i1,i2,, in1,in,notată i1,i2,i3,,in; dacă nodurile sunt distincte, lanţul este
elementar.
Numim ciclu elementar un lanţ  1, 2,, n, 1 unde  1, 2,, n, n  3 este un lanţ
i i i i i i i

elementar.

Definiţia 3.11. dacă orice două noduri ale grafului sunt unite prin cel puţin un lanţ graful se
numeşte graf conex.

Definiţia 3.12. Un digraf (graf orientat) G  X,are proprietatea că  este o


mulţime de perechi ordonate de elemente din X. Elementele lui X se numesc în acest caz
vârfuri, iar elementele lui  se numesc ace. În acest caz lanţul se numeşte drum, iar
ciclul se numeşte circuit.
Definiţia 3.13. Se numeşte arbore un graf neorientat, conex şi fără cicluri.

TEOREMA DE CARACTERIZARE A ARBORILOR


G este un graf cu n 1 noduri. Următoarele afirmaţii sunt echivalente:
1. G este un arbore;
2. G are n1 muchii şi nu conţine cicluri;
3. G are n1 muchii şi este conex;
4. Oricare două vârfuri din G sunt unite printr-un lanţ mic.

Definiţia 3.14. Un arbore în care fiecare nod are cel mult doi descendenţi se numeşte arbore
binar.

Arborii au o mare aplicabilitate în modelarea proceselor şi fenomenelor economice.


Organizarea ierarhică este întâlnită în cele mai diverse domenii, de la organizarea
administrativă a unei ţări şi conducerea unei organizaţii (firmă, instituţie etc.), la
reprezentarea bazelor de date şi a directoarelor în care sunt grupate fişierele de pe disc.
Într-o concepţie sistematică, în general, orice entitate din natură sau societate poate fi
reprezentată ca o ierarhie de componente.
În literatura de specialitate se utilizează o serie de termeni consacraţi, preluaţi din
terminologia în cazul arborilor genealogici.
Bazele informaticii economice 97

De exemplu, în cazul structurii de reprezentare arborescentă (figura 3.10)


spunem:
 … nivel = 1; adâncime = 0

  . . . nivel = 2; adâncime = 1

. . . nivel = 3; adâncime = 2
  

Figura 3.10

•  este fiul lui 


•  şi  sunt fraţi
•  este un descendent al lui 
•  este un ascendent (strămoş) al lui 

Nodurile fără descendenţi ,,, sunt denumite noduri terminale sau frunze. Nodul 
se numeşte rădăcina arborelui.
Adâncimea unui nod este dată de lungimea drumului de la rădăcină la acel nod.
Nivelul unui nod este egal cu (1 + adâncimea nodului). Rădăcina are nivelul 1.
Înălţimea unui arbore este egală cu maximul dintre nivelurile nodurilor
terminale, sau poate fi definită recursiv: înălţimea unui arbore = 1 + maximul dintre
înălţimile subarborilor săi.
Înălţimea arborelui din figura 3.10 este 3.

REPREZENTAREA UNUI ARBORE OARECARE cu n noduri se poate face memorând pentru


fiecare nod, următoarele două informaţii:

FIU i j , dacă j este primul descendent al nodului i (se presupune existenţa unei ordini
între descendenţii aceluiaşi vârf – primul este cel din stânga);
FRATE i j , dacă j este descendent al tatălui lui i (adică i şi j au acelaşi părinte) şi j
urmează imediat lui i.
Lipsa fiului, respectiv a fratelui este marcată prin valoarea 0.
98 Curs pentru învăţământ la distanţă

Exemplu .
1

2 3 4

5 6 7 8

9 10 11 12

Figura 3.11

Pentru arborele din figura 3.11 cei doi vectori FIU şi FRATE vor fi:

1 2 3 4 5 6 7 8 9 10 11 12 FIU
2 5 7 0 0 9 0 11 0 0 0 0

FRATE
0 3 4 0 6 0 8 0 10 0 12 0
Celor doi vectori li

se adaugă un vector INF i, i 1,2, n, în care se memorează informaţia din fiecare nod.
O altă modalitate de reprezentare a unui arbore oarecare este de a forma pentru
fiecare nod o listă a descendenţilor săi. Se va utiliza vectorul INF i, i 1,2, n cu
aceeaşi semnificaţie ca mai sus, vectorul CAP cu n componente cu semnificaţia:

CAP i 0, dacă i este vârf terminal;

a, dacă lista descendenţilor lui i începe la adresa a


şi o matrice MAT cu două linii şi n1 coloane în care se memorează listele descedenţilor, folosind
pentru ele alocarea înlănţuită:

MAT 1, i - reprezintă un descendent al nodului pentru care lista ataşată conţine coloana i
din MAT;
MAT 2,i - reprezintă numărul coloanei (adresa) corespunzătoare următorului descendent sau 0,
dacă nu există vreun alt descendent.
Bazele informaticii economice 99

Pentru exemplu considerat în figura 3.11 avem:

1 2 3 4 5 6 7 8 9 10 11 12
CAP 1 4 6 0 0 8 0 10 0 0 0 0

1 2 3 4 5 6 7 8 9 10 11 12
MAT 2 2 3 0 5 0 7 0 9 0 11 0

De exemplu:
CAP (3) = 6, deci lista descendenţilor nodului 3 începe la adresa (coloana) 6 din MAT.
Rezultă că MAT (1, 6) = 7, adică primul descendent este 7, iar MAT (2, 6) = 7, adică la
adresa (coloana) 7 din MAT vom găsi următorul descendent, care este MAT (1,7) = 8.
Deoarece (2, 7) =0, rezultă că lista descendenţilor nodului 3 s-a încheiat.

Oricărui arbore i se poate ataşa un arbore binar, identificând FIU cu ST


(vectorul descendenţilor stângi), iar FRATE cu DR (vectorul descendenţilor drepţi). Corespondenţe
este biunivocă.

ST i j , dacă nodul j este primul descendent (descendent stâng) al nodului i; ST (i)=0, dacă nu
există descendent stâng;
DR i j , dacă nodul j este al doilea descendent (descendentul drept) al nodului i; DR
(i) = 0, dacă nodul i nu are descendent drept.

Pentru arborele binar din figura 3.12, cei doi vectori ST şi DR vor fi:

1 2 3 4 5 6 7
ST 2 5 6 0 0 0 0

DR 0 3 4 0 0 7 0

Exemplu
1

1 3

11
2 3 4 2 6 4

5 6 7 5 7

Figura 3.12
100 Curs pentru învăţământ la distanţă

PARCURGEREA ARBORILOR
Un algoritm de parcurgere a unui arbore trebuie să precizeze ordinea în care se vizitează
(prelucrează) nodurile arborelui, fiecare nod fiind considerat o singură dată.
Corespondenţa descrisă reduce parcurgerea arborilor oarecare la parcurgerea arborilor
binari ataşaţi. La un arbore binar distingem:
• rădăcina ( R)
• subarborele stâng (Ss)
• subarborele drept (Sd)
Parcurgerea arborilor binari se poate realiza în trei moduri:
1. parcurgere în preordine (R, Ş, Sd);
2. parcurgere în inordine (Ss, R, Sd) 3.
parcurgere în postordine (Ss, Sd, R).

Pentru arborele binar din figura 3.12, parcurgerile sunt următoarele:


• preordine : 1, 2, 5, 3, 6, 7, 4
• inordine : 5, 2, 6, 7, 3, 4, 1
• postordine : 5, 7, 6, 4, 3, 2, 1
Pentru reprezentarea unui graf oarecare G  X, cu n noduri se utilizează matricea adiacentă
A aij  definită astfel:
1, dacă i, j
aij  
 0, în caz contrar
Exemplu.

2 7
5 11
1
3 8

6 10

4 9
Figura 3.13

Pentru digraful din figura 3.13 matricea adiacentă este:


0 1 1 1 1 0 0 0 0 0 0
 
0 0 0 0 1 0 0 0 0 0 0
 
0 0 0 0 1 1 0 0 0 0 0
 
0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 1 1 1 0 0
Bazele informaticii economice 101

 
A 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 1
 
0 0 0 0 0 0 0 0 0 1 1
 
0 0 0 0 0 0 0 1 0 1 0
 
0 0 0 0 0 0 0 0 0 0 1
 
0 0 0 0 0 0 0 0 0 0 0 
Observaţie.
În cazul unui graf oarecare, matricea adiacentă este simetrică.

3.8. ALGORITMI FUNDAMENTALI


[CRA98], [CTT97], [GNC96], [LIG86], [LIX94], [PMM94], [TUD94]

3.8.1. PROBLEMA CĂUTĂRII


Fie A   1, 2,, n şi x o valoare: se cere să se determine dacă x se află printre
a a a

elementele vectorului A.

Rezolvare.
a) Dacă A este un vector oarecare, atunci trebuie parcurse secvenţial elementele
vectorului; sunt necesare cel mult n comparaţii în cazul unei căutări cu succes şi exact
n comparaţii în cazul unei căutări fără succes.
Numărul mediu de comparaţii în cazul unei căutări cu succes este:

1 2  n n 1
 n 2

b) Dacă A are elementele în ordine crescătoare:

a a a
1  2  n se aplică algoritmul
de căutare binară.
Algoritmul se bazează pe metoda „divide et impera”: se compară x cu elementul
102 Curs pentru învăţământ la distanţă

a
din mijloc, adică cu i , unde i 
 
n2 1

 . 

a
- dacă i  x căutarea se încheie cu succes;
a
- dacă i  x se caută în secvenţa:

a1,a2,,ai1 a
dacă x  i, sau în secvenţa
ai1,,an a
dacă x  i .

Soluţia va fi exprimată sub forma:

 1, p,dacă x  ap, p1,2,,n


cod, p 0, p, dacă ap1  x  ap, p1,2,,n 1

a a
unde: 0 
, n1 
2 j1 2 j
Propoziţia 3.2. Pentru  n în cazul unei căutări cu succes se fac cel mult j
comparaţii, iar în cazul unei căutări fără succes se fac j 1 sau j comparaţii.

Observaţie. Algoritmul de căutare binară prezentat este optim în privinţa numărului mediu de
comparaţii.

Algoritmul de căutare binară.

read n,x, ai,i 1,n


p:1; u: n; cod: 0
while p  u and cod  0

do i:  p2u  
Bazele informaticii economice 103


if a i x

then cod: = 1
p: = i
else if a i x

then p:i1
else u : i 1

scrie (cod, p) stop

Exemplu.
Dat vectorul A = (3, 5, 7, 8, 11, 15)
- pentru x =7 cod = 1, p = 3
- pentru x = 10 cod = 0, p = 5
- pentru x = 2 cod = 0, p = 1

3.8.2. PROBLEMA SORTĂRII

Problema sortării constă în a aranja elementele unei mulţimi date astfel încât acestea să
se găsească în relaţie de ordine lexicografică.
Dat vectorul A   1, 2,, n problema sortării constă în a ordona crescător elementele acestui
a a a
vector. Se prezintă în continuare mai multe metode de sortare.

A. SORTAREA PRIN INTERSCHIMBARE.

a a
Metoda constă din modificări succesive de forma i  i1 până când elementele
vectorului apar în ordine crescătoare; sortarea se termină când pornind cu perechea
a1,a2 şi terminând cu perechea an1,an nu s-a efectuat nici o schimbare.
Algoritmul de sortare prin interschimbare

read n, ai,i 1,n


104 Curs pentru învăţământ la distanţă

repeat

logic: = T
for i =1, n-1, 1

do if ai ai 1

then w: a i 

a i ai 1 


a i 1 : w  ai  ai1

logic: F 

until logic

write a i, i 1,n stop

Observaţie. Timpul de lucru este de ordinul


0
n ; memoria suplimentară este
2

constantă.

B. SORTAREA PRIN NUMĂRARE.


a
Metoda constă în a număra pentru fiecare element i câte elemente mai mici strict decât
el există; numerele obţinute se memorează într-un vector K, iar pe baza lui elementele
din A vor fi aranjate într-un alt vector B. (Elementele lui A se presupun distincte).

Algoritmul de sortare prin numărare.

read n, ai,i 1,n for i = 1, n, 1 do ki: 0

for j  2,n,1
Bazele informaticii economice 105

do for i 1, j 1,1 do if ai aj

then kj: kj1 else ki: ki1

for i 1,n,1

do bki1: ai

write bi, i 1,n stop

Observaţie. Sunt necesari 2 vectori de lucru de diemnsioune n, iar timpul de execuţie este
de ordinul O(n2)

C. SORTAREA PRIN INSERTIE DIRECTĂ

Se consideră pe rând fiecare element al şirului şi se inserează în subşirul ordonat creat


anterior din elementele precedente.
a a a a a
Fie j cu proprietatea 1  2  j1; se compară pe rând j cu a j1, j2, până
a a a a a
când se ajunge la primul i cu i  j ; ca urmare se va insera pe j după i ; operaţia de
inserare implică deplasarea spre dreapta a unei secvenţe.
106 Curs pentru învăţământ la distanţă

read n, ai,i

do x: aj; 1,n 


k : 0; for j  2, n 1
logic: F; i: j 1 repeat

if ai x

then k : i; logic:T else ai 1: ai; i: i 1

until i 1 or logic

ak 1; x write ai, i 1,n


stop

Observaţii. Algoritmul necesită în cazul cel mai defavorabil un timp de ordinul


O
n ;
2

memoria suplimentară este constantă.


O metodă derivat o constituie sortarea prin inserţie binară în care poziţia fiecărui
element care se inserează în subşirul ordonat creat anterior se determină prin cătare
binară.

D. SORTAREA PRIN SELECŢIE.

Constă în a plasa la fiecare pas un element al vectorului pe poziţia sa finală. La primul pas este
determinat

ak  min a1,a2,,an
a a
şi este efectuată interschimbarea 1  k , deci cel mai mic element este plasat pe poziţia sa
finală.
În general la pasul i i 1,2,,n1 se determină ak 
min ai,ai1,,an şi se efectuează interschimbarea i
a
a
 k.
Algoritmul de sortare prin selecţie.
Bazele informaticii economice 107

read n, ai,i 1,n i:1

repeat

k : i; min; ak; j : k repeat

if min  ak 1

then min : a k 1 j : k 1


k :k+1

until k  n a j: a i a i: min ii+1


until i  n

write a i, i 1,n stop

Observaţie. Timpul de lucru este de ordinul


O
n , iar memoria suplimentară este constantă.
2

E. ALGORITMUL DE SORTARE RAPIDĂ QUICKSORT (C.A. HOARE).

Foloseşte metoda generală „Divide et impera”. Dată o secvenţă

ap,ap1,,aq prin interschimbări de elemente ale secvenţei se poziţionează ap pe locul


k , adică se ajunge la situaţia:
sp,,k 1 şi tk 1,,q
a a a
s  k  t pentru
În continuare se pot sorta secvenţele:

Algoritmul QUICKSORT (varianta nerecursivă).

read n, ai, i 1,n


108 Curs pentru învăţământ la distanţă

s:1 ; stiva_st1:1; stiva_dr1: n


s: s1; i: st ; j : dr; x: a i  j/2

repeat

st =stiva_st (s) ; dr = stiva_dr (s) s =s-1 ; i


=st; j =dr ; x = a ([(i+j) / 2])

while ai x

do i:i 1

while x  aj

do j : j 1

if i  j

then w: ai; ai:aj; aj: w i: i 1; j : j 1


Bazele informaticii economice 109

until i  j if st  j then s: s1;


stiva_sts: st; stiva_drs: j
if i  dr then s: s1;
stiva_sts: i; stiva_drs: dr
until s  0

write ai, i 1,n


stop

Algoritmul QUICKSORT (varianta recursivă)

read n, ai,i 1,n


quicksort 1,n

write ai,i 1,n


stop
110 Curs pentru învăţământ la distanţă

procedure quicksort s,d

 i  j 

while ai x
do i:i 1
while x  aj do j : j 1
if i  j then ai aj i:i 1
j : j 1
until i  j
then quicksort s, j

then quicksort i,d


Bazele informaticii economice 111

3.8.3. PROBLEMA INTERCLASĂRII

Se dau 2 vectori:
A  a1,a2,,am şi B  b1,b2,,bn
având elementele ordonate crescător. Se cere să se interclaseze cele două şiruri, adică să se
construiască un vector:
C  c1,c2,,cmn
care să conţină atât elementele lui A cât şi ale lui B în ordine crescătoare.
a b
Dacă se compară i cu j sunt posibile două situaţii:
a b a
- dacă i  j se introduc în vectorul C elementul i şi toate elementele care îi
a b
succed lui i în vectorul A şi sunt mai mici decât j ;
b a b
- dacă j  i atunci se introduc în C atât elementul j cât şi elementele care îi
b a
succed lui j în vectorul B şi sunt mai mici decât i ;
- în momentul în care un vector este epuizat, elementele neparcurse ale celuilalt
vector sunt introduse în C şi algoritmul se termină.

Algoritmul de interclasare.

read m,n, ai,i 1,m, bj, j 1,n i:1 ; j :1; k


:0 while i  m and j  n
112 Curs pentru învăţământ la distanţă

if ai bj then


ck: ai
i:i 1
else ck:
bj j : j 1

then for s  j, n,1


do k : k 1

ck: bs

else for s  i, m,1 do k


: k 1
c(k):= a(s)

write ck, k 1,m n


stop

Observaţie. Numărul de comparaţii în cazul cel mai defavorabil este mn1.

3.9. APLICAŢII
[BVB97], [LIG86], [LIX94]

1. GENERAREA ELEMENTELOR UNUI PRODUS CARTEZIAN

Fie A şi B două mulţimi distincte sau nu.


Mulţimea tuturor perechilor ordonate x, y, unde x A şi xB se numeşte produs cartezian
a lui A cu B şi se notează AB , deci:

AB x, y/ x A şi yB


În cazul a m mulţimi produsul cartezian se defineşte astfel:

A1 A2 xAm x1,x2,,xm/ xi  Ai,1 m


Bazele informaticii economice 113

Fie m mulţimi 1, 2,, m, unde pentru fiecare i1,2,,m card


A A A

A n A
i  i . Elementele fiecărei mulţimi i se consideră în corespondenţă bijectivă cu m

mulţimea 1,2,, i. Se pune problema generării tuturor celor  i elemente ale n1
n n

produsului cartezian A1 A2 xAn..


Elementele produsului cartezian vor fi generate succesiv într-un vector V cu m componente, astfel:
- se pleacă de la vectorul (1, 1, . . ., 1);
- pentru a construi succesorul vectorului V se determină cel mai mare indice i pentru
v n
care i  i şi drept succesor al lui V se alege vectorul:

vi,,vi1,vi 1,1,,1
- dacă un astfel de indice i nu există înseamnă că vectorul V curent este
n1,n2,,nm care este cel mai mare în ordine lexicografică şi deci procesul de
generare s-a încheiat.
De exemplu, dacă 1 1, 2, 3, 2 1, 2 şi 3 1, 2, produsul cartezian
A A A
A A A
1 2  3 va avea 322 12 elemente care vor fi generate conform algoritmului în
ordinea: (1, 1, 1), (1, 2, 1), (1, 2, 2), (2, 1, 1), (2, 1, 2), (2, 2, 1), (3, 1, 1), (3, 1, 2), (3, 2,
1), (3, 2, 2).

Algoritmul de generare a elementelor unui produs cartezian.

read m, ni,i 1,m for i 1,m,1

do vi :1

write v j, j 1,m
logic: F
repeat

i: m repeat

v v
if vi  ni then i : i 1 logic:T else vi :1
114 Curs pentru învăţământ la distanţă

i:i 1 until i 1 or logic if logic

then write v j, j 1,m

logic: = not logic until logic

stop

2. GENERAREA TUTUROR SUBMULŢIMILOR UNEI MULŢIMI

Fie mulţimea A cu n elemente. O submulţime B a lui A este orice mulţime ale cărei
elemente aparţin toate lui A. Submulţimile B ale lui A care sunt distincte de A se numesc
submulţimi proprii ale lui A.
2n
Numărul de submulţimi ale unei mulţimi este . De
exemplu, dacă A a,b atunci
PA,a,b,a,b.
2n
Fiind dată o mulţime A cu n elemente, se pune problema determinării celor submulţimi ale
mulţimii A.
Dacă A  1, 2,, n se defineşte vectorul caracteristic al unei submulţimi B 
a a a

A, vectorul C0,1 : ci   01,,dacdacăă a aiiB B


n

Problema se reduce la generarea combinaţiilor de succesiuni de 0 şi 1 ce se pot forma pe n


poziţii, unde n reprezintă cardinalul mulţimii A.
Pentru a obţine toate aceste combinaţii se generează de fapt toate elementele produsului cartezian:
0,10,1x0,1 (de n ori)
Vectorul (0, 0, . . . , 0) corespunde mulţimii vide, iar vectorul (1, 1, . . . ,1) corespunde mulţimii
totale A.
În acest mod se generează toate submulţimile unei mulţimi date, în ordine
lexicografică (relaţia de ordine se referă la reprezentarea lor prin vectorul caracteristic).
Se observă că vectorii generaţi reprezintă tocmai numerele naturale (0, 1, . . . , 2 n –1
scrise în baza 2.

3. VERIFICAREA RELAŢIEI DE ECHIVALENŢĂ DEFINITĂ PE O MULŢIME.


Bazele informaticii economice 115

Fie M  1, 2,, n o mulţime finită şi notăm cu R o relaţie definită pe această


e e e
mulţime. Să se verifice că R este o relaţie de echivalenţă. Relaţia R este dată de o
mulţime A de tip nn unde:
 ăe
aij   10,,dac în rest iRe j

e e
Relaţia R este reflexivă dacă iR i pentru orice i = 1, 2, . . . , n, adică matricea
A are toate elementele de pe diagonala principală egale cu 1.
e e e e
Relaţia R este simetrică: dacă iR j atunci jR i pentru orice i, j = 1, 2, . . . , n, adică
matricea A este simetrică.
e e e e e e
Relaţia R este tranzitivă: dacă iR j şi jR k atunci iR k pentru orice i, j, k = 1, 2, . . . ,
a a a
n, adică tranzitivitatea este satisfăcută dacă avem ij  jk 1 ik 1 pentru orice i, j, k
diferiţi între ei.
Se vor utiliza 3 subprograme de tip function care vor fi apelate din programul principal şi care
vor verifica dacă relaţia este reflexivă, simetrică şi tranzitivă.

Algoritmul de verificare a relaţiei de echivalenţă

read n, aij, i 1,n , j 1,n


if reflex
a,nand simet a,n and tranz a,n
then write
”R este relaţia de
echivalenţă”

else write ”R nu este relaţia de


echivalenţă”

stop

function reflex a,n


116 Curs pentru învăţământ la distanţă

reflex: = true for i 1,n

do if aii  0 then reflex: = false ; exit

end
function simet a,n

simet : = true for i 1,n1

do for j  j 1,n

do if aij  a ji then simet : = false ; exit

end

function tranz a,n

tranz : = true
for i 1,n

do for j 1,n

do for k 1,n

do if i  j and i  k and j  k and

 then if  aik 1 then tranz := false: exit


Bazele informaticii economice 117

end

Să ne reamintim...
Algoritmul este un concept folosit în mod intuitiv pentru a desemna
o mulţime finită de operaţii cunoscute, care, executate într-o ordine
bine stabilită, pornind de la o mulţime de valori numită domeniul de
definiţie, produce în timp finit un alt set de valori (ieşirea).

Rezumat
Algoritmul constituie baza programării calculatoarelor electronice. În activitatea de rezolvare a
problemelor cu calculatorul elaborarea algoritmilor reprezintă cea mai importantă etapă,
obligatorie şi de multe ori dificilă. De calitatea algoritmului proiectat depinde calitatea şi
fiabilitatea programului şi succesul execuţiei acestuia.
Studiul unei probleme compatibile din punctul de vedere al calculatorului
(principial rezolvabilă şi cu soluţie practică realizabilă) conduce la formalizarea şi
abstractizarea ei, în scopul înţelegerii de către calculator. Rezolvarea cu calculatorul a
unei probleme concrete constă din parcurgerea următoarelor etape: a) Formularea exactă
a problemei de rezolvat:  definirea datelor problemei (intrările) caracterizându-le prin
tip, proprietăţi, domeniul valorilor;
 definirea rezultatelor problemei (ieşirile); 
precizarea relaţiilor dintre date şi rezultate.
b) Descrierea modului de rezolvare a problemei (algoritmul).
c) Scrierea într-un limbaj de programare convenabil a unui program pe baza
algoritmului definit anterior şi a datelor de prelucrat.

Programarea structurată reprezintă modalitatea de ordonare a activităţii mentale


desfăşurate în scopul obţinerii de programe constituite din structuri fundamentale
(secvenţială, alternativă, repetitivă), în condiţiile minimizării efortului de
programare, dar realizării unor produse program fiabile şi de bună calitate.
118 Curs pentru învăţământ la distanţă

Limbajul algoritmic realizează o scriere mai apropiată de cea liniară. Permite


folosirea unor instrucţiuni care conţin condensat câteva subscheme utilizate frecvent
şi câteva reguli simple de aliniere a textului scris.
Având un algoritm descris într-un astfel de limbaj, translatarea în limbaj de programare
nu presupune decât o concentrare asupra aspectelor sintactice.
Limbajul algoritmic (pseudocodul) realizează specificarea algoritmilor prin două tipuri
de enunţuri: nestandard şi standard:
- enunţurile nestandard sunt fraze în limbaj natural, care pot fi utilizate de
programator în schiţarea formelor iniţiale ale algoritmilor; ele pot fi înlocuite treptat
cu enunţuri standard; sunt marcate cu simbolul „*”;
- enunţurile standard exprimă operaţii cu corespondenţe directe în limbajele de
programare.

Rezolvarea unei probleme cu calculatorul începe cu definirea structurilor de date,


continuă cu utilizarea acestora şi se încheie cu stocarea rezultatelor prelucrării tot sub
forma unor structuri de date.
Limbajele de programare în marea lor diversitate se aseamănă prin tipurile de date
care pot utilizate. Trecerea de la un limbaj la altul în condiţiile cunoaşterii
caracteristicilor generale ale structurilor de date, devine posibilă cu un efort minim.
Fiecărui tip de dată şi mod de structură îi corespund anumite situaţii în care utilizarea
conduce la timp de acces la informaţie şi necesare de memorie reduse. În caz contrar,
pot apărea operaţii de prelucrare suplimentare (conversii, citiri şi scrieri) care
micşorează viteza de obţinere a rezultatelor, conducând la creşterea costului
prelucrării.
Organizarea datelor este un proces complex în care se stabilesc structurile logice şi
fizice de date. Modul de organizare a datelor influenţează hotărâtor calitatea
programelor şi eficienţa prelucrării.

Unitatea de învăţare 4. ORGANIZAREA DATELOR


ÎN FIŞIERE

Introducere
În această parte se va
discuta despre: structura de
articol şi fişier
operaţii de prelucrare (gestiune) a fişierelor interclasarea
şi sortarea fişierelor
Bazele informaticii economice 119

Competenţele unităţii de învăţare


După parcurgerea acestei părți studenții vor înțelege următoarele
conceptele de articol, fișier precum operațiile care care se pot
efectua la nivelul structurilor de articol și fișier.

Durata medie de parcurgere a primei unităţi de învăţare este de 4 ore.

4.1. Structura de articol şi fişier


[JOR95], [LIX94], [POP86], [VJF81]

Organizarea datelor este un proces complex care include identificarea,


clasificarea şi descrierea proprietăţilor acestora, gruparea lor în colecţii, reprezentarea pe
purtători tehnici, definirea şi realizarea procedurilor de prelucrare. Procesul de
organizare externă a datelor cuprinde două niveluri de abordare: logic şi fizic.
În momentul prelucrării, datele trebuie să se găsească în memoria centrală (internă); în
caz contrar prin comenzi acestea pot fi aduse în memorie. Pentru a fi utilizate direct de
către beneficiari sau pentru a servi şi în alte prelucrări, rezultatele prelucrării se
înregistrează, de asemenea, pe suporturi tehnice.
În domeniul economic este specifică prelucrarea unui volum mare de date, cu
particularitatea că sunt uniform structurate. Documentele primare, fişele, situaţiile etc.
cuprind succesiuni de date care au în general aceleaşi structuri.
Forma de organizare şi de conservare a datelor o constituie fişierul.

Definiţia 4.1. Fişierul – este o colecţie organizată de date omogene din punctul de
vedere al semnificaţiei şi al cerinţelor de prelucrare
Exemplu. Fişierul stocurilor de materiale, fişierul studenţilor, fişierul de contracte.
Pentru a da o formalizare noţiunii de fişier se consideră:
C - o mulţime finită de obiecte care trebuie descrise din punct de vedere
informaţional;
C ci i 1,2,,n; nN 
c
Elementele i sunt caracterizate printr-o mulţime finită Ade atribute (proprietăţi):

A ak k 1,2,, m; mN 


De exemplu:
C mulţimea studenţilor

A nume,datanaşterii,adresa,facultatea
Se notează:
120 Curs pentru învăţământ la distanţă

v a c
ik - valoarea atributului k pentru componenta i .

Fie
k  ik i1,2,, işi i  n mulţimea valorilor pe care atributul k le
V v n n a
a
poate lua;  - reprezintă o valoare specială asociată atributului k , atunci când
c
nu este cunoscută pe moment valoarea acestuia pentru elementul i .

Fişierul F se poate acum defini astfel:


F ci,ak ,vik  i 1,2,,n; k 1,2,,m

Definiţia 4.2. Dată funcţia:


V V
f :C  1  2 
V
m valoarea f  ci  reprezintă o
înregistrare logică (articol).

Orice unitate semantică din cadrul unui articol formează o dată. În descrierea operaţiilor
de prelucrare se foloseşte noţiunea generică de câmp, unde da reprezintă conţinutul
câmpului.
Lungimea unui articol este dată de suma lungimilor câmpurilor care îl compun. În
general, înregistrările logice ale unui fişier pot fi de lungime fixă sau de lungime
variabilă.
Un fişier omogen constă din înregistrări logice de lungime fixă.
Pe suport înregistrările logice pot fi grupate în unităţi distincte numite blocuri sau
înregistrări fizice.
Înregistrarea fizică constituie unitatea de informaţie transferată în cursul unei operaţii de
intrare / ieşire.
Memorarea blocată are ca avantaje: creşterea capacităţii de memorare şi creşterea
vitezei de prelucrare prin introducerea unui volum mai mare de date în memoria centrală
la o operaţie I/O.
Legătura dintre bloc şi articol este realizată automat de către sistemul de gestiunea al fişierelor –
componentă a sistemului de operare.

Structura de tip articol este un arbore ale cărui câmpuri (structuri de nivel 1) sunt
descendenţii rădăcinii, subcâmpurile (structuri de nivel 2) fiind descendenţii acestora etc.

De exemplu:
Bazele informaticii economice 121

persoana

nume adresa sex ( nivel 1)

localitatea strada număr (nivel 2)

Din punct de vedere al structurii datelor dintr-un articol, distingem: date elementare
(nume, localitatea …) şi date grupate (adresa) ce se compun din alte date elementare sau
grupate.

Principiile după care se memorează articolele unui fişier pe purtătorul extern, cu asigurarea
protecţiei şi regăsirii acestora, constituie metoda de organizare.
Tipul de acces reprezintă modalitatea de regăsire (localizare) a articolelor din fişier.
Noţiunea de acces se referă atât la operaţia de scriere cât şi de citire a datelor. Unei organizări
a datelor îi este caracteristică una sau mai multe metode de acces la articole.
Accesul poate fi:
a) Secvenţial – prelucrarea se fac în ordinea fixă a poziţiei fizice în cadrul fişierului;
accesul la articolul n este permis numai după ce s-a citit/scris articolul n1.

O problemă importantă care se pune la consultarea (citirea) în acces secvenţial este


controlul ajungerii la sfârşitul fişierului. Poziţia din/în care se face citirea scrierea în
cadrul fişierului este indicată de un pointer (figura 4.1).

art1 art2 art3 ... artn EOF

pointer
Figura 4.1

Pointerul de fişier avansează la citire şi scriere de la un articol la altul. După citirea ultimului
articol pointerul indică marcatorul de sfârşit de fişier - EOF (End of File).
În limbajele de programare se regăsesc două modalităţi de sesizare a sfârşitului de fişier:
- sesizarea sfârşitului de fişier în cadrul operaţiei de citire a marcatorului EOF (Cobol);
- sesizarea sfârşitului de fişier independent de operaţia e citire )Pascal, C); dacă a fost
citit ultimul articol, pointerul se află înaintea marcatorului EOF; următoarea citire
produce eroare de intrare/ieşire; în limbajul Pascal există funcţia EOF ( ) care
returnează valoarea TRUE dacă pointerul se află după ultimul articol (art n) şi FALSE
în caz contrar.
122 Curs pentru învăţământ la distanţă

b) Direct – prelucrarea se face într-o ordine oarecare, indiferent de poziţia articolelor în


fişier; este posibil numai la fişierele care au o anumită organizare; accesul direct se
bazează pe existenţa unui algoritm implementat în sistem care asigură localizarea
(regăsirea) articolelor în funcţie de o informaţie de regăsire. Valoarea pointerului este
determinată direct, fără să depindă de valoarea sa anterioară. În funcţie de algoritm şi de
informaţia de regăsire există două tipuri de acces direct: după cheie şi după numărul
relativ al articolului (acces relativ).

Organizarea secvenţială – un fişier F este organizat secvenţial dacă între articolele sale
este definită o relaţie de ordine, astfel încât: art1 < art2 < . . . < art n
Fişierele organizate secvenţial cu articole de lungime variabilă admit numai accesul
secvenţial, cele organizate secvenţial cu articole de lungime fixă admit atât accesul
secvenţial cât şi pe cel relativ.
Accesul relativ este realizat de sistem printr-o deplasare secvenţială faţă de începutul
acestuia, deplasare care este egală cu valoarea expresiei: număr relativ x lungime
articol.

Organizarea indexată – se consideră o mulţime de articole:


R ri i 1,2,n fiecare articol i este identificat în mod unic printr-o
r
k
valoare i asociată unei chei.

Fie I ki, pi i 1,2,,n

unde: i este un pointer spre articolul i . O pereche  i, i  este numită index. Mulţimea I este
p r k p

ordonată după valorile primei componente a fiecărei perechi.


Se numeşte fişier indexat o pereche (R,I), I constituind mulţimea de indecşi asociată fişierului.
Această organizare determină o metodă simplă de acces la articole: fiind dată o valoare
i, se caută mai întâi în mulţimea I, perechea  i, i  care are prima componentă
k k p

identică cu valoarea dată (se poate folosi o metodă de căutare rapidă, mulţimea I fiind
ordonată); accesul direct la articol se obţine folosind cea de-a doua componentă –
p
pointerul i.
Mulţimea I este memorată sub forma unui tabel, numit tabel de indecşi. În cazul în
care este posibil şi accesul secvenţial la articole, se spune că fişierul are organizare
secvenţial – indexată, modul de acces fiind numit acces mixt.

Operaţii de prelucrare (gestiune) a fişierelor

A. Operaţii la nivel de fişier:


Bazele informaticii economice 123

- copierea unui fişier este operaţia prin care se obţine o copie identică a
acestuia pe un alt suport;
- ştergerea fişierului;
- validarea şi interzicerea accesului la fişier. B. Operaţii la nivel de articol:
- crearea fişierului constă în memorarea articolelor pe un suport tehnic;
- consultarea fişierului este operaţia prin care articolele unui fişier sunt
selectate în vederea efectuării unui proces de prelucrare definit asupra
întregului fişier sau numai asupra unei părţi a acestuia;
- actualizarea este operaţia prin care se pot adăuga noi articole, se pot şterge
acele articole care nu mai conţin date actuale, se pot modifica în unele
articole datele care nu mai sunt actuale.

4.2. Interclasarea şi sortarea fişierelor


[GNC96], [LIX94]

Interclasarea fişierelor
Două fişiere F1 şi F2 având aceeaşi structură sunt ordonate crescător după
câmpul cheie „cod”; se pune problema interclasării celor două fişiere pentru a alcătui un
al treilea fişier F3, de asemenea ordonat crescător şic are va conţine toate articolele din
cele două fişiere.
Notă. Se va considera în algoritmii care se vor prezenta că sesizarea sfârşitului de filier
se face idnependent de operaţia de citire – aceasta presupune existenţa funcţiei EOF
(nume fişier).

Algoritmul de interclasare a două fişiere.

* iniţializare fişierele F1,F2,F3;


read articol F1 {cod1, . . . }
read articol F2 {cod2, . . . }
k1:=F ; k2:=F
repeat if cod 1
 cod2
then write articol F1 în F3
if EOF
(F1)
t hen k1: =T
else read articol_F1 {cod1, . . .}
124 Curs pentru învăţământ la distanţă

else write articol_F2 în F3 if


EOF (F1) then k1:
=T
else read articol_F2 {cod2, . . .}

until k1 or k2
if k1

then write articol_F2 în F3 while not


EOF (F2)

do read articol_F2 {cod2, . . .}


write articol_F2 în F3

else write articol_F1 în F3 while not EOF


(F1)

do read articol_F1 {cod1, . . .}


write articol_F1 în F3

* închide fişierele F1,F2,F3


stop

Sortarea unui fişier


Sortarea este o operaţie de ordonare a înregistrărilor unui fişier în funcţie de
valorile unui câmp ala cestora, numit cheie de sortare. Dacă procesul de sortare se poate
realiza cu păstrarea tuturor înregistrărilor în memoria internă, atunci sortarea este numită
sortare internă. Dacă volumul de date este mare şi procesul de ordonare necesită şi
utilizarea memoriei auxiliare, atunci sortarea este denumită sortare externă. Se
exemplifică în continuare o metodă de sortare externă care foloseşte ca operaţie de bază
interclasarea. Pornind de la observaţia că într-un şir de înregistrări există în mod natural
sau se pot constitui subşiruri ordonate (monotonii), principiul interclasării a condus la
metoda de sortare propriu-zisă. Reprezentativă în acest sens este sortarea prin
interclasare directă utilizând două fişiere de manevră.
Fie un fişier denumit F care conţine numere întregi (acestea pot fi interpretate şi ca valori ale
câmpului cheie).Presupunem că fişierul are 12 articole:

F 12 23 2 3 9 54 34 4 67 11 32 69

* se descompune în secvenţe crescătoare (monotonii):


12 23 2 3 9 54 34 4 67 11 32 69
* se transferă monotoniile alternativ în două fişiere temporare:
Manevra 1 : 12 23 34 11 32 69
Bazele informaticii economice 125

Manevra 2 : 2 3 9 54 4 67

* se interclasează cele două fişiere de manevră considerând perechi de monotonii: rezultă


fişierul original:

F 2 3 9 12 23 34 54 4 11 32 67 69

* procesul de distribuire – interclasare se repetă până când monotonia obţinută arată că fişierul
original este complet sortat;
* rezultă după distribuire:
Manevra 1: 2 3 9 12 23 34 54

Manevra 2: 4 11 32 67 69

* după o nouă interclasare se obţine fişierul sortat.

F 2 3 4 9 11 12 23 32 34 54 67 69

Algoritmul de sortare a unui fişier

* iniţializare fişierele F, Man_1, Man_2;

repeat
• distribuie monotoniile fişierului F succesiv în fişierele temporare Man_1 şi Man_2;
• interclasează Man_1 şi man_2 în F (interclasarea se face considerând perechi succesive
de monotonii); until * F este sortat (conţine o singură monotonie);

* închide fişierele;
stop

4.3. Aplicaţii economice


[LIX94]

1. Fişierul de urmărire a contractelor CONTRACT are structura


NRC - număr contract;
CODP - cod produs;
CODB - cod beneficiar
QCANT - cantitatea contractată;
QLIV - cantitatea livrată;
PU - preţul unitar
DATAF - termenul de finalizare al contractului;
126 Curs pentru învăţământ la distanţă

Să se obţină situaţia centralizată pe beneficiari a valorii totale a contractelor încheiate şi a valorii


cantităţilor livrate.

De exemplu:
Nr.crt. Cod beneficiar Valoare contract Valoare livrată
1. 2105 1.589.000 458.000
2. 2953 5.750.000 5.750.000
3. 3417 2.000.000 0

Total: 77.950.524 50.800.000

Rezolvare:
* iniţializare fişierul CONTRACT
* se sortează fişierul crescător după cheia „CODB”
val_tot: =0; liv_tot: =0; nrcrt: =1
read ONTRACT {NRC, CODP, CODB, QCANT, QLIV, PU, DATAF}
benef : = CODB ; val : = QCANT x PU ; liv : = QLIV x PU
while not EOF (CONTRACT)
do read CONTRACT {NRC, CODP, CODB}
if benef = CODB then val:=
val+QCANT x PU
liv: = liv+QLIV x PU
else write nrcrt, benef, val, liv
val_tot: = val_tot+val
liv_tot: = liv_tot+liv
benef: = CODB; nrcrt: = nrcrt+1
val: = QCANT x PU; PU; liv:=QLIV x PU
write nrcrt, benef, val, liv
val_tot: = val_tot + val;
liv_tot:=liv_tot + liv write „TOTAL” =”,
val_tot,val_liv close CONTRACT
stop

2. Fişierul TRANZACŢII are structura:


NR - număr;
DATA - data încheierii tranzacţiei;
CONTP - contul plătitorului;
CONTB - contul beneficiarului
SUMA - suma
Iar fişierul CONTURI are structura :
CONT - cont
VAL - valoare
Prin consultarea secvenţială a fişierului TRANZACŢII se actualizează în acces direct
fişierul CONTURI; valoarea (SUMA) este transferată din contul plătitorului (CONTP)
în contul beneficiarului (CONTB).
Bazele informaticii economice 127

Observaţii.
Fişierul CONTURI este indexul după câmpul cheie CONT.
Citirea în acces direct a unui fişier va fi indicată prin:
Read cheie  nume fişier
Analog pentru scrierea în acces direct fişier:
Write cheie  nume fişier
Pentru a testa existenţa articolului cu valoarea cheie se va utiliza funcţia logică FOUND ( ).
Rezolvare:

* Iniţializare fişierele TRANZACŢII şi CONTURI


while not EOF (TRANZACŢII)
Do read TRANZACŢII (NR,DATA,CONTP,CONTB,SUMA)
read CONTP  CONTURI
{CONT, VAL} if
FOUND ( ) then cp: =
CONT; vp: = VAL
read CONTB  CONTURI {CONT,VAL}
if FOUND ( )
then cb: = CONT; vb: = VAL
if vp  SUMA then
vp: = vp – SUMA vb: =vb
+ SUMA write cp 
CONTURI {cp,vp}
write cb  CONTURI {cb,vb}
else write “efectuarea plăţii imposibilă”
else write “cont beneficiar eronat”
else write “cont plătitor eronat”

* închide fişierele
TRANZACŢII şi CONTURI stop

3. Fişierul STOCURI are structura:


CODP - cod produs
CANT - cantitate; VAL - valoare;
iar fişierul TRANZACŢII are structura:
DOC - tipul documentului poate fi:
BI - bon de intrare;
BT - bon de transfer;
BC - bon de consum;
CODT - cod produs
CANT_T - cantitate
VAL_T - valoare

Să se calculeze stocul la un moment dat pentru un anumit produs.


128 Curs pentru învăţământ la distanţă

Rezolvare:

* iniţializare fişierele STOCURI şi TRANZACŢII


read kod (codul produsului pentru care calculăm stocul)
read kod  STOCURI {CODP, CANT, VAL}
if FOUND ( ) then
cantitate: = CANT
valoare: = VAL
else cantitate: =0
valaore: =0

while not EOF (TRANZACŢII)


do read TRANZACŢII {DOC, CODT, CANT_T, VAL_T}
if kod = CODT
then case
DOC of
BI : cantitate: = cantitate + CANT_T
valoare : = valoare + VAL_T
BT,BC : cantitate : = cantitate-CANT_T
valoare : = valoare-VAL_T

write kod,cantitate,valoare
* închide fişierele TRANZACŢII şi STOCURI
stop

Să ne reamintim...
Organizarea datelor este un proces complex care include
identificarea, clasificarea şi descrierea proprietăţilor acestora,
gruparea lor în colecţii, reprezentarea pe purtători tehnici, definirea
şi realizarea procedurilor de prelucrare. Procesul de organizare
externă a datelor cuprinde două niveluri de abordare:
logic şi fizic.

Rezumat
Orice unitate semantică din cadrul unui articol formează o dată. În
descrierea operaţiilor de prelucrare se foloseşte noţiunea generică de
câmp, unde da reprezintă
conţinutul câmpului.
Lungimea unui articol este dată de suma lungimilor câmpurilor care îl compun. În
general, înregistrările logice ale unui fişier pot fi de lungime fixă sau de lungime
variabilă.
Un fişier omogen constă din înregistrări logice de lungime fixă. Pe suport
înregistrările logice pot fi grupate în unităţi distincte numite blocuri sau înregistrări
fizice.
Bazele informaticii economice 129

Înregistrarea fizică constituie unitatea de informaţie transferată în cursul unei


operaţii de intrare / ieşire.
Memorarea blocată are ca avantaje: creşterea capacităţii de memorare şi creşterea
vitezei de prelucrare prin introducerea unui volum mai mare de date în memoria
centrală la o operaţie I/O.
Legătura dintre bloc şi articol este realizată automat de către sistemul de gestiunea al
fişierelor – componentă a sistemului de operare.

Structura de tip articol este un arbore ale cărui câmpuri (structuri de nivel 1) sunt
descendenţii rădăcinii, subcâmpurile (structuri de nivel 2) fiind descendenţii acestora
etc.

Operaţii de prelucrare (gestiune) a fişierelor

A. Operaţii la nivel de fişier:

- copierea unui fişier este operaţia prin care se obţine o copie identică a
acestuia pe un alt suport;
- ştergerea fişierului;
- validarea şi interzicerea accesului la fişier. B. Operaţii la nivel de
articol:
- crearea fişierului constă în memorarea articolelor pe un suport tehnic; -
consultarea fişierului este operaţia prin care articolele unui fişier sunt
selectate în vederea efectuării unui proces de prelucrare definit asupra
întregului fişier sau numai asupra unei părţi a acestuia;
- actualizarea este operaţia prin care se pot adăuga noi articole, se pot şterge
acele articole care nu mai conţin date actuale, se pot modifica în unele
articole datele care nu mai sunt actuale.

Test de evaluare a cunoştinţelor


Precizați care sunt principalele operații ce se pot face la nivelul fișierelor.

Temă de control
PROBLEME PROPUSE
130 Curs pentru învăţământ la distanţă

B
1. Arătaţi că operatorul nici (NOR) formează o bază pe mulţimea operatorilor ce se pot defini pe 2 .

2. Demonstraţi echivalenţa propoziţiilor compuse P1 P2:


P1: not (( A or B) and C )
P2: C  (not A and not B )

3. Să se verifice că propoziţiile următoare sunt întotdeauna adevărate (tautologii):


a) A B not B not A (reductio ad absurdum)
b) A B not Aor B

c) A BB CAC

4. Folosind reprezentarea în cod complementar pe doi octeţi arătaţi că: 12 xor


22 = 26
3 and –2 = 2
3 or –2 = -1

5. Să se elaboreze schema logică structurată şi limbajul algoritmic pentru reuniunea şi


intersecţia a două mulţimi sub formă de vectori.
Să se descrie structura programelor obţinute aplicând corolarul „top-down”.

6. Se consideră un şi de n numere reale. Să se scrie programul în limbaj algoritmic care să


decidă dacă acest şir este sau nu monoton.

7. Să se elaboreze programele în limbaj algoritmic pentru efectuarea următoarelor operaţii cu


matrice: adunarea, înmulţirea şi transpusa.

8. Se dau n intervale ale dreptei reale  i , i , i  l,,n;să se descrie algoritmul care


A B

determină intersecţia lor.

9. Pentru o selecţie de volum n să se calculeze parametrii statistici: valoarea medie (M),


dispersia (D), amplitudinea (A):

1 n 1 n
M  n i 1xi D  n i1xi M 2 A  xmax  xmin

Se cere chema logică şi limbajul algoritmic.


Bazele informaticii economice 131

10. Pentru o matrice A de tip r r  să se calculeze următorii coeficienţi:


r
max 
 min ai, j  C2   min ai, j

C1 

1 j r1i r j 11i r

r 
C3  min  min ai,k,aj,k 
1i, j rk 1 
Se cere schema logică structurată şi limbajul algoritmic.
11. O matrice nenegativă se numeşte stochastică, dacă suma elementelor din fiecare linie a sa
este egală cu 1. Să se scrie programul în limbaj algoritmic care să determine dacă o matrice
de tip mn este stochastică.

d
12. Se dă matricea distanţelor pe cale ferată şi şosea dintre n localităţi, definită astfel: ij cu i 
d
j reprezintă distanţa pe cale ferată dintre localităţile i şi j; ij cu i  j reprezintă distanţă pe
şosea dintre localităţile i şi j.
Dată o localitate k, să se determine cea mai apropiată şi cea mai îndepărtată localitate pe şosea,
respectiv pe cale ferată.
Se cere rezolvarea în limbaj algoritmic.

13. Matricea Amn defineşte repartiţia comună a două variabile aleatoare. Să se determine
repartiţiile marginale (definite de suma elementelor de pe fiecare linie şi de pe fiecare
coloană).
Se cere schema logică structurată şi limbajul algoritmic.

14. Într-un sondaj de opinie referitor la U.E., pentru un eşantion de N persoane se înregistrează
informaţiile: (vârstă, cod-răspuns), unde;

cod – răspuns = { 1, dacă răspunsul este DA


2, dacă răspunsul este NU
3, dacă răspunsul este NU ŞTIU

Să se determine procentul răspunsurilor DA, pentru grupele de vârstă [21,30], [31,40], [41,50].
Se cere rezolvarea în limbaj algoritmic.

Indicaţie. Rezultatele sondajului se pot memora în 2 vectori (V – vârstă, R – răspuns), sau


într-un vector având elementele articole cu structura { vârstă, cod-răspuns }.
132 Curs pentru învăţământ la distanţă

15. Se dă o listă cu structura {cont, suma}, ordonată crescător câmpul cont, în care pot exista
două sau mai multe conturi egale. Să se genereze situaţia conturilor care au valori mai mari
decât o valoare W dată. Se cere rezolvarea în limbaj algoritmic.
Indicaţie. Lista poate fi dată sub forma a doi vectori, sau a unui vector având elementele
articole cu structura {cont, suma}, sau a unui fişier cu un număr necunoscut de articole,
având structura {cont, suma}.

16. Se dă matricea A nn. Să se afişeze coloanele care reprezintă şiruri ordonate crescător
şi liniile care reprezintă şiruri ordonate descrescător. (Limbaj algoritmic).

17. Se dă matricea A nn. Să se afişeze toate perechile de linii identice şi toate perechile
de coloane identice.

18. Se consideră două fişiere identice ca structură F1 şi F2, sortate după valorile unei chei de
identificare K. Construiţi tabela de decizie asociată procesului de prelucrare ce realizează
interclasarea celor două fişiere.
19. La un magazin se vând două produse A şi B. Un cumpărător poate solicita unul din produse
sau pe amândouă. Dacă nu există unul din produse vânzătorul face o comandă de
aprovizionare (comanda are aceeaşi formă pentru ambele produse). Dacă produsul solicitat
există se eliberează însoţit de factură fiscală şi chitanţă şi se actualizează stocul. În cazul în
care cumpărătorul nu doreşte nici un produs, i se dau informaţii suplimentare privind
caracteristicile tehnice şi calitative ale produselor. Să se construiască tabela de decizie
privind gestiunea stocului. Să se reducă tabela de decizie obţinută.

20. Să se scrie în limbaj algoritmic funcţii recursive pentru a determina:


a) suma elementelor unui tablou unidimensional cu n elemente;
b) produsul elementelor unui tablou unidimensional cu n elemente;
c) produsul scalar a doi vectori cu câte n componente reale.

21. Se dă un polinom cu coeficienţi reali Px de grad n. Să se determine valoarea polinomului


derivat în punctul x0 R . (Limbaj algoritmic).

22. Se dă un polinom cu coeficienţi reali de două variabile Px,y, având gradul m în raport cu x
şi n în raport cu y, reprezentat sub forma unei matrice aij, 0  i  m,

0  j  n, unde aij reprezintă coeficientul monomului xi y j . Să se scrie un program în


x y
limbaj algoritmic care să determine valoarea polinomului într-un punct dat  0, 0.

23. Se dă un polinom cu coeficienţi reali de două variabile Px,y, memorat matriceal.


Să se scrie un program în limbaj algoritmic care să determine polinoamele obţinute prin derivarea
parţială a lui Px,y în raport cu x şi y.
Bazele informaticii economice 133

24. Se dă un şir de numere reale având n 3 componente. Se spune că acest şir are o variaţie de
monotonie în poziţia i,2  i  n1, dacă
x x x x x
xi1  i  i1 sau i1  i  i1.
Să se scrie un program în limbaj algoritmic care determină numărul variaţiilor de monotonie ale
şirului.

25. Se dau două şiruri de întregi, X cu m elemente şi Y cu n elemente n m. Să se scrie un


program în limbaj algoritmic care să decidă dacă şirul Y este inclus în şirul X şi în caz afirmativ
de câte ori.
26. Fişierul de urmărire a contractelor CONTRACT are structura:
* număr contract NRC
* cod beneficiar CODB
* cod produs CODP
* cantitate contractată QC
* cantitate livrată QL
* preţ unitar PU
* data finală de livrare DATAL

Să se elaboreze programele în limbaj algoritmic pentru următoarele situaţii:


a) indicând data curentă (DATAC), să se genereze situaţia contractelor restante, centralizată pe
produse, sub forma:
| cod produs | cantitate restantă | valoare |
Indicaţie. Un contract se consideră restant, dacă: (DATAC
> DATAL ) and (QC > QL )

b) Să se genereze situaţia contractelor finalizate, centralizată pe produse, cantitativ şi valoric.


Indicaţie. Un contract se consideră finalizat dacă: QC = QL.

c) Indicând data curentă (DATAC), să se genereze situaţia centralizată pe produse, a cantităţilor


care urmează să fie livrate din contractele nerestante. Indicaţie. Un contract este nerestant
dacă: DATAC < DATAL.

d) Să se stabilească lista primilor k beneficiari, ca valoare totală a contractelor încheiate.

27. Fişierul de stocuri STOC are structura:


* cod produs CODP
* denumire produs DENP
* unitate de măsură UM
* stoc STOC
* stoc minim (limită) STOCM
* data ultimei aprovizionări DATAU
Să se elaboreze programele în limbaj algoritmic pentru următoarele situaţii:
134 Curs pentru învăţământ la distanţă

a) Situaţia produselor pentru care STOC < STCM, în vederea lansării unei comenzi urgente
de reaprovizionare.

b) Indicând data curentă (DATAC), să se obţină situaţia produselor pentru care nu sa mai
realizat o aprovizionare de un număr (NRZ) de zile.

28. Se dă fişierul INTRARI cu structura:


* cod produs CODP
* cantitate CANT
* preţ unitar PU
* data intrării în stoc DATA şi fie Q stocul inventariat, prin evaluare directă.
Să se elaboreze programele în limbaj algoritmic de evaluare a stocului pentru produsul cu
codul K prin metodele: FIFP şi LIFO. Se va determina valoarea vânzărilor şi soldul
inventar.

29. Se dă fişierul STUDENT cu structura:


* număr matricol NRMAT
* nume şi prenume NUME
* grupa GRUPA
* nota1, credit1 N1, C1
* nota2, credit2 N2, C2
* nota3, credit3 N3, C3
Să se elaboreze programele în limbaj algoritmic pentru următoarele situaţii:

a) Lista studenţilor din grupa G, care au promovat cele trei examene, sub forma:
| Număr curent | Nume | Media |
Indicaţie. Se va calcula media ponderată astfel notai crediti/crediti

b) Lista studenţilor restanţieri din grupele G1 şi G2, sub forma:


| Număr curent | Nume | Grupe | Număr de restanţe |

30. Se dă fişierul CANDIDAT cu structura:


* număr legitimaţie NRL
* nume şi prenume NUME
* media concurs admitere MEDIA
* opţiune 1 OP1
* opţiune 2 OP2
* opţiune 3 OP3

Să se elaboreze programul în limbaj algoritmic care realizează repartizarea studenţilor


pe specializări în funcţie de medie şi opţiuni. Se cunoaşte numărul de locuri repartizat
pentru fiecare opţiune: N1, N2, N3.

Algoritmul de căutare binară


Bazele informaticii economice 135

program căutare binare; (*


algoritmul de căutare binară *)
uses crt;
const
din_max = 50;
var
a : array [1 . . din_max] of real;
u, p, n, i : integer;
cod : boolean;
x : real;
răspuns : char;
begin
clrscr;
write („dimensiunea vectorului : „) ; readln (n) ;
for i := 1 to n do begin
write („ a [„, i :2, „] = „) ;
readln (a [i] ;
end;
writeln; repeat write („valoarea
căutată : „); readln (x); p : =1; u : = n;
cod : = false;
while (p< = u) and (cod = false)
do begin
i : = (p+u) div 2;
if a [i] = x then begin
cod : =
true;
p:=i end
else if a[i] < x then p : = i+1
else u : = i-1
end;
case cod of false : writeln („R : căutare
fără succes / „, p); true : writeln („R : căutare cu
succes / „, p); end; writeln; write („ doriţi o nouă
căutare [d/n] ? : „);
readln (răspuns); until upcase
(răspuns) = „N„; end.

Algoritmul de sortare prin insertie directa

program sort_insertie_directa;
uses crt;
const
dimmax = 100;
type
vector = array [1 . . dimmax] of real;
var
136 Curs pentru învăţământ la distanţă

a : vectory;
n, i, j, k :
integer;
logic : boolean;
x : real;
begin clrscr;
write (‟Dimensiunea vectorului : ‟);
readln (n) for i : = 1 to n do
begin
write (‟a [‟,i : 2, ‟ ]
= ‟ ); readln
(a[i] ); end;
for j : =2 to n do
begin
x : =a [j]; k : = 0;
logic : = false; i : = j-1;
repeat
if a [i] <= x
then
begin
k : = i;
logic : = true
end
else begin
a [i+1] : = a [i];
i : = i-1
end
until ( i < 1 ) or
logic; a [k+1] : =
x
writeln (‟Vectorul sortat : ‟);
for i : = 1 to n do
write (a [i] : 8 : 2);
writeln; repeat until
keypressed end.

Algoritmul de sortare prin interschimbare

program sort_interschimbare;
uses crt;
const
dinmax = 100;
type
vector = array [1 . . dimax] of real;
var
v : vector;
aux : real; n, i : integer;
k : boolean;
Bazele informaticii economice 137

begin
clrscr;
write („Dimensiunea vectorului : „) ;
readln (n) for i : = 1 to n do
begin
write („v [ „, i:2, „ ] = „];
readln (v [i]);
end;
repeat
k : = true;
for I : = 1 to n-1 do
if v [i] > v [i+1]
then begin

aux : = v [i];

v [i] : = v [i+1];

v [i+1] : = aux

k : = false

end;

until k;
writeln („Vectorul sortat : „);
for i : = 1 to n do
write (v [i]:8:2;
writeln; repeat until
keypressed end.

Algoritmul de sortare prin selectie

program sort_selectie; uses


crt;
dinmax = 100;
type
vector = array [1 . . dinmax] of real;
var
a : vector;
n, i, j, k: integer;
min : real;
begin clrscr;
write („Dimensiunea vectorului : „) ;
readln (n)
for i : = 1 to n do
begin
write („a [ „,i:2,‟ ] = „);
readln (a [ i ] ); i : = 1; repeat
138 Curs pentru învăţământ la distanţă

k:=i; min:= a [k]; j:= k; repeat if


min > a [k+1] then begin min:= a[k+1];
j:=k+1 end;
k:=k+1
until k=n; a
[j]:=a [i]; a
[i]: = min;
until i = n;
writeln („ Vectorul sortat : „);
for i: =1 to n do
write (a [i]:8:2);
writeln; repeat until
keypressed
end.

Algoritmul de soretare QUICKSORT – varianta nerecursiva

Program quicksort_nerecursiv ;
uses crt;
const
dinmax = 100;
type vector = array [1 . . dinmax] of integer;
stack = array [1 . . 10] of record s, d:integer end;
var
v : vector;
stiva : stack;
n, i, j, st, dr, ind, w, x : integer; begin
clrscr; write („Dimensiunea
vectorului : „) ;
readln (n)
for i :=1 to n do
begin
write („v [„, i:2, „] = „);
readln (v [ i ]);
end;
ind:=1 { initializarea stivei}
stiva [1].s :=1; stiva [1].d
:=n;
repeat
st:=stiva [ind].s; dr:=stiva [ind].d;
ind:= ind-1; {extragere din stiva }
i:=st; j:=dr; x:=v[ (i+1) div 2];
repeat
while v[i] < x do
i:=i+1; while x < v
[j] do j:=j-1; if I <=
j then
Bazele informaticii economice 139

begin

w:=v[j];
v [i]:=v [j];
v [j]:= w;
i:=i+1;
j:=j-1;
end
until i > j; if
i < dr then

begin
ind:=ind+1; {creare stiva partitia dreapta}
stiva [ind].s:= i;
stiva [ind].dr:=dr
end;
if st < then
begin
ind:ind+1; {creare stiva partitia stanga}
stiva
[ind].s:=st; stiva
[ind].d:=j end;
until ind=0; writeln („Vectorul
sortat : „);
for i:=1 to n do write
(v[ i ]:8); writeln;
repeat until keypressed
end.

Algoritmul de sortare QUICKSORT – varianta recursivă

Program quicksort_recursiv;
uses crt; const
dinmax = 100;
type
vector = array [1 . . dinmax] of real;
var
v : vector;
n, i : integer;

procedure QUICKSORT (var a: vector; st, dr : integer);


{procedura de sortare rapida
QUICKSORT – varianta recursiva}
var i, j Ş integer; x,w : real;
begin
i:=st; j:=dr; x:=a [ (i+j) div 2];
repeat
while a [i] < x do i:=i+1;
while x < a [j] do j: = j-1;
140 Curs pentru învăţământ la distanţă

if i <= j then
begin w:=a [i];
a [i]:=a [j];
a [j]:= w;
i:=i+1
j:=j-
1 end
until i >j;
if st > j then quicksort (a, st, j);
if i < dr then quicksort (a, i, dr)
end; begin clrscr;
write („Dimensiunea vectorului : „);
readln (n) ;
for i:=1 to n do
begin
write („v [„, i:2, „]
= „]; readln
(v[i]); end;
quicksort (v, 1, n);
writeln („Vectorul sortat : „);
for i:=1 to n do
write (v
[i]:8:2); writeln;
repeat until kezpressed
end.

Crearea unei liste înlănţuite şi tipărirea ei conform disciplinei FIFO şi LIFO program
lista_exemplu;
uses crt; type
sir = string [10];
lista =^pers;
pers = record
nume
:sir;
sal : real;
adr :lista;
end;
var prim, prec, p:lista;
wn: sir; ws : real;
function cautare (n:sir) : boolean; forward;
procedure citeste; begin
write („numele (sf = press return) : „); readln (wn);
if wn <> „„ then begin
write („salariu : „); readln (ws)
end end;
procedure generare; begin
citeste;
new (prin);
prim^.nume :=wn;
Bazele informaticii economice 141

prim^.sal :=ws; prim^.adr


:=nil;
prec :=prim;
repeat citeste;
if wn <> „ „
then if not cautare (wn)
then
begin
new (p);
p^.nume := nw; p^.sal := ws; prec^.adr := p; prec := p;
p^.adr := nil;
end
else writeln („Numele exista !‟);
untile wn = „ „;
end; procedure
lista_fifo;
begin p: =
prim;
while p<> nil do
begin
writeln (p^.nume,‟ „:10, p^.sal:8:2);
p:= p^.adr
end;
end;
procedure lista_lifo (p:lista);
begin
if p<> nil then begin
lista_lifo (p^.adr); writeln (p^.nume,‟ „:10, p^.sal:8:2)
end end;
function cautare;
var raspuns : boolean;
begin
p: = prim; raspuns : = false;
while (p <> nil) and not raspuns do
if p^.nume = n then raspuns : = true
else p : = p^.adr;
cautare : = raspuns end;
begin clrscr; generare; writeln; writel
(„ Lista FIFO :‟); lista_fifo;
writeln; writeln („Lista LIFO :‟);
lista_lifo (prim); repeat until
keypressed
end.

Testarea operaţiilor de lucru cu stiva utilizând alocarea înlănţuită

Program stiva_exemplu; uses


crt;
type
142 Curs pentru învăţământ la distanţă

stiva =^st; st = record


informatie :
integer; adr :
stiva end;
var virf : stiva;
x : integer;
allege : char;
tasta : char;
procedure listare_stiva; var s : stiva;
begin if virf = nil then writeln
(„Stiva este vida‟)
else begin s:= virf;
while s <> nil
do begin
writeln (s^.informatie);
s:=s^.adr
end;
end;
end;
procedure stergere_stiva;
var s : stiva; begin
if virf = nil
then writeln („Stiva este vida‟)
else begin
s:= virf^.adr;
dispose (virf);
while s
<> nil
do begin
virf: = s;
s:=
s^.adr;
dispose (virf)
end;
virf:=nil
end;
end;
procedure introducere_element; var s : stiva; element :
integer; begin write („ introducere element :‟); readln
(element);
new (s);
s^.informatie:= element;
s^.adr :=virf;
virf :=s;
end;
function element_extras:integer;
var s : stiva;
element : integer;
Bazele informaticii economice 143

begin if virf = nil


then element_extras:= -1
else begin
s:=virf^.adr;
element:= virf^.informatie;
dispose (virf);
virf:=s;
element_extras : = element;
end ;
end ; begin virf := nil ; repeat clrscr ;
writeln („=========== MENIU =========== „) ;
writeln („ Listare stiva - L‟);
writeln („ Introducere element -I‟);
writeln („ Extragere element -E‟);
writeln („ Stergere stiva -S‟);
writeln („ Sfarsit -Q‟);
writeln; writeln; write
(„Alegere meniu : „); readln (alegere);
case alege of
„L‟ : listare_stiva;
„I‟ : introducere_element;
„E‟ : begin
x:= element_extras;
if (virf = nil) and (x=-1)
then writeln („ Stiva este vida‟)
else writeln („Elementul extras : „,x)
end;
„S‟ : stergere_stiva;
else halt
end;
write („Pentru reluare testate orice
tasta‟); tasta:= readkey until
allege=‟q‟ end.

Programul realizează calculul coeficientului T al lui Kendall de corelaţie al rangurilor pentru


o selecţie de volum n asupra vectorului (X,Y)
(Tratat de Statistică Matematică, vol.IV, pag.93, Ed. Academiei, Bucureşti, 1981)

program coeficientul_lui_Kendallş uses


crt; type din ‚ 1 . . 30; vector = array
[din] of real; matrice = array [dim,
dim] of integer;
var x,y : vectory;
i, j, k, n : dim;
t,s : real;
144 Curs pentru învăţământ la distanţă

mx, my : matricea;
begin clrscr;

write („ Volumul selectiei (<=30) : „); readln (n)


writeln („ Valorile vectorului (X, Y) :‟) ; for i := 1
to n do
begin
write („X(„, i:2,‟) = „);
readln (x[ i ], y [ i ];
end;
writeln;
for i :=1 to n do
for j :=1 to n do
begin
if x [ i ] < x [ j ]
then mx [i, j] := 1
else if x [ i ] = x [ j ]
then mx [ i, j ] := 0
else mx [ i, j ] := -1;
if y [ i ] < y [ j ]
then my [ i, j]
:=1
else if y [ i ] = y [ j ]
then my [ i, j ] := 0
else my [ i, j ] := -1;
end;
s:= 0; for i:= 1 to
n do for k :=1 to
n do
s := s + mx [ i, k] *
my [ i, k];
t : = s/n/ (n-1);
writeln („Coeficientul de corelatie T al rangurilor „) ;
writeln („ de selectie (KENDALL) este : „, t :6 :3) ;
readln
end.

Programul realizează calculul coeficientului lui SPEARMAN de corelaţie al


rangurilor pentru o selecţie de volum n asupra vectorului (X,Y) (Tratat de
Statistică Matematică, vol. IV, pag. 89-92, Ed. Academiei, Bucureştu, 1981)

program coeficientul_lui_Spearman;
uses crt; type dim ‚ 1 . . 30; vector
‚ array [dim] of real; var x, y :
vector;
i, j, k, n : dim;
r : real;
procedure spearman (x, y : vector; var r : real);
Bazele informaticii economice 145

type matrice ‚ array [dim, dim] of integer;


var mx, my : matrice;
bx, dy : vector;
a, sbd, st : real; begin
for i : = 1 to n do
for j : = 1 to n do
begin
if x [ i ] < x [j]
then mx [i, j] :=1
else if x [ i] = x [j]
then mx [i, j] := 0
else if y [i] = y [i] = y [j]
then my [i, j] :=0
else my [i, j] : = -1;
end;
sbd : = 0;
for i : = 1 to n do
begin
bx [i] : = 0; dy [i] : = 0;
for k : = 1 to n do
begin
bx [i] Ş = bx [i] + mx [i,
k]; dy [i] : = dy [i] + my [i,
k] end;
sbd : = sbd + bx [i] * dy [i]
end;
a : = n* (n-1) * (n+1)/3;
r := sbd/a
end;
{
Programul principal
} begin
clrscr;
write („ Volumul selectiei (<=30) : „);
writeln („ Valorile vectorului (X,Y) :‟);
for i : = 1 to n do begin write („X („, i:2, „)
= „); readln (x [ i ], y [ i ]); end; writeln;
spearman (x, y, r); writel („Coeficientul de corelatie
al rangurilor‟); writeln („ de selectie (SPEARMAN)
este : „,r : 6 :3) ; repeat until keypressed end.
146 Curs pentru învăţământ la distanţă

Bibliografie
[ALB96] Albeanu G., Sisteme de operare, Editura Petrion, Bucureşti, 1996.
[BVB97] Barbu Ghe., Văduva I., Boloşteanu M., Bazele informaticii, Ed. Tehnică,
Bucureşti, 1997.
[DOD87] Dodescu Ghe. şi alţii, Informatica, Editura Ştiinţifică şi Enciclopedică,
Bucureşti, 1987.
[FLY94] Flynn J., Gestionarea memoriei, Editura Teora, Bucureşti, 1994.
[GER79] Georgescu-Roegen N., Legea entropiei şi procesul economic, Editura Politică,
Bucureşti, 1979.
[IVA92] Ivan I., Adam R., Structuri de date, A.S.E. Bucureşti, 1992.
[JOR95] Jolivet F., Reboul G., Informatique appliquée à la gestion, Ed. Dunod,
Paris, 1995.
[KOH90] Kolb F., Herman A., Informatique et organisation, Les Editions
d‟Organisation, Paris, 1990.
[LIX91] Lixăndroiu D., Vântu M., Programarea în Turbo Pascal cu aplicaţii,
Universitatea Transilvania din Braşov, 1991.
[LIX94] Lixăndroiu D., Bazele informaticii, Universitatea Transilvania din Braşov,
1994.
[LPG81] Livovschi L., Popovici C., Georgescu H., Ţăndăreanu N., Bazele informaticii,
Ed. Didactică şi Pedagogică, Bucureşti, 1981.
[MAR96] Mârşanu R., Informatică generală, Ed. Tehnică, Bucureşti, 1996.
[NAS98] Năstase P., Năstase F., Internet Word Wide Web JavaScript – HTML – Java,
Editura Economică, 1998.
[NIR96] Niţchi Ş., Racoviţan D. şi alţii, Bazele prelucrării informaţiilor şi tehnologie
informaţională, Ed. Intercredo, Deva, 1996.
[OPR99] Oprea D., Analiza şi proiectarea sistemelor informaţionale economice,
Editura Polirom, Iaşi, 1999.
Bazele informaticii economice 147

[POP72] Popovici C., Calculatoare cu program şi teoria programării, Ed. Ştiinţifică,


Bucureşti, 1972.
[POP86] Popescu I., Rădulescu D., Modelarea sistemelor de producţie, Ed. Tehnică,
Bucureşti, 1986.
[SCA97a] Scarlat E., Chiriţă N., Bazele ciberneticii economice, Ed. Economică,
Bucureşti, 1997.
[SCA97b] Scarlat E., Chiriţă N., Sisteme cibernetice ale economiei de piaţă,
Ed. Economică, Bucureşti, 1997.
[SPB99] Stanciu V., Pană A., Bran F., Erhan F., Bazele utilizării calculatoarelor
personale, Editura Economică, Bucureşti, 1999.

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