Sunteți pe pagina 1din 247

Florin Postolache

Introducere in Știința
Calculatoarelor

Editura Zigotto Galați


2013
Florin Postolache Introducere în Știința Calculatoarelor

Descrierea CIP a Bibliotecii Naţionale a României


POSTOLACHE, FLORIN
Introducere în Știința Calculatoarelor / Florin Postolache - Galaţi :
Editura Zigotto, 2013
Bibliogr.
ISBN 978-606-669-092-8
004:33(075.8)
Cuprins

Introducere în Știința Calculatoarelor ................................................................................................................ 7


1. Informaţii şi prelucrări ................................................................................................................................... 10
1.1. Date ................................................................................................................................................................ 11
1.2. Prelucrarea datelor ......................................................................................................................................... 13
1.3. Scopul prelucrării electronice a informaţiilor ................................................................................................ 15
1.4. Organizarea datelor ........................................................................................................................................ 16
1.5. Stocarea datelor (fişiere) ................................................................................................................................ 18
1.6. Introducerea şi prezentarea datelor ................................................................................................................ 20
2. Comunicaţii de date şi multimedia ................................................................................................................ 23
3. Sistemul informațional ................................................................................................................................... 24
4. Sisteme de calcul.............................................................................................................................................. 25
4.1. Structura fizică a unui sistem de calcul .......................................................................................................... 25
4.2. Structura logică a unui sistemului de calcul ................................................................................................... 35
4.3. Principiul de lucru al unui sistem de calcul .................................................................................................... 36
5. Reprezentarea şi structurarea informaţiei .................................................................................................... 37
5.1. Bit, octet şi multiplii acestora ......................................................................................................................... 38
5.2. Identificator, variabilă, constantă, literal ........................................................................................................ 39
5.3. Secvenţe Escape ............................................................................................................................................. 41
5.4. Tipuri de date simple ...................................................................................................................................... 41
5.4.1. Reprezentarea numerelor întregi .........................................................................................................42
5.4.2. Reprezentarea numerelor reale ...........................................................................................................46
5.4.3. Tipul de date caracter .........................................................................................................................47
5.4.4. Tipul de date logic ..............................................................................................................................49
5.4.5. Tipuri de date structurate ....................................................................................................................51
5.4.6. Tipuri abstracte de date – Clase de obiecte.........................................................................................56
5.5. Structuri dinamice de date .............................................................................................................................. 57
5.5.1. Liste lineare ........................................................................................................................................58
5.5.2. Liste nelineare (arbori) .......................................................................................................................61
6. Prelucrarea informaţiei .................................................................................................................................. 63
6.1. Expresii .......................................................................................................................................................... 64
6.1.1. Instrucţiuni simple ..............................................................................................................................69
6.1.2. Instrucţiuni structurate (structuri de control) ......................................................................................71
6.1.3. Programe şi subprograme ...................................................................................................................77
6.2. Algoritmi ........................................................................................................................................................ 81
6.2.1. Exprimarea algoritmilor .....................................................................................................................81
6.2.2. Elaborarea algoritmilor .......................................................................................................................87
6.2.3. Exemple de algoritmi ..........................................................................................................................88
6.2.4. Analiza şi complexitatea algoritmilor .................................................................................................91
6.3. Categorii de prelucrare şi prezentare a informaţiilor ...................................................................................... 93
6.3.1. Calcule matematice.............................................................................................................................94
6.3.2. Prelucrări de birou ..............................................................................................................................95

3
Florin Postolache Introducere în Știința Calculatoarelor

6.3.3. Prelucrări prin metode de Inteligenţă Artificială (IA) ........................................................................96


7. Realizarea programelor şi programe suport ................................................................................................ 99
7.1. Problematica programării ............................................................................................................................. 101
7.1.1. Etape în ciclul de viaţă ale unui produs program ..............................................................................103
7.1.2. Limbaje de programare .....................................................................................................................112
7.1.3. Sintaxa și semantica limbajelor de programare ................................................................................121
7.1.4. Ingineria programării ........................................................................................................................122
7.2. Tehnici şi instrumente de realizare a programelor ....................................................................................... 124
7.2.1. Caracteristici ale programării orientate obiect ..................................................................................128
7.2.2. Tipuri şi structuri de aplicaţii ............................................................................................................129
7.2.3. Instrumente software de dezvoltare a aplicaţiilor .............................................................................134
8. Sisteme de operare şi programe utilitare .................................................................................................... 140
8.1. Sistemul de operare Windows ...................................................................................................................... 142
8.2. Programe utilitare ......................................................................................................................................... 143
8.3. Interfeţe utilizator ......................................................................................................................................... 144
8.3.1. Interfața utilizator linie comandă ......................................................................................................145
8.3.2. Interfata utilizator grafică .................................................................................................................145
8.4. Ecranul tactil ................................................................................................................................................ 146
8.5. Tastatura şi mouse-ul ................................................................................................................................... 148
8.6. Ferestre şi casete de dialog ........................................................................................................................... 149
9. Sisteme IT virtuale ........................................................................................................................................ 155
9.1. Virtual .......................................................................................................................................................... 155
9.2. Virtualizare. Nor informatic ......................................................................................................................... 157
9.3. Virtualizarea serverului ................................................................................................................................ 159
9.4. Virtualizarea reţelei ...................................................................................................................................... 160
9.5. Virtualizarea spaţiului de stocare ................................................................................................................. 161
9.6. Consolidarea serverului ................................................................................................................................ 162
9.7. Abstractizarea infrastructurii IT ................................................................................................................... 163
10. Utilizarea calculatoarelor pentru aplicaţii de birou ................................................................................ 171
10.1. Procesoare de texte ..................................................................................................................................... 172
10.1.1. Structura a unui document scris ......................................................................................................173
10.1.2. Scrierea textului – caractere şi paragrafe ........................................................................................176
10.1.3. Liste şi tabele ..................................................................................................................................180
10.1.4. Verificarea şi corectarea ortografică şi gramaticală ........................................................................183
10.1.5. Lucrul cu documente ......................................................................................................................185
10.1.6. Indicaţii de tehnoredactare computerizată ......................................................................................188
10.2. Foi de calcul tabelar ................................................................................................................................... 190
10.2.1. Structura foii de calcul tabelar ........................................................................................................190
10.2.2. Conţinutul celulelor foii de calcul ..................................................................................................192
10.2.3. Lucrul cu foaia de calcul ................................................................................................................193
10.2.4. Facilităţi de prezentare calitativă şi sintetică a informaţiilor ..........................................................198
10.2.5. Indicaţii de proiectare şi construire a foilor de calcul .....................................................................203
11. Reţele de calculatoare şi comunicaţii ......................................................................................................... 206
11.1. Problematica reţelelor de calculatoare ....................................................................................................... 206
11.2. Componente ale reţelelor de calculatoare .................................................................................................. 208
11.3. Clasificări ale reţelelor de calculatoare ...................................................................................................... 210
11.4. Comunicaţii prin reţele de calculatoare ...................................................................................................... 214
12. Internet şi Intranet ...................................................................................................................................... 223
12.1. Evoluţia Internet-ului ................................................................................................................................. 224
12.2. Aplicaţii uzuale în Internet ......................................................................................................................... 228
12.3. Conectarea la Internet ................................................................................................................................ 231
12.4. Intranet ....................................................................................................................................................... 233
12.5. Utilizarea aplicaţiilor de comunicaţie în Internet ....................................................................................... 234
12.5.1. Navigator Web ................................................................................................................................234
12.5.2. Motoare de căutare .........................................................................................................................236
12.6. Securitatea datelor și informațiilor............................................................................................................. 238
12.6.1. Conturi ............................................................................................................................................238
12.6.2. Servicii ............................................................................................................................................241
12.6.3. Infracţiuni prin diverse tehnici de comunicare ...............................................................................243
Bibliografie ........................................................................................................................................................ 245
Webografie......................................................................................................................................................... 247

5
Introducere în Știința Calculatoarelor

Ştiinţa Calculatoarelor (Computer Science) a apărut ca termen în urma


dezvoltării mijloacelor electronice de prelucrare a informaţiilor, dar ca
domeniu de activitate (şi de studiu) se poate spune că există din
totdeauna – chiar dacă nu a avut în trecut acest nume. Diferite categorii
de informaţii se prelucrează diferit dar, la nivel conceptual, se constată
că modalităţile de prelucrare sunt asemănătoare, deci se pot aborda
unitar. Tehnologia Informaţiei (în engleză „Information Technology” -
IT) exprimă, aşadar, metode generale de lucru cu informaţia, şi astăzi a
devenit o ştiinţă de sine stătătoare cu aplicabilitate în orice domeniu de
activitate umană.
Informatica (cf. DEX) reprezintă ştiinţa care se ocupă cu studiul
prelucrării informaţiei cu ajutorul mijloacelor automatice de calcul.
Pentru prima dată, termenul informatik a fost introdus în 1957 de Karl
Seinbuch în eseul “Informatica: prelucrarea automată a informaţiei” și
a fost adoptat oficial de Academia Franceză în 1967 (Informatique) şi
răspândit în alte limbi europene.
Cuvânt provenit din informaţie şi automatică. În sens restrâns,
informatica este o ramură a matematicii, care studiază aspecte abstracte,
formale ale prelucrării informaţiei. În sens larg, informatica este
ansamblul ştiinţelor şi tehnicilor care se ocupă de procesarea
(prelucrarea) informaţiei. Remarcăm, deci, că informatica nu se ocupă
de studierea calculatorului sau altor echipamente de calcul, ci a
modalităţilor de tratare a informaţiei cu ajutorul calculatorului.
Renumitul informatician olandez Edsger Djikstra spunea că
“informatica nu este mai mult despre calculatoare, decât astronomia
este despre telescoape” (“computer science is no more about computers
than astronomy is about telescopes”).
Ştiinţa informaţiei (engleză: information science; franceză: science de
l'information) este o ştiinţă interdisciplinară, care se ocupă cu studierea
Florin Postolache Introducere în Știința Calculatoarelor

problemelor privind culegerea, clasificarea, depozitarea, regăsirea şi


diseminarea informaţiei. A apărut cu mult timp înaintea informaticii,
deoarece se referă la utilizarea bibliotecilor, arhivelor şi a altor mijloace
de manipulare şi conservare a informaţiei, atât tradiţionale, cât şi
moderne.
Domeniul informaticii este în ultimul timp legat de domeniul
comunicaţiilor, atât datorită tehnicilor digitale folosite în ambele
domenii cât şi datorită tendinţei de integrare a producerii, transportului
şi consumului de informaţie. Astfel, a apărut „Tehnologia Informaţiei
şi Comunicaţiilor” TIC (în engleză „Information and Communication
Technologies” ICT), care unifică cele trei categorii de informaţii de
bază (date, sunete şi imagini) şi le tratează unitar după digitizare (adică
după transformarea din semnal în succesiuni de numere binare), iar
prelucrarea se face cu acelaşi tip de echipamente (calculatoare
numerice), folosind programe adecvate.
Tehnologia informaţiei (TI) numită şi tehnologia informaţiei şi
comunicaţiilor (TIC) este domeniul ştiinţific şi tehnic care se ocupă cu
metodele şi procedeele de achiziţie, prelucrare, stocare, transport şi
prezentare a informaţiilor, prin echipamente și rețele („hardware”) şi
aplicaţii („software”) create în acest scop cât şi administrarea sistemelor
respective. Cuprinde tehnologiile aplicate la utilizarea calculatoarelor
electronice şi reţelelor de calculatoare pentru culegerea, conversia,
stocarea, procesarea, transmiterea, protejarea şi diseminarea
informaţiei.
Conceptele utilizate în metode şi procedee amintite în definiţia de mai
sus provin, în general, din alte domenii de activitate umană, de exemplu
din editare şi tipărire de carte (tipuri de caractere, spaţieri etc.), din artă
şi design (grafică, proporţii, combinaţii de culori etc.), tehnică şi
economie (în aplicaţii ce vizează aceste domenii). Prin implicarea sa în
toate activităţile umane TIC a devenit foarte vastă, antrenând specialişti
din cele mai diverse profesiuni; de aceea, uneori, delimitarea metodelor
specifice TIC şi a cunoştinţelor necesare celor ce se ocupă în acest
domeniu nu prezintă frontiere clare şi nici stabile. În esenţa sa TIC este
un domeniu multi- şi inter-disciplinar, axat însă pe conceptualizarea
informaţiilor de orice natură, cu reprezentarea şi prelucrarea unitară a
acestora.
Cu toată această diversitate, utilizarea TIC presupune un set relativ
restrâns de metode de uz general şi de „obişnuinţe” de operare (lucru cu
calculatorul) pentru un registru larg de utilizatori, fiindcă chiar
extinderea TIC a impus două caracteristici - ca cerinţe de bază:
a) atributul deschis (în engleză „open”) – prin care modificări în
structura şi complexitatea unui sistem de calcul (ca echipamente şi
programe) nu trebuie să afecteze modul de lucru al utilizatorului;
b) atributul prietenos (în engleză „friendly”) – prin care operarea la
sistem nu trebuie să necesite cunoştinţe speciale (de exemplu nume
de comenzi, sintaxă, etc.), manevre trebuie să fie simple, iar
sistemul să ofere sugestii şi ajutor în lucrul utilizatorului.
În vederea lucrului comod şi uniform al utilizatorului în reţele de
calculatoare eterogene (adică cele care interconectează echipamente şi
programe de la diferiţi producători), s-a impus o a treia caracteristică
deziderat, anume:
c) transparenţa pentru utilizator a tipului de echipament sau program
care oferă un anumit serviciu (de exemplu serviciul de poştă
electronică).
Urmare a acestui atribut, utilizatorul nu trebuie să fie interesat de tipul
şi locul echipamentului sau programului pentru consumarea unui
serviciu ci să opereze la fel de oriunde în reţea. Astfel, au apărut
standarde internaţionale care stabilesc modul cum trebuie să
funcţioneze şi chiar cum să se prezinte către utilizator o aplicaţie de uz
general (cum este de exemplu mesageria electronică).

9
Florin Postolache Introducere în Știința Calculatoarelor

1. Informaţii şi prelucrări

Pentru domeniul TIC, informaţia este şi „materia primă” şi „produsul


final”. Informaţia nu poate fi separată de o utilitate, o finalitate umană
şi este în legătură cu procesul de cunoaştere. Varietatea formelor,
situaţiilor şi utilităţilor în care este implicată cunoaşterea umană fac ca
informaţia să nu poată fi definită fără echivoc.
Informaţia este o piesă de cunoaştere legată de o utilitate umană,
aşteptată şi/sau obţinută în urma unui eveniment, apoi stocată sau
transmisă de la sursă/emițător către receptor printr-un canal de
comunicație (materie sau câmp).
În vorbirea curentă, informaţia este o comunicare, o ştire care pune pe
cineva la curent cu o anumită situaţie sau cu un anumit eveniment. Este
important caracterul de noutate: pentru a fi informaţie, mesajul trebuie
să conţină elemente pe care primitorul/receptorul nu le cunoştea
anterior. În ştiinţa informaţiei, informaţia este conţinută în documente,
în format tradiţional sau electronic. În biologie, informaţia constă în
semnalele (vizuale, auditive, tactile etc.) pe care organismul le primeşte
din mediul exterior. Există, de asemenea, informaţia genetică
(înregistrată în gene). În tehnică, informaţia constă din semnalele
primite de la senzori sau transmise prin căi de comunicaţie.
Orice cunoştinţă umană este legată de informaţii, iar acestea din urmă
pot apare ca imagini, sunete (surse directe) sau numere, texte (surse deja
prelucrate). În general, o cunoştinţă umană surprinde o legătură cauză-
efect din lumea înconjurătoare, iar procesul de obţinere a cunoştinţelor
este relativ complex, adică:
a) se preiau informaţii din mediu şi se asociază cu evenimentele de
interes (de obicei o mulţime de evenimente legate de o utilitate
anume);
b) se constată repetarea apariţiei unui anume eveniment aşteptat
(numit efect) în corelaţie cu unul sau mai multe evenimente
observate (numite cauze) şi se stabileşte o relaţie de cauzalitate;
c) se procedează la generalizarea relaţiei de cauzalitate formulând o
„lege” – eliminând, eventual, evenimente ce nu intră în mod
relevant în relaţia de cauzalitate (având caracter întâmplător sau
legături slabe cu evenimentul efect).
Există şi cunoştinţe care nu pot fi considerate informaţii, prin simplul
fapt că nu se referă la o utilitate umană (imediată sau îndepărtată) şi nu
pot fi surprinse pe un suport material. Se pot enumera aici „poanta” unei
glume sau iubirea; acestea sunt legate mai mult de registrul afectiv decât
de o utilitate umană. Există şi alte cunoştinţe cu semnificaţii umane atât
de abstracte, încât nu pot fi „prinse” ca informaţii.
De ce se vorbeşte însă, de o tehnologie a informaţiei? După cum
prelucrările pe care le suferă materiile prime într-o uzină spre a se obţine
un anume produs se bazează pe o tehnologie – ca succesiune bine
stabilită de transformări efectuate cu un anumite instalaţii special
proiectate, tot astfel, informaţia din mediu este prelucrată într-o
succesiune bine definită de operaţii cu un echipament dedicat –
calculatorul electronic. Pe această similitudine se poate concepe o
paralelă între o tehnologie industrială şi tehnologia informaţiilor, care
poate fi sintetizată astfel: materie primă – pregătire – transformare -
ambalare a produsului finit, respectiv informaţie – reprezentare –
prelucrare – prezentare a rezultatelor către utilizator.

1.1. Date
Fără a intra în studiul cunoaşterii, se poate conchide din consideraţiile
anterioare că, pentru manipularea pieselor de cunoaştere prin
intermediul Tehnologiei Informaţiei şi a Comunicaţiilor (TIC), acestea
trebuie să se refere la o formă: materială (substanţă sau câmp) ori
conceptuală (cuvânt). Constituie informaţie orice text, număr, imagine,
sunet, dar şi miros, rugozitate, căldură, sesizabile şi sunt utile omului la
un moment dat.
În cazul său cel mai simplu, informaţia se referă la apariţia (sau ne-
apariţia) unui eveniment, informaţia căpătată fiind de tip binar:
Adevarat/Fals, Da/Nu. Efectiv, informaţia apare după consumarea
11
Florin Postolache Introducere în Știința Calculatoarelor

evenimentului, adică atunci când piesa de cunoaştere este sigură şi


clară; spunem că informaţia s-a instanţiat – în sensul că a căpătat o
valoare pentru o mărime legată de eveniment. Omul manipulează însă
şi informaţii care nu sunt sigure (sunt probabile sau sunt posibile)
precum şi informaţii care nu sunt clare (sunt vagi). Totuşi, acestea pot
fi prelucrate şi utilizate folosind tehnica de calcul, prin metode
stochastice (probabilităţi) sau metode posibiliste, respectiv prin metode
de inteligenţă artificială cum sunt tehnicile „Fuzzy”.
În final, forma – ca purtător al informaţiei, trebuie să capete o
reprezentare ce permite memorarea ei în dispozitivele electronice
(magnetice, optice, SSD, etc.) ale unui sistem de calcul, devenind astfel
„dată”.
Date sunt informaţii într-o reprezentare adecvată stocării lor pe un
suport (magnetic, optic etc.), în scopul prelucrării electronice sau
transferului electromagnetic. Cu alte cuvinte, ”Datele” reprezintă
“materia brută” din care este constituită informaţia. Datele nu au
semnificaţie prin ele însele, ci numai într-un anumit context.
Reprezentarea datelor în calculatoarele numerice se face prin
discretizare. Acest procedeu indică o separare în piese (discrete) a
elementelor ce compun informaţia. De exemplu, o imagine este
discretizată prin puncte minuscule (pixeli) - fiecare cu o culoare şi o
intensitate luminoasă, care prin ansamblul lor refac imaginea vizată.
Acestor puncte le corespund coduri ce reprezintă culoarea şi intensitatea
luminoasă şi sunt aranjate pe linii şi coloane, ca într-o matrice, fiind
memorată apoi pe suport extern, în memoria calculatorului sau
prezentată pe ecran. Toate informaţiile în calculatoarele numerice sunt
reprezentate prin coduri (numerice), pentru a fi ulterior stocate şi
prelucrate după cerinţe. Ca semnificaţie, discretizarea se referă la
separarea unor momente de timp egale în evoluţia unui fenomen real (şi
care prezintă de fapt o curgere continuă), în scopul cunoaşterii sau
modelării acestuia; prin extensie, se consideră discretizare şi
descompunerea în piese spaţiale a unui obiect (de exemplu o imagine).
Descompunerea în piese de mărimi egale ale unei măsuri (distanţă,
tensiune electrică etc.) se numeşte cuantificare; acesta este procedeul
prin care măsurările efectuate în lumea reală sunt separate în piese
discrete, spre a fi stocate şi prelucrate cu tehnica de calcul numerică.
1.2. Prelucrarea datelor
Funcţie de scopul urmărit, datele suferă diverse transformări, mai mult
sau mai puţin complexe, generic numite prelucrări (în engleză „data
processing”); acestea nu sunt întotdeauna calcule ci, de exemplu,
selectări ale unor piese de date din setul existent. În această idee, se pot
deosebi următoarele prelucrări generice:
d) Sortare – constă în ordonarea pieselor de date după valorile unei
caracteristici comune acestora, numită cheie de sortare. De
exemplu, sortarea alfabetică a numelor de persoane se face după
litera iniţială (drept cheie de sortare), unde valoarea cheii este
poziţia în alfabet a literei. Se observă că valorile pe care le poate
lua cheia de sortare sunt „ordinale” (adică prezintă o ordine între
ele), adică pot fi numere întregi, litere în alfabet, dar nu pot fi
numere zecimale – spre exemplu.
e) Selectare – constă în extragerea unor piese de date, din setul
existent, pe baza unui criteriu de selecţie, care se aplică uneia sau
mai multor caracteristici comune ale pieselor de date, mai precis
valorilor pe care aceste caracteristici le pot avea. Spre exemplu,
pentru selectarea persoanelor cu numele începând cu litera ‘M’, se
foloseşte drept criteriu de selecţie valoarea ‘M’ a literei iniţiale a
numelui. Selectarea se realizează în urma operaţiei de căutare (sau
„regăsire”) a datelor.
f) Clasificare – constă în împărţirea setului pieselor de date în
grupuri de date cu o caracteristică comună. Un exemplu este
clasificarea persoanelor după categorii de vârstă, caz în care se
poate să fie considerate nu doar numărul de ani ci și categorii de
tipul „adolescent”, „adult”, „vârstnic” care, în sine, sunt nişte
noţiuni vagi; în acest caz, clasificarea necesită tehnici de inteligenţă
artificială, care să simuleze modul în care oamenii procedează
pentru clasificare. De aceea, clasificarea nu este identică cu
selectarea, chiar dacă există multe similitudini.
g) Transformare – constă în modificarea valorilor unor piese de date
prin operaţii în care intervin şi alte piese de date, constituind
împreună expresii. În general, în această categorie de prelucrări se
consideră calculele matematice, dar şi operaţii executate asupra

13
Florin Postolache Introducere în Știința Calculatoarelor

altor tipuri de valori decât numere (şiruri de caractere, valori logice


etc.)
h) Prezentare – constă în operaţii executate asupra pieselor de date
doar în scopul afişării adecvate către utilizatorul uman a acestora.
Asemenea operaţii sunt trunchierea zecimalelor pentru numere
reale (spre a afişa, de exemplu, doar două zecimale), aranjarea
valorilor ca tablouri, grafice sau alte forme uşor de interpretat şi
recunoscut pentru oameni.
i) Transfer – constă în transportul datelor între locaţii spaţiale
diferite, prin infrastructura de comunicaţie, sub formă de unde
electromagnetice. În vederea traversării unor medii perturbate,
nesigure sau chiar ostile, se execută prelucrări de tip „împachetare”
a datelor, verificare a erorilor, fragmentare a mesajelor, criptare,
astfel ca transportul datelor să decurgă la parametrii doriţi. În plus,
urmărind dezideratul de sistem deschis, în transferul de date se
asigură conectivitatea echipamentelor şi programelor independent
de producător (eterogenitate).

Prelucrările se execută în paşi care se succed în secvenţă, cicluri sau


ramificaţii, conform unor „reţete” numite algoritmi Algoritmul
constituie, de fapt, esenţa Tehnologiei Informaţiei, el fiind depozitarul
cunoştinţelor umane privind acţiunile ce trebuie întreprinse pentru a se
obţine noi valori sau noi cunoştinţe pe baza celor existente. Trebuie
remarcat că, în enumerarea de mai sus, au fost incluse între prelucrări
prezentarea şi transferul de date pentru că, într-o viziune generală, ele
sunt abordate încă de la analiză şi apoi la implementarea programelor
alături de prelucrările „veritabile”. De aceea, domeniul informaticii este
lărgit natural cu cel al prezentării documentelor (incluzând imagini) şi
cu cel al comunicaţiilor.
Algoritmul este o succesiune de operaţiuni executate în număr finit de
paşi, care prelucrează un număr finit de date iniţiale (de intrare) către
un număr finit de date rezultat (de ieşire).
Trebuie subliniat, însă, că există şi prelucrări electronice care nu se
execută prin algoritmi. Acesta este cazul prelucrărilor prin „memorii
asociative”, cum sunt reţelele neuronale artificiale; acestea fac asocieri
între perechi „dată de intrare – dată de ieşire”, pentru recunoaşterea
formelor, adică unei forme de intrare îi corespunde o formă de ieşire
(de exemplu unei forme geometrice sau unei fizionomii umane îi va
corespunde un nume). Simularea prin programe pe calculatorul numeric
a acestor memorii asociative se face însă tot prin algoritmi, fiindcă
acesta este singurul mod prin care un program poate fi executat pe
calculatorul numeric. O explicaţie a acestei stări de fapt provine din
modul în care prelucrările sunt gândite de om: acesta nu poate concepe
raţional acţiunile decât în succesiuni de operaţiuni distincte (discrete),
executate în paşi (în număr finit - pentru a fi realizabile practic).
Există şi prelucrări ne-algoritmice – de exemplu prin reţelele neuronale
artificiale, care se realizează atunci când implementarea acestora se
face fizic, în dispozitive şi echipamente dedicate. Se poate astfel ca, în
viitor, calculatoarele de uz general să fie echipate cu o unitate pentru
prelucrări algoritmice – folosind procesorul numeric, şi cu o unitate
pentru prelucrări de tip recunoaştere – folosind procesorul RNA. Alte
moduri de prelucrări sunt realizate prin dispozitive electronice (cum
sunt calculatoarele analogice), bio-cibernetice sau subcuantice. Rămâne
să constatăm ce modalităţi de rezolvare a problemelor ne rezervă
viitorul şi ce tipuri de maşini de calcul le vor implementa.

1.3. Scopul prelucrării electronice a informaţiilor


Am văzut că informaţia vizează o utilitate umană, un scop; de aceea,
este interesant să inventariem câteva utilităţi vizate astăzi de către
prelucrarea electronică a informaţiilor:
a) Crearea şi prezentarea de documente scrise de înaltă calitate (cu
imagini, tabele şi formatări diverse), permiţând modificarea rapidă
şi eficientă a acestora prin operaţiuni automatizate.
b) Realizarea de calcule complexe pentru aplicaţii inginereşti,
economice sau ştiinţifice, cu posibilităţi de interpretare şi
generalizare a rezultatelor.
c) Realizarea de prezentări către auditoriu, cu imagini, sunete, text şi
date, pentru informare, educaţie şi reclamă, accesibile local sau la
distanţă.
d) Evidenţa şi controlul operaţiunilor economice, tehnice, spaţiului
geografic, transportului şi mediului social (folosind baze şi bănci
de date).

15
Florin Postolache Introducere în Știința Calculatoarelor

e) Conducerea proceselor tehnologice, pentru asigurarea calităţii şi


eficienţei sistemelor de producţie din industrie sau din servicii.
f) Asistarea deciziilor (adică oferirea de date sintetice şi sugestii)
pentru conducerea (în sensul de management) a sistemelor
economice, industriale sau sociale.
g) Comunicare totală prin intermediul reţelelor de calculatoare şi
infrastructurii de comunicaţie, adică comunicare prin integrarea
celor trei tipuri de informaţii uzuale: sunet, imagine, date.
Comunicarea are loc între oameni, om-calculator sau între
calculatoare.
h) Divertisment – ca jocuri pe calculator, discuţii, filme, muzică, artă
şi informare diversă.

Utilităţile oferite de aplicaţii uzuale astăzi, pe calculatoarele numerice


de uz general, se referă la realizarea documentelor, calculelor tehnice
sau economice, precum şi la comunicaţia inter-umană; acestea au în
general o operare uniformă - indiferent de echipament sau producător,
şi de aceea vor fi prezentate cu precădere în cartea de faţă.
Alte aplicaţii răspândite sunt cele de evidenţă şi control, dar acestea sunt
dedicate unui domeniu de activitate dat, astfel că operarea este specifică
domeniului şi chiar aplicaţiei în cauză. Categorii de aplicaţii, cu detalii
asupra lor, vor fi prezentate în continuare.

1.4. Organizarea datelor


Informaţiile sunt colectate de om şi stocate uzual pe diferite suporturi:
pe hârtie, în cărţi, caiete, afişe, etc. Pentru a fi utilizate ulterior,
informaţiile trebuie regăsite, iar pentru o regăsire rapidă ele trebuie să
fie organizate, structurate. Este evident că mult mai greu se găseşte o
carte aflată într-o grămadă, pe duşumea, faţă de cazul în care cărţile se
află pe rafturi, aranjate pe domenii sau autori indicate prin etichete. Din
aceleaşi considerente privind regăsirea rapidă, datele (ca informaţii într-
o reprezentare pe calculator) trebuie să fie organizate şi „etichetate” pe
suportul extern de memorare (disc magnetic, optic sau alte dispozitive
de stocare).
În Error! Reference source not found.figura 1 sunt reprezentate trei
modalităţi de organizare a unor piese de date (reprezentate ca bile).
Fiecare din cazuri se poate discuta privind eficienţa de regăsire a unei
piese de date.

Figura 1. Tipuri de organizare a datelor


a) În cazul în care informaţia este „nestructurată” (vezi figura 1a)
regăsirea unei piese dorite (bila înnegrită) este foarte dificilă,
fiindcă nu se pot parcurge ordonat piesele: sensul de căutare nu
este clar şi se poate ca o bilă să fie parcursă de două ori în acest
proces.
b) În cazul în care informaţia este organizată într-o „structură
înlănţuită” (listă lineară), fiecare piesă primește o etichetă de
ordine. Regăsirea piesei dorite se face prin parcurgerea succesivă
a pieselor existente, urmând sensul de înlănţuire a acestora. După
cum se constată, regăsirea este simplă ca procedeu, dar vor trebui
parcurse (în cel mai defavorabil caz) toate piesele de date: pentru
N piese, N paşi de căutare – la fiecare piesă consultând informaţia
înscrisă în ea pentru a constata dacă este cea căutată. Piesele de
date sunt etichetate prin poziţia lor în lanţ (în listă). Un exemplu
uzual al acestui mod de organizare a informaţiilor este o listă de
persoane; căutarea decurge secvenţial (parcurgând nume după
nume) până la găsirea numelui căutat (în figura 1b se parcurg 4
paşi pentru 5 piese).
c) În cazul în care informaţia este organizată într-o „structură
arborescentă” (listă nelineară), piesele înlănţuite sunt deja
clasificate pe niveluri, după un criteriu dat; astfel piesele de date
primesc o etichetă de nivel şi o etichetă de ordine pe acel nivel.

17
Florin Postolache Introducere în Știința Calculatoarelor

Piesele de pe un nivel au legături către piese pe nivel inferior, într-


o relaţie părinte-fiu, astfel că fiecare piesă prezintă ordine pe nivel
şi ordine între fii.

O modalitate de regăsire a piesei dorite este următoarea:


I. căutarea începe pe primul nivel, de la piesa 1.1. – numită nod
rădăcină;
II. se trece la nivelul următor şi se parcurg în ordine piesele fiu de
pe acest nivel până la cea care satisface criteriul de nivel şi
criteriul de fiu cerute;
III. se repetă pasul II până se găseşte piesa căutată.

Organizarea în arbore prezintă căutarea cea mai rapidă. Pentru un


arbore binar (în care un părinte are cel mult doi fii) se parcurg, în cazul
cel mai defavorabil, pentru n piese log2N paşi (parcurgându-se 4 paşi de
consultare pentru cele 9 piese – în figura1c).
Un exemplu uzual al acestui mod de organizare a informaţiilor este un
arbore genealogic de persoane, în care nivelul indică o generaţie iar
relaţiile sunt legături părinte-fiu cu persoanele de pe nivel inferior.
Structura arborescentă este cea mai utilizată modalitate de organizare a
datelor în Informatică, tocmai datorită eficienţei de regăsire a datelor.
De fapt multe dintre cunoştinţele care vor fi prezentate în această carte
sunt structurate arborescent, fiind şi pentru cursant organizarea care
permite cel mai uşor înţelegerea şi memorarea cunoştinţelor.

1.5. Stocarea datelor (fişiere)


Pentru a fi stocate pe suport extern (discuri), informaţiile cu
semnificaţie sau utilizare comună se grupează în seturi, cărora li se
ataşează o etichetă corespunzătoare.
Dispozitivele de memorare „externă”, cum sunt discurile magnetice
(fixe sau flexibile) precum şi discurile optice (cu înscriere unică sau
multiplă) vor fi prezentate ulterior. Reamintind dezideratul de
„transparenţă” pentru utilizator a procedeelor specifice informaticii,
trebuie ca din punctul de vedere al acestuia să nu intereseze tipul
suportului de memorare şi nici modalitatea efectivă de organizare a
datelor pe disc. Astfel, se recurge la o reprezentare unitară a grupării
datelor şi stocării lor pe orice tip de suport extern:
 Date de acelaşi tip sau cu aceeaşi utilizare (precum sunt
caracterele într-un text neformatat, punctele într-o imagine etc.)
se grupează în fişiere (în engleză „files”):Fişierul este o colecţie
de date - de obicei de acelaşi tip, stocate pe suport extern.
 Fişiere de acelaşi tip sau cu utilizare în acelaşi context (precum
sunt fişierele document pentru un proiect sau imaginile foto
digitale de la un eveniment) se grupează în cataloage sau dosare
(în engleză „directories” sau „folders”). Directórul (dosarul) este
o colecţie de fişiere - de obicei întrebuinţate în acelaşi context,
stocate pe suport extern; un dosar poate conţine alte dosare.
În figura 2 se prezintă aceste concepte în modul intuitiv, specific
interfeţelor utilizator grafice, moderne, orientate pe „ferestre” –
windows.

Figura 2. Ecran cu reprezentarea fişierelor şi directoarelor (MS-WINDOWS)

Imaginile, preluate de pe ecranul luminos de afişare, conţin mici desene


numite pictograme (în engleză „icons”) care reprezintă intuitiv fişierele
prin desene specifice tipului de date conţinut ( – fişier cu document
scris, – fişier cu imagine sau desen).
Pentru dosare este utilizată pictograma reprezentând un mic dosar-fişă
utilizat în lumea americană . Pentru organizarea eficientă a
19
Florin Postolache Introducere în Știința Calculatoarelor

informaţiilor grupate în fişiere şi dosare, se utilizează - cum era de


aşteptat, o structură arborescentă. În această structură, există un dosar –
numit rădăcină, care conţine alte dosare (denumite în jargonul amintit
„subdirectoare”), fiecare dintre acestea conţinând (sau nu) fişiere; cele
care nu conţin direct fişiere conţin alte dosare care, la rândul lor, vor
conţine fişiere (vezi figura 2). Această organizare a dosarelor cu fişiere
este denumită „structura arborescentă de directoare” a discului
(magnetic, optic, SSD etc.) care stochează datele. Facem observaţia,
necesară, că structurarea arborescentă a datelor nu se face doar pentru
dosare ci este o modalitate uzitată în foarte multe cazuri în informatică,
structura arborescentă de directoare fiind doar unul din acestea.

1.6. Introducerea şi prezentarea datelor


Tehnica de calcul permite stocarea unor volume mari de date, pe care
le poate prelucra în folosul omului. În aceste situaţii, culegerea
informaţiilor „primare” şi prezentarea rezultatelor în mod eficient au
impus rezolvări ce s-au adaptat de-a lungul timpului la noi condiţii pe
care utilizatorul uman le-a dorit şi solicitat pentru interesul sau
comoditatea sa.
Introducerea şi prezentarea datelor constituie părţi foarte importante ale
unei aplicaţii informatice, prelucrările fiind, spre exemplu, reduse la
operaţii necesare stocării şi regăsirii datelor. Se poate spune că, la
majoritatea aplicaţiilor actuale, achiziţia şi prezentarea datelor necesită
80% din volumul programelor realizate pentru acea aplicaţie. Evident,
mare parte din operaţiunile de achiziţie şi prezentare includ, la rândul
lor, prelucrări specifice, care astăzi se realizează uneori direct de către
dispozitivul de captare sau afişare (de exemplu, cameră video digitală
ce prelucrează imaginea şi placa grafică care face apoi alte prelucrări
complexe pentru afişare).
Dispozitivele de introducere a datelor uzuale (dispozitive de intrare)
sunt tastatura şi șoricelul („mouse”). Acestea sunt dispozitive relativ
simple şi eficiente de comunicare om→calculator, dar care necesită un
minimum de cunoştinţe privind convenţiile de lucru şi oarecare
îndemânare privind utilizarea lor. Dispozitive mai complexe – cum sunt
cele de recunoaștere a formelor sau pentru comandă vocală, nu sunt încă
eficiente şi sunt rar utilizate datorită imperfecţiunilor inerente
tehnologiilor noi; avantajul lor este însă utilizarea conform uzanţelor
umane comune, fără convenţii suplimentare.
Dispozitivele de prezentare a datelor uzuale (dispozitive de ieşire) sunt
ecranul (în engleză „display”) şi imprimanta (în engleză „printer”).
Acestea se adresează vederii, prin care omul poate capta cel mai mare
volum de informaţii, însă pentru înţelegerea semnificaţiei acestor
informaţii este necesară cunoaşterea convenţiilor de reprezentare
grafică, adică a simbolurilor afişate. Astfel, pentru texte trebuie
cunoscute simboluri pentru dimensiuni şi stiluri de caractere (litere),
pentru desenul unei construcţii trebuie cunoscute simboluri pentru
ferestre, uşi, etc., oferite de aplicaţia de proiectare (CAD) respectivă.
Mai mult, interacţiunea om↔calculator se bazează pe răspunsul şi
mijloacele oferite de aplicaţia în cauză, care sunt afişate pe ecran tot ca
simboluri; acestea sunt utile introducerii datelor sau indicării unor
evenimente necesare utilizatorului pentru a lua decizii. Astfel,
simbolurile pot deveni „butoane grafice” – intuitiv reprezentate „în
relief”, care pot fi „apăsate” folosind „mouse-ul”) sau tastatura.

Figura 3. Ciclul „simbol – decizie – intrare” parcurs cu interfaţa utilizator grafică

Utilizatorul parcurge, astfel, un circuit care porneşte de la un simbol


grafic (oferit ca o invitaţie de a alege din mai multe posibilităţi) şi
introduce apoi date corespunzătoare scopului propus (prin dispozitivul
de intrare), după ce în prealabil a luat o decizie necesară spre a atinge
acest scop. Aproape toate aplicaţiile moderne prezintă o interfaţă
utilizator grafică (GUI – Graphical User Interface), datorită modului
simplu şi intuitiv în care se poate face comunicarea om↔calculator.
Operaţiunile prin care utilizatorul observă simbolurile afişate ecran, ia
decizii şi apoi introduce datele (sau alege prin indicare un anumit
21
Florin Postolache Introducere în Știința Calculatoarelor

simbol) se succed ciclic sau în secvenţe şi/sau în ramificaţii. La unele


aplicaţii se poate asemăna această succesiune de operaţiuni cu
parcurgerea unui traseu într-un labirint (sau mai bine într-un super-
magazin), de aceea lucrul cu asemenea aplicaţii este supranumit
navigare (în engleză browsing – răsfoire).
Rezultă deci că operarea la aplicaţii pe calculatoarele actuale constă în
cunoaşterea simbolurilor afişate în aplicaţiile de interes, cunoaşterea
operaţiunilor posibile şi alegerea operaţiunii de executat pentru scopul
propus care se va executa prin „utilizarea” corespunzătoare a unui
simbol afişat. Pentru a exemplifica simplitatea acestui mod de lucru
ilustrăm în continuare (fără nici o explicaţie) planificarea unei excursii,
prin simboluri:
8:00 , 12:00 , 14:00 , 20:00, 22:00 .
Dacă această excursie se realizează în „realitatea virtuală”, atunci toate
acţiunile se vor petrece stând în faţa calculatorului, urmărind şi alegând
simboluri cu imagini, sunete şi (poate în viitor) gusturi, după dorinţa
„turistului” şi conform contextului oferit de aplicaţia „turistică”.
2. Comunicaţii de date şi multimedia

Aşa cum banul nu are valoare în sine, ci o capătă prin schimb, astfel şi
informaţia nu îşi dovedeşte utilitatea decât prin circulaţia sa. Era deci
firesc ca Tehnologia Informaţiei să înglobeze şi componenta de schimb
- Comunicaţia.
În denumirea acestui paragraf apare notiunea de „comunicaţii de date”,
aparent excluzând comunicaţiile uzuale interumane – prin voce,
imagine sau mesaje scrise. De fapt, aşa cum s-a arătat anterior, orice tip
de informaţie poate fi reprezentată digital şi astfel devine „date”. Ca
atare, împreună Tehnologia Informaţiei şi Comunicaţiilor se referă la
modalităţi prin care diverse informaţii sunt manipulate între oameni
(sau între maşini ce servesc omul), consumate local sau la distanţă.
Fuzionarea celor două mari domenii se datorează şi progresului
tehnologic, prin care tehnicile digitale s-au dovedit eficiente şi în
implementarea mecanismelor de comunicaţie, astfel prelucrarea
informaţiei şi transferul ei sunt realizate prin tehnici şi echipamente
compatibile.
Termenul multimedia este utilizat pentru prima data în 1966 de către
Bob Goldstein si deserveste varietatea şi modalităţile de comunicare
(imagine, sunet, date), prin care se combină canalele de comunicare
umane.
Dictionarul enciclopedic defineste termenul de multimedia ca fiind
“ansamblu de tehnici (texte, imagini fixe sau animate, sunete, grafică)
care permit recepționarea, depozitarea, prezentarea si prelucrarea
informațiilor simultan si interactiv.”
În Stiinta Calculatoarelor, multimedia reprezintă integrarea digitală
perfectă (text, grafică, animație, audio, imagini statice si video) care
oferă utilizatorilor individuali un nivel ridicat de control si interacțiune
in vederea exprimarii ideilor (comunicare, arta, etc.). Astfel,
informatiile/datele (texte, imagini fixe sau animate, sunete, grafică) sunt
23
Florin Postolache Introducere în Știința Calculatoarelor

transferate in cadrul retelei un vederea recepționarii, depozitarii,


prezentarii si prelucrarii informațiilor simultan si interactiv.
Aşa cum un bun profesor combină formulele înscrise pe tablă cu
imagini, cu expresii verbale şi chiar cu tonalitatea vocii sale, spre a se
face înţeles de clasă, unele aplicaţii prezintă informaţiile (în domenii ca
cel comercial, de reclamă, de educaţie) atacând mai multe canale de
cunoaştere: sunete, imagini (animate sau nu), texte, experimente
filmate, etc. Informaţia este aşadar plasată pe mai multe medii, pentru
receptarea ei de către auditoriu - de aici numele multimedia.
Un alt termen, legat de comunicare este hipermedia (în engleză
„hypermedia”). Acesta se referă nu doar la diferite medii prin care este
abordat utilizatorul, ci şi la facilitarea accesării distante a acestor medii.
În hipermedia, informaţiile de orice natură (text, imagine, sunet) apar
pe aşa-numite „pagini” şi prezintă legături cu alte pagini ce pot fi
accesate după dorinţă de către utilizator.

3. Sistemul informațional

Se numeşte sistem un ansamblu de elemente care interacţionează atât


între ele şi care poate fi privit ca un întreg. Interacţiunile dintre
elementele sistemului, sau dintre sistem şi mediu, se pot realiza prin
schimb de substanţă, de energie sau de informaţie. În informatică
interesează, desigur, sistemele în care are loc transfer şi prelucrare de
informaţie.
Sistemul informaţional (engleză: information system, franceză:
système d'information) este un ansamblu organizat de elemente,
implicate în procesul de colectare, transmisie, stocare, prelucrare şi
diseminare a informaţiei. Nu este obligatoriu ca aceste operaţii să se
efectueze cu echipamente de calcul. De altfel, sistemele informaţionale
au existat cu mult înaintea apariţiei calculatoarelor, fiind compuse din:
 totalitatea informaţiilor cu care operează;
 echipamentele folosite pentru operaţii asupra informaţiei;
 personalul implicat în funcţionarea şi administrarea sistemului;
 procedurile aplicate pentru funcţionarea sistemului.
4. Sisteme de calcul

Tehnologia Informaţiei şi Comunicaţiilor (TIC) este privită ca domeniu


de „înaltă tehnologie” (High Technology), atât prin subtilitatea şi
complexitatea metodelor şi aparaturii electronice implicate cât şi prin
aplicaţiile cu impact şi eficienţă deosebite pentru toate domeniile de
activitate. Utilizarea Tehnologiei Informaţiei şi Comunicaţiilor are cea
mai largă extindere întâlnită la orice altă tehnologie cunoscută, datorită
materiei prime pe care o prelucrează - informaţia. Cum nu există
domeniu şi activitate umană care să nu folosească informaţii, TIC vine
să sprijine activităţile din acel domeniu, prin metode şi mijloace pentru
prelucrarea informaţiilor, unele generale, altele specializate.
Se numeşte sistem de calcul complexul de echipamente fizice
interconectate, cu programele şi datele legate intrinsec de funcţionarea
şi utilizarea lor de către om.
Un sistem de calcul conţine „partea tare” – hardware, echipamentele,
precum şi „partea moale” – software, programele şi datele.

4.1. Structura fizică a unui sistem de calcul


Cunoştinţele asupra echipamentelor de calcul se referă la caracteristici
şi performanţe ale dispozitivelor de prelucrare şi ale dispozitivelor de
introducere, prezentare şi stocare a datelor.
Per ansamblu, echipamentele de calcul se împart în două categorii mari
(vezi Figura 4):
 Unitatea centrală – prelucrează datele şi stochează temporar
valorile ce vor suferi prelucrări (date primare) şi valorile rezultat.
 Dispozitive periferice – asigură introducerea, afişarea şi stocarea
pe durată nedeterminată a datelor. Aceste dispozitive se mai
numesc dispozitive de intrare/ieşire, pentru că asigură intrarea,
respectiv ieşirea datelor din unitatea centrală pentru, respectiv
25
Florin Postolache Introducere în Știința Calculatoarelor

după, realizarea prelucrărilor. Se observă din Figura 4 că unitatea


centrală cuprinde procesorul (ca dispozitiv de prelucrarea a
datelor) şi memoria internă (dispozitiv de stocare temporară a
datelor).

Figura 4. Structura fizică a unui calculator


În figura 4 se prezintă câteva dispozitive periferice uzuale cum sunt
ecranul, „mouse-ul”, discul optic (DVD-ROM). Dispozitivele periferice
sunt caracterizate drept dispozitive de intrare sau de ieşire, având drept
referinţa memoria de lucru (RAM) a calculatorului. Astfel,
dispozitivele care introduc date în memoria RAM se consideră
dispozitive de intrare, cele care preiau date din memoria RAM -
dispozitive de ieşire.
Trebuie făcută o deosebire clară între memoria internă RAM şi
dispozitivele periferice de memorare (cum sunt discul magnetic, discul
optic, banda magnetică) – numite şi memorii externe. În timp ce
informaţia stocată în memorii externe este păstrată un timp
nedeterminat (oricât de lung şi fără a se pierde dacă echipamentul de
calcul nu mai este alimentat cu energie electrică), informaţia stocată în
memoria internă este păstrată doar pentru a fi prelucrată, dar se pierde
la decuplarea alimentării calculatorului.
În structura Unităţii Centrale (UC) intră, ca părţi principale, procesorul
şi memoria internă. Pentru transferul de date între procesor şi memorie,
apoi între acestea şi dispozitivele periferice, există magistrale – care
sunt canale rapide de transport date şi comenzi, iar controlul transferului
de date şi funcţionarea întregului sistem de calcul, în jurul acestor
magistrale, este asigurat de Unitatea de Comandă.
Procesorul
Prelucrarea datelor este efectuată de procesor care, uzual astăzi, este
integrat într-un singur chip şi este numit microprocesor. Există două
familii de microprocesoare:
 Familia Intel – folosite în calculatoarele „IBM compatibile” şi
provin de la firmă cu acelaşi nume; în această familie se pot
încadra şi procesoarele produse de alte două firme: AMD şi Cyrix,
ale căror produse sunt compatibile cu ale firmei Intel.
 Familia Motorola – folosite în calculatoarele produse de firma
Apple. Începând cu 2008, firma Apple utilizează și procesoarele
Intel.
Programele scrise pentru o familie de microprocesoare nu se pot „porta”
(adică transfera şi rula imediat) pe altă familie.
Câteva caracteristici de performanţă a procesoarelor (actuale):
a) Tipul procesorului – se referă la produsul efectiv (producător, tip
şi generaţie). PC-urile actuale au, spre exemplu, procesoare de tip
Intel Core (i5, i7) sau AMD (A-Series APUs sau FX).

27
Florin Postolache Introducere în Știința Calculatoarelor

b) Frecvenţa de lucru (sau ceasul intern) – se măsoară în MHz


(impulsuri de ceas pe secundă) şi stabileşte câte operaţii pe secundă
poate efectua procesorul. Uzual, la PC-urile actuale, frecvenţa de
lucru este cuprinsă între 1000 MHz şi 3000 MHz.
c) Lungimea cuvântului procesor – se măsoară în biţi şi indică
numărul de biţi (sau octeţi) ce pot fi prelucraţi simultan de procesor.
Procesoarele actuale au lungimea de cuvânt cuprinsă între 16 şi 64
biţi.
d) Viteza procesorului – se măsoară în „milioane de instrucţiuni pe
secundă” (MIPS) sau (pentru cele foarte performante) în „milioane
de operaţii cu virgulă mobilă pe secundă” (Mflops). Viteza
procesorului este un parametru combinat, legat de frecvenţa de
lucru, lungimea cuvântului de procesor şi tipul (producătorul şi
versiunea) procesorului.
e) Memoria cache – cu capacitate indicată în multipli de Byte şi având
rolul de memorie tampon pentru un lot de instrucţiuni preluate din
memoria de lucru, spre a fi disponibile procesorului mai rapid decât
accesate prin magistrală de la memoria de lucru. Există procesoare
cu două sau patru memorii cache, pe nivel L1, L2, L3 şi L4.
Pentru staţii de lucru grafice şi servere cu prelucrări intensive, se
folosesc două procesoare (în sistemele bi-procesor), fiecare procesor
având intre 4 și 8 core-uri. Firma Intel oferă procesorul Xeon™ E7
(octa-processor), pentru aplicaţii „multitasking” (mai multe programe
rulate simultan), lucrând la 3,6 GHz şi având memorie cache L2 de 37,5
MB.
Memoria internă
Programele şi datele se găsesc pe durata prelucrării în memoria de lucru
(RAM), care este şi locul în care se introduc datele (de intrare) şi se
pregătesc pentru afişare rezultatele (datele de ieşire). Pe lângă aceasta
există un modul de memorie de bază pentru intrare/ieşire, ce poate fi
numai citită ROM BIOS (Basic Input/Output System) (ROM), care
păstrează date şi programe de bază necesare pentru comanda directă a
perifericelor şi încărcării sistemului de operare de pe disc Cele două
părţi RAM şi ROM formează memoria internă. La instalarea memoriei
RAM se plasează pe placa de bază module cu circuite integrate care au,
uzual, capacităţi de memorie între 1 şi 8 GB.
Performanţele memoriei interne se referă la tipul memoriei ROM BIOS
şi la caracteristicile memoriei de lucru:
a) Capacitatea de memorie – indică volumul de date care se poate
stoca în memoria de lucru şi se măsoară în multipli de octeţi
(Bytes); uzual, capacitatea de memorie este 2-8 GB sau mai mare
– pentru lucrul cu performanţe multumitoare în cazul sistemelor de
operare şi aplicaţiilor actuale, mari consumatoare de memorie.
b) Timpul de acces – se referă la durata de timp scursă de la cererea
unei date din memorie până la sosirea sa în procesor. Uzual, aceasta
este de 0.833 ns (între 0.833 ns și 2 ns). Timpul de acces depinde
de tipul memoriei şi de versiunea acesteia.
c) Verificarea erorilor – facilitate care indică dacă informaţia
memorată este sau nu corectă, unele tipuri de memorii făcând
verificarea erorilor (prin metode mai mult sau mai puţin sigure –
paritate, control ciclic polinomial), altele nu.

Magistralele sistemului
Sistemele de calcul actuale prezintă mai multe magistrale, unele
păstrate pentru compatibilitatea cu sisteme mai vechi, altele introduse
pentru transferul rapid de date cu perifericele. Conectarea dispozitivelor
(din UC şi periferice) la magistrale se face prin conectori („slot”-uri),
cu structură şi număr de pini specific magistralei. Transferul datelor pe
magistrale este sincronizat de un ceas al magistralei, care indică şi rata
sa de transfer (debitul în bit/sec). Se vor prezenta pe scurt tipuri de
magistrale cu caracteristici şi utilitatea lor:
a) Magistrala ISA (pe placa de bază) – este tipul de magistrală
provenit din sistemele de generaţii mai vechi şi permite conectarea
plăcilor adaptor de periferic cum sunt placa de reţea, modem, etc.
b) Magistrala PCI (pe placa de bază) – este tipul de magistrală, mai
rapidă. Majoritatea dispozitivelor periferice se conectează la
această magistrală.
c) Magistrala AGP (pe placa de bază) – oferă o rată mare de transfer
(până la 21 GBps) la adaptorul de afişare grafică pe ecran (placa
video), pentru prelucrări grafice 3D.
d) Magistrala SCSI – este o facilitate de transfer date către periferice
rapide, cum sunt discul fix (hard disk), disc optic (compact disc)

29
Florin Postolache Introducere în Știința Calculatoarelor

sau alte periferice cu această facilitate, oferind o rată de transfer de


la 10 MB/s până la 80 MB/s, putând să interconecteze până la 14
periferice pe o lungime de cablu până la 12 metri.
e) Magistrala USB – este o magistrală serială de mare viteză, pentru
conectarea dispozitivelor periferice, oferind rate de transfer de
1MBps sau 12MBps pentru varianta USB 1.0 şi până la 5 GBps
pentru varianta USB 3.0, de 10 ori mai rapida decât USB 2.0.

Placa de bază
Reprezintă suportul pentru dispozitivele electronice ce formează partea
cea mai importantă a calculatorului: unitate centrală (cu microprocesor
şi memorie de lucru), magistrale de comunicaţie cu perifericele şi
adaptoare pentru periferice uzuale (tastatură, mouse, discuri, reţea şi
sunet). Placa de bază prezintă cablajul electric - depus printr-un
procedeu similar celui galvanic, în care sunt montate: soclul
microprocesorului, generatoarele de impulsuri de ceas (pentru
sincronizarea operaţiilor din procesor dar şi pentru transferul de date
către periferice) dispozitivele de comandă ale magistralelor de transfer.
Unităţi periferice de intrare
Datele pot fi introduse în memoria de lucru prin intervenţia omului
(folosind tastatura, mouse-ul, scanner-ul etc.) sau direct din mediu prin
senzori şi dispozitive periferice dedicate. Perifericele de intrare uzuale
sunt:
a) Tastatura – este dispozitivul de intrare cel mai utilizat şi prezintă
butoane (taste) dedicate pentru simboluri alfa-numerice de scriere
şi pentru comenzi de introducere a datelor (salt la nou rând,
ştergere, etc.). Configuraţia de simboluri ataşate butoanelor se
poate modifica după specificul de ţară - tastatura engleză
QWERTY, franceză AZERTY, română QWERTZ (indicată prin
literele rândului cel mai de sus-stânga).
b) Mouse-ul – este dispozitivul de indicare a obiectelor grafice pe
ecran, prin poziţia unui indicator de mouse (de obicei, săgeată).
c) Se pot executa manevre asupra obiectelor prin apăsarea simplă a
butonului stânga (click ), dreapta („right”-click ), dublu
2
(„double”-click ), glisare („drag” ). Performanţa mouse-ului
este dată de tipul acestuia (mecanic, optic sau wireless) şi de
existenţa altor facilităţi (de ex. rotiţa pentru derularea panourilor cu
informaţii afişate pe ecran - scroll).
d) Folie sensibilă („touch pad”) şi bilă de urmărire („trackball”) –
sunt dispozitive similare mouse-ului, folosite mai ales la
calculatoare portabile („lap top”).
e) Creion optic – este un dispozitiv similar mouse-ului care permite
indicarea directă pe ecranul (special) al monitorului; util pentru
grafică.
f) Joystick – permite acţiuni de „navigare” pe ecran (similare tastelor
săgeţi), precum şi acţiuni de comandă prin butoane speciale. Este
utilizat de obicei la jocuri, la simularea pilotării în alegerea unui
traseu.
g) Scanner – este dispozitivul de introducere a imaginilor de pe suport
hârtie. Performanţa acestuia este dată de densitatea de puncte pe ţol
pe care le poate sesiza pe imaginea de intrare (dpi - dots per inch),
cu valori de până la 24002400 dpi.
h) Microfon – este parte a complexului audio (placa audio şi
dispozitivele exterioare), util la aplicaţii multimedia.
i) Intrare/captură video – facilitate de preluare semnal complex de
televiziune, pentru prelucrare şi memorare digitală.
j) Intrări analogice şi intrări digitale – ca denumiri generice pentru
dispozitive care pot prelua din mediu semnale continui, respectiv
discrete, utile în supravegherea şi conducerea proceselor
industriale. Astfel, folosind senzori adecvaţi, se pot introduce
valori de semnal electric (tensiune, curent) sau semnale de al tip
(presiune, viteză) din mediul vizat, precum şi semnale de la
comutatori (închis/deschis).

Unităţi periferice de ieşire


Pentru interacţiunea completă cu omul, după introducerea datelor sau
chiar în timpul acesta, calculatorul prezintă pe dispozitivele de afişare
situaţia curentă sau rezultatele prelucrărilor. Datele sunt preluate din
memoria de lucru şi, corespunzător tipului de periferic, impresionează
un anumit tip de suport pentru afişare (CRT, LCD, TFT, LED, hârtie
etc.). Tipuri de periferice de ieşire uzuale sunt:
a) Monitorul (ecranul, „display”) – afişează date sub formă de text şi
imagine, prin puncte minuscule („pixeli”) pe un ecran (fluorescent,
31
Florin Postolache Introducere în Știința Calculatoarelor

cu cristale lichide, LED sau cu plasmă). Performanţa monitorului


este indicată prin rezoluţia sa (numărul de pixeli – care uzual poate
fi 800600, 1024768, 19201080 până la 4K - 4096 x 2160) şi
prin rata de reîmprospătare a imaginii pe ecran (recomandata peste
60Hz), pentru a nu deranja privirea prin „clipirea” imaginii. Pentru
a nu afecta vederea, ecranele moderne prezintă radiaţie redusă,
obţinută prin ecrane speciale sau chiar prin soluţia constructivă.
b) Imprimanta – care permite imprimarea pe hârtie, folie transparentă
sau hârtie specială (de exemplu hârtie fotografică) a textelor şi
imaginilor. După modul cum aşează cerneala pe hârtie,
imprimantele pot fi: cu jet (cerneala stropeşte prin mai multe
ajutaje hârtia), laser (praful de toner se lipeşte termic, printr-un
procedeu de impresionare a hârtiei similar celui de la copiatoare),
cu impact (sau matriceale, în care un set de ace lovesc panglica cu
cerneală în puncte verticale, deplasate apoi orizontal). Cele mai
performante imprimante sunt cele laser, dar imprimantele cu jet de
cerneală oferă calitate foarte bună la un preţ rezonabil.
Performanţele acestor periferice se referă la: rezoluţie (numărul de
puncte pe ţol liniar - „dots per inch” dpi), care poate fi între 300 dpi
şi 1200 dpi, apoi numărul de pagini tipărite pe minut („page per
minute” ppm) care la imprimante laser actuale poate fi între 19 ppm
şi 50 ppm, iar în final preţul şi durata de utilizare a consumabilelor
(cartuşe de toner – negru şi color).
c) Masă de desen („plotter”) – permite desenarea pe hârtie (de obicei
de dimensiuni mai mari ca formatul A4) cu ajutorul unei peniţe
purtate în cele două dimensiuni sau doar orizontal – pe verticală
fiind antrenată hârtia.
d) Difuzoare/căsti – placa de sunet este adaptorul periferic pentru
comunicaţii audio, ieşirea de sunet făcându-se pentru difuzoare.
Performanţele se referă în principal la lărgimea de bandă audio iar
plăcile de sunet actuale sunt foarte bune (20Hz – 24.000Hz), alte
performanţe fiind legate de prelucrarea şi sintetizarea sunetelor.
Placa de sunet are incluse şi facilităţile de intrare semnal prin
microfon.
e) Ieşiri analogice şi digitale – similar intrărilor e acest fel,
calculatoarele cu acţiune în procese industriale emit semnale
electrice continui (analogice) şi digitale (discrete) pentru comanda
echipamentelor de conducere şi control a instalaţiilor industriale.
Unităţi de memorare pe suport extern
Pentru stocarea pe o durată nedeterminată a datelor, se folosesc
suporturi de memorare de tip magnetic, SSD sau optic. Dispozitivele
care permit citirea (şi eventual scrierea) pe suportul extern de stocare se
numesc unităţile de memorie externă („drives”); fiindcă suportul de
memorie este de obicei sub formă de disc, uzual vorbind de unităţi de
discuri, însă pot fi şi sub formă de panglică (bandă).
Acestea au tipuri şi utilizări după cum urmează:
a) Disc fix („hard disk” HDD) – este unitatea de memorare necesară
intrinsec funcţionării calculatorului, având stocate programele de
bază şi aplicaţie precum şi datele de lucru cu acestea. Performanţele
acestuia sunt: capacitate de memorare (uzual între 200GB şi 2TB),
timpul de acces (legat direct de viteza de rotaţie a discului – rpm,
ce poate fi 5400 rpm, 7200 rpm sau 15000 rpm), capacitatea
memoriei cache (512 KB sau mai mult), tipul unităţii de disc (firma
producătoare – de exemplu Western Digital®, Seagate®,
Quantum®, etc.), tipul interfeţei de conectare la calculator (IDE,
SATA, SCSI). Totodata, în ultima perioada au devenit accesibile
mediile de stocare SSD (Solid State Drive).
b) Disc flexibil („floppy disk” FDD) – este un suport amovibil (adică
ce poate fi extras şi montat pe alte calculatoare), denumită uzual
dischetă. Capacităţile uzuale sunt de 1,44 MB sau 2MB, la o viteză
de rotaţie de 2400 rpm. În prezent acestea sunt utilizate foarte rar,
fiind pe cale de dispariție.
c) Disc optic („compact disc” CD, DVD, Blue-Ray) – este o memorie
amovibilă care, în general, poate fi numai citită de mare capacitate
(600 MB până la 128 GB) şi timp de acces mic (indicat printr-un
factor de multiplicitate 4X, 8X, 16, 48). Astăzi devin tot mai
obişnuite unităţi care pot citi şi înscrie informaţii (unităţi RW),
discul optic devenind un concurent al discului dur. În variante
performante, discul optic poate memora până la 128GB – discuri
BD, utilizate în special pentru filme.
d) Bandă magnetică („streamer”) – este banda magnetică, de obicei
bobinată pe role plasate într-o casetă de plastic de dimensiunea unei
cutii de chibrituri. Capacităţile de memorare mari ale acestora
(peste 6GB), le fac potrivite pentru salvare de siguranţă („back-

33
Florin Postolache Introducere în Știința Calculatoarelor

up”) pentru programe şi date ce se doresc păstrate un timp


îndelungat.
Unităţile de memorare externă permit plasarea suporturilor (disc sau
casetă cu bandă), pentru citirea şi înscrierea datelor în formă magnetică
sau optică; în al doilea caz, înscrierea se numeşte şi „ardere”. Discul fix
este însă cea mai importantă unitate de memorie externă, iar datele
memorate pe aceasta trebuie să fie păstrate cu mare siguranţă.
Tipuri constructive de calculatoare
Cele mai utilizate calculatoarele sunt cele personale (PC „personal
computer”), care prezintă, constructiv, variante legate de modul cum se
aşează şi utilizează calculatorul:
a) Pe birou „Desktop” – cu forma carcasei plată (puţin înaltă), aşezată
de obicei pe masa de lucru iar deasupra monitorul.
b) Lângă birou, Turn („Tower”) – cu forma carcasei mai înaltă şi
îngustă, aşezată de obicei lângă masa de lucru (pe podea sau în
spaţiu special) iar monitorul pe birou. Această carcasă permite
instalarea mai multor plăci adaptor („controller”) pentru diverse
periferice şi oferă flexibilitate în configurare.
c) Pe braţe („Lap Top” sau „Notebook”) – cu formă foarte plată şi
compactă, uşoare, cu tastatură şi ecran (cu cristale lichide - LCD)
încorporate. Acest tip permite transportul comod şi lucrul în
călătorii, fiind alimentat şi de la baterii. Performanţele acestui tip
de calculator rivalizează cu cele ale PC-urilor descrise mai sus, însă
reconfigurarea este o problemă dificilă şi costisitoare datorită
compacităţii sale.
d) În palmă Tablete – foarte miniaturizate dar cu posibilităţi mai
reduse de prelucrare decât precedentele. Constructiv, cea mai mare
parte a „calculatorului” o reprezintă ecranul, iar lucrul interactiv
este realizat prin Touch sau utilizând un creion electronic de
indicare şi scriere (fiind posibilă interpretarea scrisului de mână de
către calculator).
Calculatoarele „mari” – ca echipamente masive şi complexe, chiar dacă
au scăzut în popularitate, mai există astăzi sub forma „server-elor” .
Acestea sunt de fapt calculatoare puternice (blade-uri sau de tip PC),
echipate cu mai multe procesoare, mai multe discuri fixe (masive de
discuri RAID) şi îndeplinesc servicii către mulţi utilizatori. Printre
servicii se pot enumera: acces la baze de date mari, comunicaţii (în
Internet), găzduirea volumelor mari de informaţii de diverse tipuri,
calcule matematice intensive (care pentru un calculator obişnuit
necesită săptămâni sau luni de lucru continuu) sau virtualizare.
Totuşi, noţiunea de server nu este legată de performanţele şi
dimensiunea echipamentului de calcul ci se referă la un program server
care funcţionează fără întrerupere pe acesta, aşteaptă cereri de la
utilizatori şi le oferă servicii; prin extensie, maşina pe care rulează unul
sau mai multe programe de acest fel se poate numi server.

4.2. Structura logică a unui sistemului de calcul


Din punctul de vedere al programatorului, sistemul de calcul are patru
blocuri principale, utile în organizarea prelucrării datelor prin
programul pe care îl va realiza.

Figura 5. Structura logică a unui sistem de calcul


Se observă că cele patru blocuri de interes sunt Procesorul – responsabil
de prelucrarea datelor şi controlul întregului calculator, unităţile de
Intrare şi Ieşire – responsabile de introducerea datelor şi prezentarea
rezultatelor, Memoria – responsabilă de stocarea intermediară a datelor
şi programelor. La momentul programării numai aceste patru blocuri
logice sunt prezente în viziunea programatorului.
În figura 5, procesorul are rolul de a opera prelucrări asupra datelor
preluate din memorie şi în plus rol de control a celorlalte blocuri.
Această accepţie este necesară pentru programarea la „nivel jos”, caz în
care se utilizează comenzi pentru controlul direct al perifericelor
(pentru acces la porturi I/O şi pentru reglaje – în engleză „settings”).

35
Florin Postolache Introducere în Știința Calculatoarelor

4.3. Principiul de lucru al unui sistem de calcul


Pentru simplitate, modul de lucru al calculatorului se poate asemăna cu
modul de lucru uman - de exemplu în cazul rezolvării de către un
student a unei probleme ce presupune calcule:
Student Calculator
- citeşte datele de enunţ - datele de intrare introduse de la
tastatură
- aplică metoda de rezolvare: - se aplică algoritmul de prelucrare
- realizează calcule - date din memoria internă suferă
operaţii prin intermediul procesorului
- reţine rezultate parţiale şi finale - rezultatele parţiale şi finale din
procesor se transferă în memoria
internă
- înscrie rezultatele pe hârtie (în caiet) - datele de ieşire se stochează pe disc
sau afişează pe ecran, în formate
prestabilite

Prelucrările din aplicaţiile uzuale nu sunt totdeauna calcule (după cum


s-a arătat mai sus), dar orice aplicaţie uzuală necesită operaţii de
introducere a datelor şi de afişare a rezultatelor, fie direct fie prin
intermediul unor module exterioare aplicaţiei de bază.
5. Reprezentarea şi structurarea informaţiei

Informaţiile vehiculate de către om, în diferite situaţii, sunt strâns legate


de mijloacele prin care acesta comunică cu mediul înconjurător dar şi
cu ceilalţi oameni. În primul caz, informaţiile apar sub formă de imagini
şi sunete, iar în al doilea caz informaţiile apar în plus sub formă de text
(cărţi, reclame, etichete de produs) şi sub formă de numere (sume de
bani, vârste). În scopul manipulării acestor tipuri de informaţie prin
intermediul tehnicii de calcul, fiecare din categoriile de mai sus capătă
o reprezentare anume, pentru a fi „inteligibilă” calculatorului numeric.
Reprezentarea informaţiei în creierul uman nu este încă elucidată -
datorită complexităţii structurilor din creier şi datorită mecanismelor,
încă necunoscute, ce realizează stocarea informaţiilor. În calculatoarele
electronice, dispozitivele de stocare au doar două stări şi sunt astfel
simplu de realizat tehnologic: condensatoare cu stările încărcat /
descărcat sau dispozitive cu două stări stabile (numite bistabile). În alte
variante tehnologice ele sunt de asemenea, uşor de realizat: mecanic,
chimic şi chiar la nivel atomic.
Calculatoarele actuale sunt denumite calculatoare numerice (sau
digitale – de la cuvântul englezesc „digit” - cifră) pentru că ele
transformă toate informaţiile pe care le stochează şi prelucrează în
reprezentări discrete. Au existat şi calculatoare analogice, în care
informaţia păstra reprezentarea continuă, firească, a semnalelor din
lumea înconjurătoare; aceste calculatoare prelucrau semnalele continui
cu ajutorul „dispozitivelor electronice analogice” de tip amplificator de
semnal, integrator cu condensator electric etc. Limitările
calculatoarelor analogice privind aplicaţiile şi modalitatea de stocare a
datelor au dus la înlocuirea lor cu dispozitive numerice, care prin
discretizare şi cuantificare pot reprezenta şi prelucra orice semnal
analogic (cu o precizie mai mare sau mai mică).
37
5.1. Bit, octet şi multiplii acestora
Anterior, definiţia informaţiei a fost însoţită de exemplificări relative la
tipuri de informaţii – cum sunt, de exemplu, imagini, sunete, numere,
text. Informaţiile logice de tip Adevarat/Fals sau Da/Nu sunt informaţii
abstracte, putând fi considerate piese elementare de informaţie fiindcă
au doar două valori posibile şi reprezintă situaţii simple sau generale –
de exemplu un eveniment oarecare se produce (Da) sau nu se produce
(Nu). Piesa de informaţie ce poate avea doar două valori posibile se
numeşte bit.
Bit-ul reprezintă unitatea elementară de informaţie, corespunzând unei
situaţii fizice în care un comutator este deschis sau închis, situaţii
reprezentate de oameni, în afara calculatorului prin cifrele 0 şi 1, deci,
cifrele sistemului binar.

Figura 6. O realizare tehnică a valorilor logice 0 şi 1 pentru un bit


În calculatoarele numerice, un bit se consideră că poate lua ori valoarea
0 ori valoarea 1, fiecare din acestea corespunzând, de fapt, unei situaţii
fizice în care un comutator este deschis – respectiv închis (vezi fig. 6),
sau un condensator electric este încărcat cu sarcină electrică – respectiv
este descărcat. Valorile 0 sau 1 reprezintă deci „valori logice”
(Adevarat/Fals) dar totodată, fiind cifre, permit crearea de numere.
Memoriile semiconductoare ale calculatoarelor numerice pot stoca biţi
în miliarde de condensatoare minuscule, numărul acestor biţi
reprezentând capacitatea de memorie a respectivului calculator.
Asemenea numere uriaşe nu sunt comod de utilizat, de aceea se
utilizează multipli de bit.
Octet (sau Byte) este un grup de opt biţi reprezentând, tradiţional, o
celulă de memorie.

38
Evident că evaluarea capacităţilor de memorie actuale, folosind ca
unitate de măsură octetul, nu rezolvă problema numerelor foarte mari
vehiculate. De aceea se folosesc multipli de octet, cu denumiri uzuale
ale multiplilor unităţilor de măsură, dar cu semnificaţie diferită -
conform tabelului de mai jos.
Tabel. 1 Multipli de bit şi octet
Nume multiplu Semnificaţie Magnitudine
Kilo 210  1.024
Mega 220  1.048.576
Giga 230  1.073.741.824
Tera 240  1.099.511.627.776

După cum se observă, semnificaţia multiplilor de bit şi octet în


informatică diferă de cea tradiţională (în care Kilo reprezintă 10 3 - de
exemplu), dar valoarea numerică a fiecărei categorii de multiplu este
oarecum apropiată de cea tradiţională (Kilo apropiat de mie, Mega de
milion, etc.). Raţiunea acestor valori pentru multiplii utilizaţi în
informatică este reprezentarea în calculator a numerelor folosind baza
de numeraţie 2 .

5.2. Identificator, variabilă, constantă, literal


Datele sunt memorate ca succesiuni de biţi în memoria de lucru (RAM)
sau pe suport extern (disc magnetic sau optic), iar ele pot fi piese simple
sau pot fi colecţii de piese, cu o semnificaţie anume (litere, numere,
texte, sunete, imagini).
Pentru a fi manipulate, datele trebuie referite, adică apelate după un
nume sau prin adresa acestora în memorie.
Se dă următoarea prelucrare algebrică:
a = b + pi + 15 + sin(c),

39
unde a,b,c,pi, sunt date denumite prin litere, sin() este numele funcţiei
trigonometrice sinus iar 15 este o valoare imediată. Pe acest exemplu
simplu se vor enunţa noţiunile ce urmează.
Identificatorul este numele ataşat unei piese sau colecţii de date, dar şi
a unei prelucrări anume, în general aflate în memoria de lucru.
Numele este un şir de caractere (litere, cifre şi alte simboluri) care
trebuie să satisfacă anumite criterii, funcţie de locul de utilizare a
identificatorului. Astfel, în limbajele de programare identificatorii nu
pot conţine spaţii (constituie un singur cuvânt). În expresia de mai sus
identificatori pentru date sunt a, b, c, pi, iar pentru prelucrări este sin
(calcului sinusului de unghi c). Dacă datele sunt piese sau colecţii care
se stochează în memoria internă (RAM) atunci identificatorii au
semnificaţia unor adrese – prin care se pot manipula variabile şi
constante.
Variabila este o locaţie de memorie referită printr-un identificator şi
poate conţine diverse valori ale unei date de tip specificat.
Valorile pe care le poate lua variabila aparţin domeniului specific
tipului de date respectiv. De exemplu, datele de tip logic pot lua doar
două valori - Adevărat sau Fals, iar datele de tip întreg pe un octet pot
lua valori numere între 0 şi 255 . Datele vehiculate într-un program sunt
de fapt variabile, care au primit fiecare o valoare chiar la momentul
declaraţiei (prin iniţializare) –sau ca rezultat al unei expresii (prin
atribuire)
Constanta este o locaţie de memorie referită printr-un identificator şi
poate conţine doar o singură valoare a unei date de tip specificat.
Constantele sunt utile pentru anumite valori speciale (celebre) cum sunt
numărul  sau numărul lui Neper e, constante universale sau doar valori
care nu se doresc a fi modificate în cadrul unor prelucrări (voit sau din
eroare). Constanta este de fapt o variabilă cu restricţie de modificare a
valorii, valoarea însăşi fiind „ascunsă” după identificator. Identificatorii
constantelor sunt în general nume rezervate - într-un limbaj de
programare (de exemplu pi).
Literal este o valoare concretă pentru un tip de date, indicată prin
simboluri specifice tipului respectiv.
40
Iniţializarea variabilelor (adică atribuirea unei valori iniţiale în tipul de
date propriu variabilei) sau specificarea unei valori imediate într-o
expresie se face utilizând literali. În expresia de mai sus apare banal 15
- ca literal numeric, dar pentru alte tipuri de date specificarea este mai
puţin comună; de exemplu un literal caracter (litera a) se indică ‘a’.

5.3. Secvenţe Escape


Caracterele Unicode pot fi reprezentate în programe prin secvenţe
escape, care încep prin simbolul \ (backslash). O primă categorie de
secvenţe escape este de forma \uxxxx, unde xxxx sunt patru cifre
hexazecimale, care reprezintă codul numeric al caracterului respectiv.
Codificarea tuturor caracterelor poate fi găsită pe Web la
http://www.unicode.org/charts/.
Pentru limba română, majoritatea literelor sunt cele ale alfabetului latin,
la care se adaugă literele cu diacritice, pe care le găsim în extensiile
alfabetului latin: 'Ă' ('\u0102'), 'ă' ('\u0103'), 'Â' ('\u00C2'), 'â'
('\u00E2'), 'Î' ('\u00CE'), 'î' ('\u00EE'), 'Ş' ('\u015E'), 'ş' ('\u015F'), 'Ţ'
('\u0162'), 'ţ' ('\u0163')

5.4. Tipuri de date simple


Varietatea informaţiilor utilizate de om pare foarte mare, însă ele pot fi
clasificate în categorii generice care apoi să primească reprezentări
generale ca tipuri de date. Se poate face o analiză sumară din care
rezultă câteva categorii de asemenea informaţii simple:
a) numere singulare – utilizate a desemna sume de bani, distanţe, zile
din luna calendaristică, cu care se pot face calcule matematice. Se
deosebesc două categorii de numere – numere întregi şi numere reale
(cu zecimale).
b) simboluri grafice - litere, cifre, semne de punctuaţie, spaţii libere,
utilizate în texte. Aceste simboluri sunt elemente ale unui set finit de
simboluri de scriere (alfabetul, cifrele de la 0 la 9, semnele de
punctuaţie); ele sunt denumite generic caractere alfanumerice.

41
c) Informaţii de tip Adevărat sau Fals – pentru a desemna o situaţie sau
un eveniment funcţie de care se ia o decizie (de exemplu, dacă un
eveniment a avut loc se execută o anumită acţiune, altfel altă acţiune),
denumite informaţii logice (booleene).

5.4.1. Reprezentarea numerelor întregi


Numerele utilizate curent pentru calcule (şi nu numai) se prezintă în
aşa-numita „scriere arabă”, în care cifrele sunt aranjate pe ranguri
corespunzătoare puterilor lui 10, numărul 10 considerat „bază de
numeraţie”.

Figura 7. Numărul 5999 în scrierea arabă, cu baza de numeraţie 10.


După cum se ştie, fiind prezentat și mai sus, în reprezentarea zecimală
a numerelor, rangurile conţin cifre care pot lua valori de la 0 la 9.
Numărul de simboluri folosite pentru cifre este 10 (adică un număr egal
cu baza de numeraţie).
Numere binare
Calculatoarele numerice sunt dispozitive realizate tehnologic în cel mai
simplu mod, prin faptul că folosesc cea mai simplă reprezentare a
informaţiei: Adevărat / Fals sau Da / Nu. Aceste două simboluri pot fi
cifre pentru numere în baza de numeraţie 2, fiindcă, similar lucrului în
baza de numeraţie 10, un număr reprezentat în baza de numeraţie 2 va
avea rangurile ca puteri ale bazei - aşa cum se prezintă în figura 8.

Figura 8. Numărul 11 în scrierea arabă, in baza de numeraţie 2

42
Pentru a ilustra simplitatea reprezentării numerelor în baza 2, se
prezintă în Tabel 2 numere înscrise succesiv, începând de la 0 până la
10(10), obţinute prin adunare succesivă a unităţii (adică prin
„incrementare”), aşa cum apar în coloana (I) pentru baza 2 şi în coloana
(III) pentru baza 10.
Tabel 2. Numărare în baza 2 şi în baza 10, cu rezultatele obţinute
Incrementare Număr în baza 2 Incrementare Număr în baza 10
(I) (II) (III) (IV)
0 0 0 0
0+ 0+
1 1 1 1
1 1
1+ 1+
1 10 1 2
10 2
10 + 2+
1 11 1 3
11 3
11 + 3+
1 100 1 4
100 4
100 + 4+
1 101 1 5
101 5
101 + 5+
1 110 1 6
110 6
110 + 6+
1 111 1 7
111 7
111 + 7+
1 1000 1 8
1000 8
1000 + 8+
1 1001 1 9
1001 9
1001 + 9+
1 1010 1 10
1010 10

Coloanele (II) şi (IV) indică numărul rezultat, înscris în baza 2 şi


respectiv în baza 10. Se reaminteşte că la numărarea în baza 10, atunci
când se obţin zece unităţi pe un rang se adaugă o unitate (numită
43
transport) la rangul imediat superior – vezi ultima linie din Tabel 2.
Procedeul se aplică similar şi pentru baza 2: la două unităţi pe un rang
se obţine o unitate de rang imediat superior – vezi linia cu numărul 2
din Tabel 2.
Numere pozitive şi negative
Adunarea a două numere în baza 2 decurge după regulile cunoscute din
baza 10, adică se adună cifrele pe ranguri şi, eventual, transportul de la
rangul inferior, procedeul începând cu rangul cel mai puţin
semnificativ. Din cele prezentate, rezultă că folosind doar două cifre (0
şi 1) se pot forma numere şi se poate opera cu ele în modul cunoscut.
Aceste numere sunt denumite numere binare iar scrierea în baza 2 este
denumită reprezentare binară a numerelor.
Până la acest punct au fost prezentate numai numere naturale (întregi şi
pozitive); numerele negative presupun existenţa semnului ce se
ataşează numărului natural. Aşa cum numerele negative reprezintă o
convenţie din lumea matematicii (în lumea reală ele indicând o „lipsă”),
la reprezentarea numerelor negative în calculator se face uz de o
convenţie prin care rangurilor disponibile pentru reprezentarea
numărului se adaugă un rang suplimentar (cel mai semnificativ),
indicând semnul:
0 – numărul este pozitiv (semnul +),
1 – numărul este negativ (semnul ).
Rangul adăugat pentru indicarea semnului face parte din lungimea
cuvântului alocat pentru reprezentarea numerelor şi se numeşte uzual
bit de semn. DacăError! Reference source not found. lungimea
cuvântului este 5, bitul de semn este în poziţia rangului cel mai
semnificativ.

Figura 9. Reprezentarea numerelor cu semn

44
Tipuri de date întregi
Limbajele de programare prevăd diferite categorii de numere întregi,
clasificate după numărul de ranguri disponibile pentru reprezentarea
numărului şi după prezenţa bitului de semn. Lungimea rangurilor
disponibile pentru reprezentarea numărului exprimă „precizia” acestuia
şi este exprimată în biţi sau octeţi.
Se prezintă mai jos exemple de declaraţii pentru variabile de tip întreg
în limbajul C.
a) Variabile de tip întreg pe doi octeţi, indicând ziua din lună şi trei note
de examen:
int ziua=13;
int NotaExamen1, NotaExamen2, NotaExamen3;
b) Variabilă de tip întreg pe 4 octeţi, indicând numărul de operaţii
estetice ale unei cunoscute actriţe (neiniţializat, adică fără valoare
specificată – pentru confidenţialite):
unsigned long int nr_estetic;
În cazul a) variabila ziua este iniţializată la valoarea specificată după
semnul =, adică această valoare este „încărcată” în locaţia de memorie
a variabilei chiar la momentul declaraţiei, deci imediat după rezervarea
spaţiului de memorie necesar (2 octeţi). Valoarea ce apare după semnul
= este un literal.
Operaţii cu numere întregi
Un tip anume de date permite un set bine definit de operaţii permise
asupra variabilelor declarate cu acel tip. Operaţiile sau operatorii se
aplică diferenţiat funcţiile de caracteristicile tipului de date, mai jos
fiind inventariate operaţii pe cele trei categorii.
Asupra numerelor întregi se pot efectua următoarele operaţii aritmetice
(în paranteze simbolul uzual al operaţiei): adunare şi scădere (+ şi ),
înmulţire (*), câtul împărţirii întregi (/), restul împărţirii întregi (%).
Ultimele două operaţii sunt specifice numerelor întregi, rezultatul
operaţiei de împărţire fiind tot un întreg.

45
Numerele întregi pot fi comparate privind magnitudinea prin operatori
relaţionali cu simbolurile <, >, <=, >=; simbolurile <> sau != realizează
comparaţia de neegalitate , iar simbolurile = sau = = comparaţia de
egalitate.
Tipul de date ”întreg” este un tip ordinal cu ordine între valorile din
domeniu: numărul 1 este înaintea numărului 2 şi după numărul 0. De
aceea sunt posibile operaţii de tip predecesor – succesor; de exemplu
operatorul de succesiune din expresia succ(2) are ca rezultat 3.

5.4.2. Reprezentarea numerelor reale


Pentru numerele reale care nu prezintă parte întreagă ci doar partea
zecimală (adică numerele subunitare) se foloseşte o reprezentare binară
imediată, în care virgula zecimală se consideră plasată între bitul de
semn şi rangurile binare ale numărului propriu-zis (vezi figura 10a).

Figura 10. Reprezentarea numerelor reale a) în „virgulă fixă” şi b) în virgulă mobilă


Convenţia prin virgulă fixă are multe dezavantaje, între care lungimea
mare necesară pentru a reprezenta numere rezonabile este poate cea mai
importantă. Convenţia de reprezentare prin virgulă (vezi figura 10b)
este mai compactă şi totodată eficientă, formată din două părţi (Mantisă
şi Exponent) ca numere reprezentate în virgulă fixă.
Reprezentarea numerelor în virgulă mobilă
Mantisa (M) este numărul propriu-zis reprezentat ca număr subunitar,
iar exponentul (E) este puterea lui 10 - care înmulţită cu mantisa va da
numărul real vizat. Fiecare din cele două părţi are semnul său: SM
semnul mantisei este de fapt semnul numărului real (pozitiv sau
negativ) iar SE semnul exponentului indică puteri pozitive (înmulţire cu
10) sau negative (împărţire prin 10) stabilit astfel ca să obţinem la
mantisă un număr subunitar.
46
Scrierea numerelor reale prin mantisă şi exponent este practicată în
aproape orice produs informatic, datorită modului compact în care se
prezintă. Spre exemplu, numărul 22,57 poate fi scris prin mantisă şi
exponent în forma 0,2257e-2, exponentul fiind separat de mantisă prin
litera e. În această formă se afişează, în general, rezultatele numerice
obţinute în urma unor calcule matematice.
Operaţii cu numere reale
Fiind numere, se pot efectua operaţiile aritmetice uzuale cu numerele
reale: adunare şi scădere (+ şi ), înmulţire (*),împărţirii cu zecimale
(/).
Mulţimea numerelor reale se reprezintă matematic ca puncte infinit
apropiate pe o dreaptă (axa reală). Între oricare două puncte de pe axa
reală se poate găsi încă cel puţin un punct, deci nu se poate considera
că un punct urmează după altul, deci tipul real nu este un tip de date
ordinal, ca atare nu se poate considera că există o ordine între numerele
reale, adică nu există operatori de tip predecesor pred()sau succesor
succ().
Între numerele reale se pot efectua comparaţii prin operatori relaţionali:
<, >, <=, >=; comparaţia de neegalitate <> sau !=, apoi = sau = = pentru
comparaţia de egalitate.

5.4.3. Tipul de date caracter


Simbolurile de scriere (fie ele în alfabetul latin, chirilic sau japonez) se
numesc caractere (în engleză „characters”) şi ele sunt necesare la
scrierea textelor sau chiar a comenzilor prin care omul comunică cu
calculatorul. Fiindcă în memoria calculatorului orice informaţie este
reprezentată binar – ca numere, pentru caractere se utilizează o
codificare numerică pe un număr de biţi, fiecărui caracter
corespunzând, prin convenţie, un cod numeric anume.
Convenţiile de codificare sunt cuprinse în aşa-numitele „tabele de cod”.
Există mai multe asemenea tabele:
 tabela ASCII – pe 7 biţi, cea mai utilizată tabelă de cod (în
calculatoarele personale şi alte sisteme de calcul), provenind din
47
standardul american (American Standard Code for Information
Interchange);
 tabela Unicode – pe 16 biţi, care este o altă extensie a tabelei
ASCII (prima parte fiind identică cu tabela ASCII) şi care are un
număr mare de coduri disponibile, pentru reprezentarea nu numai
a caracterelor latine cu diverse diacritice, dar şi a caracterelor
diferite de cel latin (chirilic, arab etc.).
Tabela Unicode s-a impus mai ales prin utilizarea Internet-ului, unde
informaţia se personalizează în foarte mare măsură pentru ca oameni
din diferite colţuri ale lumii şi din diferite culturi să poată interacţiona
eficient cu aplicaţiile la distanţă, adică să comunice fiecare în limba şi
scrierea proprie.
Reprezentarea caracterelor
Pentru a se deosebi de identificatori (care pot fi litere singulare), la
manipularea caracterelor acestea se indică prin încadrarea simbolului
de scriere între apostrof-uri, adică se indică literali de tip caracter.
Exemplu ‘A’, ‘a’, ‘0’, ‘:’. Aceste simboluri nu au nici o semnificaţie în
sistemul de programe, ci ele au rol numai de a fi desenate pe
dispozitivele de ieşire (ecran, imprimantă) pentru a fi citite de om.
În oricare din tabelele de cod menționate, caracterelor li se asociază un
număr întreg (fără semn), astfel ca ordinea numerică a codurilor să fie
similară cu ordinea lexicografică a caracterelor în alfabetul ales. Astfel,
se dau mai jos exemple de coduri ataşate (identic) unor caractere în
tabela ASCII, IBM extins sau Unicode: ‘A’= 65(10), ‘B’= 66(10), ‘C’=
67(10), ‘a’= 97(10), ‘\n’= 10(10) – cod ataşat acţiunii de salt la nou rând,
‘\a’= 7(10) – cod ataşat sunetului „bell” produs pentru a atrage atenţia
sonor. După cum se observă, unele „caractere” sunt de fapt acţiuni
executate de la tastatură (de exemplul salt la o nouă linie), dar au fost
cazuri când caracterele au avut rol în comunicaţia de date – de exemplu
indicarea începutului şi sfârşitului de mesaj STX = 2(10), ETX = 3(10) sau
încheierii transmisiei EOT = 4(10).
Ordonarea lexicografică a caracterelor se poate face pe baza numerelor
asociate drept cod acestora; astfel, literele majuscule sunt înaintea

48
literelor mici (adică primele au valori mai mici) iar cifrele sunt înaintea
literelor în tabela de cod.
Tipul caracter este utilizat ca atare dar şi în tipul structurat „şir de
caractere”.
Operaţii cu tipul de date caracter
Tipul de date caracter este un tip ordinal, deci permite operaţii prin care
se indică poziţia relativă a valorilor caracterelor, unele faţă de altele -
predecesor pred(), succesor succ().
Fiind reprezentate prin numere întregi, caracterele permit operaţii
aritmetice admise pentru întregi. Între acestea, sunt utile cele de
incrementare / decrementare (creştere / descreştere cu o unitate), prin
care se poate parcurge tabela de cod sau şi se pot genera succesiuni de
litere.
Trebuie subliniat că cifra ‘3’, nu este acelaşi lucru cu numărul 3 –
primul este un simbol de scriere (şi are drept cod numărul 51 (10)) iar al
doilea este util pentru calcule şi are o reprezentare în baza 2 (Tabel 2).

5.4.4. Tipul de date logic


În viaţa obişnuită sunt dese situaţiile în care interesează apariţia unui
eveniment; funcţie de apariţia acestuia pot apare alte evenimente sau se
vor lua decizii în consecinţă. De exemplu, faptul că plouă şi fereastra
este deschisă conduce la umezirea cărţilor de pe masa de lângă
fereastră; dacă plouă, luăm decizia să închidem fereastra. Se poate,
aşadar, ca intrând în camera cu pricina să constatăm că este „adevărat”
că fereastra este deschisă. Cazurile de interes la apariţia unui eveniment
sunt deci două - „adevărat” sau „fals”, caracterizând din punct de vedere
logic situaţia.
Expresia logică, numită și expresie booleană, este o expresie în care se
aplică operatori logici (booleeni) asupra unor operanzi care au valori
logice. Din evaluarea unei expresii logice se obține o valoare logică
(true sau false).

49
Reprezentarea datelor de tip logic
Datele care transpun în memoria calculatorului informaţiile despre
situaţii caracterizate prin atributul „adevărat” sau „fals” se numesc date
de tip logic sau boolean, iar reprezentarea lor se poate face folosind un
singur bit: apariţia evenimentului este asociată valorii ‘1’ logic, iar ne-
apariţia valorii ‘0’ logic.
Operaţii cu tipul de date logic
Este posibilă combinarea mai multor situaţii logice, pentru cazurile
când acestea:
 apar numai simultan (conjuncţia) – ŞI logic (în engleză AND),
 apar alternativ sau simultan (disjuncţia) – SAU logic (în engleză OR),
 apar în contradicţie (negaţia) – NU logic (în engleză NOT),
care constituie chiar operatorii specifici ce se pot aplica datelor de tip
logic.
Pentru exemplificarea şi lămurirea acestor trei operatori, se prezintă
(figura. 11) trei cazuri intuitive, în care întrerupătoarele x (şi y) se pot
acţiona pentru aprinderea unui bec z.

Figura 11. Operaţii logice în prezentare intuitivă a) ŞI – AND, b) SAU – OR, c) NU – NOT
Stării închis a unui anume întrerupător se asociază valoarea logică
„adevărat” iar stării deschis a întrerupătorului se asociază valoarea
logică „fals”; stării „aprins” a becului se asociază valoarea logică
„adevărat” iar stării „stins” - valoarea logică „fals”.
50
Astfel, pentru cazul din figura 11a corespunde expresia logică: «becul
z devine „adevărat” (aprins) pentru întrerupător x „adevărat” (închis) ŞI
întrerupător y „adevărat” (închis)».
În timp ce operaţiile ŞI, SAU din desenele de mai sus sunt uşor de
imaginat, operatorul NU (NOT) în figura 11c) este indicat prin
întrerupătorul x menţinut de un arc în starea închis –chiar fără a fi
acţionat butonul x (deci în starea logică „fals”) cu becul z aprins – deci
în starea „adevărat”; la apăsarea butonului x apare starea deschis
(„fals”) a acestuia însă a becul z – se stinge – deci apare starea „fals”.
Prin această funcţionare apare o negare a acţiunii logice de apăsarea a
butonului x prin stingerea becului z.
Efectele acestor trei operatori asupra variabilelor de tip logic sunt
ilustrate prin „tablele de adevăr” prezentate mai jos, în care se prezintă
şi simbolurile grafice asociate celor trei operatori:  pentru ŞI,  pentru
SAU,  pentru NU.

Operatorii logici apar în programe, cel mai adesea, pentru a exprima


condiţii complexe în urma cărora se ramifică fluxul de comenzi ce se
vor executa (vezi decizia binară).

5.4.5. Tipuri de date structurate


Această categorie de date se referă la colecţii de piese de date - simple
sau structurate, numite şi tipuri compuse de date. Tipul fiecărei piese de
date şi organizarea lor în structură trebuie declarate la începutul
programului, adică trebuie comunicate explicit compilatorului pentru a
se face rezervarea corespunzătoare a locaţiilor de memorie necesare.

51
Structura astfel declarată nu se modifică pe parcursul programului, de
aceea tipurile compuse sunt considerate structuri statice de date.
Tipul de date tablou
Deseori sunt necesare prelucrări asupra unui set de date de acelaşi tip;
acestea se pot grupa în masive de date sau tablouri, cum sunt vectorii
(tablouri cu o singură dimensiune) sau matrice (tablouri cu două sau
mai multe dimensiuni).
Tabloul (în engleză array) este o structură ordonată de date de acelaşi
tip, formată din elemente care pot fi accesate prin indici (fiecare piesă
referită prin poziţie).Piesele de date din tablou sunt organizate pe linii
şi coloane şi pentru a fi accesate, acestea sunt referite, adică adresate,
prin indicii de line (şi eventual coloană). Mai jos se prezintă o matrice
pătratică de numere întregi, cu patru linii şi patru coloane, în care
fiecare element aij este referit prin linia i şi coloana j la intersecţia cărora
se află.
 a 1 1 a1 2 a 1 3 a 1 4 
a 2 1 a 2 2 ... 
a 
... aij ... 
 
a 4 1 .... a 4 4 
Prelucrările cu tablouri (sume, produse, transpuneri, etc.) se efectuează
asupra fiecărui element în parte; de exemplu, sumarea matricelor a şi b
constă a sumarea perechilor de elemente cu acelaşi indice (linie şi
coloană).
Operaţii asupra datelor de tip tablou
Fiindcă datele de tip tablou sunt structuri ale altor tipuri de date,
operaţiile posibile asupra elementelor din tablou sunt cele permise
pentru tipul de date respectiv. Astfel, operaţiile permise se aplică
respectând restricţiile impuse de operaţii cu tablouri, spre exemplu:
 sumarea tablourilor – sumarea elementelor de acelaşi indice pentru
linie şi coloană;

52
 înmulţirea tablourilor – obţinerea unui tablou produs
corespunzător operaţiei produs vizate: scalar (linii cu coloane) sau
vectorial (coloane cu linii), cu reguli din algebră.
Parcurgerea tabloului element cu element se face şi pentru operaţiile
banale:
 introducerea datelor în tablou – ataşarea către fiecare element a
unei valori din tipul indicat, cu informaţii preluate de la tastatură
sau dintr-un fişier;
 afişarea datelor din tablou – înscrierea valorilor fiecărui element
pe ecran sau într-un fişier pe disc.
Tipul de date şir de caractere
Simbolurile de scriere (caracterele) sunt utile mai ales pentru a se
construi cu ele cuvinte, propoziţii şi fraze, necesare comunicării inter-
umane sau denumirii obiectelor (în interiorul sau exteriorul sistemului
de calcul). În acest scop se alătură caractere în şiruri ordonate, poziţia
fiecărui caracter respectând regulile de scriere în limba respectivă.
Fiecare astfel de şir va fi memorat într-o variabilă (locaţie de memorie)
– rezervată anterior spre a primi numărul de caractere specificat, adică
variabila va „lua valoare”. Cel mai adesea, prelucrările efectuate asupra
şirurilor de caractere utilizează poziţia caracterelor (de exemplu pentru
anagramarea unui nume); rezultă că pentru reprezentarea unui şir este
utilă o structură similară tabloului. Pe scurt, simbolurile de scriere (fie
ele în alfabetul latin, chirilic sau japonez) se numesc caractere (în
engleză „characters”) şi sunt necesare la scrierea textelor sau chiar a
comenzilor prin care omul comunică cu calculatorul.
Reprezentarea datelor de tip şir de caractere
Fie un tablou unidimensional (vector) ce are drept elemente piese de tip
caracter, în cuvinte - vezi Figura 12 cu variabila Nume care ia valoarea
„Vasile” apoi „Ion”. Cuvintele pot fi unele mai lungi, altele mai scurte,
deci pe lângă vectorul de caractere mai este necesară o informaţie care
să indice lungimea curentă a şirului (sau poziţia ultimului caracter din
vector). În diverse limbaje de programare această informaţie specifică:
 lungimea şirului – limbajul Pascal (în prima poziţie din vector)
53
 finalul şirului – limbajul C (caracterul NULL după ultimul caracter
din şir).
Fără această informaţie este posibil ca la încărcarea succesivă a unui şir
lung („Vasile”) apoi a unuia mai scurt („Ion”) în acelaşi vector, să apară
(de exemplu la afişare) şirul scurt completat cu restul literelor, din
poziţiile neacoperite, ale şirului precedent (vezi figura 12). Dacă finalul
de şir este marcat cu un simbol special (de exemplu NULL) dispozitivul
de afişare nu ia în seamă ce apare după acesta şi va afişa doar caracterele
până la el.

Figura 12. Două valori pentru variabila şir de caractere Nume

Lungimea maximă a unei variabile de tip şir de caractere este, în


general, 256, rezultă deci că nu se pot înscrie texte ci doar părţi scurte
– în general cuvinte, nu propoziţii.
Operaţii asupra datelor de tip şir de caractere
Cu toate că reprezentarea şirurilor se bazează pe tipul de date tablou,
operaţiile posibile sunt specifice şirurilor de caractere şi sunt
implementate prin funcţii în biblioteci asociate limbajului de
programare. Între acestea, cele mai uzuale sunt cele de „concatenare” a
şirurilor (adăugare a unui şir după un altul), precum şi cele de înlocuire
a unui subşir (parte a unui şir) cu un alt subşir, în scopul prelucrării
textelor.
Expresia de concatenare are forma ”șir1+șir2”, în care șir1 și șir2 sunt
două șiruri de caractere. Valoarea acestei expresii este un nou șir de
caractere, obținut prin concatenarea șirurilor-operanzi, adică prin
punerea lor unul după altul. În această expresie, operatorul ”+” se
numește operator de concatenare.

54
Tipul de date articol
Cele mai răspândite programe utilizate în domeniul economic (şi nu
numai) sunt aplicaţiile de gestiune. Acestea folosesc tabele care
grupează datele referitoare la „obiecte” din lumea reală (cum sunt
produsele dintr-un depozit, candidaţi la un examen, etc.), iar
„gestiunea” constă în evidenţa şi prelucrarea datelor referitoare la acele
obiecte. Un tabel se referă la o categorie de obiecte anume în care, la
rândul lor, o linie se referă la un obiect anume iar o coloană (o rubrică)
se referă la o anume proprietate sau atribut al acelui obiect. De exemplu,
o linie din tabel se referă la un candidat anume iar coloanele conţin
datele asupra sa (nume, prenume, media, etc.). O linie din tabel se
numeşte uzual articol (sau înregistrare – în engleză „record”) iar o
celulă ce conţine date (pe o coloană cu numele în capul de tabel) se
numeşte câmp (în engleză „field”). Câmpurile pot conţine date de tip
şir de caractere (nume, prenume pentru un candidat), date de tip
numeric (media), sau date de tip logic (a absolvit sau nu examenul).
Reprezentarea datelor de tip articol
Un articol este o structură cu piese de date de tipuri diferite, fiecare
piesă referită prin nume. Prin intermediul articolelor se pot manipula
datele din tabele, în memoria internă a calculatorului şi la transferul cu
discul - memoria externă. Accesul la fiecare piesă de date (câmp) din
articol se face prin numele rubricii (al câmpului).
Ca reprezentare a structurii de tip articol se poate imagina un tabel cu
doar două linii: capul de tabel şi o linie cu date referitoare la un singur
obiect - cel prelucrat la un moment dat.

Figura 13. Dată de tip articol, pe un exemplu


Se face observaţia că tipul articol nu există ca tip de date în limbajul
Java, fiindcă conceptul de clasă reprezintă o structură de date extensie
a articolului, cu deosebirea că la definirea clasei se indică atât piesele
55
de date diferite ce intră în structură cât şi operaţiile (metodele) prin care
se poate manipula structura.
Pentru prelucrarea pieselor de date din articol, acestea se vor referi prin
numele asociat articolului şi numele asociat câmpului, respectând
sintaxa:
nume_articol.nume_câmp
În cazul exemplului din figura 13, referirea câmpului Prenume în
variabila candidat1 se face prin construcţia:
candidat1.Prenume
care poate fi folosită pentru atribuirea de valori câmpului Prenume sau
poate fi folosită în expresii (ca operand) pentru prelucrări necesare unei
aplicaţii vizate.
Operaţii asupra datelor de tip articol
Similar tipului de date tablou, tipul articol este o structură ce conţine
alte tipuri de date, astfel că operaţiile posibile asupra valorilor
câmpurilor sunt cele permise pentru tipul de date din câmpul respectiv.
De exemplul pentru datele de tip şir de caractere din câmpurile Nume
şi Prenume sunt permise operaţii de concatenare.

5.4.6. Tipuri abstracte de date – Clase de obiecte


După cum s-a constatat, fiecare tip de date prezentat anterior are un
nume, o semnificaţie, un domeniu de valori şi operaţii posibile asupra
acestor valori. În abordarea obiectuală, se definesc clase de obiecte, ca
tipuri abstracte de date ce înglobează structura de variabile şi operaţiile
asupra lor. Iniţial, clasa este descrisă privind datele (proprietăţile) şi
metodele (prelucrările) caracteristice obiectelor pe care le reprezintă.
Fie un exemplu în care se declară în limbajul Java două variabile şir de
caracter (s1, s2 şi s3) ce fac parte din clasa String (ca tip special de
tablou). Se execută concatenarea primelor două (v. operaţii pe şiruri):
String s1, s2, s3;
s3=s1+s2;

56
Şirurile s1 şi s2 intră direct în expresie cu operatorul + între variabile,
ca şi cum ar fi un tip de date simple şi nu s-ar supune restricţiilor privind
operaţiile asupra tablourilor. Operatorul + nu face sumarea obişnuită ci
concatenarea (adăugarea) şirurilor s2 după s1; rezultatul concatenării
este „încărcat” apoi în variabila s3. Operatorul + este un operator
definit special pentru clasa de obiecte String – şir de caractere, iar atunci
când apare între două variabile de acest tip „ştie” cum să opereze
(adaugă şirurile, nu face sumare ca la numere întregi).
Avantajul pe care programatorul îl are la folosirea claselor de obiecte
este acela că poate declara orice structură de date corespunzătoare unei
categorii de obiecte din lumea reală (o clasă de obiecte), defineşte
operatori specifici clasei iar apoi foloseşte obiecte din această clasă în
expresii, ca şi cum ar fi piese simple de date. Mai mult, chiar faza de
proiectare a programului, se simplifică fiindcă nu vor trebui decât
„imaginate” obiectele şi prelucrările necesare cu acestea, în scopul
obţinerii unui rezultat dorit. Spre exemplu, dacă se defineşte o clasă
„paralelogram” – cu două operaţii posibile „modificarea dimensiunii a
două laturi paralele” şi „modificarea unui unghi de colţ”, se pot face
prelucrări complexe cum sunt: transformarea paralelogramului în
dreptunghi sau transformarea dreptunghiului în pătrat, folosind
operatori şi simboluri definite specific în cadrul clasei. Valorile obţinute
după prelucrări, în acest exemplu, vor fi „dreptunghi” respectiv
„pătrat”.

5.5. Structuri dinamice de date


Imaginaţi-vă o secţie de asamblare automobile: muncitori specializaţi
(în montarea portierelor, a motorului, a farurilor etc.), locuri de muncă
ordonate, cu seturi de unelte la îndemână - truse de şurubelniţe, panouri
de scule. Banda de montaj, cu seria de automobile, trece pe la fiecare
loc de muncă şi muncitorii fac, fiecare la rândul său, prelucrările
specifice.
Fiecare trusă sau panou de unelte este o structură statică (nu se modifică
în timp – dacă nu se rătăcesc uneltele ), iar automobilul de pe bandă
este o structură dinamică (la care se adaugă succesiv componentele
57
necesare). Fără ordinea la locul de muncă nu se poate lucra eficient, iar
asamblarea ordonată a automobilului este scopul prelucrărilor din
secţie. Orice prelucrare se face cu organizarea prealabilă a materialelor
şi uneltelor de lucru, deci nu este de mirare că şi în prelucrarea datelor
organizarea este esenţială.
Între tipurile de date structurate prezentate, tabloul este similar trusei de
şurubelniţe iar articolul - panoului de scule (ex: explicaţi
dumneavoastră asemănarea), aşa cum s-a amintit acestea fiind structuri
statice de date. Automobilul este o structură în evoluţie, şi poate fi
asemănat cu una din structurile deja prezentate la (lista lineară sau lista
nelineară - arborele), acestea fiind structuri dinamice de date.
În concluzie, structurile de date sunt organizări ale datelor în scopul
realizării eficiente a unor categorii generale de prelucrări, implementate
prin tipul articol (iar operaţiile asupra lor prin programe separate) sau,
mai eficient, implementate prin obiecte ce conţin datele din structuri şi
metodele – ca posibile asupra lor, aşa cum se prezintă în continuare.

5.5.1. Liste lineare


În mod intuitiv lista poate fi privită ca o mulţime finită şi ordonată de
elemente oarecare. Un vector poate fi privit ca o listă care prezintă însă
două mari dezavantaje: număr elementelor trebuie cunoscut de la
început (datorită naturii statice a vectorilor) şi faptul că introducerea
unui nou element între altele existente necesită re-aranjarea elementelor
care urmează celui nou (datorită naturii compacte a vectorilor).
Listă simplu înlănţuită
Pentru cazul când pointer-ul Pi indică nodul următor, lista se numeşte
simplu înlănţuită şi apare ca în figura 14; ultimul nod conţine în câmpul
Pi o valoare ce indică sfârşitul listei - valoare numită nil (în Pascal) sau
NULL (în C, C++ sau Java), valoare care indică spre „nimic”.

Figura 14. Listă lineară simplu înlănţuită

58
Indicatorul P0 este de fapt variabila pointer prin care se face acces la
listă, dar nu face parte din listă. E1 este primul iar En este ultimul
element al listei, n fiind lungimea listei, elementele fiind ordonate după
poziţia lor în listă; Dacă n = 0, atunci se spune că lista este vidă.
Operaţii asupra listelor
Modificările de valoare Ei ale unui nod au loc prin operaţii asupra
tipurilor de date ce sunt stocate în câmpurile acestuia, pe când operaţiile
asupra listelor privesc modificarea structurii acestora, adică a
organizării nodurilor prin legăturile dintre ele. Caracterul dinamic al
structurii de tip listă se observa în modul cum operaţiile afectează
dimensiunea listei, fără a modifica poziţia fizică a nodurilor (în
memoria de lucru) ci, eventual, valorile indicatorilor din fiecare nod.
 Inserarea unui nou element Ex în listă este reprezentată în figura
15a); după cum se observă, după „întreruperea legăturii” dintre
nodurile Ei, şi Ej, se actualizează doar valorile indicatorilor Pi și
Px.
 La ştergerea unui element (Ei+1), se actualizează valoarea pointer-
rului nodului precedent (Ei) pentru a indica elementul următor
(Ei+2), iar elementul şters (Ei+1) este eliminat din memorie
(eliberează locaţia ocupată până la acest moment) – figura 15b).
Din aceste două exemple se constată caracterul flexibil şi dinamic al
listelor, cu observaţia că aceste caracteristici rezultă din utilizarea
tipului indicator (pointer)

Figura 15. Operaţii de inserare şi de ştergere a unui nod în lista lineară simplu înlănţuită

59
Alte operaţii pot fi:
 parcurgerea listei în scopul căutării unui nod (de indice sau
valoare cunoscută), al primului sau ultimului element (capul sau
coada listei);
 determinarea elementului succesor sau predecesor pentru un nod
dat;
 iniţializarea listei – adică ştergerea tuturor elementelor din listă
(vidarea listei).
Operaţiile de ştergere ale unui nod sau a întregii liste face totodată
eliberarea zonei de memorie ocupată, spre a fi utilizată pentru alte
variabile dinamice.
Tipuri de liste
Dacă pointer-ul ultimului nod En al listei indică primul element E1,
atunci lista se numeşte listă circulară, fiindcă parcurgerea liste se poate
face până la capăt şi apoi din nou de la început. Parcurgerea listei se
face prin „saltul” între indicatori (P0, P1, ..., Pi, ...) iar vizitarea nodului
i se face prin prelucrarea (sau pur şi simplu consultarea) valorii Ei.
Fiindcă lista simplu înlănţuită nu poate fi parcursă decât de la „cap” (P0)
la „coadă” (Pn) iar pentru revenirea către cap trebuie reluată parcurgerea
de la cap, se foloseşte adesea lista dublu înlănţuită; aceasta prezintă
două câmpuri indicator: unul spre dreapta (spre coadă) altul spre stânga
(spre cap). Parcurgerea listei se poate face uşor în ambele sensuri prin
„salturi” atât spre dreapta cât şi spre stânga.
Cozi – numite şi liste FIFO („First În First Out” – primul intrat primul
ieşit) sunt liste la care interesează în special cele două capete şi
modurile cum se adaugă noi elemente sau se elimină elementele - pentru
aceste tipuri de liste introducerea / eliminarea de elemente se face doar
prin capete.
Stive – numite şi liste LIFO („Last În First Out” – ultimul intrat primul
ieşit) – care seamănă cu un pachet de cărţi de joc: adăugarea de noi
elemente se face prin capătul de sus (vârful stivei) iar eliminarea la fel.
Acest tip de listă este util pentru cazurile când prelucrările parcurg
datele într-un sens iar apoi le parcurg în sens invers.
60
5.5.2. Liste nelineare (arbori)
Pentru această categorie de liste nodurile au legături cu număr variabil
şi nu doar între vecini (cu indici succesivi) – vezi figura 16. Relaţiile
între noduri nu privesc ordinea ci ierarhia: un nod are relaţii de
predecesor („părinte” – de exemplu E2) cu noduri succesor (noduri
subordonate, „fii” – exemplu E4 şi E5). Nodurile care nu au „fii” sunt
noduri finale şi au valorile indicatorilor nule (NULL).

Figura 16. Arbore binar


Funcţie de numărul maxim de fii ale unui nod (oarecare), arborele poate
fi categorisit ca arbore binar – maxim două noduri fii, arbore ternar –
maxim trei noduri fii, etc.
Reprezentarea arborilor binari
Cele mai utilizate categorii sunt cele binare –simple, cu proprietăţi dar
şi cu semnificaţii intuitive (de exemplu clasificarea în categorii
complementare – de un fel şi de altul); există algoritmi de transformare
a unui arbore oarecare într-un arbore binar.
Reprezentarea unui arbore se poate face şi folosind un tablou de muchii
(cu două coloane, indicând pe fiecare linie noduri adiacente) însă
folosirea indicatorilor permite o reprezentare ce ocupă un spaţiu minim
în memoria de lucru şi, evident, ne-limitarea dimensiunii arborelui.

61
Operaţii cu arbori
Fiind liste, arborii prezintă categorii de operaţii similare listelor, prin
care se afectează structura de noduri şi legături sau se accesează valorile
elementelor. Deci prelucrarea elementelor în arbore necesită două
acţiuni de avans în arbore – avans stânga şi avans dreapta, precum şi o
acţiune de acces şi prelucrare a valorii nodului curent – numita operație
de vizitare. Operaţii posibile sunt:
 Parcurgerea arborelui constă în vizitarea succesivă a nodurilor
acestuia. Privind modul de succesiune al vizitării nodurilor, există
trei modalităţi uzuale de parcurgere - după modul în care se pot
combina acţiunile de avans şi vizitare:
 Preordine: 1 – vizitare, 2 – avans stânga, 3 – avans dreapta;
 Inordine: 1 – avans stânga, 2 – vizitare, 3 – avans dreapta;
 Postordine: 1 – avans stânga, 2 – avans dreapta, 3 – vizitare.
Aceste modalităţi de parcurgere se pot aplica şi recursiv .
 Inserarea şi ştergerea unui nod din arbore – similar celor de la liste
liniare.
 Determinarea înălţimii arborelui.
 Determinarea succesorului sau predecesorului unui nod în arbore.
 Extragerea unui sub-arbore.
Operaţiile de parcurgere ale arborelui din figura 16 sunt ilustrate în
figura 17– prin succesiunea de noduri obţinute în fiecare caz.

Figura 17. Parcurgerea arborelui binar


După cum s-a arătat anterior, structurarea arborescentă este foarte
eficientă în prelucrarea datelor, cum sunt căutarea în volume mari de
date, calculul expresiilor respectând precedenţa operatorilor,
clasificarea obiectelor.
62
6. Prelucrarea informaţiei

În acest capitol trecem în revistă noţiuni privind operaţiunile efectuate


asupra datelor şi modul în care se specifică desfăşurarea acestor
operaţiuni, conform prelucrărilor vizate. Abordarea sistematică a
operaţiunilor şi desfăşurării lor este impusă de exprimarea concisă şi
completă a acestora printr-un limbaj de programare; întrucât limbajele
de programare moderne reprezintă, de fapt, codificări optime ale
operaţiunilor necesare oricăror categorii de prelucrări, se utilizează pe
parcursul modulului formalismul specific acestor codificări. În scopul
înţelegerii şi asimilării lui, se prezintă în continuare un model intuitiv
care foloseşte termeni ai acestui formalism, pe exemplul asamblării
unor motoare de automobil la o secţie de profil:
(I) Piesele motorului se află în cutii aşezate pe raft, cu etichete –
fiecare cutie este o variabilă cu identificator (numele pe etichetă),
având valoare (piesa) sau fiind liberă („aşteptând” o piesă ce va fi
asamblată şi plasată apoi în cutie); piesele în sine sunt date, iar
categoria de piese (de exemplu „injectoare”) reprezintă un tip de date.
(II) Fiecare tip de piesă prezintă modalităţi specifice de îmbinare cu
alte piese (şuruburi de dimensiuni stabilite, cleme etc.) – fiecare
modalitate este un operator specific tipului de date.
(III) Asamblarea pieselor are loc după un plan dinainte stabilit, pe paşi
– după un algoritm de rezultat în urma unei analize şi folosind
cunoştinţele în domeniu.
(IV) Îmbinarea pieselor are loc cu ajutorul mai multor şuruburi
(cleme, etc.) combinate corespunzător – adică prin expresii în care
piesele sunt operanzi şi şuruburile operatori.
(V) Dacă o piesă nu se potriveşte la îmbinare se ia decizia de o repara
sau arunca, iar la asamblarea mai multor piese de acelaşi fel, acţiunile
se repetă la celelalte – conform unor instrucţiuni de control al
fluxului de operaţiuni.
63
(VI) În final, motorul este ambalat şi trimis la magazin – pentru a fi
prezentat utilizatorilor.
Noţiunile care intervin în modelul de mai sus vor fi explicate şi descrise
– cu specificul lor pentru domeniul TIC, în cele ce urmează, însoţite de
exemple sau de informaţii tehnice specifice unor limbaje de programare
uzuale (cum sunt Pascal, C, Java).
Identificatorul este numele ataşat unei piese sau colecţii de date, dar şi
a unei prelucrări anume, în general aflate în memoria de lucru.
Variabila este o locaţie de memorie referită printr-un identificator şi
poate conţine diverse valori ale unei date de tip specificat.
Constanta este o locaţie de memorie referită printr-un identificator şi
poate conţine doar o singură valoare a unei date de tip specificat.
Literal este o valoare concretă pentru un tip de date, indicată prin
simboluri specifice tipului respectiv.

6.1. Expresii
Termenul calculator ne îndreaptă gândul către calcule, posibile fiind
prelucrările pe care acest instrument le poate executa dar, aşa cum s-a
arătat anterior, posibilităţile de prelucrare ale calculatoarelor sunt mult
mai largi.
Expresia este descrierea formală a unui set de acţiuni efectuate cu un
anumit tip de date. Expresia este o structură sintactică formată din
variabile, literali, operatori şi invocări de funcţii, care în procesul de
calcul este evaluată pentru a se obţine o valoare.
Trebuie avut în vedere că, în programare:
 Expresia este de fapt o secvenţă de program, în care se indică
ordinea în care trebuie efectuată o succesiune de operaţii asupra
unor date, în scopul de a obţine o valoare.
 Operaţiile se fac întotdeauna asupra valorilor.
 Operaţiile sunt indicate prin operatori sau/şi prin funcţii, iar datele
sunt indicate prin variabile şi literali. Este, deci, foarte important

64
să ştim nu numai ce operaţii se fac, ci şi în ce ordine se execută
ele.
Semnul = are rolul de a „încărca” în variabila din stânga sa, valoarea
rezultatului obţinut în dreapta sa. Astfel, semnul = poate fi privit ca un
operator de atribuire, iar întreaga construcţie F = m·a ca o expresie cu
o singură valoare – anume valoarea obţinută pentru forţa F.
Operatori
Operatorii sunt simboluri ale unor acţiuni cu semnificaţie stabilită prin
tipul de date operat. Am folosit deja simbolul + ca operator de
concatenare (deci simbol al operaţiei de concatenare). Operatorul poate
fi format din unul sau mai multe caractere. Entitatea asupra căreia se
aplică operatorul se numeşte operand. După numărul de operanzi,
operatorii pot fi:
 operatori unari, care se aplica unui singur operand, de ex.
operatorul ”-” in expresia ”-x”; utilizarea operatorului unar se
face, de regula, sub forma "prefix" operator operand (operatorul
este pus în faţa operandului) iar uneori sub forma "postfix"
operand operator, în care operatorul este pus după operand;
 operatori binari, care se aplică asupra a doi operanzi, fiind situat
între aceştia; de exemplu operatorul de concatenare ”+” in
expresia "acesta este"+" un exemplu" sau operatorul de adunare a
doua numere ”+” in expresia 17+28. Operatorii binari se folosesc
sub forma "infix" operand1 operator operand2 - în care
operatorul este situat între cei doi operanzi;
 operatori ternari, care se aplica asupra a trei operanzi; de exemplu
în limbajele C şi Java există operatorul ternar (? : ) folosit în
expresiile condiţionale. Operatorul ternar se scrie sub forma
(operand1 ? operand2 : operand3 ) în care operand1 are o valoare
logica (true sau false), iar ceilalţi doi operanzi reprezintă acţiuni.
Pentru o privire completă asupra domeniului, se prezintă în continuare
categorii de operatori, cu simboluri uzuale pentru limbajele C şi Java.
Operatori aritmetici sunt operatorii utilizați pentru calculele numerice
și care se aplică funcţie de tipul operanzilor (întregi sau reali). Există o
ordine de precedenţă a operatorilor aritmetici: primii se aplică operatorii
65
unari apoi cei de înmulţire şi împărţire, ultimii de sumare algebrică;
această ordine poate fi schimbată prin grupări între paranteze ‘(’ şi ‘)’
ale operanzilor şi operaţiilor în expresie.
Operatori relaţionali sunt operatori (binari) pentru comparaţie sau
incluziune: <, >, = =, != (simbol pentru ), <= şi >= (simboluri pentru
 şi ), in (pentru apartenenţă).
Operatori logici sunt operatorii care produc un rezultat logic („adevărat
” sau „fals”). Ordinea de precedenţă este: primul negarea ! (NU), apoi
conjuncţia && (ŞI), ultimul disjuncţia || (SAU); ordinea de precedenţă
se poate schimba prin grupare cu paranteze.
Tipuri de expresii
Prin rolul său în program, o expresie este o linie de cod care poate fi
redusă la o singură valoare. Se prezintă în continuare tipuri de expresii,
prin exemple, pentru cazuri de operatori şi precedenţă care prezintă
interes.
 Expresii matematice
Fie declaraţiile de variabile: int a=3, b=7, c=11, d;
care iniţializate cu valorile de mai sus, utilizate în expresii similare celei
de mai jos:
d=(a+c)*b - (a+b)
 Expresii logice
Aceste expresii au rezultat logic (adevărat - true, sau fals - false).
Operatorii relaţionali dau ca rezultat o valoare de tip logic fiindcă în
urma relaţiei (comparaţiei) situaţia poate fi adevărată sau falsă.
Comparaţiile realizate cu operatori relaţionali precum şi agregările de
operatori logici sunt privite ca întrebări „este adevărat că … ?”
Evaluarea expresiilor
Evaluarea expresiei constă în aplicarea succesivă a operatorilor asupra
operanzilor corespunzători, într-o ordine care depinde de precedenţa
operatorilor.

66
Se pot da reguli riguroase de evaluare a expresiilor, dar sunt destul de
complicate. Preferăm să indicăm numai că expresia se parcurge de la
stânga la dreapta, aplicând operatorii în ordinea lor de precedenţă şi
luând în consideraţie parantezele.
Operaţiile se fac asupra valorilor operanzilor. Variabilele se înlocuiesc
prin valorile lor.
Imediat ce s-a aplicat un operator, subexpresia respectivă (formată din
operator şi operandul sau operanzii corespunzători) se înlocuiesc prin
valoarea rezultată din calcul. Se continuă astfel, până când întreaga
expresie este înlocuită printr-o singură valoare.
Precedenţa poate fi modificată prin utilizarea de paranteze, cu
convenţia că operatorii din interiorul unei paranteze se aplică înaintea
celor din exterior. De exemplu, în expresia „a+b*c” operatorul „*” se
va aplica înaintea operatorului „+”, deoarece are precedenţa superioară.
În consecinţă, aceasta expresie se va calcula ca şi când ar fi scrisă sub
forma a+(b*c).

67
Instrucţiuni
Pentru prelucrările simple – de genul calculelor matematice, este
suficient un calculator de buzunar. Dacă aceste calcule sunt combinate
pentru a determina un rezultat complex – de exemplu soluţionarea
generală a unei ecuaţii de gradul întâi, atunci sunt necesare acţiuni de
decizie: de exemplu „este coeficientul necunoscutei nul?” – atunci
ecuaţia este degenerată; asemenea acţiuni de control a desfăşurării
prelucrărilor propriu-zise trebuie realizate printr-un program de
calculator, pe baza unor comenzi specifice limbajului de programare
ales.
De fapt, pe lângă prelucrările variabilelor (care se realizează prin
expresii), mai sunt necesare două tipuri generice de acţiuni: de decizie
şi de repetiţie. Rezultă că un limbaj de programare trebuie să asigure
comenzi de:
a) Atribuire –obţinerea unui rezultat pentru o expresie şi încărcarea
valorii acestui rezultat în variabila ţintă (din stânga semnului =).
b) Decizie – pentru alegerea unei secvenţe de comenzi din mai multe
variante (uzual două) urmare a rezultatului unei expresii logice –
condiţia de decizie.
c) Repetiţie – pentru reluarea unei secvenţe de comenzi de mai
multe ori, până la îndeplinirea unei condiţii de oprire.
Între aceste acţiuni doar atribuirea este cea care priveşte formularea
expresiilor, rezolvarea şi păstrarea rezultatelor. Decizia şi repetiţia
modifică doar cursul de execuţie a atribuirilor. Tabloul comenzilor
posibile se completează cu:
d) Salturi şi reveniri – pentru întreruperea unei secvenţe de comenzi
şi preluarea controlului de către altă secvenţă de comenzi în cadrul
aceluiaşi bloc program sau într-un subprogram.
e) Operaţii de intrare / ieşire – pentru interacţiunea cu exteriorul,
prin periferice de intrare / ieşire (către om sau instalaţii, pentru
stocarea sau transferul datelor).
Comenzile din categoriile a) şi e) modifică valoarea sau suportul
datelor, iar comenzile din categoriile b) c) şi d) modifică controlul
asupra fluxul de comenzi. Uzual, operaţiile de intrare / ieşire nu fac
68
parte din limbajul de programare ci din biblioteci de funcţii ataşate
acestuia.
Cuvintele cheie care exprimă categoriile de acţiuni de mai sus precum
şi modul corect de exprimare al lor (adică sintaxa) constituie setul de
instrucţiuni a unui limbaj de programare. Dacă se cunosc modurile de
exprimare ale aceste acţiuni de bază într-un limbaj de programare, se
poate considera limbajul cunoscut în proporţie de 50%. Trebuie
remarcat că, în limbajele de programare moderne, operaţiile de intrare
- ieşire nu constituie instrucţiuni de limbaj ci sunt realizate prin
subprograme specializate – în afara limbajului.
Un program este un text ce cuprinde o secvenţă de instrucţiuni din
categoriile de mai sus, care sunt executate în ordinea în care apar în text.
Procesorul asigură preluarea şi executarea comenzilor în secvenţă,
aceasta fiind ideea centrală de funcţionare a maşinilor von Neumann.
După cum se poate imagina, instrucţiunile de decizie şi de repetiţie au
o exprimare mai complexă – de exemplu pentru decizie trebuie indicate
acţiunile pentru ramura în care condiţia de decizie are rezultat „fals” şi
acţiunile pentru ramura cu rezultat „adevărat”. Instrucţiunile pentru
decizii şi repetiţii sunt mai complexe şi au nevoie de mai multe linii de
text pentru a le descrie, pe când pentru instrucţiunile de atribuire este
suficientă o linie de text ce descrie expresia vizată. De aceea
instrucţiunile din prima categorie se consideră „instrucţiuni simple”, iar
cele din ultimele două categorii „instrucţiuni structurate”.

6.1.1. Instrucţiuni simple


Într-un program acţiunile sunt descrise prin linii de text, care apoi pot
fi interpretate şi executate de către calculator – linie cu linie sau pe
loturi de linii. Descrierea unei acţiuni complete se încheie cu
simbolul”;”(punct și virgulă) indicând „sfârşitul acţiunii”. Declaraţiile
de variabile sunt instrucţiuni în care se declară tipul şi, eventual,
valoarea iniţială a unor variabile.
Instrucţiunile expresie sunt expresii de atribuire, de
incrementare/decrementare sau de invocare de metodă, care se termină
prin simbolul ';' (punct şi virgulă).
69
Instrucţiunea de atribuire
Prelucrarea efectivă a datelor are loc în instrucţiunea de atribuire: una
sau mai multe valori intră într-o expresie al cărei rezultat se atribuie
variabilei stânga, simbolul de atribuire = (în limbajele C şi Java) sau :=
(în limbajul Pascal). Pentru exemplul de calcul al forţei:
F=m*a; // în C, respectiv
F:=m*a; /* în Pascal
În expresie intervin numai variabile ce au primit valori, iar variabila
stânga trebuie să aibă tipul de date reprezentând rezultatul expresiei.
Instrucţiuni de salt
Întreruperea forţată a executării unei secvenţe de instrucţiuni (şi saltul
la începutul altei secvenţe) se poate face condiţionat (dacă a fost
îndeplinită o condiţie logică) sau necondiţionat.
a) Saltul necondiţionat – provoacă părăsirea execuţiei secvenţiale a
comenzilor. „Ruperea” secvenţelor de comenzi din program prin
salturi necondiţionate, vădesc o proiectare defectuoasă,
nesistematizată, a descrierii prelucrărilor; ele fac programul greu
inteligibil şi dificil de depanat sau dezvoltat şi de aceea, acestea
trebuie eliminate. În limbajele Pascal şi C saltul necondiţionat
există doar pentru caracterul său istoric:
GOTO eticheta;
Secvenţei curentă este întreruptă şi execuţia se continuă de la eticheta.
Există instrucţiuni de salt care provoacă părăsirea secvenţei de comenzi
doar în condiţii bine precizate, impuse direct de prelucrări.
b) Saltul de revenire din subprogram la programul apelant:
return [expresie];
unde expresie produce ca rezultat o valoare care este „întoarsă”
(returnată) programului apelant de către subprogram, fiind folosită
direct în expresii. Parantezele drepte [ şi ] indică o parte opţională –
adică expresie poate lipsi în situaţia când nu este necesară o valoare

70
returnată. Saltul de la programul apelant la programul apelat se face prin
însăşi numele subprogramului .
Salturile de terminare abruptă a instrucţiunilor structurate sunt impuse
de prelucrări (în cazul repetiţiilor sau deciziilor multiple):
c) Întrerupere – încheie instrucţiunea curentă şi trece la
următoarea:
break [eticheta];
d) Continuare – reia secvenţa curentă de la începutul ei înainte de
final:
continue [eticheta];
Cazuri de utilizare sunt la întreruperea unei bucle de repetiţie (şi saltul
în afara sa la secvenţa ce începe de la eticheta), respectiv reluarea unei
bucle de repetiţie de la început fără a se parcurge întreaga secvenţă din
buclă.

6.1.2. Instrucţiuni structurate (structuri de control)


Structurile de control se mai numesc şi instrucţiuni compuse şi au
rolul de a indica succesiunea în care se execută instrucţiunile
programului. Distingem următoarele structuri de control: blocul,
instrucţiunile de ramificare, ciclurile şi structura de tratare a excepţiilor.
Blocul este o succesiune de instrucţiuni cuprinsă între acolade.
Instrucţiunile pot fi simple sau compuse. În particular, un bloc poate
conţine alte blocuri. Variabilele declarate într-un bloc sunt valabile
numai în blocul respectiv, din locul declarării variabilei până la sfârşitul
blocului, inclusiv în blocurile interioare.
Structurile ramificate sunt structuri de control în care fluxul
programului conţine două sau mai multe ramuri paralele. În limbajul
Java, structurile ramificate sunt realizate prin instrucţiunile if, if-else şi
switch.
Ciclurile, numite şi bucle sau structuri repetitive, sunt structuri de
control în care o anumită instrucţiune simplă sau compusă, de regulă un
bloc, se execută în mod repetat. În limbajul Java, ciclurile se realizează
prin instrucţiunile while, do-while şi for.
71
Controlul fluxului de instrucţiuni este necesar pentru soluţionarea unei
probleme complexe, iar algoritmul este de fapt o reţetă de control al
fluxului de instrucţiuni prin care se caută soluţia la problema dată.

Instrucţiunea if este o instrucţiune condiţională, care are forma generală


if(condiţie)
instrucţiune
în care condiţie - este o expresie logică, instrucţiune - este o instrucţiune
simplă sau compusă, care se execută dacă şi numai dacă expresia
condiţie are valoarea true.

Fie exemplul banal de „algoritm pentru rucsacul de vacanţă”:


1) dacă (este vacanţa de vară) atunci
2) repetă
aşază în rucsac tricou;
3) repetă
aşază în rucsac obiect de plajă;
1’) altfel
4) repetă
aşază în rucsac pulover;
5) repetă
aşază în rucsac obiect pentru schi;
6) închide rucsacul;
În acest exemplu se observă „decizia” 1) – 1’) şi „repetiţia” 2), 3) sau
4), 5). Acestea se vor regăsi ca instrucţiuni într-un limbaj de programare
ca instrucţiuni structurate – remarcaţi structura deciziei dacă .. atunci ..
altfel, subliniată prin numerotarea cu apostrof. Cuvintele cu litere
înclinate (cursive) indică modul cum se vor efectua operaţiunile (sunt
„instrucţiuni”) iar cuvintele scrise normal sunt operaţiunile înseşi (de
fapt instrucţiuni simple). Astfel, la pasul 2) se repetă aşezarea în valiză
72
a tricourilor – unul la un moment dat (cel roşu, apoi cel verde etc.), iar
la pasul 3) similar, aşezarea fiecărui obiect de plajă (umbrelă, ulei de
plajă etc.). Omul execută operaţiunile înscrise mai sus una după alta,
fără a fi necesară indicarea ordinii lor prin numere – în acest exemplu
au fost numerotate doar pentru a fi referite. Similar, procesorul
(construit după principiile enunţate de von Neumann) execută operaţiile
una după alta, în ordinea apariţiei lor în textul programului; în exemplul
nostru, după încheierea repetiţiei 3) se execută direct 6) – în cazul
vacanţei de vară şi în cazul vacanţei de iarnă.
Instrucţiunea de decizie binară
Pentru indicarea a două alternative în desfăşurarea acţiunilor unui
program se foloseşte decizia sau ramificaţia binară „dacă .. atunci.
Instrucţiunea if-else este o instrucţiune condiţională, care are forma
generală:
if (expresie)
instrucţiune1;
else
instrucţiune2;
unde instrucţiune1 se execută atunci când condiţia expresie are valoare
logică „adevărat” (sau în limbajul C, are o valoare diferită de 0), altfel
(când condiţia este falsă sau 0) se execută instrucţiune2. Când pe una
din ramuri sunt mai multe instrucţiuni de executat, atunci se foloseşte
pe acea ramură instrucţiunea compusă. Se observă că, prin modul de
scriere a textului, ies în evidenţă prin „indentare” (adâncire spre
dreapta) ce se execută pe ramura „adevărat” (imediat după if) şi ce se
execută pe ramura „fals” (imediat după else).
În cazul în care nu există o instrucţiune2, atunci ramura else lipseşte şi
se continuă cu secvenţa ce urmează după simbolul de sfârşit ;.
În diferite limbaje de programare (inclusiv în limbaje „script”) se
foloseşte pentru decizia binară construcţia de mai sus, cu diferenţe
minore de scriere (sintaxă): lipsesc parantezele după condiţie şi apare
cuvântul then (ca în Pascal) sau în loc de; este folosit endif.

73
Instrucţiunea de decizie multiplă
Decizia binară – prezentată mai sus, priveşte situaţii simple, cu două
alternative: Alb/Negru, Da/Nu, Adevărat/Fals. Pentru situaţii în care
decizia priveşte mai mult de două alternative, este dificil de aplicat mai
multe instrucţiuni de decizie binară. O asemenea situaţie apare când
expresia de selecţie nu are valori binare ci multiple – cum ar fi cazul
selecţiei opţiunilor unui meniu; fiecare opţiune devine un caz selectat
printr-un număr sau prin poziţia indicatorului pe ecran („mouse”). Ca
exemplu, se prezintă instrucţiunea switch în limbajul C, într-o secvenţă
de program în care se alege o opţiune din trei posibile la alegerile
prezidenţiale, prin numărul acesteia – furnizat prin NumarOptiune:
Instrucţiunea switch este o structură de control, care are forma:
switch (NumarOptiune)
{
case ‘1’: { “Candidat de stânga”};
break;
case ‘2’: { “Candidat de centru”};
break;
case ‘3’: { “Candidat de dreapta”};
break;
default: { „Exprimaţi-vă opţiunea”};
}
Se observă că pentru un alegător indecis (care alege NumarOptiune
diferit de 1, 2 sau 3) există posibilitatea de a fi atenţionat că doar aceste
opţiuni sunt disponibile – prin secţiunea default (care înseamnă
„implicit” în engleză); textele dintre {} la fiecare caz, apar în loc de
blocuri program prin care se afişează – de exemplu, sigla şi numele
candidatului. Instrucţiunile de salt break, sunt utilizate pentru a încheia
posibilitatea de selecţie după ce s-a exprimat o opţiune, în scopul
continuării cu secvenţa program ce urmează instrucţiunii switch, adică
după }.

74
Instrucţiunea de repetiţie după număr cunoscut de paşi
Deseori, prelucrările pentru care este util calculatorul sunt cele în care
se repetă anumite operaţii de foarte multe ori; omul ar obosi (apoi greşi)
la repetiţii îndelungate ale aceloraşi operaţii, dar echipamentul
electronic le execută precis, rapid şi fără complicaţii sociale.
Instrucţiunea for se foloseşte în special atunci când numărul de repetări
al corpului ciclului este dinainte cunoscut. Această instrucţiune are
forma:
for(iniţializareopt; condiţieContinuareopt; incrementareopt)
instrucţiuneopt
în care:
iniţializare: listă de expresii de iniţializare, separate prin virgule;
condiţieContinuare: expresie logică;
incrementare: listă de expresii, care se execută după executarea
corpului ciclului;
instrucţiune: instrucţiune simplă sau compusă (de preferinţă un bloc)
care constituie corpul ciclului. Toate componentele marcate cu opt sunt
opţionale.
Atunci când se cunoaşte numărul de iteraţii (cuvânt ce indică „repetiţii
numerotate”), este utilă instrucţiunea for – ce apare în diverse limbaje,
dar se va prezenta cu sintaxa uzuală în limbajul C. Trebuie remarcat că,
pentru a efectua numărul de iteraţii dorit, este necesar un contor pentru
care se indică o valoare de start, o valoare de final şi o modalitate de
avans a contorului (în această ordine) prin expresiile ce apar între () şi
sunt separate cu ; ca mai jos.
For (NrStud=1,NrBilet=35;NrStud<=30;NrStud++,NrBilet--)
{ „Prezintă legitimaţie şi primeşte bilet de examen” };
Exemplul priveşte verificarea legitimaţiei de student şi primirea de către
acesta a biletului de examen, la o grupă de 30 studenţi. Contorul NrStud
reţine câți studenți au intrat în sala de examen iar contorul NrBilet
reţine câte bilete au mai rămas examinatorului – din totalul de 35;

75
expresiile NrStud++ şi NrBilet—adună şi respectiv scad o unitate din
contoarele respective (aceasta înseamnă ++ şi respectiv --).
Instrucţiunea de repetiţie după condiţie
Atunci când nu se cunoaşte numărul de iteraţii, terminarea repetiţiilor
poate fi indicată de o condiţie cunoscută – care se aplică înainte sau
după efectuarea operaţiei în bucla de repetiţie. Ca urmare, se folosesc
una din cele două tipuri de instrucţiuni:
a) „cât timp (condiţie) adevărată – repetă {operaţie}” – prin care este
posibil ca operaţia să nu se execute nici măcar o dată, dacă de la
început condiţia nu este îndeplinită;
b) „repetă {operaţie} – cât timp (condiţie) adevărată” – prin care
operaţia se execută cel puţin o dată, indiferent dacă este adevărată
condiţia la intrarea în buclă.

Instrucţiunea while realizează structura de control repetitivă numită şi


ciclu cu test iniţial şi are forma următoare:
while(condiţie)
instrucţiune
în care:
condiţie - este o expresie logică;
instrucţiune - este o instrucţiune simplă sau compusă (de regulă un
bloc), care se repetă cât timp expresia condiţie are valoarea true.
Instrucţiunea do-while realizează structura de control numită şi ciclu cu
test final şi are forma următoare:
do
bloc
while(condiţie);
în care:
bloc - este o structură de control sub formă de bloc;
condiţie - este o expresie logică.
76
Executarea blocului se repetă şi în acest caz cât timp este satisfăcută
condiţia dar, spre deosebire de instrucţiunea while, în acest caz testarea
condiţiei se face după ce a fost executat corpul ciclului.
Pentru exemplul de mai sus reluat, dar în care nu se cunoaşte numărul
de studenţi ce se prezintă la examen, descrierea în limbajul C a cele
două cazuri ar fi:
(a) while (NrStud>0)
{ „Prezintă legitimaţie şi primeşte bilet de examen” };
(b) do
{ „Prezintă legitimaţie şi primeşte bilet de examen” };
while (NrStud>0);
Lăsăm cititorul să decidă care dintre formele (a) sau (b) este adecvată
exemplului ales. (Indicaţie – este posibil ca la un examen să nu se
prezinte nici un student).
Dacă există cazuri în care bucla de repetiţie trebuie întreruptă în
desfăşurarea ei (de exemplu în cazul când unele operaţii nu se execută
dacă nu este îndeplinită o condiţie), atunci apar în interiorul buclei
instrucţiuni de salt de tipul break (întrerupe repetiţia şi părăseşte bucla)
sau continue (reia bucla de la început fără executarea operaţiunilor care
urmează acestei instrucţiuni) – vezi c) şi d).

6.1.3. Programe şi subprograme


Secvenţele de instrucţiuni sunt organizate în programe şi subprograme,
fiecare având un nume care – în principiu, indică rolul prelucrărilor
acestuia. Program este denumirea generică a unei înşiruiri de comenzi
care execută prelucrări într-un scop dat; comenzile pot fi exprimate prin
cuvinte cheie specifice unui limbaj de programare (în programarea
„clasică”) sau poate fi o structură de reprezentări grafice ale comenzilor,
plasate pe o suprafaţă de lucru (în programarea „vizuală”).
În cazul programelor scrise într-un limbaj de programare, structura
textului depinde de modul de programare (structurată sau obiectuală),
în principiu, pentru un program fiind specificate:

77
nume_program (lista parametri)
{
declarații variabile
corpul programului
}
unde nume_program este un identificator al programului (prin care
poate fi apelat spre a executa acţiunile înscrise în el), lista parametri este
setul de date care se furnizează programului (ca „materie primă”) şi
asupra cărora se vor executa acţiunile, declarații variabile indică
variabilele (locale) necesare stocării rezultatelor intermediare, corpul
programului este secvenţa efectivă de comenzi pentru acţiunile vizate,
iar acoladele {} încadrează şi delimitează programul propriu-zis.
Subprograme
În cazul unor prelucrări complexe, care sunt necesare repetat, este
indicată folosirea subprogramelor; acestea sunt secţiuni de cod scrise o
singură dată şi folosite de mai multe ori, prin apelarea lor ori de câte ori
este nevoie, separat sau în cadrul expresiilor. Apelarea subprogramului
se face prin intermediul identificatorului său (numele), similar cu
referirea unei variabile. Dacă un subprogram este inclus unei biblioteci
de subprograme el poate fi apelat de către oricare alt program scris în
limbajul respectiv sau în alte limbaje (dacă la apelare se fac precizările
de rigoare). Subprogramul este o prelucrare care se poate efectua asupra
unui set de date ale căror valori sunt specificate la „apelarea”
subprogramului.
Subprogramul este un program apelat (prin nume) în cadrul altui
program (programul apelant) pentru a executa acţiunile sale specifice.
Deci subprogramele nu sunt „de sine stătătoare”, adică nu pot fi
lansate direct de către utilizator din sistemul de operare ).
Subprogramul care, după execuţia acţiunilor sale, revine în programul
apelant cu o singură valoare (valoare „returnată”) ce poate fi folosită
direct în calculul unei expresii; se numeşte funcţie. Un exemplu clasic
este funcţia sin(x), care poate fi apelată într-o expresie – de exemplu
78
a+b+sin(x), sumele fiind realizate doar după calculul sinusului pentru
valoarea x furnizată. Structura textului de definire a unei funcţii adaugă,
la structura de principiu din deschiderea, specificarea tipului valorii
returnate şi comanda de revenire în programul apelant:
tip_valoare_returnata nume_funcție (lista parametri)
{
declarații variabile
corpul programului
return expresie; //nu apare obligatoriu la final
}
unde tip_valoare_returnată specifică tipul de date al valorii rezultate în
urma calculelor din expresie şi care va fi adusă la revenirea în
programul apelant.
Execuţia programelor se face de către procesor, care poate funcţiona
doar secvenţial şi pentru o singură sarcină (un singur program) la un
moment dat. La apelul unui subprogram de către programul apelant,
acesta din urmă trebuie „părăsit” de către procesor iar contextul de lucru
(adică setul rezultatele parţiale) din memoria locală a procesorului
trebuie salvat în memoria internă – RAM. La revenirea din subprogram,
acest context se încarcă din memoria RAM în memoria locală a
procesorului iar programul apelant reia lucrul – exact din punctul în care
a fost întrerupt pentru execuţia subprogramului, folosind valoarea
„întoarsă” ca rezultat de către subprogram (vezi instrucţiunea return.b),
şi valoarea rezultat pentru expresie.
Programul principal
Execuţia acţiunilor înscrise într-un program trebuie iniţiată la comanda
utilizatorului. Pentru aceasta sistemul de operare interacţionează cu
omul, primeşte comanda (care de obicei este chiar numele programului)
şi „lansează” execuţia acestuia.
Partea din textul unui program care poate fi lansată nemijlocit de
sistemul de operare (deci care poate funcţiona de sine stătător) se

79
numeşte program principal. Acesta este, în general, o succesiune de
acţiuni grupate în corpul programului pe trei secţiuni:
Introducerea datelor
Prelucrarea datelor
Afişarea rezultatelor
Pentru execuţia acestora, se face apel la subprograme din biblioteca de
subprograme sau din setul subprogramelor declarate în textul sursă al
programului ca ansamblu; în acest ultim caz, programul va fi specificat
astfel:
nume_program_principal (lista parametri)
{
declarații variabile
declarații subprograme
definire subprograme
{
corpul programului principal
}
}
unde declarații subprograme reprezintă secţiunea în care se inventariază
numele şi lista parametrilor specifice tuturor subprogramelor apelate în
textul programul. Secţiunea definire subprograme reia declararea
subprogramelor, de această dată cu descrierea acţiunilor din fiecare
subprogram aşa cum este prezentat.

80
6.2. Algoritmi
Modalitatea în care are loc prelucrarea efectivă a unor date se exprimă
prin algoritm – ca paşi succesivi, repetiţii şi ramificaţii prin care se
execută operaţiile vizate.
Rezolvarea oricărei probleme presupune o metodă şi o execuţie în paşi
a acesteia, spre soluţia dorită. Pe scurt, algoritmul este o succesiune
ordonată de operaţii (număr finit de pași) care trebuie efectuate pentru
a realiza un anumit scop.
Totodată, algoritmii sunt modalităţi prin care se exprimă succesiunea
de operaţii prin care un program pe calculator poate ajunge la datele de
intrare furnizate la rezultatele dorite. Trebuie remarcat că un algoritm
nu exprimă doar operaţii cu numere ci orice fel de prelucrări (cu texte,
imagini, etc.) aşa cum se prezintă intuitiv în „algoritm pentru rucsacul
de vacanţă”.
Algoritmul are următoarele caracteristici:
 caracter discret - este format din mai mulţi paşi;
 caracter finit - numărul paşilor este finit;
 caracter determinist;
 caracter realizabil - fiecare operaţie prevăzută este
realizabilă efectiv;
 caracter universal - nu se aplică unui caz izolat, ci unui
număr de cazuri, care diferă prin datele de intrare.

6.2.1. Exprimarea algoritmilor


În general, descrierea prelucrărilor prin care se obţine soluţia unei
probleme date se face fără a se specifica tipurile de date utilizate, ca şi
cum acestea ar fi subînţelese. Un algoritm este o înşiruire de operaţiuni
în care se utilizează variabile şi (eventual) alte prelucrări, indicate prin
identificatori inventariaţi într-un dicţionar sau nomenclator ce specifică
rolul variabilelor sau prelucrărilor respective.
Există diferite metode de reprezentare a algoritmilor:
 într-un limbaj natural (de exemplu, în limba română);
81
 sub formă de schemă logică (reprezentare grafică);
 în pseudocod.
Istoric, prima modalitate de exprimare a algoritmilor au fost
organigramele – cu avantajul descrierii grafice, intuitive şi uşor de
urmărit. Evoluţia către programarea şi proiectarea structurată a impus
exprimarea prin pseudocod – cu avantajele descrierii concise,
modularizate şi apropiate limbajelor de programare.
De exemplu, rezolvarea unei ecuaţii de gradul I de forma a·x + b = 0
presupune paşii:
i) se verifică dacă a = 0; dacă da – ecuaţia este degenerată;
ii) se verifică dacă b = 0; dacă da x = 0;
iii) altfel, x = -b/a.
Pentru prelucrări mai complexe, trebuie găsită o reprezentare explicită,
în amănunt, a operaţiunilor şi paşilor efectuaţi pentru a rezolva
problema. De exemplu, în cazul de mai sus, al ecuaţiei de gradul I, nu
s-a specificat nimic privind introducerea datelor (valorile pentru a şi b)
dar şi privind afişarea rezultatului x (care pentru un calculator nu sunt
subînţelese – aşa cum sunt ele pentru un om obişnuit cu rezolvarea
problemelor de matematică).
Programul principal:
#1 citeşte valorile pentru a şi b;
#2 soluţionarea ecuaţiei de gradul I;
#3 afişează soluţia.
Detalierea modulelor #1, #2, #3:
#1: afişează pe rând nou: „Introduceţi valoarea pentru a: ”;
citeşte de la tastatură: a;
afişează pe rând nou: „Introduceţi valoarea pentru b: ”;
citeşte de la tastatură: b.
#2: Dacă a=0 atunci
afişează pe rând nou: „Ecuaţie degenerată”;
82
altfel x = - b/a.
#3: afişează pe rând nou: „Soluţia este x = ”, x;
afişează pe rând nou: „Pentru reluare lansaţi din nou
programul”.
Exprimarea acţiunilor prin pseudocod este o modalitate eficientă de a
descrie operaţiunile ce urmează a fi implementate într-un program dar
poate fi folosită şi spre a descrie orice acţiune complexă ce apare în
activitatea umană. Pentru familiarizarea cititorului cu codificarea
specifică în informatică (prin limbaje de programare sau
macrocomenzi), algoritmii prezentaţi în continuare se vor exprima în
continuare în limba engleză şi nu în limba română, folosind instrucţiuni
specifice limbajelor C şi Java. Sperăm că dificultatea de înţelegere a
limbajului în engleză nu trebuie considerată ca dificultate de înţelegere
a algoritmilor în sine, acestea fiind uşor de disociat dacă se face
traducerea mentală conform convenţiilor.
Organigrame (Scheme logice)
Succesiunea de operaţiuni ale unei prelucrări se poate descrie grafic
prin blocuri standard. Chiar dacă are mai mult o valoare istorică,
organigrama este un bun start în specificarea unui algoritm, fiind
intuitivă şi uşor de constituit.

Figura 18. Blocuri grafice asociate prelucrărilor elementare reprezentate în organigrame

83
Blocurile grafice generice sunt prezentate în figura18, cu simbolurile şi
semnificaţiile lor:
 terminatorii (a) şi (f) indică începutul şi sfârşitul
prelucrărilor – delimitând astfel algoritmul descris;
 blocurile (b) şi (e) indică efectiv prelucrările vizate prin
algoritm – descrise prin formule sau printr-un subprogram
predefinit ;
 blocul (d) indică o intrare sau o ieşire de date (citire sau
afişare);
 blocul (c) este necesar pentru specificarea ramificaţiilor de
decizie – eventual, implicate în operaţiuni repetate.

Figura 19. Organigrama pentru algoritmul de rezolvare a ecuaţiei de gradul I


Succesiunea operaţiilor se indică prin linii şi săgeţi care leagă blocurile
grafice prezentate, astfel constituind aşa-numita organigramă. Ca
84
exemplu, se prezintă în figura 19 organigrama (schema logică) pentru
rezolvarea ecuaţiei de gradul întâi.
Pseudocod
Atunci când se doreşte nu doar descrierea algoritmului ci şi structurarea
etapelor de rezolvare a problemei (prin modularizare), este indicată
utilizarea unui limbaj codificat care exprimă (în limba maternă)
operaţiunile de executat şi cele de control al fluxului de comenzi (cum
sunt decizia binară, repetiţia). Modularizarea (adică separarea
operaţiunilor pe secţiuni, fiecare cu un scop restrâns şi specific) este
singura modalitate de abordare a rezolvării problemelor complexe şi cu
soluţie puţin sau deloc cunoscută Pe de altă parte, descrierea
algoritmilor prin pseudocod este mult mai compactă decât organigrama
(care necesită mult spaţiu pe foaia de scris), este apropiat de un limbaj
de programare, fiind o replică exprimată în limba maternă a
programului structurat.
Ca exemplu, vom considera algoritmul de calculare a ariei şi perimetrul
unui dreptunghi cu laturile b (baza) şi i (înălţimea)
În limbaj natural, se poate descrie astfel:
Pasul 1: se introduc datele b şi i;
Pasul 2: dacă oricare din b sau i este număr negativ sau nul,
atunci:
Pasul 2.1: scrie “Date de intrare incorecte”.
Pasul 2.2: stop.
Pasul 3: Calculează A=b*i;
Pasul 4: Calculează p=2*(b+i);
Pasul 5: Scrie “Aria dreptunghiului este”, A
Pasul 6: Scrie “Perimetrul dreptunghiului este”, p
Pasul 7: Stop

Acelaşi algoritm, reprezentat prin schemă logică. Operaţiile sunt


reprezentate prin simboluri grafice, iar succesiunea lor prin linii sau
săgeţi

85
Acelaşi algoritm, reprezentat în pseudocod (un limbaj special de
reprezentare a algoritmilor):
citeşte b,i;
dacă (b<=0 sau i<=0)
atunci scrie “Date de intrare incorecte”
altfel
A=b*i
p=2*(b+i)
scrie “Aria este “,a, “perimetrul este ”,b
stop
Remarcăm că, în toate cazurile, algoritmul indică ce operaţii se execută
şi în ce ordine, fără să indice de ce se execută (în ce scop).
Limbajul natural nu este suficient de riguros.
Schema logică este clară şi intuitivă, indicând riguros atât operaţiile, cât
şi succesiunea lor. Totuşi, pentru număr mare de operaţii, devine dificil
de reprezentat şi de urmărit.
Pseudocodul este riguros şi nu necesită desene. Operaţiile sunt
specificate prin cuvinte cheie (de ex. citește, scrie, dacă, altfel, stop).

86
6.2.2. Elaborarea algoritmilor
Rezolvarea diferitor probleme din lumea reală cu ajutorul calculatorului
se poate face doar dacă soluţia se cunoaşte dar trebuie căutată într-un
set existent sau dacă există o metodă de găsire a soluţiei. Algoritmul
este o asemenea metodă, dar elaborarea sa este de cele mai multe ori
dificilă, considerată uneori (îndeosebi la începuturile programării) o
artă. Este evident că folosirea unor metode sistematice de elaborare a
algoritmilor este mai eficientă decât o căutare „la ureche” sau prin
încercări; aceste metode sunt ele însele algoritmi generici ce vor fi
concretizaţi apoi pentru problema reală dată.
Între metodele de elaborare a algoritmilor se amintesc cele mai
importante (numele fiind indicat în engleză spre a fi uşor de
recunoscut), cu o scurtă descriere a specificului lor:
Greedy – pentru crearea de submulţimi optimale cu elementele
preluate dintr-o mulţime dată şi cu respectarea unor restricţii
impuse individual elementelor.
Backtracking – pentru crearea de submulţimi optimale cu
elementele preluate dintr-o mulţime dată, cu respectarea unor
restricţii impuse elementelor dar şi setului (există relaţii între
elementele submulţimii soluţie).
Divide et impera – pentru probleme ce conţin secvenţe sau piese
discrete ordonate, care pot fi divizate în subprobleme care se
rezolvă separat şi apoi se obţine soluţia prin combinarea soluţiilor
parţiale.
Branch and Bound – pentru probleme în care soluţiile se pot
reprezenta ca noduri în arbore iar căutarea soluţiei se face prin
parcurgerea arborelui urmărind totodată o funcţie de cost pentru a
limita adâncimea de căutare.
Programare dinamică.
Metode euristice.
Algoritmii generali pot sta la baza elaborării de algoritmi particulari,
pentru rezolvarea problemelor concrete, după stabilirea celei mai
adecvate metode pentru situaţia de fapt.

87
6.2.3. Exemple de algoritmi
În continuare, se prezintă câteva exemple de algoritmi, cu descrierea lor
folosind instrucţiunile prezentate pentru controlul fluxului de operaţiuni
iar pentru comunicaţia cu omul (adică pentru afişare) se folosesc
exprimări în cuvinte încadrate de { şi } (acolade). Acest paragraf are ca
scop exemplificarea unor algoritmi concreţi dintre cei mai utilizaţi în
prelucrări uzuale, pentru fiecare exemplu prelucrările fiind grupate într-
un subprogram cu nume sugestiv ce poate apelat în alte programe.
Ambele exemple sunt aplicaţii ale metodei „Divide et impera”.
Căutare (logaritmică) binară
Cea mai uzuală prelucrare efectuată cu un sistem de calcul este căutarea
unei piese de date într-o mulţime oarecare – de exemplu date aflate pe
unul din discurile calculatorului sau date aflate în Internet. După cum
s-a arătat, cea mai eficientă căutare are loc atunci când datele sunt
organizate arborescent. O metodă de căutare eficientă – similară celei
în arbore, se poate însă executa şi pe date ordonate secvenţial (după un
criteriu de ordine – alfabetic, numeric), adică date ordonate într-o listă.
Fie exemplul următor: se dă o listă (un tabel) cu date despre studenţi
(număr legitimaţie, nume, prenume, adresă, etc.) ordonate crescător
după numărul de legitimaţie; se doresc informaţii despre un student cu
număr de legitimaţie cunoscut (denumit Tinta). Trebuie remarcat că
înşiruirea de numere de legitimaţie în listă nu este continuă – unii
studenţi au rămas repetenţi, alţii s-au retras, deci secvenţa de numere
are „goluri”.
Metoda de lucru constă în compararea numărului Tinta cu numărul de
la jumătatea listei (element pivot), apoi selectează pentru căutare în
continuare jumătatea superioară sau inferioară – funcţie de rezultatul
comparaţiei. Căutarea se repetă prin înjumătăţire succesivă până la
găsirea liniei numărului Tinta (şi afişarea informaţiilor) sau se constată
inexistenţa lui în listă.
Pentru descrierea algoritmului se consideră Lista (ca depozitar al
informaţiilor despre studenţi) apoi Tinta (ca variabilă ce conţine
numărul de legitimaţie căutat) şi elementul Pivot (valoare aflată la
88
mijlocul listei). Subprogramul CautaLogaritmic se bazează pe alte
subprograme (funcţii) necesare prelucrărilor: Vida(Lista) care indică
dacă lista nu mai are elemente, adică este vidă; Jumate(Lista) indică
numărul aflat la jumătatea listei; JumateInf(Lista) extrage jumătatea
inferioară iar JumateSup(Lista) extrage jumătatea superioară al listei.

<Subprogram> CautaLogaritmic(Lista, Tinta)


{
if (Vida(Lista))
{Afiseaza „Studentul căutat nu există în listă”;
return}
else
{
Pivot = Jumate(Lista);
if (Pivot == Tinta)
{Afișează „Informaţii despre studentul căutat ...” ;
return}
if (Pivot < Tinta)
{Lista = JumateInf(Lista);
CautaLogaritmic(Lista, Tinta)}
if (Pivot > Tinta)
{Lista = JumateSup(Lista);
CautaLogaritmic(Lista, Tinta)}
}
} // final CautaLogaritmic

Subprogramul CautaLogaritmic este recursiv (v. 0); simbolurile ==, <,


>, sunt operatori relaţionali ”egal”, „mai mare”, „mai mic”, cu rezultat
logic (adevărat/fals).
89
Sortare rapidă
În multe cazuri piesele de date trebuie aranjate în ordine crescătoare
(sortate ascendent) sau descrescătoare (sortate descendent) – vezi cazul
listei- funcţie de un criteriu de ordine (numeric sau alfabetic -
lexicografic). Astfel, sortarea este o prelucrare des întâlnită şi, ca atare,
necesită metode rapide de execuţie. Există o serie de metode de sortare,
între care amintim: „metoda bulelor”, „metoda inserţiei”, „metoda
selecţiei”. În cele ce urmează, se prezintă o „metoda rapidă” de sortare
(denumită „quicksort”), care este mult mai rapidă faţă de alte metode
(cum sunt metoda selecţiei, metoda inserţiei, faţă de care este de 100,
respectiv de 20 de ori mai rapidă).
Sortarea rapidă se bazează pe înjumătăţire, rearanjând elementele prin
comparaţii între mijlocul listei şi capetele acesteia, apoi procedând
similar cu jumătăţile obţinute până la ordonarea completă a listei.
Algoritmul poate fi realizat recursiv, deci permite o scriere compactă şi
elegantă.
Se consideră ca variabile: Lista (ca vector conţinând elementele de
sortat – în care un element în poziţia i este referit prin indexul său, adică
Lista[i], apoi în lista curentă: indicele inferior (primul element) Iinf,
indicele superior (ultimul element) Isup, doi indici de lucru i şi j, apoi
elementul pivot (elementul de la mijlocul listei) Pivot. Funcţia
Inversează() inversează elementele de pe poziţiile specificate ca
parametri.

<Subprogram> SortareRapida(Iinf, Isup)


{
i=Iinf; j=Isup;
Pivot=Lista[(Iinf+Isup)/2];
do
{
while(Lista[i]<Pivot)
i=i+1;
90
while(Lista[j]>Pivot)
j=j-1;
if (i<j)
{
Inverseaza(j, i);
i=i+1; j=j-1;
}
while(j>i);
if (Iinf<j)
SortareRapida(Iinf, j);
if (i<Isup)
SortareRapida(i, Isup);
} // final SortareRrapida

Trebuie remarcat că împărţirea din calculul poziţiei pivotului


(Iinf+Isup)/2 este împărţire întreagă.

6.2.4. Analiza şi complexitatea algoritmilor


După cum a rezultat din prezentarea de mai sus a unor algoritmi şi a
metodelor de elaborare a acestora, rezolvarea unei probleme se poate
face prin mai multe căi – deci prin algoritmi diferiţi, şi este utilă, chiar
necesară uneori, compararea acestor căi pentru a răspunde la
următoarele întrebări:
Soluţia obţinută este corectă? Dacă da este ea optimă?
Rezolvarea problemei este inteligibilă şi uşor de modificat?
Execuţia algoritmului este eficientă - în sensul timpului de calcul
şi a resurselor necesare?
Pe lângă aceste probleme fundamentale din punct de vedere practic apar
şi chestiuni teoretice prin care algoritmii se pot analiza şi compara:
Durata de execuţie este predictibilă?
91
Cât de complexă este rezolvarea problemei relativ la timpul de
calcul necesar?
Complexitatea algoritmului
În acest paragraf se vor stabile mărimi de evaluare a complexităţii
algoritmilor. Analiza algoritmilor priveşte în principal timpul de
execuţie, dar acesta depinde puternic de sistemul de calcul şi de
contextul de rezolvare. O modalitate mai generală este calculul
numărului de operaţii executate de algoritm pentru rezolvarea
problemei – aceasta fiind dependentă doar de metoda de rezolvare şi de
numărul n al pieselor de date de intrare. În acest sens, compararea
programelor se poate face urmărind în principal numărul de operaţiuni
costisitoare ca timp de execuţie, cum sunt: apeluri de funcţii, înmulţiri
şi împărţiri, atribuiri, comparaţiile, etc.
Pentru un număr n de piese de date la intrare, ne interesează:
complexitatea temporală – notată T(n), care reprezintă numărul
de operaţii executate de algoritm asupra setului de intrare
(considerând o operaţie în unitatea de timp);
complexitatea spaţială – notată S(n), care reprezintă numărul de
locaţii de memorie folosite de algoritm (memoria de date, stiva,
regiştrii);
unde T(n) şi S(n) nu sunt funcţii ci relaţii, fiindcă pot avea pentru acelaşi
n rezultate diferite (dependente de modul în care algoritmi diferiţi
rezolvă o problemă).
Analiza unui algoritm se face pentru un număr generic de n date în cele
trei cazuri de interes:
cel mai defavorabil – indicând maximul numărului de operaţii
efectuate,
mediu – indicând media numărului de operaţii efectuate,
cel mai favorabil - indicând minimul numărului de operaţii
efectuate.
Uzual, se analizează cazul cel mai defavorabil, apreciat prin Ordinul
algoritmului, notat O (O mare), acesta corespunzând timpului cel mai
lung (sau spaţiului cel mai mare) necesar algoritmului pentru a prelucra
92
toate piesele n de date. Complexitatea algoritmului este indicată de
ordinul său.
În urma analizei unui algoritm rezultă un ordin al acestuia, care poate fi
încadrat în una din clasele de complexitate de mai jos în scopul
comparării la un nivel mai general a algoritmilor:
Clasa P pentru probleme polinomiale, ce se pot rezolva într-un
număr de operaţii exprimabil printr-un polinom de n – numărul de
piese de date, într-un mod determinist (adică cunoscut şi stabilit
perfect privind operaţiile şi rezultatul lor).
Clasa NP pentru probleme nedeterminist polinomiale, ce se pot
rezolva într-un timp polinomial într-un mod nedeterminst (de
exemplu prin „ghicirea” soluţiei folosind algoritmi genetici, apoi
se verifică dacă soluţia este corectă.
În clasa NP există o subclasă de probleme numite NP-complete care nu
se pot rezolva în timp polinomial dar măcar se poate verifica în timp
polinomial o eventuală soluţie. Soluţia propriu-zisă necesită un timp de
rezolvare cuprins între unul exprimat polinomial şi unul exprimat
exponenţial.

6.3. Categorii de prelucrare şi prezentare a informaţiilor


În acest paragraf se vor trece în revistă o serie de prelucrări uzuale
realizate de sisteme de calcul, cu caracteristicile lor. Scopul
paragrafului este de a se completa noţiunile prezentate în paragrafele
anterioare, cu locul şi rolul prelucrărilor de date şi modului cum acestea
sunt utilizate de către om. Se va începe cu prelucrări matematice (cele
care dau şi numele instrumentului „calculator”) dar se vor trece în
revistă şi categorii de prelucrări care emulează modul de a raţiona sau
reacţiona al omului, precum şi prelucrări care prezintă informaţia către
acesta. Nu se vor trece în revistă domenii de utilizare a calculatorului în
viaţa omului ci caracteristicile diferitelor prelucrări pe care le poate (şi
trebuie) să le facă în susţinerea unei utilităţi umane.

93
6.3.1. Calcule matematice
De la începuturi, maşinile de calcul au fost gândite pentru a efectua mai
rapid calcule laborioase şi în volum mare. Caracteristicile acestor
prelucrări sunt:
 determinismul – prelucrările execută operaţii şi paşi bine
determinaţi, spre rezultate repetabile (adică pentru aceleaşi date
de intrare se obţin aceleaşi rezultate);
 exprimarea numerică – prelucrările se referă la cantităţi ce se
exprimă prin numere şi sunt reprezentate direct în sistemul de
calcul în format binar.
Este deja evident că, prin caracteristicile lor, aceste prelucrări se rezolvă
algoritmic, pe baza unor modele matematice elaborate anterior şi a căror
validitate este demonstrată şi verificată.
Prelucrările matematice se întâlnesc în orice aplicaţie, fiindcă în orice
domeniu al realităţii se utilizează mărimi cantitative. Tocmai de aceea,
în general, limbajele de programare oferă – pe lângă operaţiile generale
de atribuire, decizie şi repetiţie (denumite instrucţiuni de programare),
un set de funcţii pentru prelucrări matematice uzuale (cum sunt funcţiile
trigonometrice, cele de aflare a părţii întregi sau fracţionare a numerelor
reale) – grupate în biblioteci de funcţii matematice.
Pentru efectuarea de calcule foarte laborioase – cum sunt calcule pentru
modelarea fenomenelor în mecanica fluidelor sau pentru volume foarte
mari de date (în economie, administraţie, transport), precum şi pentru
calcule a căror rezultat este aşteptat imediat („cu timp mic de răspuns”),
se folosesc pentru prelucrarea datelor algoritmi paraleli. Cu aceşti
algoritmi se realizează programe care vor rula pe „maşini paralele”,
adică maşini de calcul cu mai multe procesoare în care fiecare
prelucrează o anumită parte a problemei; rezultatele parţiale se preiau
de la acestea şi se combină în rezultatul final ce va fi prezentat omului.
Algoritmii paraleli sunt elaboraţi pe baza unor modele deterministe,
rolul lor fiind în principal de a distribui sarcinile de calcul şi a obţine o
încărcare echilibrată a procesoarelor.

94
Astăzi, prelucrarea paralelă se poate efectua în reţele de calculatoare
obişnuite, de exemplu folosind calculatoarele PC dintr-o reţea locală şi
programe specializate care distribuie sarcinile de calcul pe acestea.

6.3.2. Prelucrări de birou


În această categorie se pot încadra toate prelucrările care susţin omul în
prelucrarea informaţiilor care, în mod tradiţional, foloseau ca suport
hârtia sau mijloacele de comunicaţie de tip telefon sau poştă. Aceste
prelucrări şi aplicaţiile care le oferă privesc utilizatorul obişnuit, prin
acesta înţelegând orice persoană care are de prelucrat documente „la
masa sa de lucru” – fie acesta un funcţionar, om de ştiinţă sau casnic.
Vom face mai jos o enumerare a prelucrărilor, domeniilor de lucru şi
instrumentelor utilizate pentru acestea, dar asupra lor se va reveni în
detaliu pe parcursul cărții:
Prelucrări de documente „scrise” – folosesc procesoare de texte,
ce oferă utilizatorului instrumente de editare, formatare şi corectură
automată a textului şi a elementelor de exprimare a informaţiilor
(tabele, imagini).
Calcule diverse şi ilustrarea seriilor cantitative prin histograme –
folosesc foi de calcul electronice, ce permit utilizatorului calcule
rapide pe volume relativ mari de date şi într-o modalitate simplă şi
eficientă (fără a scrie programe speciale pentru acestea).
Pregătirea şi expunerea materialelor de prezentare – folosesc
aplicaţii de prezentare către auditoriu, ce permit expuneri
multimedia către grupuri de oameni (folii de prezentare, sunet şi
imagini animate).
Gestiune şi prelucrare a datelor structurate (de tip articol) –
folosesc aplicaţii de baze de date, ce permit crearea de tabele cu
informaţii de diverse tipuri şi manipularea sau prelucrarea acestora.
Comunicaţii în interiorul şi exteriorul organizaţiei – folosesc
aplicaţii de transfer date în intranet (de la şi spre colegi) sau în
Internet (de la şi spre lumea largă), care emulează serviciile poştale
(poşta electronică – „e-mail”) sau consultarea de „pagini cu

95
informaţii” (web – în mod pasiv sau interactiv). Există apoi aplicaţii
de lucru la distanţă (de „acasă” se lucrează pe un calculator distant
ca şi cum ar fi pe masa de lucru) şi vizionare interactivă de produse
mass-media.
Prelucrările din această categorie sunt foarte variate, aproape în
majoritate fiind prelucrări algoritmice deterministe. Pentru faptul că
eficienţa şi aplicabilitatea lor devine tot mai largă, tehnicile de
Inteligenţă Artificială pătrund în aplicaţiile obişnuite, deci astăzi ele
folosesc şi algoritmi nedeterminişti (reţele neuronale artificiale, logică
fuzzy, algoritmi genetici).

6.3.3. Prelucrări prin metode de Inteligenţă Artificială (IA)


În situaţiile din viaţa curentă, omul trebuie să le rezolve mai rar
probleme cantitative şi precise; adesea sunt de rezolvat probleme
calitative într-un mod aproximativ. De exemplu, la traversarea unei
străzi, în plin trafic, un om nu face calculul vitezelor maşinilor, a
distanţelor şi stării drumului (etc., etc.) spre a aprecia apoi viteza cu care
se va deplasa pentru a nu intra în coliziuni, ci procedează la un
raţionament aproximativ, bazat pe informaţii puţine, dar eficient:
traversează fără nici o zgârietură. De asemenea, nu efectuează calcule
spre a recunoaşte o altă persoană sau o marcă de maşină ci, pe baza
caracteristicilor lor cunoscute şi sesizate, decide spontan cine sau ce
este.
Domeniul care se ocupă cu simularea comportamentului fiinţelor vii se
numeşte Inteligenţă Artificială (IA). Implementarea tehnicilor IA se
poate face fizic (prin sisteme electronice) sau logic (prin programe pe
sisteme de calcul). Sunt vizate, în principal, tehnici pentru:
 Emularea raţionamentului simbolic – prin Sisteme Bazate pe
Cunoştinţe, în care se parcurge un set de cunoştinţe (exprimate ca
propoziţii) spre a obţine noi cunoştinţe.
 Reprezentarea şi inferenţa pentru informaţii aproximative – prin
Logică Fuzzy (Vagă), în care exprimări lingvistice aproximative
(relative la cantităţi) intră în reguli „dacă .. atunci”, spre a obţine
noi valori – aproximative sau precise, necesare unei decizii.
96
 Recunoaşterea formelor – prin Reţele Neuronale Artificiale, în
care se pun în relaţie un set de caracteristici ale unor obiecte (reale
sau abstracte) cu un set de decizii, pe baza unui model
conexionist.
 Soluţionarea problemelor de optim cu tehnici evolutive – prin
Algoritmi Genetici, în care mulţimea soluţiilor este privită ca o
populaţie de cromozomi în care au loc mutaţii şi selecţii spre
adaptarea optimă la un set de restricţii date.
Cercetarea şi aplicaţiile Inteligenţei Artificiale se dezvoltă în principal
către următoarele arii de interes:
Demonstrarea teoremelor – ca modalitate de a valida un adevăr (o
teoremă) prin găsirea unei secvenţe deductive de alte adevăruri de
la cel iniţial nevalidat (al teoremei) la altul final validat anterior sau
prezentat axiomatic. Utilitatea demonstrării automate a teoremelor
este legată de evitarea rezolvării unor probleme dificile doar pentru
contexte sau date particulare – prin algoritmi realizaţi ad-hoc de
programatori „inteligenţi” sau prin păreri exprimate de experţi
umani.
Jocuri ale minţii – şah sau alte jocuri în care „campioni” umani
sunt provocaţi de maşini „inteligente” care de fapt rulează un
program dedicat jocului respectiv.
Analiză de tip Expert şi consultanţă în domenii aplicative – prin
care se prelucrează informaţii de tip simbolic şi se emulează
raţionamente în contexte complexe, cu cunoştinţe incomplete sau
variabile: diagnoză medicală şi tehnică, predicţie.
Planificarea comportării prin analiză scop-mijloc – pentru a crea
şi planifica secvenţe de acţiuni, privite ca mijloace, care servesc
unor scopuri direct legate de mijloace, de exemplu pentru mişcarea
şi comportarea roboţilor.
Înţelegerea şi utilizarea limbajului natural vorbit şi scris – necesar
sistemelor de traduce automată, comandă şi exprimarea vocală în
interacţiunea cu maşina, înţelesului conţinutului unui mesaj.

97
Percepţie acustică şi vizuală, recunoaşterea formelor – pentru
identificare de către maşină a obiectelor şi fenomenelor pentru a le
comunica omului sau pentru asistarea sa în luarea deciziilor.
Auto-învăţare şi auto-reproducere – pentru comunicarea maşină-
mediu şi pentru replicarea unor obiecte (reale sau virtuale) în
scopul susţinerii unei utilităţi umane.
În continuare, se vor descrie pe scurt modalităţile de reprezentare şi
prelucrare a informaţiilor prin metode de lucru specifice celor patru
domenii IA, prezentate mai sus. Totuşi, înainte de a descrie în mod
tehnic domeniul Inteligenţei Artificiale, este indicat să lămurim
termenul de inteligenţă şi modul în care calculatorul se poate comporta
„inteligent”.
Nu vom da o definiţie a inteligenţei (care de fapt este foarte
controversată) ci, în susţinerea teoriilor inteligenţei artificiale, vom
aminti că dualism-raţionalismul Cartezian şi monismul materialist
consideră inteligenţa oarecum diferit, dar în esenţă simulabilă cu
calculatorul. Iniţial, inteligenţa era considerată capacitatea de a emite
judecăţi, iar de aici materialismul computaţional a emis următoarea
secvenţă practică:
(A) inteligenţă  raţionament  prelucrare simbolică 
calculabilitate,
care fundamentează „Sistemele Bazate pe Cunoştinţe” (în engleză
Knowledge Based Systems - KBS). Totuşi, acţiunile „inteligente” ale
lumii vii nu se reduc toate la raţionament (improprie, după bunul simţ,
melcilor sau chiar pisicii spre exemplu). Fiinţele vii, în principal,
reacţionează la stimuli din mediu:
(B) inteligenţă  reacţie  prelucrare subsimbolică 
calculabilitate,
care fundamentează prelucrările de „Soft-computing”, adică prin
tehnici Fuzzy, Reţele Neuronale Artificiale şi Algoritmi Genetici.
Am putea considera prima abordare (A) ca judecată emisă de om prin
„conştient”, iar a doua abordare (B) ca reacţie instinctivă sau intuitivă
a omului prin „subconştient”.
98
7. Realizarea programelor şi programe suport

Funcţionarea unui sistem de calcul presupune existenţa pe suportul fizic


(echipament) a secvenţei de comenzi (program) care indică ce
prelucrări suportă valorile de interes (date). Anterior am nuanțat cele
trei entităţi, privind:
(I) structura constructivă şi funcţională a echipamentului de calcul;
(II) reprezentarea datelor referitoare la diverse tipuri de informaţii;
(III) comenzile elementare (instrucţiuni) şi modalităţile de
soluţionare generică a problemelor (algoritmi).
Totuşi, acestea sunt doar instrumente puse la dispoziţia omului de
Tehnologia Informaţiei şi Comunicaţiilor, dar rezolvarea completă a
unei probleme noi (necunoscute) presupune abordarea tuturor
aspectelor ce apar în situaţii reale, ba chiar mai mult – elaborarea unei
soluţii generice pentru toate (sau cât mai multe din) problemele
similare. Sunt necesare:
(IV) analiza problemei (sau clasei de probleme) şi elaborarea unei
soluţii generale adecvate (analiza şi soluţionarea problemei);
(V) înscrierea comenzilor de găsire a soluţiei cu prevederea tuturor
situaţiilor ce pot apare, apoi furnizarea acestora calculatorului
(proiectarea şi realizarea programului);
(VI) validarea soluţiei şi utilizarea ei pentru situaţii concrete din clasa
de probleme .
În acest modul se vor aborda chestiuni ce privesc acţiunile (IV), (V) şi
(VI), cu metodele sistematice ce stau la baza lor, cu mijloacele prin care
aceste acţiuni se pot realiza eficient (sau automat) şi cu chestiuni legate
indirect de utilizarea soluţiei – cum sunt documentarea, întreţinerea

99
sistemului, dezvoltarea sa. În principal, scopul tuturor acestor acţiuni
este realizarea programului de calculator, adică programarea.
Programul este o secvenţă de comenzi exprimată într-un mod codificat
şi care poate fi interpretat şi executat de către calculator, având ca scop
prelucrarea informației. Practic, programul este un ansamblu de
instrucțiuni, scrise într-un limbaj de programare, pe care calculatorul le
executa pentru a îndeplini o anumită sarcină.
Programul conţine:
descrierea datelor de intrare, de ieşire şi intermediare cu care se
operează;
descrierea operaţiilor efectuate asupra datelor (a algoritmului de
prelucrare).
Pe scurt, Program= date + algoritm.
După cum s-a arătat, un program nu prezintă doar secvenţe (succesiuni)
de comenzi, ci şi ramificaţii sau repetiţii, iar secvenţa este esenţială
fiindcă reflectă modalitatea în care omul concepe rezolvarea unei
probleme – paşi succesivi, cu o singură operaţie la un moment dat.
Chiar şi procesorul este astfel realizat constructiv (indiferent cât de
perfecţionat ar fi) pentru a executa o singură comandă al un moment
dat, iar mai multe comenzi în serie (secvenţă). Un sistem de calcul poate
executa mai multe comenzi simultan doar dacă are mai multe
procesoare (este sistem multi-procesor sau maşină paralelă).
Pe de altă parte, la rezolvarea unei probleme cu ajutorul calculatorului
apar situaţii complexe, colaterale problemei de bază, ce trebuie şi
acestea rezolvate, cum sunt: condiţii limită ale contextului de lucru sau
ale valorilor de intrare, greşeli posibile pe care operatorul uman le poate
face (din necunoaştere sau neatenţie); apoi prezentarea rezultatelor este
importantă: tabele, grafice, sunete etc. Se constată deci că rezolvarea
unei probleme (chiar foarte simplă) implică, de fapt, rezolvarea multora
altor probleme pentru utilizarea de către om a soluţiei.
Aplicaţia este un set de programe reunite şi interdependente, care se
prezintă într-un mod unitar şi oferă soluţii pentru o clasă de probleme
date.
100
Sistemul informaţional (engleză: information system, franceză:
système d'information) este un ansamblu organizat de elemente,
implicate în procesul de colectare, transmisie, stocare, prelucrare şi
diseminare a informaţiei. Nu este obligatoriu ca aceste operaţii să se
efectueze cu echipamente de calcul. De altfel, sistemele informaţionale
au existat cu mult înaintea apariţiei calculatoarelor.
Sistemul informaţional este compus din:
totalitatea informaţiilor cu care operează;
echipamentele folosite pentru operaţii asupra informaţiei;
personalul implicat în funcţionarea şi administrarea sistemului;
procedurile aplicate pentru funcţionarea sistemului.
Interacţiunea dintre elementele sistemului informaţional se realizează
prin transmiterea de informaţie.
Se numeşte sistem informatic acea parte a sistemului informaţional în
care operaţiile de culegere, transmitere, prelucrare, stocare şi regăsire a
informaţiei se realizează folosind echipamente de calcul şi alte mijloace
specifice tehnologiei informaţiilor şi comunicaţiilor. De altfel, în alte
limbi nu există un termen special pentru sistem informatic, folosindu-
se termenul de “sistem de tehnologia informaţiei (şi comunicaţiilor)”.
Sistemul Informatic este un set de aplicaţii care funcţionează pe o
structură de echipamente interconectate, exploatate de un număr mare
de oameni către o utilitate complexă.
Ca exemple se amintesc sisteme informatice pentru: rezervarea biletelor
de avion sau tren, camerei de hotel, urmărirea stocurilor de produse ale
unei companii, evidenţa proceselor într-un tribunal. În cele ce urmează
vor fi prezentate chestiuni legate de programarea calculatoarelor,
vizând realizarea completă şi eficientă a aplicaţiilor şi a sistemelor
informatice.

7.1. Problematica programării


Programarea este un proces de exprimare a instrucţiunilor prin care se
rezolvă o problemă şi care pot fi convertite mecanic în acţiuni ale unui
sistem de calcul.
101
Programarea este dependentă de limbajul de codificare a instrucţiunilor,
de cunoştinţele programatorului privind regulile structurale (sintaxa) şi
semnificaţia elementelor de limbaj (semantica), de modul cum se
execută (clar, comentat şi documentat) şi de modul general de gândire
privind soluţionarea problemelor (metode de analiză şi implementare).
De aceea, mult timp, programarea s-a considerat o „artă”,
programatorul fiind o persoană care se poate exprima pe sine (ca mod
de gândire, eleganţă în exprimare, eficienţă a soluţiei) prin produsul
program realizat. Întrucât informatica a devenit o industrie,
programarea este privită astăzi prin prisma eficienţei muncii şi a
soluţiilor, adică vizează productivitatea muncii de programare şi
standardizare a utilizării produselor.
Se vorbeşte astăzi de „instrumente de programare” care oferă
programatorului (acum un lucrător foarte disciplinat, ghidat în acţiunile
sale) o serie de componente, reguli de combinare a lor şi structuri de
construire a aplicaţiilor, împreună cu mijloace de testare şi apoi
mijloace de elaborare automată a documentaţiei produsului. Imaginea
programatorului care primeşte o problemă, se aşează la calculator şi –
într-un fel de transă, tastează instrucţiune după instrucţiune realizând
un program unic în felul său, este o imagine de film naiv care nu are a
face cu realitatea. Mai mult, programatorul clasic (de limbaj) nu mai
este atât de des întâlnit, pentru că locul lui este luat de o persoană din
alt domeniu de activitate (eventual chiar în cel din care provine
problema de rezolvat) dar este educat în informatică şi foloseşte
instrumentele informatice ca pe „jocuri de cuburi”, cu care realizează
aplicaţii după dorinţa sa şi cu prelucrările pe care le cunoaşte foarte bine
– fiind parte din profesia sa.
Rezultatul programării este un produs program. Ca orice produs, el
are un ciclu de fabricaţie, o valoare de utilizare (şi de aici un preţ),
precum şi un proprietar. Spre deosebire de alte produse, un program
produs de o firmă este proprietatea acesteia şi nu a cumpărătorului
programului; cumpărătorul achiziţionează doar dreptul de utilizare a
programului şi ca atare nu îl poate modifica sau revinde. Un program
reprezintă implementarea unei idei (deci presupune o „tehnologie” de
implementare a ideii) şi, conform reglementărilor privind dreptul de
102
proprietate intelectuală (pentru orice creaţie), firma sau persoana care l-
a elaborat are drepturi de autor asupra lui, însă nu poate emite pretenţii
asupra ideii la care se referă programul. Produsele program intră astfel
pe piaţă, alături de alte produse, cu specificul lor – nu pot deveni
proprietatea cumpărătorului, iar multiplicarea lor neautorizată este
ilegală.

7.1.1. Etape în ciclul de viaţă ale unui produs program


Programarea propriu-zisă este doar o etapă în realizarea şi existenţa
unui program. Ciclul de viaţă al unui produs program cuprinde acţiuni
desfăşurate de la lansarea ideii programului până la înlăturarea lui (fiind
perimat sau inutil). Etapele din viaţa unui program sunt grupate în faze
ca în figura 20 iar evoluţia ciclică a fazelor este ilustrată în figura 21.

Figura 20. Faze şi etape în existenţa unui produs program


În continuare sunt descrise etapele din ciclul de viaţă, indicând
metodologii sau abordări sistematice care cresc eficienţa muncii în
fiecare etapă. O metodologie în domeniul analizei şi proiectării unei
aplicaţii (sau a unui sistem informatic) se referă la următoarele aspecte:

103
modele – ca viziuni conceptuale asupra obiectelor şi activităţilor
într-un domeniu dat;
metode – ca acţiuni ce determină obiecte şi activităţi concrete din
problema de rezolvat;
instrumente – ca mijloace de lucru software care ajută analiza
şi/sau proiectarea aplicaţiei.
Formularea cerinţelor
În această etapă se enunţă, de fapt, problema ce se doreşte rezolvată cu
ajutorul calculatorului şi constituie motivul pentru care este necesară
aplicaţia şi se enunţă o soluţie de principiu, care rezultă chiar din
formularea cerinţelor noului program sau sistem informatic. Adesea,
beneficiarul aplicaţiei nu ştie exact ce doreşte de fapt şi nici
posibilităţile pe care un program i le poate oferi. De aceea, ciclul de
viaţă se poate relua, chiar cu reformularea cerinţelor – spre a fi în acord
cu realitatea sau cu disponibilul financiar pentru produsul program.

Figura 21. Ciclul de realizare a unui produs program (aplicaţie sau sistem informatic)

Analiza problemei
Această etapă începe cu „Studiu şi elaborarea soluţiei problemei”, prin
care se evaluează situaţia existentă, se parcurg metode sau soluţii deja
104
aplicate în situaţii similare, apoi se stabilesc acele metode (eventual şi
algoritmii) care permit rezolvarea conceptuală a problemei. Studiul
efectuat descrie problema (sau sistemul ţintă) din patru puncte de
vedere:
i) viziunea externă (specificaţia) – asupra scopurilor aplicaţiei;
ii) viziunea organizaţională (structurală) – asupra modului de
realizare a aplicaţiei;
iii) viziunea comportamentală (temporală) – asupra evoluţiei
dinamice a aplicaţiei;
iv) viziunea asupra resurselor – hardware (echipamente de
prelucrare şi transfer), software (alte programe necesare aplicaţiei),
resurse umane (implicate în operarea şi utilizarea aplicaţiei),
resurse financiare (sume estimate pentru realizarea aplicaţiei).
Pentru realizarea unei analize precise şi complete, urmată de elaborarea
sistematică a soluţiei, se recomandă respectarea unei metodologii de
analiză, care este, de obicei, specifică modului de proiectare şi
dezvoltare a aplicaţiei. La baza celor mai multe metodologii stă
conceptul de diagramă „Entitate-Relaţie”, care constă într-o
reprezentare grafică, intuitivă, a obiectelor şi legăturilor dintre ele în
problema reală dată. De asemenea, abordările de analiză pot evolua „de
la mic la mare” (bottom-up, de jos în sus, de la amănunt la general) sau
„de la mare la mic” (top-down, de sus în jos, de la general la amănunt).
Se amintesc pe scurt câteva metodologii, cu specificul lor:
a. MERISE – orientată spre aplicaţii pentru Baze de Date. Priveşte
sistematic trei niveluri: conceptual (CE se doreşte), Logic şi
Organizaţional (CINE, CE face şi UNDE), Fizic şi Operaţional (CUM
face). Prin această metodologie se elaborează modele conceptuale
pentru date şi pentru prelucrări, ce vor fi apoi detaliate la faza de
proiectare a aplicaţiei.
b. OMT (Object Modeling Technique) – orientată pe obiecte, prin care
se identifică în problema dată obiectele şi metodele asociate. Ca etape
parcurse se amintesc: modelarea obiectelor, modelarea dinamică (a

105
evoluţiei obiectelor), modelarea funcţională (a funcţiilor structurii de
obiecte).
c. UML (Unified Modeling Language) – orientată pe obiecte şi
aplicabilă în aproape orice domeniu. Obiectele utilizator şi cele din
structura sistemului se modelează prin: diagrame „use-cases” (scopul
actorilor), diagrame „class” şi „objects” (proprietăţi şi metode din
structura ierarhică a sistemului), diagrame „sequence” şi
„collaboration”(mesaje şi interacţiuni între obiecte), diagrame „state” şi
„activity” (tranziţii şi roluri ale obiectelor), ce vor fi urmate în etapa de
proiectare de diagrame „components” şi „deployment” (implementare
şi configurare efectivă).
Fiecare metodologie deține instrumente software adecvate, pentru
asistarea experţilor umani în modelarea soluţiei şi a programului sau
sistemului de informatizare. Prin aceste instrumente se pot elabora
sistematic structuri de obiecte conceptuale, care se reprezintă ca
diagrame şi scheme bloc fizice şi funcţionale ale viitoarei aplicaţii.
Persoanele implicate în această etapă: analişti în domeniul problemei
(adică specialişti cu experienţă şi suficiente cunoştinţe pentru a elabora
o soluţie viabilă şi în detaliu), analişti de sistem (adică informaticieni
cu experienţă în tipul de probleme din care face parte problema de
rezolvat), beneficiarul şi utilizatori obişnuiţi pentru sistemul existent
(care dau detalii asupra situaţiei existente şi problemei de rezolvat,
pretind un mod de funcţionare a aplicaţiei şi un anume mod de
prezentare a rezultatelor). Documentele care rezultă din această etapă
sunt „Specificaţia de proiectare” (descrierea de principiu a informaţiilor
şi prelucrărilor) şi „Strategia de testare” (care prevede modurile în care
se vor testa modulele şi întreg ansamblul, precum şi datele de test – cu
rezultatele aşteptate).
Proiectarea aplicaţiei
Etapa de proiectare („design”) se referă la structurarea efectivă a
blocurilor software cu indicarea rolurilor, interacţiunilor şi resurselor
fiecăruia. Activitatea de proiectare implică abstractizarea faptelor ce
au rezultat în etapa de analiză, pentru modelarea informaţiilor şi
acţiunilor necesare rezolvării problemei date. Procedura de
106
abstractizare elimină faptele irelevante şi le accentuează pe cele
esenţiale, iar procedura de modelare reprezintă informaţii şi acţiuni într-
un mod specific. Modelul obţinut priveşte doar aspectele care se doresc
rezolvate ale problemei (nu toate aspectele acesteia) şi va conţine
obiecte cu (şi asupra cărora) se acţionează. Pentru un produs informatic,
modelul poate fi formal (adică exprimat prin simboluri, de exemplu prin
formule) sau procedural (adică exprimat prin cuvinte ca o reţetă de
bucătărie).
Metodologia aplicată la etapa de proiectare este puternic dependentă de
modalitatea de programare. De aceea, etapele de proiectare şi
implementare sunt strâns legate, uneori chiar suprapuse iar această
legătură provine din modul cum este gândită, chiar de la etapa de
proiectare, realizarea efectivă (implementarea) aplicaţiei pe întregul ei
şi pe fiecare program în parte. Între metodologii se amintesc două mai
importante: proiectarea obiectuală (pentru aplicaţii în care se pot
discrimina obiecte din lumea reală ce sunt manipulate de aplicaţie) – cu
utilizare mai frecventă în domenii tehnice şi care simulează realitatea și
proiectarea cu baze de date (pentru aplicaţii de gestiune a resurselor de
orice fel) – cu utilizare frecventă în economie şi administraţie.
Pe lângă partea software, la această etapă se proiectează şi structura de
echipament, privind: structura de calculatoare şi configuraţia fiecăruia,
structura de comunicaţie (reţea locală, echipamente de reţea, conectarea
la Internet) și structura de periferice partajate (adică folosite în comun)
de mai mulţi utilizatori (imprimante sau mese de desen, interfeţe de
proces pentru culegerea datelor sau comanda din / către instalaţii). Se
proiectează tipul şi configuraţia sistemelor de operare - strâns legat de
structura de echipamente şi de scopurile aplicaţiei.
Persoanele implicate în această etapă sunt: analişti de sistem
(informaticieni cu pregătire specială în folosirea unui instrument de
proiectare şi implementare a programelor), ingineri hardware şi ingineri
de sistem (care proiectează structura de echipamente şi programe),
conducători de proiect (specialişti în domeniul ţintă sau în informatică,
care cunosc modul de organizare a activităţilor complexe precum şi
domeniul ţintă). Documentele elaborate la finalul etapei sunt
„Specificaţia de programare” (indică structura de module şi acţiuni apoi
107
datele necesare fiecărui program), „Planificarea lucrărilor de
implementare”și „Inventarul resurselor necesare” (financiare, umane şi
materiale) pentru realizarea noului program sau sistem de
informatizare.
Implementarea şi testarea aplicaţiei
Activitatea esenţială a acestei etape este programarea. Se vorbeşte
adesea de „programarea calculatoarelor” subînţelegând toate activităţile
implicate de aceasta, poate fiindcă programarea este activitatea prin
care efectiv echipamentul de calcul devine funcţional (fără programe
este „fier mort”). În sine, programarea constă în codificarea
operaţiunilor pe care calculatorul trebuie să le execute către atingerea
unui scop dat (calcul matematic, retuşarea şi afişarea unei imagini, sau
mişcarea braţului unui robot). După cum se constată, programarea este
doar partea de realizare efectivă a programului, care însă necesită multe
alte activităţi anterioare şi posterioare.
Fazele realizării unui program sunt:
(I) Înscrierea programului sursă – prin care se descriu acţiuni
(folosind un limbaj de programare) într-un text scris cu un editor de
texte. Atât limbajul cât şi modul de realizare a programului sursă sunt
apropiate obişnuinţelor umane (cum spre exemplu, o reţetă de bucătărie
este înscrisă ca text, într-o formă simplificată, uneori chiar codificată).
(II) Compilarea – prin care textul sursă este „tradus” din limbajul de
programare (exprimat prin cuvinte – ) în limbajul maşinii (exprimat prin
coduri binare). Traducerea este realizată de un program special pentru
limbajul de programare ales – numit compilator, iar rezultatul este
codul obiect al programului.
(III) Editarea legăturilor – prin care în codul obiect se inserează
subprograme, preluate din biblioteci de subprograme, ce descriu
prelucrări uzuale, pe care programatorul le foloseşte fără a mai scrie cod
(fără a scrie programul ci doar a-l apela din bibliotecă). Astfel,
prelucrări care au fost doar amintite în programul sursă se înscriu
efectiv în codul obiect. Rezultatul fazei este codul executabil al

108
programului, adică forma binară ce poate fi încărcată direct în memoria
de lucru şi poate executa operaţiunile programate.
Cuvintele, ce exprimă comenzi, se combină în limbajul de programare
respectând o sintaxă strictă (ca reguli gramaticale); programatorul poate
greşi (din neatenţie, din necunoaștere), astfel că textul sursă fiind greşit
este posibil să nu poată fi interpretat de calculator. În acest caz, este
necesară:
(IV) depanarea programului – care constă în modificarea textului
sursă spre a fi eliminate erorile. Identificarea erorilor şi apoi verificarea
programului se realizează cu ajutorul unui depanator (program de
asistare a programatorului în activitatea de verificare a corectitudinii
programului). Corectarea efectivă a erorilor constă în înscrierea corectă
a cuvintelor sau a combinaţiilor de cuvinte în textul sursă.
Depanatorul localizează erorile din program şi face chiar sugestii de
corectură, însă aceste erori sunt legate doar de „modul de exprimare” în
limbajul dat, nu de modul cum a fost rezolvată problema (soluţia
corectă sau nu); eliminarea erorilor de soluţionare a problemei se poate
face doar prin executarea de teste pe date şi în situaţii reale, urmată de
compararea rezultatelor cu cele aşteptate şi apoi modificarea
algoritmilor de prelucrare.
În general, editarea, compilarea şi depanarea programului se realizează
folosind un mediu integrat (un program complex cu toate aceste
instrumente), spre a spori eficienţa muncii de programare. Astfel de
instrumente sunt „mediile de programare” sau „instrumentele de
inginerie software” CASE. Scrierea efectivă a programului se numeşte
codificare. Această operaţiune complexă nu se realizează doar înscriind
textul în limbajul de programare ales ci se includ date, obiecte sau
prelucrări „prefabricate” din biblioteci ale mediilor de programare
utilizate pentru scrierea aplicaţiei. În variante mai evoluate (utilizând
instrumente CASE sau instrumente RAD), se pot realiza programe prin
„plasarea” unor obiecte virtuale ce reprezintă date şi acţiuni necesare
rezolvării diferitor aspecte ale problemei (introducere de date,
prelucrare, afişare).

109
Aplicaţia se implementează modular – fiecare subprogram rezultat la
proiectare (şi înscris în „Specificaţia de programare”) este codificat şi
testat separat. La realizarea programelor se respectă principii de
inginerie a programării, în scopul depanării facile şi apoi a dezvoltării
coerente a fiecărui modul şi aplicaţie. După ce modulele sunt verificate,
se face integrarea aplicaţiei, adică se instalează toate piesele software
şi hardware ale aplicaţiei. Se face testarea ansamblul în condiţii de
laborator şi se emit documentele de conformitate cu cerinţele (dacă sunt
respectate sau nu, care din cerinţe nu au fost satisfăcute şi de ce).

Figura 22. Fazele de realizare ale unui program

În situaţia în care funcţiile aplicaţiei sau utilizarea acesteia nu sunt


conforme cerinţelor, se decide dacă şi pentru care din cerinţe se reiau
fazele de analiză, proiectare şi apoi cele de implementare cu testare.
Similar fazei de proiectare, pentru structura de echipamente se
procedează la achiziţionarea, instalarea şi testarea fiecărui echipament
şi a întregului sistem, format din calculatoare, reţea şi echipamente de
interconectare, periferice în reţea, alimentare cu energie electrică, spaţii
de securizare a echipamentelor sensibile şi stocare a suporturilor de
date.
Persoanele implicate în aceste faze sunt: analişti programatori
(elaborează structurile conceptuale de module sau obiecte şi stabilesc
110
datele şi prelucrările pentru fiecare din ele), programatori (realizează
codificarea programelor), ingineri electronişti, electricieni, alţi
tehnicieni (pentru instalarea echipamentelor şi, eventual, amenajarea
spaţiilor), ingineri de sistem (pentru instalarea sistemelor de operare şi
integrarea aplicaţiilor), precum şi beneficiari sau utilizatori (pentru
testarea utilizării aplicaţiilor şi certificarea conformităţii cu cerinţele).
Documentele elaborate în finalul acestei etape sunt: „Programe sursă”
ale aplicaţiei şi fişierelor de comandă, „Documentaţia aplicaţiei” (care
descrie structura de module, funcţionarea şi configurarea aplicaţiei),
„Manualul de utilizare”, „Fişe de testare” (care constată conformitatea
utilizării cu cerinţele). Darea în exploatare a aplicaţiei se face după o
testare la utilizator (de obicei de 72 de ore), şi dacă aceasta a decurs cu
succes se încheie un „Proces verbal de recepţie”. Acest document
încheie ciclul de realizare al aplicaţiei; oricare alte modificări solicitate
şi realizate după acest moment se consideră lucrări separate, pentru care
se parcurg din nou etapele (de la analiză până la implementare şi
testare).
Exploatarea şi dezvoltarea aplicaţiei
După ce aplicaţia a fost testată şi recepţionată de către beneficiar ea
intră în exploatare, adică este utilizată pentru scopul pentru care a fost
realizată. „Darea în exploatare” este faza în care personalul utilizator
urmează cursuri de pregătire pentru utilizarea aplicaţiei şi, eventual,
conducerea asigură cadrul organizatoric (personal specializat, spaţii şi
regulamente de lucru) pentru aplicaţia sau sistemul în cauză.
Pe durata exploatării aplicaţiei (sau a sistemului de informatizare) pot
apare diverse probleme, care trebuie rezolvate spre a se asigura o
funcţionare corectă. Dintre probleme amintim: actualizarea unor date
ale aplicaţiei de tip parametric (de exemplu la modificarea legislaţiei
legată de o aplicaţie de contabilitate), configurare periodică,
administrarea resurselor sistemului (imprimante, discuri, conturi
utilizator), rezolvarea unor incidente de operare sau ce apar după un
accident (defect) sau după modificări în echipamente. Acţiunile de
rezolvare a unor asemenea probleme se pot reuni în activitatea de
întreţinere a aplicaţiei.
111
Persoanele implicate în această activitate sunt: ingineri de sistem
(asigură configurarea corectă a sistemului de operare şi a programelor
de aplicaţie), administratori de baze de date (asigură configurarea şi
asistă utilizatorii în utilizarea corectă a bazelor de date) administratori
de reţea (asigură configurarea şi menţinerea bunei funcţionări a
echipamentelor şi programelor de comunicaţie), ingineri şi/sau
tehnicieni de întreţinere echipament, utilizatori obişnuiţi şi utilizatori
„privilegiaţi” – ultimii având de fapt sarcini speciale, de exemplu
gestiunea resurselor grupului de lucru, servicii de configurare specifică
grupului de lucru; calificativul de „privilegiat” se referă la drepturile (şi
răspunderile) extinse pe care le au privind accesul la date şi programe.
Exploatarea aplicaţiei – în forma în care a fost achiziţionată, are loc
până la apariţia unei versiuni mai perfecţionate (adică o dezvoltare - în
engleză „up-grade”) sau până la inutilitatea ei (datorită apariţiei pe piaţă
a unor noi produse sau prin dispariţia scopului aplicaţiei). În măsura în
care prin modificarea aplicaţiei se pot obţine caracteristici mai
performante, se poate intra într-o etapă de dezvoltare a aplicaţiei, în
care se repetă toate etapele – de la analiză la implementare, parcurse la
realizarea aplicaţiei. Evident, cea mai marea parte a programelor din
aplicaţia curentă nu ar trebui să sufere modificări, ci doar cele care nu
mai sunt de actualitate sau necesită perfecţionări.

7.1.2. Limbaje de programare


În modulele anterioare s-au amintit unele limbaje de programare în
contextul declarării tipurilor de date iar apoi a tipurilor de comenzi
necesare descrierii prelucrărilor cu ajutorul sistemelor de calcul. De
fapt, acestea sunt cele două aspecte generice prin care omul comunică
maşinii ce are de făcut: cu ce (datele) şi cum (comenzile). La primele
calculatoarele din primele generaţii (din 1948 şi până în 1980) se puteau
introduce datele şi comenzile direct în cod binar, prin comutatoare.
Acest mod de lucru era extrem de greoi şi în plus era accesibil doar
celor care cunoşteau bine maşina şi reprezentările interne ale datelor şi
comenzilor (iar varietatea maşinilor de calcul devenise deja foarte
mare). Un limbaj de programare apropiat omului oferă independenţă

112
programatorilor faţă de tipul maşinii de calcul, permițând acestuia să se
concentreze asupra rezolvării problemei, nu asupra maşinii.
Un limbaj de programare este un set de cuvinte cu semnificaţii precise,
care se pot combina după reguli stricte pentru a exprima comenzi şi a
descrie date necesare unui tip de prelucrare.
Limbajele de programare sunt limbaje artificiale, în care se scriu
programele pentru calculator. Limbajul trebuie să poată fi înţeles de
către om (care îl concepe), dar trebuie să poată fi executat de calculator.
Din această cauză, trebuie să respecte un formalism riguros. Din
punctul de vedere al comodităţii de utilizare de către om, există mai
multe niveluri de limbaje de programare: cod maşină, limbaje de
asamblare, limbaje de nivel superior.
În limbajul maşină, numit şi cod maşină, instrucţiunile sunt scrise prin
numere, aşa cum sunt ele în memoria calculatorului în momentul
executării programului.
O instrucţiune maşină tipică are forma
<cod operaţie> <adresa operandului>, unde ambele părţi ale
instrucţiunii sunt numere.
Codul maşină este executat direct de calculator, fiind foarte greu de
scris şi înţeles de către om.
Cu toate că s-au făcut diverse încercări de elaborare a unui limbaj de
programare universal, care să satisfacă cerinţe spre orice scop,
diversitatea limbajelor de programare a crescut datorită pe de o parte
tendinţei de specializare resimţită în lumea modernă, pe de altă parte
datorită unor interese comerciale ale firmelor producătoare de software.
Există, astfel, limbaje pentru dezvoltarea de programe comerciale,
ştiinţifice, pentru prelucrări grafice sau chiar pentru amuzament. Unele
limbaje necesită cunoştinţe profunde asupra structurii şi funcţionării
sistemului de calcul şi sistemelor de operare, altele pot fi folosite de
începători, unele limbaje se folosesc la programarea microcontroller-
elor (care comandă aparate moderne de jos nivel, în orice domeniu – de
la dispozitive în instalaţii industriale până la maşina de spălat sau
cuptorul cu microunde), altele se folosesc la programare super-
calculatoarelor (cu mii de procesoare funcţionând în paralel pentru
113
calcul intensiv în mecanica fluidelor sau în controlul traficului de zbor).
Având abordare pragmatică, un limbaj va fi regăsit în diverse clase ce
indică astfel caracteristicile sale.
Limbaje de programare uzuale
Anterior s-a făcut trimitere către anumite limbaje de programare C,
Pascal şi Java pentru a exemplifica cele două aspecte importante:
descrierea datelor şi structurilor de date, exprimarea comenzilor
elementare (instrucţiuni). Se prezintă mai jos, în fiecare paragraf, câte
un limbaj de programare, ordonate după gradul de extindere şi frecvenţa
de utilizare de către programatori.
1. C (pronunţat ca în engleză „SI”) este dezvoltat de Kernigan şi Ritchie
la Bell Laboratories în anul 1972, fiind ulterior limbajului denumit B.
C a fost dezvoltat pentru crearea de programe apropiate de maşină
(sisteme de operare, driver-e) fiind legat de sistemul de operare UNIX.
Popularitatea sa cât şi standardizarea de către ANSI l-au impus ca
limbajul cel mai larg acceptat de programatori. C este un limbaj
compilat, cu funcţii pentru diferite prelucrări (intrare/ieşire,
matematice, etc.) conţinute în fişiere biblioteci („library”), ce pot fi
accesate din program. Programele C sunt compuse dintr-una sau mai
multe funcţii definite de programator, C fiind considerat un limbaj
structurat. Varianta C++ (dezvoltată de Bjarne Stroustrup) este un
limbaj de programare orientat pe obiecte, fiind extins cu directive
pentru crearea şi manipularea obiectelor. Există alte diverse variante
îmbunătăţite, ca Visual C++ (cu mecanisme de creare a interfeţelor
grafice şi lucrul în reţea), C# (pronunţat „si şarp”, cu servicii pe Internet
în categoria .net – „dot net”).
2. Java (pronunţat „giava”), dezvoltat de firma SUN Microsystems în
scopul declarat de a realiza aplicaţii pentru Internet prin compilator şi
biblioteci gratuite, este similar limbajului C++ (orientat pe obiecte şi
instrucţiuni identice), însă compilarea produce un „cod de octeţi” (nu
cod executabil). Este extins pentru lucrul cu fire de execuţie (secţiuni
de program ce pot rula independent), tratarea excepţiilor (erori, sau
întreruperi), securitate (execuţia se face prin intermediul „Java Virtual
Machine” care interpretează şi controlează „codul de octeţi” spre a nu
114
permite acţiuni ostile – de ex. prin acces direct la resursele sistemului),
portabilitate (poate rula pe orice calculator care prezintă „Java Virtual
Machine”).
3. JavaScript este un limbaj scriptural care adaugă paginilor web
facilităţi de animaţie şi de interacţiune cu utilizatorul (diferit şi folosit
mult mai des decât Java pentru programarea părţii client web). Este
standardizat sub numele de ECMAscript.
4. HTML (Hyper Text Markup Language) este un limbaj scritpural de
descriere a documentelor, folosind marcaje ce specifică acţiuni de
formatare înscrise chiar în textul (conţinutul) documentului. Paginile
Web sunt descrise prin acest limbaj, permit în plus legături cu alte
pagini distribuite spaţial pe alte maşini (site-uri); astfel se poate
considera că textul documentului nu mai este înscris pe o foaie cu două
dimensiuni, ci prezintă şi adâncime – către alte texte (este hiper-text).
Informaţiile din pagina cu text şi imagini sunt descărcate („download”)
şi afişate pe maşina utilizatorului. În aceste pagini, acţiunile de
formatare privesc modul de scriere a textului (litere îngroşate, cursive
etc.), structura documentului (denumiri de modul, paragrafe, tabele) şi
interacţiunea cu utilizatorul (de exemplu prin formulare ce permit
transferul de date către site – „upload”).
5. BASIC este un limbaj creat iniţial pentru începători (chiar dacă de
fapt era destul de greoi şi nestructurat). Ulterior, limbajul a fost
perfecţionat iar în versiunea Visual Basic este orientat pe obiecte şi
prezintă instrumente de programare vizuală a interfeţelor utilizator
grafice, fiind folosit şi pentru aplicaţii în Internet sau lucrul cu baze de
date.
6. XML (eXtensible Markup Language) este o extensie a limbajelor din
familia SGML, în care marcajele nu mai sunt predefinite şi stricte ci pot
fi definite chiar de programator pentru a descrie diverse tipuri de date
dar şi prelucrări. Este utilizat în principal pentru partajarea informaţiilor
şi textelor structurate în Internet.
7. Pascal este creat de Niklaus Wirth în anii ’70, ca limbaj procedural
structurat şi concis. Este utilizat pentru simplitatea, dar şi varietatea
descrierii tipurilor de date şi a exprimării comenzilor (iniţial având chiar
115
scop didactic). Versiuni ulterioare înglobate în limbajul Delphi permit
programare obiectuală şi vizuală.
8. SQL (Structured Query Language) este creat de firma IBM şi adoptat
ca standard de ISO (International Standards Organization). SQL
(pronunţat „sicuăl”) este un limbaj de programare declarativ pentru
baze de date relaţionale, oferind exprimări simple şi intuitive de
interogare precum şi de manipulare a tabelelor, formularelor şi
rapoartelor în aplicaţii cu baze de date.
9. FORTRAN (FORmula TRANslation) este primul limbaj de nivel
înalt, creat de John Backus pentru a asigura independenţa de maşină,
utilizat mai ales pentru calcule ştiinţifice. Ca şi alte limbaje de
programare a evoluat, având şi facilităţi visuale.
10. COBOL (COmmon Business-Oriented Language) dezvoltat în
anii ’60 şi larg folosit pentru aplicaţii de gestiune economică şi
administrativă. Este un limbaj procedural, compilat, care în primele
versiuni era un bun exemplu de limbaj nestructurat; ulterior a fost
perfecţionat dar pe parcurs este eliminat de către mediile de baze de
date – instrumente simple şi puternice pentru aplicaţii de gestiune.
11. PERL (Practical Extraction and Report Language) este un limbaj
scriptural creat de Larry Wall ca o combinaţie între limbaj de comandă
(v. Bourne Shell) şi C, pentru extragerea informaţiei din texte şi
generarea de rapoarte. Este folosit în special pentru generare pagini
HTML, pentru programe de lucru pe servere Web (programe CGI),
pentru animaţie sau interacţiune cu utilizatorul prin formulare în pagini
web.
12. PHP este un limbaj scriptural similar cu PERL, ce poate fi
înglobat în codul HTML al paginilor Web. Este folosit pentru aplicaţiile
pe partea server web, pentru construirea paginilor web dintr-o bază de
date SQL (Oracle, MySQL). Prezintă una din cele mai mari biblioteci
„open-source” (cod public şi liber de a fi utilizat, modificat sau
distribuit).
13. LISP (LISt Processing) este primul limbaj funcţional, fiind
dezvoltat de John McCarthy de la MIT în anii ’50. de orientat pe
structuri de date (liste). Este folosit pentru aplicaţii de Inteligenţă
116
Artificială, în probleme ce implică raţionament calitativ sau multe date
eterogene – potenţial eronate dar care trebuie refăcute, probleme de
planificare şi antrenare (învăţare) a maşinii.
14. Prolog este un limbaj care exprimă premize (fapte de start într-un
raţionament – denumită „logica”), prin care interpretorul Prolog
(denumit „control”) încearcă să demonstreze o propoziţie declarată
peste premize.
15. Asamblare este limbajul maşinii într-o notaţie inteligibilă
omului. La compilarea unui program scris în limbaj de asamblare,
conversia se face direct în coduri binare, fiindcă instrucţiunile
limbajului se referă la acţiuni elementare ale procesorului (încărcare de
regiştri, salturi condiţionate, operaţii pe bit). Este utilizat pentru scrierea
programelor de control direct al perifericelor sau pentru operaţii legate
de echipament.
16. Bourne Shell este un limbaj scriptural care permite crearea de
fişiere de comenzi (în loturi - „batch”) pentru sistemul de operare UNIX
(alte limbaje similare sunt sh, bash, ksh, csh). În general, orice sistem
de operare prezintă limbajele de comandă (limbaje shell), necesare
lucrului imediat cu calculatorul, comenzile fiind executate de un
„interpretor de comenzi” furnizat cu sistemul de operare.
Se face observaţia că limbajul de „Asamblare”, înscris în lista de mai
sus, este o categorie de limbaje nu un limbaj anume, însă datorită
extinderii calculatoarelor de tip IBM PC se subînţelege, în general, ca
pentru limbajul familiei de procesoare Intel 80x86; există limbaje de
asamblare pentru diferite procesoare (de la diferiţi producători şi pentru
diferite generaţii): Intel 80x86, Motorola 680x0, PowerPC, etc.
Utilizarea unui limbaj de programare depinde de scopul şi tipul
programării (indicate succint în inventarul de mai sus) dar şi de
obişnuinţa sau preferinţele programatorului.
Clasificări ale limbajelor de programare
O primă clasificare a limbajelor se poate face după paradigma de
programare – adică după ideea generală de soluţionare a problemei.
Astfel, se deosebesc:
117
a. Programare procedurală – priveşte datele şi prelucrările ca entităţi
distincte (declarate separat) şi foloseşte conceptele de modul pentru
prelucrare şi orizont de vizibilitate pentru variabile. Un modul este
format din unul sau mai multe subprograme iar o variabilă (dată
declarată de anumit tip) este vizibilă (accesibilă) în cadrul unui modul
dar nu şi din afara sa; modulele pot fi preluate din biblioteci de
subprograme predefinite (prefabricate de producătorul compilatorului).
Programarea procedurală este realizată prin limbajele C, Pascal, Delphi,
FORTRAN, COBOL.
b. Programare imperativă – în care se furnizează calculatorului o listă
de instrucţiuni şi un context de memorie (considerat drept starea
programului la un moment dat) care este modificat printr-o comandă în
alt context (altă stare, cu alte valori de variabile în memorie).
Funcţionarea procesorului este de fapt imperativă, el urmărind pas cu
pas lista de instrucţiuni din program. Limbajele de programare uzuale
sunt imperative (FORTRAN, C, Perl), cele obiectuale (C++, Java)
adăugând doar noi facilităţi de lucru.
c. Programarea declarativă – diferă de cea imperativă prin faptul că în
program se descrie pentru calculator un set de condiţii, lăsând apoi
calculatorului sarcina să le satisfacă. În programarea declarativă, se
descriu relaţii între variabile în termeni de „reguli de inferenţă” (reguli
de obţinere a unor noi valori din cele existente). Calculatorul
(înţelegând aici un program complex de tipul unui motor de inferenţă
sau unui mediu de baze de date ce rulează pe calculator) aplică un
algoritm fixat şi interpretează relaţiile spre a produce un rezultat.
Limbaje uzuale din categoria declarativă sunt Prolog şi SQL.
d. Programarea funcţională – consideră prelucrarea drept evaluarea
funcţiilor matematice. Expresiile, în această paradigmă, sunt formate
din funcţii ce combină valori iar execuţia nu implică o secvenţă de
comenzi fiindcă programul defineşte CE şi nu CUM se prelucrează
datele. De fapt limbajele de programare nu pot fi pur funcţionale pentru
că rulează pe o maşină în paradigmă imperativă; se poate aminti Lisp
ca limbaj funcţional, în care prelucrările sunt structurate similar
structurării datelor (de obicei în liste).

118
O clasificare a limbajelor de programare des întâlnită, consideră nivelul
limbajului, relativ apropiat (sau depărtat) de formularea limbajului
maşinii (mai precis al procesorului, ca dispozitiv electronic, binar).
Tabel 3. Clasificare a limbajelor de programare după nivel
Nivelul Caracteristici ale limbajului Exemple uzuale
limbajului
jos Instrucţiunile sunt apropiate de limbajul maşinii, Asamblare
fiind translatate direct în instrucţiuni maşină de
către asamblor (un compilator simplu)
mediu Instrucţiunile sunt transpuse în limbaj de C, BASIC,
asamblare prin compilator, oferind în plus Pascal, COBOL
biblioteci şi servicii de configurare a resurselor
maşinii la execuţie
înalt – compilat Instrucţiunile sunt transpuse într-un cod Java, Visual
intermediar folosind un interpretor, permiţând Basic, Visual C
astfel controlul codului şi portabilitatea sa pe orice
maşină
înalt - scriptural Instrucţiunile pe linii de program sunt interpretate Bourne Shell,
şi executate fiecare în parte; liniile se pot grupa în HTML, Perl,
loturi şi executate ca „fişier (text) de comandă”
foarte înalt Structura limbajului este apropiată limbajului SQL
uman, descrie o metodă de implementare; sunt
limbaje declarative sau pentru Inteligenţa
Artificială

În Tabel 3 se prezintă succint clasificarea după nivel a limbajelor, care


însă trebuie înţeles ca fiind din ce în ce mai apropiat de nivelul uman,
deci mai simplu pentru om, nu mai dificil.
O a treia clasificare se poate face după modul de declarare a tipurilor
de date, în limbaje cu: tipuri statice de date – tipurile declarate sunt
stricte şi verificate de compilator (exemple C, C++, Java, Pascal), tipuri
dinamice de date – în care datele de tipuri diferite pot fi interschimbate,
interpretorul nesemnalând eroare la o dată nouă cu tip nedeclarat
(exemple Lisp, JavaScript, Prolog).
Compilatoare şi interpretoare
Programele în limbaj înalt sunt relativ uşor de înţeles de către om, dar
nu pot fi executate direct de către calculator. Există două modalităţi
principale în care un astfel de program poate fi pus în execuţie: prin
119
compilare sau interpretare. Astfel, limbajele de programare permit
realizarea codului ce va fi executat după traducerea sa în limbajul
maşină prin:
 Compilare –traducerea are loc pentru întregul set de comenzi
(descrise ca un tot unitar, într-un „program”). Limbaje din această
categorie sunt C, C++, Java, Pascal, BASIC, FORTRAN, COBOL.
 Interpretare – traducerea are loc linie cu linie (câte o comandă la un
moment dat), de la prima până la ultima din setul dat. Limbaje din
această categorie se numesc limbaje scripturale, iar textul cu comenzile
se numeşte script, „fişier de comenzi” sau „lot de comenzi” (în engleză
„batch”). Exemple de limbaje script sunt HTML, Perl, PHP, limbaje de
comandă ale sistemului de operare („shell” – Bourne Shell, bash, csh).
Compilarea este traducerea (translatarea) unui program în limbaj de
nivel înalt, numit program sursă, într-un program în cod maşină, numit
program obiect.

Compilatorul este un program care se execută pe calculator. El primeşte


ca date de intrare programul sursă şi produce ca date de ieşire programul
obiect, în cod maşină (binar). Acesta se stochează pe un suport de
informaţie extern (pe disc) şi poate fi ulterior executat.
Interpretorul este un program care execută direct programul sursă scris
în limbaj de nivel înalt. Executarea se face instrucţiune cu instrucţiune.
Se citeşte o instrucţiune din programul sursă, aceasta este translatată în
cod maşină care este transmis spre execuţie procesorului, apoi se trece
la instrucţiunea următoare din programul sursă şi se repetă ciclul.
Dezavantaj: execuţia este mai lentă decât la programele compilate,
deoarece se consumă timp pentru interpretare.
Un avantaj important al programelor scrise în limbaj înalt este că ele
pot fi executate, cel puţin în principiu, pe orice tip de calculator.
Întrucât, codul maşină diferă de la un tip de calculator la altul, este
necesar câte un compilator sau un interpretor al limbajului respectiv
pentru fiecare tip de calculator pe care se intenţionează să fie executat

120
programul. Se spune că programul sursă este portabil, dar nu şi
programul obiect.
Unele limbaje de programare, cum sunt Fortran, Cobol, Pascal, C, C++
şi altele, sunt compilate. Avantaj: executarea programului obiect se face
cu viteza mare, respectiv cu viteza de lucru a procesorului calculatorului
pe care se execută.
Alte limbaje, cum sunt Basic, Python, Pearl, Ruby şi altele sunt
interpretate. Avantajul este că pot fi utilizate în regim interactiv: imediat
ce utilizatorul a introdus o instrucţiune de la consolă, ea poate fi
executată de către interpretor.
Există limbaje care pot fi executate în ambele moduri dar, de obicei, au
specific doar unul din ele. Limbajele script pot coexista pe aceeaşi
maşină; astfel, pentru selecţia tipului de limbaj efectiv utilizat, prima
linie din lotul de comenzi script conţine o directivă a sistemului de
operare ce indică în clar limbajul la care se referă fişierul de comenzi.
Avantajul compilatoarelor este acela că programul în cod executabil
poate fi rulat direct pe maşină, imediat după încărcarea lui în memorie
de pe suportul extern (disc).
Un caz special îl constituie limbajul Java, care este interpretat după ce
este „compilat” în aşa-numitul „cod de octeţi” numit bytecode, care este
apoi interpretat pe orice maşină ce prezintă maşina virtuală Java („Java
Virtual Machine”). Acest program este executat de către un interpretor,
care converteşte instrucţiunile maşinii virtuale Java în instrucţiuni ale
procesorului calculatorului pe care se execută programul. Avantaj:
bytecode-ul poate fi executat pe orice calculator pe care există JVM
(portabilitate).

7.1.3. Sintaxa și semantica limbajelor de programare


Fiecare limbaj de programare, ca orice alt limbaj, se caracterizează prin
anumite reguli de scriere corectă, numite reguli de sintaxă.
Orice instrucţiune a limbajului are o formă şi o semnificaţie. Sintaxa se
referă numai la forma instrucțiunii, in timp ce semnificația este de
domeniul semanticii. Semantica se referă la modul in care trebuie
interpretată instrucţiunea respectivă. Este evident că, atunci când se
121
concepe un program, este necesar să se acorde atenţie atât sintacticii,
cât și semanticii.
Dacă într-un program nu sunt respectate regulile de sintaxă,
compilatorul sau interpretorul sesizează anomaliile şi le semnalează sub
forma unor mesaje de erori de sintaxă. În astfel de situații, codul de
octeţi al programului respectiv nu va mai fi generat. Programatorul
trebuie sa remedieze erorile de sintaxă semnalate şi să ceară repetarea
compilării sau, în cazul regimului interactiv, să reintroducă
instrucţiunea pentru interpretare. Acest procedeu se repetă, până când
nu vor mai fi constatate erori de sintaxă.
Insistăm asupra faptului că la compilare sau interpretare sunt semnalate
numai erorile de sintaxă. Dacă un program este corect sintactic, dar este
conceput greşit, va fi executat de către calculator, dar rezultatul obţinut
nu va fi cel scontat. Corectitudinea conceperii programului este în
întregime responsabilitatea programatorului.

7.1.4. Ingineria programării


Termenul „inginerie” duce cu gândul imediat la tehnică şi industrie. Aşa
cum termenul „tehnologie” din acronimul TIC nu se referă la tehnologii
în industria metalurgică, ci doar la suma de tehnici şi mijloace din
informatică, termenul „inginerie a programării” se referă la tehnică
drept abordare sistematică, de producţie eficientă a programelor pe
calculator (în mod industrial), nu la un domeniu ingineresc (metalurgie
spre exemplu). De fapt, etapele de realizare a programelor (prezentate)
constituie esenţa acestei abordări sistematice.
Ca şi la alte produse, calitatea produselor program (a software-ului) nu
este doar un deziderat de piaţă ci şi un scop impus de toleranţele în care
produsul trebuie să-şi realizeze utilităţile. Astfel, în timp ce pentru o
maşină se spălat automată toleranţa de 2% în alimentarea cu detergent
este admisă (şi considerată foarte bună), un sistem de contabilitate care
are erori de 2% este inacceptabil. De aceea, sunt necesare şi pentru
software modalităţi de măsurare (metrici) și evaluare a performanţelor
şi de aici a calităţii produselor program.

122
Ingineria programării este abordarea sistematică, disciplinată şi
cuantificată a dezvoltării, operării şi întreţinerii produselor program.
Definiţia de mai sus subliniază că această abordare este o aplicare a
ingineriei în programare (de aici şi numele): aplicând tehnicile şi
practicile de inginerie a programării se creează programe de bună
calitate, cu mare productivitate, cu întreţinere şi dezvoltare facile.
Dezideratul ingineriei programării este satisfacerea cerinţelor clientului
produsului software, respectând restricţii de calitate, cost şi durată, prin:
i) utilizarea unei metodologii clare începând cu faza de analiză, apoi cea
de proiectare şi de implementare a programelor;
ii) conducerea activităţilor, desfăşurate pe parcursul proiectul, conform
unor principii de management stricte („project management”);
iii) analiza şi evaluarea performanţelor codului, a structurii de module,
funcţionării şi utilizării produsului;
iv) documentarea clară şi completă a funcţionării şi utilizării produsului
software;
v) urmărirea produsului livrat la beneficiari şi pe întreaga durată a
ciclului său de viaţă, pentru actualizarea cu versiunile noi şi
îmbunătăţite.
Factori de performanţă ale produselor software sunt: funcţionalitatea
(în ce măsură produsul îndeplineşte funcţiile propuse), uşurinţa în
utilizare (simplitatea de învăţare şi operare), fiabilitatea (funcţionarea
corectă şi robustă – tolerantă la operare sau date greşite), eficienţa
(privind resurse utilizate – memorie puţină, viteză de execuţie),
flexibilitate (uşurinţa de adaptare şi modificare după cerinţe),
portabilitate (posibilitatea de transfer pe alte maşini şi sisteme de
operare, respectarea standardelor), întreţinerea comodă (acces la cod
sursă şi compilare, modificare uşoară).
Ingineria programării oferă metrici (adică sisteme de măsurare) de
evaluare pentru:
 produs – privind proiectarea, codul sursă şi cazurile de test ale
programului;

123
 procesul de dezvoltare – privind activităţile de analiză, proiectare
şi programare;
 persoanele implicate în proiect – privind eficienţa individuală a
proiectanţilor, programatorilor şi testorilor.
Pentru aplicaţii mari, organizarea proiectului implică un şef de proiect
(contribuie la proiectare şi dezvoltare în proporţie de 30%, distribuie
sarcini şi coordonează coechipierii), adjunct (planifică şi coordonează
programarea şi testele, asigură calitatea produsului), secretar de proiect
(execută sarcini administrative privind protocoale cu beneficiarul,
biblioteci, gestiunea termenelor şi costurilor), programatori /
dezvoltatori (specialişti în medii şi limbaje de programare sau în
instrumente de dezvoltare software).
Analiza, proiectarea şi implementarea respectă o metodologie specifică
(uzual din categoriile „structurată” sau „obiectuală”), iar testarea se
execută atât în condiţii de laborator cât şi pe cazuri reale. Întreţinerea
aplicaţiei este foarte importantă, aşa cum reiese din proporţia uzuală a
costurilor pentru software: Analiza – 10%, Proiectarea – 10%,
Implementarea – 10%, Testarea – 20%, Întreţinerea – 50%.
O importanţă deosebită o are documentaţia, care trebuie întocmită pe
parcursul proiectului la fiecare etapă. Documentaţia se adresează
dezvoltatorilor, utilizatorilor şi personalului de întreţinere.
Documentaţia ce trebuie întocmită a fost deja amintită la fazele ciclului
de viaţă ale programului. De remarcat că programele trebuie amplu
documentate (comentate) chiar în codul sursă, unde algoritmul trebuie
explicat.

7.2. Tehnici şi instrumente de realizare a programelor


Istoric, în evoluţia proiectării aplicaţiilor şi a programării, au existat
următoarele abordări – din care au rezultat metodologii specifice:
i) Proiectarea / programarea nestructurată – în care aplicaţia nu este
gândită şi realizată modular ci ca un tot, cu salturi interne greu de
controlat şi urmărit. Dezvoltarea şi întreţinerea programelor este extrem
de ineficientă şi greoaie. Această abordare se poate compara cu
124
generaţia televizoarelor cu tuburi electronice („lămpi”) şi componente
interconectate prin sârme (formând uneori „ghemuri”).
ii) Proiectarea / programarea structurată – în care aplicaţia este
divizată în module specializate pentru anumite operaţii, asamblate apoi
(mai precis apelate) de către aplicaţia „principală”. Abordarea se poate
compara cu generaţia televizoarelor realizate pe module specializate
(modul alimentare, selectare canale, modul sunet etc.) montate pe placa
de bază. Avantajele provin din faptul că pentru depanarea sau
modificarea unui modul se lucrează numai cu acesta, nu cu întreg
aparatul (respectiv întreaga aplicaţie). În programare se elimină
salturile necondiţionate, fiindcă chiar din etapa de proiectare
prelucrările sunt ierarhizate, astfel încât un modul să „apeleze” un alt
modul specializat pentru o acţiune anume.
La aceste abordări datele sunt analizate separat de prelucrări. În cazul
ii) modulele sunt realizate prin subprograme (funcţii), iar datele sunt
declarate separat de prelucrări. Declararea datelor se face prin exprimări
conform celor menționate anterior, acestea fiind considerate „materii
prime” pentru funcţiile care le prelucrează. Proiectarea se bazează pe o
parcurgere „top-down” (de la mare la mic) a problemei, pornind de la
ansamblu şi apoi trecând la părţi, module; pentru fiecare din acestea se
discriminează datele şi prelucrările corespunzătoare.
iii) Proiectarea / programarea orientată obiect – în care aplicaţia se
construieşte din obiecte care încapsulează proprietăţi şi metode – adică
informaţii (date) şi prelucrări (operaţii asupra datelor). În acest mod, la
analiză şi proiectare se concep clase de obiecte similare celor din lumea
reală a problemei de rezolvat, cu „modul lor de utilizare”, iar rezolvarea
problemei se face prin manipularea obiectelor create la implementare.
Abordarea se poate compara cu viziunea utilizatorului de televizoare,
în care clasa de obiecte „televizor” trebuie să deţină ecran şi legătură
prin cablu (ca informaţii - date) şi butoane de acţionare pornit/oprit,
reglaj volum, comutare canale, etc. Evident, rămâne în sarcina
producătorului să realizeze linia de fabricaţie a clasei de televizoare
(acesta este programatorul) şi apoi magazinului să vândă utilizatorului
un televizor anume (acesta este declararea unui obiect a de tip
„televizor” aşa cum se declară o dată iniţializată).
125
iv) Proiectarea / programarea cu componente – în care aplicaţia se
construieşte prin componente gata fabricate. Abordarea este similară
construirii televizorului din circuite integrate specializate, care doar se
asamblează în modul dorit spre a produce un televizor CRT, TFT sau
LED, cu teletext sau fără etc. Aşa cum componentele fizice vin de la
fabrică, componentele software vin de la producători software şi sunt
utilizate de programatori pentru a crea produsul dorit.
La ultimele două abordări, proiectarea decurge „bottom-up” (de la mic
la mare) adică se face inventarul de obiecte sau componente la
dispoziţie şi apoi se „construiesc” aplicaţii prin asamblarea acestora.
Datele şi programele nu mai au o delimitare evidentă: pentru
programator datele pot deveni programe şi programele – date.
Continuând similitudinea cu producţia de televizoare, generaţia iii)
reprezintă crearea de televizoare artizanale – fiecare producător
realizează televizoare în tehnologie proprie, pe când cu iv) producătorii
folosesc componente standard pentru părţi de televizor, oferind
înfăţişare şi performanţe speciale produselor proprii faţă de ale altor
producători. Ultimele două generaţii permit şi stimulează industria
software, fiindcă proiectantul şi programatorul nu mai sunt implicaţi în
atâtea amănunte de lucru la fiecare program în parte (amănunte pe care
nu le pot stăpâni perfect şi nici nu au productivitate dacă sunt multe sau
necesită mulţi coechipieri), ci se pot orienta pe producţie, pe nevoile
clienţilor şi pe cererea pieţei. Proiectantul şi programatorul au „în spate”
o industrie de componente pe care trebuie doar să ştie să le asambleze
pentru a face un produs la comandă.
v) Proiectarea / programarea cu agenţi – în care aplicaţia (ca agent)
evoluează de sine stătător şi comunică cu alte aplicaţii (alţi agenţi)
pentru a-şi îndeplini misiunea. Spre exemplu, există programe agent de
căutare care pot „călători” prin Internet, se pot stabili la anumite site-
uri şi comunica cu alţi agenţi spre a găsi informaţiile pentru care au fost
creaţi şi lansaţi în spaţiul cibernetic.
În timp ce pentru primele patru generaţii aplicaţia se lansa şi se executa
prin operarea directă a omului la program – adică iniţiativa aparţine
omului, generaţia v) introduce programe cu iniţiativă, adică programe
care după lansare au existenţă şi acţiuni independente de omul în contul
126
căruia execută prelucrările. Programul-agent se poate multiplica,
comunică cu alţi agenţi şi cu „baza”, formează grupuri şi chiar stabileşte
relaţii sociale şi limbaje de comunicare între agenţi; se poate spune că
din „obiecte” informatice aceste tipuri de date devin „fiinţe”
informatice.
La inventarul abordărilor prezentate mai sus pentru proiectarea
aplicaţiilor, este necesar să se adauge încă două – care nu aduc
metodologii conceptual noi ci doar specifice unor instrumente frecvent
folosite în realizarea aplicaţiilor:
vi) Proiectarea aplicaţiilor cu Baze de Date – în care datele se
structurează în tabele, adică mulţimi de articole. De fapt, un articol (ca
linie din tabel) reprezintă un obiect iar tabelul colecţia de obiecte de
acelaşi fel din problema de rezolvat – adică tabelul reprezintă o entitate
(o categorie conceptuală de obiecte). Structura de entităţi cu relaţii între
ele formează modelul problemei de rezolvat, iar aplicaţia manipulează
datele din tabele cu comenzi specifice acestei reprezentări.
Metodologiile de proiectare a aplicaţiilor cu baze de date urmează
etapei de analiză pentru aceste tip de aplicaţii, pentru care se reamintesc
două metodologii MERISE şi SSADM. Proiectarea datelor şi
prelucrărilor se realizează separat – datele ca tabele iar prelucrările ca
operaţii cu acestea, vizând direct instrumentele software cu care se vor
realiza aplicaţiile.
vii) Proiectarea aplicaţiilor Web (servicii Internet) – în care datele
sunt, de obicei, pagini cu informaţii ce trebuie vizionate de utilizatori
prin Internet sau datele provin de la utilizatori prin formulare
completate de către aceştia, iar prelucrările sunt operaţii de navigare,
afişare şi actualizare a datelor (stocate adesea în baze de date).
Proiectarea aplicaţiilor Web se bazează pe arhitectura Client-Server, pe
principii de marketing, impact estetic şi emoţional, precum şi pe
utilizarea sistematică a instrumentelor de proiectare şi editare de pagini
web (cu imagini, formulare, animaţii şi hiperlegături)
Ultimele două abordări de proiectare sunt preferate de către mulţi
producători de produse software (firme, profesionişti în informatică sau
chiar practicieni în informatică proveniţi din alte domenii) pentru că
cele mai multe aplicaţii privesc două activităţi umane foarte frecvente:
127
 gestiunea de resurse – fie ele bunuri de consum sau industriale,
resurse umane sau financiare, mijloace de transport sau documente, care
se pot stoca şi manipula folosind baze de date;
 comunicarea informaţiilor şi interacţiunea prin Internet între
persoane, între firme şi persoane (B2C – „Business to Client”) sau între
firme (B2B – „Business to Business”) – pentru activităţi economice,
sociale, administrative sau educaţionale.
Din aceste abordări au rezultat tehnici şi instrumente specifice de
programare şi de realizare a aplicaţiilor, cu influenţe în toate etapele
ciclului de viaţă al programului.

7.2.1. Caracteristici ale programării orientate obiect


Fiindcă cea mai mare parte a aplicaţiilor actuale folosesc conceptul de
obiect şi sunt realizate obiectual, vor fi prezentate în continuare
caracteristici ale programării obiectuale, pentru familiarizarea cu
termenii şi abordările întâlnite în submodulele următoare.
Programarea orientată obiect (POO) se bazează pe clase, ca
abstractizări ce reunesc date şi prelucrări posibile asupra lor. Un obiect
realizat (instanţiat) într-o clasă dată, prezintă anumite valori pentru date
(identificate ca proprietăţi ale obiectului) şi o anume comportare
(identificată prin metode de modificare a proprietăţilor).
POO vizează, în principal, următoarele aspecte:
 crearea şi manipularea de obiecte – prin care se modularizează
acţiunile programului încă din faza de analiză, atunci când se identifică
obiectele în problema reală;
 refolosirea codului – prin care obiecte odată codificate se pot reutiliza
ori de câte ori este necesar, fiind grupate în colecţii (denumite biblioteci
sau pachete).
Aceste deziderate se obţin ca urmare a caracteristicilor programării
obiectuale, cele mai importante fiind:

128
a. Abstractizarea – prin care un obiect devine modelul unui „actor” ce
prezintă o stare (şi o poate modifica), execută acţiuni sau comunică cu
alte obiecte din sistem.
b. Încapsularea – prin care accesul la proprietăţile obiectului se poate
face numai prin metodele definite. Obiectul prezintă o interfaţă către
alte obiecte, prin care se specifică modalităţile sale de manipulare.
c. Moştenirea – prin care o clasă de obiecte poate fi baza altor clase
(denumite clase derivate), proprietăţi şi metode esenţiale ale primei
fiind preluate în întregime de celelalte. Se realizează astfel
specializarea claselor (şi obiectelor).
d. Polimorfismul – prin care o metodă a unui obiect din clasă derivată
produce o comportare diferită faţă de cea a clasei de bază.

7.2.2. Tipuri şi structuri de aplicaţii


Structura unui program a fost prezentată, indicând părţile specifice ale
programului principal, pentru un limbaj de programare comun
(procedural şi cu tipuri statice de date) cum sunt C, Pascal sau Java.
Aplicaţii
În sine, o aplicaţie cuprinde un program principal care are rol de
„dispecer” pentru prelucrările efective ale aplicaţiei. Lansarea aplicaţiei
se realizează la iniţiativa utilizatorului, care înscrie o comandă (în forma
text – linie comandă) sau accesează o pictogramă într-o interfaţă
grafică. Execuţia aplicaţiei începe, în general, cu prezentarea unei
interfeţe de interacţiune cu omul (printr-un interpretor de comenzi sau
meniu). De obicei, o aplicaţie este un program compilat şi stocat în
forma executabilă, fiind lansat (adică încărcat în memoria de lucru şi
executat pe întreg lotul de instrucţiuni) la iniţiativa utilizatorului.
Structura generică a unei aplicaţii cuprinde două părţi generice:
colecţiile de date („data” - adică valori cu care se lucrează) şi logica de
prelucrare („business logic” - adică acţiunile asupra datelor). De
exemplu, o aplicaţie bancară conţine o parte privitoare la conturi şi
valorile lor, o parte privitoare la operaţiuni de transfer între conturi.

129
Aplicaţii de Baze de Date
O categorie specială de aplicaţii sunt create şi funcţionează prin
intermediul Sistemelor de Gestiune a Bazelor de Date. Aceste aplicaţii
organizează datele în structuri de tip articol care apoi sunt grupate în
„tabele” ce pot fi stocate ca fişiere (pe suport extern – disc). Pentru
prelucrarea datelor, se folosesc programe scrise în limbaje proprii
SGBD sau în limbajul standard SQL. Conceptual, o aplicaţie cu baze
de date manipulează „obiecte” de tipurile:
 tabel – structura pe linii (articole) şi coloane (câmpuri ale articolelor)
ce stochează datele, cu mijloace de modificare şi control a valorilor
acestora;
 interogare – exprimarea cererii de extragere, după condiţii impuse, a
unui set de date din unul sau mai multe tabele, folosind un limbaj (de
ex. SQL) sau o grilă (un tabel generic prin care cererea este ilustrată cu
un exemplu);
 raport – document text generat automat, conţinând date sintetice şi
analitice obţinute din tabele sau interogări, prezentate în mod
profesionist (cu antet, subsol, etc.);
 formular – machetă de încărcare şi consultare a datelor, pentru
interacţiunea comodă cu utilizatorul (în mod grafic, prin câmpuri şi
indicaţii pe loc);
 modul – secţiune de program (scris în limbajul de manipulare a
datelor) care realizează prelucrări complexe, eventual combinaţii de
interogări, formulare şi rapoarte generate conform logicii de prelucrare
a aplicaţiei.
Programele sunt interpretate sau compilate în cod intermediar, astfel că
execuţia lor nu poate avea loc decât în prezenţa mediului de baze de
date (SGBD) care este rezident în memorie şi coordonează toate
acţiunile din program.
O bază de date este constituită din mai multe tabele, cu legături între
ele, pe lângă care se prevăd module de prelucrare specifice aplicaţiei
vizate. Cele mai uzuale aplicaţii cu baze de date privesc gestiunea
resurselor într-un domeniu dat: contabil, financiar-bancar, mijloace
130
fixe, stocuri (magazii sau magazine), sisteme de vânzări, resurse umane.
Multe aplicaţii în Internet au în fundal un server de baze de date
(maşinile de căutare, magazine virtuale etc.).
Aplicaţii client-server
Există aplicaţii în reţele de calculatoare care trebuie să asigure
transferul de date şi prelucrarea acestora la distanţă. Datele sunt stocate
la un punct central, pe un calculator care le gestionează printr-un
program denumit server pentru că oferă servicii (de acces şi prelucrare
date) la distanță, rulând în permanenţă şi aşteptând cereri de la
utilizatori. Pe maşina locală a fiecărui utilizator, există un program
denumit client prin intermediul căruia utilizatorul poate solicita servicii
serverului distant; datele „se descarcă” („download”) de la server pe
maşina utilizatorului, unde sunt prelucrate local şi afişate (prin interfaţa
utilizator) de către programul client. Structura de aplicaţie cu două părţi
este denumită, în jargonul informatic, 2-tier.
Primele aplicaţii în reţea realizau toate prelucrările pe o maşină centrală
(numită gazdă), iar maşina locală era folosită doar pentru afişare text şi
preluarea datelor de la utilizator (terminal), adică aveau „o parte” 1-tier.
Avantajele modului de lucru 2-tier provin din faptul că datele pot fi
gestionate şi asigurate mai bine într-un singur punct (nu distribuite în
mai multe puncte), dar prelucrările nu încarcă doar maşina centrală, ci
şi maşinile locale (ele fiind mai multe şi încărcate temporar). În această
structură, partea client conţine programele de prelucrare locală şi de
prezentare a rezultatelor către utilizator, complementar părţii server –
care asigură prelucrări de acces şi transfer a datelor centralizate. Cele
două piese software, server şi client, conlucrează şi comunică prin
intermediul unui protocol (ca un limbaj cu set de reguli pentru
formularea şi servirea cererilor), iar comunicaţia fizică se realizează
prin infrastructura de comunicaţie (reţea de calculatoare).
Un exemplu uzual de aplicaţie client-server este WWW, în care partea
server găzduieşte paginile web (şi programele de interacţiune cu
utilizatorul) iar partea client o constituie navigatorul Internet
(„browser” ca MS Internet Explorer, Mozilla Firefox, Safari sau Google
Chrome). Protocolul de comunicaţie între cele două piese software

131
server şi client este HTTP (HyperText Transfer Protocol) şi apare
indicat chiar în adresa de acces (URL) a serverului.

Figura 23. Arhitectura Client-Server 2-tier (cu două părţi)


Varianta în care partea server conţine pe aceeaşi maşină și logica de
prelucrare şi datele este ilustrată în figura 23 şi are două părţi (denumită
de aceea arhitectură 2-tier). Un dezavantaj al acestei arhitecturi este
siguranţa precară a datelor în cazul când un utilizator rău intenţionat,
având acces la maşina server, poate depăşi mijloacele de verificare
efectuate de logica de prelucrare centrală (programul server) şi are
acces direct la datele stocate pe această maşină.

Figura 24. Arhitectura Client-Server 3-tier şi n-tier


Pentru creşterea siguranţei accesului la date, este indicat ca partea
server să fie separată în alte două părţi: una care să conţină logica de
prelucrare (SERVER-P) şi este legată direct cu clienţii, alta să conţină
datele (SERVER-D) şi la care are acces doar logica de prelucrare
centrală – v. figura 24. În acest fel, după accesul utilizatorului la maşina
SERVER-P logica de prelucrare centrală verifică autenticitatea şi
drepturile utilizatorului, apoi – doar prin intermediul programului
132
server, oferă acces la datele aflate pe una sau mai multe servere cu date
(SERVER-D1, ... SERVER-Dn-2), Arhitecturile, în acest caz, sunt de tip
3-tier (dacă există doar un singur server SERVER-D1), respectiv n-tier
(dacă există mai multe servere SERVER-D1... SERVER-Dn-2). Aplicaţii
de baze de date pot funcţiona în arhitectura client-server 2-tier. În forma
3-tier funcţionează aplicaţii distribuite – cum ar fi de exemplu o
aplicaţie de vânzări de acţiuni, în care datele despre cursul acţiunilor,
apoi ştirile despre acţionari sau companii, respectiv tranzacţiile se
găsesc pe maşini diferite.
Aplicaţiile în arhitectura client-server sunt cele mai răspândite în
Internet astăzi, prezentând şi forme în care cele două părţi sunt
simetrice: serverul poate fi client şi reciproc, în scopul comunicării
bidirecţionale de date stocate pe cele două (sau mai multe) maşini (v.
peer-to-peer).
Miniaplicaţii
O categorie specială de program o constituia miniaplicaţia („applet”) –
ca program ce nu există de sine stătător, ci doar în cadrul unei (alte)
aplicaţii – de exemplu, o aplicaţie web cu pagini conţinând text şi
imagini. Miniaplicaţia „applet” poate rula doar când este lansată de un
eveniment extern – click pe o imagine, producând, spre exemplu,
animaţia unui obiect pe ecran. Miniaplicaţia „applet”, ca program, este
descărcată de pe maşina server pe maşina client şi rulează (de obicei în
mod interpretat) pe clientul web (navigatorul Internet). Miniaplicaţia
„applet”este un program script (adică scris într-un limbaj scriptural) şi
interpretat linie cu line din textul sursă, acţiunile sale fiind astfel
permanent controlate; din motive de securitate. Miniaplicaţia „applet”
nu are acces la sistemul de fişiere al maşinii client, iar comunicaţia o
poate realiza doar cu maşina server de pe care provine.
Complementar miniaplicaţiilor „applet” există „servlet”, ce rulează pe
maşina server spre a asigura: acces securizat la baze de date, facilităţi
pe maşini de căutare în Internet, generarea de pagini web dinamice. Şi
acest tip de program se scrie în limbaj scriptural şi rulează interpretat,
în cadrul unei aplicaţii gazdă (de exemplu serverul web).

133
7.2.3. Instrumente software de dezvoltare a aplicaţiilor
În accepţia comună, clasică, programarea constă în scrierea textului
sursă într-un limbaj de programare ales, prin care se descrie un algoritm
de prelucrarea a datelor. Această activitate este foarte laborioasă şi
necesită dese reveniri în scrierea textului (pentru corectura sintactică,
pentru optimizare sau chiar refacerea codului). Ingineria programării
indică metode şi paşi sistematici prin care erorile în soluţia problemei
şi în realizarea codului se reduc la minim. Totuşi, pentru a obţine o
productivitate rezonabilă în munca de programare sunt necesare
instrumente software de asistare a programatorului. Cele mai
importante categorii de instrumente sunt prezentate în cele ce urmează.
Interfeţe, biblioteci şi pachete de programare
Limbajele de programare actuale tind să fie cât mai concise – privind
cuvintele cheie şi comenzile de prelucrare sau control de flux (atribuire
respectiv repetiţie şi decizie). O mare parte din prelucrări sunt
implementate ca subprograme sau pachete de funcţii şi formează
biblioteci. Programatorul trebuie să cunoască aceste biblioteci, cu
inventarul lor şi modul de utilizare a subprogramelor aferente, pe care
le apelează în programul sursă; la faza de editare a legăturilor
(„linking”) ele se includ în codul obiect al programului apelant într-una
din modalităţile:
 legare statică – codul din bibliotecă este inclus în program la
compilare şi formează codul executabil, care poate fi apoi rulat
independent de bibliotecă;
 legare dinamică – codul din bibliotecă face parte din sistemul de
operare şi este inclus în codul executabil la încărcarea sa în memorie
(„loadtime” - adică la lansarea programului) sau chiar în timpul
execuţiei („runtime”).
Legarea statică a subprogramelor din biblioteci este folosită curent de
către mediile de programare pentru limbaje ca Pascal, C, Java, în
vederea realizării programului executabil. Fişierele bibliotecă conţin
module precompilate şi sunt parte a compilatorului sau mediului de
programare a limbajului, furnizat de producător. Bibliotecile sunt
denumite la limbajul C „headers”, sunt specializate pe tipuri de date şi
134
prelucrări (standard, pentru şiruri de caractere, pentru funcţii
matematice, etc.) şi se includ în programul obiect dacă au fost apelate
cu directivă preprocesor #include la începutul programului sursă. La
limbajul Java, subprogramele sunt de fapt clase predefinite, grupate în
pachete (package) cu o structură arborescentă şi incluse în programul
sursă prin directiva import.
Un tip de bibliotecă foarte utilizat este Interfaţa de Programare a
Aplicaţiilor (API), care conţine seturi de funcţii, proceduri, variabile şi
structuri de date ce pot fi folosite de către programator în aplicaţii ca
obiecte precompilate, apelate standard. Există API care fac parte din
sistemul de operare sau livrate ca pachet independent, API poate fi
proprietară (de exemplu, cea pentru PlayStation a firmei Sony) sau
poate fi distribuită gratuit (cum este cea de la Microsoft Windows).
Sistemele de operare precum Windows şi Linux folosesc legarea
dinamică la încărcarea programului executabil („loadtime”). Biblioteca
de legare dinamică este uzual denumită prin acronimul DLL (Dinamic
Link Library) la Windows şi bibliotecă partajată („shared library”,
ELF) la sisteme UNIX. Biblioteca conţine module executabile pre-
compilate şi este stocată pe disc ca fişier separat. Atunci când mai multe
aplicaţii utilizează aceeaşi bibliotecă dinamică, sistemul de operare o
poate încărca pentru fiecare în parte. Un mare dezavantaj al legării
dinamice este faptul că programele executabile depind de existenţa
fişierelor bibliotecă pe sistemul pe care rulează, execuţia aplicaţiei
întrerupându-se când aceste fişiere lipsesc, sunt redenumite sau au altă
versiune.
La unele sisteme de operare legarea dinamică are loc pe durata execuţiei
programului („runtime”), astfel: programul executabil apelează o
Interfaţă de Programare a Aplicaţiilor (API „Application
Programming Interface”), furnizând numele fişierului bibliotecă, un
număr de funcţie şi parametrii acesteia; sistemul de operare rezolvă
importul de fişier (îl încarcă în memorie) şi face apelul funcţiei
solicitate, în contul aplicaţiei. Datorită operaţiilor suplimentare
executate la fiecare apel de funcţie, se poate ca execuţia programului să
fie foarte lentă, deci să afecteze performanţa aplicaţiei. De aceea legarea

135
dinamică la momentul execuţiei nu este foarte utilizată în sistemele de
operare actuale.
Există diverse alte tipuri de biblioteci, cum sunt:
 biblioteci pentru testare – care includ date de test dezvoltate specific
pentru un tip de aplicaţie anume, cu care se poate verifica comportarea
aplicaţiei în situaţii diverse – înainte de a fi dată în exploatare;
 biblioteci grafice – care conţin diferite obiecte grafice gata de utilizat
la proiecte din diferite domenii;
 biblioteci de programe pentru diferite limbaje (Perl, Java) şi diferite
utilizări (animaţii în pagini web, clase şi prelucrări uzuale).
Trebuie făcută o deosebire clară între „pachete de programe” (sau clase)
– ca biblioteci şi „pachete software” sau „pachete de aplicaţii” – ca
modalităţi de distribuţie şi instalare software achiziţionat de la
producători, de exemplu pachete pentru aplicaţii de birou – MS Office
al firmei Microsoft, sau Apache OpenOffice care provine din StarOffice
al firmei SUN.
Medii de programare
Dezvoltarea unui program scris într-un limbaj de programare ales,
decurge mai uşor dacă toate instrumentele necesare sunt integrate într-
unul singur, adică: editorul de text sursă, compilatorul, editorul de
legături şi chiar depanatorul. Un Mediu de Dezvoltare Integrat (IDE –
„Integrated Development Environment”) este un instrument software
care oferă aceste facilităţi, fiind utilizat atât la proiectarea cât şi la
implementarea aplicaţiei. Întrucât interfaţa grafică utilizator (GUI –
„Graphical User Interface”) este partea de program care necesită cel
mai mare efort de programare, acestor medii li s-a adăugat modalitatea
de proiectare şi implementare vizuală a interfeţei grafice. Prin
programarea vizuală, se plasează obiecte (de tipul fereastră, buton
grafic, casetă de text etc.) pe o suprafaţă de lucru – care, la final, va
deveni suprafaţa de lucru a utilizatorului, în fundal, mediul de
programare producând cod prin care rezolvă partea de program ce va
construi obiectele interfeţei. Exemple de medii (IDE) sunt popularele
Turbo C sa Turbo Pascal (ale firmei Borland), astăzi prezente şi pe
sistemul de operare Linux în mod gratuit. Medii moderne, cu posibilităţi
136
de lucru pentru obiecte diverse (grafice şi nu numai) sunt MS Visual
Basic şi MS Visual Studio (pentru mai multe limbaje – C++, C#, Visual
Basic), mediul Delphi (bazat pe limbajul Pascal), medii pentru Java, etc.
Medii pentru Baze de Date
Pentru crearea şi utilizarea aplicaţiilor cu baze de date se folosesc
Sisteme de Gestiune a Bazelor de Date (SGBD, în engleză DBMS –
Data Base Management Systems). Acestea sunt medii integrate care
oferă instrumente de creare a obiectelor din aplicaţiile cu baze de date
– ca grile de proiectare tabele sau interogări, cu mijloace vizuale pentru
rapoarte şi formulare, dar şi limbaje de descriere şi manipulare a datelor
– prin care se creează tabele şi se formulează interogări. SGBD este un
mediu în care se creează obiectele de tip tabel, interogare, formular,
raport, iar aplicaţia – ca set de module program scrise în limbajul de
manipulare a datelor, care poate rula numai sub mediul SGBD (adică în
prezenţa acestuia – încărcat în memorie).
Fiindcă aplicaţiile cu baze de date sunt folosite de mai mulţi utilizatori
simultan, SGBD actuale oferă un nucleu de lucru multi-activităţi
(„multitasking”) şi multi-utilizator, precum şi mijloace de comunicare
în reţea – de obicei bazate pe servicii ale sistemului de operare de pe
maşina pe care mediul este încărcat, cu utilizare partajată (adică
simultană) a obiectelor SGBD. Aplicaţiile cu baze de date actuale (şi de
aici SGBD) integrează mecanisme de lucru în Internet, pentru generare
de pagini web, interogare, autentificare şi autorizare a accesului.
SGBD sunt cele mai folosite medii de implementare a Sistemelor de
Informatizare – ca structuri complexe ce integrează aplicaţii în multiple
domenii de activitate din cadrul unei companii (de exemplu conducere,
gestiune, producţie).
Între produse SGBD actuale proprietare („closed source”) se numără:
Oracle, Informix, Microsoft Access, Microsoft SQL Server, iar cu cod
liber („open source”) MySQL, PostgreSQL, SQLite.
Instrumente de asistare a dezvoltării software
Complexitatea aplicaţiilor şi timpul scurt disponibil pentru a le proiecta
şi implementa, au impus noi modalităţi de dezvoltare software.
Conceptul de Dezvoltare Rapidă a Aplicaţiilor (RAD – Rapid
137
Application Development) este o soluţie productivă de proiectare şi
implementare rapidă a aplicaţiilor, bazată pe instrumente vizuale şi
asistenţi („wizards”). Programarea foloseşte limbaje de generaţia a 4-a
(denumite 4GL - în timp ce 3GL sunt Pascal, C, COBOL) şi decurge ca
o proiectare a aplicaţiei elaborată cu ajutorul calculatorului; codul
propriu-zis este generat de către mediul RAD, în fundal. Exemple de
instrumente RAD sunt Visual Basic şi similarul lui Oracle
PowerObjects, apoi C# de la Microsoft – ca limbaj, precum şi medii de
baze de date ca CA Visual Objects sau MS Visual FoxPro. Într-un
instrument RAD de tipul VisualBasic se folosesc programarea
orientată pe evenimente („event driven programming” – prin care
acţiunile din program sunt ataşate butoanelor grafice) şi componentele
puse la dispoziţie de către mediu.
O altă categorie de instrumente eficiente sunt instrumentele CASE
(„Computer Aided Software Engineering” sau „Computer Automated
System Engineering”), care oferă asistenţă în una sau mai multe etape
de dezvoltarea a produsului (sau întregului sistem) software dar în
special pentru etapele de analiză, proiectare şi testare. Există medii
CASE ce permit crearea modelelor apoi arhivarea şi utilizarea lor
partajată. Funcţiile instrumentelor CASE pot fi:
 editarea sau alegerea de modele pentru interfeţe utilizator grafice
(GUI);
 generarea automată de cod;
 generarea automată a documentaţiei;
 verificarea consistenţei între diagramele de proiectare şi modelele
rezultate;
 asistenţă pe durata întregului ciclu de viaţă a programului.

Un instrument CASE rulează ca un program care conduce analistul prin


etapele obligatorii de dezvoltarea a produsului software, după o
metodologie de analiză / proiectare aleasă din mai multe – oferită de
instrument. Pentru aceasta, se pun la dispoziţie modele şi mijloace de
creare a modelelor pentru sistemul ţintă, cum sunt: Diagrame Entitate-
Relaţie, Diagrame de flux („data flow diagrams”), Diagrame Use-
Cases, apoi realizarea arhitecturii sistemului şi în final generarea
138
automată de cod (în limbaje de precum C++, Java) şi generarea
documentaţiei pentru sistemul proiectat. Un instrument CASE permite
„ingineria inversată” („reverse engineering”) adică obţinerea pe cale
inversă a modelelor de proiectare – dintr-un program deja
existent/realizat.
Dintre instrumentele CASE existente, se amintesc: Team-Trace (WA
Systems), Cradle (3SL) – pentru etapa de analiză a cerinţelor; CAE
Analyst (MacroProject), Cradle (3SL) – pentru analiză structurată;
Powerbuilder (Powersoft) – pentru aplicaţii client-server; DOORS
(Telelogic AB), Cradle (3SL) – pentru proiectarea de baze de date;
DocEXPRESS (Telelogic AB), Cradle (3SL) – pentru generare
automată de documentaţie; PacDesign (CGI Systems Inc.) Visual Case
(Artiso Corp) – pentru modelarea afacerilor.

139
8. Sisteme de operare şi programe utilitare

Funcţionarea unui calculator nu este posibilă fără un sistem de operare


rezident – adică încărcat în memoria de lucru şi în execuţie; el este
denumit software de bază pentru că oferă un mediu de execuţie pentru
alte programe – software de aplicaţie.
Sistemul de operare asigura interfața dintre utilizator și hardware prin
gestionarea resurselor fizice și logice ale sistemului de calcul.
Funcţii ale sistemului de operare
Un sistem de operare trebuie să asigure în principal:
1. alocarea resurselor – adică a spaţiului de memorie, procesorului
(sau procesoarelor), unităţilor de intrare / ieşire.
2. planificarea şi controlul programelor în execuţie – adică rularea
programelor după priorităţi şi introducerea oprirea lor temporară
când acestea aşteaptă la o resursă partajată (folosită în comun cu
alte programe).
3. interpretarea şi execuţia comenzilor de la operatorul uman – adică
oferirea unui mijloc de furnizare a comenzilor (ca text sau ca
evenimente pe o interfaţă grafică), apoi conversia lor în acţiuni
corespunzătoare.
Comenzile sistemului de operare se referă la transferuri de date şi
programe între periferice şi chiar cu memoria de lucru, caz în care
transferul se spune că „se deschide” – adică se lansează în execuţie
colecţia de date sau programul. Procesorul este alocat unui program în
măsura în care alte programe mai prioritare nu îl solicită sau programul
în cauză aşteaptă la un periferic încheierea unei operaţii de intrare /
ieşire.
În general, operarea la un sistem de calcul se poate face în două moduri:

140
 regim comandă – (CLI - Command-line interface) în care
comanda se furnizează ca un cuvânt (sau o prescurtare), însoţită
de parametri;
 regim grafic/meniu – (GUI- Graphical user interface)în care
comanda şi parametrii se aleg grafic cu mouse-ul din liste şi
subliste de opţiuni (meniuri)-(TUI- Text user interface).
În regimul comandă, trebuie cunoscute cuvintele ce exprimă comenzile
şi parametrii, precum şi sintaxa și modul de combinare a acestora –
pentru ca o comandă furnizată să fie corect interpretată şi executată; în
plus, comanda trebuie tastată deci necesită un timp de editare (eventual
şi corectură). În regimul meniu, nu este necesară cunoaşterea
comenzilor ci doar recunoaşterea lor din listele de meniu, iar execuţia
lor se face prin selecţia din listă a opţiunii dorite (eventual cu sub-
opţiuni); în plus, se poate oferi şi ajutor pe loc („help”). Sistemele de
operare moderne au o interfaţă utilizator grafică şi programe utilitare
eficiente de lucru. În al doilea regim, se spune că un programul este
„prietenos”.
Sistemele de operarea moderne (cum sunt Windows ori LINUX şi alte
sisteme UNIX) oferă facilităţi multitasking – de execuţie a mai multor
programe simultan (sau activităţi – „tasks”), precum şi facilităţi multi-
utilizator – de lucru pentru mai mulţi utilizatori simultan, cu acces prin
reţele de calculatoare. Privind modul cum se planifică procesorul pentru
mai multe programe (procese) ce rulează „simultan”, se deosebesc:
 sisteme cu divizarea timpului („time sharing”) – în care
procesorul este alocat succesiv câte unui program, pentru o„felie” de
timp. Aparent, se execută mai multe programe simultan dar de fapt ele
se succed rapid şi folosesc pe rând procesorul.
 sisteme preemptive – în care programul în curs poate fi întrerupt
(la momente întâmplătoare) prin evenimente ce provoacă lansarea în
execuţie (eventual reluarea) altor programe. Evenimentele sunt, în
general, cereri de introducere date sau anunţul finalizării unei afişări de
date.
Pentru funcţionarea multiutilizator, se creează şi se menţin contexte
specifice fiecăruia dar, ca şi pentru programe, fiecare este servit pe rând,
rapid, astfel că aparent lucrează simultan.
141
Tipuri de sisteme de operare
Există diverse categorii de sisteme de operare, după locul şi rolul pe
care îl ocupă:
 Sisteme de operare „desktop” – care rulează pe calculatoare
personale (PC), pentru un singur utilizator sau un număr mic de
utilizatori, controlează puţine dispozitive periferice (de tip mouse,
ecran, tastatură) şi oferă un timp de răspuns convenabil.
 Sisteme paralele –utilizează mai multe procesoare şi deci execuţia
programelor este într-adevăr simultană. Acestea pot fi cu
multiprocesare simetrică (SMP – „Symetrical MultiProcessing”)
în care fiecare procesor execută o copie identică a sistemului de
operare, respectiv cu multiprocesare asimetrică („Asymetrical
MultiProcessing)” în care unele procesoare sunt de tip stăpân
(„master” – au inițiativa) iar altele sunt de tip sclav („slave” –
primesc lucrări de la master).
 Sistem în timp real – folosite pentru aplicaţii „de timp critic” – de
exemplu în industrie, unde trebuie executată o operaţiune în
timpul şi sincron funcţionării instalaţiilor conduse prin calculator.
 Sisteme de operare distribuite – care rulează pe mai multe maşini
interconectate în reţea (locală sau largă ), asigurând partajarea
resurselor comune între mai mulţi utilizatori, precum şi
sincronizarea unor operaţiuni executate pe maşini distante.
 Sisteme de operare „palmtop” – care rulează pe calculatoare PDA
(Personal Digital Assistant – ca un carnet ţinut în palmă), tablete
sau pe telefoane celulare – fiind specifice ca mod de interacţiune
cu utilizatorul şi folosind resurse reduse.

8.1. Sistemul de operare Windows


Sistemele de operare „descktop” de pe calculatoare personale (IBM PC)
au adoptat tehnologii dezvoltate pentru calculatoare puternice însă cu
performanţe mai slabe privind securitatea datelor sau sistemului şi cu
mijloace de administrare a resurselor mai reduse. Un exemplu este
sistemul de operare MS Windows, care în ultimele variante oferă:

142
 nucleu multitasking preemptiv pe 32 și 64 biţi;
 portabilitate – poate fi instalat pe diverse platforme (cu procesor
din familia Intel), codul dependent de procesor fiind izolat într-o
bibliotecă de tip DLL (denumită HAL – hardware abstraction layer);
 securitate – foloseşte protecţie hardware pentru memoria virtuală
şi protecţie software pentru mecanismele sistemului de operare;
 autentificarea utilizatorului prin „nume utilizator” şi parolă;
 posibilităţi de lucru multiprocesor – pentru procesare simetrică
(SMP);
 suport pentru internaţionalizare – pentru diferite limbi vorbite,
formate privind ora, moneda, etc. în diferite puncte pe glob;
 suport pentru gestiunea discului cu sisteme de toleranţă la defecte
(masive de discuri RAID sau mai multe discuri pe magistrală SCSI);
 suport pentru lucrul în reţea: în mod client-server (server central
şi staţii de lucru care accesează resurse din reţea prin server) sau în mod
„peer-to-peer” (de la egal la egal, adică fiecare staţie de lucru pune la
dispoziţia celorlalte resurse proprii disc sau o imprimantă locale);
 conectare la Internet, rezolvarea numelor în Internet,
interconectare cu alte sistem de operare în aceeaşi reţea;
 mecanisme de prelucrare distribuită (prin NetBIOS, Windows
Sockets, Remote Procedure Call), API pentru conectare în reţea prin
socluri (sockets), acces la alte sisteme de fişiere.

8.2. Programe utilitare


Configurarea resurselor sistemului de operare (de ex. pentru periferice,
reţea, limba şi ora locale), manevrele de gestionare a resurselor
(vizualizare, copiere, ştergere directoare şi fişiere) şi comenzile de lucru
pentru transferul datelor între periferice şi memorie (tipărire, lansare
programe, acces la reţea) sunt acţiuni dificile, care se pot executa, în
general, prin comenzi complicate. Pentru a facilita aceste acţiuni, se
folosesc programe utilitare – programe considerate între programele de

143
bază şi programele de aplicaţii, ce asigură manevrarea comodă a
setărilor şi resurselor calculatorului.
Următoarele categorii de programe utilitare sunt mai des folosite:
 Managere de resurse – care permit vizualizarea conţinutului
discurilor (fixe, flexibile, optice) şi manipularea directoarelor şi
fişierelor (copiere, mutare etc.). Exemple sunt Windows Explorer,
sau Windows Commander, care prezintă în panourile de lucru ale
ferestrelor acestor utilitare structura arborescentă de directoare şi
fişierele, apoi permit operaţii cu acestea.
 Arhivatoare – care permit salvarea conţinutului directoarelor şi
fişierelor prin compactarea şi organizarea informaţiei în vederea
păstrării pe suport extern un timp îndelungat sau transmiterii prin
poșta electronică. Exemple: WinZip, WinRAR, WinAce.
 Antiviruşi – care permit controlul şi eliminarea programelor de tip
virus, vierme, cal troian, bombă logică ce pot „infecta” un sistem
de calcul spre a reduce sau anula capacitatea de lucru sau a
distruge date şi chiar unităţi periferice. Exemple: Kaspersky,
Bitdefender, MacAfee Antivirus, etc.
Programele utilitare sunt parte a sistemelor de operare moderne, dar pot
fi şi produse de la firme specializate.

8.3. Interfeţe utilizator


Interacţiunea om-maşină are atât aspecte tehnice cât şi psihologice.
Aceste aspecte trebuie luate în considerare pentru a asigura lucrul
eficient in cadrul utilizării aplicaţiilor pe calculator.
Interfaţa cu utilizatorul reprezintă totalitatea mijloacelor prin care omul
interacţionează cu maşina, uzual reprezentate de perifericele de intrare
– ecran tactil, tastatură şi indicator pe ecran (mouse, track-ball, touch-
pad) - cu perifericul de ieşire - ecran şi imaginile afişate/proiectate.
Realizarea unei interfeţe utilizator „prietenoase” priveşte, în principal,
modul de afişare a obiectelor prin care omul interacţionează cu maşina.
Aspectul de ansamblu al imaginilor pe ecranul unei aplicaţii este
cunoscut drept „look-and-feel” şi se referă la caracteristicile vizuale ale
144
interfeţei şi la comportamentul interfeţei ca răspuns la acţiunile
utilizatorului.

8.3.1. Interfața utilizator linie comandă


O interfaţă linie de comandă (CLI) reprezintă un mecanism de
interacţiune cu un sistem de operare sau un software, prin tastarea de
comenzi având scopul de a îndeplini sarcini specifice. Această interfaţă
text contrastează cu utilizarea indicatorului mouse-ului într-o interfaţă
grafică (GUI), făcând clic pe opţiuni sau pe meniurile dintr-o interfaţă
utilizator text (TUI) pentru a selecta anumite opţiuni. Această metodă
de instruire a calculatorului, pentru a îndeplini o sarcină dată, este
menţionată ca fiind "introducerea" unei comenzi. Sistemul aşteaptă
utilizatorul să încheie introducerea comenzii text prin apăsarea tastei
"Enter". Un interpretor linie comandă primeşte, analizează, şi execută
comanda solicitată. Interpretorul linie comandă poate rula într-un
terminal text sau într-o fereastră emulată de terminal pentru un client de
la distanţă. După finalizare, comanda de obicei întoarce o ieşire pentru
utilizator sub formă de linii de text pe interfață. Această ieșire poate fi
un răspuns în cazul în care comanda a fost o întrebare, sau un rezumat
al operaţiunii.

8.3.2. Interfata utilizator grafică


O interfaţă grafică (Graphical User Interface-GUI) este o zonă grafică
(de lucru) situată între utilizator şi dispozitivele electronice cum ar fi
calculatoarele, dispozitivele care se țin în mână (hand-held-playere
MP3, playere media portabile, dispozitive de jucat, smartphone-uri,
tablete etc.), aparate electrocasnice şi unele echipamente de birou.
Pentru a prezenta toate informațiile şi acţiunile disponibile, un GUI
oferă pictograme şi indicatori vizuali, în contrast cu interfeţele bazate
pe text, care oferă navigaţia text sau nume de comenzi ce trebuiesc
tastate.
Interfeţele utilizator actuale se bazează pe grafică (în sensul de imagine
construită punct cu punct), numite de aceea Interfeţe Utilizator Grafice
(în engleză cu acronimul GUI).
145
Acestea respectă câteva principii cum sunt:
 utilizatorul controlează programul şi nu invers – adică omul
acţionează şi calculatorul răspunde prompt, eventual în mod
personalizat (specific persoanei care lucrează);
 utilizatorul operează direct cu datele de pe ecran, astfel ca să
constate direct relaţia cauză-efect a acţiunilor sale. Obiectele
reprezentate pe ecran sunt intuitive şi apropiate de obişnuinţa
omului.
 obiecte şi acţiuni similare în diferite aplicaţii au acelaşi mod de
reprezentare grafică şi se comportă identic;
 prezentarea pe ecran este clară (simplă, inteligibilă) şi estetică
(atractivă);
 interfaţa este tolerantă la greşelile utilizatorului oferind ajutor şi
sugestii de rezolvare a problemelor apărute.
În continuare, vor fi prezentate obiecte generice pe ecranul de afişare şi
manevre uzuale efectuate cu perifericele de intrare, prin care utilizatorul
interacţionează cu maşina.

8.4. Ecranul tactil


Reprezintă dispozitivul periferic de intrare-ieșire cu care puteți efectua
activități similare utilizând un mouse și o tastatură.
Funcții tactile: tragere cu degetul, atingere și altele (cf. Microsoft)
Denumire Acțiune Rezultat
Atingere Atingeți un element. Se deschide, selectează sau activează
oricând atingeți un element. Similar cu
clicul de mouse.

Apăsare Apăsați cu degetul și țineți cam Arată informații pentru a vă ajuta să aflați
continuă o secundă. mai multe despre un element sau deschide
un meniu specific activității efectuate. De
exemplu, apăsați continuu o pictogramă
din ecranul Start pentru a o rearanja, a o
redimensiona sau a o fixa. Funcționează
doar pentru unele elemente. Similar cu
clicul cu butonul din dreapta al unui
mouse.
146
Zoom Apropierea sau depărtarea Mărește sau micșorează nivelul de zoom
degetelor pentru zoom. Atingeți vizual, ca și cu imaginile sau hărțile. Un
ecranul sau un element cu două loc bun pentru a explora aceasta este
sau mai multe degete, apoi ecranul Start.
mișcați degetele unul către altul
(apropiere) sau în direcții opuse
(depărtare).
Navigare Glisați pentru a defila. Trageți Se deplasează prin conținutul ecranului.
degetul pe ecran. Similar cu defilarea cu un mouse.

Repoziționare Glisare pentru a rearanja. Mută un element (drag and drop). Similar
Apăsați și glisați scurt un cu glisarea cu un mouse.
element în direcția opusă celei
în care defilează pagina, apoi
mutați-l oriunde doriți. (De
exemplu, dacă ați defila la
stânga sau la dreapta, trageți
elementul în sus sau în jos.)
Atunci când un element este
mutat în noua locație, eliberați-
l.
Trageți Trageți cu degetul un element Selectați un element și se vor afișa de
pentru cu o mișcare scurtă, rapidă în multe ori comenzi de aplicație. Un loc
selecție direcția opusă celei de derulare bun pentru a explora acest gest este
a paginii. aplicația Mail.
De exemplu:
 Dacă pagina se defilează la
stânga sau la dreapta, trageți
elementul cu degetul în sus sau
în jos pentru a-l selecta.
 Dacă pagina se defilează în
sus sau în jos, trageți elementul
cu degetul la stânga sau la
dreapta pentru a-l selecta.
Tragere cu Pornind din margine, trageți cu  Deschideți butoanele (Căutare,
degetul sau degetul rapid sau glisați Partajare, Start, Dispozitive, Setări).
glisare de la transversal pe ecran fără a vă Trageți cu degetul din marginea din
margine ridica degetul. dreapta.
 Deschideți o aplicație utilizată recent.
Trageți cu degetul din marginea din
stânga. Continuați să trageți cu degetul
pentru a comuta între toate aplicațiile
utilizate recent.
 Deschideți simultan o altă aplicație.
Glisați din marginea din stânga fără a
147
ridica degetul și trageți aplicația până
când apare un separator. Apoi mutați
aplicația unde doriți și glisați separatorul
pentru a ajusta dimensiunea aplicației.
 Vedeți o listă cu aplicațiile utilizate
recent. Glisați din marginea din stânga
fără a ridica degetul și împingeți înapoi
aplicația spre marginea stângă.
 Afișați comenzile pentru aplicațiile
curente, cum ar fi Nou și Reîmprospătare.
Trageți cu degetul din marginea de sus
sau de jos.
 Închideți o aplicație. Glisați în jos,
pornind din marginea de sus, fără a ridica
degetul, apoi glisați aplicația spre partea
de jos a ecranului.
Rotire Puneți două sau mai multe Rotește elementele în direcția în care
degete pe un element și rotiți întoarceți mâna. Doar unele elemente pot
mâna. fi rotite.

8.5. Tastatura şi mouse-ul


Tastatura, ca dispozitiv de intrare, permite atât introducerea
simbolurilor de scriere (alfa-numerice) cât şi efectuarea unor acţiuni
(ştergere caracter, deplasare cursor pe ecran, Enter – salt la nou rând
sau execuţie comandă/opţiune curentă). O manevră specială de
introducere se efectuează prin apăsarea simultană a tastei Ctrl şi a unei
litere alese (Ctrl-Litera), combinaţia fiind ataşată unei comenzi uzuale
în aplicaţia dată, fiind o „scurtătură” pentru execuţia acesteia (altfel
selectată dintr-un meniu, deci cu mai multe apăsări de taste). Spre
exemplu, combinaţia Ctrl-S reprezintă scurtătura pentru salvarea unui
document. Similar, pot fi alocate comenzi pentru scurtături din
combinaţia Alt-Litera.
Pentru a indica cu mouse-ul, trebuie aşezată săgeata indicator pe
obiectul ales. Manevrele ce se pot execut cu mouse-ul sunt:
 Indicare – indicatorul atinge un obiect vizat; dacă zăboviţi
asupra obiectului, apare un mic mesaj (numit „tool tip”) care
conţine o descriere a obiectului.
148
 Click – butonul stânga apăsat scurt (selectează un obiect
vizat).
 Dublu click - butonul stânga apăsat rapid de două ori (deschide
2

documentul sau lansează programul ataşat obiectului vizat).


 Click dreapta - butonul dreapta apăsat (desfăşoară meniu
contextual, adică specific locului vizat).
 Glisare – click pe un obiect vizat şi deplasare mouse cu buton
stânga menţinut apăsat spre un alt loc pe ecran (mutare obiect
vizat sau selectarea mai multor obiecte).
Când indicaţi anumite obiecte, indicatorul îşi schimbă forma, spre a
anunţa astfel că puteţi executa un anume tip de comenzi. De exemplu,
când indicatorul se transformă intr-o mână care arată cu degetul, vă
aflaţi deasupra unui obiect click-abil cum ar fi o hiperlegătură, o săgeată
cu doua capete permite modificarea dimensiunilor unui obiect etc.

8.6. Ferestre şi casete de dialog

Figura 25. Structura unei ferestre şi a unei casete de dialog


La sistemele bazate pe ferestre, mijloacele prin care utilizatorul poate
comunica cu aplicaţia sunt furnizate de elementele ferestrelor şi
149
casetelor de dialog. Acestea sunt reprezentate, pe un exemplu, în figura
25, iar mai jos se oferă detalii lămuritoare.
Suprafaţa de lucru
Aşa cum tăblia mesei de lucru, la birou sau acasă, este ocupată cu
obiecte de uz curent (hârtii, cărţi, creioane, lampa de birou, etc.), tot
astfel ecranul este ocupat cu obiecte utile lucrului cu calculatorul.
Fiecare din obiecte este reprezentat printr-o pictogramă (vezi 1 ).
Butonul „Start” 15 permite accesul la aplicaţiile instalate pe maşină,
precum şi la opţiunile de configurare pentru periferice şi pentru întregul
sistem. Suprafaţa de lucru („desktop”) poate fi configurată, la rândul ei,
prin includerea de noi obiecte sau prin înlăturarea lor.
Bara de activităţi 14 indică aplicaţiile lansate în execuţie, prin butoane
grafice asociate; aceste butoane permit, totodată, activarea uneia din
aplicaţii (asupra căreia utilizatorul îşi va focaliza atenţia), precum şi
eliminarea ei de pe ecran (minimizarea ferestrei) prin click-uri
succesive pe butonul corespunzător aplicaţiei.
Ferestre aplicaţie
O fereastră aplicaţie este o reprezentare standard a instrumentelor
uzuale de lucru cu aplicaţia. Aceste instrumente sunt reprezentate grafic
în diverse moduri şi permit acţionarea lor cu ajutorul mouse-ului sau al
tastaturii. Figura 25 prezintă elementele generice ale unei ferestre, rolul
fiecăreia şi modul său de acţionare.
Tabel 4. Elementele ferestrei generice şi modul lor de acţionare
Element Mod de acţionare
Bara de titlu 2 prezintă numele aplicaţiei (în Figura 25 glisarea Barei de
navigatorul local – „Windows Explorer”), precum şi numele titlu mută fereastra pe
documentului sau, în cazul navigatorului, locul vizat – disc (C:, D:, suprafaţa de lucru .
etc.), director pe disc („My Documents”), calculator din
vecinătatea în reţeaua locală („Network Neighborhood”).

Bara de meniu 3 cuprinde categorii (opţiuni) accesibile în click sau Alt-Litera


aplicaţia dată, din care trei sunt regăsite la orice aplicaţie: File dă lista acţiunilor
(manipularea datelor specifice aplicaţiei), Edit (copiere, căutare, specifice aplicaţiei şi
ştergere date) şi Help (ajutor imediat - structurat pe conţinut, index datelor sale
şi căutare).

150
Bara de unelte 4 cuprinde comenzi uzuale ilustrate prin desene click buton grafic
intuitive, acţionate ca butoane grafice. Comenzi de editare, lucru execută comanda (ex.
cu fişiere şi cu ferestre au o replică în bara de unelte. = decupare)

Butoane deschis / închis 9 aflate în colţul dreapta sus, permit minimizare


punerea în aşteptare a aplicaţiei (minimizarea ), ocuparea întregului maximizare
ecran activ (maximizarea) sau restaurarea ferestrei pentru
redimensionare, iar ultimul închiderea aplicaţiei restaurare
închidere

Bara de stare 16 prezintă informaţii privind setări specifice numai vizionare


aplicaţiei

Panouri de lucru 17 prezintă datele specifice aplicaţiei şi prelucrare specifică a


permite manipularea lor conform metodelor specifice acestora. datelor aplicaţiei

Chenarul 18 permite redimensionare ferestrei (lăţire, lungire şi glisare chenar


reciproce, respectiv mărire / micşorare proporţională ). sau colţul dreapta-jos

Casete de dialog
Prin casetele de dialog utilizatorul poate viziona setările curente ale
aplicaţiei şi poate modifica aceste setări prin acţionarea elementelor
casetei, după cum se prezintă în tabelul 8.
Tabel 5. Elementele casetei de dialog generice şi modul lor de acţionare
Element Mod de acţionare
Bara de titlu 5 prezintă numele casetei de dialog (în Figura 25 glisarea Barei de
opţiunile fişierelor – „Folder Options”). titlu mută caseta

Fişă 6 prezintă un set de setări posibile, de obicei împărţite pe click pe etichetă


cadre (secţiuni tematice) – în Figura 25 tipuri de fişiere („File selectează fişa
Types”)

Casete de bifă 7 permit selectarea mai multor opţiuni dint-un click sau „spaţiu”
set dat bifează 

Butoane radio 8 permit selectarea unei singure opţiuni din click sau „spaţiu”
setul dat selectează 

Butoane de derulare pas cu pas 10 permit derularea click derulează în


informaţiei din panou în fereastra de vizitare (când aceasta este sensul dorit ,
neîncăpătoare)

151
Butoane de derulare continuă 11 permit derularea în mod glisare
continuu a informaţiei în fereastra de vizitare
derulează conţinut

Bara de derulare 12 permit derularea pagină cu pagină a click pe zona liberă


informaţiei în fereastra de afişare a panoului derulează o pagină

Butoane grafice 13 permit efectuarea de acţiuni specifice click – execută !


(înscrise pe buton); uzuale sunt „OK”- confirmare şi „Cancel” -
abandon. (ex. )
Listă derulabilă – care prezintă un set de facilităţi ce pot fi
derulează cu
selectate după derularea listei text până la reperul dorit.
click pe reper – alege

(ex. )
Casetă de text – care permite înscrierea unui text necesar în introducere text dorit
contextul dialogului.

(ex. )

Ajutor („Help”)
Posibilităţile de lucru ale aplicaţiilor actuale sunt multiple şi dificil de
reţinut (mai ales când se lucrează cu ele ocazional) dar interfaţa
utilizator oferă ajutor pe loc şi detaliat asupra acestora. Deci este comod
pentru om să lucreze cu aplicaţia chiar atunci când nu a studiat-o în mod
special, ci învaţă „văzând şi făcând”. Mai mult, ajutorul poate fi dat de
un asistent („wizard”) care aşteaptă întrebări în clar de la utilizator şi
oferă sugestii asupra opţiunilor (de meniu) sau chiar asupra chestiunilor
de principiu în ceea ce privește aplicaţia şi posibilităţile ei.
Fereastra „Help” oferă, în general, trei modalităţi de căutare şi
prezentare a răspunsurilor, conform fişelor indicate în figura:
1. Cuprins 19 (de fapt întregul conţinut cu informaţii de ajutor –
„Contents”),
2. Index 22 (inventarul alfabetic al noţiunilor utilizate în aplicaţie –
„Index”),
3. Căutare 24 (după cuvinte cheie sau chiar aluzii la ele – „Search”).

152
Navigarea prin „informaţia de ajutor” se face în modul standard:
Revenire 21 (întoarcerea la ecranul şi informaţia precedente – „Back”),
Avans 23 (înaintare către ecranul şi informaţia curente – „Forward”).
Panoul de afişare 26 prezintă afişează informaţia căutată ca text în care
se află trimiteri 27 ce sunt legături („links”) către noţiuni amintite în
text (de ex. „frame” în figura); la finalul textului, se indică chestiuni 28
legate de conţinutul informaţiei, tot ca legături.

Figura 26. Structura ferestrei de ajutor („Help”)


Facilităţile de ajutor şi cele de navigare prin informaţia de ajutor sunt
prezentate succint în Tabel 6.
Tabel 6. Elementele ferestrei generice de ajutor şi modul lor de acţionare
Element Mod de acţionare
Fişa Contents 19 prezintă cuprinsul întregii informaţii , ,
de ajutor, sub formele: titlu ne-explorat, titlu
explorat, foaie cu informaţii.

153
Fişele Index 22 şi Search 24 permit căutarea se înscrie cuvîntul
cuvintelor în conţinutul de informaţie de Ajutor. Index sau cuvintele
prezintă inventarul de cuvinte cheie şi caută pe cel dorit. căutate
Search caută un cuvânt sau o expresie în întreg conţinutul
de informaţie.
Panou de afişare 16 - prezintă informaţia răspuns la vizionare
modulul (din cuprins) sau cuvântul, respectiv cuvintele
căutate.
Butoane de navigare înapoi 21 şi înainte 23 – permit click sau
revenire sau avans în panourile cu informaţii afişate.
Trimiteri către cuvinte cheie 27 sau chestiuni legate de click cuvânt
informaţia prezentă în panoul de afişare 28 . legătură (ex.
frame)

154
9. Sisteme IT virtuale

În prezent suntem părtaşi la discuţii ce pun din ce în ce mai mult


accentul pe îmbunătăţirea spectaculoasă a eficienţei, a disponibilităţii
resurselor şi aplicaţiilor, care să fie în strânsă legătură cu reducerea
costurilor de capital şi operaţionale. Practic, toate avantajele enumerate
mai sus se obţin printr-o virtualizare a infrastructurii fizice IT. Obţinem
astfel o infrastructură „virtuală”, care conduce la o creştere a eficienţei,
utilizării şi flexibilităţii activelor existente din sistem.
Automatizarea întregii infrastructuri IT presupune nu doar consolidarea
serverului ci şi implementarea unei platforme standard de virtualizare.
Conform VMware, virtualizarea infrastructurii IT asigură resursele,
aplicaţiile şi chiar serverele dorite atunci când şi unde acestea sunt
necesare. Folosind puterea oferită de virtualizarea infrastructurii
hardware printr-o gestionare mai bună a capacităţii IT disponibile,
beneficiem de o creştere a calităţii serviciilor şi de o eficienţa crescută
a proceselor IT, răspunzând mai rapid şi mai eficient decât oricând la
dinamica nevoilor instituţiei şi, de ce nu, a pieţei. Totuşi, important de
menţionat şi reţinut este faptul că în ciuda avantajelor clare aduse de
virtualizare, de cele mai multe ori, reticenţa omului învinge raţiunea, iar
sistemul poate funcţiona în parametrii nedoriţi sau se poate defecta.

9.1. Virtual
Termenul virtual este un concept aplicat în multe domenii, cu oarecare
conotaţii diferite şi, de asemenea, semnificaţii diferite. Termenul a fost
definit în filosofie ca „ceea ce nu este real, dar poate afişa calităţi izbitor
de reale”.
Astfel, numeroşi filosofi au lansat concepţii avansate cu privire la
virtual, cel mai proeminent din filosofia contemporană fiind Gilles
155
Deleuze, care a utilizat termenul „virtual” atunci când făcea referire la
un aspect al realităţii care nu este palpabil/material, dar care este totuşi
real.
În cea ce priveşte virtualul, conceptul lui Deleuze prezintă două aspecte:
 virtual este un fel de efect de suprafaţă produs de interacţiuni reale
de cauzalitate,
 efectele sunt la nivelul materialului.
O definiţie însuşită de la scolasticii medievali şi din pseudo-latină
(„virtualis”) afirmă că termenul „virtual” nu se opune „realului”, dar se
opune „concretului/existentului”, în timp ce „realul” este opus
„posibilului”.
Recent, această concepţie de virtual a impulsionat cercetarea, astfel
Denis Berthier în studiul „Meditations on the real and the virtual” îi
conferă o altă conotaţie, pe baza utilizări în domeniul ştiinţei (imagine
virtuală; lumea virtuală), precum şi etimologic (derivare de la virtute –
„Virtus” în latină). La acelaşi nivel ontologic ca „posibil”, „real”, sau
„potenţial”, termenul „virtual” este definit ca cel care nu este real, dar
afişează din plin calităţi reale - într-un mod clar real (adică, nu
potenţiale).
În informatică şi în tehnologia informaţiei, cuvântul virtual este folosit
cu sensuri diferite pentru:
 abstractizarea infrastructurii hardware, atunci când sistemele
software acţionează ca şi când ar fi sisteme hardware (maşină
virtuală, memorie virtuală, disc virtual);
 simulări ale realităţii generate de calculator (realitate virtuala),
precum şi a mediilor de joc online unde o întreagă lume este creată
(lumea virtuală) sau acolo unde lumea reală este suplimentată cu
imagini virtuale (îmbunătăţirea realităţii).
Acest domeniu a căpătat o expansiune rapidă, astfel comunitatea
virtuală, biblioteca virtuală şi clasa virtuală reprezintă alte întrebuinţări
ale cuvântului „virtual” cu aplicabilitate în zilele noastre.
Motivaţiile timpurii pentru aplicarea „virtualului” în IT (de exemplu
virtualizarea) au vizat în principal partajarea dispozitivelor de către mai

156
mulţi utilizatori şi operaţiile de coordonare a proceselor multiple, lucru
confirmat de folosirea cu succes a abordării maşini virtuale.
În pus, aceste tehnologii construiesc mediul pentru lucrul virtual în
echipe, cu membrii care nu se pot întâlni în persoană. Comunicând cu
ajutorul multiplelor instrumente puse la dispoziţie, sincrone sau
asincrone, lucrând colaborativ cu produse comune pe cale electronică,
aceste echipe virtuale produc rezultate vizibile fără a fi co-localizate.
În mod similar, lumea virtuală reprezintă un tip de locuire/găzduire
fondată pe tehnologie Web, care permite diverse interacţiuni ale
participanţilor cu preocupări comune, cum ar fi cercetarea,
învăţământul, economia etc.

9.2. Virtualizare. Nor informatic


Virtualizarea sistemului informatic şi norul informatic reprezintă
subiecte intens dezbătute în ultima perioadă, ambele conducând către
strategii numeroase, destul de diferite. Virtualizarea implică
transformarea unui număr de componente hardware şi dispozitive de
reţea în software şi încărcarea lui pe o platformă hardware puternică, cu
alte cuvinte, serviciile oferite de o componenta hardware virtualizată
sunt abstractizate din componenta fizică.

Figura 27. Virtualizare resurse hardware(VMware)


Virtualizarea se aplică serverelor, mediilor de stocare, reţelei şi
desktop-urilor astfel că, mare parte din discuţiile privind virtualizarea
și norul (cloud) evidenţiază accesul nelimitat la resursele de procesare,
stocare şi, în reţea, la lăţimea de bandă. Concret, virtualizarea şi norul

157
informatic nu pot exista fără un DataCenter şi resursele fizice pe care
acesta le înmagazinează. Astfel, pe un mediu „bare metal1” cu ajutorul
unui soft de virtualizare2, se pot crea mai multe maşini virtuale (figura
27), acestea acţionând ca entităţi distincte.
Figura 28 prezintă modalităţile de virtualizare a serverului şi diferenţa
dintre cele două metode.
Menţionăm că prin virtualizare, infrastructura hardware devine un
serviciu, maşinile virtuale instalate pe cele hardware devin
preponderente în cadrul infrastructurii astfel modul lor de funcţionare
poate fi afectat de anumite disfuncţionalităţi care pot fi la nivel fizic sau
software.

Figura 28. Tipuri de virtualizare a serverului (Postolache F. et al., 2010)


Software-ul, ocupând locul cel mai important în viaţa de zi cu zi, creşte
în importanţă interacţiunea dintre om şi computer, prin urmare,
capacitatea de a sprijini interacţiunile, în vederea reutilizării eficiente a
experienţei anterioare, reprezintă o provocare majoră pentru sistemele
actuale.

1
Un mediu „bare metal” este un sistem de calcul sau o reţea unde o maşină virtuală sau o reţea
virtuală este instalată direct pe hardware.
2
Software-ul utilizat în studiul nostru de caz a fost oferit de VMware prin licență academică.
158
9.3. Virtualizarea serverului
Dintre modalităţile diferite de virtualizare amintite mai sus,
virtualizarea serverelor este cea mai familiară, de aceea, termenul de
„virtualizare”, face referire de obicei la virtualizarea serverelor.
Virtualizarea este „un termen care se referă în linii mari la
abstractizarea resurselor calculatorului” utilizând „o tehnică care
ascunde caracteristicile fizice ale resurselor de calcul de modul în care
alte sisteme, aplicaţii, sau utilizatori finali interacţionează cu aceste
resurse”3.
Având la bază descrierile de mai sus, putem enunţa în continuare ce
reprezintă, de ce avem nevoie şi cum se realizează virtualizarea
serverelor.
Software-ul de virtualizare a serverului permite rularea mai multor
maşini client (virtuale) pe un calculator gazdă, având în acest timp
impresia că acele calculatoare client rulează pe propriile lor maşini
hardware (fig. 27). Datorită acestui considerent obţinem toate
beneficiile oricărui tip de virtualizare: portabilitatea maşinilor virtuale
client, reducerea costurilor de operare, reducerea supraîncărcării din
punct de vedere administrativ, consolidarea serverelor, posibilitate de
testare și de formare, precum şi beneficiile de recuperare în caz de
catastrofe şi, cel mai important, o singură consolă de administrare a
maşinilor și aplicaţiilor virtuale.
Dintre produsele de virtualizare a serverului cele mai utilizate sunt:
VMware vSphere, ESX Server, Hyper-V – tehnologia de virtualizare
Microsoft – inclusă în Windows Server, Xen, etc., acestea oferind
diferite niveluri de virtualizare. Astfel avem:
 emulare – sistemul de operare client este nemodificat, dar acesta
rulează pe CPU emulat software;
 para-virtualizare - sistemul de operare client este modificat, ca şi în
Xen;

3
http://en.wikipedia.org/wiki/Virtualisation .
159
 virtualizare completă – unde sistemul de operare client este
nemodificat şi rulează pe o maşina virtuală, crezând în acest timp că
rulează pe aceeaşi maşină hardware ca sistemul de operare gazdă;
Virtualizarea permite implementarea software-ului fără a modifica
sistemul de operare sau sistemul de fişiere concomitent cu reducerea
semnificativă a conflictelor dintre aplicaţii, permiţând astfel folosirea
unei singure aplicaţii pe multiple versiuni ale sistemelor de operare. Cu
alte cuvinte (conform Vmware), aplicaţiile sunt mai uşor de asigurat,
implementat, actualizat şi în cazul apariţiei nefuncţionalităţii ei, se
poate reveni la pasul anterior modificării ei (rollback).

9.4. Virtualizarea reţelei


Când vorbim de virtualizarea reţelei, cu siguranţă gândul se îndreaptă
către VLAN. Utilizarea VLAN-urilor în reţeaua internă, nu înseamnă
că avem deja o virtualizare a reţelei deoarece VLAN-ul, reprezintă o
reţea LAN „virtuală”, pe când virtualizarea presupune mai mult decât
folosirea de VLAN-uri.
Ca şi alte forme de virtualizare, virtualizarea reţelei nu presupune nimic
nou, Sun şi HP aducând în discuţie virtualizarea reţelei de ani de zile.
Mai nou, Cisco a preluat problema virtualizării reţelei devenind experţi
în utilizarea ei la momentul actual, concretizată în mai multe servicii de
rutare şi de switch-ing.

Figura 29. Managementul lăţimii de banda în reţea (VMware ESX Server)


Cele trei componente ale virtualizării reţelei enunţate de Cisco sunt:
controlul accesului, izolarea caii, şi limitarea serviciilor. Concret, în
160
interiorul router-elor şi switch-urilor Cisco găsim serviciile de
securitate, stocare, VoIP, mobilitate, precum şi livrarea de aplicaţii,
ceea ce pentru Cisco reprezintă strategia lor privind îmbunătăţirea
infrastructurii de reţea, subliniind totodată importanţa dispozitivelor de
reţea şi modalitatea lor de a reprezenta o pârghie de acţionare asupra
infrastructurii reţelei.
Un alt furnizor de echipamente de reţea care are o iniţiativă la fel de
puternică privind virtualizarea reţelei este compania 3Com. 3Com
conţine un card de memorie care se introduce în router, pe acesta
aflându-se un server Linux complet funcţional care prezintă o
conexiune la coloana vertebrală a router-ului. Interesant este faptul că
pe acel server Linux, se pot instala aplicaţii cum ar fi un detector de
pachete de date, VoIP, aplicaţii de securitate, şi altele. Din 2010, pe
acest card ce conţine sistemul de operare Linux, poate rula servere
VMware sau Windows. Iniţiativa open-source privind virtualizarea
reţelei numită 3Com ON sau reţeaua liberă este încă în stadiu incipient
şi cu siguranţă adevăratele beneficii pentru profesionişti IT nu vor
întârzia să apară.

9.5. Virtualizarea spaţiului de stocare


Pe aceasta temă s-au făcut prezentări de produse, s-au ţinut conferinţe
şi workshop-uri, iar printre cei mai importanţi ofertanţi se numără IBM,
HP, Dell şi Datacore.
Virtualizarea spaţiului de stocare (SV4), ca şi virtualizarea reţelei, nu
înseamnă doar posesia unui SAN5 ci „abstractizarea la orice nivel în
software-ul de stocare şi stiva hardware”6.

4
SV – Storage Virtualization
5
SAN - Storage Area Network
6
http://en.wikipedia.org/wiki/Storage_virtualization
161
Figura 30. Virtualizare spaţiu stocare (VMware)

9.6. Consolidarea serverului


Reprezintă cea mai utilizată tehnica de virtualizare, numărându-se
printre temele dezbătute intens de către comunitatea specialiştilor. În
cadrul infrastructurii IT, folosirea integrală a capacităţii serverelor
impune anumite probleme, nu datorită funcţionării defectuoase cât
datorită incapacităţii de gestionare şi antrenare a resurselor. Astfel,
conform datelor furnizate de VMware, într-o infrastructură tradiţională,
o maşină fizică pe care este instalat un sistem de operare şi pe care
rulează câteva aplicaţii, utilizează între 10-25% din capacitatea maşinii
fizice, ceea ce ne conduce la faptul că mai mult de 75% din investiţia
făcută în infrastructura IT este irosită, iar din punct de vedere financiar
aceasta stare de fapt nu este de dorit.

Figura 31. Consolidarea serverului (VMware)

162
Practic, ţinând cont de conjunctura existentă, consolidarea serverului
reprezintă următorul pas în regândirea arhitecturii, lucru realizabil doar
prin virtualizarea resurselor fizice disponibile.

9.7. Abstractizarea infrastructurii IT


Virtualizarea, permiţând utilizarea cât mai eficientă a resurselor
hardware disponibile, constituie conform celor afirmate de către
comunitatea specialiştilor IT unul din beneficiile majore aduse unei
organizaţii. Îmbunătăţirea continuă a arhitecturii centrului de date are
ca principal scop reducerea costurilor de operare. Într-un proiect clasic
de virtualizare, blocurile hardware vizate sunt: spaţiul de stocare,
servere şi reţelele care le deservesc (figura 32).
Aici menţionăm faptul că nu orice aplicaţie necesită sau beneficiază de
avantajele instalării pe medii virtualizate şi de aceea este necesar ca
infrastructura să prezinte o oarecare flexibilitate care să suporte
instalarea aplicaţiilor atât pe hardware dedicat cât şi pe hardware
virtualizat.

Figura 32. Blocurile fizice din cadrul infrastructurii


Totuşi, pentru a beneficia de toate aceste avantaje pe care le promite
virtualizarea este necesar să dispunem de o infrastructură care
întradevăr poate suporta virtualizarea fiecărei componente fizice din
cadrul infrastructurii IT şi implicit a centrului de date (figura 33).

163
Figura 33. Abstractizare blocuri hardware
Astfel, în mod tradiţional, o infrastructura IT virtualizată ce deserveşte
întreg spectrul de utilizatori constă din straturi/blocuri care
abstractizează componentele echipamentelor hardware utilizate.

Figura 34. Abstractizare infrastructură IT (VMware)


1. Utilizatori. Centrul de date furnizează aplicaţii utilizatorilor conectaţi
cu ajutorul oricăror dispozitive fixe sau mobile care le permit acest
lucru (notebook-urilor, desktop-urilor tradiţionale sau virtuale, tablet
PC-urilor, telefoanelor inteligente, PDA-urilor etc.).
2. Reţele client. Acestea, în general, sunt optimizate pentru reducerea
costului în detrimentul performanţei, de aceea, conectarea la
164
DataCenter prin intermediul reţelei trebuie să se facă indiferent de tipul
clientului şi de instrumentul folosit pentru conectare.
3. Sistem de operare şi aplicaţii. La nivelul sistemului de operare
accentul este îndreptat către managementul resurselor alocate aplicaţiei,
rata de transfer către HDD, pe numărul proceselor aflate in background
cât şi numărul de clienţi conectaţi simultan. La acest nivel,
funcţionalitatea aplicaţiilor reprezintă cel mai important obiectiv ce
trebuie atent urmărit.
4. Abstractizare DataCenter. Se face în principal pentru a beneficia pe
cât posibil de capacitatea maximă a resurselor disponibile dar şi de
avantajele oferite de stratul de virtualizare în relaţia dintre clienţi şi
aplicaţii.
5. Reţea DataCenter. Centrele de date necesită o reţea sigură şi
performantă pentru a suporta mobilitatea aplicaţiilor dintre ele,
asigurată de o conectivitate de viteză în cadrul reţelei.
6. Abstractizare server. Reprezintă stratul software instalat pe platforma
hardware, necesar furnizării serviciilor care asigură managementul
resurselor fizice şi a serverelor ce intră în componenţă infrastructurii
virtualizate sau a norul informatic.
7. Servere. Găzduirea pe platforme fizice, puternice a serverelor virtuale
reprezintă o condiţie necesară deoarece consolidarea serverelor nu se
justifică daca avem puţine maşini virtuale per platformă.
8. Abstractizarea spaţiului de stocare. Este necesară atunci când
operaţiile nu trebuiesc întrerupte de un upgrade sau de o înlocuire a unui
dispozitiv de stocare.
9. Reţea spaţiu de stocare. Orice server trebuie sa aibă partajat spaţiul
de stocare şi să dispună de o conexiune redundantă cu SAN-ul în
vederea asigurării mobilităţii maşinii virtuale. Redundanţa impune ca
fiecare centru de date să dispună de cel puţin 2 SAN-uri fizice, separate
legare redundant prin reţele de mare viteză (fibră optică).
10. Spaţiu de stocare. Sistemul de stocare trebuie să fie capabil să
suporte orice tip de aplicaţie întrucât fiecare administrator dispune de o
strategie proprie.

165
11. Administrare infrastructură. Necesită coordonarea
comportamentului din LAN şi SAN indiferent dacă traficul se
desfăşoară pe acelaşi fir.
Administrarea resurselor disponibile ce intră în componenţa
straturilor/blocurilor, fie că sunt hardware sau software, se face cu
ajutorul unor interfeţe separate (figura 34), interfeţe care permit cu
uşurinţă gestionarea, monitorizarea şi configurarea resurselor
disponibile de la o consolă unică.
De asemenea, există și o nouă viziune asupra modelului tradiţional
descris anterior, bazată pe experienţa din depanarea/utilizarea
sistemelor virtuale, în vederea asigurării unui management al resurselor
sau cunoştinţelor pentru o diagnoză a defectelor mai eficientă. Totodată,
infrastructura IT virtualizată structurată conform noii viziuni ne permite
o aprofundare în cunoaşterea şi înţelegerea domeniului virtualizării, a
componentelor sale şi a relaţiilor dintre acestea.

Figura 35. Grupare blocuri


Din raţiuni pur economice, în cadrul infrastructurii existente s-au grupat
blocurile/straturile ce semnifică reţelele spaţiului de stocare cu cea a
centrului de date (reţeaua fizică pentru traficul IP) eliminând astfel
separaţia fizică dintre blocurile aferente reţelelor, desigur fără o
îmbinare a serviciilor de reţea. Astfel, datorită virtualizării
componentelor reţelei existente administrăm mai bine următoarele
servicii: controlul accesului, izolarea caii şi limitarea serviciilor.
Similar s-a procedat la gruparea straturilor ce deservesc componentele
fizice şi a celor ce abstractizează componentele fizice (nu înseamnă ca
îmbinăm software-ul lor sau componentele hardware).
Această nouă abordare (figurile 36 si 37) privind abstractizarea
infrastructurii IT, pe lângă faptul că nu înlătură nici un bloc din
166
componenţa modelului standard, a permis gruparea anumitor blocuri
fără modificarea interfeţelor de administrare prevăzute pentru
gestionarea, monitorizarea şi configurarea serviciilor, asigurând
totodată o funcţionare în parametri optimi.

Figura 36. Abstractizare infrastructură IT propusă

Figura 37. Model implementat


Astfel, pe infrastructura IT, norul informatic şi virtualizarea serverului
se completează reciproc datorită următoarelor considerente:
 Ambele au necesitat o infrastructură fizică robustă, bazându-se
puternic pe reţea şi implicând o regândire a infrastructurii tradiţionale.
 Serviciile norului informatic sunt implementate după ce DataCenter-
ul este virtualizat, altfel spus, doar stratul de virtualizare suportă
arhitectura Cloud.
167
 Norul informatic adaugă un nou strat de virtualizare între utilizatorul
final şi întregul mediu informatic abstractizat.

Avantaje
 Costul. Indiferent de condiţia economică a posesorului
infrastructurii, avem avantajul unui cost scăzut, deoarece că pe „un
singur cablu” vom avea tot traficul, eliminând necesarul de
echipamente suplimentare separării reţelelor. Datorită faptului că
echipamentele folosite de LAN şi SAN devin comune, administrarea
echipamentelor este mai convenabilă, conducând la o monitorizare mai
facilă a traficului.
 Administrarea infrastructurii. Folosirea consolei unice de
administrare înlătură inconvenientele întâlnite în cazul arhitecturii
tradiţionale (multiple interfeţe de administrare, timpi de deplasare,
asigurarea funcţionalităţii și rezolvarea conflictelor, etc.).
 Consolidarea serverului. Se observă o semnificativă diminuare a
numărului de servere fizice concomitent cu creşterea gradului de
utilizare a resurselor hardware existente.
 Disponibilitatea resurselor. Reprezintă punctul forte al abordării
deoarece putem dispune oricând de o anumită resursă chiar dacă ea este
alocată iniţial unei alte maşini virtuale. Aici facem referire la toate
resursele fizice abstractizate (disk, reţea, memorie, procesor, etc.) de
care dispunem în cadrul infrastructurii.
 Testarea noilor soluţii. Datorită timpului redus şi uşurinţei de a crea
noi servere se creează rapid premisele unui mediu propice testării
noului software, update-urilor, patch-urilor etc.
 Securitatea. Tehnicile şi instrumentele hackerilor sunt în principal
destinate pentru IP sau intranet de aceea ele nu funcţionează în cazul
SAN-urilor Fiber Chanel. Fizic este imposibil să separăm aceste reţele,
în schimb administrarea lor se poate face separat. Existenţa unui strat
de separaţie dintre SAN şi sursele de ameninţare din reţelele IP fac
tehnicile de atac inutile.

168
 Infrastructura verde. Conform VMware, pentru fiecare server
virtualizat se economisesc aproximativ 7KW/oră echivalentul a 4 tone
de dioxid de carbon/an. Acest aspect nu este deloc de neglijat din punct
de vedere economic, fiind concretizat prin diminuarea facturilor.
Dezavantaje
 Constrângerile I/O. Acestea constituie un impediment în ceea ce
priveşte transportul informaţiilor deoarece un număr mic de dispozitive
I/O deservesc un număr crescut de maşini virtuale.
 Configurările LAN sau SAN. Datorită faptului că fizic este imposibil
să separăm aceste reţele, ele se pot administra separat şi tocmai acest
lucru este posibil să afecteze procedurile operaţionale şi de întreţinere
ale infrastructurii. Un posibil dezavantaj îl constituie, în modelul
propus, momentul intervenţiei în configurările de LAN sau SAN.
Datorită unificării blocurilor, dacă intervenim în LAN, se produc
modificări implicit şi în SAN şi viceversa.
 Funcţionalitatea aplicaţiilor. Un alt considerent pe care este posibil
sa îl întâlnim îl constituie faptul că nu toate aplicaţiile vor fi funcţionale
în modelul propus. Pot apare posibile întârzieri în cadrul proceselor de
instalare şi accesare a sistemului de operare şi implicit a aplicaţiilor
suportate de acesta.
Datorită conjuncturii economice actuale, dar şi problemelor impuse de
securitatea sistemelor informatice, companiile au început să utilizeze
tehnologii de virtualizare pentru a-şi proteja cât mai bine cele mai
valoroase active: datele stocate. Micşorarea costurilor implicate de
investiţiile în hardware, software şi de acordare a licenţelor precum şi
reducerea facturilor la utilităţi, minimizarea timpilor de nefuncţionare
ale echipamentelor precum şi simplificarea şi raţionalizarea proceselor
de administrare constituie obiective de care putem beneficia prin
virtualizare. Această tehnologie schimbă modul în care un centru de
date funcţionează, este gestionat şi administrat. De exemplu, înainte de
a implementa virtualizarea, se ştia în orice moment care sunt aplicaţiile
cele mai utilizate, pe ce maşini fizice sunt instalate, cât din resursele
maşinii sunt folosite, care sunt momentele de încărcare maximă etc.
Datorită virtualizării, aceasta legătură tradiţională dintre hardware şi
169
software este ruptă, iar acest lucru creează o mai bună perspectivă
privind funcţionalitatea şi rezolvarea conflictelor.
Virtualizarea are un impact major asupra infrastructurii fizice, datorită
puterii de calcul necesară dispozitivelor fizice ce suportă multiple
maşini virtuale, precum şi o anumită capacitate a reţelei pentru a
satisface cererile de transfer dintre maşinile virtuale şi cele fizice.
Datorită profilului ciclic de funcţionare a aplicaţiilor, administratorii au
o privire de ansamblu globală asupra sistemului, cunoscând modul de
funcţionare al acestuia şi care sunt aplicaţiile şi momentele ce încetinesc
performanţa sistemului. Punctul forte îl constituie administrarea
întregului sistem informatic virtual folosind o singură consolă.
Bineînţeles că ne lovim mereu de noi probleme şi impedimente, de
aceea trebuie să ţinem seama că este posibil ca o aplicaţie pe care astăzi
o virtualizăm să trebuiască mutată înapoi pe un mediu fizic, ca urmare
a necesarului de putere de calcul sau datorită unor procese prioritare.
Trebuie analizat în detaliu cu ce instrumente operăm pentru migrarea
maşinilor şi aplicaţiilor către un mediu virtual, asigurându-ne că selecţia
a fost corectă în cazul în care trecem înapoi la un server fizic sau
migram aplicaţia către o altă maşină virtuală instalată pe o maşină
hardware diferită.

170
10. Utilizarea calculatoarelor pentru
aplicaţii de birou

Programele care permit realizarea unei utilităţi umane (în prelucrarea


informaţiilor) se numesc programe de aplicaţie. De fapt, acestea au
reprezentat scopul construirii şi programării calculatoarelor, între cele
mai uzuale aplicaţii putând fi enumerate (cu caracteristicile lor
esenţiale):
 procesoare de texte – permit editarea, formatarea, corectarea şi
tipărirea textelor;
 foi de calcul tabelar – permit crearea de tabele, cu expresii de calcul
şi funcţii diverse, cu facilităţi de creare şi modificare histograme;
 aplicaţii de grafică pe calculator – permit crearea, prelucrarea şi
tipărirea materialelor grafice;
 navigatoare web – permit accesarea site-urilor distante şi
interacţiunea cu ele;
 poştă electronică – permite transmiterea de mesaje şi documente la
persoane fizice şi instituţii care au o adresă Internet.
Între aceste categorii de aplicaţii, primele două şi ultimele două fac
parte, în general, din pachete de tip „Office” (pachete cu aplicaţii de
birou), produse de diferite firme (de ex. Microsoft, SUN etc.).
Lucrarea are ca scop prezentarea sistematică a modului cum se
organizează şi apoi cum se prelucrează informaţia pentru primele şi
respectiv ultimele două categorii de aplicaţii. Acest scop se înscrie, de
altfel, în ideea generală al acestui material: introducere în Tehnologia
Informaţiei şi Comunicaţiilor (TIC). Astfel, utilizarea pentru diverse
scopuri din viaţa obişnuită a uneltei numită calculator face parte în mod
natural din prezentarea propusă.
171
Pe parcursul acestui material se vor prezenta principii de lucru şi
facilităţi oferite în general de procesoarele de texte şi calcul tabelar,
manevre de operare pentru cele mai importante acţiuni desfăşurate la
realizarea, modificarea şi afişarea documentelor cu aceste aplicaţii,
folosind produse din pachetul Office al firmei Microsoft. Totuşi, la
prezentarea principiilor de lucru şi elementelor celor două categorii de
produse, se vor folosi capturi de ecran. Pentru a păstra caracterul de
generalitate impus de ideea acestei lucrări, se vor descrie operaţiuni şi
facilităţi ce se regăsesc la cele mai multe produse de acest fel, de la
diverşi producători.

10.1. Procesoare de texte


Realizarea şi modificarea documentelor scrise este o muncă migăloasă
şi dificilă, fiindcă ea implică nu doar scrierea conţinutului de text, ci şi:
 organizarea ideilor – pe module, submodule şi paragrafe;
 modificarea textului – cu mutarea unor părţi, înlocuirea sau
eliminarea lor;
 crearea de liste şi tabele;
 inserarea de imagini, grafice, desene intuitive (cum sunt
diagramele);
 aranjarea textului în pagină, cu antet, subsol, note de subsol,
numerotare de pagini;
 alegerea tipurilor de caractere, cu dimensiuni, stiluri şi efecte
adecvate unui context dat;
 corectarea – ortografică şi gramaticală, a textului.
Dacă unele operaţii (primele trei) se execută manual, pe foaia de hârtie
scrisă de mână, următoarele operaţii (la tipografie de exemplu) durează
foarte mult şi uneori rezultatul nu arăta aşa cum ne-am dorit.
Folosind un procesor de texte, se poate face nu numai editare textului,
ci toate operaţiile mai sus menționate, dar şi:
 evidenţa corecturilor în versiuni succesive ale documentului;
 numerotarea automată a figurilor, tabelelor şi notelor de subsol,
eventual cu indexarea unei liste inventar de figuri şi tabele;
172
 trimiteri la module, figuri, paragrafe – ce pot fi utilizate direct în
forma electronică;
 realizarea de legături cu alte documente.
În plus, documentul rezultat poate fi vizualizat, înainte de tipărire, aşa
cum va arăta el la final, urmând a fi tipărit apoi pe foi faţă-verso.
Totodată, materialul prezenta elemente de organizare şi formatare a
documentelor scrise (cu referire la punctele 1.11 de mai sus), unde se
vor evidenţia modalităţile pe care un procesor de texte le pune la
dispoziţia utilizatorului pentru a realiza documente cu aspect
profesionist. Exemplificarea acestor aspecte se va face cu pictograme
din interfaţa procesorului de texte MS Word (indiferent de variantă),
dar aspectele sunt similare şi la alte procesoare de texte (de la alţi
producători), unele folosind chiar aceleaşi pictograme.

10.1.1. Structura a unui document scris


În activitatea sa omul creează, modifică şi foloseşte multe tipuri de
documente – funcţie de profesia şi scopurile fiecăruia începând de la
scrisori până la teze de doctorat. Realizarea documentului, oricare ar fi
el, prezintă o structură a informaţiei, o structură a foii tipărite şi o
structură a conţinutului de idei. Pentru fiecare din aceste structuri,
procesorul de texte oferă mijloace specifice de realizare, personalizare
şi automatizare a operaţiunilor de editare a informaţiei.
Structura informaţiei în document
În continuare, se va prezenta structura de blocuri cu informaţii dintr-un
document generic de tip raport care, dependent de destinaţia sa, poate
conţine sau nu elemente mai speciale, prezentate în lista de mai jos (cum
sunt a., c., d., e., f.) dar prezintă obligatoriu conţinut (b.). Fiecare din
aceste blocuri de informaţii (codificate prescurtat prin trei litere)
cuprinde elemente specifice denumite câmpuri („fields” – codificate
prescurtat prin două litere) pe care procesorul de texte le gestionează şi
ajută astfel la modificarea şi consultarea informaţiei – în perioada
editării şi apoi a utilizării ei.
Blocurile și elementele lor, se prezintă astfel.

173
a) Cuprins – inventarul denumirilor de module şi submodule, cu
paginile de început.
b) Conţinut – text în care sunt inserate imagini, tabele, figuri, etc.
tratând ideile de interes.
c) Index – inventarul cuvintelor cheie ce apar în text, cu paginile în
care sunt explicate.
d) Listă de figuri – inventarul figurilor, cu numărul de ordine şi textul
lămuritor.
e) Listă de table – inventarul tabelelor, cu numărul de ordine şi textul
lămuritor.
f) Bibliografie – inventarul lucrărilor citate în textul documentului.
Cuprinsul este realizat prin intermediul denumirilor de modul şi
submodul („Heading”), etc. fiecare din acestea fiind declarate pe nivelul
ierarhic corespunzător Denumire (de nivel) 1 –modul, Denumire (de
nivel) 2 – submodul, Denumire (de nivel) 3 – submodul inferior, etc.).
Aceste denumiri sunt declarate la editare şi colectate apoi automat la
realizarea cuprinsului („Table of Contents” - TOC).
Indexul este realizat prin declararea, la editare, a cuvintelor cheie
(„index entry” - XE) care vor face parte apoi din index; ele sunt
colectate automat şi introduse în lista index („index”).
Lista de figuri şi lista de tabele se realizează automat dacă anterior s-
au declarat şi figuri cu număr de secvenţă automat şi tabele cu număr
de secvenţă automat („sequence - SEQ”). Evidenţa figurilor şi tabelelor
este ţinută de procesorul de texte care, la inserarea unei noi figuri (sau
tabel) între altele două existente, permite actualizarea şi menţinerea
ordinii corecte a acestor elemente.
Bibliografia se realizează prin mijlocirea referinţelor bibliografice
(„reference”, „Index and Tables” - câmp TA) introduse în text, iar apoi
colectate şi legate de titlurile cărţilor respective înscrise în bibliografie
( „Tabel of Authorities” - TOA).
În general, un element cu legătura se numeşte referinţă („reference”) şi
se declară specific (prin meniul Insert Reference). Unor elemente cu
legătură, folosite în blocuri de informaţii, li se ataşează unui câmp prin
„captură” („caption”); captura se poate face de exemplu către: o figură,

174
un tabel, o denumire de modul sau submodul („Heading”), notă de
subsol („footnote”) sau relaţie de tip ecuaţie („equation” - EQ).
Structura de conţinut a documentului
Blocul cu informaţiile esenţiale ale unui document reprezintă
conţinutul său. Acesta cuprinde – pe lângă text, imagini, tabele, liste,
etc., ca forme de reprezentare a informaţiei - elementele de structură
ale conţinutului:
a. Denumire de modul sau submodul („Heading”) – exprimare generică
impersonală a ideilor din modul sau submodul, care nu se încheie cu
punct (chiar propoziţie fiind).
b. Secţiune – parte din conţinut separată prin marcaje speciale (separator
de secţiune – „section break”) şi de capetele de document (început sau
sfârşit).
c. Pagini – parte de conţinut tipărită pe o singură foaie, separată de
restul conţinutului prin curgerea naturală a textului sau prin separator
de pagină („page break”).
d. Coloană – aranjare a textului pe verticală, de obicei pe o lăţime mai
mică decât lăţimea paginii, pentru înlesnirea citirii rapide; este declarată
prin coloane multiple („column”).
e. Paragraf – parte de text, formată dintr-una sau mai multe fraze, pe
una sau mai multe linii de text, ce se referă la o singură idee sau un
singur obiect („paragraph”), cuprins intre două Enter-uri.
f. Notă de subsol – informaţie lămuritoare numerotată, înscrisă în josul
pagini (şi separată, în general, cu o linie de restul textului). Conţine
referinţe bibliografice, trimiteri sau note ce detaliază aspecte particulare
din text („footnote”).
Fiecare din aceste elemente trebuie declarate specific: denumirile prin
elemente de stil, secţiunile şi paginile prin separatori inseraţi în
conţinut, coloanele prin aranjarea textului folosind opţiuni „column”,
paragrafele ca text unitar înscris fără salt la o nouă linie („Enter” sau
„Return”), notele de subsol prin inserarea indicelui superior
(„footnote”).

175
Structura foii tipărite
Fiind destinat a fi tipărit pe hârtie, documentul trebuie pregătit pentru a
fi încadrat corect pe foaia de hârtie. În structura foii tipărite există:
a. Margini libere („Margins”) – la bordurile sus, jos, stânga, dreapta ale
foii. În aceste borduri nu este recomandat să se înscrie text, fiindcă
procesorul permite totuşi acest lucru, dar nu mai are sens declararea
marginii libere).
b. Rigolă („Gutter”) – bordură laterală (stânga – pe pagini impare,
dreapta - pe pagini pare) lăsată liberă pentru legarea foilor
documentului într-o carte.
c. Antet („Header”) – zonă de text pe marginea de sus a foii, în care se
înscriu, de obicei, informaţii referitoare la emitentul documentului:
numele firmei sau autorului, logo (mică imagine simbol a firmei),
adresa, numere de telefon, numărul de pagină (uneori).
d. Subsol („piciorul” paginii – „footer”) – zonă de text pe marginea de
jos a foii, în care se înscriu, de obicei, informaţii referitoare la versiunea
documentului, data şi ora emiterii, texte predefinite („autotext”),
numărul de pagină (eventual „din numărul total” – de ex. 5/22) plasat
în extrema dreaptă sau în centrul paginii pe bordura de jos.
Aceste elemente se stabilesc din opţiunea referitoare la „încadrarea în
pagină” („Page Setup”), iar pentru antet şi subsol din opţiunea de
vizionare a documentului („View” sau „Insert”).
La tipărirea documentului pe foi faţă-verso, rigola se va plasa diferit pe
o faţă şi pe cealaltă – în oglindă („mirror margins”). Similar, pentru
antet şi subsol se pot stabili texte diferite pentru faţă şi pentru verso
(pagină pară şi impară) sau diferite doar pentru prima pagină din modul.

10.1.2. Scrierea textului – caractere şi paragrafe


Textul propriu-zis este o înşiruire de simboluri de scriere grupate în
cuvinte, acestea în fraze pe linii, formând paragrafe. Aceste banalităţi
a fost amintite aici pentru că elementele menţionate constituie
elementele de bază pentru prelucrarea textelor, efectuate de procesorul
de texte. Astfel, cuvintele trebuie separate cu un singur spaţiu
176
(obligatoriu chiar şi atunci când apar semne de punctuaţie) pentru ca
procesorul să poată executa analizele ortografice şi gramaticale corect
dar şi pentru respectarea regulilor estetice şi ortografice uzuale.
Selectarea (marcarea) zonelor de text prezintă comenzi speciale pentru
2
fiecare din elementele menţionate: dublu click – selectează cuvântul
3
indicat, triplu click – selectează paragraful, indicator pe marginea
stânga a paginii (ia forma ) şi click – selectează rândul indicat, etc.
Caractere
Literele, cifrele, semnele de punctuaţie şi alte semne grafice, folosite în
text, pot avea diferite desene şi moduri de plasare pe foaie şi moduri de
evidenţiere. Acestea sunt
a. Tipul caracterului („font”) – desenul literei (simbolului) de scriere,
cu un nume:Times New Roman, Arial, Courier New, Impact, Book
etc.
b. Stilul caracterului („font style”) – evidenţierea caracterelor într-unul
din modurile: Îngroşat (aldin – „bold”), Înclinat (cursiv - „italic”),
Subliniat („underline”).
c. Dimensiunea caracterului – mărimea sa exprimată în puncte
tipografice (pt.): 8 pt, 10 pt, 14 pt, 18 pt, 28 pt, 36 pt, 48 pt.
d. Efecte – indicesuperior, indiceinferior, Majuscule Mici, Umbrit, Sculptat,
Tăiat
e. Culori – Roşu, Verde, Albastru, Gri.
f. Spaţiul între caractere: Normal, E x p a n a d a t , Condensat
g. Poziţia pe rând: pe Mijloc, Ridicat, Coborât
h. Animaţie: Clipire, „Las Vegas Lights” (firme luminoase), „Sparkle
Text” (Artificii)
Obs: Aceste facilităţi ale caracterelor se utilizează cu moderaţie,
pentru a nu încărca textul cu forme prea multe şi inutile.
De exemplu, nu se evidenţiază un text cu mai multe metode simultan –
de exemplu îngroşat-subliniat-înclinat. Dimensiunile caracterelor se

177
aleg funcţie de partea din text scrisă: Denumire modul, Denumire
submodul, Alineat [Fune…..].
Paragrafe
Pe parcursul unui paragraf, saltul la rând nou se face automat, astfel ca
utilizatorul să nu fie preocupat de formă ci numai de conţinut. Sfârşitul
de paragraf este ocupat de simbolul , care este şi depozitarul întregii
informaţii de formatare a paragrafului. Acest simbol şi altele – asociate
nu unor caractere ci unor acţiuni în text, se fac vizibile prin apăsarea
butonului Hide/Show( ). Asemenea acţiuni, pe lângă saltul la un nou
rând, sunt saltul la o pagină nouă, la o nouă secţiune, etc.
Paragrafele pot fi:
a.Aliniate (faţă de marginile libere ale foii) – stânga, dreapta, centrat
sau justificat („justify”) - marginile foii sunt şi verticalele de aliniere
ale rândurilor.
b.Indentate – adică adâncite spre interiorul paginii, dinspre stânga sau
dinspre dreapta. Cel mai uzual mod de adâncire este al primei linii din
paragraf, spre dreapta („First line indent”). Modificarea adâncirilor se
poate face şi din marcaje situate pe rigla orizontală.
c.Spaţiate – la un rând („Single”), la un rând-jumatate (1/2 Lines), la
două rânduri („Double”).
d.Separate cu spaţii libere înainte sau/şi după paragraf („After”,
„Before”).

Figura 38. Marcaje de indentare şi Tabulatori


178
Alinierile şi indentările sunt necesare pentru o înscriere codificată prin
poziţia textului. De exemplu, denumirile de modul sau submodul se
aliniază centrat, iar textul spre stânga sau justificat; numerele se aliniază
spre dreapta, pentru a avea ranguri de acelaşi ordin, unele sub altele -
chiar dacă lungimea numerelor de pe coloană diferă.
Alinierea paragrafelor se face numai cu ajutorul opţiunilor de meniu
(„Paragraph”) sau din butoanele aflate în bara de unelte prin pe
unul din butoanele .
Indentarea se realizează din opţiunile de meniu („Paragraph”) sau din
marcajele 2 (cap săgeată „Left indent” cu pătrăţel „Hanging indent”),
3 („First Line indent”), şi 7 („Right indent”) de pe riglă - v.fig 38.

Indentarea cu un spaţiu predefinit se poate realiza şi cu butoane pe bara


de unelte: - „Increase indent” şi - „Decrease indent”.
Alinierea sau indentarea folosind spaţii repetate sau tabulatori face din
calculator o maşină de scris, deci nu contribuie de loc la eficientizarea
muncii de editare, din contră, mai mult încurcă, iar investiţia într-un
calculator nu se justifică.
Paragrafele pot fi încadrate în chenare – atunci când se doreşte scoaterea
lor în evidenţă, tratând o idee foarte importantă. Încadrarea în chenar se
poate face şi pentru întreaga pagină. Chenarele pot avea efecte precum
umbre, şerpuiri, culori, etc.
Paragrafele care încheie o pagină pot să aibă primul rând pe o pagină şi
restul pe cealaltă (rând văduv) sau ultimul rând să fie singur pe pagina
nouă (rând orfan). Fiindcă acest lucru nu este estetic, se poate seta o
opţiune de „paragraf fără rând văduv/orfan” („Widow/Orphan control”)
prin care liniile se menţin grupate (adică) pe aceeaşi pagină şi se lasă
rânduri libere pe pagina precedentă.
Tabulatori
Există caractere care nu sunt simboluri grafice ci execută acţiuni (cum
sunt „Enter”, caracterele asociate tastelor de ştergere Backspace” şi
„Delete”); între acestea, se află un caracter (Tab) care efectuează salturi
orizontale între marcaje prestabilite, denumite „Tab-stop”. Fiindcă
aceste salturi erau utilizate iniţial pentru parcurgerea coloanelor unui
179
tabel, aceste caractere sunt denumite tabulatori; marcajele de tabulare
(Tab-stop) se obţin prin apăsarea tastei Tab.
Tipuri principale de tabulatori sunt prezentate mai jos (v.fig 38) şi se
obţin prin click succesiv pe colţul stânga sus al panoului de afişare
document:
tabulare stânga 6 („Left tab” – text aliniat stânga de la Tab-stop),
tabulare centru 5 („Center tab” – text aliniat centrat),
tabulare dreapta 4 („Right tab” – text aliniat dreapta),
Utilizarea tabulatorilor în procesoarele de texte este de mare folos în
linii de text cu structură complexă (alinieri diverse pe aceeaşi linie,
puncte sau linii „de urmărire” pentru linii cu spaţii libere mari în
interior).

10.1.3. Liste şi tabele


Aranjarea textului pe linii marcate (în liste) şi în plus folosind coloane
(în tabele) permite observarea mai uşoară a clasificărilor sau ordinii
între idei şi obiecte. Listele şi tabelele sunt deci forme de organizare
vizuală a mai multor obiecte, în cazul tabelelor incluzând şi proprietăţile
lor. Utilizarea listelor şi tabelelor este indicată atunci când se enumeră
obiecte sau idei diferite (şi proprietăţile lor), când se face o clasificare
sau când se urmăreşte o organizare clară a multor informaţii diferite
privitoare la un set de obiecte.
Liste numerotate şi ne-numerotate (marcatori)
O listă de idei este mai uşor lizibilă decât un text ne-organizat, fiindcă
fiecare idee constituie un reper în listă şi poate fi marcat cu diverse
simboluri (vezi casetele din figura 39).
Dacă informaţia de bază a reperelor are caracter de succesiune,
cronologic sau ierarhic, ordinea trebuie subliniată cu simboluri ordinale
(care deţin ordine intrinsecă), cum sunt numerele (în scriere arabă sau
romană) sau literele (majuscule sau nu).

180
1. Luni ... 1. Luni
2. Marţi ... 1.1.Dimineaţa ...
3. Miercuri ... 1.2.Prânz ...
4. Joi ... 1.3.Seara ...
5. Vineri ... 2. Marţi
6. Sâmbătă ... 2.1.Dimineaţa ...
7. Duminică ... 2.2.Prânz ...
a) b)

 Mere  Mere
 Pere  Ionatan
 Prune  Golden
 Banane  Lucioase
 Struguri  Pătate
 Ananas  Pere
 Prune
c)  d)
Figura 39. Liste numerotate (a, b) şi ne-numerotate (c, d)
O listă marcată cu simboluri ordinale se numeşte listă numerotată
(„numbered list”) – v.fig. 39a). O listă ierarhizată este numerotată cu
subpuncte („outline numbered list”) – v. v.fig. 39b). Dacă informaţia de
bază nu necesită prezentare ordonată, reperele se marchează cu
simboluri grafice - v. v.fig. 39c) - într-o listă ne-numerotată (cu buline
– „bulleted list”). Lista poate prezenta la fiecare reper categorii (adică
este ierarhizată) şi devine listă ne-numerotată cu subpuncte,-v.fig. 39d).
Listele pot fi create chiar în timpul editării sau la finalul creării ei,
declarând tipul de listă prin opţiunea de meniu („Bullets and
Numbering”) sau prin butoanele . Un subpunct se obţine prin
adâncirea textului cu Tab la început de rând sau cu - „Increase
indent”, iar revenirea la nivelul subpunct anterior se face cu Shift-Tab
la început de rând sau cu - „Decrease indent”.
Tabele
Organizarea informaţiilor în tabele este utilă pentru date structurate de
tip articol.

181
1 2 3 4 5 6

Figura 40. Structura unui tabel şi rigla orizontală asociată


Pentru tabelul prezentat în Figura 40 există următoarele elemente şi
modalităţi de lucru:
1 marcaj tabel prin intermediul căruia se poate selecta şi muta întreg
tabelul (diametral opus este marcajul de redimensionare).
2 marcaj separator de coloană în rigla orizontală – permite
modificarea dimensiunii coloanei, prin glisare . Marcaje similare
există pe rigla verticală – pentru redimensionarea rândurilor.
3 coloană (rubrică) în care se află celule 4 , cu valori înscrise.
5 celulă comasată/îmbinată (opţiunea „Table-Merge Cells”) pentru
coloane cu subcoloane. Operaţia inversă, de scindare/despicare a
celulei, se face prin opţiunea „Table-Split Cells”).
6 este spaţiul unei celule care prezintă (la editarea sa) marcaje
specifice de indentare.
Modificarea dimensiunilor coloanelor şi rândurilor se poate face şi prin
glisare , când indicatorul este plasat pe liniatură şi ia forma -
pentru coloane sau - pentru rânduri.
Imagini şi plasarea lor în text
Imaginile care se pot introduce într-un document scris pot fi aduse din
biblioteca de clip-uri ataşată produsului („Clip Art”) sau din fişiere
aflate pe disc („From File”), ambele posibilităţi fiind accesibile din
meniu („Insert - Pictures”) sau din bara de unelte.

182
După inserare, se pot stabili diferite proprietăţi ale acestor obiecte
(meniul „Format Object”):
a. Culorile fundalului şi liniei, tipul de linie(„Colors and Lines”);
b.Dimensiunea imaginii („Size”) :poate fi redimensionată la scară dată
sau exprimată dimensiunea explicit în unităţi de măsură – ţoli sau
centimetri;
c.Plasarea imaginii în text („Layout”) - indicată sugestiv prin
pictograme ca în Figura 41, adică înconjurată de text (într-un cadru
depărtat „Square”, cadru strâns „Tight” sau direct înconjurată
„Through”), peste text (în spate „”Behind text” sau în faţă „În front of
text”) ori separată de text (în continuare „În line with text” sau singură
pe lăţimea paginii „Top and Bottom”).

Figura 41. Plasarea imaginii în text


Imaginile sunt obiecte plasate în document, care pot fi redimensionate
(indicator de mouse plasat pe muchia sa, devine apoi este glisat
), pot fi copiate şi mutate (prin manevre de editare), pot fi transferate
între aplicaţii (de prelucrare grafică, de calcul electronic, etc.)

10.1.4. Verificarea şi corectarea ortografică şi gramaticală


Scriitorii de meserie foloseau maşina de scris direct în momentul
creaţiei. În mod similar, astăzi, mulţi folosesc calculatorul. În
momentele în care ideea se aşterne pe hârtie (fie ea şi electronică pe
ecranul calculatorului) nu este posibil, şi nu este indicat ca atenţia
creatorului să fie îndreptată spre alte chestiuni decât ideea. De aceea,
este posibil să apară erori ortografice (privind corectitudinea cuvintelor)
şi gramaticale (privind modul de combinare a cuvintelor). Procesorul
de texte ajută şi în acest caz, realizând verificarea ortografică şi
183
gramaticală, prin indicarea cuvintelor şi frazelor eronate sau chiar
corectarea celor la care „recunoaşte” erori sistematice (de exemplu
inversarea unor litere într-un anumit cuvânt).
Verificarea ortografică şi gramaticală trebuie „activată” din meniu
corespunzător („Spelling and Grammar – Check spelling as you type”
şi Check grammar as you type”). Erorile ortografice apar subliniate cu
linie şerpuită roşie, iar cele gramaticale subliniate cu linie şerpuită
verde.

Figura 42. Fereastra Tezaur – pentru cuvinte în limba engleză


Unele cuvinte se pot corecta automat – dacă au fost înscrise cu forma
eronată (în coloana „Replace”) şi cea corectă (în coloana „With”) în
lista „Replace text as you type” oferit de Corectorul Automat
(„AutoCorect”) prezentat cu fereastra de dialog specifică în Figura 43.
Corectarea se face folosind tot ajutorul procesorului, astfel, corectura
ortografică: pentru cuvintele subliniate se pot solicita sugestii privind
sinonime sau antonime preluate intr-un dicţionar de cuvinte instalat
alături de procesorul de texte;. cuvintele sinonime se pot consulta şi cu
ajutorul opţiunii Tezaur („Thesaurus”) – v. . Dacă unul din cuvinte este
convenabil se înlocuieşte precedentul (v. butonul „Replace”).
După cum se observă în această listă, se pot înlocui şi anumite secvenţe
de caractere cu desene explicite – cum sunt „emoticon” din mesajele
text de poştă electronică.

184
Figura 43. Caseta de dialog pentru auto-corectură

10.1.5. Lucrul cu documente


Crearea textului şi modificarea sa necesită operaţii multiple, cum sunt
de exemplu copierea sau mutarea unor zone de text, căutarea unor şiruri
de caractere (frânturi de cuvinte, cuvinte sau chiar fraze) şi, eventual,
înlocuirea lor cu şiruri de caractere. După ce textul a fost realizat este
indicată salvarea lui în forma curentă (chiar ne-finalizată), pentru ca
lucrul să fie reluat mai târziu, pentru utilizarea formei electronice sau
pentru tipărirea ulterioară.
Manevre de Editare
O modificare în text cuprinde, de obicei, trei faze:
1) Selectarea zonei text de editat – prin care se face marcarea
(indicarea) zonei de editat, cu manevre descrise; la acestea se
adaugă: glisare peste zonă, parcurgerea ei cu Shift-săgeţi
(taste , , , ).

185
2) Manevra pregătitoare – prin care se face o copie a zonei de editat
într-o memorie anume („Clipboard”); de exemplu comanda „Edit
– Copy” sau „Edit – Cut” .
3) Manevra de modificare – prin care se face efectiv schimbarea
dorită; de exemplu mutarea cursorului clipitor şi comanda „Edit -
Paste” , schimbare font, etc.
Lucrul cu ferestre
Pentru operaţiuni efectuate cu mai multe documente, ferestrele acestora
se pot aranja pentru a înlesni vizionarea lor pe acelaşi ecran, fără a
comuta de pe una pe alta.

Figura 44. Meniu pentru lucrul cu Ferestre

Se pot vizualiza mai multe ferestre prin opţiunea „Arrange All”, (v.
Figura 44) dar se pot vizualiza două părţi ale aceluiaşi document
simultan, prin opţiunea „Split” – care „despică” documentul şi permite
derularea independentă a fiecărei părţi, pentru vizionarea lor simultană
(de exemplu atunci când se doreşte consultarea uneia din părţi în timp
ce se lucrează la cealaltă).
După cum se observă în Figura 44, documentele deschise apar în lista
de meniu şi pot fi activate pe rând (cea activă indicată prin ).
Lucrul cu fişiere document
La încheierea lucrului cu documentul sau ori de câte ori este nevoie, se
face salvarea documentului într-un fişier pe disc (ce prezintă extensia
corespunzătoare – la MS Word .doc, .docx”), cu comanda „File - Save”
sau ; se recomandă salvarea cât de des posibil, pentru a evita surprize
neplăcute care pot apare în timpul lucrului, incidente ce duc la pierderea
de date. Salvarea documentului se poate face şi în alte formate decât cel
implicit, cum sunt formatele standard RTF („Rich Text Format” –
186
extensia .rtf), pagină Web (format HTML - extensia .html), sau text
simplu (extensia .txt). Formatul RTF permite portarea documentului pe
alte procesoare de texte, iar formatul HTML permite publicarea
documentului ca pagină web pe o maşină server Web (numită generic
„site”).
Ulterior salvării, documentul se „deschide” prin comanda „File –
Open” sau .
Tipărirea documentului se face prin comanda „File - Print” sau prin
, în care se vor selecta diverse opţiuni privind modul cum va avea loc
tipărirea:
 Parte din document care se tipăreşte (tot, pagina curentă, paginile
indicate);
 Numărul de copii ale părţii tipărite, apoi dacă face tipărirea
multiplă la fiecare pagină sau repetă tipărirea întregului document
pentru fiecare copie;
 Tipărirea paginilor impare (iar apoi pare) – pentru tipărire faţă-
verso;
 Setări ale imprimatei – privind rezoluţia (în puncte pe inch - dpi)
sau culorile, dimensiunea foii (uzual A4).
 Tipărirea se face într-un fişier care ulterior va fi listat pe
imprimantă; în acest caz, se pot obţine fişiere document de tip
PostScript (pentru imprimanta selectată corespunzător), ce pot fi
vizionate pe pagini web sau transferate în forma tipăribilă în alt
loc.
Şabloane şi scrisori tip
Pentru documente uzuale, procesorul de text pune la dispoziţie şabloane
(„Template”) care pot fi completate cu conţinutul dorit de utilizator.
Forma şablonului este preluată din biblioteca de şabloane, uzual fiind
oferite şabloane pentru scrisori, fax-uri, CV-uri, Agendă etc.
Pentru realizarea de scrisori tip, ce trebuie transmise la mai mulţi
destinatari, acestea se pot personaliza folosind Asistentul de scrisori
multiple – „Mail merge Wizard” (meniu „Tools” sau „Mailings”).).
Astfel, se poate „construi” un text care să conţină şi o structură de
câmpuri în care se vor înscrie automat informaţii dintr-un tabel cu date
187
asupra persoanelor destinatare: apelativul (Dl., D-nă, Dr., etc.) numele
şi prenumele, adresa, şi altele. În final, scrisoarea tip va afişa în locul
câmpurilor datele concrete şi se va putea tipări. Se poate parcurge
printr-o opţiune de meniu (sau buton) întreaga lista de persoane,
tipărindu-se pentru caz toate sau pentru fiecare înregistrare, exemplarul
dedicat. În acest mod se îmbină date (despre persoane) şi documente
(scrisori) prin procesorul de texte.

10.1.6. Indicaţii de tehnoredactare computerizată


Procesorul de texte pune la dispoziţia utilizatorului toate mijloacele
pentru crearea de documente cu aspect profesionist care, în plus, pot fi
modificate uşor sau pot fi elaborate în echipă. Pentru a utiliza corect şi
complet un procesor de texte, este bine ca la crearea documentului să
se respecte recomandările făcute în acest submodul.
Definirea stilurilor de formatare
Funcţie de destinaţia documentului se stabileşte o mulţime de stiluri
dorite (sau impuse) pentru structura şi modul cum vor apare pe hârtie.
Lista de stiluri disponibile este predefinită dar se poate completa cu
altele după trebuinţă. Stilurile de formatare se referă la:
a. Caractere – privind caracteristici precum: tipul, dimensiunea, stilul
caracterului pentru diferite părţi ale documentului (denumiri de modul
– „Headings”, textul „Normal”, note de subsol „Footnotes” etc.),
spațierea între caractere, etc.
b. Paragraf – aliniere, indentare, stop-uri Tab, spaţiul între linii/rânduri
și paragrafe, chenare, caracteristici ale literelor din paragraf. În acest
context se definesc efectiv denumirile de modul („Headings”) indicând,
spre exemplu, că denumirea de nivel 1 apare pe pagină nouă.
c. Tabel – privind îmbinarea sau scindarea celulelor, tipul de chenar,
umbriri pe coloane, culori, numele generic şi tipul de numerotare
automată.
d. Listă – privind modul de numerotare şi indentare a linilor, pentru
diferite tipuri de liste.

188
e. Figură – redimensionare, numele generic (prescurtat Fig.) şi tipul de
numerotare automată.
f. Cuprins – modul cum va fi indicat inventarul denumirilor de module
şi pagini de start.
Paşi în redactarea corectă şi eficientă a documentului
i) Se realizează structura de denumiri de modul pe niveluri ale
documentului, fiecare declarat de tip „Heading”1, 2, etc. Această
structură este vizibilă prin „Document map” sau „Navigation Pane”.
ii) Se înscriu informaţiile de antet şi subsol (logo, texte lămuritoare),
eventual antet diferit pe pagină pară şi impară, numere de pagină (cu
număr total sau nu), data emiterii documentului, etc.; numerotarea
paginilor se poate face şi în antet.
iii) Se folosesc corect semnele de punctuaţie: spaţiu obligatoriu după
semnul de punctuaţie dar niciodată înainte – excepţie parantezele ‘(‚ şi
‚)’.
iv) Alinierea şi indentarea paragrafelor se face doar utilizând
mijloacele oferite de procesorul de texte.
v) Se declară figuri şi tabele (cu stiluri stabilite anterior) folosind
captură („Caption”), pentru a iniţia numerotarea automată a acestora.
vi) Se fac trimiteri în text la figuri şi Tabele prin legarea acestora cu
ajutorul referințelor incrucișate („Cross-reference”). Trimiterile se pot
face pentru orice fel de element declarat anterior prin captură
(„Caption”). În acest mod, orice modificare în ordinea elementelor
capturate nu afectează şi legăturile din text.
vii) Se activează verificarea ortografică şi gramaticală.
viii) Se scrie conţinutul documentului fără a da mare atenţie formei,
pentru a se focaliza atenţia pe idei.
ix) Se verifică corectitudinea textului (urmărind sublinierile şerpuite) şi
formatarea conform stilurilor prestabilite.

189
10.2. Foi de calcul tabelar
Foile de calcul tabelar („spreadsheet”) sunt poate cele mai puternice
instrumente de calcul puse la dispoziţia utilizatorilor obişnuiţi. De la
crearea lor – de către Dan Bricklin şi Bob Frankston prin produsul
VisiCalc, au apărut o mulţime de alte produse (Lotus 1-2-3, Quattro
Pro, Excel) care au preluat aproape neschimbate ideile creatorilor,
extinzând facilităţile foii de calcul – cu funcţii, prelucrări analitice (de
detaliere) şi sintetice (de modelare şi sinteză).
O foaie de calcul tabelar (numită şi foaie electronică de calcul) este o
imitare a unui registru contabil prevăzut cu caroiaj pentru a înşira
coloane de cifre şi linii cu semnificaţii de valori de obiecte sau
operaţiuni, însă forma electronică permite înscrierea directă în foaie a
unor formule care sunt „vii” – adică îşi modifică valoarea imediat ce
unul din operanzi s-a modificat. Mai mult, se pot realiza şi afişa uşor
grafice complexe, tabele similare celor din baze de date, programe de
prelucrare locală sau de automatizare a unor operaţiuni folosind
macrocomenzi.

10.2.1. Structura foii de calcul tabelar


Fereastra de calcul tabelar – v.figura 45, prezintă un set de foi de calcul
14 („Sheets”) grupate într-un caiet de calcul 1 („Workbook”). Fiecare

foaie de calcul are un nume (implicit denumite Sheet1, Sheet2, ...) între
care una este activă 13 (Sheet1). Foaia de calcul este împărţită prin
caroiaj pe rânduri numerotate 12 şi coloane denumite cu litere 4 , ce
delimitează celule 15 („Cells”).
După cum se observă, într-o celulă se pot înscrie informaţii – de
exemplu în 15 şirul „Celula de lucru curent” care însă nu este vizibil
integral fiind acoperit de (capul) şirului din celula 16 . Fiecare celulă
prezintă o adresă (referinţă) specificată prin denumirea coloanei şi
numărul rândului – de exemplu celula curentă 15 are adresa C5.
Celulele pot fi grupate în zone rectangulare denumite blocuri de celule
(sau domenii - „ranges”); un bloc este referit prin adresele celulelor din

190
colţurile stânga-sus şi dreapta jos – de exemplul blocul celulelor vizibile
în fereastra din figura 45 este referit A1: G11.
În structura unui caiet de calcul se pot afla: foi de calcul („work sheet”)
– ce conţin celule cu informaţii, foi de grafice („chart sheet”) – ce conţin
grafice denumite, foi cu macro-comenzi („macro sheets”) – ce conţin
comenzi în limbajul specific foilor de calcul. Derularea foilor din cadrul
caietului de foi se face prin butoanele 11 , foaia curentă 13 fiind
denumită foaie activă.

Figura 45. Fereastra de calcul tabelar


Elementele din structura ferestrei caietului de calcul sunt:
5 Bara de meniu specifică, 6 Bara de unelte cu butoane specifice
pentru funcţii 8 (sumare), sortare 9 , sau grafice 10 , apoi bara de
stare 18 şi bare de derulare 17 şi 19 - similare altor aplicaţii.
Elementele din structura ferestrei foii de calcul sunt:
2 Bara de nume – ce indică numele celulei sau blocului de celule sau,
în cazul lipsei numelui, adresa celulei curente;

191
7 Bara de formule – ce indică conţinutul celulei curente şi permite
scrierea unei formule; după introducerea completă a formulei, în celula
curentă din foaie se afişează rezultatul formulei, iar în bara de formule
expresia acesteia.
3 Bara de editare – ce permite editarea conţinutului celulei curente
introducând, de exemplu, o funcţie dorită în formulă prin pe ,
confirmarea editării prin pe sau renunţarea la editarea celulei prin
pe („Escape”).
Foaia de calcul prezintă un număr de 256 coloane, denumite cu literele
alfabetului, apoi cu litere duble: A, B, C,…Z, AA, AB, AC,…AZ, BA,
BB, BC,…BZ, CA,…IA, IB,…IV, .... şi 65.536 de rânduri, cu celule
suficiente pentru volume mari de date.

10.2.2. Conţinutul celulelor foii de calcul


În celulele foii de calcul se pot înscrie date de diferite tipuri, dar şi
prelucrări, care sunt afişate conform formatării celulei (opţiunea
„Format - Format Cell”). Atât datele cât şi prelucrările sunt
„recunoscute” şi tratate corespunzător:
 tip General – celula nu are un format definit de număr.
 număr – conţine numai cifre şi este aliniat la dreapta implicit.
Afişarea unui număr mare se poate face prin mantisă şi exponent – dacă
prin lungimea sa nu încape (deci nu este vizibil integral) în celulă; de
exemplu numărul 15.000.000.000 va apare 1.50E+10. Se poate indica
numărul de zecimale şi modalitatea de afişare a numărului: număr
obişnuit („Number”), însoţit cu simbol de monedă („Currency”),
procent („Percentage”), în format ştiinţific („Scientific”), ca număr
special („Special” de exemplu cod poştal, număr de telefon, cod
numeric personal).
 șir de caractere („Text) – conţine orice simboluri de scriere şi
începe cu o literă, fiind aliniat la dreapta implicit. Într-o celulă se
poate înscrie un şir de maxim 256 caractere.
 dată şi oră – reprezentate ca numere astfel: data ca întreg indicând
numărul zilei începând cu 31 Dec. 1899, iar ora ca număr zecimal
192
fracţie a zilei (de 24 ore) – de exemplu ora 12 la prânz reprezentată
ca 0,5. Formatul de afişare a datei şi orei este însă ales după
dorinţă de utilizator: ex. 15.03.2003, 15 martie 2003, 15.03.03,
etc.
 formulă – expresie care începe cu semnul ‘=’, conţine operanzi,
operatori şi funcţii. Operanzii pot fi literali (valori directe) sau
adrese ale celulelor cu care se doreşte efectuarea calculelor.

Figura 46. Exemplu de structură a formulei

Pe exemplul din figura 46 se prezintă cele mai importante caracteristici


ale unei formule şi modul cum se prezintă ea în foaia de calcul:
 Formula este înscrisă în celula C1 (vezi 4 ), cu adresa indicată de
caseta de nume 1 .
 Conţinutul celulei C1 este vizibil în bara de formule iar în foaia de
calul (celula C1) apare valoarea rezultat a formulei.
 Operanzii formulei sunt literalul 5 şi funcţia 6 (ROUND -
rotunjire) care are doi parametri: primul parametru este valoarea de
rotunjit - raportul între celulele A1 şi B1 - (vezi 7 şi 8 ) iar al doilea
9 este numărul de zecimale la care se face rotunjirea – în exemplul dat

0 adică rotunjire la întreg.

10.2.3. Lucrul cu foaia de calcul


În general, foile de calcul sunt utile pentru prelucrarea unor blocuri de
valori, care se înscriu în celule şi sunt folosite ca date de intrare pentru
expresii (formule) aflate în alte celule. Blocurile cu rezultate pot fi în
final reprezentate grafic (prin histograme).

Adrese relative şi absolute


193
Datele de tipurile prezentate mai sus şi formulele se înscriu în celule şi
se pot edita prin manevre similare celor prezentate la procesoare de
texte, adică prin marcare urmată de copiere sau mutare. În plus, în foaia
de calcul, se pot copia o celulă şi multiplica într-un bloc de celule. (copii
multiple); această facilitate este foarte utilă la multiplicarea formulelor
care se aplică similar mai multor seturi de date.
În exemplul din Figura 47 se prezintă un tabel de produse pentru care
se calculează valoarea fiecăruia. Formula înscrisă în coloana „Valoare”
celula D2 este un produs între „Preţ unitar” şi „Cantitate” la fiecare
produs; formula de calcul se scrie o singură dată în D2: = B2*C2, iar
apoi se replică în celulele D3:D7 prin copiere multiplă. La această
operaţie de copiere, formulele se actualizează automat (privind adresele
operanzilor) relativ la noua poziţie pe care o are formula. Astfel, în
celula D3 se obţine (prin copiere) = B3*C3, în D4 = B4*C4 şi aşa mai
departe. Această modalitate de copiere este evident avantajoasă în cazul
formulelor şi este posibilă fiindcă în mod special adresarea unei celule
prin indicarea simplă a liniei şi coloanei este o adresare relativă.

Figura 47. Exemplu de multiplicare şi utilizare a adreselor relative sau absolute


Există şi situaţii în care adresarea relativă nu este avantajoasă, de
exemplu calculul valorii cu TVA indicată în Figura 47. Celula B10
conţine procentul de TVA şi apare ca operand în E2, cu denumirea
coloanei şi numărul liniei precedate de simbolul special $, care are ca
efect transformarea adresei B10 în adresă absolută.
Astfel, operandul indicat prin $B$10 nu va fi actualizat la copierea în
alte celule, adică va rămâne indicat în mod absolut. În acest fel se poate
194
evita înscrierea procentului TVA în mod explicit în fiecare din formule
– adică în E2 ar fi =D2*(1+0.19) – valoarea TVA înscrisă ca literal, dar
nici nu ar trebui înscrisă pentru fiecare din rânduri (spre a folosi celule
operand cu procent TVA – dedicat fiecăruia din rânduri).
Mai mult, dacă valoarea procentului TVA s-ar modifica, nu este nevoie
să se intervină în fiecare din celulele care o folosesc (cum ar fi cazul
pentru cele două exemple descrise mai sus), ci s-ar modifica o singură
dată celula B10 – cu noua valoare a procentului.
Funcţii
Foile de calcul electronic conţin multe funcţii – fiecare dedicată unei
prelucrări anume, care poate fi apelată printr-o formulă (ca un
subprogram) prin nume şi parametri (argumente) între paranteze,
furnizând rezultatul corespunzător. Parametrii pot fi (v. Figura 47):
literali, adrese de celule (de ex. D2) şi/sau adrese de blocuri (de ex.
D2:D7).
În Tabel 7 se prezintă categorii de funcţii comune accesibile în foi de
calcul electronic, cu câteva exemple de funcţii în fiecare categorie.
Tabel 7. Funcţii pe categorii şi rolul lor
Categoria Exemple de funcţii
ABS(număr) – furnizează valoarea absolută pentru număr.
SIN(număr) – furnizează valoarea sinusului pentru număr.
PI() – furnizează valoarea numărului .
Matematice RAND() – furnizează un număr subunitar aleator.
ROUND(număr, nr_zec) – furnizează rotunjirea număr la nr_zec zecimale.
EXP(număr) – furnizează e (Neper) la puterea număr.
COMBIN(n,m) – furnizează combinaţii de n luate câte m (Cnm).
AND(l1, l2, ... ) – furnizează valoarea logică TRUE dacă toate valorile logice
l1, l2, ... (maxim l30) sunt TRUE
OR(l1, l2, ... ) – furnizează valoarea logică FALSE dacă toate valorile logice
l1, l2, ... (maxim l30) sunt FALSE
Logice
NOT(l1) – furnizează valoarea logică TRUE dacă valoarea logică l1 este
FALSE şi reciproc
IF(expr_logica, val_DA, val_NU) – evaluează expresia logică expr_logica şi
la rezultat TRUE furnizează val_DA altfel val_NU.

195
AVERAGE(n1, n2, ...) – furnizează media aritmetică a numerelor n1, n2, ...
(maxim n30).
COUNT(v1, v2, ...) – furnizează numărul de valori numerice din setul de
valori v1, v2, ... (maxim v30); argumentul poate fi un bloc de celule cu valori
de orice tip pentru care se indică pe cele numerice.
Statistice VAR(n1, n2, ...) – furnizează abaterea medie pătratică (varianţa) pentru
numerele n1, n2, ... (maxim n30).
CORREL(b1, b2) – furnizează corelaţia (măsura relaţiei) între valorile a două
blocuri de celule b1, b2, ca un număr subunitar în [-1, 1].
MAX(n1, n2, ...) şi MIN(n1, n2, ...) – furnizează maximul respectiv minimul
numerelor n1, n2, ... (maxim n30).
AMORDEGRC(cost, data_ac, per1, val_r, per, rata, baza) – furnizează
amortizarea pentru numărul per de perioade, conform ratei de amortizare
rata pe o perioadă (lună, an), pentru bunul achiziţionat la data_ac şi sfârşitul
primei perioade de amortizare per1 (la amortizări nelineare), cu baza de
calcul baza (o valoare între 0 şi 4 indicând sistemul de datare – pe 360 sau
365 zile).
IRR(valori, eval) – furnizează rata internă de revenire a unui flux de capital
(sumele predate la intervale fixe – lună, an), adică dobânda pentru o investiţie
cu depuneri periodice (sume negative) sau un venit periodic (sume pozitive);
eval este estimarea dobânzii dorite.
FV(dob, nper, prima, pv, mom) – furnizează valoarea viitoare a unei investiţii
Financiare cu dobânda dob făcută prin plăţi periodice prima, pe un număr nper perioade
(pentru fiecare primind dobânda dob). Parametrii pv şi mom sunt opţionali,
indicând valoarea evaluată în prezent a unei serii de investiţii respectiv
momentul când se face plata primei (la începutul sau sfârşitul perioadei).
PMT(dob, nper, pv, fv, mom) – furnizează valoarea ratei (ca sumă plătită)
pentru un împrumut cu plăţi periodice (v. parametrii mai sus).
NPER(dob, pmt, pv, fv, mom) – furnizează numărul de perioade pentru o
investiţie cu plăţi pmt şi dobândă dob constante (v. parametrii mai sus).
IPMT(dob, per, nper, pv, fv, mom) – furnizează valoarea dobânzii plătite
pentru o ipotecă cu plăţi periodice în perioada per (număr între 1 şi nper –
numărul total de perioade), pentru un împrumut pv (fv şi mom sunt opţionali,
cu semnificaţii de mai sus).
Toate funcţiile au ca argumente: blocul ce conţine baza de date, coloana
(câmpul) pentru care se doresc prelucrările şi blocul unde se află criteriile de
selecţie
Baze de Date
DGET(baza, coloana, criteriile) – furnizează valoarea din coloana
(Tabele) specificată din baza de date, care satisface criteriile.
DAVERAGE(baza, coloana, criteriile) – furnizează media valorilor din
baza de date pentru coloana şi criteriile specificate.

196
DSUM(baza, coloana, criteriile) – furnizează suma valorilor din baza de
date pentru coloana şi criteriile specificate.
DMAX(baza, coloana, criteriile) – furnizează maximul valorilor din baza de
date pentru coloana şi criteriile specificate.

Funcţiile se utilizează în formule care, în general, sunt multiplicate în


fiecare celulă din coloana care se doreşte să conţină rezultatele, iar
datele de prelucrare se găsesc în coloane alăturate.
Utilizarea numelor
Pentru uşurinţa înscrierii formulelor cu operanzi referiţi prin adrese de
celule sau de blocuri, se ataşează acestor celule nume sugestive. De
exemplu, în foaia de calcul din Figura 47 celula B10 cu procentul TVA
va putea fi denumită simplu TVA, astfel că formula de calcul din E2 va
deveni: =D2*(1+TVA). Definirea numelor pentru celule şi blocuri se
face prin comanda Define în caseta de dialog conform Figura 48, care
permite gestionarea numelor (adăugare, ştergere, indicarea adreselor în
câmpul „Refers to:”

Figura 48. Caseta de dialog pentru definirea numelor de celule sau blocuri
Se pot defini mai multe nume pentru acelaşi bloc de celule; de exemplu,
o celulă cu valoarea unei sume de bani poate fi denumită
SumaDisponibila şi SumaImprumutata, pentru a fi folosită intuitiv într-
o funcţie, în contextul parametrilor acesteia.

197
10.2.4. Facilităţi de prezentare calitativă şi sintetică a informaţiilor
Volumele mari de date, ce se pot stoca şi prelucra într-o foaie de calcul
electronic, constituie o prezentare analitică a unei situaţii din lumea
reală. Pentru a manipula aceste date şi pentru a extrage informaţii utile
deciziilor, acestea trebuie prelucrate şi prezentate în mod sintetic şi
calitativ, pentru care foile de calcul electronic oferă diferite modalităţi.
Unele dintre acestea se prezintă succint în continuare.
Structuri de tip listă şi tabel
Organizarea informaţiilor în liste şi tabele este foarte avantajoasă
vizionării şi prelucrării lor. În foile de calcul electronice, listele sunt
înşiruiri de obiecte cu o singură dimensiune (pe o linei sau pe o
coloană), iar tabelele prezintă linii (fiecare indicând un obiect) şi
coloane (fiecare indicând o proprietate generică). De fapt, o listă sau un
tabel ocupă un bloc de celule cu o singură dimensiune, respectiv cu
două dimensiuni.
Foile de calcul tabelar îşi trag numele de la facilitatea de bază a acestora
– crearea de tabele. Un tabel poate conţine date de tipuri diferite şi poate
reprezenta orice situaţie din lumea reală: se poate referi la persoane şi
date asupra lor, la un inventar de obiecte (de exemplu în contabilitate,
cu valori şi diverse rezultate prelucrate asupra fiecărui obiect), se poate
referi la informaţii tehnice şi calcule ştiinţifice asupra lor. Tabelul
realizat este posibil de utilizat în acelaşi mod în care se lucrează cu baze
de date.
Similar produselor de baze de date, se poate lucra cu fiecare coloană
prin numele său de câmp şi se pot face sortări şi apoi filtrări ale datelor
pe baza unor criterii specificate. De exemplu, pentru tabelul din Figura
47 se definesc nume pentru coloane astfel: coloana A – Produs, coloana
B – Pret_unitar, coloana D – Valoare.

198
Pe acest exemplu, se poate face sortarea produselor după valoarea din
magazie, în sens crescător (ascendent), specificând prin meniu „Data-
Sort” numele câmpului şi modul de sortare – v. Figura 49. Urmare a
acestei comenzi, apar liniile ordonate crescător după câmpul Valoare
(denumit acum cheie de sortare). Se poate face sortarea după mai multe
chei, pentru cazul în care primul câmp cheie de sortare are valori
identice în unele rânduri – de exemplu pentru sortarea unui tabel cu date
despre persoane, întâi sortat după nume apoi după prenume, fiindcă se
pot găsi persoane cu nume identice şi este necesară ordonarea acestora
după altă cheie – prenumele.

Figura 49. Caseta de dialog pentru sortare în baza de date (tabel din Figura 47)

Se poate face filtrarea datelor din tabel, adică vizualizarea doar a acelor
linii care satisfac condiţii impuse. Filtrarea poate avea loc în unul din
modurile:
 Filtrare prin selecţie („Data-Filter-AutoFilter”) – prin care se indică
baza de date (tabelul conform Figura 50), după care se selectează o
valoare în lista derulabilă la o coloană dorită (v. Preț unitar); se afişează
lista de linii cu această valoare.
 Filtrare după criterii specificate (cu formular - „Data-Filter-
Advanced Filter”) – prin care se indică un bloc în foaie care conţine
criteriile de selecţie (în exemplul din Figura 50 blocul A1:E2, cu
criteriul de selecţie în celula B2); se afişează rândurile care satisfac
aceste criterii.

199
Figura 50. Baza de date pregătită pentru filtrare după valori ale coloanei Preț unitar

Grafice
O altă facilitate foarte utilă în foile de calcul electronic o reprezintă
graficele. Acestea sunt folosite pentru a prezenta în mod calitativ şi
sintetic informaţia numerică, sub diferite forme, astfel că se pot
compara „dintr-o privire” situaţii cantitative. Graficele sunt o
reprezentare a uneia sau mai multor serii cantitative, relative la
momente sau situaţii discrete date. O serie cantitativă este o listă de
numere (înscrisă pe o linie sau pe o coloană) în care elementele indică
starea la un moment dat în evoluţia unei mărimi (de exemplu vânzări
lunare ale unui produs pe fiecare lună din an) sau valorile statice ale
mai multor mărimi (de exemplu proporţia – în procente, a vânzărilor
primelor 5 cele mai vândute produse). Privind reprezentarea grafică a
numerelor, se pot face uşor şi clar o comparaţii sau se pot stabili relaţii
calitative între mărimi cantitative – necesare în luarea deciziilor.
Reprezentarea grafică a seriilor de numere se poate face în diferite
sisteme de coordonate:
 Carteziene – sistem de axe perpendiculare în două sau trei dimensiuni
(2D sau 3D). De obicei axa orizontală transversală (pe lăţime) este
denumită „Axa X” reprezintă situaţiile de referinţă (de ex. momente de
200
timp în evoluţia mărimii ilustrate grafic). Axa verticală – „AxaY”, este
cea pe care se reprezintă cantităţile (numerele efective din serie). La
graficele 3D există o a treia axă – „Axa Z”, orizontală în profunzime,
care indică fiecare serie atunci când se ilustrează mai multe serii (mai
multe mărimi) simultan pe acelaşi grafic.
 Polare – sistem de reprezentare circulară în două dimensiuni, care
ilustrează intuitiv cantităţi comparative ce împreună fac un întreg (ca de
exemplu grafic „tort” în care fiecare felie reprezintă vânzarea unui
produs pe o lună anume din întregul an). Graficele polare au efecte 3D
dar numai pentru o ilustrare mai estetică.

Tabel 8. Tipuri de grafice cu caracteristici şi situaţia de utilizare


Denumire grafic, cu caracteristici şi situaţii de Reprezentare grafică
utilizare
Grafic de bare: verticale („Columns”) sau orizontale
(„Bars”), în coordonate carteziene:
a) pentru o singură serie, 2D
a) b
b) pentru o singură serie, cu efecte estetice 3D; )
c) pentru serii multiple 2D, cu coloane suprapuse;
d) pentru serii multiple 3D, cu seriile pe axa Z.
c) d
Utilizate pentru a ilustra evoluţii în timp discret (de ex. )
volumul vânzărilor pe luni) sau situaţii discrete (de ex.
vârstele persoanelor dintr-un grup). Ilustrarea s-a făcut doar
pentru grafice coloană, cele cu bare orizontale fiind
similare.
Grafic linie („Line”): puncte legate prin linii în coordonate
carteziene:
e) linii pentru una sau mai multe serii 2D,
f) linii cu punte marcate pentru serii 2D,
g) pamblică pentru serii 3D. e) f) g)

Utilizate pentru a ilustra evoluţii continue în timp.


Grafice plăcintă („Pie”) – ca un tort cu felii, în coordonate
polare pe un cerc închis: cu felii „explodate”
h) plăcintă 2D compactă;
i) plăcintă 3D pentru efect estetic.
h) i) j)

201
j) plăcintă cu „felii explodate”;
Utilizate pentru ilustrarea de mărimi statice ce fac un întreg
(de ex. vânzările pe trimestre ale unui an).
Grafice arie („Area”):
k) arie 2D;
l) arie 3D
k) l) m)
m) arie comparativă: o mărime reprezintă 100% iar cealaltă
proporţia din ea.
Utilizate pentru ilustrarea unor mărimi cu caracter
integrator sau cumulativ (de ex. pentru evoluţia
investiţiilor).
Grafice curs („Stock”)– ca segmente sau bare cu liniuţe:
n) curs maxim-minim-la închidere („high-low-close”) care
indică valorile maxim şi minim prin capetele de segment
verticale şi valoarea la închidere prin liniuţa laterală;
o) curs volum-maxim-minim-la închidere („volume-high-
low-close”) ca mai sus, în plus volumul tranzacţiilor indicat n) o)
prin înălţimea barei verticale.
Utilizate pentru ilustrarea evoluţiei zilnice a acţiunilor sau
tranzacţiilor financiare (eventual şi volumului).
Grafice speciale – care sunt variante ale celor amintite până
aici dar cu alte forme decât cele „clasice”:
p) gogoaşă americană („Doughnut”) – grafic în coordonate
polare, similar celui plăcintă;
q) radar („Radar”) – grafic polar prin segmente în locul
sectoarelor de cerc ale plăcintei, pe mai multe axe; p) q) r)
r) Buline („Bubble”) – grafic polar şi cartezian prin buline
în locul sectoarelor de cerc ale plăcintei (pentru cantităţile
seriei) şi mărimi de referinţă pentru de seria de bază pe axele
carteziene.

Graficele pot fi realizate rapid şi apoi se pot completa cu toate


informaţiile utile folosind un asistent („wizard”) care conduce
utilizatorul prin paşi, fiecare prezentând o casetă de dialog:
a. Alegerea tipului de grafic – dintr-o listă de tipuri; în Tabel 8 se
prezintă aceste tipuri şi situaţiile în care sunt utile fiecare.

202
b. Indicarea seriilor de numere ca blocuri în foaia de calcul, pentru axele
X, Y şi Z. La graficele care prezintă mai multe serii de numere în acelaşi
sistem de coordonate este necesară denumirea fiecărei serii în parte.
c. Completarea graficului cu informaţii suplimentare lămuritoare şi
plasarea acestora în imaginea finală: titlul şi subtitlul graficului,
denumirea axelor şi marcarea diviziunilor pentru mărimile cantitative
pe care le reprezintă, legenda, alte informaţii lămuritoare (valorile
numerice efective, etichete cu comentarii ataşate unor valori din serie),
culori şi modele grafice de haşură (linii paralele trasate oblic, orizontal,
vertical) sau poşare (umbrire sau culoare uniformă sau în degradé).
d. Denumirea şi plasarea graficului în foaia de calcul sau într-o foaie
separată, dedicată (foaie de grafic).

10.2.5. Indicaţii de proiectare şi construire a foilor de calcul


După cum s-a arătat până aici, foile de calcul electronic oferă mijloace
puternice şi uşor de folosit pentru prelucrări complexe. De exemplu, se
poate analiza starea şi perspectiva unei afaceri (folosind şiruri de date
privitoare la situaţiile financiare sau tehnice ale firmei, cu formule şi
funcţii adecvate), se poate face o analiză a variantelor de dezvoltare a
afacerii şi, în final, se poate prezenta calitativ atât starea actuală cât
perspectiva prin grafice intuitive şi printr-un document tipărit.
Totuşi, pentru a structura corect şi a prelucra eficient un volum mare de
informaţii, este necesar un mod de lucru sistematic iar apoi utilizarea
corectă şi completă a mijloacelor puse la dispoziţie de foaia de calcul.
Trebuie remarcat din capul locului faptul că foile de calcul sunt utile la
rezolvarea problemelor ce implică date diverse, statistici şi calcule, cu
ilustrări calitative (grafice) şi sintetice (sume de total, tabele pivot, etc.).
Paşii de lucru urmaţi în rezolvarea problemei cu foaia de calcul sunt cei
indicaţi – proprii realizării unei aplicaţii.
Formularea cerinţelor şi analiza problemei
Cunoscând problema de rezolvat şi scopul acesteia, se face un plan
corect, care se bazează pe datele (eventual statisticile) de care se
dispune în prezent şi cele necesare în rezolvarea problemei. Se face un
inventar al funcţiilor care vor fi utilizate în prelucrarea datelor şi în
203
compararea rezultatelor, apoi se stabileşte cum se doreşte prezentarea
rezultatelor (grafic, tabele, rapoarte). Se analizează şi se stabilesc:
 Intrările: valori cunoscute – cele ce urmează a fi prelucrate efectiv în
foaie, variabile de decizie –prin care se pot alege variante şi se poate
optimiza modelul (de exemplu, utilizând scenarii ).
 Ieşirile: variabile obiectiv – care se doresc calculate (prin formule,
funcţii) şi variabile de restricţie – care impun limite sau condiţii de
compromis ce trebuie respectate (limite de buget).
 Relaţiile: relaţii între variabile cunoscute, de decizie (care le
condiţionează pe primele) şi utilizarea unui şablon – oferit de produsul
foaie de calcul sau preluat din alte.
Aceste date sunt preluate de pe documente scrise sau din fişiere aflate
pe disc, în ultimul caz foile de calcul electronic oferind mijloace de
import (din baze de date sau din fişiere text – de exemplu de tip CSV
adică date înscrise pe linii şi separate prin spaţii, şirurile de caractere
între ghilimele). Relaţiile se identifică şi se înscriu pe hârtie, în
documentul de analiză. La realizarea foii de calcul sunt necesare,
uneori, variante de lucru şi calcule suplimentare; indicat executate în
altă foaie de calcul – foaie de manevră, care va fi salvată sau nu alături
de foaia (caietul) de bază.
Proiectarea şi realizarea foii de calcul
Date fiind mijloacele puse la dispoziţie de o foaie de calcul electronică,
cele două etape: proiectarea şi realizarea aplicaţiei, se parcurg simultan;
în plus, este indicată documentarea foii de calcul pe măsura realizării ei
– aşa cum se prezintă în paşii ce urmează:
1. Introducerea şi organizarea datelor. Se introduc datele cunoscute
chiar dacă încă nu se ştie exact cum vor fi folosite. Astfel, se înscriu:
valori constante – indicat să fie păstrate într-o zonă separată a foii,
denumite corespunzător (v. TVA în Figura 47), - astfel ca la
modificarea lor să nu se „cotrobăie” în întreaga foaie de calcul;
structura de linii şi coloane – care poate copia un tabel uzual sau este
realizată ad-hoc, cu denumiri corespunzătoare.

204
2. Documentarea foii. Este bine ca în cadrul foii să se înscrie textul
care descrie problema, scopul şi modalitatea rezolvării ei, ca
documentare generală. În plus, celulelor importante li se pot adăuga
nume şi comentarii explicite (prin meniul „Insert-Comment”), aceste
celule fiind indicate cu un colţ roşu şi prezintă o etichetă vizibilă la
indicare cu mouse-ul .
3. Crearea formulelor. Înscrieţi formule ori de câte ori este nevoie;
acestea se pot copia multiplu şi edita specific locului unde apar iar
funcţiile oferite acoperă un spectru larg de utilizări. Evitaţi înscrierea
numerelor (literali) direct în formule, mai bine se fac referiri la celule
care conţin valorile respective (exemplu la final cu valoarea TVA). Se
recomandă folosirea numelor în loc de adrese de celule (pentru ca
formula să fie uşor inteligibilă) şi se păstrează rezultate intermediare
(de ex., subotaluri). În general este bine ca formulele să fie simple –
folosind ca operanzi rezultate intermediare mai degrabă decât a înscrie
o formulă complicată, ne-inteligibilă. Derularea calculelor trebuie
ilustrată într-un flux de prelucrări (prin formule), cu etichete şi în
ordinea naturală a evoluţiei lui.
4. Prezentarea rezultatelor. Datele obţinute prin calcule nu sunt uşor
de urmărit şi înţeles dacă acestea nu se prezintă în forme sintetice
(totaluri sau chiar modele matematice) şi forme calitative (grafice). În
final, documentul cu tabele şi imagini se poate tipări, adăugând antet şi
subsol, titluri, formatare text şi liniaturi la tabele.
Pentru obţinerea rezultatului urmărit se poate apela la mijloace de
analiză şi sinteză pe loc – prin tabele pivot, regresii sau analize
statistice, care ajută la găsirea metodei de soluţionare a problemei.

205
11. Reţele de calculatoare şi comunicaţii

Organizaţiile actuale – de producţie şi comerţ, administrative, de


educaţie sau cu scop caritabil, manipulează informaţii care circulă între
membrii acestora, între departamente sau sedii proprii, schimbă
informaţii cu alte organizaţii. Aceste informaţii trebuie să fie transferate
la modul sigur, în timp scurt şi să permită totodată comunicare
interactivă între entităţi, fie acestea oameni sau aplicaţii pe calculator.
Comunicaţiile pot avea loc prin voce (de exemplu prin telefon), imagine
(video), pe suport hârtie (documente şi texte în diferite formate) sau prin
date reprezentate numeric pentru prelucrarea directă pe calculator.
Tendinţa actuală este de integrare a acestor categorii de comunicaţii
prin digitizarea informaţiei şi transferul acesteia prin medii diferite
(cabluri de cupru, fibră optică, eter), sub formă de unde
electromagnetice. Se pot transmite prin aceleaşi medii de transfer atât
date numerice cât şi sunete sau imagini realizând astfel comunicarea
totală între entităţi .

11.1. Problematica reţelelor de calculatoare


Studiile de trafic telefonic arată că aproximativ 80% din comunicaţii au
loc în interiorul întreprinderii şi 20% în afara sa. Pe această constatare
se bazează şi adoptarea tehnicilor implicate în comunicaţiile de date:
pentru a asigura traficul intens în interiorul întreprinderii se folosesc aşa
numite reţele locale - bazate pe medii şi tehnici speciale şi cu rată mare
de transfer, iar pentru traficul spre exterior se folosesc reţele largi -
bazate pe infrastructura unor operatori (firme de telecomunicaţii), care
prezintă rată mai mică de transfer dar la distanţe mari. Aplicaţiile
multimedia sau de educaţie la distanţă necesită „bandă largă” (debit

206
mare de date) astfel că astăzi se extind tehnologii de transfer de mare
viteză – pe fibră optică sau Wi-Fi.
Un calculator poate fi singular („stand-alone”) sau staţie de lucru
conectată în reţea („workstation”); diferenţele între acestea constau în
piesele hardware şi software adăugate primului pentru a obţine pe al
doilea. Pentru PC-uri aceste piese sunt în general o cartelă electronică
(placă de reţea sau modem wireless) şi pachete software "client", adică
programe care rulează pe maşina utilizatorului şi oferă acestuia accesul
la servicii prin comunicaţii în reţea. Între servicii se pot enumera:
oferirea spaţiului de stocare pe discuri, prelucrarea la distanţă pe maşini
puternice pentru calcul intensiv, tipărire la distanţă, acces la informaţii
aflate pe maşini distante, comerţ electronic etc.
Schimburile de date şi prelucrarea pe mai multe procesoare comportă
două abordări principale – privind modalitatea de interconectare a
elementelor de prelucrare:
 Interconectare prin cuplaj strâns, în care procesoarele împart o
magistrală sau o memorie comună, rata de transfer a datelor este mare
(cea a magistralei interne a procesorului), iar distanţele sunt foarte mici
(centimetri). Elementele de prelucrare se află în general în aceeaşi
carcasă.
 Interconectare prin cuplaj slab, în care procesoare independente
schimbă date prin interfeţe specializate (interfeţe de comunicaţie) şi
prin medii de transfer exterioare, pe distanţe la nivelul clădirilor sau la
nivel global.
În general, se înţelege prin reţea de calculatoare un ansamblu de
elemente de prelucrare cuplate slab. Elementele de prelucrare pot fi
calculatoare (cu putere de calcul mai mare sau mai mică) dar şi
imprimante, arii de discuri, SAN sau NAS, instalaţii pentru comunicaţie
prin cablu, fibră optică sau instalaţii pentru comunicaţii prin satelit.

207
11.2. Componente ale reţelelor de calculatoare
Transferul datelor în reţele de calculatoare se face doar prin unde
electromagnetice, în spectrul invizibil (unde radio, unde infraroşu şi
microunde) sau în cel vizibil (lumină).
În structura reţelei de calculatoare intră diverse echipamente şi suportul
undelor electromagnetice (formând infrastructura de comunicaţie) În
cele ce urmează se face un inventar scurt al componentelor reţelelor de
calculatoare:
Echipamente de prelucrare a datelor
Aceste echipamente găzduiesc programele de prelucrare sau efectuează
servicii diverse către utilizatorul uman şi pot fi:
 staţie de lucru („work station”) – calculator la care lucrează
utilizatorul uman;
 server – calculator care oferă diverse servicii utilizatorilor în reţea;
 imprimantă de reţea – care oferă pe lângă serviciul de imprimare şi
gestionarea lucrărilor de tipărire;
 arie de discuri („disk array”, RAID, SAN, NAS) – ca set de discuri
fixe, eventual conectate la un calculator care face gestiunea lor.
Modul de lucru uzual în reţele de calculatoare este bazat pe arhitectura
client-server, în care programul de lucru este împărţit în două părţi
(client şi server) ce conlucrează între ele. Există însă şi modalităţi de
lucru în arhitectura gazdă-terminal („host-terminal”), în care întreg
programul se execută pe o maşina gazdă (care rulează logica aplicaţiei
şi găzduieşte datele) iar operaţiile de intrare / ieşire spre utilizatorul
uman se execută de terminal.
Mediu de transfer
Undele electromagnetice transportă date între echipamentele din reţea
dar ele necesită un suport de propagare care poate fi:
 cablu – pentru propagarea undei electromagnetice în spectrul
invizibil (prin cupru) sau în spectrul vizibil prin (fibră optică);

208
 eter7 – spaţiul deschis atmosferic sau cosmic (vid), asigurând
comunicaţii în spectrul invizibil (radio, infraroşu, microunde) sau în
spectrul vizibil (laser).
În oricare din situaţii, o secţiune de mediu neîntreruptă se numeşte
segment; acesta poate fi segment de cablu sau doar spaţiul dintr-o
încăpere prin care se face legătura directă între staţii interconectate prin
infraroşu sau Wi-FI.
Cablurile de cupru sunt de diferite tipuri, dependent de numărul de fire
şi modul lor de plasare în cablu (de exemplu prin împletire – fire
torsadate), de gradul de ecranare faţă de perturbaţii din exterior, de tipul
mantalei de izolaţie. Tipul de cablu folosit la realizarea unei reţele se
alege după cerinţele de performanţă ale reţelei în compromis cu costul
cablului - cat 5, 6, 7.
Echipamente de interconectare
Pentru direcţionarea pachetelor de date pe drumul către destinaţie, pe
unul din mediile de propagare din reţea, se folosesc echipamente care
au rol de dispecer – denumite echipamente de interconectare. Acestea
sunt adesea construite în jurul unui sistem de calcul dedicat, pe care nu
lucrează utilizatorul uman (eventual se poate conecta administratorul de
reţea doar pentru a realiza anumite configurări). Echipamentele de
interconectare pot fi de tipurile:
 repetor („hub”) – care practic prelungeşte două sau mai multe
segmente ale mediul de transfer, realizând amplificare de semnal şi
intervenţii sumare în pachetele de date;
 comutator („switch”) – care recepţionează, memorează şi înaintează
pachetele de date spre segmente conectate direct la alte echipamente (de
prelucrare sau interconectare);
 punte („bridge”) – care interconectează reţele locale de tipuri diferite,
asigurând despachetarea şi reîmpachetarea datelor specific fiecărui
LAN.

7
Noţiune apărută în secolul al XIX-lea, indicând un suport material pentru propagarea undelor
în vid, care însă nu a fost susţinut de experimente.
209
 dirijor („router”, numit impropriu „gateway” în jargonul Internet) –
care interconectează reţeaua locală (LAN) la reţeaua largă (WAN), de
obicei printr-un operator de servicii de comunicaţii;
 releu de cadre („frame relay”) – care face interconectarea la reţele de
mare viteză, cu comutare (similare celor telefonice ca mod de
funcţionare), asigurând transfer de date, voce şi imagine, toate
digitizate.
Echipamentele de interconectare asigură canale de transfer a datelor
între echipamentele de prelucrare şi în plus pot mixa diverse medii de
propagare (cabluri de cupru, fibră optică, eter). Astăzi, aproape toate
tipurile de echipamente de mai sus asigură şi posibilităţi de administrare
a resurselor în reţea, adică: configurarea de la distanţă a diverselor
echipamente, auto-anunţarea defectului, locului şi momentului în care
a survenit, identificarea tipului de echipament şi producătorul pentru
generarea automată a schemei actuale de configurare a reţelei. Aceste
mijloace şi software-ul adecvat sunt instrumente puternice în mâna
administratorului de reţea, pentru asigurarea funcţionării corecte şi
neîntrerupte a reţelei.

11.3. Clasificări ale reţelelor de calculatoare


Interconectarea calculatoarelor se face prin infrastructuri diferite ca
modalităţi de lucru, ca forme fizice şi ca extindere spaţială. Pentru
familiarizarea cu noţiunile ce privesc aceste modalităţi, se prezintă în
continuare câteva clasificări uzuale.
Clasificare după extinderea spaţială
Extinderea spaţială a reţelei este strâns legată de utilizarea sa; reţeaua
unei organizaţii sau de departament este restrânsă spaţial, dar prezintă
şi caracteristici de acces şi rată de transfer diferite de reţelele publice –
care sunt extinse spaţial. O clasificare uzuală se prezintă mai jos
i) Reţele foarte restrânse „cluster” sunt interconectări prin medii de
transfer cu lungimi de la centimetri la zeci de metri, în general localizată
într-o singură încăpere. Mediile şi tehnicile folosite permit rate foarte

210
mari de transfer iar aplicaţiile vizate sunt în general cele de prelucrare
paralelă a datelor.
ii) Reţele locale LAN („Local Area Network”) sunt interconectări de
calculatoare la nivelul departamentului întreprinderii (de exemplu:
serviciul Aprovizionare, serviciul Tehnic etc.). Acestea au extinderi de
până la 10 km şi prezintă rate mari de transfer, tehnici de acces specifice
şi câteva tehnologii (implementări ale tehnicilor) care s-au impus ca
standarde.
iii) Reţele metropolitane MAN („Metropolitan Area Network”) se
extind la nivelul unui oraş, de la 10 la 100 km. Se folosesc în comun
medii de transfer pentru diferite categorii de comunicaţii astfel ca
transferul să se facă direct de la sursă la destinaţie - prin difuzare, cu
tehnici asemănătoare celor din LAN.
iv) Reţele largi WAN („Wide Area Network”) sunt reţele care
integrează tehnici de acces şi producători diferiţi (sunt reţele eterogene),
cu extindere peste 100 km. WAN sunt ori reţele publice de date
asemănătoare reţelelor de distribuţie telefonice (sau poştale) ori reţele
private – de obicei ale unor firme multinaţionale. Interconectarea între
reţele se face prin linii închiriate sau comutate prin operatori de
telecomunicaţii (companii de tip Telecom - de stat şi particulare în
Europa, sau companii particulare în SUA).
v) Reţele globale GAN („Global Area Network”) sunt interconectări de
reţele între continente, folosind comunicaţii prin satelit sau cabluri
transoceanice, care acoperă întreg globul pământesc cu o reţea de
calculatoare. Astfel de reţea este Internet (reţeaua de reţele) care, în
fapt, este o reţea de servicii şi se bazează pe infrastructura de
comunicaţie a diferitelor firme.
Reţelele locale (LAN) sunt astăzi obişnuite în orice tip de organizaţie
(firmă mare sau mică, instituţie de educaţie sau administraţie), oferind
un mijloc de comunicaţie rapid şi complet, pentru lucrul obişnuit sau
pentru teleconferinţe. În România au apărut companii cu caracter privat
ce asigură interconectare MAN şi WAN – prin infrastructura proprie şi
cu servicii proprii, oferind comunicaţii pentru sedii diferite ale aceleiaşi
firme, legături între firme sau conectare la Internet. Pentru integrarea
211
comunicaţiilor prin imagine (TV), voce şi date se dezvoltă o
infrastructură de comunicaţie de bandă largă („broadband”) care, pe
lângă viteza mare de transfer, va permite funcţionarea aplicaţiilor
multimedia în informare, educaţie şi comerţ.
Clasificare după topologie
Structura fizică a reţelei este importantă prin avantajele care le poate
oferi privind flexibilitatea de configurare, fiabilitatea reţelei şi nu în
ultimul rând privind lungimea cablului folosit. Topologia reţelei se
referă la forma acesteia, adică la modul de amplasare spaţială a
componentelor ei, aşa cum sunt ilustrate în Figura 51 şi Figura 52, unde
s-au reprezentat:

- staţie de lucru, - server, - repetor, - dirijor

Topologii ale reţelelor de calculatoare cu structura de principiu,


avantaje şi dezavantaje, precum şi cu utilizările lor, sunt descrise mai
jos:
 Topologia stea (v. Figura 51 a) – prezintă un nod central (de obicei
un echipament de interconectare de tip repetor sau comutator) iar
echipamentele de prelucrare au fiecare o linie de conectare dedicată
către nodul central. Avantajele majore sunt flexibilitatea (se poate
configura uşor) şi fiabilitatea (se poate depista rapid un defect de cablu
sau staţie şi se poate izola automat prin echipamentul central);
dezavantajul major este lungimea mare de cablu necesară pentru
realizarea interconectării staţiilor. Este cea mai utilizată topologie în
reţelele locale actuale de tip Ethernet.
 Topologia inel (v. Figura 51 b) – toate echipamentele sunt conectate
două câte două formând un inel. Pachetele de date parcurg întreg inelul
pentru a ajunge de la o staţie sursă la una destinaţie. Avantajele majore
sunt extensibilitatea reţelei (inelul se poate mări fără a consuma cablu
mult) şi disciplina de acces impusă prin chiar poziţia staţiilor în reţea,
fiind o topologie utilizată la reţele cu pasare de jeton. Este o topologie
utilizată în reţele locale, difuzarea asigurându-se prin faptul că datele
emise de o staţie parcurg întreg inelul spre a reveni la staţia sursă,
212
trecând astfel pe la staţia destinaţie dar pachetele fiind „ascultate” de
toate staţiile de pe parcurs.
 Topologia inel în formă de stea – în care există un echipament central
de la care pleacă un cablu cu fire dus-întors către staţii; combină
avantajele celor două topologii.
 Topologia magistrală – în care staţiile sunt conectate la o linie
comună pe care o împart la momentul emisiei. În Figura 52 a) se
prezintă o magistrală aşa cum este ea utilizată mai des astăzi, anume
pentru „coloana vertebrală” („backbone”) a unei reţele mari (de
exemplu reţea metropolitană MAN). Se observă că la magistrală sunt
conectate dirijoare, care apoi transmit datele la reţele locale. Se asigură
astfel o cale simplă şi relativ ieftină (pentru distanţe mari) în care datele
sunt transferate cu viteză mare, iar traficul pe magistrală nu este încărcat
decât cu date schimbate între reţelele locale (traficul din interiorul lor
fiind „ascuns” prin dirijorul propriu R). Avantajul major îl constituie
lungimea de cablu – minimă între toate tipologiile, dar şi posibilitatea
de emisie a unui pachet care poate fi „auzit” de toţi abonaţii magistralei;
dezavantajul major îl constituie fiabilitatea slabă – un defect nu se poate
localiza uşor, el blocând toată magistrala în orice punct ar surveni (pe
cablu, în conectori, etc.).
 Topologia plasă – în care staţiile au legături multiple între ele (două
câte două). Este o topologie utilizată în reţele largi, în Figura 52 b) fiind
ilustrată o reţea largă cu interconectare plasă a mai multor dirijoare,
fiecare fiind o „poartă” către o reţea locală. În această topologie
importantă este redundanţa căilor pentru date între staţii (adică existenţa
mai multor trasee pentru transferul de date); prin redundanţă, se poate
menţine funcţionarea reţelei largi chiar la apariţia defectelor pe o linie
sau la un dirijor, pentru că se pot folosi trasee ocolitoare – stabilite pe
loc de către celelalte dirijoare în momentul când cel implicat în defect
nu mai răspunde.

213
a)
b)
Figura 51. Topologia stea a) şi topologia inel b)

R R

b)
a)
Figura 52. Topologia magistrală a) şi topologia plasă b)

Reţelele de calculatoare reale mixează mai multe tipuri de topologii. O


topologie este aleasă corespunzător dacă se ține seama de tehnicile de
acces utilizate, scopul reţelei şi avantajele economice pe care aceasta le
aduce.

11.4. Comunicaţii prin reţele de calculatoare


Transferul de date în reţele de calculatoare presupune suportul fizic
(echipamente şi medii de comunicaţie), dar şi programe prin care se
asigură controlul comunicaţiei şi găsirea destinaţiilor şi prezentarea
comodă a informaţiilor la utilizatori.
Făcând o comparaţie cu serviciile poştale se poate considera că, lângă
clădirile şi mijloacele de transport ale poştei, sunt necesare persoane
care să realizeze înscrierea expeditorului şi destinaţiei pe plicuri,
cartarea şi distribuirea plicurilor pe destinaţii, efectuarea de servicii
214
speciale la cerere (transport rapid sau peste rând, confirmare de
primire), gestiunea codurilor poştale, apoi controlul şi rezolvarea
plicurilor rătăcite, etc. Aceste operaţiuni se realizează în serviciile
poştale de către personalul uman, dar pentru calculatoare asemenea
acţiuni se efectuează de către software.
Stratificarea în modelul de referinţă ISO/OSI
Aşa cum personalul uman din serviciile poştale este specializat pe
anumite activităţi, fiecare având un rol bine definit şi interacţiuni de
conlucrare (pe orizontală) cu colegii şi interacţiuni ierarhice (pe
verticală) sau cu şefii sau departamente de nivel superior, tot astfel
piesele software implicate în comunicaţia de date sunt stratificate şi
conlucrează între ele în cadrul unui strat şi comunică cu straturile
superioare şi inferioare.
Modelul de Referinţă ISO/OSI prezintă conceptele de stratificare a
prelucrărilor necesare în comunicaţia de date şi se bazează pe noţiunile
de mesaj – ca informaţie ce are o semnificaţie de sine stătătoare (de
exemplu fişier de date, mesaj de poştă electronică, etc.) şi pachet – ca
structură de date utile (fragment de mesaj – fără semnificaţie) cu date
de control al transportului de date. În modelul de referinţă se consideră
şapte niveluri (straturi), fiecare cu rol în comunicaţia de date după cum
urmează:
1. Nivel Fizic – cuprinde piesele fizice (hardware) prin care se
transformă succesiunea de biţi din pachetele de date în semnal
electromagnetic, care circulă apoi prin mediul de comunicaţie între
echipamente de interconectare şi de prelucrare.
2. Nivelul Legătură de Date – cuprinde piese software care asigură
informaţia de control al erorilor şi debitului de date, precum şi adresa
de direcţionare a pachetelor de date spre vecinul cel mai apropiat (pe
traseul către destinaţia mesajului), realizând şi controlul comunicaţiei
(verificarea erorilor şi controlul de flux); funcţionează în echipamente
de interconectare şi de prelucrare.
3. Nivelul Reţea – cuprinde piese software care asigură informaţia de
control a transferului de date între capete, precum şi adresa de
direcţionare a pachetelor de date spre destinaţia finală pe traseul optim
215
(în orice condiţii şi oricât de îndepărtată ar fi ea); funcţionează în
echipamente de interconectare şi de prelucrare.
4. Nivelul Transport – cuprinde piese software care asigură
fragmentarea mesajului (la sursă) şi defragmentarea sa (la destinaţie) în
pachete, precum şi indicarea tipului de serviciu (calitatea serviciului,
transport peste rând, etc.); funcţionează în echipamente de prelucrare
(sursă şi destinaţie).
5. Nivelul Sesiune – cuprinde piese software care asigură desfăşurarea
„discuţiei” bidirecţionale între cele două capete, cu rezolvarea
incidentelor care pot apare pe durata sesiunii de lucru (cum sunt
întreruperea comunicaţiei la defecte sau la iniţiativa unuia din
parteneri); funcţionează în echipamente de prelucrare (sursă şi
destinaţie).
6. Nivelul Prezentare – cuprinde piese software care asigură
compatibilizarea reprezentării datelor între cele două maşini sursă -
destinaţie (înţelegând aici şi partea hardware – tipul calculatorului, dar
şi partea software – tipul sistemului de operare) În plus, acest nivel este
responsabil de asigurarea confidenţialităţii transferului de date
(criptarea şi decriptarea datelor), de autentificarea emiţătorului şi
receptorului de mesaj (adică de certificare a identităţii lor), precum şi
de integritatea mesajelor (adică de anunţarea pierderilor sau
modificărilor de mesaj). Funcţionează în echipamente de prelucrare
(sursă şi destinaţie).
7. Nivelul Aplicaţie – care asigură piese software de prezentare şi
interacţiune standard cu utilizatorul uman pentru o utilitate anume. De
exemplu, toate aplicaţiile de poştă electronică prezintă câmpuri similare
pentru adresa destinatarului, subiect, mesaj, ataşamente. Utilizatorul
operează similar la aplicaţii de comunicaţie similare, iar programele au
protocoale de comunicaţie identice – indiferent de producător.

216
Server FTP
FTP client
Nivel 4 TCP 4
Nivel 3 IP 3
Ethernet 2
Nivel 2

Nivel 1

Figura 53. Comunicaţia între niveluri şi pe fiecare nivel la transferul de fişiere (FTP)

În modelul stratificat, nivelurile comunică între ele direct, solicitând şi


oferind servicii, iar un serviciu este realizat prin cooperarea dintre
piesele software de pe acelaşi nivel (omoloage) care „se înţeleg” prin
intermediul unui set de coduri şi convenţii standard de interpretare a
acestora – numit protocol.
Efectiv, comunicarea între straturi are loc ierarhic (v. Figura 53): un
nivel cere un serviciu nivelului imediat inferior. De exemplu, serverul
FTP cere transport cu confirmare de primire care se rezolvă în stratul 4
prin protocolul TCP). Stratul 4 adaugă datelor utile informaţii specifice,
rezolvă problemele sale şi cere un serviciu în consecinţă nivelului
inferior, 3 (de exemplu indicarea traseului minim către destinaţie,
rezolvată prin protocol IP); nivelul 3 cere nivelului 2 să facă transportul
pachetelor de date către vecinul cel mai apropiat spre destinaţie
(asigurat în LAN prin protocolul Ethernet). În final, nivelul fizic,
execută efectiv transferul de date prin unde electromagnetice. De fapt,
fiecare protocol în cadrul unui strat este o „discuţie” între piese software
aflate pe cele două maşini, care are loc prin intermediul informaţiilor de
control adăugate de fiecare nivel la informaţiile utile – preluate de la
nivelul superior. La maşina distantă (care a solicitat transferul de fişiere
– clientul FTP) se preiau de către fiecare nivel informaţiile de control
provenite de la nivelul omolog şi care indică ce anume trebuie făcut cu
informaţiile utile, după care acestea sunt transmise nivelului superior.

217
În final informaţiile utile ajung ca mesaj (în cazul nostru fişier) la
utilizatorul uman.
Aşa cum o scrisoare se pune într-un plic pe care se înscrie adresa şi
indicaţia „Par Avion”, apoi se încarcă într-un container special pe care
este aplicată eticheta cu numărul de zbor cu care va pleca, urmând ca la
destinaţie să se extragă plicul din container şi în final scrisoarea din plic.
Tot astfel, fiecare nivel împachetează datele (utile) primite de la nivelul
superior, adaugă informaţii suplimentare specifice şi îl predă nivelului
inferior. Informaţiile suplimentare sunt destinate stratului omolog
(adică de pe acelaşi nivel) ale transportorilor de pe traseul până la
destinaţie, care „se înţeleg” între ei deoarece respectă acelaşi protocol.
Resurse accesibile în reţea
Toate mijloacele fizice (hardware) şi logice (software) folosite în
comun de mai mulţi utilizatori constituie resurse ale reţelei. Tipuri de
resurse uzuale sunt:
 fişiere şi directoare pe discuri (fixe, optice, etc.), montate la server,
la staţiile de lucru, sau în arii de discuri conectate direct la reţea şi
accesibile prin intermediul unui sistem de fişiere (cum sunt NTFS – MS
Windows, NFS – SUN, Linux / UNIX);
 imprimante folosite în comun de utilizatori, eventual imprimante de
reţea – care sunt conectate direct la reţea şi nu prin intermediul unui
calculator;
 programe server: server de fişiere (de acces la fişiere folosite în
comun), server de poştă electronică (de acces emisie/recepţie mesaje
text), server web (de găzduire pagini web), server FTP (de transfer
fişiere);
 diverse periferice speciale: mese de desen, interfeţe de comunicaţie,
echipamente multimedia, interfeţe de proces.
Fiind folosite în comun, resursele trebuie gestionate adică alocate pe
rând fiecărui utilizator care solicită accesul la resursă; de obicei, sarcina
de gestionare a unei resurse revine unui program server (care lucrează
permanent – este „rezident” în memoria de lucru) pe calculatorul sau la
dispozitivul unde se află resursa (de exemplu, imprimanta de reţea are
218
programul server instalat în memoria sa). Resursele trebuie apoi
administrate adică întreţinute periodic (verificate şi eliminate erorile
minore sau informaţiile inutile), dezvoltate (perfecţionate sau
completate cu noi facilităţi), asigurate (protejate împotriva defectelor şi
accesului neautorizat).
O resursă care se doreşte folosită în comun – partajată („shared”) în
reţea, se declară ca atare şi se indică pentru fiecare utilizator modul de
acces la resursă.
Utilizatori şi drepturi de acces la resurse
Lucrul în reţea a mai multor utilizatori presupune comunicaţie între
aceştia, folosirea în comun a unor resurse dar şi posibilitatea de a se
perturba reciproc – prin ştergerea voită sau accidentală a unor fişiere,
prin acces neautorizat la anumite informaţii etc. Pentru evitarea acestor
neajunsuri, utilizatorii se conectează („logon”, „login”) la sistemul de
calcul în reţea, indicând următoarele informaţii proprii de anunţare şi
certificare a identităţii:
 nume de utilizator („user name”) – ce identifică persoana în lista de
utilizatori admişi la sistem şi permite acces acesteia la contul personal
(de obicei numele este prenumele persoanei sau o prescurtare a
numelui);
 parola („password”) – care certifică identitatea utilizatorului, este
secretă şi cuprinde o combinaţie de caractere (litere mari/mici, cifre)
greu de ghicit (recomandat a fi schimbată din când în când);
 grupul de utilizatori („user group” / „domain”) – autorizează accesul
utilizatorului la un lot de resurse (fizice – ca maşini în reţea, sau logice
– ca fişiere şi directoare).
Conform grupului din care face parte, utilizatorul are un set de drepturi
de acces la resursele disponibile în reţea – numite şi drepturi de
încredere („trustee rights”) sau permisiuni („permissions”). Aceste
drepturi indică pentru fiecare resursă sau lot de resurse operaţiile
permise utilizatorului, de exemplu pentru fişiere: „numai citire”, „citire
şi scriere”, „modificare drepturi de acces”. Un utilizator poate indica,
drepturi pe care la acordă altor utilizatori la resursele proprii - de obicei

219
diferenţiat după grupul din care fac parte („din grupul propriu” şi
„alţii”).
Există următoarele tipuri generice de utilizatori (clasificare după
drepturile de încredere şi după atribuţiile în funcţionarea reţelei):
 utilizator obişnuit („user”) – persoană înscrisă în registrele
sistemului, care utilizează doar resursele permise, în perioadele de timp
permise şi la nivelul permis (privind volumul de date transferat, spaţiul
de stocare alocat etc.);
 manager de grup („group manager”) – persoană desemnată din cadrul
grupului, care face operaţiuni de gestionare a resurselor proprii, ale
grupului şi ajută pe ceilalţi utilizatori la rezolvarea unor incidente
simple;
 administrator de reţea („superuser”, „network administrator”) –
persoană care are ca atribuţii de lucru gestionarea tuturor resurselor
reţelei şi menţinerea acestora în bună funcţionare.
Între aceşti utilizatori doar administratorul de reţea este obligatoriu cu
calificare în domeniul informaticii, el fiind răspunzător de bunul mers
al reţelei (starea de funcţionare, tipul şi disponibilitatea resurselor,
dezvoltarea reţelei) dar şi de administrarea eficientă a resurselor şi
echipamentelor de interconectare în reţea. Pentru aceasta, el deţine
drepturi de acces complete la toate resursele, fiind totodată primul
răspunzător de integritatea şi confidenţialitatea lor.
Unele resurse au ataşate atribute ce indică modul de acces şi starea lor,
pentru a le proteja de manevre greşite ce pot veni din partea oricărui tip
de utilizator (simplu sau administrator) ori pentru a efectua salvarea de
siguranţă („backup”) a acestora pe suport extern (benzi magnetice, CD,
DVD etc.).
Tipuri de servicii în reţele locale şi largi
De obicei, accesul la o resursă partajată poartă numele de serviciu în
reţea (acordat unui utilizator). De obicei, serviciile în reţea sunt
realizate prin arhitectura client-server (două piese software legate: una
pe staţia de lucru alta pe server).

220
După locul unde se află resursa şi după modul de „proprietate” asupra
ei, serviciul (accesul la resursă) pot fi:
 orientat server – în care resursa este „publică”, se află pe o maşină
dedicată care gestionează resursa şi care o alocă pe rând utilizatorilor;
 de-la-egal-la-egal („peer-to-peer”) – în care resursa este
„proprietatea” unui utilizator, se află pe staţia sa de lucru şi este oferită
de acesta spre a fi partajată („shared”) cu alţi utilizatori prin reţea.
Serviciile sunt oferite (şi gestionate) de programe care fac parte direct
din sistemul de operare sau sunt programe separate – ce sunt lansate şi
rămân rezidente în memoria de lucru, aşteptând cereri de la utilizatori
şi oferind date şi/sau prelucrări specifice.
În reţele locale (LAN) sistemul de operare oferă mai ales servicii de
acces la fişiere şi la periferice; serviciile sunt orientate server sau, cel
mai adesea, sunt de la egal la egal, caz în care resursele puse în comun
de către utilizatori sunt montate pe staţiile de lucru proprii.
În reţele largi (WAN), programele server se instalează peste sistemul
de operare– fiecare pentru un serviciu anume, acesta fiind accesat de la
distanţă prin intermediul unei adrese unice în toată reţeaua largă (spre
exemplu în Internet adresa IP şi numărul de port). Serviciile uzuale în
reţele largi vizează schimbul de informaţii, mai rar fiind întâlnite
servicii de partajare a resurselor sau lucru la distanţă. Aceste servicii
sunt realizate în arhitectură client-server, cu programul server aflat la o
locaţie („site”) cu adresa unică în reţeaua largă.
Exemple de servicii în reţeaua Internet sunt: căutare şi afişare de
informaţii sub formă de documente (pagini web sau documente scrise
în format electronic), tranzacţii comerciale sau financiare prin Internet,
vot prin Internet, discuţii în grupuri cu moderator, rețele de socializare
etc.
Un serviciu special (care se oferă implicit sau explicit) este „serviciul
de nume”, prin care se caută şi găseşte un nume de persoană sau locaţie.
Serviciul implicit (DNS) este utilizat pentru convertirea adreselor
Internet sub formă de nume în adrese sub formă de numere (folosite
apoi efectiv la căutarea locaţiilor în Internet) şi reciproc.

221
Oferta de servicii în reţele largi (în special în Internet) creşte şi se
diversifică continuu, în principal prin posibilităţile de interacţiune pe
care le prezintă limbajul XML ca standard de comunicare prin mesaje.
Serviciile Web sunt aplicaţii modulare, auto-descriptibile şi auto-
conţinute, reprezentând viitorul în schimbul de informaţii bazat pe
standarde deschise lucrând pe orice platformă, orice model de obiecte
şi orice limbaj de programare.

222
12. Internet şi Intranet

La începuturile sale, Internet-ul a fost o reţea experimentală finanţată


de Departamentul Apărării a SUA şi dezvoltată de câteva universităţi
americane, în scopul realizării unei comunicaţii de date fiabile şi care
să funcţioneze, chiar dacă este distrusă parţial. Ideea de bază era aceea
de a înlocui comunicaţia „tradiţională” – prin „centrale” (telefonice) şi
linii către fiecare abonat (în stea), cu o reţea de dispozitive de tip
dispecer (dirijoare – „routers”) plasate într-o reţea de tip plasă. În prima
abordare, dacă se distruge centrala se blochează orice comunicaţie, pe
când în a doua abordare, dacă se distruge o parte din reţea, restul poate
funcţiona şi chiar în zona atacată datele pot sosi pe alte căi disponibile
încă în reţea prin redundanţa lor (v. Figura 52 b). Prin faptul că această
reţea a fost gratuită la începuturi şi prin posibilităţile de comunicaţie
oferite (schimb de mesaje, fişiere, aplicaţii la distanţă), ea s-a extins
repede.
Astăzi, reţeaua globală Internet vine cu o deschidere nemaiîntâlnită spre
comunicare, fiind mediul de convergenţă a informaţiilor din aproape
toate mediile de activitate şi către orice utilităţi umane. Internet-ul a
valorizat comunicarea totală, fiindcă a permis, prin caracterul său
deschis şi non-profit, ca oricine doreşte să ofere şi să consume
informaţii, să aibă această posibilitate. Internet-ul a devenit o „piaţă” în
care fiecare poate, de bună voie, să etaleze şi, respectiv, să găsească
produse de tip „informaţie”. Pe această piaţă virtuală se pot astăzi vinde
şi cumpăra produse reale, fiindcă orice tranzacţie este întâi de toate un
schimb de informaţii, iar acest schimb se poate face între persoane
aflate în orice colţ al lumii. Evident, ca şi o piaţă reală, Internet-ul este
nestructurat şi uneori acoperit de „zgomot”. De aceea există şi grupuri
de interes (ca nişte magazine specializate sau ca nişte cluburi), cu
deschidere mai mult sau mai puţin liberă publicului, prin care se poate

223
focaliza interesul şi registrul de căutare după preocupările membrilor
grupului.

12.1. Evoluţia Internet-ului


Conceptualizarea reţelei de calculatoare în care datele se transmit sub
formă de datagrame sau pachete, care pot fi comutate, înlocuind
comutarea de circuite se realizează în 1960, iar prima reţea de
calculatoare de arie mare (WAN - wide area network) se realizează în
1965. În anul 1968 a fost iniţiat în S.U.A. un proiect de interconectare
a calculatoarelor pe spaţii geografice extinse, coordonat de agenţia
ARPA (Advanced Research Project Agency – înființată în 1958),
concretizat prin crearea rețelei ARPAnet in 1969, care interconecta
între ele mai multe universitati (practic o reţea de calculatoare în
beneficiul guvernului S.U.A.) şi MILNET (reţea de calculatoare în
domeniul militar). Prin standardizarea în 1974 a protocoalelor TCP/IP
s-au pus bazele reţelei DARPA iar apoi a Internet-ului („reţeaua de
reţele”) care, după 1992, a început să înglobeze alte reţele (create
începând cu 1980 independent de mai multe universităţi). Astfel, în
1989 se inventează WWW (World Wide Web) iar începând cu 1996,
Internet-ul a devenit din mediu academic unul comercial, acoperind
astăzi practic toate ţările lumii şi interconectând milioane de
calculatoare aflate în instituţii şi locuinţe personale.
Structura Internet-ului
Reţeaua Internet are o structură ierarhică, dezvoltată în jurul unui
„miez” („Internet core”) drept coloană vertebrală („backbone” – v.
Figura 52a) a întregii reţele dar cu magistrala circulară. Structura
ierarhică cuprinde Sisteme Autonome (v. Figura 54) legate la coloana
vertebrală, în care există Zone şi în ele reţele de calculatoare. Zonele
sunt interconectate prin intermediul Sistemelor Intermediare (IS -
dirijor) iar staţiile de lucru sau servere se numesc Sisteme Finale (ES -
staţii).
Modul de funcţionare a dirijoarelor diferă funcţie de locul acestora – în
interiorul sistemelor autonome sau între/şi la graniţa acestora. Un
Sistem Autonom este o colecţie de reţele sub administrație comună,
224
fiecare având o coloană vertebrală denumită „Zona 0”. Această
structură ierarhică este adoptată şi de ISO (International Standards
Organization) a cărei terminologie a fost de fapt folosită mai sus.
În Internet se folosesc denumiri de domenii care desemnează zone
geografice (ţări) sau sectoare de ocupaţie, având fiecare la rândul lor o
structură ierarhică în care numele desemnează organizaţia (ca instituţie
comercială, de administraţie, de educaţie etc.).

Figura 54. Structura ierarhică a Internet-ului

Exemple de nume de domenii:


 tipuri de organizaţii: com sau co – comerciale, edu sau ac – educaţie,
org – organizaţii non-profit, net – reţea sau furnizori de servicii în reţea,
gov – guvern, biz – afaceri, coop – cooperaţii, name – indivizi;
 zone geografice: fr – Franţa, ro – Romania, uk – Anglia, nl – Olanda.
Administrarea globală a adreselor de identificare a domeniilor se face
de către forul denumit NIC (Network Information Center), iar
conducerea (tehnică) a Internet este efectuată de forul IETF (Internet
Executive Task Force).
Internet şi WWW
În 1989 Tim Berners Lee de la Laboratorul European de Fizica
Particulelor din Geneva (CERN), a propus un sistem de informare bazat
pe hipertext pentru echipele de cercetători, acestea fiind situate în zone
geografice diferite, folosind calculatoare diferite şi documente realizate
225
în tehnologii diferite. Scopul sistemului era de a oferi o interfaţă
standard pentru operare şi prezentarea documentelor, precum şi
posibilitatea de integra diferite tipuri de servicii (existente la acel
moment în Internet). Sistemul a fost denumit „World Wide Web” (reţea
largă cât lumea), prescurtat www sau web. Această soluţie de
prezentare standard şi de integrare a serviciilor a revoluţionat Internet-
ul, astfel că astăzi – când se discută de Internet se subînţelege în cele
mai multe cazuri www.
Hipertextul („hypertext”) este un text electronic „în trei dimensiuni”:
pe lângă organizarea pe linii care se succed în pagină, există legături
(„hyperlinks”, „links”) cu alte pagini aflate pe maşina curentă sau pe o
maşină distantă. Legăturile sunt de fapt trimiteri (ce se regăsesc şi în
cărţile tipărite) care însă în pagina electronică permit „saltul” la
informaţia indicată şi vizualizarea documentului pe loc. Limbajul de
descriere a paginii web se numeşte HTML (Hyer Text Markup
Language) şi are caracteristic faptul că separă conţinutul documentului
(text şi imagini) de informaţia de formatare.
Paginile web reprezintă documente de informare către utilizator, cu
facilităţi de acces interactiv în preluarea de date de la utilizator. Pagina
web şi mijloacele de interacţiune sunt găzduite de o maşină într-o
locaţie anume („site”) pe glob. Publicarea paginii web se face prin
intermediul unui program server web, iar utilizatorul poate accesa şi
vizualiza pagina de la calculatorul propriu – prin intermediul unui
program client web denumit navigator („browser”).
Utilizarea web-ului constă în „navigarea” prin intermediul adreselor
web şi a legăturilor din hipertextul aflat în paginile web, pentru
vizualizarea şi, eventual, furnizarea informaţiilor de interes. Serviciile
oferite de web sunt foarte diverse, însă interfaţa generală de lucru şi
modul de navigare este standard.
Adrese Internet
Pentru a fi accesată, o maşină conectată la reţeaua de calculatoare
trebuie să aibă alocată o adresă unică în reţea, astfel ca la emisia datelor
să indice destinaţia fără echivoc iar la recepţie datele să fie îndrumate
către ea prin sistemele intermediare. În Internet, adresele sunt
226
specificate prin numere – „patru numere cu punct” în IPv4, de exemplu
192.168.11.33 (sau cu 16 numere pentru IPv6). Este dificil pentru om
să reţină aceste numere; în locul lor se folosesc cuvinte, care au
semnificaţie pentru om şi sunt deci uşor de memorat şi utilizat.
Exprimarea locului şi obiectului ce se doreşte accesat în Internet se face
prin URL („uniform resource locator”) care este o înşiruire de cuvinte
separate cu puncte, fiecare cuvânt exprimând numele de domeniu,
organizaţie, maşină şi obiect – în ordinea invers ierarhică a acestora.
Structura generică a URL – denumit pe comun „adresă Internet” este:
<protocol>://<maşină.organizaţie.domeniu>:<port>/<obiect>
unde <protocol> indică tipul aplicaţiei de acces la date ( şi convenţia sa
de lucru) iar <port> adresa pe maşina locală a programului (folosită în
unele cazuri). Un exemplu de adresă Internet este următoarea:

http://www.univ-danubius.ro/index.php
domeniul
protocol obiect
organizaţiei
server domeniul
geografic
prin care se accesează pagina de prezentare a universităţii „Danubius”
din Galaţi. Pe acest exemplu se indică rolul fiecărui cuvânt din structura
unui URL.
Fiindcă WWW integrează diverse tipuri de aplicaţii, fiecare din acestea
poate fi accesată indicând protocolul specific ei; de exemplu, aplicaţia
de transfer fişiere pe un site foarte cunoscut este ftp://ftp.funet.fi. – în
care s-a indicat protocolul şi serverul FTP de la „reţeaua academică
finlandeză”.
În cazul în care adresa Internet se referă la o căsuţă poştală („e-mail
box”), adresa va conţine un indicativ (nume) al persoanei sau
ionpop@univ-danubius.ro

domeniul
idicativ
organizaţiei
persoană domeniul
„at” geografic
departamentului, proprietare a căsuţei poştale:
227
Simbolul @ se pronunţă „at” (în engleză) indicând locaţia unde se află
contul de poştă electronică a persoanei; deseori acest simbol este indicat
prin expresia „a rond” când se citează adresa de poştă electronică.

12.2. Aplicaţii uzuale în Internet


Deseori în activitatea umană apar situaţii care solicită comunicaţii la
distanţă; în asemenea cazuri, se pot folosi aplicaţii în Internet, care
permit:
a. navigare şi vizualizare informaţii pe pagini web (hipertext);
b.căutare după cuvinte cheie a documentelor sau locaţiilor cu anumite
informaţii de interes (folosind „maşini de căutare”);
c.căutarea de persoane sau instituţii după nume sau după organizaţia
din care fac parte;
d. operaţiuni efectuate de la distanţă – pentru comerţ, tranzacţii
financiare, dezvoltare/ up-grade de aplicaţii;
e.transfer de fişiere la distanţă de la un server de fişiere („down-load”)
sau către acesta („up-load”) pentru utilizatori înregistraţi sau ca vizitator
(„guest”, „anonymous”);
f.lucru la distanţă prin care se pot da comenzi şi datele de prelucrare
de pe maşina proprie către o maşină distantă (de obicei mai puternică)
– ca şi cum utilizatorul s-ar afla la consola acesteia din urmă, folosind
comenzi ale sistemului ei de operare;
g.mesagerie electronică („e-mail”) prin care se transmit mesaje text
însoţite de imagini şi fişiere de date – direct în mesaj (MHS sau X-400)
ori ataşate (poşta electronică SMTP);
h. grupuri de discuţii pe teme de interes comun mai multor persoane, în
care este permis accesul la informaţii specializate sau cu circulaţie
restrânsă şi au loc dezbateri la distanţă, între persoane ce s-au înregistrat
fiecare ca membru al grupului.
Diverse alte servicii, cum sunt educaţie de la distanţă („e-learning”),
teleconferinţe (video sau doar prin voce şi date), informaţii şi acţiuni
administrative sau vot la distanţă („e-government”), acţiuni de
228
informare şi ajutor în sănătate („e-health”), se bazează pe combinaţii ale
serviciilor de mai sus şi în special pe navigare („browsing”). De obicei,
serviciile sunt oferite de un program server aflat într-o locaţie
cunoscută („site”), în conexiune cu alte locaţii.
Aplicaţii uzuale care oferă serviciile enumerate mai sus:
a) Server şi navigator Web – client şi server pentru găzduirea, respectiv
afişarea paginilor web, în principal prin interpretarea limbajului HTML
pentru descrierea documentelor. Alte limbaje utilizate pentru descrierea
documentelor la partea client sunt JavaScript şi XML, iar pentru
implementarea operaţiunilor desfăşurate la server pentru client (în
scopul animaţiei şi interactivităţii) sunt PHP, Perl. Exemple de produse
uzuale pentru partea client sunt MS Internet Explorer, Mozilla, Opera,
Safari, Chrome, iar pentru partea server sunt MS Internet Information
Server (IIS), Apache, HomePage etc.
b) Maşini de căutare – program server care permite introducerea unei
expresii ce conţine cuvinte cheie de interes (folosind operatori de tipul
+, - sau AND, OR pentru restrângerea căutării). Maşinile de căutare
prezintă baze de date şi legături către locaţiile unde se pot găsi
informaţiile căutate şi sunt rezidente pe un site cunoscut – cum sunt
Google, Yahoo, Baidu, Bing, Ask etc.
c) Căutarea de persoane prin serviciile de nume sau prin server şi client
ICQ (ca pronunţie a expresiei în engleză „I seek you” – te caut).
Utilizatorul care doreşte să caute sau să fie căutat prin Internet (în
scopul unei discuţii pe loc – ca şi cea telefonică, dar în scris) se înscrie
ca abonat la un server ICQ. Clientul ICQ anunţă serverul atunci când
utilizatorul s-a conectat la sistem (la calculatorul personal conectat la
Internet) iar serverul anunţă persoanele care doresc să comunice cu
acesta; din acest moment, poate începe discuţia între doi abonaţi prin
intermediul clienţilor ICQ.
d) Programe CGI rezidente pe maşinile server web, care sunt lansate
prin intermediul navigatorului de către utilizatorul uman şi execută
operaţiuni specifice paginii (preluarea şi încărcarea cu date prin
formulare completate de utilizator, preluarea tipului şi cantităţii unui
produs cumpărat prin Internet etc.). Programele sunt foarte diverse,
229
dedicate unei funcţii anume şi realizate în diverse limbaje de
programare (de obicei script).
e) Server şi client FTP – care găzduiesc şi respectiv permit accesul la
fişiere cu conţinut divers (documente, programe, arhive). Serverele şi
navigatoarele web furnizează servicii FTP, dar există şi produse
dedicate (CuteFTP) sau servere FTP în sistemele de operare (de tip
UNIX, Windows).
f) Telnet – aplicaţie uzuală de lucru la distanţă în care partea server este
oferită de sistemul de operare iar partea client este un emulator de
„terminal virtual” standard, a căror funcţii privesc introducerea şi
afişarea datelor (de la tastatură şi respectiv pe ecran) – ca şi cum maşina
utilizatorului ar fi terminal la sistemul distant. Server-ul şi clientul telnet
fac parte din sistemul de operare în reţea (de tip UNIX, Windows) –
instalate pe maşina locală şi distantă.
g) Server şi client de poştă electronică – în care serverul are rolul de a
găzdui căsuţele poştale ale utilizatorilor la sistemul respectiv, de a primi
şi a distribui mesajele către căsuţele poştale ale utilizatorilor, de a lua
legătura şi a transmite mesajele de la utilizatori la destinaţiile indicate
(prin adrese de poştă electronică); partea client este un program care
face parte din navigatorul web sau poate fi un produs dedicat (cum este
Eudora, Pegasus Mail), care oferă o interfaţă cu câmpuri standard
pentru a indica destinaţia, subiectul, conţinutul mesajului şi fişierele
ataşate acestuia. Server-ul de poştă electronică face parte din sistemul
de operare în reţea pentru sisteme UNIX, sau din IIS la sisteme
Windows. Toate aceste implementări privesc poşta electronică de tip
SMTP. Pentru poşta tip MHS există produse dedicate, în general
scumpe.
h) Chat şi Forum sunt numele generice ale aplicaţiilor care permit
discuţii de grup în Internet. Chat (IRC – Internet Relay Chat) este
utilizat pentru discuţia sincronă – toţi cei implicaţi în discuţie sunt
prezenţi simultan, iar Forum permite discuţia asincronă, cei implicaţi
pot să citească mesajele şi să răspundă mai târziu, în momentul când s-
au conectat la sistem sau au găsit timp pentru aceasta. În Chat, există
un server care găzduieşte mai multe grupuri simultane (camere,
„rooms”), discuţiile fiind supravegheate de un moderator prezent la
230
server. Clientul Chat este ori un produs ca MS NetMeeting sau MS
mIRC ori este oferit de site-ul ce găzduieşte serverul. O variantă de
discuţie pe Internet este oferită de unele site-uri de poştă electronică
gratuită prin clienţi de tip „Mesenger” pentru discuţie între doi abonaţi
la site care se află conectaţi simultan în reţea.
Există multe alte aplicaţii care se bazează pe comunicaţii la mare
distanţă (de exemplu iChat, Viber, Hangouts, Google Apps etc.); unele
din acestea au ca scop prelucrarea distribuită în reţele largi, bazându-se,
de exemplu, pe standardul CORBA (Common Object Request Broker
Architecture) sau pe standardul DCE (Distributed Computing
Environment), prin care se integrează aplicaţii diverse, pe maşini
diferite şi de generaţii diferite, folosind interfeţe software standard ce
permit lansarea şi operarea cu aceste aplicaţii de pe maşini distante.

12.3. Conectarea la Internet


Un calculator poate folosi servicii în Internet dacă este „conectat la
Internet”, adică este inclus în reţeaua largă prin infrastructura de
comunicaţie şi apoi are alocată o adresă Internet (adresă IP) pentru a fi
accesat în reţea prin intermediul unui Furnizor de Servicii Internet (ISP
– „Internet service provider”). Conectarea unui calculator la reţeaua
largă şi la furnizorul de servicii se poate face în diverse moduri, după
cum se prezintă în continuare.
Conectare prin modem la linia telefonică
La transportul pe linii telefonice a semnalelor digitale (impulsuri)
acestea sunt deformate şi comunicaţia nu poate avea loc; de aceea,
semnalul digital se „încarcă” peste un semnal analogic prin modulare
(la emisie) şi se „descarcă” prin demodulare la recepţie. Dispozitivul
care face modularea şi demodularea se numeşte modem de linie
telefonică. Constructiv, modemul poate fi modem intern – ca placă ce
se montează pe magistrala sistemului de calcul (ISA sau PCI), sau poate
fi modem extern – ca dispozitiv independent conectat la interfaţa serială
RS232 sau la magistrala USB a sistemului de calcul.
Un sistem de operare modern permite depistarea modemului şi
includerea sa în setul de periferice al sistemului de calcul, printr-un
231
program „driver” ce controlează funcţionarea modemului. Debitul de
comunicaţie la conectarea prin modem de linie telefonică poate fi de 14
Kbps până la 56 Kbps (Kilo bit pe secundă).
Conectarea modemului la furnizorul de servicii se poate face prin linie
comutată (prin centrala telefonică) sau prin linie închiriată – linie
directă folosită numai pentru transferul de date al beneficiarului.
Evident, costurile diferă dar viteza de transfer este mult mai mare în
cazul folosirii liniilor închiriate.
Conectare la linii de bandă largă
Aplicaţiile actuale prin care se oferă servicii în Internet necesită „bandă
largă” („broadband”) adică un debit mare la transferul de date
(impropriu considerate „viteze mari”). Furnizorii de servicii Internet
oferă infrastructura de comunicaţie şi dispozitive pentru a asigura aceste
debite (viteze) mari, cu una din tehnologiile:
 ISDN (Integrated Services Digital Network) – ca infrastructură de
mare viteză care digitizează şi mixează comunicaţii de date, voce
(telefon), fax, video pe aceleaşi linii. Când serviciul este oferit de
furnizori de telefonie digitală se prevăd două canale a 64 Kbps de date
şi unul de 16 Kbps de control – astfel că rata maximă de transfer este
de 144 Kbps, dar când serviciul este oferit prin fibră optică poate ajunge
până la 2 Mbps (pe baza a maxim 30 canale de date).
 ATM (Asynchronous Transfer Mode) – denumit şi B-ISDN, permite
telecomunicaţii de bandă largă (de 622 Mbps dar poate ajunge şi până
la 2,48 Gbps) mixând date, voce şi imagine digitizate. Transmisia se
face prin pachete mici de date, (53 octeţi) în reţele comutate (pe
principiul centralelor telefonice), totdeauna la viteza maximă, prin fibră
optică, local (în interiorul organizaţiei) sau la mare distanţă.
 Bandă largă prin CATV (Community Antenna Television) – transfer
de date prin cablu TV la furnizori de televiziune prin cablu, prin cablu
coaxial (pe canale de 6 MHz lărgime de bandă) sau prin fibră optică
(DQDB de la 50 Mbps la 600 Mbps) în reţele MAN.
Pentru fiecare categorie de conectare este necesar un modem special şi
plata serviciului.

232
Conectare prin reţeaua locală
Atunci când organizaţia dispune de o reţea (reţea locală LAN – dacă
organizaţia este mică, sau interconectare de reţele locale – la organizaţii
mari) fiecare calculator este conectat la mediul de transfer în LAN prin
intermediul unei plăci de reţea (sau „adaptor/controller de reţea”).
Mediul de transfer este de obicei cuprul - prin cablu torsadat ne-ecranat
(UTP) sau Wi-Fi, iar reţeaua locală prezintă echipamente de
interconectare, de obicei prin „switch”.
Uzual, reţelele locale sunt de tip Ethernet (pe cablu UTP) având rate de
transfer de 10 Mbps sau 1 Gbps. Efectiv, rata de transfer în Internet este
însă determinată de tipul de acces la Internet a organizaţiei: prin linie
telefonică (comutată sau închiriată) sau prin linie de bandă largă (fibră
optică şi servicii de bandă largă).
Dependent de tehnologia reţelei locale, placa de reţea prezintă o adresă
fizică (pentru nivelurile 1 şi 2) prin care este accesată în reţeaua locală,
precum şi o adresă Internet (adresă IP – pentru nivelul 3) prin care este
accesată în Internet. Adresa fizică este, de obicei, înscrisă fix în placa
de reţea iar adresa IP este înscrisă de administratorul de reţea în sistemul
de operare sau este furnizată pe loc – la conectarea în Internet, de către
un server specializat (RARP). Pentru conectarea organizaţiei la
Internet, este necesar un echipament de interconectare de tip dirijor
(„router”), eventual fiind emulat prin sistemul de operare al maşinii
server pentru Internet (web, e-mail, etc.) al organizaţiei.

12.4. Intranet
Prin Intranet se înţelege aplicarea tehnicilor şi conceptelor Internet în
interiorul unei organizaţii, folosind protocoale TCP/IP şi tehnologii
WWW. Astfel Intranet devine un Internet privat în care utilizatorii pot
folosi navigatoare şi celelalte facilităţi de comunicare WWW pentru a
schimba informaţii între ei. În plus, Intranet-ul este separat de restul
reţelei Internet prin sisteme de protecţie de tip „firewall”, prin care se
urmăresc toate operaţiile de acces din afară către Intranet şi se
blochează operaţii nepermise sau care reprezintă un pericol pentru
datele şi programele organizaţiei.
233
Cum astăzi se tinde spre o integrare a tuturor tipurilor de comunicaţii,
Intranet permite utilizarea în interiorul organizaţiei a platformei
universale de comunicaţie (multimedia şi hipermedia) pe care
navigatoarele web le pun la dispoziţie. În fapt, este necesar ca în fiecare
loc din mediul organizaţional Intranet, de unde se doreşte să se facă
publice informaţii, să existe un server web, la care se pot conecta prin
clienţi web (navigatoare web) membrii organizaţiei.

12.5. Utilizarea aplicaţiilor de comunicaţie în Internet


Dintre aplicaţiile uzuale în Internet, cele mai importante sunt
navigatoarele web şi poşta electronică. Navigatorul este folosit pentru
vizualizarea paginilor web, pentru interacţiunea cu servere în locaţii
distante („site-uri”), precum şi pentru căutare în Internet. Poşta
electronică (simplă - SMTP) este folosită pentru transmiterea şi
recepţionarea de mesaje text, eventual cu fişiere ataşate. Utilizarea
acestor aplicaţii este posibilă dacă maşina pe care ele se află instalate
este conectată la Internet (prin intermediul unui ISP) şi dacă există un
server adecvat pentru fiecare. În continuare, se prezintă utilizarea părţii
client pentru navigator şi poşta electronică, cu exemple de implicare şi
exploatare a părţii server.

12.5.1. Navigator Web


Produsele de tip navigator constituie partea client a aplicaţiei de
vizualizare a paginilor web. După conectarea la Internet se poate accesa
serverul web (denumit „site”) care găzduieşte pagina cu informaţii de
interes. Prima pagină vizitată este numită pagina de start („home page”
v.fig 55) care poate fi pagina de prezentare a organizaţiei proprii sau o
altă pagină preferată. Utilizatorul va executa „salturi” spre alte locaţii
(„site”-uri) prin intermediul legăturilor oferite de hipertextul din
paginile pe care le vizitează sau poate înscrie direct, în bara de adresă
6 , adrese (URL) cunoscute.

234
1 2 3 4 5 6 7 8 9 10

Figura 55. O pagină web de start („home page”)

Bara de unelte a ferestrei navigatorului (de exemplu MS Internet


Explorer în fig.55) conţine elemente necesare parcurgerii paginilor web
– ce au fost vizualizate: 1 „parcurgere înapoi” - vizionarea paginii
precedente, 2 „parcurgere înainte” - vizionarea paginii următoare
(dacă s-a revenit la una precedentă), 3 oprirea încărcării paginii cu
adresa curentă, 4 reîncărcarea paginii curente, 5 salt la pagina de
start, 6 casetă de text pentru înscrierea adresei URL ce se doreşte
vizitată, 7 colecţie de adrese (URL) preferate (păstrate ca „favourites”
sau semne de carte „bookmarks”), 8 acces la client de poştă
electronică disponibil în navigator, 9 pagina web vizualizată, 10
buton de iniţiere a saltului la pagina cu adresa indicată în 6 .
Pagina curentă se poate salva şi tipări, se poate declara ca pagină de
start, se poate vizualiza în formatul sursă al limbajului de descriere
HTML (opţiune în meniul „Edit”), se poate include între paginile
preferate (opţiune în meniul „Favorites”).

235
În general, o pagină web prezintă chiar în conţinutul său hiperlegături
de navigare: „parcurgere înapoi” şi „parcurgere înainte”, salt la început
şi salt la sfârşitul paginii. Aceste facilităţi şi hiperlegăturile din pagină
dau utilizatorului senzaţia de libertate de alegere a căilor şi obiectelor
de vizitare în „spaţiul cibernetic” – cum este denumit Internet-ul.

12.5.2. Motoare de căutare


Navigarea fără o ţintă precisă se reduce la „hoinăreală” – bună eventual
pentru distracţie nu pentru realizarea unui acţiuni. De aceea, există în
Internet „motoare de căutare” care au rolul de a reduce spaţiul de
parcurs la o acţiune de informare. Un motor de căutare este o interfaţă
interactivă care accesează Internetul în mod automat și frecvent,
permite formularea de interogări către o bază de date care conţine
cuvinte cheie şi legături spre locaţii ce deţin documente unde apar
aceste cuvinte cheie. În momentul în care un utilizator apelează la un
motor de căutare pentru a găsi o informație, o anumită frază sau un
cuvânt, motorul de căutare se va uita în această bază de date și, în
funcție de anumite criterii de prioritate, va crea și afișa o listă de
rezultate.
Interfaţa interactivă prezintă obligatoriu o casetă de text pentru
introducerea interogării - sub forma cuvântului sau combinaţiei de
cuvinte de căutat. În Figura 56 se indică elementele uzuale ale interfeţei
de căutare, prin exemplificare www.google.com:

Figura 56. Pagină cu rezultate ale căutării utilizând Google

236
Uzual, în josul paginii afişate, se găsesc butoane de navigare către
pagini ulterioare (şi precedente) în mulţimea de elemente afişate. Să
presupunem că s-a dorit căutarea unor informaţii despre universitatea
„Danubius”. După cum se constată din Figura 56, căutarea după
cuvântul cheie „Danubius” a produs 822.000 rezultate, din care doar
primele 10 (cele mai des utilizate) afişate în pagina curentă; pentru a
ajunge la informaţiile dorite, trebuie parcurse foarte multe elemente
(prin căutare secvenţială – adică pagină cu pagină). Pentru a reduce
acest spaţiu de căutare, se pot formula expresii logice folosind cuvintele
cheie căutate. Spre exemplu, se restrânge spaţiul de căutare dacă se
adaugă la cuvântul „Danubius” şi cuvântul „universitate”, ca în Figura
57, numărul de elemente găsite scăzând la 17.900 - primul fiind chiar
legat de informaţia căutată.

Figura 57. Rafinarea rezultatelor căutării cu Google


Operatorii folosiţi în expresii de interogare complexe - pentru rafinarea
căutării, pot fi:
 „” cuvinte între ghilimele înseamnă că pagina trebuie să conţină exact
fraza dintre ghilimele;
 + cuvântul care are plus înainte (ex. +universitate) trebuie neapărat
să existe în pagină;

237
 - cuvântul care are minus înainte (ex. –hotel) nu trebuie să se găsească
în pagină (echivalent cu NOT);
 AND – de exemplu: danubius AND galati (prin care se caută pagini
care conţin obligatoriu ambele cuvinte); cuvintele pot fi scrise cu
iniţiale majuscule sau nu.
 OR – de exemplu: danubius OR universitate (prin care se caută pagini
care conţin măcar unul din cuvinte sau amândouă).
Se fac următoarele recomandări pentru o căutare eficientă:
 Se specifică cât mai simplu şi direct interogarea (indicând
cuvântul căutat).
 În cazul unui set mare de elemente rezultat, se analizează
aspectele efectiv dorite pentru informaţia căutată şi se precizează
sinonime sau antonime.
 Se creează expresii de interogare (folosind operatori), care să
includă sau să excludă cuvinte specifice aspectelor vizate
(sinonime, respectiv antonime).
 Se parcurg măcar 50 de elemente din primele pagini rezultat al
interogării.
 Se parcurg pagini similare sugerate de maşina de căutare.

Există diverse locaţii care oferă maşini de căutare cu diferite facilităţi:


www.altavista.com (oferă expresii eficiente de restrângere a căutării),
www.lycos.com (oferă cataloage organizate după subiecte),
www.infoseek.com (oferă cu catalog extensiv de locaţii clasificate după
subiect), www.yahoo.com (mai curând un catalog cu clasificarea
locaţiilor pe domenii), Baidu, Bing etc.

12.6. Securitatea datelor și informațiilor

12.6.1. Conturi
Protejarea unui cont trebuie sa constituie o prioritate pentru utilizator.
În stabilirea gradului de securitate a contului trebuie să aveți în vedere
următoarele:
238
1. Informații privind securitatea contului
a) Mențineți informațiile de securitate a contului la zi (up to date)
b) Informațiile privind securitatea unui cont (declararea unui număr
de telefon sau o adresă alternativă de e-mail) sunt solicitate pentru
a verifică adevărata identitate a posesorului de cont în cazul uitării
parolei sau în cazul furtului de identitate (altcineva încearcă să
preia contul).
De obicei aceste date declarate de utilizator nu sunt utilizate în alte
scopuri.
2. Complexitate parolă. Utilizarea unei parole complexe, care să fie
schimbată la un interval scurt de timp sau la un anumit număr de
accesări ale contului și care să:
a) conțină cel puțin 8 caractere;
b) conțină o combinație de cifre, litere și simboluri;
c) nu conțină numele utilizatorului, al companiei sau numele real al
persoanei deținătoare;
d) nu conțină cuvinte întregi;
e) să fie total diferită de parola anterioară;
f) să fie diferită de parola utilizată pentru alte conturi web, mai ales
față de cele de e-mail sau online banking;
3. Activare autentificare avansată. Anumite aplicații/site-uri care
necesită logare oferă posibilitatea verificării identității prin doi pași
(two-step verification). Această măsură sporește securitatea contului,
îngreunând sarcina unui hacker de a fura identitatea unui utilizator,
chiar dacă ar avea o cât de mică idee referitoare la cunoașterea/ghicirea
parolei. Activarea acestei opțiuni va cere, pe langă informațiile clasice
ale unui logări, un cod suplimentar de securitare, transmis pe telefon
sau contul de e-mail alternativ/suplimentar inserat la pasul 1.
4. Instalare /actualizare ultima versiune software (sistem operare,
browser, programe, etc.). Majoritatea dezvoltatorilor de aplicații și
servicii își îmbunătățesc continuu produsele cu ajutorul update-uri de
securitate, înlăturând totodată breșele de securitate descoperite. Aceste
actualizări blochează atacurile produse de viruși și malware.

239
5. Instalare antivirus. Fără știința utilizatorului, contul poate deveni
vulnerabil. Prin simpla accesare a diferitelor site-uri sau descărcând
anumite programe sau fișiere, hacker-ii pot afla parola contului, prin
intermediul malware (malicious software), care se instalează fără știința
utilizatorului pe calculator. Prin urmare, este important ca în momentul
schimbării parolei sau a informațiilor privind securitatea contului,
calculatorul să fie ”scanat și curățat” cu un program antivirus pentru a
fi în siguranță.
6. Preventivitate. Utilizatorul trebuie întotdeauna să fie atent la
mesajele și site-urile web care prezintă anumite elemente de îndoială.
a) Nu deschideți mesajele sau fișierele atașate lor, transmise de către
utilizatori necunoscuți;
b) Virușii atașați mesajelor se pot răspândi cu repeziciune odată cu
accesarea fișierelor;
c) Este recomandat sa nu deschideți un fișier atașat, decât dacă
acesta este transmis de către un cunoscut sau dacă vă așteptați să
primiți acel fișier;
d) Asigurați-vă ca sursa de unde faceți un download este de
încredere;
e) Fiți prevăzători când descărcați aplicații sau fișiere din Internet.
7. Accesare nedorită. Urmăriți îndeaproape activitățile neobișnuite sau
suspecte din history sau recent activity (dacă aceste opțiuni sunt
disponibile). Aici aveți informații referitoare la logare și schimbările
aduse contului. Dacă observați ceva suspect, nu amânați schimbarea
parolei sau a informațiilor privind securitatea contului.
8. Setare browser. Browser-ul web poate identifica anumite site-uri
web care prezintă elemente de suspiciune sau malware, dacă versiunea
este actualizată. Totodată, este indicat să blocăm toate acele informații
care ne invadează spațiul de lucru prin activarea pop-up bloker-ului.
Chiar dacă majoritatea informațiilor pe care nu le dorim reprezintă
reclame, acestea pot conține coduri ascunse nesigure sau malware. Prin
activarea pop-up bloker-ului, aceste informații nedorite nu vor mai fi
afișate.

240
9. Secretizare date. Datele de logare trebuiesc ținte secrete. Acestea nu
se transmit. Este indicat, pentru a preveni eventualele inconveniente
produse de uitarea datelor de logare, ca acestea să fie notate și
depozitate într-un loc ferit, doar de noi știut.
10. Partajare PC. În cazul în care un calculator este utilizat de către
mai mulți utilizatori, este indicat ca fiecare să se logheze individual cu
propriile date de logare (user și parola). Pentru a evita neplăcerile
cauzate de partajarea tehnicii de calcul este indicat să:
a) vizualizați aplicațiile active imediat după logare;
b) blocați contul de utilizator de fiecare dată când părăsiți incinta
unde este amplasat calculatorul;
c) schimbați frecvent parola, ținând cont de complexitate;
d) salvați datele vitale/sensibile pe un alt mediu de stocare decât cel
intern;
e) asigurați backup-ul datelor cât de des posibil.

12.6.2. Servicii
Memorați Codul dumneavoastră de utilizator și parola și nu le
dezvăluiți nimănui, verbal, telefonic sau prin e-mail/formular, chiar
dacă persoanele respective sunt reprezentanți autorizați sau reprezintă
oricare altă autoritate.
Doar dumneavoastră trebuie să știți parola. Toate introducerile eronate
de parolă sunt înregistrate de unele site-uri. După 3 încercări nereușite,
accesul este blocat, deblocarea intervenind după 24 de ore, printr-o
procedura automată, în condițiile în care nu există alte tentative de
accesare în acest interval și parola introdusă este cea corectă. În caz de
pierdere, furt sau uitare a Parolei, puteți primi o nouă parolă, doar dacă
asigurați date suplimentare care să permită identificarea corectă a
posesorului contului.
Anumite servicii prevăd un anumit număr de conexiuni ce pot fi
efectuate cu aceeași Parola. După atingerea acestei limite, este
recomandată schimbarea Parolei prin intermediul site-ului accesând
opțiunea: "Schimbare Parola". Totodată, este indicat să schimbați
parola la intervale regulate de timp, cel puțin de 2 ori pe an.
241
Codul de utilizator și parola
Accesul dumneavoastră pe un site specializat se face doar pe baza celor
2 elemente de securitate: cod de utilizator și parola, pe care le
introduceți în ecranul intitulat "Identificare/Login" (introducerea
acestor date este indicat să se efectueze în protocol securizat).
Codul de Utilizator și Parola sunt indispensabile utilizării oricărui
serviciu care utilizează autentificare și trebuie să fie cunoscute numai
de dumneavoastră. Le veți utiliza ori de cate ori vă veți conecta la
contul / conturile dumneavoastră. Din motive de securitate este
recomandat să schimbați Parola imediat după prima conexiune la
anumite servicii, în special ca cele care o generează automat.
Cod de utilizator, parola și SMS. Acest profil de utilizare folosește
cele 2 elemente de securitate: cod de utilizator și parola pentru
funcționalitățile de bază, iar suplimentar pentru funcționalitățile care
prezintă un grad mai ridicat de risc se utilizează o parolă unică primită
prin SMS. Parola unică este recepționată pe numărul de telefon
principal declarat de către utilizator și este utilizată pentru a semna
anumite tranzacții. Aceasta este transmisă în momentul inițierii
transferului și poate fi utilizată doar pentru acea tranzacție, având o
perioada de valabilitate limitată.
Cod de utilizator, parola și Digipass
Acest profil de utilizare folosește cele 2 elemente de securitate: cod de
utilizator și parola pentru funcționalitățile de bază, iar suplimentar
pentru funcționalitățile care prezintă un grad mai ridicat de risc se
utilizează Digipass-ul mobil sau hardware.
Digipass-ul (token) este o soluție avansată de semnare tranzacții,
utilizează un proces de autentificare bazat pe doi factori. Digipass-ul
mobil funcționează la fel ca cel hardware, însă nu mai este necesar un
dispozitiv suplimentar, generarea parolei și semnarea tranzacției se face
direct în cadrul aplicației de pe mobil.
Cod de utilizator și Digipass

242
Acest profil folosește 2 elemente de securitate: cod de utilizator și
parola generată prin intermediul Digipass-ului mobil sau hardware,
pentru toate funcționalitățile serviciului oferit de furnizor.
Acesta este o soluție avansată de semnare tranzacții, utilizează un
proces de autentificare bazat pe doi factori. Digipass-ul mobil
funcționează la fel ca cel hardware, însă nu mai este necesar un
dispozitiv suplimentar, generarea parolei și semnarea tranzacției se face
direct în cadrul aplicației de pe mobil.

12.6.3. Infracţiuni prin diverse tehnici de comunicare


Poliţia de Investigare a Fraudelor vă atenţionează despre tentativele
unor persoane rău intenţionate de a vă înşela, săvârşind o serie de
infracţiuni prin diverse tehnici de comunicare - telefonie, mms, sms,
poştă electronică etc. Vă atenţionăm că în situaţia în care veţi da curs
acestor oferte iluzorii, sunteţi pasibili de prejudicii materiale. Pentru a
preîntâmpina comiterea unor asemenea fapte, vă prezentăm concret
ofertele frauduloase frecvent folosite de infractori:
 trimiterea de mesaje de tip text (sms), în cadrul reţelelor mobile,
cel ce recepţionează mesajul este anunţat că a fost declarat
câştigător, fiindu-i oferit şi un cod unic de înregistrare. Potenţiala
victimă este invitată să sune la un anumit număr, unde trebuie să
comunice numărul unic pentru a fi validat ca şi câştigător, însă
trebuie să achite o taxă de curierat, care de multe ori este destul
de mare;
 trimiterea de e-mail-uri la diferite persoane, prin care potenţialele
victime sunt informate că pot câştiga sume fabuloase. Adresa de
e-mail conţine o listă de 5 persoane cu adresele complete, precum
şi un set de instrucţiuni pentru a intra în posesia premiului. Pentru
câştigarea premiului, cel desemnat câştigător trebuie să trimită pe
adresa primei persoane din cele 5 un plic sigilat cu o anumită
sumă, urmând ca e-mail-ul său să îl trimită la alte 10 persoane din
adresa de e-mail;
 primirea de apeluri telefonice de la persoane necunoscute, prin
care potenţiala victimă este anunţată că a câştigat un concurs, cu

243
produsele unei mărci cunoscute, câştig condiţionat de
transmiterea a 10 coduri de cartele reîncărcabile ale unui anumit
operator de telefonie mobilă;trimiterea de mesaje de tip text (sms)
în cadrul reţelelor mobile, cu promisiunea făcută potenţialei
victime, că va primi un premiu dacă va cumpăra cartele preplătite
de telefonie mobilă şi va comunica seriile şi numerele de cod ale
cartelelor respective.
Pentru prevenirea acestor tipuri de fraude Poliţia de Investigare a
Fraudelor recomandă insistent să:
 nu luaţi în considerare eventualele mesaje în care sunteţi desemnat
câştigător, fără temei, al vreunui concurs/sondaj organizat de o
firmă de renume şi cu o puternică reputaţie;
 nu trimiteţi date personale sau copii după C.I., buletin, cărţi
credit/debit etc. pe mail/fax;
 nu acceptaţi în niciun caz să trimiteţi persoanelor necunoscute
bani în avans pentru aducerea unui autoturism sau alt bun, la care
aţi fost anunţat câştigător;
 nu furnizaţi date confidenţiale prin telefon dacă apelul provine de
la un număr ascuns sau un număr de mobil pe care nu-l cunoaşteţi;
niciodată o societate nu va solicita aşa ceva, garantat este o
tentativă de fraudare!

244
Bibliografie

1. Ariton, V. & Postolache, F. (2006). The Diagnosis by Abduction using Human


Expert Knowledge. Acta Universitatis Danubius. Œconomica, nr. 1(2)/2006,
ISSN: 2065-0175, pp. 161-178.
2. Ariton, Viorel; Panfiloiu, Gh; Postolache, F. & Răileanu, Alina Beatrice
(2010). Bazele Informaticii. Galați: Editura Universitară Danubius.
3. Bott, Ed & Woody, Leonard (2002). Microsoft Office XP. București: Teora.
4. Cowart, R. & Knittel, B. (2002). Microsoft Windows Professional. București:
Teora.
5. Craig Stinson, Carl Siechert, (2008). Microsoft Windows 2000 Professional,
Teora, 2001;
6. Davis, C. et al. (eds). (1983). Entity-Relationship approach to Software
Engineering. North Holland.
7. Fehily, Chris (2008). Microsoft Windows Vista. Ghid vizual. București: Teora.
8. Glenn, Walter (2003). Microsoft Windows XP in imagini. Teora.
9. Granor, Tamar E.; Carr, Scott & Hiser, Sam (2003). OOoSwitch: 501 Things
You Want to Know About Switching To OpenOffice.org from Microsoft Office.
Hentzenwerke Publishing.
10. Jacobson, I.; Ericsson, M. & Jacobson, A. (2001). The Object Advantage:
business process engineering with object technology. Addison-Wesley.
11. Johnson, Steve (2004). Microsoft Office 2003. Perspection Inc.: Teora.
12. Johnson, Steve (2008). Microsoft Office - Excel 2007. Teora.
13. Johnson, Steve (2008). Microsoft Office - Outlook 2007. Teora.
14. Johnson, Steve (2008). Microsoft Office - PowerPoint 2007. Teora.
15. Johnson, Steve (2008). Microsoft Office - Word 2007. Teora.
16. Leete, Gurdy; Finkelstein, Ellen & Leete, Mary (2004). OpenOffice.org for
Dummies.Wiley Publishing. Inc.

245
17. Norton, Peter (2001). Irfan Chaudhry, Tom Burke, Microsoft Windows
2000 Server. Teora.
18. Odăgescu, I.; Smeurean, I. & Ştefănescu, I. (1993). Programarea avansată
a calculatoarelor personale. București: Ed. Militară.
19. Ogletree, Terry (2007). Reţele de calculatoare - depanare și
modernizare.Teora.
20. Ottino, J. (2009). Engineering Complex Systems and Complex Systems
Engineering. Northwestern University.
21. Popovici, P. (2006). Bazele Informaticii. Ed. Eurostampa.
22. Postolache, F. (2011). Teza de doctorat: Contribuţii la achiziţia şi
structurarea cunoştinţelor în sisteme inteligente pentru diagnoza defectelor.
23. Postolache, F. (2012). Achiziţia și structurarea cunoştinţelor în sistemele
IT virtualizate. Galați: Zigotto.
24. Postolache, F. (2012). Diagnoza defectelor. Abordări privind alocarea
dinamică și echilibrarea încărcării resurselor în sistemele IT virtualizate. Galați:
Zigotto.
25. Postolache, F.; Bumbaru, S. & Ariton, V. (2010). Complex systems
virtualization in the current’s economical context. EuroEconomica, Nr.
3(26)/2010 - ISSN 1582-8859, pp. 29-50.
26. Postolache, F.; Bumbaru, S. & Ariton, V. (2010). Knowledge acquisition
and structuring for diagnosis in complex virtual systems, The 1st International
Conference “Advances in Engineering & Management” ADEM 2010 – Drobeta
Turnu-Severin, ISBN 978-606-510-899-8.
27. Postolache, F.; Bumbaru, S. & Constantin, F.A. (2010). Framework on
virtualisation applications and benefits, The 4th International Workshop on Soft
Computing Applications - SOFA2010, Arad, Romania, IEEE Catalog Number:
CFP1028D-CDR, ISBN: 978-1-4244-7983-2.
28. Rumbaugh, J. et al. (1991). Object Oriented modeling and design, Prentice
Hall Int. Englewood Cliffs.
29. Sams, Greg Perry (2005). Teach Yourself OpenOffice.org All in One (Sams
Teach Yourself). Sams Publishing.
30. Sams, Greg Perry (2008). Microsoft Office 2007 - 5 in 1. București: Teora.
31. Scholtz-Reiter, B. et al. (1996). Business Process Modelling. Heidelberg,
Springer.

246
32. Schreiber, G.; Wielinga, B & Breuker, J. (1993). KADS: A Principled
Approach to Knowledge-Based System Development. Academic Press, London,
UK.
33. Solveig, Haugland (2005). The OpenOffice.org Guidebook.
34. Stanciu, A. Pana, ş.a. (2003). Informatică generală. Bucureşti: DualTech.
35. Stroustrup, B. (1991). The annotated C++ Reference manual. Addison
Wesley.
36. Tardieu, H. et al. (1986). La methode MERISE. Principes et outils, Les
editions d’organisation.
37. Weber, Jean (2004). OpenOffice.org Writer: The Free Alternative to
Microsoft Word [ILLUSTRATED]. O'Reilly.
38. Wilson, D. A. (1998). Managing Information. Butterworth-Heinemann.
39. Zadeh, L. A. (1965). Fuzzy sets, Information and Control.
40. Zorkoczy, P. & Heap, N. (1995). Information Technology – an
introduction. Pitman Publishing.

Webografie

41. http://why.openoffice.org/why_edu.html *** Why OpenOffice.org 3***


42. http://www.politiaromana.ro/fraude_tehnici_comunicare.htm
43. http://www.vmware.com
44. http://sofa2010.org/index.html

247