Sunteți pe pagina 1din 113

1

 Cuprins

á Software de sistem şi software de aplicaţie


1. Software de sistem
1.1. Drivere de dispozitiv
1.2. Sistem de operare
1.2.1. Nucleul sistemului de operare
1.2.2. Interfaţa sistemului de operare
1.2.3. Utilitare de sistem
2. Programare tabelară
2.1. Programul de calcul tabelar Excel
2.2. Editarea foilor electronice de calcul
2.3. Calcule financiare
2.4. Tabele de decizie
2.5. Tabele de date
2.6. Grafice (diagrame)
3. Internet
3.1. Structura reţelei Internet
3.2. Instrumente Web
3.3. Poşta electronică
3.4. Comerţ electronic
3.4.1. Site de comerţ electronic
3.4.2. Vânzarea on-line
3.4.3. Sisteme electronice de plată

C Structuri de date şi programare structurată


1. Conceptul de algoritm
2. Principiile programării structurate
3. Elemente din teoria bazelor de date
3.1. Structuri de date
3.1.1. Tipuri de legături între diferite colecţii
3.1.2. Tipuri de structuri de date
3.2. Concepte de reprezentare a datelor
3.2.1. Modelul de reprezentare liniară
3.2.2. Modelul ierarhic (arborescent)
3.2.3. Modelul reţea
3.2.4. Modelul relaţional
3.3. Algebra relaţională – Modelul relaţional
3.3.1. Integritatea modelului relaţional
3.3.2. Calculul operaţional
3.4. Elementele unei baze de date
2
3.4.1. Definirea noţiunii de „bază de date”
3.4.2. Criterii de clasificare a bazelor de date
3.4.3. Sisteme de gestiune a bazelor de date (SGBD)
3.4.4. Funcţiile unui SGBD
3.4.5. Sisteme de gestiune a bazelor de date relaţionale
4. Limbaje algoritmice
4.1. Datele
4.2. Instrucţiunile limbajului algoritmic
4.3. Programare modulară. Subprograme
4.3.1. Proceduri
4.3.2. Funcţii
4.3.3. Iterativitate şi recursivitate
Aplicaţii

Bibliografie
á Software de sistem şi software de aplicaţie 3

á Software de sistem şi software de


aplicaţie

Componenta logică a sistemelor de calcul (software) este


constituită din două elemente: software de sistem şi de aplicaţie:

Drivere de Sistem de Utilitare de


dispozitiv operare sistem

SOFTWARE
DE
SISTEM
S
O
F
W Limbaje de Baze de date Comunicaţii Grafică
A programare
R
E
SOFTWARE
DE Proiectare
APLICAŢIE

Procesoare Calcul Educaţie Afaceri


de texte tabelar

Software-ul de sistem permite calculatorului să execute


operaţiile de bază, cum ar fi cele de intrare şi de ieşire şi include:
sistemul de operare şi modulele software cunoscute sub numele de
utilitare de sistem. Cea mai mare parte din utilitarele implementate
într-un sistem de calcul sunt neesenţiale pentru funcţionarea
sistemului dar includ unităţi software care extind facilităţile sistemului
4 á Software de sistem şi software de aplicaţie
de operare permiţând utilizatorului să desfăşoare activităţi specifice
sau să îşi dezvolte propriile aplicaţii.
Software-ul de aplicaţie este destinat executării unor operaţii
specificate de utilizatori.

Componentele sistemului de operare sunt structurate pe două


nivele: nivelul fizic (mai apropiat de hard şi, în general, transparent
pentru utilizator) şi nivelul logic (mai apropiat de utilizator,
constituind interfaţa cu utilizatorul):

U U
T SISTEM T
I I
L BIOS L
I I
Z HARD Z
A A
T BIOS T
O DE OPERARE O
R R
I PROGRAME UTILITARE I

SOFTWARE DE APLICAŢIE

Cea mai importantă parte a programelor de sistem care


coordonează activitatea PC-ului şi furnizează servicii esenţiale pentru
programele de aplicaţii sunt implementate din construcţie într-o
memorie de tip ROM, constituind sistemul de intrare/ieşire de bază -
BIOS (Basic Input Output System). BIOS-ul reprezintă interfaţa
dintre echipamentele hardware ale calculatorului şi sistemul de
operare şi conţine programe de conversaţie cu elementele hardware
ale PC-ului. Destinaţia sa principală o constituie încărcarea sistemului
de operare de pe dispozitivul de iniţializare şi autotestarea
componentelor în momentul pornirii PC-ului (dispozitivul de
iniţializare este, de obicei, hard disk-ul sau portul de reţea). Tipurile
moderne de BIOS incorporează facilităţi de determinare a
á Software de sistem şi software de aplicaţie 5

configuraţiei şi de alocare a resurselor prin intermediul standardului


PnP (Plug and Play - conectare şi folosire).
Sarcina esenţială a BIOS-ului este aceea de asigura
independenţa sistemului de operare de partea hard. La punerea sub
tensiune a calculatorului sunt activate pe rând secvenţe program ale
BIOS-ului care includ:
• secvenţa de pornire a calculatorului
care stabileşte configuraţia Pornire

componentelor PC-ului (conexiunea Power On


cu diferite tipuri de tastaturi, display- Self Test
uri, imprimante, periferice speciale); Booting Hard
• secvenţele de autotest disc

(POST - Power On Self Test),


realizează autotestarea PC-ului, constând în detectarea
eventualelor erori de funcţionare a componentelor);
• secvenţa de încărcare a sistemului de operare de pe suportul de
stocare pe care a fost depus (booting).

á 1. Software de sistem

á 1.1. Drivere de dispozitiv

Sistemul de operare conţine informaţii generale despre


dispozitivele ce pot fi conectate la calculator. Driverele de dispozitiv
(device drivers) sunt programe ce oferă calculatorului informaţii
specifice privind un anumit echipament hardware şi asigură
comunicarea cu acesta. Fiecare driver este proiectat individual pentru
un anumit tip de dispozitiv (imprimantă, disc, monitor, etc.) şi
traduce cererile formulate în termeni generali într-o secvenţă de
instrucţiuni specifice dispozitivului ataşat acelui driver. Astfel sistemul
de operare nu trebuie să ţină cont de detaliile constructive ale
dispozitivelor periferice ataşate calculatorului.
Unele drivere sunt generale, deoarece dispozitivele pe care le
controlează sunt construite conform unei anumite specificaţii. De
exemplu, există un număr mic de drivere de mouse care controlează
6 á Software de sistem şi software de aplicaţie
majoritatea dispozitivelor mouse. Când dispozitivele sunt foarte
variate, fiecare tip necesită un driver corespunzător. Imprimante
aproape identice, construite de acelaşi producător, vor avea drivere
diferite care exploatează caracteristicile fiecărei imprimante.

Sistemul Plug and Play (PnP) este un procedeu modern prin


care interfeţele sau dispozitivele periferice îşi manifestă prezenţa în
cadru sistemului de calcul şi este disponibil pentru sistemele de bază
ISA, PCI, SCSI şi IDE astfel încât instalarea componentelor hardware
noi este mult simplificată. Pentru ca PnP să funcţioneze, sunt
necesare următoarele componente: hardware PnP, BIOS PnP şi un
sistem de operare PnP (opţional). Într-un sistem PnP, BIOS PnP va
stabili automat plăcile compatibile PnP „în spaţiul” componentelor
deja existente. Plăcile adaptoare PnP comunică cu BIOS-ul sistemului
şi cu sistemul de operare pentru a transmite informaţii despre ce
resurse ale sistemului sunt necesare. În schimb, BIOS-ul şi sistemul
de operare rezolvă conflictele (acolo unde se poate face acest lucru)
şi informează plăcile adaptoare despre ce resurse specifice ar trebui
folosite. De abia apoi placa adaptoare îşi poate modifica configuraţia
pentru a folosi resursele specificate.

Specificaţia PnP a BIOS a fost dezvoltată de firme prestigioase


cum sunt Compaq, Intel şi Phoenix Technologies. Trăsăturile PnP ale
BIOS sunt implementate printr-o extindere POST.

á 1.2. Sisteme de operare

 Definiţie
Sistemul de operare reprezintă o colecţie de programe
destinată a organiza o gestiune eficientă a resurselor hardware
şi software ale sistemelor de calcul. Sistemul de operare
adaptează resursele hardware ale calculatorului la cerinţele
utilizatorului asigurând interfaţa cu utilizatorul, de cele mai
multe ori într-un mod interactiv.
Un sistem de operare constă din unul sau mai multe programe
á Software de sistem şi software de aplicaţie 7

care interacţionează cu BIOS-ul pentru a controla hardware-ul


calculatorului. Sistemul de operare oferă un set de funcţii standard ce
pot fi utilizate de aplicaţii pentru comunicarea cu BIOS. În cursul
utilizării calculatorului, sistemul de operare are sarcina de a detecta
dacă un dispozitiv nu funcţionează corect (de exemplu, dacă un disc a
fost eliminat dintr-o unitate sau dacă imprimanta nu este conectată).
Sistemele de operare gestionează operaţiile de intrare şi ieşire prin
monitorizarea şi controlarea fluxului de date şi a altor programe.
Datele introduse de utilizator sunt preluate de la tastatură, mouse
sau alt dispozitiv de intrare şi sunt dirijate către memorie şi CPU.
Datele de ieşire sunt transmise către ecran, către imprimantă sau alt
dispozitiv. Prin comunicarea cu BIOS, sistemul de operare
gestionează şi operaţiile de intrare/ieşire pentru dispozitivele de
stocare.

 Observaţie
Fiecare sistem de operare este conceput pentru a lucra cu o
anumită arhitectură hardware (inclusiv BIOS-ul). Un sistem de
operare proiectat pentru un calculator Macintosh nu va
funcţiona pe un PC. Un PC mai vechi bazat pe microprocesorul
8088 nu are resursele necesare pentru rularea unui sistem de
operare destinat să funcţioneze pe un Pentium.

Sistemul de operare este responsabil şi cu alocarea resurselor


sistemului - atribuirea de echipamente hardware diferitelor programe
şi funcţii pentru a asigura funcţionarea eficientă a calculatorului. De
exemplu, sistemul de operare poate aloca o porţiune a unui hard disc
pentru a fi utilizată ca memorie virtuală, sau poate utiliza o parte din
memorie pentru operaţii de cache. De asemenea, sistemul de operare
gestionează operaţiile de stocare, de citire de pe disc şi de scriere pe
disc a noilor fişiere. O altă sarcină este determinare numărului de
utilizatori ce pot obţine acces la calculator în acelaşi timp.
8 á Software de sistem şi software de aplicaţie
În funcţie de activităţile pe care un calculator trebuie să le
execute simultan, sistemele de operare pot fi implementate în două
variante:
• Sisteme monotasking care pot executa la un moment dat
o singură sarcină.
• Sisteme multitasking capabile să coordoneze executarea
mai multor sarcini simultan. Acest proces implică probleme
legate de partajarea timpului afectat diferitelor activităţi
(time sharing), de echilibrarea încărcării (load balacing) sau
de comutare între sarcini (scaling –scalare).

Fiecare sistem de operare conţine două componente principale:


o Nucleul (kernel) - conţine acele componente soft care
efectuează operaţii primare, necesare pentru funcţionare
calculatorului.
o Interfaţă cu utilizatorul (shell) - partea sistemului de operare
care preia comenzile de la utilizator şi le transferă către nucleul
acestuia. În funcţie de sistemul de operare, interfaţa cu
utilizatorul poate fi bazată pe text sau grafică.

á 1.2.1. Nucleul sistemului de operare

Componenta principală a sistemului de operare este denumită


nucleu şi cuprinde:
o Gestionarul de fişiere (File Manager), care permite
administrarea informaţiilor memorate pe suporturile de stocare
sub forma unor entităţi numite fişiere.
o Administratorul de memorie (Memory Manager) care
susţine activitatea de coordonare a utilizării memoriei principale
a calculatorului.

á File Manager

Multe sisteme de administrare a fişierelor permit gruparea lor în


unităţi denumite directoare (directory) sau dosare (folder). În
á Software de sistem şi software de aplicaţie 9

acest mod utilizatorul poate plasa familiile de fişiere în acelaşi grup,


mai mult chiar, permiţându-se ca directoarele să conţină alte
directoare, se poate realiza o organizare ierarhizată. Secvenţa de
directoare care indică drumul până la un anumit subdirector sau fişier
se numeşte cale (path).

Informaţiile necesare pentru găsirea şi manipularea fişierelor


sunt stocate într-o zonă de memorie principală numită descriptor de
fişier (file descriptor), iar operaţiile individuale asupra unui fişier
se fac prin informaţiile aflate aici.

á Memory Manager

Activitatea de coordonare a utilizării memoriei principale a


calculatorului este susţinută de administratorul de memorie, acest
lucru fiind necesar mai ales în mediile de operare multitasking în care
calculatorul trebuie să răspundă mai multor utilizări în acelaşi timp. O
situaţie importantă în care trebuie să intervină Memory Manager este
aceea în care cantitatea totală de memorie solicitată depăşeşte
dimensiunea memoriei disponibile. În acest caz se aplică conceptul de
memorie virtuală (virtual memory) conform căruia se creează un
spaţiu special pe disc, rotind datele între memoria principală şi disc
sub formă de pagini (astfel se pot satisface cereri de memorie mai
mari decât memoria fizică instalată, dar în detrimentul vitezei de
lucru a calculatorului).

á 1.2.2. Interfaţa sistemului de operare

á Interfeţe bazate pe text

În cadrul unei interfeţe bazate pe text, utilizatorul tastează


comenzi pentru a da instrucţiuni calculatorului (linii de comandă).
Primul sistem de operare pentru PC-uri, CP/M (Control Programs for
Microcomputers), era un sistem de operare bazat pe text. CP/M a fost
proiectat de Digital Research. Firma Microsoft a conceput sistemul de
10 á Software de sistem şi software de aplicaţie
operare IBM PC-DOS pentru calculatoare personale IBM (1981). DOS
reprezintă acronimul pentru „Disk Operating System” (sistem de
operare pe discuri) întrucât iniţial sistemul de operare era stocat pe
dischete. Linia de comandă DOS este prefixată de un prompter, care
informează utilizatorul că sistemul este pregătit să primească
instrucţiuni. Instrucţiunile sunt tastate după prompter. După fiecare
instrucţiune, utilizatorul trebuie să apese tasta Enter pentru a
prelucra instrucţiunea.

UNIX este un alt sistem de operare bazat pe text, conceput la


începutul anilor ‘70 de laboratoarele AT&T Bell. UNIX reprezintă un
sistem de operare multiutilizator pentru PC-uri care a cunoscut
numeroase îmbunătăţiri, rezultând astfel diverse versiuni , cum ar fi:
BSD UNIX (îmbunătăţiri ale versiunii UNIX realizate la Universitatea
Berkeley din California), XENIX, AIX (IBM UNIX) şi A/UX /UNIX
(pentru calculatoare Macintosh). Unele versiuni de UNIX conţin o
interfaţă grafică cu utilizatorul.

á Interfeţe grafice

Interfaţa grafică de referinţă a fost concepută de firma Apple


pentru a fi utilizată pe sisteme Macintosh. Sistemul de operare pentru
Macintosh (Mac OS), este un shell care se numeşte Finder.

O interfaţă grafica de tipul Finder utilizează mici imagini numite


pictograme pentru reprezentarea programelor şi a instrucţiunilor.
Pentru a da o instrucţiune sistemului de operare, utilizatorul indică o
pictogramă şi efectuează clic pe mouse. O altă posibilitate de a da
comenzi este efectuarea de selecţii din meniuri aflate în shell.

Datorită facilităţilor sistemului de operare, calculatoarele Mac


au exercitat o influenţă puternică în anumite domenii ale pieţei
calculatoarelor, în special în editare şi educaţie. Utilizatorii de Mac-uri
erau etichetaţi cu termenul „wimps”: utilizatori de ferestre (windows),
pictograme (icons), hărţi (maps) şi pixeli.
á Software de sistem şi software de aplicaţie 11

Sistemul Microsoft Windows, lansat în mai 1990, sub denumirea


Windows 3.0 este, în esenţă, un înveliş (shell) pentru DOS, primeşte
instrucţiuni prin intermediul mouse-ului şi le transformă în comenzi ce
pot fi acceptate şi executate de DOS. A urmat Windows 3.1, o
versiune îmbunătăţită, considerat un standard industrial şi utilizat mai
mult decât orice alt sistem de operare.

 Observaţie
La actualizarea unui produs, acesta primeşte un număr al noii
versiuni. Dacă actualizarea presupune modificări esenţiale,
atunci se schimbă partea întreagă a numărului ce exprimă
versiunea. De exemplu, DOS 4.0 a reprezentat o actualizare
esenţială a sistemului DOS 3.0. Dacă au loc numai modificări
minore, se schimbă doar cifra ce urmează numărului versiunii:
DOS 3.0 - DOS 3.1. În cadrul referirii la software, termenul
„3.x” semnifică orice versiune 3 (3.0, 3.1, 3.22). „3.x sau mai
nou” înseamnă orice versiune de software cu numărul egal sau
mai mare decât 3.0.

Windows 95 (98) este un sistem de operare care include


funcţii ale sistemului de operare Windows 3.1. Microsoft deţine şi o
versiune multiutilizator a sistemului Windows, numită Windows NT.
Windows NT 3.1 utilizează interfaţa grafica a lui Windows 3.1.
Windows NT 4.0 are ca model Windows 95. Windows XP reuneşte
facilităţi Windows 95 şi NT.
12 á Software de sistem şi software de aplicaţie

á Interfaţa grafică Windows (9x, Millennium, XP)

Desktop

Desktop-ul reprezintă întreaga suprafaţă de ecran din afara


