Sunteți pe pagina 1din 268

Florin Postolache Viorel Ariton

Informatică economică
Ediţie revizuită şi adăugită

Editura Universitară Danubius


Galaţi, 2013
Florin Postolache, Viorel Ariton Informatica economică

Descrierea CIP a Bibliotecii Naţionale a României


POSTOLACHE, FLORIN
Informatică economică : note de curs / Florin Postolache, Viorel
Ariton. - Galaţi : Editura Universitară Danubius, 2013
Bibliogr.
ISBN 978-606-533-319-2

I. Ariton, Viorel

004:33(075.8)
Introducere în informatică ...................................................................................................5
Informaţii şi prelucrări ........................................................................................................8
Date ............................................................................................................................9
Prelucrarea datelor ....................................................................................................... 11
Scopul prelucrării electronice a informaţiilor ................................................................ 13
Organizarea datelor ......................................................................................................14
Stocarea datelor (fişiere)............................................................................................... 16
Introducerea şi prezentarea datelor ...............................................................................18
Comunicaţii de date şi multimedia .................................................................................... 21
Sistemul informațional ....................................................................................................... 23
Sisteme de calcul ................................................................................................................. 24
Structura fizică a unui sistem de calcul ......................................................................... 24
Structura logică a unui sistemului de calcul .................................................................. 35
Principiul de lucru al unui sistem de calcul ................................................................... 35
Reprezentarea şi structurarea informaţiei ........................................................................ 37
Bit, octet şi multiplii acestora ............................................................................................. 39
Identificator, variabilă, constantă, literal ..........................................................................41
Secvenţe escape ................................................................................................................... 43
Tipuri de date simple ..........................................................................................................43
Reprezentarea numerelor întregi ................................................................................... 44
Reprezentarea numerelor reale ..................................................................................... 48
Tipul de date caracter ................................................................................................... 50
Tipul de date logic ........................................................................................................ 52
Tipuri de date structurate .............................................................................................. 54
Tipuri abstracte de date – Clase de obiecte ................................................................... 59
Structuri dinamice de date ................................................................................................. 60
Liste lineare ................................................................................................................. 61
Liste nelineare (arbori) ................................................................................................. 64
Prelucrarea informaţiei ......................................................................................................67
Expresii ............................................................................................................................... 69
Instrucţiuni simple ........................................................................................................ 74
Instrucţiuni structurate (structuri de control) ................................................................. 76
Programe şi subprograme ............................................................................................. 82
Algoritmi ............................................................................................................................. 87
Exprimarea algoritmilor ............................................................................................... 87
Elaborarea algoritmilor................................................................................................. 93
Exemple de algoritmi ................................................................................................... 94
Analiza şi complexitatea algoritmilor ...........................................................................98
Categorii de prelucrare şi prezentare a informaţiilor ..................................................... 101
Calcule matematice .................................................................................................... 101
Prelucrări de birou ...................................................................................................... 102
Prelucrări prin metode de Inteligenţă Artificială (IA) .................................................. 104
Realizarea programelor şi programe suport ................................................................... 107
Problematica programării................................................................................................ 110
Etape în ciclul de viaţă ale unui produs program......................................................... 111
Limbaje de programare .............................................................................................. 121
Sintaxa și semantica limbajelor de programare ........................................................... 130
Ingineria programării.................................................................................................. 131

3
Florin Postolache, Viorel Ariton Informatica economică

Tehnici şi instrumente de realizare a programelor ......................................................... 134


Caracteristici ale programării orientate obiect ............................................................. 137
Tipuri şi structuri de aplicaţii ...................................................................................... 138
Instrumente software de dezvoltare a aplicaţiilor ........................................................ 143
Sisteme de operare şi programe utilitare ......................................................................... 150
Interfeţe utilizator ............................................................................................................ 155
Ecranul tactil .............................................................................................................. 157
Tastatura şi mouse-ul ................................................................................................. 159
Ferestre şi casete de dialog ......................................................................................... 160
Sisteme virtuale ................................................................................................................ 167
Virtual. ....................................................................................................................... 167
Virtualizare. Nor informatic ....................................................................................... 169
Virtualizarea serverului .............................................................................................. 171
Virtualizarea reţelei .................................................................................................... 172
Virtualizarea spaţiului de stocare ................................................................................ 173
Consolidarea serverului .............................................................................................. 174
Abstractizarea infrastructurii IT .................................................................................. 175
Utilizarea calculatoarelor pentru aplicaţii de birou ........................................................ 184
Procesoare de texte ........................................................................................................... 186
Structura a unui document scris .................................................................................. 187
Scrierea textului – caractere şi paragrafe..................................................................... 190
Liste şi tabele ............................................................................................................. 194
Verificarea şi corectarea ortografică şi gramaticală. .................................................... 198
Lucrul cu documente .................................................................................................. 200
Indicaţii de tehnoredactare computerizată ................................................................... 202
Foi de calcul tabelar ......................................................................................................... 205
Structura foii de calcul tabelar .................................................................................... 205
Conţinutul celulelor foii de calcul ............................................................................... 207
Lucrul cu foaia de calcul ............................................................................................ 209
Facilităţi de prezentare calitativă şi sintetică a informaţiilor ........................................ 214
Indicaţii de proiectare şi construire a foilor de calcul .................................................. 219
Reţele de calculatoare şi comunicaţii ............................................................................... 223
Problematica reţelelor de calculatoare ............................................................................ 224
Componente ale reţelelor de calculatoare.................................................................... 225
Clasificări ale reţelelor de calculatoare ....................................................................... 227
Comunicaţii prin reţele de calculatoare ....................................................................... 232
Internet şi Intranet ........................................................................................................... 240
Evoluţia Internet-ului ................................................................................................. 241
Aplicaţii uzuale în Internet ......................................................................................... 245
Conectarea la Internet ................................................................................................. 248
Intranet....................................................................................................................... 250
Utilizarea aplicaţiilor de comunicaţie în Internet ........................................................... 252
Navigator Web ........................................................................................................... 252
Motoare de căutare ..................................................................................................... 254
Securitatea datelor și informatiilor.................................................................................. 258
Conturi ....................................................................................................................... 258
Servicii....................................................................................................................... 260
Infracţiuni prin diverse tehnici de comunicare ............................................................ 262
Bibliografie ....................................................................................................................... 264
Webografie........................................................................................................................ 267
Introducere în informatică