barei de aplicaţii (taskbar) pe care se afişează toate celelalte
elemente interactive ale interfeţei grafice:
• Ferestrele (de aplicaţii şi de document);
• Casetele de dialog (conţin informaţii, avertismente sau
controale pentru executarea unor comenzi;
• Pictogramele - icons (imagini grafice asociate aplicaţiilor sau
documentelor);
• Meniurile (listă de elemente din care utilizatorul poate alege
una din ele).

Taskbar

Taskbar-ul este bara de operaţii ce apare în partea de jos a


ecranului. Sarcina barei de task-uri este de a face comutarea între
diverse aplicaţii prezentând toate programele deschise la un moment
á Software de sistem şi software de aplicaţie 13

dat. Se poate aduce, astfel, în prim plan programul dorit, indiferent


câte programe se află în execuţie la acel moment de timp. Bara de
aplicaţii conţine butonul Start şi, opţional, câteva controale (butoane
informative) referitoare la: ora şi data sistemului, parametrii de
afişare, parametrii sunetului etc.

Butonul Start permite deschiderea meniului principal al


Windows-ului, meniu conţinând opţiunile:
♦ Programs - prin care se lansează programele şi
aplicaţiile instalate în sistem precum şi task-uri Web.
♦ Documents - oferă acces rapid la informaţiile cu care s-a
lucrat recent conţinând o listă cu ultimele documente
deschise.
♦ Settings - pentru configurarea sistemului (controlul
anumitor componente şi funcţii) şi a perifericelor.
♦ Search (Find) - căutarea de fişiere şi directoare sau site-
uri pe Internet (după criterii completate interactiv de
către utilizator).
♦ Help and Support - apelarea informaţiilor de ajutor.
♦ Run – comenzi textuale (Windows sau DOS).
♦ Log Off - deconectarea utilizatorului (lucru în reţea).
♦ Turn Off Computer (Shut Down) - închiderea
sistemului de operare în vederea opririi calculatorului sau
pentru repornire.

Ferestre

Aplicaţiile precum şi majoritatea dialogurilor beneficiază de câte


o fereastră. Este posibil a avea mai mult de o singură fereastră pe
ecran în acelaşi timp. În acest caz ele sunt aranjate în două moduri:
cascade (suprapuse) sau tile (alăturate).

Elementele comune ferestrelor de aplicaţie sunt:


14 á Software de sistem şi software de aplicaţie
♦ Window Display Area (aria de lucru) este zona ocupată
de fereastră pe ecran.
Minimize Window
Maximize Window
Control Menu Title Bar Menu Bar Close Window

Toolbar
Format Bar

Vertical
Scroll
Bar

Window
Borders

Horizontal Scroll Bar Window Display Area

♦ Title Bar (antetul ferestrei) linia în care este afişat


numele programului sau al documentului asociat ferestrei.
♦ Control Menu permite selectarea unor opţiuni pentru
controlul ferestrei (Restore –restabilire, Move -mutare,
Size -redimensionare, Maximize -maximizare, Minimize -
minimizare, Close -închidere).
♦ Horizontal şi Vertical Scroll –linii cu butoane care
permit afişarea informaţiei neincluse în spaţiul curent de
afişare.
♦ Minimize Window - buton care reduce fereastra
şi o plasează în taskbar.
♦ Maximize Window - expandează afişarea
conţinutului ferestrei la nivelul întregului ecran.
♦ Close Window - închide fereastra activă.
♦ Menu Bar –linia meniului principal care permite alegerea
unui element dintr-o listă de opţiuni şi subopţiuni.
á Software de sistem şi software de aplicaţie 15

♦ Toolbar (bara de instrumente) –permite activarea


funcţiilor principale ale aplicaţiei.
♦ Format bar (linia de formatare) –pentru stabilirea
caracteristicilor textuale.
♦ Windows Borders (chenarul exterior). Fiecare fereastră
poate fi redimensionată, prin „tragerea” marginilor
acesteia, schimbările putându-se efectua pe lăţime,
înălţime sau pe diagonală.

Pictograme

Pictogramele (icons) sunt elemente interactive ce se pot întâlni


atât pe suprafaţa desktop-ului, cât şi în interiorul ferestrelor de
explorare a conţinutului de fişiere al discurilor. Ele sunt compuse
dintr-o imagine (sugerând voit conţinutul la care se referă) şi din
denumirea conţinutului. Conţinutul poate fi un fişier (executabil sau
document), un director, element al sistemului, o aplicaţie de sistem
sau o scurtătură (shortcut) spre astfel de conţinut. Asupra
pictogramelor se pot executa operaţii de activare (click), deschidere
(dublu clic) sau gestionare (clic cu butonul drept –deschiderea
meniului contextual Properties).

Shortcut-urile (scurtăturile) sunt indicatoare de fişiere,


directoare sau programe. Ele însele sunt de fapt nişte fişiere şi sunt
tratate de sistem ca atare, permiţând ajungerea la orice componentă
a sistemului de calcul sau a reţelei: documente, aplicaţii, directoare,
imprimante etc.

Principalele pictograme pe care le vom regăsi pe orice calculator


având instalat Windows -ul sunt:
◊ Recycle Bin -„coşul de gunoi”, acumulând fişierele şi
directoarele şterse (prin ştergere simplă, fişierele şi directoarele
nu sunt eliminate efectiv, conţinutul acestora putând fi
recuperat din Recycle Bin);
16 á Software de sistem şi software de aplicaţie
◊ My Documents – directorul de documente al pachetului de
programe Microsoft Office;
◊ My Computer - permite explorarea resurselor informaţionale
(unităţi de disc, imprimante, directoare, fişiere etc.);
◊ Network Neighborhood - referitor la conexiunile dintre
calculatoare prin intermediul reţelei.

á 1.3. Utilitare de sistem

Programele utilitare sunt programe utilizate împreună cu


sistemul de operare pentru a controla şi a utiliza echipamentele
hardware ale unui calculator, sau pentru a gestiona fişierele de date
şi programe. Majoritatea utilitarelor tratează operaţiile de stocare şi
gestionare a fişierelor. Utilitarele sunt folosite pentru o gamă largă de
operaţii, cum ar fi:
Formatarea unui disc în vederea stocării de date şi programe
|

| Gestionarea datelor şi programelor - copierea, mutarea,


redenumirea sau ştergerea fişierelor de date şi programe
| Asigurarea securităţii datelor prin controlul existenţei viruşilor

sau crearea de copii de rezervă sau a unor copii codificate ale


documentelor importante
| Restabilirea datelor şi programelor pierdute

| Efectuarea de teste de diagnosticare asupra echipamentelor

hardware
Sistemele de operare conţin utilitare necesare operaţiilor
minimale de gestionare a dispozitivelor. De exemplu, DOS conţine
următoarele utilitare:
| FORMAT, utilizat pentru pregătirea unui disc în vederea stocării
de date
| COPY, utilizat pentru copierea fişierelor dintr-o locaţie în alta
| RENAME, utilizat pentru modificarea numelui unui fişier
| BACKUP şi RESTORE, utilizate pentru efectuarea unor copii ale
fişierelor pe un alt disc
| UNDELETE, pentru regăsirea fişierelor şterse din greşeala
| DEL, utilizat pentru ştergerea fişierelor
á Software de sistem şi software de aplicaţie 17

á Lucrul cu fişiere şi directoare

Fişiere

Fişierul (file) reprezintă o colecţie de date înregistrate pe disc,


date organizate astfel încât prezintă o însemnătate concretă pentru
aplicaţia cu care interacţionează. După cum informaţia rezidentă se
împarte, în general, în aplicaţii şi date, la nivelul fişierelor exista
fişiere executabile şi fişiere de date / informaţii.

Fişierul executabil este un program executabil şi determină o


acţiune a sistemului. Informaţia din cadrul fişierului executabil este,
de fapt, o înşiruire de instrucţiuni în cod maşină.

Fiecare fişier are asociat un identificator constituit dintr-un


nume, de până la 256 de caractere şi o extensie din maximum trei
caractere. În identificator pot apare şi spaţii, caractere speciale ca, de
exemplu, virgulă, punct şi virgulă, egal şi paranteze drepte. Dacă
apar caractere mari şi caractere mici, sistemul le va memora ca atare
(Windows regăseşte denumirea indiferent dacă este scrisă cu litere
mari sau mici). În anumite situaţii, între nume şi extensie se
regăseşte caracterul „.” (punct). Rolul extensiei numelui de fişier este
de a arăta categoria căreia îi aparţine fişierul (având o valoare
informativă atât pentru sistemul de operare cât şi pentru utilizatori).
Cele mai utilizate nume de extensii sunt: EXE - fişier executabil
(aplicaţie), COM - fişier comandă executabilă, HLP - fişier cu
informaţii de ajutor (help), TXT- fişier text (text nativ, numit şi
ASCII), DOC - fişier document Word, DBF - fişier de tip bază de date,
XLS - fişier de calcul tabelar Excel, etc.

Nu este obligatorie specificarea completă a numelui şi a


extensiei putându-se folosi caracterele * şi ? pentru a suplini un grup
de caractere, respectiv un singur caracter din denumirile respective.
Astfel pot fi identificate sub aceeaşi denumire mai multe fişiere (de
18 á Software de sistem şi software de aplicaţie
exemplu A*.doc semnifică toate fişierele a căror nume începe cu A
dar având extensia doc).

Asupra fişierelor sunt posibile următoarele operaţii: creare,


modificare a conţinutului, redenumire, mutare sau copiere în alt
director, ştergere.

Directoare

Directorul (folder, dosar, mapă, catalog) poate fi privit ca


un nume asociat unui grup de fişiere (numele unui recipient abstract
în care se pot înscrie fişiere). Directoarele se definesc pe disc într-o
structură ierarhică ramificată: există un director rădăcină (având
numele unităţii de disc) în care se pot înscrie mai multe
subdirectoare, iar fiecare dintre acestea poate conţine mai multe
fişiere sau subdirectoare.

Fiecărui fişier sau director i se asociază informaţii pentru


stabilirea unor atribute care pot avea următoarele valori:
o R - read-only: nu se permite decât citirea (protejat la
scriere);
o A - arhivă: semnalează provenienţa dintr-o arhivă;
o H - hidden (ascuns): fişier invizibil la operaţiile uzuale de
căutare;
o S - system: fişier rezervat de sistemul de operare (care, în
nici un caz nu trebuie şters).
 Observaţii
ƒ Fiecare aplicaţie are propriul ei director.
ƒ Directorul curent este cel în care se salvează fişierele la un
moment dat (numit şi director de lucru) sau în care rezidă
aplicaţia aflată în execuţie.
ƒ Directorul rădăcină are denumirea identică cu cea a discului pe
care se află. Discurile organizate logic pe sistem au următoarele
denumiri: A - prima unitate de dischete, B - a doua unitate de
dischete, C - primul hard-disk sau prima partiţie ( aici se află,
á Software de sistem şi software de aplicaţie 19

de regulă, sistemul de operare), D - cel de-al doilea hard-disk


(a doua partiţie sau prima unitate de CD-ROM), etc.
ƒ Directorul în care se află un subdirector se consideră, pentru
acesta din urmă, director părinte, ceea ce subliniază
organizarea ierarhică a directoarelor.
ƒ Nici un director nu permite existenţa mai multor fişiere sau
subdirectoare cu acelaşi nume (nume incluzând şi extensia).
ƒ Orice fişier poate fi identificat prin precizarea completă şi
unitară a căii (path). O cale reprezintă un şir de caractere care
conţine, separate prin „backslash” (”\“), numele directoarelor
din succesiunea ierarhică până la fişierul în cauză (exemplu:
c:\My Documents\Gestiune\catalog.doc).
Organizarea standard a PC-urilor include în configuraţie o
singură dischetă (A), un hard-disk (C) şi un CD-ROM (D). Volumul
fizic al hard-disk-ului poate fi împărţit în mai multe discuri logice
numite şi partiţii, iar procesul iniţial prin care se generează din
volumul unui hard-disk mai multe partiţii se numeşte partiţionare.

Directoarele suportă următoarele comenzi: citirea conţinutului


(parcurgere, afişare), schimbarea directorului curent, crearea unui
nou director (denumirea), redenumire, mutare, ştergere.

áMy Computer,Windows Explorer şi Network Neighborhood

My Computer şi Windows Explorer sunt utilitare sistem de lucru


cu fişiere şi directoare. Cele mai multe programe vor fi lansate prin
shortcut-uri, fie din meniul Start, fie de pe suprafaţa de lucru, cele
două utilitare găsind obiectele cărora le sunt ataşate scurtături. Într-o
fereastră Windows Explorer deschisă se poate vedea în partea stângă
ierarhia de dosare; dacă unul din dosare este deschis, în partea
dreaptă va fi afişat conţinutul acestuia.
20 á Software de sistem şi software de aplicaţie

Navigarea prin reţea se realizează cu ajutorul aplicaţiei Network


Neighborghood, accesibilă de pe suprafaţa de lucru. Navigarea prin
reţea cu Network Neighborhood este similară cu căutarea pe un hard-
disk local, asigurând mobilitatea şi integrarea în reţeaua locală prin
casetele de dialog standard.

Operaţii executate asupra fişierelor şi a directoarelor

Principalele operaţii executate asupra fişierelor şi a directoarelor


sunt:
‰ Căutarea fişierelor cu programul Search (Windows XP).
Pentru a găsi un fişier sau un director al cărui nume se
cunoaşte, se execută următorii paşi:
o se execută clic pe butonul Start, se selectează Search şi apoi
For Files or Folders…;
o se precizează scopul căutării (Pictures..., Documents…, All
files and folders…). Se pot folosi şi caracterele de substituire
* şi ?) în caseta numelui de fişier sau folder;
o se execută clic pe Search pentru a lansa căutarea.
á Software de sistem şi software de aplicaţie 21

‰ Selectarea fişierelor şi a directoarelor pentru a fi mutate,


redenumite sau copiate. Selectarea se poate realiza global sau
parţial. Selectarea globală presupune alegerea opţiunii Select
All a meniului Edit. Selectarea parţială presupune încadrarea
într-un dreptunghi a pictogramelor corespunzătoare cu ajutorul
mouse-ului (butonul drept).

‰ Crearea unui director. Pentru a crea un director pe suprafaţa


de lucru se execută clic dreapta într-un loc liber al suprafeţei de
lucru (desktop sau alt director) şi se selectează din meniu New
Folder după care se înscrie numele noului director.

‰ Ştergerea fişierelor şi a directoarelor se poate realiza în două


moduri:
o Ştergerea logică prin care elementele supuse acestei operaţii
sunt înmagazinate în Recycle Bin (se efectuează prin
apăsarea tastei Delete sau prin clic dreapta şi selectarea
opţiunii Delete din meniul contextual – o altă metodă este de
a trage pictograma obiectului şi de a o aduce deasupra
coşului de gunoi). Aceste ştergeri pot fi refăcute (opţiunea
Restore din Recycle Bin) sau transformate în ştergeri fizice
(ştergeri din Recycle Bin).
o Ştergerea fizică, ştergere definitivă ce nu mai poate fi
22 á Software de sistem şi software de aplicaţie
refăcută (se apasă tastele Shift+Delete).

‰ Partajarea (Sharing) se referă la faptul că un disc,


imprimantă, director sau fişier se poate utiliza de către mai
mulţi utilizatori care lucrează în reţea. Aceasta poate fi te tip
Read only sau Full Acces şi presupune utilizarea unor parole (se
realizează fie prin clic dreapta, fie prin alegerea opţiunii Sharing
din meniul contextual).

‰ Mutarea şi copierea fişierelor şi a directoarelor se poate


realiza folosind comenzile Cut (decupare), Copy (copiere),
Paste (lipire). Aceste comenzi pot fi lansate, după selectarea
obiectului corespunzător, prin clic dreapta cu mouse-ul sau prin
combinaţiile de taste, Ctrl+X (decupare), Ctrl+C (copiere),
Ctrl+V (lipire). Astfel operaţia de mutare (Move) se desfăşoară
în succesiunea: selectare sursă, Cut, stabilire destinaţie, Paste,
în timp ce, pentru copiere, trebuie parcurşi următorii paşi:
selectare sursă, Copy, stabilire destinaţie, Paste. Mutarea
obiectelor poate fi efectuată şi prin utilizarea procedeului Drag
and Drop cu mouse-ul.

‰ Redenumirea fişierelor şi a directoarelor se execută prin dublu


clic sau clic dreapta (şi alegerea opţiunii Rename din meniul
contextual) pe nume după care acesta se va putea edita.
á Software de sistem şi software de aplicaţie 23

á 2. Programare tabelară

á 2.1. Programul de calcul tabelar Excel

Excel este un program de calcul tabelar, care face parte din


familia de utilitare Microsoft Office păstrând, în general, aceeaşi
Meniul principal Linia cu instrumente standard

Meniul principal LiniaLinia


cu instrumente pentru
cu instrumente format
standard

Adresa celulei active Linia de editare

Linia cu instrumente pentru format

Adresa celulei active Linia de editare

manieră de lucru (meniul principal, linia cu instrumente standard,


linia cu instrumente pentru format, etc.).

Un program de calcul tabelar (Spreadsheets), numit şi "foaie


electronică de calcul" este un produs ce cuprinde facilităţi de lucru
cu tabele, baze de date şi posibilităţi de reprezentare grafică a foilor
de calcul. Programele de calcul tabelar se adresează utilizatorilor
neprogramatori ce prelucrează date statistice, financiare,
ştiinţifice, fiind, datorită funcţiilor predefinite puse la dispoziţie, un
instrument flexibil şi uşor de învăţat. De asemenea foile electronice
24 á Software de sistem şi software de aplicaţie
de calcul permit cele mai diverse operaţii asupra informaţiilor de
piaţă, preiau datele colectate şi păstrate în fişiere sau date captate
prin intermediul reţelelor de transmisie. Cele mai multe studii de
piaţă care se comercializează la ora actuală în lume, se livrează în
fişiere tip foaie electronică de calcul.

Editarea unei foi electronice de calcul se face cu ajutorul tastelor


ordinare (litere, cifre, caractere speciale) sau prin combinaţii de taste,
în pagina logică. Pagina logică este încadrată în pagina fizică (coala de
hârtie, de obicei de format A4) prin margini (dreapta/stânga, sus/jos).
La lansarea Excel-ului cursorul se află în poziţia Home (colţul stânga
sus al ecranului şi al paginii logice).

Excel-ul oferă posibilitatea editării simultane a mai multor


documente, înscrise în mai multe ferestre de editare. Comenzile de
editare pot fi lansate utilizând meniul principal (intrare în meniul
principal prin F10 sau Alt+litera subliniată) sau butoanele din liniile de
instrumente.

Comutarea ferestrelor de editare (notate, la prima deschidere, cu


Book1, Book2, … sau cu numele fişierelor sub care au fost salvate foile
electronice de calcul) presupune selectarea opţiunii Window (Alt+W)
din meniul principal, în care sunt afişate ferestrele active la un moment
dat.

Documentele care se creează sub Excel sunt fişiere stocate pe


diferite suporturi (dischetă, hard-disc, CD-ROM), având extensia
implicită xls. Când se doreşte editarea (modificarea) unui document,
fişierul corespunzător documentului trebuie copiat în memoria internă
-deschidere (Open). Operaţia de stocare a unui document aflat în
editare, ca fişier, se numeşte salvare (Save).
á Software de sistem şi software de aplicaţie 25

Editează un document nou


Editează un document existent
Inchide editarea documentului
Salvează fişierul
Salvează fişierul sub un alt nume

Afişează conţinutul imprimării


Imprimă documentul

Istoricul documentelor editate

Ieşire Excel

 Observaţie
Există un istoric al ultimelor fişiere editate. Acest istoric poate fi
folosit pentru relansarea în editare a acestora.

á Comenzile mediului de editare Excel

Comanda New (Ctrl+N) permite deschiderea în editare a unui


nou document (lansare prin meniu : File, New).

Comanda Open (Ctrl+O) permite încărcarea fişierelor Excel în


memoria internă (lansare prin meniu : File, Open).

Comanda Save (Ctrl+S) realizează salvarea documentelor ca


fişiere pe disc (lansare prin meniu : File, Save). Comanda Save As
realizează salvarea documentelor sub un nume diferit de cel curent
(lansare prin meniu : File, Save As).
26 á Software de sistem şi software de aplicaţie

Comanda Print (Ctrl+P) realizează tipărirea documentelor


editate (lansare prin meniu File, Print).

Comanda Print Preview are rolul vizualizării documentelor


editate (lansare prin meniu File, Print Preview).

Funcţia de imprimare este dependentă de imprimanta selectată la


instalarea Windows-ului (există şi posibilitatea selectării ulterioare). Un
document editat poate fi tipărit. Comanda Print Preview oferă
posibilitatea previzualizării documentului, în forma în care aceasta va fi
imprimat pe hârtie, folosind toate informaţiilor specifice imprimantei
utilizate.

Comenzile Undo (Ctrl+Z), Redo (Ctrl+Y) au ca scop


anularea sau repetarea acţiunilor de editare anterioare.

Majoritatea mediilor de editare memorează un istoric al


ultimelor operaţiuni efectuate, începând cu cea mai recentă dintre
ele. Folosind butonul Undo (prin meniu: Edit, Undo…) se pot anula,
secvenţial, mai multe acţiuni anterioare. Există şi posibilitatea
repetării ultimilor acţiuni efectuate utilizând Redo (prin meniu: Edit,
Redo…). În cazul când au fost iniţiate operaţii (de obicei prin
deschiderea unor ferestre asociate acestora), ce trebuie anulate se
poate apăsa butonul Cancel sau tasta Esc.

Comanda Exit (Alt+F4) încheie lucrul cu Excel (prin meniu File,


Exit). Funcţia Close (lansare prin meniu File, Close) finalizează
editarea unui document.

Comanda Help permite descrierea comenzilor şi utilizarea


acestora:, exemple şi demonstraţii, lista comenzilor Excel (Index),
ajutor interactiv (Asistent Office), etc.
á Software de sistem şi software de aplicaţie 27

á Foaia electronică de calcul

Foaia electronică de calcul este împărţită în linii şi


coloane şi este prevăzută cu un sistem de coordonate. Coloanele
sunt notate cu litere, iar liniile cu cifre arabe (“tablă de şah”),
intersecţiile liniilor şi coloanelor numindu-se celule (de exemplu
celula G3 este pe coloana G linia 3). Cu ajutorul acestui sistem de
coordonate o celulă este determinată în mod unic.

Fiecare celulă poate conţine unul din următoarele trei tipuri


de date : un text, un număr sau o formulă. Ultimul tip este
"găselniţa" problemei. Numerele aflate în celule sunt legate între ele
prin formule, astfel încât dacă se modifică conţinutul unei celule,
aceasta va afecta în lanţ multe altele. De exemplu, dacă celulele B1,
B2, B3, B4, B5, conţin cifre, se poate aduna conţinutul lor, printr-o
formulă plasată în altă celulă: B1+B2+B3+B4+B5 sau SUM(B1:B5).
Un program de calcul tabelar oferă zeci de funcţii de calcul, atât
matematice, cât şi financiare şi statistice. Acestea pot fi
interconectate după toate regulile matematicii, fapt ce permite
descrierea unui algoritm de calcul, utilitatea calculului tabelar
fiind verificată ca valoare şi funcţionalitate în multe domenii de
activitate.

Instrumentele principale de lucru ale unui program de calcul


tabelar sunt tabelul şi graficul. Prezentarea datelor în formă
tabelară şi în formă grafică contribuie la redarea concentrată a
informaţiilor.

Tabelele de date trebuie să fie astfel constituite încât:


o să asigure o prezentare compactă a datelor numerice;
o să nu fie supraîncărcate cu detalii (deseori două tabele
scurte sunt preferabile unui tabel lung);
o să includă un titlu complet şi clar pentru identificarea
imediată a conţinutului lor;
o să precizeze, dacă este cazul, unităţile de măsură;
28 á Software de sistem şi software de aplicaţie
o să indice tipul de preţ (curent sau constant);
o să prezinte datele sub formă procentuală sau ca indici,
atunci când este necesar un plus de claritate.

Unitatea de lucru, pe foaia electronică de calcul, fiind celula,


acţiunile de editare se desfăşoară la nivel de celulă şi sunt
vizualizate în linia de editare.

Editarea celulelor are ca scop introducerea celor trei tipuri de


informaţie : text, numere, formule.
¾ Introducerea textului presupune tastarea oricărui şir de
caractere. Alinierea textului se face la stânga celulei. Este posibil
ca lungimea textului introdus într-o celulă să depăşească
capacitatea celulei, în acest caz textul aflat în exces fiind afişat
peste celulele următoare dacă acestea nu sunt vide (în caz contrar
se afişează conţinutul acestora).

¾ Introducerea numerelor se face cu ajutorul cifrelor, semnelor +


şi – (plus şi minus) , virgulei zecimale (,) şi eventual a
exponentului (E). Numerele sunt implicit aliniate la dreapta. Dacă
un număr trebuie să fie tratat ca text este necesar ca mai întâi să
fie tastat un apostrof (exemplu: '20765).
¾ Introducerea formulelor trebuie să înceapă prin tastarea
semnului =(egal). Expresiile de calcul pot să conţină : operatori,
constante, identificatori de celule, nume de funcţii pentru calcul şi
trebuie alcătuite conform regulilor algebrice.
• Constantele conţin valori sub formă de numere întregi (ex:
1, -23), numere reale în format fix (ex: 22,31, -12,234),
numere reale în format exponenţial (ex: 12,76E3) sau date
procentuale (ex: 125%).
• Identificatorii de celule permit referirea acestora (ex: A1,
D10, A1:E8).
• Funcţiile de calcul pot fi :
- financiare
- statistice
á Software de sistem şi software de aplicaţie 29

- matematice şi trigonometrice
- logice
• Operatorii, împreună cu ordinea lor de evaluare sunt
descrişi în următoarea tabelă :

Operator Nivel
^ (exponenţial) 1
+ (pozitiv), - (negativ) 2
* (înmulţire), / (împărţire) 3
+ (adunare), - (scădere) 4
= (egal), <> (diferit)
< (strict mai mic)
> (strict mai mare)
<= (mai mic sau egal cu)
>= (mai mare sau egal cu) 5

Tastele utilizate cel mai frecvent pentru deplasarea cursorului


sunt:
Tasta Mişcarea cursorului
← sau → cu o celulă, la stânga sau la dreapta
↑ sau ↓ cu o linie, mai sus sau mai jos
Home pe prima celulă din linie
PgUp la începutul ferestrei precedente
PgDn la începutul ferestrei următoare
Ctrl+Home în colţul din stânga sus al foii de calcul
Ctrl+End în colţul din dreapta jos al foii de calcul
Ctrl+G sau F5 la celula specificată

Exemplu
Foaie electronică de calcul a rădăcinilor ecuaţiei de gradul 2,
pentru diferite valori ale coeficienţilor a, b, c:
30 á Software de sistem şi software de aplicaţie

) Conţinutul celulelor de calcul

E3 : =B4^2-4*B3*B5 (b2 – 4· a· c)
E4 : =IF(E3>=0;(-B4+SQRT(E3))/(2*B3);F2)
E5 : =IF(E3>=0;(-B4 - SQRT(E3))/(2*B3);F2)
celulele E4, E5, pentru determinarea rădăcinilor x1, x2, conţin
funcţia de testare IF (“dacă”) şi funcţia SQRT (radical). Dacă
delta≥ 0 atunci afişează numerele reale, în caz contrar afişează
mesajul „complex”.

á 2.2. Editarea foilor electronice de calcul

á Editarea conţinutului unei celule

Editarea conţinutului unei celule selectate, se poate realiza prin


apăsarea tastei F2 sau prin poziţionare directă, cu ajutorul mouse-
ului, în linia de editare numită şi formula bar, folosind următoarele
taste:
Tasta Acţiune
← sau → salt cu un caracter, la stânga sau la dreapta
Home salt la începutul liniei de editare
End salt la sfârşitul liniei de editare
Backspace şterge caracterul din stânga cursorului
Delete şterge caracterul de pe poziţia cursorului
Shift + ← sau → selecţie unul sau mai multe caractere
á Software de sistem şi software de aplicaţie 31

Conţinutul curent al celulei poate fi validat dacă se acţionează


tasta Enter sau dacă se iniţiază deplasarea cursorului într-o altă
celulă. Pentru anularea operaţiei se poate utiliza tasta ESC .

á Inserarea liniilor şi a coloanelor

Inserarea liniilor sau a coloanelor se face întotdeauna before


(înaite) de linia curentă sau coloana curentă. Operaţia de inserare
efectivă se realizează prin meniu: Insert Row/Column1.

á Selectarea unui domeniu de celule

Punerea în evidenţă (highlighting) a unui bloc (domeniu) de


celule se face în vederea executării de către Excel a unei acţiuni
ulterioare asupra acestuia (copiere, ştergere, construirea graficelor,
etc.).
Selecţia unui bloc se realizează folosind tastele săgeţi sau cu
ajutorul mouse-ului. Un bloc de celule poate fi alcătuit dintr-o singură
celulă, dintr-o linie de celule, dintr-o coloană de celule sau oricare
altă porţiune dreptunghiulară a foii de calcul.
Specificarea unui bloc de celule se poate face prin precizarea
primei şi ultimei celule din bloc (Ex. B3:B7, D2:E7).

á Ajustarea dimensiunilor liniilor şi a coloanelor

Prin lăţimea coloanei se precizează numărul de caractere


conţinute de o celulă aparţinând acesteia. Lăţimea implicită a unei
coloane este de 8.43 caractere normale. Dacă o celulă conţine text în
exces acesta este afişat peste celulele următoare, cu condiţia ca
acestea să nu fie vide. Datele numerice care depăşesc ca număr de
caractere lăţimea celulei sunt afişate în format exponenţial iar dacă şi
acest mod de afişare nu este posibil se tipăreşte şirul de caractere
###### (depăşire de format).

1
Inserare Rânduri/Coloane
32 á Software de sistem şi software de aplicaţie
Schimbarea dimensiunii unei coloane/linii se poate realiza prin
meniu (Format, Column, Width... / Format, Row, Height...)2 sau
utilizând mouse-ul, prin culisarea liniilor grilă pentru coloane şi
rânduri.

á Referinţe absolute şi relative de celulă

Celulele pot fi referite în două moduri, modurile de referire


rezultând din tabelul următor :
Referire Exemple
coloană relativă, linie relativă A2
coloană absolută, linie absolută $A$2
coloană relativă, linie absolută A$2
coloana absolută, linie relativă $A2
O referire absolută înseamnă o poziţie fixă în foaia de calcul,
poziţie care nu este afectată de modificări în foaia de calcul.
Modificările din foaia de calcul (ştergeri de linii şi coloane) se reflectă
şi în referinţele relative.
Copierea formulelor dintr-o celulă de calcul în altă celulă de
calcul este influenţată de modul de referire a celulelor. Toate referirile
relative sunt "translatate", în timp ce referirile absolute rămân
nemodificate.

á Copierea şi mutarea conţinutului celulelor

¾ Copierea conţinutului celulelor:


• se selectează celula, coloana, linia sau domeniul,
• se selectează Edit, Copy3 din meniu sau se apasă Ctrl+C ,
• se deplasează cursorul pe locul unde se va face copierea,
• se apasă tasta Enter.

¾ Mutarea conţinutului celulelor:


• se selectează celula, coloana sau linia sau domeniul,

2
Format, Coloană, Lăţime… / Format, Rând, Înălţime…
3
Editare, Copiere
á Software de sistem şi software de aplicaţie 33

• se selectează Edit, Cut4 din meniu sau se apasă Ctrl+X ,


• se deplasează cursorul pe locul unde se va face mutarea,
• se apasă tasta Enter.

á Formatarea conţinutului celulelor


Modul de afişare a conţinutului unei celule (afişarea numerelor,
alinierea, fontul, aspectul liniilor de bordare, umplerea) poate fi
schimbat prin meniu Format Cells5, sau Format, Style... Modify6 , în
funcţie de tipul informaţiei pe care-l conţine.

á Funcţii de calcul

Excel oferă posibilitatea efectuării unor calcule diverse prin


funcţii de calcul financiare, statistice, matematice şi trigonometrice,
pentru baze de date, etc. Sintaxa şi numărul de argumente ale

acestor funcţii este furnizată prin acţionarea butonului sau prin


7
meniu Insert, Function...

á 2.3. Calcule financiare

Funcţiile financiare efectuează calcule obişnuite pentru afaceri,


ca de pildă determinarea plăţii pentru un împrumut, valoarea viitoare
sau valoarea netă actualizată a unei investiţii şi valorile obligaţiunilor
sau cupoanelor.

Argumentele comune pentru funcţiile financiare includ:


• Valoarea viitoare (fv) – valoarea investiţiei sau
împrumutului după ce s-au efectuat toate plăţile.

4
Editare, Decupare
5
Format Celule
6
Format Stil… Modificare
7
Inserare, Funcţie…
34 á Software de sistem şi software de aplicaţie
• Numărul de perioade (nper) – numărul total de plăţi
sau perioade ale unei investiţii.
• Valoarea actualizată (pv) – valoarea unei investiţii sau
a unui împrumut la începutul perioadei de investiţie. De
exemplu, valoarea actualizată a unui împrumut este capitalul
de bază care este împrumutat.
• Rata (rate) – rata dobânzii sau rata de actualizare
pentru un împrumut sau o investiţie.
• Tip (type) – intervalul la care sunt efectuate plăţile în
timpul perioadei de plată, ca de pildă la începutul unei luni
sau la sfârşitul acesteia.

 Observaţii
Unele funcţii financiare se folosesc pentru anuităţi. O anuitate
constă dintr-o serie de plăţi constante efectuate pe o perioadă
continuă (de exemplu un împrumut pentru un autoturism, sau un
împrumut ipotecar).
În funcţiile de anuităţi, sumele plătite, cum ar fi depozitele
pentru economii, sunt reprezentate de numere negative; sumele
primite, cum ar fi un cec de dividente, sunt reprezentate prin
numere pozitive.
Se recomandă consecvenţă în legătură cu unităţile utilizate
pentru specificarea argumentelor rate şi nper (de exemplu, pentru
plăţi lunare la un împrumut pe un număr de ani, rata dobânzii va fi
împărţită întotdeauna cu 12, iar nper va fi înmulţit cu 12 şi cu
numărul de ani).

á Funcţia FV

Funcţia FV întoarce valoarea viitoare a unei investiţii bazate pe


plăţi periodice şi constante şi o rată a dobânzii constantă.
Sintaxa:

FV(rate;nper;pmt;pv;type)
á Software de sistem şi software de aplicaţie 35

o argumentele pv şi type pot fi omise;


o rate - rata dobânzii pe o perioadă;
o nper - numărul total de perioade de plată dintr-o anuitate;
o pmt - plata efectuată periodic, neschimbată pe durata
anuităţii (în mod tipic, argumentul pmt conţine capital şi
dobândă, dar nu şi alte taxe şi datorii);
o pv - valoarea actualizată, sau suma globală pe care o serie
de plăţi viitoare o reprezintă în momentul actual (dacă
argumentul pv este omis, se consideră zero);
o type – este 0 sau 1 şi indică momentul când sunt datorate
plăţile (dacă type este omis, se consideră 0).

Exemplu
O persoană fizică depune 8 milioane lei într-un cont de economii
cu o dobândă anuală de 26% şi îşi planifică să mai depună câte un
milion de lei la începutul fiecăreia din următoarele 12 luni. Câţi bani va
avea în cont la sfârşitul celor 12 luni?
=FV(26%/12;12;-1000000;-8000000;1) 24.178.497 lei

á Funcţia PV

PV întoarce valoarea actualizată a unei investiţii. Valoarea


actualizată este suma totală pe care o reprezintă în prezent o serie de
plăţi viitoare. De exemplu, pentru împrumut, suma împrumutată este
valoarea actualizată pentru creditor.
Sintaxa:

PV(rate;nper;pmt;fv;type)
36 á Software de sistem şi software de aplicaţie

argumentele fv şi type pot fi omise;


rate - rata dobânzii pe perioadă;
nper - numărul total de perioade de plată dintr-o anuitate;
pmt - plata efectuată periodic, neschimbată pentru toată durata
anuităţii (în mod tipic, argumentul pmt include capital de bază şi
dobândă, dar nu şi alte onorarii sau taxe);
fv - este valoarea viitoare, sau balanţa în numerar la care se
ajunge după efectuarea ultimei plăţi (dacă fv este omis, se presupune
a fi 0 - valoarea viitoare a unui împrumut, de exemplu, este 0);
type - este 0 sau 1 şi indică momentul când sunt datorate
plăţile.

Exemplu
Ca urmare a depunerii cu o dobândă anuală de 25% a unei
sume, o bancă returnează lunar 2 milioane de lei timp de cinci ani.
Care este valoarea acestei sume?
=PV(25%/12;5*12;2000000) -68.140.028 lei

á Funcţia NPER

Funcţia NPER furnizează numărul de perioade pentru o


investiţie bazată pe plăţi periodice constante şi o rată constantă a
dobânzii.
Sintaxa:

NPER(rate; pmt; pv; fv; type)


á Software de sistem şi software de aplicaţie 37

argumentele fv şi type pot fi omise;


rate - rata dobânzii pe o perioadă;
pmt - plata făcută în fiecare perioadă, neschimbată pe parcursul
anuităţii (tipic, pmt conţine capital şi investiţii, dar nu şi alte onorarii
sau taxe);
pv - valoarea actualizată, sau valoarea globală pe care ar
reprezenta-o în acest moment o serie de plăţi viitoare;
fv - este valoarea viitoare, sau o balanţă în numerar, obţinută
după efectuarea ultimei plăţi (dacă fv este omisă, se presupune a fi
egală cu 0 - valoarea viitoare a unui împrumut, de exemplu, este 0).

 Observaţie
Valoarea returnată este de tip real, de aceea aceasta trebuie
rotunjită.

Exemple

10 După câte luni se va atinge un sold propus de 30 milioane lei


pentru depuneri lunare de 1,5 milioane lei şi la o rată a dobânzii de
25% ?
=NPER(25%/12;-1500000;-30000000) 16,89… ≅ 17 luni

2o Ştiind suma lunară care se poate investi şi rata dobânzii


oferită de o bancă oarecare să se calculeze câte rate sunt necesare
pentru a se atinge soldul propus:
38 á Software de sistem şi software de aplicaţie

Conţinutul celulelor de calcul


E1 : =-NPER(B2/12;-B1;-B3)
E2 : =ROUND(E1;0)
E3 : =FV(B2/12;E2;-B1)
A6 : =1
B6 : =D6
C6 : =0
D6 : =$B$1
E6 : =D6
A7 : =A6+1
B7 : =B6+C7+D7
C7 : =B6*$B$2/12
D7 : =$B$1
E7 : =E6+D7
conţinutul celulelor din domeniul A8:E20 se obţine prin copierea
rândului 2 din tabel (linia 7)

á Funcţia PMT

PMT calculează plata pentru un împrumut bazat pe plăţi


constante şi o rată constantă a dobânzii.
Sintaxa:
á Software de sistem şi software de aplicaţie 39

PMT(rate;nper;pv;fv;type)

argumentele fv şi type pot fi omise;


o rate - rata dobânzii pentru împrumut;
o nper - numărul total de plăţi pentru împrumut;
o pv - valoarea actualizată, sau suma totală pe care o
valorează în prezent o serie de plăţi viitoare, denumită şi
capital de bază;
o fv - valoarea viitoare, sau balanţa în numerar la care se
ajunge după efectuarea ultimei plăţi (dacă fv este omis, se
presupune a fi zero, ceea ce înseamnă că valoarea viitoare a
împrumutului este zero);
o type - este 0 sau 1 şi indică momentul când sunt datorate
plăţile.

Exemplu
Cât trebuie să economisiţi lunar ca, după 10 ani, contul în bancă
să fie de 150 milioane lei la o dobândă lunară de 1% ?
=PMT(1%;-10*12;-150000000) -652.064 lei

á Funcţia IPMT

IPMT întoarce plata dobânzii pentru o perioadă dată, pentru o


investiţie bazată pe plăţi periodice constante şi o rată constantă a
dobânzii.
Sintaxa:
40 á Software de sistem şi software de aplicaţie

IPMT(rate;per;nper;pv;fv;type)

argumentele fv şi type pot fi omise;


rate - rata dobânzii periodice;
per - perioada pentru care se calculează dobânda cuprinsă în
intervalul [1, nper];
nper - numărul total de perioade de plată dintr-o anuitate;
pv - valoarea actualizată, sau valoarea globală pe care ar
reprezenta-o în acest moment o serie de plăţi viitoare;
fv - valoarea viitoare, sau balanţa în numerar obţinută după
efectuarea ultimei plăţi (dacă fv este omis, se presupune a fi egală cu
0 - valoarea viitoare a unui împrumut, de exemplu, este 0);
type - este 0 sau 1 şi indică momentul când sunt datorate
plăţile (dacă type este omis, se consideră 0).

Exemplu
Care este dobânda datorată în al doilea an pentru un împrumut
de 100 milioane de lei pe trei ani la o rată a dobânzii anuale de 30% ?
=IPMT(30%;2;3;100000000) - 22.481.203 lei

á 2.4. Tabele de decizie

Un tabel de decizie este o zonă de celule care arată modul în


care modificările anumitor valori referite în formule afectează
rezultatele formulelor. Tabelele de decizie oferă facilitatea de a
calcula variante multiple ale unei operaţii şi un mod de a vizualiza şi
á Software de sistem şi software de aplicaţie 41

compara rezultatele (prognozarea valorilor cu ajutorul analizei: “ce se


întâmplă dacă – What If”). Aceste tabele de date se construiesc pe
baza unei formule având ca date de intrare una sau două valori
numite celule de intrare (prin meniu: Data Tables...)8:

• Tabelele de decizie cu o variabilă (un singur factor de


influenţă) preiau date dispuse pe coloane (linii) le trec prin
formula de calcul şi le afişează pe coloane (linii). Pentru afişarea
unor rezultate pe coloane se selectează domeniul conţinând
coloana intrărilor şi a rezultatelor (inclusiv formula) după care se
completează caseta Column input cell9 cu adresa celulei de intrare:

Celula de intrare

Formula

I
n Re-
t zul-
r ta-
ă te
r
i

• Tabelele de decizie cu două variabile (doi factori de


influenţă) preiau date dispuse pe linii şi coloane, le trec prin
formula de calcul şi le afişează tabelar. Pentru afişarea rezultatelor
8
Date, Tabel…
9
Celulă de intrare pe coloană
42 á Software de sistem şi software de aplicaţie
se selectează domeniul corespunzător al intrărilor şi al rezultatelor
(inclusiv formula) după care se completează casetele Row input
cell şi Column input cell10 cu adresele celulelor de intrare pentru
linii şi coloane:

Celula de intrare pe linie

Celula de intrare pe coloană

Formula I n t r ă ri

I
n
t Rezultate
r
ă
r
i

Exemplu

Pentru un împrumut de 225 milioane de lei se rambursează lunar


anumite sume. Ştiind că valoarea la zi a ratei dobânzii anuale este de
40% şi că valoarea maximă estimată a acesteia pentru următorii ani
este 47% să se calculeze plăţile lunare pentru diverse valori ale ratei
dobânzii în situaţia în care plăţile pot fi eşalonate pe un număr de 3, 4
sau 5 ani.

10
Celulă de intrare pe rând, Celulă de intrare pe coloană
á Software de sistem şi software de aplicaţie 43

)
Se va construi un tabel de date cu două variabile. Celula de
intrare pentru coloană este C5 iar pentru linie este C4. Formula
de calcul (în B8) va conţine funcţia PMT.

á 2.5. Tabele de date

Tabelele de date reprezintă un grup de date organizate pe linii


şi pe coloane (baze de date relaţionale), astfel încât, principalele
elemente care definesc un tabel de date sunt:
• Înregistrările (articole, records), entitatea de lucru a bazei
de date.
• Câmpurile (fields), informaţiile distincte din cadrul unei
înregistrări.
• Linia de antet (header row) care permite identificarea
informaţiilor din cadrul unei înregistrări.

Analogia cu un tabel obişnuit constă în identificarea unei


înregistrări cu o linie, a coloanelor cu câmpurile tabelului de date, iar
a capului de tabel cu linia de antet.
44 á Software de sistem şi software de aplicaţie
După definirea structurii unui tabel de date, ceea ce înseamnă
scrierea etichetelor prin care se vor identifica câmpurile tabelului de
date, se poate trece la definirea conţinutului. Datele se pot introduce
în celule ţinându-se cont de semnificaţia lor.

 Observaţii