Ştiinţa tehnologiei informaţiei (Informatica) 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. În engleză: Computer Science.
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

5
Florin Postolache, Viorel Ariton Informatica economică

studierea 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ă:
• 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;
• 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:
• 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ă).

7
Florin Postolache, Viorel Ariton Informatica economică

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
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
9
Florin Postolache, Viorel Ariton Informatica economică

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:
 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.
 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.
 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.
 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 altor tipuri de
valori decât numere (şiruri de caractere, valori logice etc.)

11
Florin Postolache, Viorel Ariton Informatica economică

 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.
 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).

13
Florin Postolache, Viorel Ariton Informatica economică

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. 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 de regăsire 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 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.
a) În cazul în care informaţia este „nestructurată” (vezi Figura 1 a)
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.

1.1

2.1 2.2
2
3.1 3.2 3.3
3
4.1 4.2 4.3

4
a) Nestructurat c) Structură arborescentă

b) Structură înlănţuită

Figura 1. Trei tipuri de organizare a datelor


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 1 b 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. 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:
15
Florin Postolache, Viorel Ariton Informatica economică

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 (în Figura 1 c
parcurgându-se 4 paşi de consultare pentru cele 9 piese).
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 ce urmează se prezintă aceste concepte în modul intuitiv,
specific interfeţelor utilizator grafice, moderne, orientate pe „ferestre”
– 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ă .

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

17
Florin Postolache, Viorel Ariton Informatica economică

Pentru organizarea eficientă a 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.
Simbo
l
grafic

Introduce Decizie
re date utilizato
r

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.

19
Florin Postolache, Viorel Ariton Informatica economică

Operaţiunile prin care utilizatorul observă simbolurile afişate ecran, ia


decizii şi apoi introduce datele (sau alege prin indicare un anumit
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 „comunicaţii de date”, aparent
excluzând comunicaţii 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 priveşte varietatea şi modalităţile de
comunicare (imagine, sunet, date), prin care se combină canalele de
comunicare umane. 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. Aceste tehnologii se referă atât la principiile şi
metodele de prezentare, cât şi la aparatura necesară pentru a obţine
prezentări de înalt nivel.

21
Florin Postolache, Viorel Ariton Informatica economică

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. Reluând exemplul de mai sus, se poate spune că, atunci când
profesorul aminteşte în prelegerea sa de laboratorul de fizică, este
posibil ca unii din cursanţii prezenţi să poată „intra” şi privi la
momentul următor în laborator – spre buna lor informare. În
tehnologia 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, în acest fel „navigând”
prin hiperspaţiul creat de paginile interconectate.
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.
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.

23
Florin Postolache, Viorel Ariton Informatica economică

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 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). Î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.

Unitate Centrală

PROCESOR MEMORIE

(microprocesor - producători (RAM – Memorie Internă)


Intel, AMD, Motorola)

MAGISTRALĂ
(intrare/ieşire)
Imprimantă

Disc Optic

(intrare)
(intrare)
Scanner
(ieşire)

(ieşire)

Mouse
Ecran

25
Florin Postolache, Viorel Ariton Informatica economică

Dispozitive periferice

Figura 4. Structura fizică a unui calculator

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).
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

27
Florin Postolache, Viorel Ariton Informatica economică

(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-4 GB sau mai mare – pentru
lucrul cu performanţe suficiente 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) 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
29
Florin Postolache, Viorel Ariton Informatica economică

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ă).
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).
c. Folie sensibilă („touch pad”) şi bilă de urmărire („trackball”) – sunt
dispozitive similare mouse-ului, folosite mai ales la calculatoare
portabile („lap top”).
d. Creion optic – este un dispozitiv similar mouse-ului care permite
indicarea directă pe ecranul (special) al monitorului; util pentru
grafică.
e. 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.
f. 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.
g. Microfon – este parte a complexului audio (placa audio şi
dispozitivele exterioare), util la aplicaţii multimedia.
h. Intrare/captură video – facilitate de preluare semnal complex de
televiziune, pentru prelucrare şi memorare digitală.
i. 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, 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, până la 19201080) ş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
31
Florin Postolache, Viorel Ariton Informatica economică