• Etichetele prin care sunt precizate câmpurile tabelului de date
trebuie să fie diferenţiate în mod corespunzător. Dacă un titlu de
coloană trebuie scris pe mai multe rânduri se poate folosi
combinaţia de taste Alt + Enter sau se poate utiliza opţiunea
Format, Cells...11 Opţiunea menţionată permite ca în tab-ul
Alignment (aliniere) să se facă precizări legate de afişarea textului
cum ar fi:
o alinierea textului pe orizontală sau pe verticală
(Horizontal, Vertical),
o scrierea multirând (Wrap text),
o adaptarea dimensiunii textului la dimensiunea celulei
(Shrink to fit),
o contopirea mai multor celule (Merge cells),
o orientarea direcţională a textului (Orientation).
• datele de pe coloană trebuie să fie de acelaşi tip;
• liniile (coloanele) nu trebuie să fie goale sau întrerupte;
• datele de tip text nu trebuie să înceapă cu spaţiu (se pot crea
probleme la căutarea sau sortarea în listă);
• pentru a uşura citirea tabelului este recomandat a se formata
coloanele (câmpurile) în mod diferit.

á Prelucrarea tabelelor de date

Excel oferă o posibilitate comodă de a efectua prelucrări asupra


înregistrărilor, prin utilizarea formularului de date (opţiunea Data,
Form…12 din meniul principal).

11
Format, Celule…
12
Date, Machetă…
á Software de sistem şi software de aplicaţie 45

Condiţia de bază, pentru iniţializarea unei prelucrări a datelor


constituite în tabele de date este de a selecţiona tabelul bază de date
(de obicei acesta se personalizează prin Format, AutoFormat...13).
Asupra tabelului de date se pot executa anumite operaţii cum ar fi:

10 Căutarea prin formularul de date şi opţiunea Criteria


(criterii).
Câmpurile tabelului de
date Conţinutul înregistrării curente

Prelucrare

Adaugă

Şterge

Anulează
Trece la
înregistrarea
precedentă
Trece la înreg.
următoare
Caută o
înregistrare
conform unui
criteriu

20 Sortarea. De cele mai multe ori datele trebuie prelucrate


într-o ordine diferită de cea în care au fost introduse în tabelul de
date. Procedeul de ordonare a tabelelor de date, după diferite criterii,
numite chei de sortare poate fi realizat prin meniu (Data, Sort...)14.
Ordonarea poate fi ascendentă sau descendentă. Pot fi selectate,
drept chei de sortare (chei de sortare primare sau secundare)
câmpurile tabelului de date. Se pot utiliza, de asemenea şi butoanele

de sortare rapidă din bara de instrumente standard:


13
Format, Autoformatare…
14
Date, Sortare…
46 á Software de sistem şi software de aplicaţie

30 Filtrarea (selecţia pe orizontală) care reprezintă


posibilitatea de a introduce în prelucrare doar datele care îndeplinesc
o anumită condiţie. Pentru a putea realiza selecţia se poate folosi
opţiunea Data, Filter15 din meniul principal. Filtrarea se poate realiza
pe o valoarea anumită cuprinsă în unul din câmpurile tabelului de
date (AutoFilter)16 sau poate fi personalizată prin criterii (Data, Filter)
acţionând săgeata de derulare pentru introducerea opţiunii de
filtrare particularizată (Custom), care permite precizarea condiţiilor
logice: Is Greater Than (mai mare decât), Equals (egal cu), Does Not
Equal (diferit de), Begin With (începe cu), etc.

 Observaţie
Pentru a reafişa întreaga listă (toate înregistrările) se
selectează (Data, Filter, Show All), iar pentru a dezactiva
opţiunile AutoFilter se selectează Data, Filter, AutoFilter (astfel
se va reafişa vechiul mod de afişare al listei, fără săgeţile de
derulare).

15
Date, Filtrare
16
Filtrare automată
á Software de sistem şi software de aplicaţie 47

40 Interogarea care reprezintă posibilitatea obţinerii unor


informaţii statistice din tabelul de date cum ar fi totaluri, subtotaluri,
contorizări, etc.

á 2.6. Grafice (diagrame)

Datele din tabele devin mai convingătoare atunci când sunt


prezentate sub formă de histograme, diagrame circulare, grafice
liniare, etc. Mediile de realizare a foilor de calcul electronic conţin
facilităţi de redare grafică a tabelelor.

Construirea unui grafic pornind de la un tabel dat, presupune


următoarele etape :

1o Alegerea tipului de grafic:


ao linii (lines)
bo bare (bars)
co stivă de bare (stacked bars)
48 á Software de sistem şi software de aplicaţie
do diagrame circulare (pie)

2o Alegerea zonelor din tabel în care se găsesc seriile de


date, care se doresc a fi reprezentate şi seria de date care va
constituii axa orizontală a graficului (de regulă date temporale - ani,
zile, etc.).

3o Alegerea datelor ce vor fi marcate pe axa verticală (de


regulă cantităţi, preţuri, etc.).

4o Alegerea titlurilor axelor şi a titlului graficului.

5o Stabilirea legendelor şi a altor detalii care contribuie la


claritate reprezentării grafice.

6o Alegerea datelor care vor fi marcate cu valori în clar în


interiorul graficului.

 Observaţii
• pentru a putea stabili corelaţii între diverse serii de date se
recomandă reprezentare simultană pe acelaşi grafic a unui a
mai multor serii de date, dar nu a mai mult de şase;
• marcarea axelor, scrierea titlurilor şi folosirea legendelor;
• folosirea, dacă este necesară identificarea unor valori pe
grafic, a liniilor paralele verticale care prelungesc gradaţiile
verticale;
• marcarea valorilor reprezentative pe grafic;

Crearea unui grafic în Excel începe cu specificarea datelor


(seriilor) ce vor fi reprezentate şi presupune selectarea blocurilor de
date numerice din foaia electronică de calcul. Liniile din cadrul unui
bloc selectat constituie, de obicei, seriile.
á Software de sistem şi software de aplicaţie 49

Etapele realizării unui grafic :


1o Se selectează seriile;
2o Se fixează colţul stânga-sus al zonei unde va fi afişat graficul;

3o Se selectează Insert, Chart...17

4o În fereastra Chart Wizard (tipuri de diagramă) se alege tipul


de grafic.
Componentele unui grafic sunt constiruite din obiecte şi pot fi
modificate prin instrumente de tip Chart (titlul graficului, denumirea
axelor, etichetarea datelor, legende). Pentru aceasta este necesar ca
opţiunea Chart să fie activată (prin meniu View, Toolbars, Chart)18.
Tipul graficului

Lista derulantă Formatarea


Chart Objects graficului

Pentru a modifica oricare din obiectele care constituie un grafic


se poate acţiona folosind lista derulantă Chart Objects (obiecte din
diagramă) sau, mai simplu prin dublu clic cu mouse-ul pe obiectul
vizat.

17
Inserare Diagramă…
18
Vizualizare, Bare de instrumente, Diagramă
50 á Software de sistem şi software de aplicaţie

á 3. Internet
Ce este INTERNET-ul ?
INTERNET este cea mai mare colecţie de reţele de calculatoare, în
sistem descentralizat care a devenit cel mai popular mijloc de schimb de
informaţii. Prin intermediul INTERNET-ULUI abonaţii trimit şi primesc
corespondenţă comercială, particulară (e-mail), angajează discuţii de grup
pe orice temă (grupuri de discuţii), oferă servicii sau primesc oferte, se
informează din domeniul comercial, marketing, cultură, tehnică etc.
INTERNET-ul trebuie văzut ca o reţea globală formată din mii de
reţele de calculatoare aparţinând diverselor instituţii guvernamentale,
universităţi, companii private, servicii informaţionale comerciale precum şi
abonaţi individuali. Oricine poate să aibă acces la informaţiile oferite, gratuit
sau în schimbul unor taxe. Biblioteca Congresului SUA, de exemplu, oferă
gratuit accesul la cele 100 milioane de obiecte din colecţia sa - cărţi, filme,
hărţi, partituri, fotografii.
TCP/IP (Transmission Control Protocol/Internet Protocol) este
protocolul de transmisie utilizat de INTERNET. Reţeaua INTERNET din SUA
este CIX (Commercial INTERNET Exchange) iar în Europa EUNet. Pentru a
utiliza CIX sau EUNet utilizatorul trebuie să fie membru al INTERNET. Un
instrument oferit de INTERNET este Mosaic, o interfaţă grafică ce permite
utilizatorilor să vizioneze filme, imagini fotografice sau text, însoţite de
sunet. Multe firme din lume comercializează software pentru accesul la
INTERNET. Noile sisteme de operare pentru PC-uri începând cu Windows'95,
Windows NT, Unix incorporează module software necesare conectării la
INTERNET. Toţi utilizatorii de PC-uri pot comunica între ei, în mod text sau
video/audio. Astfel această reţea multimedia devine o magistrală
informaţională.

Cine guvernează INTERNET-ul ?


Nu există o autoritate centrală pentru întreg INTERNET-ul. Acesta nu
are preşedinţi, directori sau responsabili cu funcţionarea sa. Reţelele
constitutive pot avea preşedinţi şi directori executivi, dar nu există o
autoritate centrală pentru întreg INTERNET-ul. Nu există nici o firmă
INTERNET Inc. care să colecteze plăţile de la toate reţelele INTERNET sau
de la utilizatori. În schimb toată lumea plăteşte pentru partea sa. Există un
mit că INTERNET-ul este gratis, dar adevărul este că cineva plăteşte pentru
fiecare conexiune. De multe ori aceste plăţi nu sunt date de utilizatori, ceea
ce dă iluzia de “acces gratis”.
Reţelele se adună şi decid cum să se conecteze împreună, apoi
creează fonduri pentru aceste interconexiuni. Un colegiu ori o corporaţie
plăteşte pentru conectarea sa la o reţea regională, care la rândul ei plăteşte
pentru un furnizor naţional pentru accesul la o reţea internaţională.
Autoritatea ultimă privitoare la direcţia în care se va îndrepta
INTERNET-ul revine Societăţii INTERNET sau ISOC. ISOC este o organizaţie
de voluntari al cărei scop este să promoveze un schimb global de informaţie
prin intermediul tehnologiei INTERNET. Ea stabileşte un consiliu format din
á Software de sistem şi software de aplicaţie 51

membrii mai vechi ai INTERNET-ului, care are responsabilitatea conducerii


tehnice şi a direcţiilor către care se va îndrepta INTERNET-ul.
Utilizatorii INTERNET îşi pot exprima părerile prin intermediul
INTERNET Engineering Task Force (IETF), altă organizaţie de voluntari care
se întâlnesc regulat pentru a discuta probleme tehnice şi de funcţionare ale
INTERNET-ului.

Cine sunt utilizatorii INTERNET ?


Peste 50% din activităţile INTERNET sunt comerciale, management,
reclamă şi marketing. Clienţii cei mai importanţi au devenit băncile,
companiile de publicitate, publicaţiile, companiile de consultanţă şi
avocatură, companiile de vânzări prin corespondenţă, companiile
specializate în studii de marketing, agenţii de informaţii comerciale şi
publice.
Pentru ca utilizatorul de servicii INTERNET să poată desfăşura o
activitate susţinută este necesar să posede un calculator, eventual modem-
linie telefonică individuală, software de conectare.

Utilizare Internet
• E-MAIL. Prin poşta electronică se poate realiza schimbul de mesaje, ce
reprezintă documente scrise, cu toţi abonaţii INTERNET din întreaga lume.
Spre deosebire de mijloacele clasice schimbul de mesaje se poate face
aproape instantaneu, eliminându-se riscul pierderii.
• FAX. Fax-urile transmise prin INTERNET vor putea fi recepţionate rapid
(faxurile transmise interurban se plătesc la tariful telefonic local, datorită
conectării la un nod local).
• Culegerea de informaţii din INTERNET. În INTERNET informaţiile se
găsesc sub formă de fişiere ca pagini WEB. Apelarea fişierelor se face cu
ajutorul unor programe FTP (File Transfer Protocol). Prin această
metodă, se poate face transferul de fişiere spre şi dinspre orice server legat
la INTERNET la tarife telefonice locale. Paginile WEB sunt documente ce
conţin texte şi imagini. Utilizatorul îşi poate defini tema ce îl interesează,
aceste programe putând căuta pe toate serverele legate la INTERNET toate
informaţiile legate de tema căutată.
• Publicitate în INTERNET. INTERNET-ul dă posibilitatea utilizatorului de a
se prezenta cu ajutorul uneia sau a mai multor pagini WEB (texte, poze,
grafice, animaţii, sunete) şi prin aceasta să se facă cunoscut.
• Comerţul prin INTERNET. La paginile de prezentare (ale firmei proprii de
exemplu) se pot adăuga şi cataloage de comandă pentru produse. Pe baza
acestora orice client poate s| facă comenzi prin completarea unui formular
aflat pe aceeaşi pagină WEB. După completarea formularului acesta este
transmis prin INTERNET, iar comanda poate fi onorată în scurt timp.
• Conferinţele tematice (FORUMS). În prezent există un număr mare de
forumuri organizate după cele mai diverse criterii, aderarea la aceste
forumuri fiind liberă.
• Discuţii prin INTERNET. Prin INTERNET se pot purta discuţii libere cu toţi
cei care sunt conectaţi la acest sistem.
52 á Software de sistem şi software de aplicaţie
á 3.1. Structura reţelei Internet

Internet-ul este o reţea globală formată din mii de reţele de


calculatoare aparţinând diverselor instituţii guvernamentale,
universităţi, companii private, servicii informaţionale comerciale
precum şi abonaţi individuali. Conectarea fizică a calculatoarelor la
reţea poate fi realizată prin linie telefonică (analogică sau digitală),
prin cablu direct, prin radio sau prin satelit.
Informaţia este stocată în Internet sub formă de site-uri
(pagini). Calculatoarele din reţea capabile să furnizeze informaţii se
numesc Server (sau Host). Interconectările între diversele grupuri
de calculatoare se fac cu ajutorul dispozitivului numit Router.

Program server Web

Program client Web


(browser, navigator, viewer)

Internet

Document
Protocol Web

Principiul de funcţionare al Internet-ului este cel denumit


„principiul client - server” (un utilizator trimite cereri către server
şi primeşte servicii). Pentru a accesa informaţie pe Internet
utilizatorul foloseşte un program client (cum ar fi un browser), în timp
ce server-ul trebuie să ruleze un program server, cele două programe
fiind dedicate aceluiaşi serviciu de Internet.
Internet Service Providers (ISP) sunt companii furnizoare
de servicii Internet. Conectarea la un ISP se poate realiza prin linii
telefonice (via modem) sau alte conexiuni (radio, satelit). Protocolul
de transmisie este TCP/IP (Transmission Control Protocol/ Internet
Protocol).
á Software de sistem şi software de aplicaţie 53

á Servicii Internet

Serviciu Descrierea serviciului


E-mail Poşta electronică. Permite trimiterea şi recepţionarea mesajelor de la alţi
utilizatori de Internet.
Gopher Un instrument de căutare ce permite utilizatorilor să desfăşoare operaţii
de localizarea a informaţiilor printr-un sistem adecvat de meniuri. Este
înlocuit treptat de WWW.
FTP File Transfer Protocol. Reprezintă un sistem ce permite utilizatorilor
transferul de fişiere de pe un calculator pe altul.
Usenet Un sistem distribuit de buletine informaţionale referitoare la un anumit
news subiect, pentru schimbul de articole între diverse grupuri de utilizatori
(newsgroup – uri).
WWW World Wide Web (prescurtat Web). Accesată utilizând un browser de
Web cum ar fi Netscape Navigator sau Internet Explorer, pentru
căutarea şi afişarea informaţiei stocate pe Internet.
IRC Internet Relay Chat (conversaţie pe Internet). Este un sistem de
discuţii ce permite utilizatorilor să converseze online.
Telnet Este un sistem ce permite conectarea la alte calculatoare şi rularea unor
aplicaţii sau accesul la fişiere aflate pe aceste sisteme.

á Adrese Internet

Deşi din punct de vedere tehnic World Wide Web este doar o
porţiune a lnternet-ului, acesta permite accesul la tot mai multe
servicii. Web-ul reprezintă o combinaţie între TCP/IP, protocolul de
transmitere a documentelor în reţea, cu o metodă complet nouă de
localizare şi acces la documentele aflate pe diverse reţele.
Mecanismul de localizare a informaţiilor transmise prin reţeaua
Internet utilizează un şir de caractere numit localizator universal
de resurse (URL - Universal Resource Locator), care identifică
numele şi adresa fiecărui document disponibil în Web:
‰ Tipul protocolului de server utilizat în locaţia
54 á Software de sistem şi software de aplicaţie
documentului. Un server configurat special pentru
documentele Web utilizează protocolul de transfer al
hipertextelor (HTTP – Hyper Text Transfer Protocol).
‰ Tipul site-ului, în general WWW, FTP sau Gopher.

‰ Adresa calculatorului gazdă (numele unui server)


constituită din:
o subdomeniu (în general numele unei reţele, al unei
universităţi sau al unei firme);
o domeniu - abrevieri din 2 sau 3 litere ale instituţiei,
organizaţiei sau ţării care deţine domeniul respectiv
(com, edu,net, ro)
‰ Locaţia unui document în reţeaua respectivă (directoare şi

subdirectoare, urmate de numele fişierului).


Exemplu:
http://www.microsoft.com/msoffice/train_cert/word.htm
Protocol: http
Tip site: www
Subdomeniu: microsoft
Domeniu: com
Document: msoffice/train_cent/word.htm
Un document din Web conţine un hypertext (text, grafică,
audio, video) şi are asociată o adresă care permite accesul la acesta
direct din alte documente cu ajutorul limbajului de marcare HTML
(Hypertext Markup Language). De la un document la altul este creată
o legătură (Hyper-Link) sub forma unor cuvinte subliniate.
Efectuarea unui clic pe o legătură iniţiază încărcarea documentului de
pe calculatorul gazdă al acestuia.

á 3.2. Instrumente Web

á Browser
Un document din Web se numeşte pagină Web. Un Browser
(Navigator, Viewer) este un pachet deschis şi integrat de software
pentru Internet, care furnizează un set complet de instrumente
integrate pentru toate categoriile de utilizatori, de la servicii
á Software de sistem şi software de aplicaţie 55

elementare (transmiterea mesajelor e-mail, afişarea de pagini Web,


deplasarea între diferite site-uri Web, salvarea, transferul, copierea
sau tipărirea documentelor găsite, evidenţa locurilor vizitate) la
funcţionalităţi complexe pentru conferinţe, difuzare în reţea şi creaţii
Web. Cele mai utilizate navigatoare sunt: Internet Explorer, Netscape
Comunicator, Opera, Mozilla, etc. Produsele oferă e-mail integrat şi
servicii de ştiri (noutăţi), marcaje de pagină pentru însemnarea site-
rilor interesante, facilităţi de securitate pentru a preveni accesul
neautorizat la informaţii despre utilizatori, precum şi alte trăsături
care facilitează navigarea prin Web.
Forward History Mail Address
Back Stop Print

Afişarea documentelor asociate (alcătuind un site) în spaţiul de


afişare al browser-ului începe întotdeauna de la pagină iniţială
(homepage). Navigarea în Web presupune utilizarea unor opţiuni
care să permită executarea unor operaţii cum ar fi:
ƒ Introducere adresei documentului în caseta Address.
ƒ Trecerea la afişarea paginii anterioare sau următoare (Back,
Forward).
56 á Software de sistem şi software de aplicaţie
ƒ Mărirea spaţiului de afişat la întregul ecran (Fullscreen).
ƒ Folosirea istoricului (History), o listă a celor mai recente
pagini Web vizitate, pentru selecţia adreselor.
ƒ Întreruperea transportului paginii aflată în curs de încărcare
(Stop).
ƒ Imprimarea documentului (Print).
ƒ Folosirea serviciilor de e-mail (Mail).

á Instrumente de căutare
Un instrument de căutare (numit şi motor de căutare) este
o aplicaţie din Web care permite căutarea anumitor site-uri Web pe
baza unor cuvinte sau concepte cheie. Motoarele de căutare (ex.
Altavista, Google) utilizează un program numit spider (robot) care se
deplasează automat prin structura hipertext a Web-ului, găseşte un
document, apoi identifică toate documentele referite de primul. După
regăsirea documentelor, acestea sunt trecute într-o listă de index prin
care utilizatorul este dirijat spre pagina Web corespunzătoare.
Navigarea prin Web necesită cunoaşterea diferitelor
instrumente de căutare disponibile şi a particularităţilor acestora. De
exemplu, Yahoo este organizat după subiect, deci este foarte potrivit
pentru căutarea unor colecţii de resurse legate de un singur subiect.
Fiecare instrument de căutare este prevăzut cu propriile reguli de
dirijare a unui proces de căutare (de aceea se recomandă citirea
fişierelor de Help disponibile în homepage-ul instrumentului).
Cel mai popular motor de căutare este Google. Google
utilizează tehnici sofisticate de căutare pentru a găsi paginile care
sunt importante şi relevante. De exemplu, când Google analizează o
pagină, urmăreşte ce relevanţă au inclusiv legăturile din acea pagină.
De asemenea, Google preferă paginile în care termenii căutării sunt
unii lângă alţii. Caracteristici Google:
o "şi" este implicit. Google afişează doar paginile care includ toţi
termenii căutării. Nu este necesară includerea unui "and" între
termeni. Pentru a rafina căutarea, se pot adăuga alţi termeni.
o Cuvinte stop. Google ignoră cuvinte şi caractere comune,
cunoscute drept cuvinte stop. Google sare automat termeni ca "http"
á Software de sistem şi software de aplicaţie 57

şi ".com", ca şi anumite cifre sau litere singulare, deoarece aceşti


termeni rareori ajută la rafinarea căutării, în schimb o pot încetini
semnificativ.
o Semnul "+" este folosit pentru a include cuvinte stop în
căutare. Este necesară includerea unui spaţiu înainte de semnul "+"
(se poate, de asemenea, include semnul "+" în căutări frazale).
o Fiecare rezultat Google conţine unul sau mai multe citate din
pagina web, care arată cum apar termenii căutării în context.
o Familia cuvântului. Pentru a furniza cel mai bun rezultat, Goolge
nu caută după familia de cuvinte şi nici nu suportă căutare parţială.
Altfel spus, Google caută exact cuvântul introdus. Căutarea "googl"
sau "googl*" nu va conţine "googler" sau "googlin".
o Google nu face diferenţă între majuscule şi minuscule. Toate
literele, indiferent cum sunt acestea introduse, vor fi considerate ca
minuscule. De exemplu, căutări după "google", "GOOGLE" şi
"GoOgLe" vor da aceleaşi rezultate.
o Căutările Google sunt insensibile la accente şi diacritice. Adică,
[Muenchen] şi [München] vor găsi aceleaşi pagini. Pentru a se face
discriminare între astfel de cuvinte, se poate folosi semnul +, ca în
[+Muenchen] faţă de [+München].

O altă metodă folosite de căutare a informaţiei Web (Altavista)


este prin cuvinte cheie (keywords). Pot fi utilizate cuvinte, fraze
sau cuvinte cheie compuse cu ajutorul unor operatori: + (plus), -
(minus) sau * (asterisc). Frazele de căutare trebuie delimitate prin
” (ghilimele). Exemple, pentru cuvintele Mona Lisa:

mona lisa Găseşte documentele care conţin ambele cuvinte


în oricare variantă cu majuscule (Mona, MONA,
liSA, Lisa).

Mona Lisa Găseşte documentele care conţin cuvintele


Mona Lisa fără a lua în considerare variante cu
majuscule.
58 á Software de sistem şi software de aplicaţie

+mona +lisa Caută documentele care conţin cuvintele fără a


ţine cont de ordinea în care apar (a nu se lăsa
spaţiu după semnul plus).

"Mona Lisa" Căutare după frază (conţinutul frazei este


respectat întocmai).

+"Mona Lisa" Găseşte documentele care conţin fraza


-Louvre "Mona Lisa" dar care nu conţin cuvântul "Louvre".

+ Mona +Lis* Caută documente conţinând cuvântul Mona şi


oricare cuvânt care începe cu Lis (asteriscul are
semnificaţie de „orice”).

Instrumentele de căutare pot pune la dispoziţia utilizatorilor şi


opţiuni de căutare mai complexe Advanced Search, folosind operatori
logici (AND, NOT, OR) sau identificatori de domeniu şi adrese Web.

Exemple:

cars AND bmw AND Găseşte documentele care conţin aceste


mercedes cuvinte ţinând cont de ordinea în care
sunt scrise (primul este cars).

(bmw AND mercedes) Caută documentele care conţin cuvintele


AND NOT (used OR bmw şi mercedes dar care nu conţin used
ferrari) sau ferrari

Domain:gov AND nuclear Limitează căutarea la domeniu


power plant* guvernamental căutând fraza nuclear
power plant (sau nuclear power plants).

Golf AND Monterey AND Limitează căutarea la paginile care includ


url:golf fraza Golf Montery şi la adresa web golf.
á Software de sistem şi software de aplicaţie 59

á 3.3. Poşta electronică

Fiecare utilizator (user) care foloseşte serviciul de poştă


electronică are o cutie poştală păstrată pe server-ul la care are
deschis contul (account number). Adresa cutiei poştale este de fapt
identificatorul utilizatorului de e-mail şi este stabilită de către
administratorul de ISP sau poate fi obţinută de pe site-urile care oferă
servicii gratuite de e-mail (cum ar fi yahoo.com, hotmail.com).
Account number este compus din numele utilizatorului urmat de
semnul @ şi numele server-ului de e-mail ca de exemplu:
J.Burnes@yahoo.com.

Dispunând de un cont (cutie poştală) de e-mail se pot trimite


sau recepţiona mesaje (corespondenţă electronică) folosind un
program specializat pe poştă electronică (Microsoft Outlook,
Netscape Messenger, Eudora, etc.). Accesul la propria cutie poştală
presupune declinarea identităţii de către utilizator, printr-un dialog cu
server-ul, care solicită: numele utilizatorului şi parola de identificare
(aceasta nu apare vizibilă când se tastează de către utilizator).

Un mesaj e-mail, fie că este recepţionat, fie că este expediat,


are următoarele componente:
ƒ adresa e-mail a expeditorului (From);
ƒ adresa e-mail a destinatarului (To);
ƒ data şi ora la care a fost emis (sunt completate automat de
către sistem);
ƒ subiectul (titlul) mesajului (Subject);
ƒ conţinutul (textul propriu-zis) mesajului.

Recepţionarea mesajelor sosite se realizează prin comanda


explicită pusă la dispoziţie de programul de e-mail („Get Message”,
„Send and Receive”, „Retrieve”, „Check Mail”,…). Dacă s-a realizat
corect conexiunea, mesajele (scrisorile) vor fi transportate de pe
server pe calculatorul client.
60 á Software de sistem şi software de aplicaţie
Trimiterea unui mesaj se iniţiază din programul de e-mail
printr-o comandă de genul „New Message” şi presupune în primul
rând completarea casetei To: cu adresa destinatarului. Acelaşi mesaj
poate fi trimis mai multe destinaţii dacă, în câmpul de adrese, se
scriu adresele separate prin ”;” (punct şi virgulă). Câmpurile Cc:
(Carbon copy, copie la indigo) şi respectiv BCc: (Blind Cc) realizează
copierea mesajului, acesta din urmă făcând duplicarea fără ca
destinatarul principal (cel înscris în câmpul „To:”) să-şi dea seama că
mai sunt şi alţi destinatari. O dată compus mesajul, se poate expedia
prin comanda „Send”, disponibilă din bara de instrumente a
programului de poştă electronic.

Scrisorile recepţionate sau trimise sunt stocate ca fişiere, într-o


structură de directoare care conţine:
ƒ directorul Inbox – scrisori recepţionate;
ƒ directorul Outbox – scrisori care urmează a fi trimise;
ƒ directorul Sent Items – scrisori trimise;
ƒ directorul Deleted Items (Trash) – scrisori trimise sau
recepţionate şterse (dar nu eliminate definitiv).

Pe lângă posibilităţile de recepţionare sau expediere amintite


anterior, programele de e-mail oferă şi alte facilităţi cum ar fi:
ƒ Attachment: posibilitatea de a anexa mesajului fişiere (prin
comanda „Attach File”, „Insert File”), care ajung la destinaţie
exact în forma în care au fost trimise.
ƒ Forward: reexpedierea mesajului curent (cel citit) către o altă
adresă e-mail.
ƒ Reply: o metodă de a răspunde la mesajul curent: programul
creează imediat un mesaj nou în care completează automat
câmpul destinaţie cu adresa expeditorului mesajului original,
câmpul de subiect cu subiectul mesajului, precedat de particula
„Re:” şi, eventual, include în zona mesajului propriu-zis şi
mesajul iniţial.
á Software de sistem şi software de aplicaţie 61

á 3.4. Comerţ electronic

Comerţul electronic este o tranzacţie financiară pentru un


produs sau serviciu, efectuată printr-o reţea de calculatoare
(Internet). Comerţul electronic, adesea cunoscut sub denumirea de
„e-com-merce", devine pe zi ce trece o necesitate, astfel încât multe
companii au făcut din acesta o parte importantă a activităţii lor.

Comerţul electronic se împarte în două categorii:


¾ Comerţ electronic de consum (cumpărături pe Web).
Comerţul electronic de consum constă în vânzarea de bunuri şi
servicii direct către clienţi persoane fizice. Printre exemple se numără
vânzările de software, înregistrări muzicale, calculatoare,
electrocasnice, cărţi, etc.
¾ Comerţ electronic între firme. Comerţul electronic între firme
presupune tranzacţii între două companii. Acest tip de comerţ
reprezintă, practic, cea mai mare parte din piaţa comerţului
electronic. Precursorul acestui tip de tranzacţii este setul de
standarde EDI - Electronic Data Interchange (Schimb electronic de
date). Sistemul EDI are o prezenţă importantă în universul corporativ
şi guvernamental, unde zilnic se fac electronic multe tranzacţii. Pe
viitor, acest tip de comerţ va fi derulat de companiile capabile să
acceadă la şirurile web ale altor companii pentru a comanda produse,
a vizualiza nivelul stocurilor, a face verificarea comenzilor şi a efectua
manual sau automat achiziţii de materiale.
Comerţul electronic nu a ajuns încă la fructificarea întregului
său potenţial. Doar o mică parte din firme şi-au pus în practică o
strategie de comerţ electronic şi multe n-au reuşit încă să aibă succes
în această direcţie. Şi totuşi, există suficiente exemple de reuşită în
domeniul comerţului electronic, pentru a demonstra că poate fi o
sursă de venituri pentru companiile potrivite.
Tranzacţiile de comerţ electronic au loc pe pagini World Wide Web
care arată, în principiu, la fel ca oricare alte pagini de pe Internet.
Există, însă, multe elemente complexe care depăşesc nivelul unui site
normal de Internet, pentru a încorpora multe funcţii diferite, cum ar
62 á Software de sistem şi software de aplicaţie
fi lansarea de comenzi, securizarea, autorizarea creditului, urmărirea
comenzilor şi sistemele de plată.

á 3.4.1. Site de comerţ electronic

Un site de comerţ electronic trebuie să cuprindă următoarele


patru componente:
1. Prezentare comercială electronică. În esenţă, e vorba de un
site web care să permită prezentarea produselor pe Internet. Este
adesea denumit catalog on-line şi, în general, este organizat în aşa fel
încât utilizatorii să-l poată răsfoi pentru a detecta descrieri ale
bunurilor care se comercializează.
2. Un coş de cumpărături virtual. Trebuie să existe o modalitate
prin care clienţii să poată alege şi comanda bunuri şi servicii. Clienţii
aleg articolele dorite şi le stochează în coşul virtual, până în
momentul când sunt gata să facă plata.
3. Una sau mai multe metode de plată. Clienţii pot plăti în mai
multe modalităţi posibile, inclusiv cu carte de credit sau prin diverse
alte metode electronice de plată. Indiferent de metoda folosită, plăţile
se fac electronic, fără transfer fizic de bani. Atunci când se folosesc
cărţi de credit, numărul cărţii de credit se criptează şi se trimite
electronic prin Internet către un server de tranzacţii, după care se
face verificarea creditului cumpărătorului şi se trece suma în contul
cărţii de credit. Alte opţiuni de plată comportă diverse metode de
transferare a fondurilor.
4. Integrare cu alte servicii de operaţiuni interne. Aceasta
este o componentă opţională şi include automatizarea anumitor
operaţiuni: onorarea comenzilor, facturarea, producţia,
expedierea, gestiunea stocurilor şi chiar procesele de lansare a
comenzilor de aprovizionare către furnizori. Această integrare
completă, pe tot parcursul traseului de la client la furnizori,
presupune un grad ridicat de complexitate şi este îndeobşte
cunoscut sub denumirea de „activitate electronică de afaceri" -
„electronic business". Există situri dedicate care pot prelua şi onora
comenzi în mod foarte eficient, fără intervenţie umană,
á Software de sistem şi software de aplicaţie 63

automatizând întregul proces de activitate al unei companii, de la


începutul şi până la sfârşitul lanţului valorii. Scopul activităţii
electronice de afaceri este să realizeze o eficienţă maximă a
costurilor de vânzare.
O unitate comercială implementează un sit web de comerţ
electronic pentru a-şi lărgi aria de desfacere dincolo de zona locală
proprie. Un client vede catalogul on-line (adică prezentarea
comercială electronică) şi găseşte produsele pe care le doreşte, după
care îşi înregistrează achiziţia printr-un browser de web sigur,
împreună cu numărul criptat al cărţii de credit, printr-o conexiune
sigură pe Internet. Tranzacţia este trimisă la serverul de tranzacţii,
care apoi transmite datele cărţii de credit la instituţia financiară a
comerciantului, pentru verificare. Se face verificarea financiară şi
tranzacţia este automat finalizată şi trecută în creditul

Serverul de tranzacţii validează


cartea de credit şu face tranzacţia
cu instituţia financiară a
comerciantului

Serverul de comerţ electronic pe


web al comerciantului: prezentare
comercială electronică şi coş de
cumpărături virtual
Internet
Stocul epuizat declanşează
comanda la furnizor
INSTITUTIŢIA
Trimite FINANCIARĂ
datele
comenzii
la server

Internet Internet

CONSUMATOR

Serverul de operaţiuni interne


integrate al comerciantului execută
prelucrarea comenzii, facturarea,
expedierea, producţia şi gestiune
stocurilor

Produsul expediat la
consumator

comerciantului. Serverul de web trimite informaţiile aferente


comenzii clientului la serverul de operaţiuni interne al comerciantului.
Ca parte din soluţia de activitate electronică a companiei, serverul de
64 á Software de sistem şi software de aplicaţie
producţie primeşte informaţiile privind comanda clientului în baza sa
de date şi generează comanda. Comanda este apoi introdusă în
softul de onorare a comenzilor folosit de comerciant, unde este pre-
lucrată.
Softul integrat de expediere întocmeşte până şi buletinul de
expediţie, cu informaţii din baza de date privind greutatea de
transport a produsului şi distanţa. Softul de expediţii al
comerciantului înregistrează produsul şi acesta este ridicat de
compania de transport, care începe să urmărească traseul de
expediere a coletului.
Clientul poate să verifice oricând pe Internet în ce etapă de
expediţie se află produsul. Singurul moment când cineva intervine
fizic în acest proces este la împachetarea şi livrarea produsului.
Pe măsură ce se acumulează comenzi, serverul urmăreşte
nivelul stocurilor şi evidenţa vânzărilor, generează comenzi de
producţie, întocmeşte comenzi de aprovizionare către principalul
furnizor al comerciantului.
Unele bunuri pot fi distribuite electronic. De exemplu,
programele informatice şi înregistrările muzicale pot fi descărcate de
pe Internet după ce clientul le-a plătit.

Avantajele comerţului electronic se referă la:


o Distribuţie. Activitatea unui mijlocitor sau distribuitor plătit poate
fi substituită electronic. Adesea, se face referire la acest lucru cu
termenul de „dezintermediere".
o Arie mai largă de acoperire a pieţei. Comerţul electronic poate
asigura o acoperire geografică mai mare decât cea realizată, în mod
normal, cu resurse limitate. Expansiunea geografică normală necesită
adesea mai mult personal de vânzări, mai mulţi distribuitori şi mai
mulţi bani.
o Eficienţă. Multe soluţii de activitate electronică integrează
verificarea creditului, contabilitatea, gestiunea stocurilor,
aprovizionarea şi procesele de producţie în cadrul soluţiei de comerţ
electronic.
á Software de sistem şi software de aplicaţie 65

Soluţiile de comerţ electronic pot aduce avantaje şi clienţilor.


Comerţul electronic le oferă în general clienţilor posibilitatea de a
face cumpărături oricând şi oriunde, deci comoditate; preţuri mai
bune (uneori) decât ar obţine în altă parte, o selecţie mai bună şi
variante mai bune de a cumpăra.
Securitate este cea mai mare problemă cu care se confruntă
comerţul electronic. Ameninţarea cu încălcarea securităţii există atât
pentru consumatori, cât şi pentru comercianţi. În ciuda celor mai bune
metode de securizare şi criptare, există întotdeauna riscul ca orice
tranzacţie să poată fi interceptată sau să se intre într-un server în
mod ilicit. Dar pericolul real e mult mai mic. Pentru ca tranzacţiile să
fie sigure, trebuie folosit software de criptare.
O soluţie spre comerţul electronic este găzduirea sitului la un
furnizor de servicii Internet (ISP), mulţi dintre furnizorii ISP oferind
softul necesar şi serviciile necesare pentru elaborarea unui sit web.
Mulţi producători de servere vând servere special făcute pentru situri
web.
A exploata la maximum o soluţie completă de activitate
electronică de “cibervânzare” înseamnă integrarea în funcţiile de
operaţiuni interne, cum ar fi facturarea, gestiunea stocurilor şi
producţia. Soluţiile de activitate electronică impun un angajament
uriaş în materie de timp şi de bani, precum şi ajutorul unui
consultant de specialitate.

á 3.4.2. Vânzarea on-line

¾ Securitatea. Securitatea este preocuparea numărul unu a


consumatorilor care cumpără de pe Internet. Trebuie ţinut pasul cu
tehnologia cea mai recentă în materie de securitate. În prezent,
standardul principal pentru tranzacţii sigure pe Internet este cel
denumit SSL (Secure Sockets Layer - Strat de socluri sigur), care
utilizează criptarea pentru a codifica informaţiile de natură financiară,
cum ar fi numerele cărţilor de credit. Aceasta garantează practic că
nimeni nu va putea intercepta tranzacţiile de pe Internet şi nici nu
va putea descifra numerele de pe cărţile de credit ale utilizatorilor.
66 á Software de sistem şi software de aplicaţie
Tehnologia de criptare, denumită SET (Transactions Secure Electronic),
este standardul elaborat de MasterCard şi Visa pentru tranzacţiile cu
cărţi de credit. Pot fi puse în funcţiune metode alternative de plată,
dar puţin probabil să fie tot atât de populare ca utilizarea numerelor
criptate de pe cărţile de credit decât, poate, cu excepţia
cumpărătorilor „înrăiţi" de pe Internet, care nu se lasă intimidaţi de
nimic. Tranzacţia în sine nu reprezintă decât o parte a preocupării
pentru securitate. Interceptarea întâmplătoare a unei tranzacţii
financiare este o mare lovitură pentru un hacker. Un avantaj al
tehnologiei SET este că informaţiile aferente cărţilor de credit sunt
stocate la instituţia financiară a comerciantului şi nu pe serverul
acestuia, deci nu există nici o şansă să vă fie furate date din sediu.

¾ Metoda de plată. Modalitatea de plată cea mai des folosită pe


Internet este, de departe, utilizarea numerelor criptate ale cărţilor de
credit. Criptarea se face prin codificarea numerelor de pe cartea de
credit a cumpărătorului şi decriptarea lor pe server. Atât protocolul
SSL, cât şi SET, criptează date aferente cărţilor de credit. Există,
totuşi, mai multe soluţii alternative de efectuare a plăţilor pe
Internet. Sistemele electronice de plată cunoscute sub denumirea de
„bani electronici" („e-cash") şi „bani digitali" („digital cash") permit
comercianţilor să debiteze conturile bancare ale clienţilor cu sumele
cuvenite. Avantajul acestui mod de plată este că utilizatorii nu mai
trimit prin Internet numerele cărţilor de credit. Portofelele electronice
stochează pe unităţile hard ale utilizatorilor informaţii de pe cartea
de credit şi elemente digitale de identificare. De fiecare dată când
utilizatorii fac o achiziţie, calculatorul lor trimite informaţii criptate la
magazinul electronic, pentru efectuarea plăţii, iar în cartea lor de
credit apare operaţiunea exact ca pentru oricare altă tranzacţie.
Desigur, fiecare dintre aceste sisteme de plată include şi posibilitatea
de validare a creditului înainte de autorizarea achiziţiei. Cartela
inteligentă funcţionează ca o carte de debit şi poate fi introdusă într-un
cititor de cartele aşezat lângă calculator, pentru a plăti o tranzacţie, şi
poate chiar să fie reîncărcată printr-un ciberbancomat.
á Software de sistem şi software de aplicaţie 67

á 3.4.3. Sisteme electronice de plată

Mod de plată Descriere