(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 – placa de sunet este adaptorul periferic pentru
comunicaţii audio, ieşirea de sunet făcându-se pe 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).
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 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-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ţă.

33
Florin Postolache, Viorel Ariton Informatica economică

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. De fapt, 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).
Chiar dacă au scăzut în popularitate, calculatoarele „mari” – ca
echipamente masive şi complexe, 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.

Procesor

Intrare Ieşire

Memorie

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 accepţia din 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”).

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

35
Florin Postolache, Viorel Ariton Informatica economică

- 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 om, în diferite situaţii, sunt legate de


mijloacele prin care acesta comunică cu mediul înconjurător ş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
texte (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ă).
38
6. 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.

0 1

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.

39
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.
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
 1.099.511.627.776
40
Tera 2

După cum se observă din Tabel. 1, semnificaţia multiplilor de bit şi


octet în informatică diferă de cea tradiţională (în care Kilo reprezintă
103 - 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 .

40
7. 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. Fie prelucrarea algebrică următoare:
a = b + pi + 15 + sin(c)
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
41
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.
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’.

42
8. 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')

9. 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

43
simboluri de scriere (alfabetul, cifrele de la 0 la 9, semnele de
punctuaţie); ele sunt denumite generic caractere alfanumerice.
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).
d)
9.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
... Mii Sute Zeci Unităţi
... 103 102 101 100
... 5 9 9 9

5999(10) = 9100 + 9101 + 9102 + 5103

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
... rang 3 rang 2 rang 1 rang 0
... 23 22 21 20
... 1 0 1 1
1011(2) = 120+121+022+123 = 11(10)
44
Figura 8. Numărul 11 în scrierea arabă, in baza de numeraţie 2
bazei - aşa cum se prezintă în figura 8.

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

Incrementa Număr în baza Incrementa Număr în baza


re 2 re 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
45
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ă
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 ).

46
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ă lungimea cuvântului este 5, bitul de semn este în
poziţia rangului cel mai semnificativ.

+ 23 22 21 20  23 22 21 20
0 0 1 0 0 1 1 1 0 0
a) Numărul + 4(10) b) Numărul  4(10)

Figura 9. Reprezentarea numerelor cu semn, pe un exemplu

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.

47
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.
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.

9.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 10 a).
+ 23 22 21 20
0 0 1 0 0 SM M SE E
Mantisă Exponent
virgula zecimală
b) număr real în virgulă mobilă
a) număr real în virgulă fixă

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


virgulă mobilă
48
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
10 b) 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: S M
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.
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().

49
Între numerele reale se pot efectua comparaţii prin operatori
relaţionali: <, >, <=, >=; comparaţia de neegalitate <> sau !=, apoi =
sau = = pentru comparaţia de egalitate.

9.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
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.
50
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 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
51
doilea este util pentru calcule şi are o reprezentare în baza 2 ca în
Tabel 2.

9.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).
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 (vezi exemplul de
la începutul acestui paragraf), 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.
52
x
~ x ŞI y z SAU

~ z
a) x
NU
b)

c) ~ z
x

Figura 11. Operaţii logice în prezentare intuitivă a) ŞI – AND, b) SAU –


OR, c) NU – NOT
Pentru exemplificarea şi lămurirea acestor trei operatori, se prezintă
(fig. 11) trei cazuri intuitive, în care întrerupătoarele x (şi y) se pot
acţiona pentru aprinderea unui bec z. 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”.
Astfel, pentru cazul din Figura 11 a) 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 11 c) 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ă

53
ş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ă).

 y 0 1  y 0 1  x 0 1
x z x z
0 0 1 z
0 0 0
1 1 1 0 1
1 0 1
NU (NOT)
ŞI (AND) SAU (OR)
z=xy z=x
z=xy

Tabel 3 Operator logic ŞI Tabel 4 Operator logic SAU


Tabel 5 Operator logic NU
9.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.
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
54
fiecare element aij este referit prin linia i şi coloana j la intersecţia
cărora se află.
a11 a12 a13 a14 
a 21 a 22 ... 
a 
... aij ... 
 
a 41 .... a 44 
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ă;
 î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
55
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)
 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.

56
Nume : V a s i l e Nume : I o n i l e
0 1 2 3 4 5  7 0 1 2  4 5 6 7
finalul şirului finalul şirului
de caractere de caractere

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.

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
57
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.

Nr_Legitimatie Nume Prenume Media Absolvit


Articol 325 Popescu Ion 8,5 Da

Câmp Valoare Nume câmp

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
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
58
Î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.

9.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;

Ş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
59
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”.

10. 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

60
pe bandă este o structură dinamică (la care se adaugă succesiv
componentele 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.

10.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
P0 E1 P1 E2 P2 … En NULL

61
Pascal) sau NULL (în C, C++ sau Java), valoare care indică spre
„nimic”.
Figura 14. Listă lineară simplu înlănţuită

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 15
a); 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 15 b).
Din aceste două exemple se constată caracterul flexibil şi dinamic al
listelor, cu observaţia că aceste caracteristici rezultă din utilizarea
tipului indicator (pointer)

62
… Ei Pi Ej Pj … En NULL

Ex Px a)

… Ei Pi Ei+1 Pi+1 Ei+2 Pi+2 …

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

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
63
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.

10.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).

E1
Nivel I P’1 P”1

E2 E3
Nivel II
P’2 P”2 P’3 P”3

E4 E5 E6 E7
Nivel III
NULL NULL NULL NULL P’6 NULL NULL NULL

E8
Nivel IV
NULL NULL

64
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.
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. Specific listelor nelineare sunt ramificaţiile prin
care se pot separa sub-arbori, care pentru arborii binari vor fi denumiţi
„sub-arbore stâng” şi „sub-arbore drept”. 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:
a) Preordine: 1 – vizitare, 2 – avans stânga, 3 – avans dreapta;
b) Inordine: 1 – avans stânga, 2 – vizitare, 3 – avans dreapta;
c) Postordine: 1 – avans stânga, 2 – avans dreapta, 3 – vizitare.
Aceste modalităţi de parcurgere se pot aplica şi recursiv .
65
 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.
1
Preordine: 1-2-3-4-5-6-7-8
2 3
Inordine: 4-2-5-1-8-6-3-7

4 5 6 7 Postordine: 4-5-2-8-6-7-3-1

8
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.

66
11. 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,

67
acţiunile se repetă la celelalte – conform unor instrucţiuni de control
al fluxului de operaţiuni.
(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.

68
12. 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 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
69
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 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.
70
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.
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.

71
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).

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

72
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
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
73
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”.

12.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ă).
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:

74
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
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];

75
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ă.

12.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.
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ă.

76
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ă 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

77
î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.

78
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
79
opţiune, în scopul continuării cu secvenţa program ce urmează
instrucţiunii switch, adică după }.

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++,NrBile
t--)

80
{ „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; 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
81
while(condiţie);
în care:
bloc - este o structură de control sub formă de bloc;
condiţie - este o expresie logică.
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).

12.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
82
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:
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.
83
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 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
84
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
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
85
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.

86
13. 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.
13.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

87
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ă);
 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;
88
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ă”;
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

a = b+c+sin(d)
START i=i+1 Da Nu
i<=n

(a) Terminator (b) Bloc de (c) Bloc de decizie


iniţial prelucrare binară

Date de intrare 89
Subprogram
b, c, d “Maxim”
STOP

(d) Bloc de (e) Apel de (f) Terminator final


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

START

Citeşte valori
pentru a, şi b
(de la tastatură)
c
Da Nu
a=0

Afişează Da Nu
„Ecuaţie b=0
degenerată”
x = 0 x = -b/a

Afişează
„Soluţia este:”
x

STOP

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


gradul I

Blocurile grafice generice sunt prezentate în Figura 18, cu simbolurile


şi semnificaţiile lor:
 terminatorii (a) şi (f) indică începutul şi sfârşitul
prelucrărilor – delimitând astfel algoritmul descris;

90
 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.
Succesiunea operaţiilor se indică prin linii şi săgeţi care leagă
blocurile grafice prezentate, astfel constituind aşa-numita
organigramă. Ca 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);
91
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

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
92
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).

13.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
93
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.

13.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ă.

94
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
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);

95
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).
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ă.
96
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;
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
97
Trebuie remarcat că împărţirea din calculul poziţiei pivotului
(Iinf+Isup)/2 este împărţire întreagă.

13.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ă?
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.

98
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 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

99
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.

100
14. 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.

14.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:
(1) 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);
(2) 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.

101
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.
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.

14.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.
102
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 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).

103
14.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:
(1) 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.
(2) 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.
(3) 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.
(4) 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:

104
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.
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
105
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”.

106
15. 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,

107
întreţinerea 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.

108
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.
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.

109
16. 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.
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

110
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
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ă.

16.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.
Î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:
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;

111
instrumente – ca mijloace de lucru software care ajută analiza
şi/sau proiectarea aplicaţiei.

FAZE ETAPE

Cerinţe 1. Formularea cerinţelor

2. Studiul problemei şi elaborarea soluţiei


Analiză
3. Elaborarea specificaţiei de programare şi strategiei de testare

4. Proiectarea aplicaţiei
Proiectare
5. Proiectarea programelor (şi structurilor de date)

6. Realizarea şi testarea modulelor program


Implementare
7. Integrarea şi testarea aplicaţiei
Testare 8. Teste de conformitate cu cerinţele

9. Darea în exploatare (sau comercializarea)


Exploatare
10. Întreţinerea aplicaţiei

Dezvoltare 11. Modificarea sau actualizarea aplicaţiei

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

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.

112
Specificaţii de
analiză

Cerinţe Analiză

validare
Specificaţii de
Cerinţe revizuite proiectare
validare

Testare Rapoarte cu erori Proiectare


la testare

Specificaţii de
Cod sursă şi implementare
Documentaţie de utilizare

Implementare

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
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

113
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
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ă).

114
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
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
115
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 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
116
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
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
117
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).
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).

118
Editare Program Compilare Program
program Sursă program Obiect

Editare Program
Legături Exec.

Depanare
program
Biblio.
programe

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
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),
119
„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.
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
120
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.

16.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ţă 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
121
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 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
122
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
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
123
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 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.

124
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ţă
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.

125
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:
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

126
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).
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 6. Clasificare a limbajelor de programare după nivel
Nivelul Caracteristici ale limbajului Exemple
limbajului uzuale