Criptare carte de Autorizarea cărţii de credit şi criptarea numărului
credit cărţii de credit
Bani electronici / Utilizează conturi bancare electronice pentru
Bani digitali transferul numeric al banilor digitali
Portofele electronice Stochează informaţii ale cărţii de credit şi certificări
digitale pe calculator; poate folosi mai multe
modalităţi de plată şi stochează chitanţele pentru
tranzacţii
Microplăţi Pentru plăţi în sumă foarte mică: între 0,25€ şi 10€
Cartele inteligente Cartelele „încărcate" electronic sunt folosite prin
introducere în cititoare de cartele inteligente,
conectate la calculator (adică dispozitive hard
adăugate la calculator)

Construirea unei prezenţe on-line poate fi un mare pas


înainte pentru orice firmă. Utilizarea eficientă a unui sit pe World
Wide Web poate ajuta majoritatea companiilor să ajungă la noi clienţi
potenţiali, să-şi micşoreze costurile de asistenţă şi să-şi
îmbunătăţească imaginea. Prin extinderea prezenţei pe Web pentru a
cuprinde şi tranzacţii electronice, pot spori în mod semnificativ
vânzările şi se pot reduce costurile de găsire a clienţilor şi de
vânzare, rezultând îmbunătăţirea propriilor procese interne de
activitate.
68 C Structuri de date şi programare structurată

C Structuri de date şi
programare structurată

C 1. Conceptul de algoritm

 Definiţie
Algoritmul este un concept intuitiv reprezentând o mulţime
finită şi ordonată de paşi executabili descrişi fără echivoc, care,
pornind de la o mulţime de valori, numită domeniul de definiţie
(intrarea), produce în timp finit o altă mulţime de valori
(ieşirea).

Termenul de algoritm derivă de la numele matematicianului


arab Abu Ja’far Mohamed ibn Mũsa al Kahowârizmî.

Procesul de rezolvare a problemelor cu ajutorul calculatorului


constă în două activităţi: dezvoltarea algoritmului şi reprezentarea
acestuia ca program. Procesul de elaborare al algoritmului reprezintă
etapa cea mai importantă, obligatorie şi de cele mai multe ori cea mai
dificilă. Descoperirea algoritmului înseamnă găsirea unei metode de
rezolvare a problemei, claritatea şi calitatea acestuia impunând
fiabilitatea şi calitatea programului. În contextul dezvoltării
programelor, etapele de rezolvare ale problemelor corespund cu cele
definite de matematicianul G. Polya în 1945:

C Înţelegerea problemei este etapa cea mai importantă şi


constă în:
• definirea datelor de intrare (tip, proprietăţi, domeniul
valorilor),
• definirea rezultatelor (ieşirile),
C Structuri de date şi programare structurată 69

• stabilirea relaţiilor dintre date şi rezultate.


C Conceperea modului de rezolvare a problemei şi descrierea
acestuia printr-un algoritm.
C Reprezentarea algoritmului ca program.
C Evaluarea programului din punct de vedere al corectitudinii
şi ca potenţial instrument pentru rezolvarea altor probleme.

Acest proces poate fi reprezentat schematic astfel:

Algoritm
Problema + Program
Date

abstractizare codificare

Reprezentarea unui algoritm trebuie să ţină cont de


următoarele caracteristici:
• Claritatea – presupune inteligibilitatea şi ordonarea exactă
a paşilor pentru o exprimare corectă şi fără ambiguităţi.
• Generalitatea – aplicarea algoritmului la o clasă mai mare
de probleme.
• Finititudinea – soluţionarea problemei într-un timp
determinat.

În practica reprezentării algoritmilor se utilizează diverse forme


cum ar fi schemele logice, limbajul algoritmic (pseudocod),
tabelele de decizie, limbajele de programare, însă, indiferent de
modul de descriere al acestora, se stabileşte o mulţime bine definită
de blocuri elementare numite primitive. Definirea precisă a
primitivelor duce la îndeplinirea dezideratelor de claritate şi determină
modul în care aceste primitive pot fi combinate pentru reprezentarea
ideilor mai complexe. Fiecare primitivă este constituită din două
elemente: sintaxa şi semantica. Sintaxa se referă la reprezentarea
simbolică a primitivei, în timp ce semantica se referă la conceptul
reprezentat (semnificaţia primitivei).
70 C Structuri de date şi programare structurată
Ansamblul de primitive ales pentru reprezentarea algoritmilor
trebuie să fie adaptat la specificul de calcul electronic. De obicei
aceste primitive sunt definite la un nivel mai înalt decât cel oferit de
limbajul în cod maşină, astfel încât abordarea construcţiei şi analizei
algoritmilor se face prin prisma unor concepte moderne, cum ar fi
principiile programării structurate.

C 2. Principiile programării structurate

Programarea structurată este o metodă de concepere,


organizare, codificare, testare, menţinere şi documentare ale
algoritmilor de calcul prin definirea unui set de primitive grupate în
trei forme de structuri fundamentale: secvenţa, selecţia şi ciclul.
Aceste structuri sunt constituite în scopul optimizării procesului de
programare prin realizarea unor produse program fiabile şi de bună
calitate.

Termenul de “programare structurată” este introdus în 1972 de


E.W. Dijkstra, însă fundamentarea matematică este făcută de Böhm
şi Jacopini într-un articol publicat în 1966.

Construirea algoritmilor, conform principiilor de programare


structurată are în vedere două elemente:

C Acţiunea elementară, tradusă în


Acţiune
instrucţiuni simple (instrucţiunea de
atribuire, instrucţiunea de apel subprogram, instrucţiuni de
intrare/ieşire, subprograme).

C Condiţia (control, test, expresie


True
booleană) cu valoare de adevărat (True)
sau neadevărat (False). Condiţie C

False
C Structuri de date şi programare structurată 71

Un algoritm adaptat programării structurate se reprezintă prin


trei primitive astfel (structura D – Dijkstra):

c Secvenţa (una sau mai Acţiune a Acţiune b


multe acţiuni elementare).
Această primitivă se va nota: a; b

d Selecţia (structura Acţiune a


True
alternativă).
Această primitivă se Condiţie C

va nota: False
Acţiune b
IF C THEN a ELSE b

e Ciclul cu test iniţial Acţiune a


True
(structura repetitivă,
iteraţia). Condiţie C
Această primitivă care semnifică False
repetarea acţiunii atât timp cât
este îndeplinită condiţia C va fi notată: WHILE C DO a

O extensie a structurii D este structura D’ care conţine:

c Structura D.

d Selecţia redusă (selecţia Acţiune a


True
pseudoalternativă).
Această primitivă se va Condiţie C

nota: IF C THEN a False

e Ciclul cu test final True


(structura repetitivă Acţiune a Condiţie C
condiţionată posterior).
False
Notaţie: REPEAT a UNTIL C
72 C Structuri de date şi programare structurată

f Selecţia multiplă i=1


Acţiune a1
(structura alternativă
multiplă). Caz i

i=n
Acţiune an

Notaţie: CASE OF i 1:a1 2:a2 … n:an

Conform teoremei de structură al Böhm – Jacopini, orice


algoritm conţinând o secvenţă de structuri D sau D’ este un algoritm
de programare structurată.

Una din metodele de proiectare a algoritmilor este metoda


rafinării pas cu pas. Această metodă îşi propune împărţirea
problemei în mai multe subprobleme (permiţând elaborarea
algoritmilor în mai multe etape), în ideea că fiecare în parte este mai
uşor de rezolvat decât problema în ansamblul ei. Din acest punct de
vedere rafinarea pas cu pas este o metodologie descendentă
(metoda “top – down”, de “sus în jos”).

Următorul algoritm, schematizat sub forma unui program


structurat,

s1 s2
s3
True a1 a2
False
C1 a3 C4 a6
True
True
False
C2 False
a5
False True
a4 C3
s5
s4

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


C Structuri de date şi programare structurată 73

P: s1; s2; a6
s1: IF C1 THEN s3 ELSE s4
s3: a1; a2
s4: IF C2 THEN a3 ELSE s5
s5: REPEAT a4 UNTIL C3
s2: WHILE C4 a5

Rezultă un program care poate fi scris sub forma:


IF C1 THEN a1; a2
ELSE
IF C2 THEN a3
ELSE REPEAT a4
UNTIL C3
WHILE C4 a5
a6

C 3. Elemente din teoria bazelor de date

C 3.1. Structuri de date

 Definiţie
O structură de date defineşte un grup de date (omogene sau
eterogene) între care s-au stabilit o serie de legături în scopul
realizării unor mecanisme de identificare, selecţie şi prelucrare a
componentelor acestui grup.

Organizarea datelor în structuri se realizează pe două nivele:


logic şi fizic. Procesul de prelucrare a datelor (mai ales când acestea
sunt de volum mare) impune necesitatea ca acestea să fie uniform
structurate, conform unor modele – nivelul logic. La nivel fizic forma
de organizare şi conservare a datelor este fişierul, care permite
stocarea, identificarea şi consultarea datelor memorate pe suporturile
de stocare. Fiecare fişier cuprinde un grup de elemente numite
înregistrări, articole (record). Înregistrarea este o entitate
semantică care asociază (prin legături) date de tip diferit, conform
modelului de organizare utilizat.
74 C Structuri de date şi programare structurată

C 3.1.1. Tipuri de legături între diferite colecţii de date

Elementele (numite şi realizări) unei colecţii de date intră în


anumite legături (asocieri). Ele pot fi legături în cadrul aceleiaşi colecţii
(legături interne) sau legături între colecţii diferite (legături
externe). De exemplu pentru colecţiile de date Produse şi Materiale
legăturile interne rezultă prin aceea că mai multe materiale aparţin
aceluiaşi sortiment iar cele externe prin faptul că mai multe materiale
participă la realizarea unui produs, aşa cum unul sau mai multe
produse se pot obţine pe seama unui singur material.

Materiale Produse
M4 0
M2 0 P1 legături interne
legături externe
M1 0 0 P2
M3 0

Legăturile între realizările diferitelor colecţii de date pot fi binare


şi n-are.
Legăturile binare sunt determinate de existenţa a două colecţii
de date numite domeniu şi codomeniu (legăturile interne sunt relaţii
binare la care domeniul şi codomeniul sunt identice). Se disting
următoarele tipuri de legături:
• legături „unu la unu” (1 - 1 sau biunivoce). Unui element din
domeniu îi corespunde un singur element din codomeniu şi
invers. Exemplu: relaţia dintre colecţiile de date Studenţi şi
Matricole. O matricolă este atribuită unui singur student, iar un
student poate beneficia de o singura matricolă.
Studenţi Matricole
S1 0
0 M1

S2 0 0 M2
0 M3
S3 0
C Structuri de date şi programare structurată 75

• legături „unu la mulţi” (1- n). Unui element din domeniu îi


corespund zero una sau mai multe realizări din codomeniu. De
exemplu un student face parte dintr-o singură grupă, o grupă
poate avea mai mulţi studenţi.
Grupe Studenţi

0 S1
G1 0 0 S3
0 S5
G2 0
0 S2
0 S4

• legături „mulţi la mulţi” (m - n). Unui element din domeniu îi


corespund mai multe realizări din codomeniu corespondenţa
realizându-se şi invers. De exemplu un produs este realizat din
mai multe materiale, acelaşi material folosindu-se la fabricarea
mai multor produse.

Materiale Produse
M4 0
M2 0 P1

0 P3
M1 0 0 P2
M3 0

Legăturile n-are sunt legăturile prin care sunt asociate mai


multe colecţii de date (ele pot fi descompuse în legături binare). Aceste
tip de legături este luat în considerare în algebra relaţiilor care
constituie baza teoretică pentru tratarea bazelor de date relaţionale.

C 3.1.2. Tipuri de structuri de date

Principalele tipuri de structuri de date care impun modul de


organizare al datelor sunt structura liniară, structura arborescentă,
structura reţea, şi structura relaţională.

Structura liniară este definită printr-o relaţie de ordine pe un


grup de date sub forma denumită listă.
d1 d2 d3 dn
76 C Structuri de date şi programare structurată
Elementele unei liste sunt înlănţuite conform următoarelor
principii:
a. orice element neterminal al listei are un succesor unic (listă
simplu înlănţuită);
b. primul element nu are predecesori;
c. ultimul element nu are succesori;
d. dacă ultimul element se înlănţuie cu primul element lista se
numeşte listă circulară;
e. dacă înlănţuirea se defineşte şi în sens invers (de la fiecare
element al listei spre predecesorul său) lista se numeşte listă
dublu înlănţuită.
Exemplu:
Furnizor Sortiment Materiale

S1 M1
M2
F1
S2 M4
F2 S3 M3

Structura arborescentă (ierarhică sau descendentă) este


definită printr-o relaţie de ordine pe un grup de date astfel:
a. elementele grupului de date se numesc noduri şi sunt dispuse
pe nivele;
b. există un singur nod pe primul nivel – nod rădăcină;
c. orice nod diferit de rădăcină are un predecesor imediat unic;
d. orice nod neterminal are un număr finit de succesori imediaţi;
e. legăturile stabilite între noduri sunt de tipul 1 – n (o structură
arborescentă definită numai prin legături de tip 1 –2 se
numeşte arbore binar).
Nivel 0 r

Nivel 1 a1 a2 a3

Nivel 2 b1 b2 b3 b4 b5 b6 b7

Nivel 3 c1 c2
C Structuri de date şi programare structurată 77

Această structură se bazează pe existenţa unei mulţimi de


colecţii de date şi o mulţime de legături ierarhice. Fiecărui tip de
colecţie de date i se atribuie un număr de nivel (există o singură
colecţie de date de nivel 1 numită rădăcină). Colecţiile de date pe
acelaşi nivel formează o familie de date. Exemplu:
Produse

P1 P2

Nivel 0

Clienţi Materiale
C1
M1 M3
C2 M2
Nivel 1

Furnizori Comenzi

F4 F1 Com1
Com2
F2 F3
Nivel 2

Structura reţea este definită printr-o relaţie de ordine având


următoarele proprietăţi:
a. o reţea este un graf în care între două noduri există legături
bidirecţionale;
b. un nod are mai mulţi predecesori şi el însuşi poate fi
predecesor pentru propriul lui predecesor;
c. o succesiune de legături în care nodul iniţial este acelaşi cu
nodul final determină un ciclu al reţelei (o reţea care nu
posedă nici un ciclu se numeşte reţea simplă, in caz contrar se
numeşte reţea complexă);
78 C Structuri de date şi programare structurată
d. între elementele(nodurile) reţelei se stabilesc legături de tipul
m - n.

Nivel 0 r1 r2

Nivel 1 a1 a2 a3

Nivel 2 b1 b2 b3 b4 b5 b6 b7

Nivel 3 c1 c3

Structura de reprezentare în reţea se bazează pe existenţa unei


mulţimi de colecţii de date şi a unei mulţimi de relaţii ierarhice care,
spre deosebire de structurile arborescente, admite ca o colecţie de
date să aibă mai multe colecţii de date suplimentare. Exemplu:

Clienţi Furnizori

F1
C1 F2
Nivel 0

Note de
Contracte comanda

Ct2 N1
Ct1 N3
Ct3 N2
Nivel 1

Produse Materiale

P1 M1

P2 M2
Nivel 2 P3

Structura relaţională este definită prin tabele (relaţii, tablouri)


de date elementare între care există se stabilesc legături n-are.
C Structuri de date şi programare structurată 79

C 3.2. Concepte de reprezentare a datelor

C 3.2.1. Modelul de reprezentare liniară

Realizarea fizică a modelului este lista, care poate fi