127
jos Instrucţiunile sunt apropiate de limbajul Asamblare
maşinii, 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,
biblioteci şi servicii de configurare a COBOL
resurselor maşinii la execuţie
înalt – compilat Instrucţiunile sunt transpuse într-un cod Java, Visual
intermediar folosind un interpretor, Basic, Visual C
permiţând astfel controlul codului şi
portabilitatea sa pe orice maşină
înalt - scriptural Instrucţiunile pe linii de program sunt Bourne Shell,
interpretate şi executate fiecare în parte; HTML, Perl,
liniile se pot grupa în loturi şi executate ca
„fişier (text) de comandă”
foarte înalt Structura limbajului este apropiată SQL
limbajului uman, descrie o metodă de
implementare; sunt limbaje declarative sau
pentru Inteligenţa Artificială

În Tabel 6 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
compilare sau interpretare. Astfel, limbajele de programare permit

128
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

129
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).

16.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

130
interpretată instrucţiunea respectivă. Este evident că, atunci când se
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.

16.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

131
necesare şi pentru software modalităţi de măsurare (metrici) și
evaluare a performanţelor şi de aici a calităţii produselor program.
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ă).

132
Ingineria programării oferă metrici (adică sisteme de măsurare) de
evaluare pentru:
 produs – privind proiectarea, codul sursă şi cazurile de test ale
programului;
 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.

133
17. 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
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.

134
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ă).
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
135
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 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

136
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:
 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.

17.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.

137
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:
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ă.

17.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

138
Î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.
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.);

139
 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
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
140
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 server şi client este HTTP (HyperText Transfer Protocol) şi
apare indicat chiar în adresa de acces (URL) a serverului.

CLIENT SERVER
 logica de  logica de
prelucrare locală prelucrare centrală
 interfaţa cu  date stocate
utilizatorul structurat
Protocol şi infrastructură
de comunicaţie

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ă.

141
CLIENT SERVER-P
 logica de
prelucrare locală  logica de
 interfaţa cu prelucrare centrală
utilizatorul

SERVER-D1 SERVER-Dn-2
 date stocate ...  date stocate
structurat structurat

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
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).

142
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).

17.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
143
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
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

144
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 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).

145
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 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
146
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 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.
147
Î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
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ă;
148
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.

149
18. 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:
i) alocarea resurselor – adică a spaţiului de memorie, procesorului (sau
procesoarelor), unităţilor de intrare / ieşire.
ii) 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).
iii) 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.

150
În general, operarea la un sistem de calcul se poate face în două
moduri:
 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.
151
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.
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.
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
152
cu mijloace de administrare a resurselor mai reduse. Un exemplu este
sistemul de operare MS Windows, care în ultimele variante oferă:
 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.

153
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 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:
1. 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.
2. 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.
3. 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, RAV (Romanian
AntiVirus – cumpărat de Microsoft), Bitdefender, MacAfee Antivirus.
Programele utilitare sunt parte a sistemelor de operare moderne, dar
pot fi şi produse de la firme specializate.

154
19. 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 interfeţei şi la comportamentul interfeţei ca răspuns la
acţiunile utilizatorului.
 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
155
î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.
 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). 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.

156
19.1. 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 Arată informații pentru a vă ajuta


continuă cam o secundă. să aflați 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.
Zoom Apropierea sau depărtarea Mărește sau micșorează nivelul de
degetelor pentru zoom. zoom vizual, ca și cu imaginile sau
Atingeți ecranul sau un hărțile. Un loc bun pentru a explora
element cu două sau mai aceasta este ecranul Start.
multe degete, apoi mișcați
degetele unul către altul
(apropiere) sau în direcții
opuse (depărtare).
Navigare Glisați pentru a defila. Se deplasează prin conținutul
Trageți degetul pe ecran. ecranului. Similar cu defilarea cu
un mouse.

Repoziționare Glisare pentru a rearanja. Mută un element (drag and drop).


Apăsați și glisați scurt un Similar cu glisarea cu un mouse.
element în direcția opusă
celei în care defilează

157
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 Selectați un element și se vor afișa
pentru element cu o mișcare de multe ori comenzi de aplicație.
selecție scurtă, rapidă în direcția Un loc bun pentru a explora acest
opusă celei de derulare a gest este aplicația Mail.
paginii.
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,  Deschideți butoanele (Căutare,
degetul sau trageți cu degetul rapid sau Partajare, Start, Dispozitive,
glisare de la glisați transversal pe ecran Setări). Trageți cu degetul din
margine fără a vă ridica degetul. marginea din 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 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
158
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
degete pe un element și care întoarceți mâna. Doar unele
rotiți mâna. elemente pot fi rotite.

19.2. 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:

159
1. 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.
2. Click – butonul stânga apăsat scurt (selectează un obiect vizat).
2
3. Dublu click - butonul stânga apăsat rapid de două ori (deschide
documentul sau lansează programul ataşat obiectului vizat).
4. Click dreapta - butonul dreapta apăsat (desfăşoară meniu
contextual, adică specific locului vizat).
5. 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.

19.3. Ferestre şi casete de dialog

160
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
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 în
Figura 25). 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.