asimetrică (când informaţia corespunzătoarea fiecărei realizări are
asociată adresa următoarei realizări sau simetrică (când, la fiecare
realizare se asociază două adrese: precedentă şi următoare).

d1 d2 dn

d1 d2 dn

În scopul optimizării operaţiilor de căutare a informaţiilor în listă


au fost elaborate structuri de reprezentare liniară specializate : stack
(stiva) şi queue (coada).

Stiva este o structură asimetrică care permite ca operaţiile de


adăugare, consultare şi ştergere să se poată efectua în capul colecţiei
de date. Ea este bazată pe principiul LIFO (Last Input First Output),
astfel încât ultima realizare adăugată să fie prima consultată.

Coada este o structură simetrică care permite adăugări la


sfârşitul listei şi consultări/ştergeri la începutul listei. Principiul se
numeşte FIFO (First Input First Output.

Un fişier de date construit pe baza modelului liniar constă într-o


succesiune de înregistrări, de lungime variabilă. De exemplu, pentru
structura arborescentă prezentată anterior, luând în considerare
posibilitatea descompunerii acesteia în structuri liniare, se poate
constitui un fişier care conţine următoarele înregistrări:

(P1,C1) (P1,C2) (P2,M3,Com1) (P2,M3,Com2) (P2,M1,F4) (P2,M1,F3)…..


80 C Structuri de date şi programare structurată
C 3.2.2. Modelul ierarhic (arborescent)

Modelul de reprezentare arborescentă se poate realiza fizic cu


ajutorul unor adrese care indică adresa primei realizări din cadrul
colecţiei şi adresa următoarei realizări din cadrul colecţiei (organizare
FIU, FRATE).
r

a1 a2 a3

b1 b2 b3

c1 c2

Modelul ierarhic permite organizarea datelor pe orice tip de


suport magnetic (sau optic) şi prezintă următoarele caracteristici:

• consultarea datelor este permisă numai prin intermediul


rădăcinii;
• accesul la realizările colecţiilor de date inferioare colecţiei
rădăcină se face prin specificarea tuturor colecţiilor care se
găsesc între colecţia rădăcină şi colecţia pe care dorim să o
consultăm.

Practic consultarea se face în mod "top-down" (de sus în jos


şi de la stânga la dreapta).

Limite modelului sunt date de problemele legate de actualizarea


fişierelor de date:
• adăugarea de noi înregistrări se poate face numai cu
specificarea colecţiilor superioare;
• ştergerea unei realizări determină ştergerea tuturor
realizărilor subordonate.
C Structuri de date şi programare structurată 81

La nivel fizic, un fişier de date constituit pe baza modelului


conţine înregistrări de lungime variabilă. Exemplu:

(P1,C1) (P1,C2) (P2(M3(Com1, Com2))) (P2(M1(F3, F4),M2(F1, F2)))

C 3.2.3. Modelul reţea

Modelul reţea este un model conceptual complet de structurare


a datelor, bazat pe structurile de reprezentare reţea şi tipurile de
relaţii 1-1, 1-n caracteristica principală a acestui model fiind aceea că
acesta acceptă ca orice colecţie de date să se situeze la nivelul 1,
ceea ce permite să se realizeze accesul direct la realizările colecţiilor.

Exemplu: legăturile dintre colecţiile de date "PRODUSE" şi


colecţiile de date “MATERIALE”

P1 P1

M1 M2 M3 M4 M4

C 3.2.4. Modelul relaţional

Acest model se bazează pe teoria matematică a relaţiilor şi pe


calculul relaţional şi este independent de suportul fizic. Cu ajutorul lui
structura conceptuală poate fi reprezentată sub forma unei mulţimi
de tabele legate între ele prin intermediul unor chei.

Considerând colecţiile de date din structura arborescentă


anterioară, se pot constituii următoarele tabele:
82 C Structuri de date şi programare structurată

Produse Clienţi Produse Materiale Furnizori Produse Materiale Comenzi


P1 C1 P2 M1 F3 P2 M3 Com1
P1 C2 P2 M1 F4 P2 M3 Com2
P2 M2 F1
P2 M2 F2

Înlocuirea relaţiilor ierarhice sau reţea cu relaţii n-are, precum


şi eliminarea neajunsurilor generate de cele dintâi în procesul de
creare şi de actualizare a bazelor de date, poartă numele de
normalizare.

Prin procesul de normalizare mulţimea legăturilor dintre


realizările colecţiilor de date se include în tabele bidimensionale (baze
de date). În aceste tabel se admite, desigur, o anumită redundanţă
deci anumite legături se repetă.

Modelului relaţional prezintă o serie de avantaje:

• permite o reprezentare simplă, uşor accesibilă oricărui


utilizator datorită faptului că baza de date este concepută
ca o colecţie de tabele;

• permite proiectarea unei structuri optime cu ajutorul


operaţiei de normalizare;

• permite crearea, actualizarea şi consultarea bazei de date


folosind tehnici de acces şi prelucrare superioare, proprii
unui sistem de gestiune a bazei de date relaţionale;

• admite satisfacerea cerinţelor utilizatorilor prin


intermediul unor limbaje bazate pe algebra relaţiilor;
C Structuri de date şi programare structurată 83

C 3.3. Algebra relaţională – Modelul relaţional

E.F. Codd a definit conceptele disciplinei numită algebră


relaţională ca o colecţie de operaţii pe relaţii, fiecare operaţie având
drept operanzi una sau mai multe relaţii şi producând ca rezultat o altă
relaţie.

 Definiţie
Dată fiind o colecţie de mulţimi D1, D2,....Dn,numite domenii, nu
neapărat distincte, R este o relaţie pe aceste n mulţimi, dacă există o
mulţime de n-tupluri (d1, d2,......dn) astfel încât d1∈D1, d2∈D2,
....dn∈Dn.

Valoarea n reprezintă gradul relaţiei, iar numărul de tupluri


reprezintă cardinalul. Într-un sens mai puţin abstract putem privi
relaţia ca un tabel organizat pe linii şi coloane în care capul de tabel
cuprinde domeniile, coloana este atributul, iar linia este tuplul. Numărul
de coloane este gradul relaţiei, numărul de linii reprezintă cardinalul
relaţiei.

În sistemele de programare care prelucrează colecţii de date


noţiunea de relaţie se suprapune peste noţiunea de tabel de date,
domeniul este câmp, tuplul este articol (înregistrare, record),
cardinalul reprezentând dimensiunea tabelului de date (dată de
numărul de înregistrări), iar numărul de câmpuri este gradul
relaţiei.
Din punct de vedere al operaţiilor de prelucrare a datelor
definim următoarele elemente de bază:
• Relaţia este ansamblul de date şi legături între acestea.
• Domeniul reprezintă un ansamblu de nume prin care se
identifică datele din relaţie.
• Atributul este un grup de date de acelaşi tip aparţinând
unui domeniu.
• Tuplul (sau n-tuplul) este definit de succesiunea de
legături care asociază datele având atribute diferite.
84 C Structuri de date şi programare structurată
Exemplu
Model Firma Culoare
FIAT Roşu
BMW Roşu
FIAT Alb
BMW Alb
VW Alb

Convenţii de scriere:
relaţia: Model[Firma, Culoare]
domenii: Firma {FIAT, BMW, VW, …}
Culoare {Roşu, Alb, Verde,….}
atribut Model.Firma, Model.Culoare
tuplu (FIAT, Roşu)
(BMW, Roşu)
 Observaţii
• Atributele sunt unice (nu pot exista coloane cu
nume identice).
• Ordinea liniilor şi a coloanelor în tabel este
indiferentă.
• Atributele reprezintă o mulţime finită de valori
inclusă în mulţimea valorilor posibile dintr-un
anumit domeniu (a nu se face confuzie între
domeniu şi atribut).

Modelul de reprezentare a datelor care utilizează elemente de


algebră relaţională şi calculul relaţional se numeşte modelul
relaţional.

C 3.3.1. Reguli de integritate ale modelului relaţional

¾ Regula de unicitate a cheii


Această regulă defineşte ansamblul minim de atribute care să
permită ca fiecare tuplu să fie unic identificat (nu există tupluri
identice). Identificarea unui tuplu în cadrul unei relaţii, fără a face
apel la toate valorile din tuplu a dus la apariţia noţiunii de cheie.
Orice relaţie prezintă cel puţin o cheie, la limită cheia fiind construită
C Structuri de date şi programare structurată 85

din cel puţin un atribut (cheie simplă). Când mai multe atribute
contribuie la constituirea cheii, cheia se numeşte cheie compusă (din
chei primare, chei secundare).

Exemplu
În relaţia Marca, atributul Marca.Cod permite identificarea într-o
manieră unică a unui tuplu (cheia este singulară). Se poate accepta
următoarea convenţie de scriere (cheia este subliniată):
Marca[Cod, Firma, Culoare]

¾ Regula de restricţie referenţială


Două sau mai multe relaţii pot fi asociate (legate), în sensul că
datele dintr-o relaţie sunt dependente de datele din alte relaţii.
Termenii care se folosesc în acest caz sunt: „relaţie care referă
(părinte)”, „relaţie referită (copil)”. Astfel o relaţie poate să conţină
un atribut/grup de atribute care sunt incluse şi în altă relaţie
(referită). Regula de restricţie referenţială este definită astfel: Dacă
un atribut/grup de atribute este cheie într-o relaţie care referă
(părinte) şi apare şi într-o relaţie referită (copil), toate valorile
corespunzătoare cheii trebuie să apară în atributele/grupul de
atribute al relaţiei referite(copil) sau să fie valori null (nedefinite).

Exemplu
Fie relaţiile Marca[Cod, Firma, Culoare]
Clienţi[Cod, Client, Data, Cantitate]
În aceste relaţii atributul Cod, comun celor două relaţii este
cheie în relaţia Marca deci trebuie să conţină toate valorile cuprinse în
atributul Clienţi.Cod.

¾ Regula de restricţie a entităţii (integritatea entităţii)


Considerând convenţia de notare cu „null” a unei valori
necunoscute, restricţia entităţii reprezintă restricţia de integritate
care impune ca într-o relaţie atributele cheii primare să fie nenule. Cu
valori „null” cheia îşi pierde rolul de identificator de tuplu.
86 C Structuri de date şi programare structurată
C 3.3.2. Calculul operaţional

Operaţiile definite în algebra relaţională sunt de tipuri:


o operaţii de bază (tradiţionale)
o operaţii speciale

C Operaţii relaţionale tradiţionale


Operaţiile relaţionale tradiţionale au în vedere acele relaţii care
au acelaşi grad şi aceleaşi domenii (ele se numesc compatibile cu
reuniunea). Pe două relaţii R1 şi R2, compatibile cu reuniunea pot fi
definite următoarele operaţii: reuniunea, intersecţia, diferenţa.

¾ Reuniunea
Notaţii: R = R1 ∪ R2 = { t | t∈R1, sau t∈R2 } t -tuplu
Simbol
R1 R2 R = OR (R1, R2)
R = APPEND (R1, R2)
∪ R = UNION (R1, R2)
Exemplu: Model3 = Model1 ∪ Model2

R3
Model1 Firma Culoare Model2 Firma Culoare
FIAT Roşu BMW Roşu
BMW Roşu FIAT Alb
FIAT Alb BMW Alb
BMW Alb VW Alb
VW Alb

Model3 Firma Culoare


FIAT Roşu
BMW Roşu
VW Alb
FIAT Alb
BMW Alb
C Structuri de date şi programare structurată 87

¾ Intersecţia
Notaţii: R = R1 ∩ R2 = { t | t∈R1, şi t∈R2 } t -tuplu
Simbol
R1 R2 R = AND (R1, R2)
R = INTERSECT (R1, R2)

Exemplu: Model3 = Model1 ∩ Model2
R3
Model1 Firma Culoare Model2 Firma Culoare
FIAT Roşu BMW Roşu
BMW Roşu FIAT Alb
FIAT Alb BMW Alb
BMW Alb VW Alb
VW Alb

Model3 Firma Culoare


BMW Roşu
BMW Alb
FIAT Alb
VW Alb
¾ Diferenţa
Notaţii: R = R1  R2 = { t | t∈R1, şi t∉R2 } t -tuplu
Simbol
R1 R2 R = MINUS (R1, R2)
R = REMOVE (R1, R2)
 R = DIFF (R1, R2)

R3
Exemplu: Model3 = Model1  Model2

Model1 Firma Culoare Model2 Firma Culoare


FIAT Roşu BMW Roşu
BMW Roşu FIAT Alb
FIAT Alb BMW Alb
BMW Alb VW Alb
VW Alb
88 C Structuri de date şi programare structurată

Model3 Firma Culoare


FIAT Roşu

C Operaţii relaţionale speciale

¾ Produsul cartezian
Simbol
R1 R2 Notaţii: R = R1 X R2= {(t1, t2)|t1∈R1, t2∈R2 } t -tuplu
R = PROD (R1, R2)
X R = TIMES (R1, R2)

R3 Exemplu: Auto = Model X Tip

Model Firma Culoare Tip An CP


FIAT Roşu 1997 60
BMW Roşu 1998 75
VW Alb

Auto Firma Culoare An CP


FIAT Roşu 1997 60
BMW Roşu 1997 60
VW Alb 1997 60
FIAT Roşu 1998 75
BMW Roşu 1998 75
VW Alb 1998 75
C Structuri de date şi programare structurată 89

¾ Selecţia
Simbol
R
Notaţii: S = σ condiţie (R)
S = SELECT (R, condiţie)
Condiţie S = RESTRICT (R, condiţie)
Exemplu: Auto1 = σ Culoare=Alb (Auto)
S

Auto Firma Culoare An CP


FIAT Roşu 1997 60
BMW Roşu 1997 60
VW Alb 1997 60
FIAT Roşu 1998 75
BMW Roşu 1998 75
VW Alb 1998 75

Culoare=Alb

Auto1 Firma Culoare An CP


VW Alb 1997 60
VW Alb 1998 75
¾ Proiecţia
Simbol
R Notaţii:
P = Π Atrib1, Atrib2, ... Atribn (R)
Atribute P = PROJECT (R, Atrib1, Atrib2, ... Atribn)
P = P(R, Atrib1, Atrib2, ... Atribn)
Exemplu: Culori = Π Firma, Culoare (Auto)
P

Auto Firma Culoare An CP


FIAT Roşu 1997 60
BMW Roşu 1997 60
VW Alb 1997 60
FIAT Roşu 1998 75
BMW Roşu 1998 75
VW Alb 1998 75
90 C Structuri de date şi programare structurată

Firma,
Culoare

Culori Firma Culoare


FIAT Roşu
BMW Roşu
VW Alb

¾ Joncţiunea

Determină concatenarea unor tupluri di R1 cu tupluri din R2 (se


concatenează acele tupluri din R1 şi R2 care satisfac o anumită
condiţie specificată explicit în cadrul relaţiei).
Notaţii:
Simbol
R1 R2 J = R1 >< R2
operator
condiţie
Atribut in R1 Atribut in R2
J = JOIN (R1, R2, condiţie)

R3
Exemplu: Modele = Auto >< Tip
Culoare
Observaţie: Această operaţie poate fi echivalată în felul următor:
J = R1 >< R2 = σ condiţie (R1 X R2)

Auto Firma Culoare Tip Culoare An


FIAT Alb Alb 2001
BMW Alb Roşu 2002
VW Roşu Verde 2003

=
Culoare

Modele Firma Culoare An


FIAT Alb 2001
BMW Alb 2001
VW Roşu 2002
C Structuri de date şi programare structurată 91

C 3.4. Elementele unei baze de date

C 3.4.1. Definirea noţiunii de „bază de date”

Definirea noţiunii de bază de date trebuie să ţină cont de


următoarele elemente:

• gruparea datelor în fişiere de date;


BAZA DE DATE
• descrierea legăturilor (asocierilor) între
fişiere (fişier de descriere globală a
Fişiere de date
datelor);
• suportul fizic (hardware) pentru
Fişier de descriere globală
conservarea şi prelucrarea interactivă a
datelor;
• sistemul de programe pentru descrierea
structurii datelor astfel încât să fie Sistem de gestiune al
posibilă actualizarea şi securizarea bazei de date

acestora (Sistemul de Gestiune a Bazelor


de Date = SGBD); Aplicaţia 1 Aplicaţia 2

• Utilizatorii bazei de date.

Utilizatori

Ideea principală este legată de necesitatea accesului oricărui


utilizator la date, ceea ce impune realizarea independenţei
programelor (aplicaţiilor) faţă de date şi a datelor faţă de programe.
Conceptul de „bază de date” a apărut în 1969 cu ocazia
prezentării raportului CODASYL în cadrul unei conferinţe legate de
folosirea limbajelor de gestiune a datelor.

 Definiţie
Baza de date este un ansamblu de date stocate în unul sau mai
multe fişiere de date, aflate în interdependenţă, împreună cu
descrierea datelor şi a relaţiilor între ele.
92 C Structuri de date şi programare structurată
Baza de date, astfel definită, trebuie să îndeplinească
următoarele condiţii:
• structura bazei de date trebuie să fie astfel concepută
încât să asigure informaţiile necesare şi suficiente de
acces;
• să asigure o redundanţă minimă şi controlată a datelor;
• să asigure accesul rapid la datele stocate;
• să asigure independenţa datelor faţă de programele de
prelucrare şi invers.

C 3.4.2. Criterii de clasificare a bazelor de date

o după modelul folosit: ierarhice, reţele, relaţionale, orientate


obiect;
o după aria de răspândire: locale, centralizate, distribuite;
o după orientare: generalizate, specializate;
o după limbajele utilizate: autonome (limbaje proprii), cu
limbaj gazdă, mixte.

Nivelurile de organizare ale bazelor de date

o Nivelul 1 = nivelul logic Structura logica a aplicaţiilor

o Nivelul 2 = nivelul conceptual Structura conceptuală a


bazelor de date
o Nivelul 3 = nivelul fizic Structura fizică a bazelor de
date

C 3.4.3. Sisteme de gestiune a bazelor de date (SGBD)

Sistemul de gestiune al bazelor de date reprezintă soft-ul


propriu-zis al acestora care asigură realizarea următoarelor activităţi:
• definirea structurii bazei de date,
• încărcarea datelor în baza de date,
• accesul la date (interogarea, actualizarea),
C Structuri de date şi programare structurată 93

• întreţinerea bazei de date (ştergeri, adăugări, modificări de


date, refacerea bazei de date în caz de incident,
• reorganizarea bazei de date (restructurarea şi modificarea
strategiei de acces),
• securizarea datelor.

Rezultă că sistemul de gestiune al bazelor de date este un


sistem complex de programe care asigură interfaţa între o bază de
date şi utilizatorii acesteia.

C 3.4.4. Funcţiile unui SGBD

¾ Funcţia de descriere a datelor permite definirea structurii bazei


de date la nivel logic, conceptual şi fizic stabilind:
o atributele (câmpurile) bazei de date,
o legăturile dintre date,
o criteriile de validare a datelor,
o metodele de acces la date,
o aspectele referitoare la asigurarea integrităţii şi
confidenţialităţii datelor.

¾ Funcţia de manipulare a datelor este cea mai complexă şi


realizează următoarele activităţi:
o crearea bazei de date,
o adăugarea de noi înregistrări,
o ştergerea unor înregistrări,
o modificare conţinutului unor înregistrări,
o căutarea, ordonarea.

¾ Funcţia de utilizare a datelor asigură mulţimea interfeţelor


necesare pentru comunicarea cu utilizatorii bazei de date.
Categoriile de utilizatori sunt:
o utilizatorii neinformaticieni („liberi” sau conversaţionali)
care utilizează baza de date într-o formă simplificată fiind de
fapt destinatarii constituirii unei baze de date;
94 C Structuri de date şi programare structurată
o utilizatorii programatori care utilizează limbajele de
programare pentru realizarea procedurilor practice de
exploatare;
o administratorii bazei de date cu rol în ceea ce priveşte
menţinere bazei de date în parametrii ei de funcţionalitate.

¾ Funcţia de administrare este de competenţa administratorilor


bazei de date.

C3.4.5. Sisteme de gestiune a bazelor de date relaţionale

Organizaţia americană de norme TRG (Realtional Task Group) a


definit termenul de „relaţionalitate”. Acesta propune un ansamblu de
criterii care să definească noţiunea de SGBD minimal relaţional şi
total relaţional. Creatorul modelului relaţional, E.F. Codd a propus 12
criterii de definire a SGBD-urilor din punct de vedere al relaţionalităţii.

C SGBD minimal relaţional

1. Structura tabelului de date:


Toate datele unei baze de date sunt reprezentate prin valori în
tabele.
2. Pointer-i (puncte de intrare) invizibili:
Punctele de intrare ale tabelului de date sunt invizibili pentru
utilizator.
3. Operatori de bază:
SGBD-ul trebuie să implementeze operaţiile de selecţie, proiecţie
şi joncţiune (fără nici o restricţie).

C SGBD total relaţional

Un SGBD devine total reaţional dacă la cele trei criterii enunţate


anterior se adaugă următoarele două:
4. Operatori:
SGBD-ul suportă toate operaţiile algebrei relaţionale.
C Structuri de date şi programare structurată 95

5. Restricţii:
SGBD permite respectă regula de unicitate a cheii şi regula de
restricţie referenţială.

C Regulile lui Codd

1. Regula privind gestionarea unui SGBDR:


Toate funcţiile de manipulare a unui SGBD au ca unitate de
informaţie relaţia (tabelul).
2. Regula privind garantarea accesului la date:
Fiecare element al unui SGBD poate fi accesat într-o manieră
unică cu ajutorul numelui relaţiei, numelui atributului şi a valorii cheii.
3. Regula privind valorile „null” :
SGBD trebuie să permită declararea şi manipularea sistematică a
valorilor de null cu semnificaţia unor date lipsă sau inaplicabile.
4. Regula privind metadatele (dicţionarul):
Descrierea elementelor unei baze de date trebuie să se facă, la
nivel logic, în aceeaşi manieră cu descrierea datelor propriu-zise.
Dicţionarul este o bază de date specifică (fişier de descriere globală a
datelor) care permite descrierea, la nivel general, a tabelelor de date în
scopul manipulării şi interogării acestora.
5. Regula privind limbajele de programare utilizate:
Un SGBDR trebuie să facă posibilă utilizarea mai multor limbaje
de programare. dintre care cel puţin unul permite:
o definirea tabelelor de date şi a tabelelor de date virtuale;
o manipularea datelor;
o definirea restricţiilor de integritate;
o definirea regulilor de acces;
o precizarea limitelor tranzacţiilor.
6. Regula privind actualizarea datelor:
Tabelele de date virtuale (acele tabele construite pe baza
tabelelor de date existente) trebuie să fie efectiv actualizabile.
7. Regula privind manipularea datelor (inserări,
modificări, ştergeri):
96 C Structuri de date şi programare structurată
SGBD-ul trebuie să menţină o stare coerentă a datelor din punct
de vederea al manipulării lor (regăsire, modificare, ştergere, inserare).
8. Regula privind independenţa fizică a datelor:
Programele de aplicaţie trebuie să fie independente de modul şi
de suporturile de stocare a datelor.
9. Regula privind independenţa logică a datelor:
Programele de aplicaţii trebuie să fie independente de
modificările semantice ale tabelelor bazei de date.
10. Regula privind restricţiile de integritate a datelor:
Limbajul de programare utilizat trebuie să definească restricţiile
de integritate ale datelor şi trebuie să fie le memoreze în fişierul de
descriere globală (catalogul) a datelor.
11. Regula privind distribuirea geografică a datelor:
SGBDR trebuie să permite manipularea datelor indiferent că
bazele de date sunt dispuse în acelaşi loc (centralizate) sau dispuse în
locuri diferite (distribuite).
12. Regula privind prelucrarea datelor la nivel de bază:
Dacă SGBDR posedă un limbaj de programare de nivel scăzut,
orientat pe prelucrarea de tupluri (înregistrări) şi nu pe prelucrarea la
nivel de relaţie, acesta nu trebuie utilizat pentru a face exprimări
relaţionale.

C 4. Limbaje algoritmice

Limbajul algoritmic este un sistem de notare în care ideile sunt


exprimate mai puţin formal, sistem utilizat în procesul de dezvoltare a
algoritmilor. Acesta permite folosirea unor instrucţiuni care exprimă
condensat structurile sintactice şi semantice utilizate cel mai frecvent
şi câteva reguli simple de aliniere a textului scris. Trebuie precizat
faptul că limbajul algoritmic nu este conceput ca un limbaj de
programare, are puţine reguli sintactice, lăsând o mare libertate de
exprimare a acţiunilor algoritmilor.

Principalele elemente ale limbajului algoritmic sunt datele şi


instrucţiunile.
C Structuri de date şi programare structurată 97

C 4.1. Datele

Datele pot fi clasificate după mai multe criterii:


C Criteriul naturii datelor:
ƒ date numerice: întregi, reale şi complexe
ƒ date logice (booleene)
ƒ date de tip text (şir de caractere)

C Criteriul variabilităţii
ƒ constante - nu se modifică în intervalul de timp destinat
execuţiei programului:
- constante numerice (numere întregi şi reale
reprezentate în mod uzual);
- constante booleene (logice), cu valori de
adevărat (true) sau fals (false);
ƒ variabile - se modifică pe durata derulării programului
(se poate vorbi de valori iniţiale, intermediare şi finale).
Acest grup de date este pus în corespondenţă cu anumiţi
identificatori.

C Criteriul câmpului de acţiune


ƒ date cu caracter global care pot fi utilizate din orice
punct al programului. Acestea se definesc şi li se alocă
memorie o singură dată.
ƒ date cu caracter local ce nu pot fi folosite decât în zona
de program (procedură sau funcţie) în care au fost
definite.

C Criteriul alocării memoriei


ƒ date statice - alocarea memoriei se rezolvă în faza de
compilare.
ƒ date dinamice - alocarea memoriei se face în timpul
execuţiei programului.

C Criteriul dispunerii în memoria internă


98 C Structuri de date şi programare structurată
ƒ date dispuse în zone contigue care permit localizarea
uneia din ele cunoscând o adresă şi o lungime.
ƒ date dispersate în memorie.

C Criteriul construirii tipurilor


ƒ date de tip fundamental care sunt implementate în
fiecare limbaj de programare (ex. tipul întreg, real,
caracter, boolean).
ƒ date de tip derivat alcătuite din unul sau mai multe
tipuri fundamentale şi care sunt definite în timpul
construirii programelor.

Asupra datelor se acţionează folosind operatori de calcul în


funcţie de tipul şi natura datelor:
o pentru date numerice
- operatorii aritmetici: adunare, scădere, înmulţire, împărţire,
notaţi +, -, *, /, div (împărţirea pentru numere întregi),
mod (împărţire modulo)
- operatorii relaţionali (=, <>, <, >, <=, >)
o pentru date logice operatorii de disjuncţie (or), conjuncţie
(and) şi negaţie (not)
o pentru şiruri de caractere operatorii de concatenare şi
comparare (bazată pe ordinea lexicografică).

C 4.2. Instrucţiunile limbajului algoritmic

CInstrucţiunea de atribuire:

variabilă = expresie

CInstrucţiunile de citire/scriere (read/write):

citeşte lista de variabile

scrie lista de variabile


C Structuri de date şi programare structurată 99

CInstrucţiunea de oprire:

stop

CInstrucţiunea de ramificare (if … then … else …):

dacă condiţie atunci


secvenţa 1
altfel
secvenţa 2

CInstrucţiunea cu ramificare redusă (if … then …):

dacă condiţie atunci secvenţa

CInstrucţiunea repetitivă condiţionată anterior (ciclul cu test


iniţial, while … do …):

cât timp condiţie


execută secvenţa
Se execută pentru condiţie adevărată.

CInstrucţiunea repetitivă condiţionată posterior (ciclul cu test


final, repeat ... until):

repetă
secvenţa
până condiţie
Se execută, cel puţin o dată, pentru condiţie adevărată.

CInstrucţiunea repetitivă cu număr finit de paşi (ciclul cu


contor, for … do …):

pentru contor = valoare iniţială, valoare finală, pas


execută secvenţa
100 C Structuri de date şi programare structurată
CInstrucţiunea cu ramificare multiplă (case … of … else):

alege expresie dintre


condiţie 1 : secvenţa 1
condiţie 2 : secvenţa 2
....................
condiţie n : secvenţa n
rest secvenţa n+1

C 4.3. Programare modulară. Subprograme

Subprogramele reprezintă o secvenţă de operaţii executate în


scopul rezolvării unei probleme. Aceeaşi secţiune din algoritm
întâlnită în mai multe puncte ale acestuia, poate fi scrisă o singură
dată şi apelată de câte ori este nevoie.

Utilizarea subprogramelor conduce la creşterea eficienţei


activităţii de programare, astfel încât părţi ale algoritmului pot fi
proiectate, codificate şi testate independent una faţă de alta. Se pot
construi mult mai uşor algoritmi cu complexitate mare, utilizând
module deja proiectate şi verificate. Aceasta sporeşte fiabilitatea
programelor şi reduce efortul de programare. Subprogramele pot fi
construite sub două forme: proceduri şi funcţii.

C 4.3.1. Proceduri

Definire: procedura nume procedură (parametrii formali)


secvenţa
sfârşit

Apel: execută nume procedură (parametrii efectivi)


C Structuri de date şi programare structurată 101

C 4.3.2. Funcţii

Definire: funcţia nume funcţie (parametrii formali)


secvenţa
sfârşit

Apel: În cadru unor relaţii de calcul:


nume funcţie (parametrii efectivi)

 Observaţii
• O procedură sau o funcţie poate avea un număr oarecare de
parametrii (eventual nici unul).
• Între parametrii formali şi cei efectivi se realizează o
corespondenţă biunivocă, în sensul că parametri actuali şi cei
efectivi trebuie să corespundă ca număr şi tip.
• Apelul funcţiei este considerat ca un operand al expresiilor.
Lista de parametrii formali conţine doar parametri de intrare,
singurul parametru de ieşire fiind chiar numele funcţiei.

C 4.3.3. Iterativitate şi recursivitate

Iterativitatea este procesul prin care rezultatul este obţinut ca


urmare a execuţiei repetate a unui set de operaţii, de fiecare dată cu
alte valori de intrare. Numărul de iteraţii poate fi necunoscut sau
cunoscut, dar determinabil pe parcursul execuţiei. Metoda de
repetivitate este cunoscută sub numele de ciclu (loop) şi poate fi
realizată prin utilizarea următoarelor structuri repetitive: ciclul cu test
iniţial, ciclul cu test final, ciclul cu număr finit de paşi. Indiferent ce
fel de structură iterativă se foloseşte este necesar ca numărul de
iteraţii să fie finit.

Recursivitatea este procesul iterativ prin care valoarea unei


variabile se determină pe baza uneia sau a mai multora dintre
propriile ei valori anterioare. Structurile recursive reprezintă o
alternativă de realizare a proceselor repetitive fără a utiliza cicluri.
102 C Structuri de date şi programare structurată

Aplicaţii
C1. Definirea şi apelul unei funcţii de calcul.
> Formularea problemei.
Să se calculeze:
n!
C nk =
k!(n − k )!

> Prezentarea algoritmului.

Definirea funcţiei

funcţia FACT(m)
FACT = 1
pentru i= 1, m, 1
execută FACT=FACT*i
sfârşit

Apelarea funcţiei

citeşte n,k
c=FACT(n)/FACT(k)/FACT(n-k)
scrie c

stop

C2. Calcul recursiv.


> Formularea problemei.
Se consideră polinomul
P(x) = an .xn + an-1. xn-1 + ... a1 .x + a0
care poate fi scris şi sub forma
P(x) = ( ... (an x + an-1) .x + ... a1) . x + a0
unde ai ∈ R, i = 0, 1, ... , n
de unde rezultă următoarele relaţii de recurenţă:
P = an
P = P.x + ai , unde i = n-1, n-2, ... , 1, 0
C Structuri de date şi programare structurată 103

> Prezentarea algoritmului.


citeşte n, x, (a[i], i = 0,1, … ,n)
P = a[n]; k = n-1
cât timp k ≥ 0
execută P = P*x + a[k];
k = k-1
scrie P

stop

C 3. Determinarea minimului şi maximului elementelor unui


vector.
> Formularea problemei.
Se dă vectorul A = (a1, a2, … ,an). Să se determine:
min = minim (a1, a2, … ,an) şi max = maxim(a1, a2, … ,an)

> Metoda 1
Se execută comparări succesive începând cu primul element.
> Prezentarea algoritmului
citeşte n, (a[i], i=1, … ,n)
min=a[1]
max=a[1]
pentru i= 2, n, 1
execută dacă a[i] < min atunci min=a[i]

dacă a[i] > max atunci max=a[i]


scrie min, max

stop
> Metoda 2
În funcţie de paritatea lui n, se începe cu una din următoarele
iniţializări:
- dacă n par ⇒ min = minim (a1, a2), max = maxim (a1, a2)
- dacă n impar ⇒ min = a1, max = a1
Se consideră perechi succesive de elemente de forma:
(ak, ak+1) unde:
k = 3,5, ... ,n-1 pentru n par
k = 2,4, ... ,n-1 pentru n impar.
Se compară min cu minim(ak, ak+1) şi max cu maxim (ak, ak+1)
actualizându-se eventual valorile lui min şi max.
104 C Structuri de date şi programare structurată
> Prezentarea algoritmului
citeşte n, (a[i], i = 1, … ,n)

dacă n mod 2 = 0 atunci


dacă a[1] < a[2]

atunci min=a[1]; max=a[2]

altfel min=a[2]; max=a[1]


k=3
altfel min = a[1]; max = a[1]; k = 2
cât timp k ≤ n-1
execută

dacă a[k] < a[k-1]


atunci
dacă a[k]<min atunci min=a[k]

dacă a[k+1]>max atunci max=a[k+1]

altfel
dacă a[k+1]<min atunci min=a[k+1]

dacă a[k] > max atunci max = a[k]


k=k+2
scrie min, max

stop

C4. Problema căutării.


> Formularea problemei.
Fie A = (a1, a2, ...an) şi x o valoare. Se cere să se determine
dacă x se află printre elementele vectorului A.

Se consideră A având elementele în ordine descrescătoare


(a1 ≤ a2 ≤ ... ≤ an) şi se aplică algoritmul de căutare binară.
Algoritmul se bazează pe metoda „divide et impera”. Se compară x cu
elementul din mijloc, adică ai, unde i=[(n+1)/2].
- dacă ai = x ⇒ căutarea se încheie cu succes
- dacă ai ≠ x ⇒ se caută în secvenţa:
{a1, a2, ... ,ai-1} dacă x < ai,
{ai+1, ai+2, ... ,an} dacă x > ai
C Structuri de date şi programare structurată 105

Soluţia va fi exprimată sub forma:

(1, p), dacă x = a p , p ∈{1, 2, ... , n}


(cod , p) = 
(0, p), dacă a p−1 < x < a p , p ∈{1, 2, ..., n + 1}

unde: a0 = -∞, an+1 = +∞

> Prezentarea algoritmului


citeşte n, x, (a[i], i=1, … ,n)
p=1; u=n; cod=0

cât timp (p ≤ u) şi (cod=0)


execută i= (p+u)/2
dacă a[i] = x atunci cod=1; p=i

altfel dacă a[i] < x atunci p=i+1

altfel u=i-1
scrie cod, p

stop
> Test: A = (3, 5, 7, 8, 11, 15)
- pentru x=7 ⇒ cod=1, p=3
- pentru x=10 ⇒ cod=0, p=5
- pentru x=2 ⇒ cod=0, p=1

C5. Problema sortării.


> Formularea problemei.
Dat fiind vectorul A = (a1, a2, ...an) problema sortării constă în
a ordona crescător elementele acestui vector. Se prezintă mai
multe metode de sortare.

> Metoda 1: Sortarea prin interschimbare.


Metoda constă în modificări succesive de forma ai ↔ ai+1 până
când elementele vectorului apar în ordine crescătoare. Sortarea
se termină când, pornind cu perechea (a1, a2) şi finalizând cu
perechea (an-1, an), nu s-a efectuat nici o interschimbare.
106 C Structuri de date şi programare structurată
> Prezentarea algoritmului
citeşte n, (a[i], i=1, … ,n)

repetă
gata=true
pentru i= 1, n-1, 1
execută
dacă a[i] > a[i+1] atunci w=a[i]
a[i]=a[i+1]
a[i+1]=w
gata=false

până gata

scrie (a[i], i=1, … ,n)

stop

> Metoda 2: Sortarea prin numărare.


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

> Prezentarea algoritmului


citeşte n, (a[i], i=1, … ,n)

pentru i= 1, n, 1
execută k[i]=0
pentru j= 2, n, 1
execută pentru i= 1, j-1, 1
execută
dacă a[i] < a[j]
atunci k[j]=k[j]+1

altfel k[i]=k[i]+1
pentru i= 1, n, 1
execută b[k[i]+1]=a[i]
scrie (b[i], i=1, … ,n)

stop
C Structuri de date şi programare structurată 107

> Metoda 3: Sortarea prin inserţie directă.


Se consideră pe rând fiecare element al şirului şi se inserează în
subşirul ordonat creat anterior din elementele precedente.
Fie j cu proprietatea a1 ≤ a2 ≤ ... ≤ aj-1. Se compară succesiv
aj cu aj-1, aj-2, ... până când se ajunge la primul ai cu ai ≤ aj.
Ca urmare se va insera aj după ai. Operaţia de inserare implică
deplasarea spre dreapta a unei secvenţe.

> Prezentarea algoritmului


citeşte n, (a[i], i=1, … ,n)

pentru j= 2, n, 1
execută x=a[j]; k=0; gata=false; i=j-1
repetă
dacă a[i] ≤ x atunci k=i; gata=true

altfel a[i+1]=a[i]; i=i-1


până (i<1) sau gata
a[k+1]=x
scrie (a[i], i=1, … ,n)

stop

> Metoda 4: Sortarea prin selecţie.


Metoda constă în a plasa la fiecare pas un element al vectorului
pe poziţia sa finală. La primul pas este determinat:
ak = minim (a1, a2, ... , an)
şi este efectuată interschimabarea a1 ↔ ak, deci cel mai mic
element este plasat pe poziţia sa finală.
În general la pasul i (i = 1,2, ... , n-1) se determină
ak = minim (ai, ai+1, ... , an)
şi se efectuează interschimbarea ai ↔ ak

> Prezentarea algoritmului


citeşte n, (a[i], i=1, … ,n)
i=1
repetă
k=i; min=a[k]; j=k
repetă
dacă min > a[k+1] atunci min=a[k+1]; j=k+1
108 C Structuri de date şi programare structurată
k=k+1
până k=n
a[j]=a[i]; a[i]=min; i=i+1
până i=n

scrie (a[i], i=1, … ,n)

stop

> Metoda 5: Sortarea rapidă, quicksort (C. A. Hoare).


Metoda oloseşte procedeul „divide et impera”. Dacă într-o
secvenţă (ap, ap+1, ... , aq), prin interschimbări de elemente ale
secvenţei se poziţionează ap pe locul k, atunci se ajunge la
situaţia:
as ≤ ak ≤ ai pentru s ∈ {p, ... ,k-1} şi t ∈ {k+1, ... , q}
În continuare se pot sorta secvenţele:
(ap, ... , ak-1) şi (ak+1, ... , aq) independent una de alta.

> Prezentarea algoritmului


citeşte n, (a[i], i=1, … ,n)
s=1; stânga[1]=1; dreapta[1]=n
repetă
st=stânga[s]; dr=dreapta[s]
s=s-1; i=st; j=dr; x=a[(i+j)/2]
repetă
cât timp a[i]<x
execută i=i+1
cât timp x<a[j]
execută j=j-1
dacă i≤j atunci w=a[i]; a[i]=a[j]; a[j]=w;
i=i+1; j=j-1
până i>j

dacă st<j atunci s=s+1; stânga[s]=st; dreapta[s]=j

dacă i<dr atunci s=s+1; stânga[s]=i; dreapta[s]=dr


până s=0

scrie (a[i], i=1, … ,n)

stop
C Structuri de date şi programare structurată 109

C6. Problema interclasării.


> Formularea problemei.
Fie A = (a1, a2, ...am) şi B = (b1, b2, ...bn) doi vectori având
elementele ordonate crescător. Se cere să se interclaseze cele
două şiruri, adică să se construiască un vector:
C = (c1, c2, ...cm+n)
care să conţină atât elementele lui A cât şi ale lui B în ordine
crescătoare.

Dacă se compară ai cu bj sunt posibile două situaţii:


- dacă ai<bj, se introduc în vectorul C elementul ai şi
toate elementele care îi succed lui ai în vectorul A şi
sunt mai mici decât bj;
- dacă bj<ai, atunci se introduc în C atât elementul bj
cât şi elementele care îi succed lui bj în vectorul B şi
sunt mai mici decât ai.
În momentul în care un vector este epuizat, elementele
neparcurse ale celuilalt vector sunt introduse în C şi algoritmul
se termină.

> Prezentarea algoritmului


citeşte m, n, (a[i], i=1, … ,m) (b[i], j=1, … ,n)
i=1; j=1; k=0;
cât timp (i≤m) şi (j≤n)
execută k=k+1
dacă a[i]≤b[j] atunci c[k]=a[i]; i=i+1

altfel c[k]=b[j]; j=j+1


dacă i>m atunci pentru s=j, n, 1
execută k=k+1; c[k]=b[s]
altfel pentru s=i,m,1
execută k=k+1; c[k]=a[s]

scrie (c[k], k=1, … ,m+n)


110 C Structuri de date şi programare structurată
C 5. Limbaje de programare

C 5.1. Elemente de bază ale limbajelor de programare

Orice program descrie o transformare a unei mulţimi de valori


iniţiale, numite date de intrare sau fişiere de intrare, într-o altă
mulţime de valori numite rezultate, sau date de ieşire sau fişier de
ieşire. Între noţiunea de program şi noţiunea de algoritm există o
strânsă legătură. Programul adaptează de fapt un algoritm la
necesităţile calculului automat.

Folosirea programelor devine posibilă prin activarea


componentei numită program de translatare, care traduce şi
converteşte în una sau mai multe etape un program scris într-un
limbaj de programare, numit program sursă într-un şir de
instrucţiuni executabile, în format binar, numit program obiect.
Există două tipuri de programe translatoare: interpretoare şi
compilatoare.

Programele interpretoare generează cod după fiecare


instrucţiune sursă, înainte de executarea grupului de instrucţiuni.
Pentru programele compilatoare translatarea se realizează pe
întreg grupul de instrucţiuni, o singură dată, rezultând un program
obiect care reprezintă forma binară a programului iniţial.
Ca realizare practică, este de remarcat că un interpretor ocupă
memoria internă şi pe durata execuţiei programului în timp ce, în
cazul compilării, o dată generat programul obiect, compilatorul nu
mai ocupă spaţiu de memorie.

Programele sursă sunt constituite dintr-o succesiune de


simboluri (caractere), numite entităţi, care sunt admise în scrierea
programelor şi cărora li se asociază o definiţie sintactică. În limbajele
de programare se consideră drept entităţi: identificatorii, constantele,
cuvintele cheie, operatorii. etc. Pentru a se genera forma obiect se
apelează, succesiv, mai multe resurse ale programului translator:
C Structuri de date şi programare structurată 111

PROGRAM
SURSĂ

Analizorul
lexical Analizorul
sintactic Generatorul
de cod

PROGRAM
OBIECT

1o Analizorul lexical primeşte la intrare şirul simbolurilor şi


produce la ieşire un şir de entităţi.
2o Analizorul sintactic, având la intrare şirul de entităţi,
verifică dacă acestea sunt corecte din punct de vedere al definiţiilor
sintactice.
3o Generatorul de cod admite la intrare reprezentarea
structurii sintactice a programului sursă şi produce translatarea
programului în instrucţiuni executabile direct de calculator.

Pentru constituirea formei textuale a programului sursă se au în


vedere următoarele elemente (legate de teoria limbajelor formale):

… vocabularul (alfabetul) - o mulţime nevidă, finită de


simboluri (caractere).
… fraza - o secvenţa finită de simboluri în conformitate cu
vocabularul, luând eventual în considerare şi fraza vidă.
… limbajul - o mulţime de fraze pe vocabular.

Construirea frazelor în cadrul unui limbaj se face prin utilizarea


unui sistem generator numit gramatică. Oricare frază se poate
construi prin metode bine definite, folosind regulile gramaticii numite
producţii.

Programul este de fapt o frază corectă pe un vocabular.


112 C Structuri de date şi programare structurată
Limbajul de programare apare ca o mulţime de programe
alcătuite conform unor reguli - regulile gramaticale ale limbajului.

Frazele unui program reprezintă de fapt descrieri ale unui


algoritm de calcul.

Dezvoltarea limbajelor de programare a evoluat în strânsă


legătură cu dezvoltarea hardware-ului, rezultând următoarea
clasificare a acestora:
| limbaje în cod maşină (generaţia zero de limbaje), cu o
semantică şi o sintaxă specifică fiecărui calculator ;
| limbaje de asamblare (generaţia unu) în care operanzii şi
adresele sunt reprezentaţi prin mnemonice;
| Limbaje procedurale (de nivel înalt) - limbaje independente de
calculator (C, Pascal, Java, Basic, FoxPro, etc.);
| Limbaje neprocedurale (de nivel foarte înalt), specializate pe
tipuri de aplicaţii - rezolvă prescripţii şi nu instrucţiuni (SQL,
QBE, etc.).

Operaţiile de bază care intră în componenţa unui program


sunt:
| operaţia de citire a unei valori din fişierul de intrare şi
înregistrarea ei în memorie;
| operaţia de scriere a unei valori din memorie în fişierul de
ieşire;
| operaţia de atribuire prin care se atribuie unei variabile
(tot în memorie) o valoare calculată conform unei formule,
cu operatorii de calcul permişi.

Important este caracterul adaptiv al unui program care se


realizează într-o construcţie modulară şi structurată .
113 Bibliografie

Bibliografie
Chan M., Java, 1001 Secrete pentru programatori, Ed. Teora, 2001
Griffith S., Iasi A.

Cosma E. Informatică în economie, Ed. ExPonto, 2003

Davidescu N., Hotăran S., Produse program generalizabile în domeniul financiar –


Ivancenco V., ş.a. contabil, Ed. Didactică şi Pedagogică, Bucureşti, 1997

Levine J., Baroudi C. Internet pentru toţi, Ed. Teora, 1996

Lungu I., Bodea C., Baze de date. Organizare, proiectare şi implementare,


Bădescu G, Ioniţă C. Ed. All, 1995

Nossiter J. Utilizare Microsoft Excel 97, Ed. Teora,1998

PerkinsJ. Morgan B. SQL fără profesor în 14 zile, Ed. Teora 1998