161
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 7. 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
navigatorul local – „Windows Explorer”), precum şi de titlu mută
numele documentului sau, în cazul navigatorului, locul fereastra pe
vizat – disc (C:, D:, etc.), director pe disc („My suprafaţa de lucru .
Documents”), calculator din vecinătatea în reţeaua locală
(„Network Neighborhood”).
Bara de meniu 3 cuprinde categorii (opţiuni) accesibile click sau Alt-
în aplicaţia dată, din care trei sunt regăsite la orice Litera dă lista
aplicaţie: File (manipularea datelor specifice aplicaţiei), acţiunilor specifice
Edit (copiere, căutare, ştergere date) şi Help (ajutor aplicaţiei şi datelor
imediat - structurat pe conţinut, index şi căutare). sale
Bara de unelte 4 cuprinde comenzi uzuale ilustrate prin click buton grafic
desene intuitive, acţionate ca butoane grafice. Comenzi de execută comanda
editare, lucru cu fişiere şi cu ferestre au o replică în bara (ex. =
de unelte. decupare)
Butoane deschis / închis 9 aflate în colţul dreapta sus, minimizare
permit punerea în aşteptare a aplicaţiei (minimizarea ), maximizare
ocuparea întregului ecran activ (maximizarea) sau
restaurarea ferestrei pentru redimensionare, iar ultimul restaurare
închiderea aplicaţiei închidere
Bara de stare 16 prezintă informaţii privind setări numai vizionare
specifice aplicaţiei
162
Panouri de lucru 17 prezintă datele specifice aplicaţiei şi prelucrare specifică
permite manipularea lor conform metodelor specifice a datelor aplicaţiei
acestora.
Chenarul 18 permite redimensionare ferestrei (lăţire, glisare chenar
lungire şi reciproce, respectiv mărire / micşorare sau colţul dreapta-
proporţională ). 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 8. 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 glisarea Barei
Figura 25 opţiunile fişierelor – „Folder Options”). de titlu mută caseta
Fişă 6 prezintă un set de setări posibile, de obicei click pe etichetă
împărţite pe cadre (secţiuni tematice) – în Figura 25 tipuri selectează fişa
de fişiere („File Types”)
Casete de bifă 7 permit selectarea mai multor opţiuni click sau
dint-un set dat „spaţiu” bifează 
Butoane radio 8 permit selectarea unei singure opţiuni click sau
din setul dat „spaţiu” selectează

Butoane de derulare pas cu pas 10 permit derularea click derulează
informaţiei din panou în fereastra de vizitare (când în sensul dorit ,
aceasta este neîncăpătoare)
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
163
„Cancel” - abandon. (ex. )
Listă derulabilă – care prezintă un set de facilităţi ce pot derulează cu
fi selectate după derularea listei text până la reperul dorit.
click pe reper –
alege

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

(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. Facilităţile de ajutor şi cele de navigare prin
informaţia de ajutor sunt prezentate succint în Tabel 9.
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”).

164
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.

19 20 21 22 23 24 25 26 27 28

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

Tabel 9. 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.
Fişele Index 22 şi Search 24 permit căutarea cuvintelor în se înscrie cuvîntul
conţinutul de informaţie de Ajutor. Index prezintă sau cuvintele
inventarul de cuvinte cheie şi caută pe cel dorit. Search căutate
caută un cuvânt sau o expresie în întreg conţinutul de

165
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)

166
20. Sisteme 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.

20.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”.

167
Astfel, numeroşi filosofi au lansat concepţii avansate cu privire la
virtual, cel mai proeminent din filosofia contemporană fiind Gilles
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).

168
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 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.

20.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ă.
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
informatic nu pot exista fără un DataCenter şi resursele fizice pe care
acesta le înmagazinează.

169
Figura 2.1. Virtualizare resurse hardware(VMware)
Astfel, pe un mediu „bare metal1” cu ajutorul unui soft de virtualizare2,
se pot crea mai multe maşini virtuale (Figura 2.1), acestea acţionând
ca entităţi distincte.
Figura 2.2 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 2.2. Tipuri de virtualizare a serverului (Postolache F. et al., 2010)

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ă.
170
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.

20.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 (Figura 2.1). 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:

3
http://en.wikipedia.org/wiki/Virtualisation .
171
 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;
 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).

20.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.

172
Figura 2.3. 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
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ă.

20.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.
173
Virtualizarea spaţiului de stocare (SV4), ca şi virtualizarea reţelei, nu
înseamnă doar posesia unui SAN 5 ci „abstractizarea la orice nivel în
software-ul de stocare şi stiva hardware”6.

Figura 2.4. Virtualizare spaţiu stocare (VMware)

20.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. 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.

4
SV – Storage Virtualization
5
SAN - Storage Area Network
6
http://en.wikipedia.org/wiki/Storage_virtualization
174
Figura 2.5. Consolidarea serverului (VMware)

20.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 2.6).
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 2.6. Blocurile fizice din cadrul infrastructurii

175
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 2.7).

Figura 2.7. 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 2.8. Abstractizare infrastructură IT (VMware)

176
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
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.

177
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.
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 2.8), 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 2.9. 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

178
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 (Figura 2.10, Figura 2.11) privind
abstractizarea infrastructurii IT, pe lângă faptul că nu înlătură nici un
bloc din 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 2.10. Abstractizare infrastructură IT propusă

179
Figura 2.11. 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.
 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.).
180
 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.
 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.

181
 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 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
182
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ă.

183
21. 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ă.
184
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.

185
22. 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:
1. organizarea ideilor – pe module, submodule şi paragrafe;
2. modificarea textului – cu mutarea unor părţi, înlocuirea sau
eliminarea lor;
3. crearea de liste şi tabele;
4. inserarea de imagini, grafice, desene intuitive (cum sunt
diagramele);
5. aranjarea textului în pagină, cu antet, subsol, note de subsol,
numerotare de pagini;
6. alegerea tipurilor de caractere, cu dimensiuni, stiluri şi efecte
adecvate unui context dat;
7. 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:
8. evidenţa corecturilor în versiuni succesive ale documentului;
9. numerotarea automată a figurilor, tabelelor şi notelor de subsol,
eventual cu indexarea unei liste inventar de figuri şi tabele;
10. trimiteri la module, figuri, paragrafe – ce pot fi utilizate direct în
forma electronică;
11. realizarea de legături cu alte documente.
186
Î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.

22.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ă mai jos.
a. Cuprins – inventarul denumirilor de module şi submodule, cu
paginile de început.

187
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

188
figură, 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”).
Structura foii tipărite
189
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.

22.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
190
de texte. Astfel, cuvintele trebuie separate cu un singur spaţiu
(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
2
pentru fiecare din elementele menţionate: dublu click – selectează
3
cuvântul 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 Antiqua,
Broadway,

Bamba,
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, Expanadat, Condensat
g. Poziţia pe rând: pe Mijloc, Ridicat, Coborât
191
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 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”).

192
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
1 2 3 4 5 6 7 8

aliniază spre dreapta, pentru a avea ranguri de acelaşi ordin, unele sub
altele - chiar dacă lungimea numerelor de pe coloană diferă.
Figura 27. Marcaje de indentare şi Tabulatori

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. Figura 27. 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

193
î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 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. şi Figura 27)
ş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).

22.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
194
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 28).
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)  Bananed)
 Struguri
Figura 28. Liste numerotate (a, b)
 şiAnanas
ne-numerotate (c, d)

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).
O listă marcată cu simboluri ordinale se numeşte listă numerotată
(„numbered list”) – v. Figura 28. a). O listă ierarhizată este
numerotată cu subpuncte („outline numbered list”) – v. Figura 28 b).
Dacă informaţia de bază nu necesită prezentare ordonată, reperele se
marchează cu simboluri grafice - v. Figura 28 c) - într-o listă ne-
195
numerotată (cu buline – „bulleted list”). Lista poate prezenta la fiecare
reper categorii (adică este ierarhizată) şi devine listă ne-numerotată cu
subpuncte v. Figura 28 d).
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.

1 2 3 4 5 6

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

Pentru tabelul prezentat în Figura 29 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.

196
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.
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 30, 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 30. Plasarea imaginii în text


197
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.)

22.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 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 31. Fereastra Tezaur – pentru cuvinte în limba engleză


198
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 32.
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” în
figură).
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ă.

Figura 32. Caseta de dialog pentru auto-corectură

199
22.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 , , ,
).
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 33. Meniu pentru lucrul cu Ferestre

200
Se pot vizualiza mai multe ferestre prin opţiunea „Arrange All”, (v.
Figura 33) 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 33, 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” – 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:
a.Parte din document care se tipăreşte (tot, pagina curentă, paginile
indicate);
b. 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;

201
c.Tipărirea paginilor impare (iar apoi pare) – pentru tipărire faţă-
verso;
d.Setări ale imprimatei – privind rezoluţia (în puncte pe inch - dpi)
sau culorile, dimensiunea foii (uzual A4).
e.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
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.

22.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.

202
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.
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.

203
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.

204
23. 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.

23.1. Structura foii de calcul tabelar


Fereastra de calcul tabelar – v. Figura 34, 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.
205
Celulele pot fi grupate în zone rectangulare denumite blocuri de celule
(sau domenii - „ranges”); un bloc este referit prin adresele celulelor
din colţurile stânga-sus şi dreapta jos – de exemplul blocul celulelor
vizibile în fereastra din Figura 34 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ă.
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;
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”).

206
1 2 3 4 5 6 7 8 9 10

11 12 13 14 15 16 17 18 19

Figura 34. Fereastra de calcul tabelar

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.

23.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.

207
 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
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

1 2 3 4 5 6 7 8 9

ale celulelor cu care se doreşte efectuarea calculelor.


Figura 35. Exemplu de structură a formulei

Pe exemplul din Figura 35 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 .

208
 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.

23.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
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 36 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ă.

209
Există şi situaţii în care adresarea relativă nu este avantajoasă, de
exemplu calculul valorii cu TVA indicată în Figura 36. 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 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).

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


absolute

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 36):

210
literali, adrese de celule (de ex. D2) şi/sau adrese de blocuri (de ex.
D2:D7).
În Tabel 10 se prezintă categorii de funcţii comune accesibile în foi de
calcul electronic, cu câteva exemple de funcţii în fiecare categorie.
Tabel 10. 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 .
RAND() – furnizează un număr subunitar aleator.
Matematice
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.
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
Statistice numerice.
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].

211
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 cu dobânda dob făcută prin plăţi periodice prima, pe
Financiare 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
specificată din baza de date, care satisface criteriile.
(Tabele)
DAVERAGE(baza, coloana, criteriile) – furnizează media
valorilor din baza de date pentru coloana şi criteriile specificate.
DSUM(baza, coloana, criteriile) – furnizează suma valorilor din

212
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 36 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 37, care permite gestionarea numelor (adăugare, ştergere,
indicarea adreselor în câmpul „Refers to:”

Figura 37. 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.

213
23.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 36 se definesc nume pentru coloane astfel: coloana A –
Produs, coloana B – Pret_unitar, coloana D – Valoare.
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 38. Urmare a
acestei comenzi, apar liniile ordonate crescător după câmpul Valoare
(denumit acum cheie de sortare). Se poate face sortarea după mai
214
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 38. Caseta de dialog pentru sortare în baza de date (tabel din Figura
36)

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 39), 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 39 blocul A1:E2, cu
criteriul de selecţie în celula B2); se afişează rândurile care satisfac
aceste criterii.

215
Figura 39. 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 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

216
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 11. 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,
e) f) g)
g) pamblică pentru serii 3D.
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ă;
h) i) j)
i) plăcintă 3D pentru efect estetic.
217
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- n) o)
high-low-close”) ca mai sus, în plus volumul
tranzacţiilor indicat 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 p) q) r)
axe;
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.

218
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 11 se
prezintă aceste tipuri şi situaţiile în care sunt utile fiecare.
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).

23.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
219
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
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
220
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 36), - 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.
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.

221
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.

222
24. 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 .

223
25. Problematica reţelelor de calculatoare

Studiile de trafic telefonic arată că 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 mare de date) astfel că astăzi se extind tehnologii
de transfer de mare viteză – pe fibră optică sau chiar 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

224
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.

25.1. 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.

225
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ă);
 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
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.
226
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.
 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.

25.2. 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
227
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 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
228
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 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 40 şi Figura 41,
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 40 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);

229
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 40 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ă, 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 41 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 41 b)
fiind ilustrată o reţea largă cu interconectare plasă a mai multor

230
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.

a
) b
)
Figura 40. Topologia stea a) şi topologia inel b)

R R

a b)
)
Figura 41. 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.

231
25.3. 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
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.
232
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 (î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
233
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.

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

Nivel 1

Figura 42. 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 42): 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
234
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. Î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);

235
 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 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).

236
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 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.).
237
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). 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

238
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.
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.

239
26. 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 41 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

240
care se poate focaliza interesul şi registrul de căutare după
preocupările membrilor grupului.

26.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 41 a) a întregii reţele dar cu magistrala circulară. Structura
ierarhică cuprinde Sisteme Autonome (v. Figura 43) 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ă,
241
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 43. Structura ierarhică a Internet-ului


Exemple de numele de domenii sunt:
 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

242
Î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 î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

243
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 specificate prin numere – „patru numere cu punct” în IPv4 (sau
cu 16 numere pentru IPv6), de exemplu 192.168.11.33. 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
244
domeniul
idicativ
organizaţiei
persoană domeniul
„at” geografic
departamentului, proprietare a căsuţei poştale:
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ă.

26.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.

245
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
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ă
246
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,
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
247
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
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.

26.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
248
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
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,

249
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.
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.

26.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

250
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.
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.

251
27. 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.

27.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.

252
Figura 44) 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.

1 2 3 4 5 6 7 8 9 10

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

Bara de unelte a ferestrei navigatorului (de exemplu MS Internet


Explorer în

254
Figura 44) 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”).
Î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.

27.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

255
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 45 se indică elementele uzuale ale
interfeţei unei maşini de căutare, prin exemplificare pe maşina
www.google.com:

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

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 45, 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
256
dacă se adaugă la cuvântul „Danubius” şi cuvântul „universitate”, ca
în Figura 46, numărul de elemente găsite scăzând la 17.900 - primul
fiind chiar legat de informaţia căutată.

Figura 46. 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ă;
 - 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ă:
257
i) Se specifică cât mai simplu şi direct interogarea (indicând cuvântul
căutat).
ii) În cazul unui set mare de elemente rezultat, se analizează aspectele
efectiv dorite pentru informaţia căutată şi se precizează sinonime sau
antonime.
iii) Se creează expresii de interogare (folosind operatori), care să
includă sau să excludă cuvinte specifice aspectelor vizate (sinonime,
respectiv antonime).
iv) Se parcurg măcar 50 de elemente din primele pagini rezultat al
interogării.
v) 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.

258
28. Securitatea datelor și informațiilor

28.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:
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,
259
î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.
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
260
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.
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.

28.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.

261
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.
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
262
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
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.

28.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;

263
 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 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ă în
valoare de 10 dolari fiecare;trimiterea de mesaje de tip text (sms) în
cadrul reţelelor mobile, cu promisiunea făcută potenţialei victime, că
va primi un premiu de 3000 Euro dacă va cumpăra cartele preplătite
de telefonie mobilă în valoare de 30 Euro şi va comunica seriile şi
numerele de cod ale cartelelor.
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!

264
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.

265
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.
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.
266
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.
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.

267
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

268

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