Sunteți pe pagina 1din 144

Ministerul Educaiei al Republicii Moldova

Anatol Gremalschi
Sergiu Corlat
Andrei Braicov

Manual pentru clasa a

tiina
2015

-a

CZU 004 (075.3)


G 80

Elaborat n baza curriculumului disciplinar n vigoare i aprobat prin Ordinul ministrului educaiei
(nr. 399 din 25 mai 2015). Editat din mijloacele financiare ale Fondului special pentru manuale.
Comisia de evaluare: Gheorghe Chistrug, prof. colar, gr. did. superior, Liceul Teoretic Mihai Eminescu,
Drochia; Elena Doronina, prof. colar, gr. did. superior, Liceul Teoretic Natalia Gheorghiu, Chiinu; Svetlana
Rudoi, prof. colar, gr. did. superior, Liceul Teoretic Mihai Eminescu, Chiinu
Recenzeni: Tatiana Baciu, dr. n psihologie, Universitatea Pedagogic de Stat Ion Creang; Alexei Colbneac,
prof. universitar, ef catedr Grafic, Academia de Muzic, Teatru i Arte Plastice, maestru n arte;
Tatiana Cartaleanu, dr. n filologie, Universitatea Pedagogic de Stat Ion Creang
Acest manual este proprietatea Ministerului Educaiei al Republicii Moldova

Liceul/Gimnaziul______________________________________________________________________
Manualul nr.__________________________________________________________________________
Anul
de folosire

Numele de familie
i prenumele elevului

Anul
colar

Aspectul manualului
la primire

la restituire

1
2
3
4
5
Dirigintele controleaz dac numele elevului este scris corect.
Elevul nu trebuie s fac niciun fel de nsemnri n manual.
Aspectul manualului (la primire i restituire) se va aprecia cu calificativele: nou, bun, satisfctor, nesatisfctor.

Redactor: Mariana Belenciuc


Corector: Maria Cornesco
Redactor tehnic: Nina Duduciuc
Machetare computerizat i copert: Olga Ciuntu
ntreprinderea Editorial-Poligrafic tiina,
str. Academiei, nr. 3; MD-2028, Chiinu, Republica Moldova;
tel.: (+373 22) 73-96-16; fax: (+373 22) 73-96-27;
e-mail: prini@stiinta. asm.md; prini_stiinta@yahoo.com;
www.stiinta.asm.md
Toate drepturile asupra acestei ediii aparin ntreprinderii Editorial-Poligrafice tiina.
Editura se oblig s achite deintorilor de copyright, care nc nu au fost contactai, costurile
de reproducere a imaginilor folosite n prezenta ediie.
Descrierea CIP a Camerei Naionale a Crii
Gremalschi, Anatol
Informatic: Manual pentru clasa a 12-a/Anatol Gremalschi, Sergiu Corlat, Andrei Braicov; Min. Educaiei
alRep. Moldova. Ch.: .E.P. tiina, 2015 (Tipografia BALACRON SRL) 144 p.
ISBN 978-9975-67-984-8
004 (075.3)
Imprimare la Tipografia BALACRON SRL, str. Calea Ieilor, 10; MD-2069, Chiinu, Republica Moldova
Comanda nr. 643
ISBN 978-9975-67-984-8

Anatol Gremalschi, Sergiu Corlat, Andrei Braicov. 2010, 2015


.E.P. tiina. 2010, 2015

Cuprins
Partea I. Calcul numeric
Capitolul 1. Elemente de modelare
1.1. Noiune de model. Clasificarea modelelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Modelul matematic i modelarea matematic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3. Soluii analitice i soluii de simulare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4. Etapele rezolvrii problemei la calculator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Capitolul 2. Erori n calculul numeric
2.1. Numere aproximative. Eroarea absolut i relativ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2. Sursele erorilor de calcul. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Capitolul 3. Metode numerice de rezolvare a ecuaiilor algebrice i transcendente
3.1. Separarea soluiilor ecuaiilor algebrice i transcendente . . . . . . . . . . . . . . . . . . . . . . . 22
3.2. Metoda biseciei. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3. Metoda coardelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4. Metoda Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Capitolul 4. Metode numerice de calcul al determinanilor i rezolvarea sistemelor
de ecuaii liniare
4.1. Determinani numerici. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2. Metoda Cramer de rezolvare a sistemelor de ecuaii liniare . . . . . . . . . . . . . . . . . . . . . 41
4.3. Metoda Gauss de rezolvare a sistemelor de ecuaii liniare. . . . . . . . . . . . . . . . . . . . . . . 45
Capitolul 5. Integrarea numeric
5.1. Metoda dreptunghiurilor pentru calculul aproximativ al integralei definite. . . . . . . . . . 51
5.2. Variaii ale metodei dreptunghiurilor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.3. Formula trapezelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Partea a II-a. Baze de date
Capitolul 6. Concepte generale despre baze de date
6.1. Noiuni i concepte despre date i despre baze de date. . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.1.1. Date elementare i structuri de date. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.1.2. Baze de date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.2. Tipuri de baze de date. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Capitolul 7. Elaborarea i gestiunea bazelor de date
7.1. Elaborarea unei baze de date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
7.1.1. Aspecte generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
7.1.2. Proiectarea entitilor unei baze de date relaionale. . . . . . . . . . . . . . . . . . . . . . . . . 69
7.1.3. Principii de proiectare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
7.2. Sisteme de gestiune a bazelor de date (SGBD). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
7.2.1. Concepte generale despre sisteme de gestiune a bazelor de date. . . . . . . . . . . . . . 72
7.2.2. Sistemul de gestiune a bazelor de date Microsoft Office Access. . . . . . . . . . . . . . . 73
7.2.3. Structura bazei de date Liceu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Capitolul 8. Tabelele principalele obiecte ale unei baze de date
8.1. Crearea tabelelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8.1.1. Crearea structurii unui tabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8.1.2. Proprietile cmpurilor tabelului. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8.2. Stabilirea relaiilor dintre tabele. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
8.3. Modificarea tabelelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
8.3.1. Introducerea i editarea datelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

8.3.2. Modificarea aspectului tabelului. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84


8.3.3. Modificarea structurii tabelului. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
8.3.4. Caracteristica Lookup a cmpurilor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
8.4. Crearea expresiilor Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
8.4.1. Operatori Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
8.4.2. Funcii Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Capitolul 9. Interogri
9.1. Noiuni generale despre interogri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
9.2. Interogri de selecie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
9.2.1. Criterii de selecie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
9.2.2. Interogri cu parametri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
9.3. Interogri de aciune. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
9.3.1. Interogri care genereaz tabele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
9.3.2. Interogri de excludere a unor nregistrri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
9.3.3. Interogri de modificare a unor nregistrri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
9.3.4. Interogri care adaug nregistrri n tabele existente. . . . . . . . . . . . . . . . . . . . . . . 99
9.4. Interogri de totalizare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
9.4.1. Interogri de creare a cmpurilor rezultante (calculate). . . . . . . . . . . . . . . . . . . . . 100
9.4.2. Interogri de grupare i totalizare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
9.4.3. Interogri ncruciate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Capitolul 10. Formulare i rapoarte
10.1. Formulare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
10.1.1. Crearea unui formular cu ajutorul programului de asisten. . . . . . . . . . . . . . . 103
10.1.2. Crearea sau modificarea formularelor n regimul Design View
(regim de proiectare). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
10.1.3. Subformulare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
10.2. Rapoarte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
10.2.1. Crearea unui raport cu ajutorul programului de asisten . . . . . . . . . . . . . . . . . 109
10.2.2. Modificarea rapoartelor n regimul Design View . . . . . . . . . . . . . . . . . . . . . . . . . 111
10.2.3. Crearea diagramelor n cadrul rapoartelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
10.3. ntreinerea bazelor de date (opional). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
10.3.1. Compactarea i repararea unei baze de date. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
10.3.2. Crearea cpiilor de rezerv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
10.3.3. Asigurarea securitii datelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Partea a III-a. Web design
Capitolul 11. Documente WEB
11.1. Noiuni i concepte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
11.2. Tipurile documentelor Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
11.3. Proiectarea i realizarea unui document Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
11.4. Crearea documentelor Web cu ajutorul aplicaiilor de oficiu . . . . . . . . . . . . . . . . . . 120
Capitolul 12. Limbajul HTML
12.1. Structura general a unui document HTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
12.1.1. Despre documente HTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
12.1.2. Structura general a unui document HTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
12.2. Formatarea textului. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
12.3. Liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
12.4. Referine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
12.5. Imagini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
12.6. Tabele. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

CAPITOLUL 1

ELEMENTE DE MODELARE
Dup studierea acestui capitol, vei fi capabili s:
descifrai sensul termenilor model, modelare;
clasificai modelele obiectelor, proceselor, fenomenelor;
utilizai i s elaborai modele matematice;
distingei soluiile analitice i cele de simulare;
explicai metodele de obinere a soluiilor analitice i a celor de simulare;
explicai interaciunea dintre modelul matematic, algoritm i program;
planificai procesul de rezolvare a problemei la calculator.

1.1. Noiune de model. Clasificarea modelelor


Imitarea unor procese, obiecte sau fenomene este caracteristic societii umane pe
tot parcursul istoriei sale. Primele desene, realizate de oamenii epocii de piatr pe pereii
peterilor, erau n acelai timp i primele ncercri de a reproduce obiectele i fenomenele
reale prin imagini (fig. 1.1).
Globul-machet al planetei noastre este i el o imitaie a unui corp real. El ne aduce
la cunotin date despre forma i micarea Terrei, amplasarea continentelor i oceanelor,
a rilor i oraelor (fig. 1.2). Darelementele machetei nu constituie n ntregime obiectul
iniial. Astfel, n cazul globului-machet avem de-a face doar cu un corp sferic, prin
centrul cruia trece o ax, care permite rotirea, iar pe suprafa avnd imprimate diverse
informaii despre planeta Pmnt. Globul-machet red anumite trsturi ale corpului

Fig. 1.1. Imagine zoomorf din paleolitic

Fig. 1.2. Globul-machet al Pmntului

cosmic real, dar se deosebete de el: difer dimensiunile, proprietile fizice, structura
etc. Globul-machet este o reprezentare simplificat a Terrei, care permite studierea doar
a anumitor particulariti ale ei este doarun model.
Modelul este un sistem material sau ideal, logico-matematic cu ajutorul cruia pot fi
studiate, prin analogie, proprietile i operaiile efectuate asupra sistemului iniial,
care, n general, este mai complex.

Modelele snt utilizate din cele mai vechi timpuri pentru examinarea fenomenelor
iproceselor complexe, de exemplu, moleculele, atomii, sistemul solar, universul n
ansamblu, un reactor atomic, un zgrie-nor etc. Un model reuit este mai comod pentru
cercetri dect obiectul real. Mai mult chiar, anumite obiecte i fenomene nici nu pot fi
studiate n original. De exemplu, snt greu de efectuat experimente ce in de economia
unei ri, snt imposibile experienele cu planetele sistemului solar, cele care presupun
revenirea n timp etc. Un alt aspect important al modelrii l constituie posibilitatea de
a pune n eviden doar acei factori, acele proprieti ale obiectului real, care snt eseniale
pentru obiectul studiat.
De asemenea, modelul permite instruirea n vederea utilizrii corecte a obiectului
real, verificnd diferite moduri de a reaciona pe modelul acestui obiect. Experienele cu
obiectul real pot fi imposibile sau foarte periculoase (durata mare a procesului n timp,
riscul de a deteriora obiectul). n cazurile cercetrii obiectelor dinamice, caracteristicile
crora depind de timp, o importan primordial capt problema prognozrii strii
obiectului sub aciunea unor anumii factori.
n general, un model bine construit permite obinerea unor cunotine noi despre
obiectul original supus cercetrii.
Procesul de construire a modelului se numete modelare.

Exist cteva tipuri de modelare, ce pot fi unite n dou grupe mari: modelarea mate
rial i modelarea ideal.
n cazul modelrii materiale, cercetarea originalului se efectueaz prin redarea cu
ajutorul unui alt obiect material, mai simplu dect cel real, denumit model, a caracte
risticilor geometrice, fizice, dinamice, funcionale de baz ale originalului. Exemple:
machetele cldirilor, avioanelor, automobilelor i ale vehiculelor militare etc.
n cazul modelrii ideale, cercetarea originalului se efectueaz prin reprezentarea
proprietilor lui cu ajutorul anumitor concepte, scheme, planuri, structuri, care exist
doar n imaginaia omului.
n general, modelarea ideal se bazeaz pe o concepie intuitiv despre obiectul cerce
trilor. De exemplu, experiena de via a fiecrui om poate fi considerat drept un model
personificat al lumii nconjurtoare. Atunci cnd modelarea nu este intuitiv i se folosesc
anumite simboluri, cum ar fi diverse scheme, grafice, formule, ea este numit simbolic.
n categoria modelelor simbolice un loc aparte l ocup modelarea matematic, n care
examinarea obiectului se realizeaz prin intermediul unui model formulat n termeni i
noiuni matematice, cu folosirea anumitor metode matematice. Un exemplu clasic al
modelrii matematice l constituie descrierea i cercetarea legilor de baz ale mecanicii
lui Newton cu ajutorul instrumentelor matematice.

Pentru studierea unui proces sau fenomen nu este suficient s fie construit modelul
respectiv. n general, modelul descrie anumite legiti, relaii, caracteristici ale originalu
lui, ns scopul modelrii const n obinerea, n baza informaiilor furnizate de model,
a unor date noi despre original.

ntrebri i exerciii
Explicai noiunea de model. Dai exemple de obiecte ale lumii nconjurtoare i modele ale

acestora. Pentru fiecare exemplu, indicai caracteristicile obiectului original, ce snt redate de
model.
Formulai definiia noiunii de model material. Dai exemple de modele materiale. Argumentai
necesitatea utilizrii modelrii materiale n diferite domenii ale tiinei i tehnicii.
Formulai definiia noiunii de model ideal. Exemplificai. Motivai necesitatea utilizrii mode
lelor ideale.
n anul 1911, cercettorul E. Rutherford a propus modelul planetar (nuclear) al ato
mului. Explicai sensul cuvntului model n contextul propunerii lui Rutherford,
precum i motivul pentru care el este numit planetar.
Explicai sensul urmtoarei afirmaii: Pictogramele interfeei grafice a utilizatorului reprezint
modele ale obiectelor prelucrate de produsele software.

1.2. Modelul matematic i modelarea matematic


Unul dintre scopurile de baz ale informaticii, ca tiin interdisciplinar, const n
elaborarea metodelor de rezolvare a problemelor complicate de cercetare i de calcul cu
ajutorul tehnicii computaionale. Iniial, informatica se dezvolta ca o ramur a mate
maticii aplicate. Primele probleme, abordate n cadrul informaticii, erau, de asemenea,
pur matematice, iar soluionarea lor se reducea la efectuarea unui volum mare de calcule
complexe. n prezent ns, informatica a devenit o tiin independent, cu propriile
metode i obiecte de cercetare, care se bazeaz pe legitile matematice. Informatica
studiaz i soluioneaz probleme complexe din domeniul matematicii, fizicii, chimiei,
biologiei, economiei, ecologiei, filologiei i alsociologiei. Dar, indiferent de domeniul
din care provine problema, n procesul desoluionare a ei, informatica se bazeaz pe
matematic. n consecin, pentru a dezlega o anumit problem, nainte de a utiliza
calculatorul propriu-zis, este necesar descrierea fenomenelor i proceselor care apar n
problema supus rezolvrii cu ajutorul noiunilor matematice. n particular, acestea pot
fi funcii, ecuaii, inecuaii, sisteme de ecuaii etc.
Modelul matematic reprezint descrierea unui proces sau a unui fenomen cu ajutorul
noiunilor matematice.

Exemplul 1: Se consider dou automobile. Unul dintre ele se mic rectiliniu, traiec
toria respectiv fiind definit prin ecuaia x = 1/2. Al doilea automobil se deplaseaz
pe o traiectorie circular, descris de o circumferin unitar cu centrul n originea
sistemului de coordonate. Se cere determinarea coordonatelor punctelor posibile de
impact ale automobilelor.

Abstractiznd problema, obinem


urmtoarea formulare: un punct se mic
pe otraiectorie dat de ecuaia x = 1/2.
Al doilea punct se mic pe o traiectorie
dat de ecuaia x2 + y2 = 1. Se cere s se
gseasc soluiile sistemului de ecuaii:

Grafic problema este reprezentat de


schema alturat.
Algoritmul de rezolvare e urmtorul:
1. Se consider x = 1/2.
2. Din ecuaia a doua a sistemului se calculeaz
.
3. Soluia problemei este

Exemplul 2: Pe o mas neted se afl o bil metalic, fixat de un arc (fig. 1.3). Arcul
se comprim, fr a-i deteriora elasticitatea, apoi se elibereaz. Se cere determinarea
coordonatei bilei peste t secunde.
Dac k coeficientul de elasticitate a arcului, m masa bilei, x mrimea deformaiei
arcului, atunci, n baza legii lui Hooke i a legii 2 a lui Newton, modelul matematic al
sistemului bilarc va avea forma:
ma = kx, unde a acceleraia.
Poziia bilei dup comprimarea arcului (deformaia iniial) se noteaz prin x0 (fig. 1.4).
Se cere determinarea poziiei bilei (mrimea deformaiei) peste t secunde. Pentru aceasta
modelul precedent se va transforma astfel nct s fie prezentat dependena valorii x
(a deformaiei) de timp. Pentru deformri mici i lipsa forei de frecare se va folosi legea
deplasrilor armonice
.
Formula dat permite determinarea poziiei bilei x (deformaia arcului) n orice moment
de timp t, n situaia n care snt cunoscute valorile k, m i x0.

Fig. 1.3. Starea iniial a sistemului

x0

Fig. 1.4. Starea sistemului dup comprimarea arcului

Folosind formula dedus mai sus, se poate rezolva problema general de determinare
a deformaiei n orice moment de timp cu ajutorul urmtorului program:
program cn01;
var
t, x0,k,m,x: real;
begin
readln(x0,k,m,t);
x:=x0*cos(sqrt(k/m*t));
writeln(x=, x:0:6);
end.

ntrebri i exerciii
Definii noiunea de model matematic. Este el oare un model material?
Indicai cteva domenii de utilizare a modelelor matematice. Argumentai necesitatea ntre
buinrii lor.

Motivai necesitatea transpunerii modelelor matematice n programe de calculator i a folosirii


acestora din urm.

Scriei un program care, pentru problema din exemplul 2, va calcula deformaia arcului x cu
intervale de o secund, din momentul iniial pn n momentul t (t are o valoare ntreag).
Valorile x0, k, m, t se vor introduce de la tastatur.
Izotopul radioactiv plutoniu-235 are perioada de njumtire de 26 de minute. n aceast perioad
jumtate din cantitatea iniial a izotopului dispare prin descompunere n alte elemente chimice.
Descriei modelul matematic care permite calculul numrului ciclurilor de njumtire necesare
pentru dispariia a k procente din cantitatea iniial a izotopului.
Efectul unui medicament se calculeaz conform formulei rk = rk1 + 0,4k, unde rk este con
centraia substanelor active peste k ore dup administrarea lui. Iniial r0 = 1, iar 0 < < 1.
Din formul rezult c rk atinge valoarea maxim rm dup ce au trecut m ore, ulterior ncepnd
s scad. Scriei un program ce va determina peste cte ore efectul medicamentului n studiu va
atinge valoarea maxim. Numrul real se citete de la tastatur.

1.3. Soluii analitice i soluii de simulare


Mai nti vom examina urmtoarea problem:
Exemplul 1: Un bazin cu volumul 100 m3, care iniial conine
20 m3 de ap, se umple cu acelai lichid folosind pompa ce are
capacitatea de pompare de 15m3/or. Totodat, din bazin n
dispozitivul de filtrare se scurg 5 m3/or. Se cere s se determine
peste cte ore va fi umplut bazinul.
Desigur, exist mai multe metode de rezolvare a acestei proble
me. Una dintre cele mai simple este modelarea procesuluide acu
mulare a apei n bazin peste fiecare or, cu ajutorul unuitabel.

Timp (ore)
0
1
2
3
4
5
6
7
8

Cantitatea de ap
ce a fost pompat
0
15
30
45
60
75
90
105
120

Cantitatea de ap
ce s-a scurs
0
5
10
15
20
25
30
35
40

Cantitatea de ap
din bazin
20
30
40
50
60
70
80
90
100

Soluia problemei a fost obinut printr-un numr relativ mare de calcule consecutive,
care au reconstruit dinamic volumul de ap n bazin peste fiecare or. Sigur, nu este cea
mai eficient metod: se utilizeaz un numr considerabil de rezultate intermediare,
numrul de operaii realizate este la fel nemotivat de mare.
O alt soluie se bazeaz pe o formul care permite calculul direct al rezultatului final.
Timpul necesar pentru umplerea bazinului este determinat de diferena dintre volumul
total al bazinului i cantitatea de ap care se coninea iniial n el raportat la debitul apei
timp de o or:
.
Prima dintre metodele efectuate utiliza un proces iterativ, care determina volumul de
ap dup fiecare interval elementar de timp (1 or) i calcula rezultatele noi, folosind
datele obinute la etapa precedent. Cu alte cuvinte, a fost realizat procesul de modelare
a etapelor de umplere a bazinului. Acest proces se numete simulare.
Simularea este o tehnic de rezolvare a problemelor, bazat pe utilizarea unor modele
matematice i logice ce descriu comportarea unui sistem real n spaiu i/sau n timp.
Model de simulare este modelul de rezolvare a problemei n baza tehnicii de simulare.
Soluiile obinute prin procesul de simulare se numesc soluii de simulare.

De obicei, modelele de simulare se folosesc atunci cnd este necesar determinarea


strii sistemului cercetat att n momentul cnd se obine soluia final, ct i n momentele
intermediare de timp.
Cea de a doua metod din exemplul de mai sus a realizat calculul direct al soluiei prin
utilizarea unei formule:
, unde Vbazin volumul total al bazinului,
Viniial cantitatea iniial de ap n bazin,
Cpomp capacitatea de pompare a pompei,
Cscurgere capacitatea gurii de scurgere.
Formula permite calculul timpului necesar pentru umplerea oricrui bazin, cu orice
cantitate iniial de ap i cu orice capacitate de pompare a pompei, depind capacitatea
de scurgere, care de asemenea poate varia.

10

Metoda de rezolvare a problemelor bazat pe utilizarea unor formule ce permit calculul


direct al rezultatului final, fr a cerceta stri i rezultate intermediare, se numete metod
analitic. Soluiile obinute cu ajutorul acestei metode snt numite soluii analitice.

Exemplul 2: S se scrie un program care calculeaz suma primilor n termeni ai pro


gresiei geometrice, avnd primul termen cu valoarea a1, (a1 > 0) i raia q, (q < 1).
Din matematic este cunoscut formula

, care permite determinarea

direct a sumei, fr a calcula valoarea fiecrui termen al progresiei. Totodat se tie c


termenul cu indicele n, (n 2) poate fi calculat folosind formula recurent an = q an1.
Atunci rezultatul poate fi calculat iterativ, prin calculul recurent al termenilor progresiei
i adunarea lor consecutiv Sn = a1 + a2 + + an1 + an.
Calcul direct al sumei
program cn02;
var S,a,q : real;
n : integer;
begin
readln(a, q, n);
S:=a*(exp(n*ln(q))-1)/(q-1);
writeln(S=, S:0:6);
end.

Calcul iterativ al sumei


program cn03;
var S,a,q : real;
i, n : integer;
begin
readln(a, q, n);
S:=0;
for i:=1 to n do
begin
S:=S+a;
a:=a*q;
end;
writeln(S=, S:0:6);
end.

Fiecare dintre metodele prezentate mai sus are avantajele i neajunsurile sale. Pentru
unele probleme este foarte complicat sau practic imposibil de determinat formula analitic
(de exemplu, coordonatele unei comete sau ale unui asteroid n funcie de timp), pentru
altele este destul de dificil de simulat un model adecvat, chiar i folosind un numr foarte
mare de calcule intermediare.
Soluia analitic permite calculul imediat al rezultatului final, dar nu permite cerce
tarea dinamicii construirii acestuia. Utilizarea unui proces iterativ (a soluiei de simu
lare)permite construirea dinamic a rezultatului n funcie de datele folosite n problem
i controlul soluiei la fiecare iteraie realizat. n acelai timp, pentru obinerea solu
iilorde simulare este necesar un numr mai mare de operaii dect n cazul soluiilor
analitice.
Alegerea modului de determinare a soluiei este influenat de mai muli factori,
principalii dintre ei fiind:
posibilitatea de determinare a soluiei analitice;
necesitatea cercetrii soluiilor (strilor) intermediare;
timpul necesar pentru realizarea calculelor (n cazul soluiilor de simulare);
eroarea soluiei de simulare (diferena dintre mrimea calculat i cea exact).

11

ntrebri i exerciii
Definii noiunea de simulare. Ce este o soluie de simulare?
Ce nelegei prin metod analitic de rezolvare a unei probleme? Ce reprezint o soluie
analitic? Care snt proprietile soluiilor analitice?

Enumerai proprietile soluiilor de simulare. Care dintre aceste proprieti implic utilizarea
calculatorului pentru a gsi astfel de soluii?

Determinai o metod de simulare pentru calcularea elementului cu numrul n din irul de

numere 1, 2, 3, 5, 8, 13, 21, ... . Exist oare o metod analitic pentru determinarea elementului
cu numrul n?
Rezolvai
problemele ce urmeaz prin metoda simulrii:

a) n timpul zilei o buburuz urc pe un stlp 5 m, iar n timpul nopii coboar 3 m. Ascensiunea
ncepe dimineaa. nlimea stlpului este de 15 m. Peste cte zile va ajunge buburuza n
vrful stlpului?
b) n condiiile punctului precedent, ascensiunea ncepe dimineaa de la nlimea de 6 m.
c) n condiiile punctului precedent, ascensiunea ncepe odat cu cderea nopii.
Elaborai un program care calculeaz suma primilor n termeni ai progresiei aritmetice, avnd
primul termen cu valoarea a1, (a1 > 0) i raia r, (r > 0).

1.4. Etapele rezolvrii problemei la calculator


Instrumentele informatice permit rezolvarea problemelor att prin metode analitice,
ct i prin metode de simulare. Indiferent de metoda aplicat, rezolvarea oricrei probleme
include mai multe etape, fiecare dintre ele avnd acelai grad de importan.
Analiza problemei. Este etapa de studiu al coninutului problemei. Se stabilete setul
de date iniiale, se determin care este rezultatul ce urmeaz s fie obinut, care snt relaiile
dintre datele iniiale i rezultat. Tot la aceast etap snt stabilite restriciile suplimentare
asupra datelor iniiale i a rezultatului.
Elaborarea modelului matematic al problemei. La aceast etap datele iniiale snt
descrise prin structuri matematice. Folosind limbajul matematic, se descriu relaiile care
permit obinerea rezultatului din datele iniiale. n funcie de problem, aceste relaii pot fi
recurente (este creat un model de simulare) sau s permit calculul direct al rezultatului
(model analitic). Tot aici are loc (dac este necesar) divizarea problemei n subprobleme i
elaborarea separat a modelelor matematice pentru fiecare din ele.
Elaborarea algoritmului. n cazul rezolvrii informatice a unei probleme, algoritmul
conine setul de instruciuni necesare pentru soluionarea problemei, descrise ntr-o form
prestabilit (pseudocod, schem logic etc.), precum i ordinea executrii acestora (paii
algoritmului). Dac problema a fost divizat n subprobleme, algoritmul, suplimentar la
descrierea subalgoritmilor, stabilete modul i condiiile de apel al acestora.
Scrierea programului. Pentru rezolvarea automatizat a problemei, cu ajutorul calcu
latorului algoritmul trebuie transpus ntr-o form neleas de calculator program,
folosind un limbaj de programare. Paii algoritmului snt prezentai cu ajutorul instruc
iunilor limbajului de programare, iar ordinea executrii lor de consecutivitatea i
structura instruciunilor limbajului. Datele iniiale i intermediare snt descrise folosind
structurile de date, acceptate de limbajul de programare. n procesul de scriere a progra
mului pot s apar erori sintactice i/sau semantice. Procesul de corectare a lor este de

12

asemenea o parte a etapei de scriere a programului. Etapa se consider ncheiat atunci


cnd compilarea sau interpretarea programului finalizeaz fr erori.
Testarea programului. O compilare reuit nu garanteaz rezolvarea corect a proble
mei. Pentru verificarea corectitudinii programului se execut o serie de teste care stabilesc
corectitudinea rezultatelor generate de program n funcie de seturi de date iniiale simple,
medii i extreme. Dac pentru toate testele efectuate programul prezint rezultate corecte,
se poate presupune c problema a fost rezolvat corect. Dac n procesul de testare se
obin rezultate care difer de cele corecte, urmeaz ca rezolvarea problemei s fie reluat,
ncepnd cu etapa de analiz a problemei.
Procesul de rezolvare a unei probleme la calculator poate fi ilustrat cu ajutorul urm
toarei scheme:
Problema
real

Analiza

Model
matematic

Algoritm

Program

Testare

Exemplu:
Problem:
n condiii de laborator, o populaie de virui, format iniial din N uniti i plasat
ntr-un mediu steril, se micoreaz n fiecare or cu 50 de procente, dac numrul
viruilor la nceputul orei este par, sau crete cu o unitate, dac numrul viruilor la
nceputul orei este impar. n momentul cnd numrul viruilor devine mai mic dect
cantitatea critic de supravieuire C, populaia dispare integral.
Cerin: Scriei un program care va stabili timpul necesar, n ore, pentru distruge
rea n laborator a unei populaii din N (N < 32 000) virui, avnd cantitatea critic de
supravieuire C (1 < C < N).

Analiza problemei
Populaia format dintr-un numr par de virui n fiecare or se micoreaz de dou
ori. Populaia format dintr-un numr impar crete cu o unitate i se transform ntr-o
populaie par. Creterea repetat este imposibil, njumtirea se repet ns cel puin
odat la dou ore. Prin urmare, valoarea C (C > 1) va fi atins ntr-un numr finit de ore.

Modelul matematic
Numrul populaiei n momentul de timp t = 0 este dat de numrul N0 = N.
Numrul populaiei dup t ore de sterilizare (t > 0) este dat de formula recurent:

Algoritm
Pasul 0. Iniializare: Se introduc valorile N, C. t 0.

Aici i n continuare expresia a b semnific: a primete valoarea lui b.

13

Pasul 1.
a) Trecerea unei ore: t t+1.
b) Remodelarea populaiei: dac N mod 2 = 0, N N div 2, altfel N N+1.
Pasul 2. Verificarea condiiei de supravieuire: dac N < C, se afieaz valoarea t.
SFRIT. n caz contrar, se revine la pasul 1.

Program
program cn04;
var N,C,t: integer;
begin
readln(N, C); t:=0;
while (N>=C) do begin
t:=t+1;
if N mod 2 = 1 then N:=N+1 else N:= N div 2;
end;
writeln(t);
end.

Testare
Pentru verificarea corectitudinii rezolvrii problemei au fost folosite urmtoarele
seturi de date:
Date
iniiale
512 2
25768 235

Rezultat
9
10

Date
iniiale
31999 16
31999 2

Rezultat
15
18

Date
iniiale
331 330
31997 2

Rezultat
2
19

Date
iniiale
332 330
32

Rezultat
1
3

ntrebri i exerciii
Enumerai etapele rezolvrii unei probleme la calculator. Explicai necesitatea fiecrei etape.
Care snt metodele de descriere a algoritmului unei probleme? Exemplificai.
Care este impactul divizrii unei probleme n subprobleme elementare? Dai exemple de

probleme ce pot fi divizate n subprobleme. Indicai dou sau mai multe probleme ce conin
subprobleme identice.
Pentru urmtoarele probleme realizai modelul matematic:
a) Snt cunoscute coordonatele a trei vrfuri ale unui dreptunghi cu laturile paralele axelor de
coordonate. Se cere determinarea coordonatelor celui de-al patrulea vrf.
b) n condiiile punctului precedent, laturile dreptunghiului pot fi poziionate arbitrar fa de
axele de coordonate.
Pentru urmtoarele probleme descriei un algoritm de rezolvare, folosind metodele de
descriere cunoscute:
a) Este dat un ir din cel mult 100 de numere ntregi. Se cere s se aranjeze elementele irului
n ordine cresctoare.
b) Este dat un ir din cel mult 100 de numere ntregi. Se cere determinarea elementului cu valoare
maxim din ir i a numrului de repetri ale lui printr-o singur parcurgere a irului.
Elaborai
programe pentru rezolvarea problemelor din exerciiile 4 i 5.

Alctuii
seturi
de teste pentru programele realizate n exerciiul 6.

14

Test de evaluare
I Stabilii valoarea de adevr a urmtoarelor afirmaii:

1. Modelul este o copie fidel a originalului, care pstreaz toate proprietile acestuia:
a) adevrat;
b) fals.
2. Modelul matematic este un model ideal:
a) adevrat;
b) fals.
3. Modelul matematic poate fi utilizat n exclusivitate pentru rezolvarea problemelor mate
matice:
a) adevrat;
b) fals.
4. Soluia de simulare a unei probleme permite calculul direct al rezultatului din datele iniiale
ale problemei:
a) adevrat;
b) fals.
5. n procesul de rezolvare a unei probleme la calculator, elaborarea modelului matematic al
problemei precede elaborarea algoritmului:
a) adevrat;
b) fals.
6. Rezultatul corect, obinut pentru un set de date de intrare, garanteaz corectitudinea
rezultatelor furnizate de program pentru orice alt set de date:
a) adevrat;
b) fals.
II Selectai varianta corect a definiiei:

1. Modelarea este procesul de:


a) utilizare a modelului;
b) construcie a modelului;
c) prezentare a modelului;
d) descompunere a originalului n componente elementare.
2. Modelul matematic este:
a) descrierea unei noiuni matematice prin intermediul limbajului uman;
b) totalitatea de caracteristici geometrice ale unui model material;
c) descrierea unui proces sau fenomen prin intermediul noiunilor matematice;
d) modelul material al unui corp sau figuri geometrice.
3. Metoda analitic de rezolvare a problemelor este metoda de rezolvare:
a) care permite calculul rezultatului final, prin cercetarea strilor i rezultatelor inter
mediare;
b) prin identificarea rezultatului corect dintr-o list finit de soluii posibile;
c) care permite calculul direct al rezultatului final, fr acerceta stri i rezultate inter
mediare;
d) prin selectarea aleatorie a unui rezultat posibil.
III Descriei pe etape procesul de rezolvare la calculator a problemei de determinare

avaloriiab pentru 0 < a, b < 10, ntregi.

15

CAPITOLUL 2

ERORI N CALCULUL NUMERIC


Dup studierea acestui capitol, vei fi capabili s:
identificai mrimile exacte i cele aproximative;
calculai erorile absolute i relative;
determinai sursele de erori n problemele de modelare;
identificai tipurile de erori posibile n funcie de natura problemei rezolvate.

2.1. Numere aproximative.


Eroarea absolut i relativ

Numrul a se numete aproximare a numrului A dac valorile lor se deosebesc


nensemnat i a poate nlocui A n calcule numerice. Dac este adevrat relaia a < A,
aeste numit aproximare prin lips, dac a > A aproximare prin adaos. De exemplu,
pentru numrul 3,14 va fi aproximare prin lips, iar 3,142 aproximare prin adaos.
ntr-adevr 3,14 < < 3,142. Valorile aproximative apar n procesul msurrilor realizate,
iar diferena valorii aproximative de cea exact se poate datora unei varieti defactori:
condiiilor de temperatur, presiunii, umiditii, calitii instrumentelor de msurare,
calificrii persoanei care execut msurarea etc.
Prin eroare a se nelege diferena Aa (uneori
i
aA).
n funcie de valorile a i A, a poate fi
Info+
negativ
sau pozitiv. Pentru a obine numrul
Reprezentarea numerelor n calcuexact
A,
se
adaug la a valoarea erorii a:
lator implic utilizarea numerelor
A = a + a.
aproximative cu un numr finit
decifre. Cifrele reinute se numesc
cifre semnificative, prima fiind obli
gatoriu diferit de 0.
Exemplu: 0,04708 are patru cifre sem
nificative. Primele dou zerouri doar
fixeaz poziia virgulei zecimale.
Aproximarea a (anan1an2a0) a nu
mrului exact A are k cifre semni
ficative exacte ai ai1aik+1 dac:
.

De multe ori este cunoscut valoarea aproxima


tiv a fr a se cunoate semnul erorii. n aceste
cazuri se utilizeaz eroarea absolut, care se defi
nete n felul urmtor:
Eroare absolut a valorii aproximative a se
consider modulul diferenei dintre valoarea
exact A i valoarea aproximativ a:
= |A a| .

Eroarea absolut nu este un indice suficient


pentru estimarea exactitii calculelor sau a msu

16

rrilor. Fie c n urma msurrii lungimii a dou bare, cu lungimi de 20 m i 6 m, respectiv,


au fost obinute rezultatele de msurare 20,5 m i 6,2 m.
Cu toate c valoarea absolut a erorii n primul caz este mai mare, este evident c
prima msurare a fost realizat mult mai exact dect a doua. Pentru a determina calitatea
msurrii (a calculului), se raporteaz mrimea erorii absolute la ounitate de lungime
(sau, n caz general, la o unitate de msur respectiv).
Eroare relativ a valorii aproximative se consider raportul dintre eroarea absolut
i modulul numrului exact A (A 0):
.

Exemplu: O bar are lungimea de 100 cm. n urma unei msurri a fost stabilit o
valoare a lungimii egal cu 101 cm. Distana dintre punctele A i B este de 3 000 m.
Ca rezultat al msurrii s-a obinut distana de 2 997m. Se cere determinarea erorii
relative a fiecrei msurri i msurarea mai exact.
Rezolvare:
pentru prima msurare
;
pentru msurarea a doua
Deoarece eroarea relativ a celei de-a doua msurri este mai mic, aceast msurare
este mai exact.

ntrebri i exerciii
Explicai noiunea de eroare. Dai exemple de apariie a erorilor n situaii reale.
Definii noiunea de eroare absolut. Exemplificai.
Definii noiunea de eroare relativ. Exemplificai. Cum se va modifica formula de calcul a erorii
relative, dac eroarea trebuie indicat n % de la valoarea exact a mrimii cercetate?

Lungimea traseului dintre dou localiti, afiat pe indicatorul de drum, este de 230 km.

Parcurgnd acest traseu cu autovehiculul, ai fixat variaia indicaiilor dispozitivului de msurare


a distanei 230,7 km. Considernd datele indicatorului ca fiind exacte, determinai eroarea
absolut i eroarea relativ a msurrii.
O bar cu lungimea exact de 100 cm a fost msurat cu o eroare absolut de 2 cm. Care snt
valorile posibile, obinute n procesul de msurare?
Volumul exact al unui vas este de 20 l. Msurrile de volum au fost efectuate cu o eroare relativ
de 0,001. Care snt valorile posibile ale volumului msurat?

2.2. Sursele erorilor de calcul


Erorile care apar n timpul rezolvrii problemelor pot proveni din diferite surse.
Cunoaterea surselor de apariie a erorilor permite ocolirea lor i minimizarea efectului
cumulativ al erorilor. Cele mai des ntlnite tipuri de erori snt:
a) erori de problem;

17

b) erori de metod;
c) erori ale datelor de intrare;
d) erori de aproximare;
e) erori de rotunjire.
Erori de problem. Aceast categorie de erori apare n situaiile cnd modelul mate
matic ales pentru rezolvarea problemei nu descrie complet procesul real cercetat. Astfel,
n exemplul 2 (1.2. Modelul matematic i modelarea matematic), pentru a construi
modelul matematic al sistemului bilarc, s-a utilizat ecuaia oscilaiilor armonice pentru
deformaii mici i n lipsa forei de frecare. Prin urmare, rezultatul obinut prin utilizarea
formulei va fi diferit de cel exact, diferena fiind cu att mai semnificativ, cu ct e mai
mare fora de frecare i deformarea arcului n sistemul real.
Erori de metod. Este o categorie de erori generat de imposibilitatea determinrii
unei metode exacte de rezolvare a problemei sau de restriciile care impun utilizarea unei
metode mai puin exacte. n acest caz problema iniial este rezolvat printr-o metod
euristic, care poate genera diferene eseniale ntre rezultatul calculat i cel exact.
Un exemplu elocvent este utilizarea metodei Greedy pentru rezolvarea problemei
rucsacului.
Erori ale datelor de intrare. Deseori procesul de modelare matematic se bazeaz pe
rezultatele unor experiene, adic pe nite seturi de mrimi numerice, obinute n urma
msurrilor. Aceste mrimi nu snt exacte (ex.: distana, masa, viteza).
Fie c un corp se mic pe o traiectorie descris pe segmentul [0,1] de funcia f (x) = x2 + x + 1.
Se tie c valoarea argumentului x se calculeaz cu o eroare absolut care nu depete
0,01. Prin urmare, dac z este valoarea exact a argumentului, atunci |z x| < 0,01.
n condiiile date se poate stabili n ce msur
eroarea la msurarea valorilor lui x influeneaz
Ne amintim!
rezultatul calculului:
Problema rucsacului:
Fie un rucsac de volum x S i n obiec
te de volume vi , i = 1...n i costuri
ci , i = 1...n. Se cere s se pun n rucsac obiecte din setul propus astfel,
nct costul total al obiectelor puse
n rucsac s fie maxim posibil.
Dac pentru rezolvare este folosit
metoda Greedy, n majoritatea cazu
rilor soluia obinut va fi diferit
de cea optim. Astfel, pentru un set
din cinci obiecte cu volumele 5, 7,
13, 20, 10, costurile respective de
4, 8, 15, 23, 5 i un rucsac cu volumul
de 30 de uniti va genera soluia
cu valoarea 27 (obiectele 3, 2, 1).
(Sortarea obiectelor este realizat n
descreterea raportului cost/volum.)
n realitate soluia optim are valoarea 31 (obiectele 2 i 4).

18

Deoarece

i
, rezult
.
Diferena dintre valoarea funciei de argument
exact (z) i valoarea funciei de argument msurat (x)
este o mrime constant. De aici reiese c erorile de
calcul nu depind de x, ci numai de exactitatea cu care
acesta este msurat, iar funcia este stabil la erori.
Erori de aproximare. Este o categorie de erori
generate de anumite definiii i noiuni matema
tice. Prezena lor este acceptat n special n proble
mele care folosesc noiunea de limit, convergen
etc. Apariia acestui tip de erori este motivat de
nsi structura definiiei care conine elemente de
aproximare.

Exemplu: irul {xn} este convergent i are limita


x dac pentru orice > 0, 0, exist un rang
n(n), astfel nct
,
.
Din punctul de vedere al analizei numerice,
indic precizia cu care xn aproximeaz x.
n procesul de calcul al limitei se utilizeaz
oaproximare consecutiv, care se apropie tot mai
mult de limita exact, fr a o atinge. Stoparea
procesului de calcul are loc atunci cnd deviaia
(eroarea) devine mai mic dect eroarea maxim
admisibil ().
De reinut c rezultatele obinute prin calcul
numeric snt acceptate doar ca rezultate cantitative
i nu pot servi drept demonstraie pentru anumite
afirmaii matematice.
Erori de rotunjire. Este un tip aparte de erori,
generate de faptul c n procesul prelucrrii m
rimilor numerice n calculator ele pot fi pstrate
doar cu un anumit numr de semne zecimale dup
virgul. Drept exemplu poate serviconstanta ,
valorile funciilor trigonometrice etc.
Fie A = {a1, a2, a3, , an,} mulimea tuturor nu
merelor care pot fi reprezentate n calculator. (Se
consider c a1 < a2 < a3 < < an.)
lipsete n muli
Oricare din numerele
mea iniial A. n cazul apariiei uneiasemenea
situaii de calcul, apare eroarea legat de nlocuirea
rezultatului real prinnumrul cel mai apropiat de
el din mulimea A. Aceast procedur este numit
rotunjire.
Funcia de rotunjire aplicat la calculatoare se
definete n felul urmtor:
xR, aiA, ai+1A x(ai, ai+1)
dac
dac

,
.

Utilizarea funciei de rotunjire genereaz aba


teri de la legile de baz ale operaiilor aritmetice,
care nu mai snt asociative, distributive.

Ne amintim!
Se consider c funcia f (x): I R
posed proprietatea Lipschits dac
exist o constant m > 0, astfel
nct: |f (x) f (z)| m |zx|, x,
z I.
Se consider c determinarea valorilor funciei f(x) este stabil la
erori, dac f(x) posed proprietatea Lipschits.
n ali termeni, stabilitatea funciei
la erori presupune variaii mici ale
valorilor funciei la variaii mici ale
argumentului.

Info+
Apropierea valorilor termenilor
irului 1/n de limita irului 0.
n = 1
1/n = 1
n = 2
1/n = 0,5

n = 501
1/n = 0,001996
n = 502
1/n = 0,001992
n = 503
1/n = 0,001988

n = 999
1/n = 0,001001
n = 1000 1/n = 0,001000
n = 1001 1/n = 0,000999
...

Exemplu: Fie c n procesul de


calcul se poate opera cu cel mult
3cifre dup virgul. n acest caz
pentru numerele
a = 0,2334, b = 0,2331, c = 0,233
se obine rd(rd(a+b)+c) =
=
rd(rd(0,4665)+0,233) =
=
rd(0,467+0,233) = 0,7;
rd(a+rd(b+c)) =
=
rd(0,2334+rd(0,4661)) =
=
rd(0,2334+0,466) =
=
rd(0,6994) = 0,699.

19

n cazul rotunjirii rezultatelor de calcul, erorile nu depesc dup modl valoarea de


0,5 10n (aceste erori se numesc erori de rotunjire absolute), unde n este numrul de
semne semnificative (care pot fi percepute) n procedura de calcul. Erorile de rotunjire
pot fi att pozitive, ct i negative. n cazul alternrii lor, are loc procesul de compensare,
ca rezultat eroarea final nu crete odat cu numrul de calcule.

ntrebri i exerciii
Identificai principalele surse de erori. Exemplificai.
Dai exemple de erori generate de imposibilitatea formulrii exacte a problemei. Motivai
imposibilitatea formulrii exacte.

Care funcii posed proprietatea de stabilitate a calculului valorilor fa de erori?


Este oare stabil fa de erori calculul valorilor funciei liniare? Dar al funciei
Explicai esena erorilor de aproximare.
Soluia unei probleme se calculeaz iterativ dup formula:

Va atinge oare irul soluiilor calculate valoarea soluiei exacte? Stabilii experimental sau
analitic soluia exact. Dup cte iteraii eroarea absolut a soluiei calculate va deveni mai
mic de 0,0001?
Din care motiv rezultatele obinute prin metode numerice nu pot servi drept demonstraii ale
afirmaiilor matematice?
Care este cauza apariiei erorilor de rotunjire? Exemplificai.
Scriei un program care determin produsul i ctul numerelor 1,00000001 i 0,999999999.
Valorile vor fi stocate n variabile, avnd tipul real. Analizai rezultatele obinute. Explicai
cauzele apariiei erorii.

20

Test de evaluare
1. Eroarea absolut a mrimii aproximative a pentru valoarea exact A este dat de
formula:

c) = |a| |A|;
a) = |A a|;
b) = |A| |a|;

d) = a A.
2. Frecvena pe care emite un post de radio este de 105,2 MHz. n procesul de scanare a frecven
elor, staia de radio a stabilit pentru postul dat frecvena de 105,25 MHz. Determinai eroarea
absolut i eroarea relativ cu care a fost stabilit frecvena de staia de radio. Care este
efectul real al erorii, observat n procesul de lucru al staiei?
3. Determinai cte cifre semnificative are fiecare din urmtoarele numere:
a) 0,375;

d) 0,0022222;
b) 0,000672;

e) 0,010101.
c) 0,1233;
4. Erorile de aproximare snt erorile care apar din cauza:
a) modelului matematic incomplet;
b) insuficienei datelor de intrare;
c) specificului reprezentrii numerelor n calculator;
d) metodei aproximative de rezolvare;
e) definiiilor i noiunilor matematice care conin elemente de aproximare.
5. n rezultatele calculelor realizate pentru procesarea tranzaciilor financiare se poate opera
cu cel mult 2 cifre dup virgul. Pentru numerele a = 0,113, b = 0,162, c = 0,21 calculai:
a) rd(rd(a+b)+c);
b) rd(a+rd(b+c)).
Care tip de erori este cauza diferenelor rezultatelor obinute?

Studiu de caz
Fie un container cu volum de 250 de uniti i 5 obiecte avnd volumele de 120, 40, 40, 100,
150de uniti i costurile respective de 150, 60, 80, 120, 180. Se cere s se pun n container
obiecte din setul propus astfel, nct costul total al obiectelor puse n container s fie maxim
posibil.
a) Determinai soluia problemei, utiliznd metoda Greedy. (Ordonarea obiectelor va fi realizat
dup descreterea raportului cost/volum.)
b) Determinai soluia exact a problemei, folosind metoda trierii.
c) Determinai eroarea absolut i eroarea relativ ale soluiei particulare, obinute prin metoda
Greedy.
d) Explicai cauzele apariiei erorilor.

21

CAPITOLUL 3

METODE NUMERICE DE REZOLVARE


A ECUAIILOR ALGEBRICE I TRANSCENDENTE
Dup studierea acestui capitol, vei fi capabili s:
recunoatei prezena soluiilor unei ecuaii algebrice sau transcendente pe un
interval dat;
separai intervalele domeniului de definiie a unei funcii f(x), care vor conine
exact o soluie a ecuaiei f(x) = 0;
utilizai algoritmii de rezolvare a ecuaiilor algebrice i transcendente prin
metoda biseciei, metoda coardelor i metoda tangentelor;
elaborai programe de rezolvare a ecuaiilor algebrice i transcendente prin
metoda biseciei, metoda coardelor i metoda tangentelor;
combinai metodele studiate pentru elaborarea algoritmilor eficieni de
rezolvare a ecuaiilor algebrice i transcendente i a programelor care realizeaz
aceti algoritmi.

3.1. Separarea soluiilor ecuaiilor algebrice i transcendente


A rezolva ecuaia algebric sau transcendent (n continuare ecuaia) f(x) = 0 nseamn
a determina acele valori ale variabilei x pentru care egalitatea f(x) = 0 este una adevrat.
n cazul cnd ecuaia are o structur simpl, soluiile ei pot fi determinate exact i relativ
uor prin metodele analitice, care se studiaz n cadrul cursului liceal de matematic.
Dac ns structura ecuaiei este complicat, procedura de determinare a soluiilor devine
destul de anevoioas. Mai mult dect att, atunci cnd ecuaia modeleaz anumite situaii,
fenomene care depind de mai muli parametri, iar valoarea acestora este cunoscut doar
aproximativ, noiunea de soluie exact i pierde n general sensul. Din acest motiv, este
util de a cunoate i metodele de calcul aproximativ
Ne amintim!
al soluiilor ecuaiilor i algoritmii care realizeaz
Dac funcia f (x) are forma unui
aceste metode.
polinom sau poate fi adus la aceasFie dat ecuaia
t form, ecuaia f(x) =0 se numete
f(x) = 0,
(1)
algebric.
f (x) fiind definit i continu pe un oarecare inter
Exemplu: 3x7=0.
val a x b.
n caz contrar cnd f(x) nu este una
polinomial , ecuaia se numete
transcendent.
Exemplu:
.

22

Orice valoare , pentru care expresia f () = 0


este adevrat, se numete zerou al funciei f (x)
sau soluie a ecuaiei f(x) = 0.

n cele ce urmeaz se va presupune c ecuaia(1)


Ne amintim!
are soluii distincte (izolate), adic pentru fiecare
Teorem. Dac funcia f (x), consoluie a ecuaiei exist o vecintate a sa, care nu
tinu pe segmentul [a, b], primeconine alte soluii.
te la extremitile lui valori de
Astfel, rezolvarea prin metode numerice a unei
semn diferit (f (a) f(b) < 0), atunci
ecuaii se divide n dou etape:
pe acest segment exist cel puin un
punct , astfel nct f () = 0. Dac pe
1. Separarea intervalelor pe care ecuaia are o
[a, b] exist derivata f '(x), continu,
singur soluie.
care
are un semn constant, atunci
2. Micorarea pe ct mai mult posibil a fiecrui
este soluie unic a ecuaiei f (x) = 0
din aceste intervale (dac se pune problema deter
pe acest segment.
minrii tuturor soluiilor) sau a unuia din ele (dac
trebuie de determinat doar una din soluii).
Metoda analitic. Pentru separarea analitic a soluiilor vor fi folosite proprietile
derivatei.
Dac soluiile ecuaiei f(x)=0 pot fi uor calculate, atunci, pentru a separa soluiile
f(x)=0, este necesar:
1. s se determine soluiile distincte a x1 x2 ..., xn b ale ecuaiei f(x)=0;
2. considernd a = x0 i b = xn+1, s se calculeze valorile f(x0), f(x1), ..., f(xn+1). Segmentele
[xi, xi+1], i = 0, ..., n, pentru care f (xi) f (xi+1) < 0 vor conine cte cel puin o soluie a
ecuaiei f (x)=0.
Exemplul 1: S se determine numrul de soluii ale ecuaiei ex + x = 0
f(x) = ex + 1; f(x) >0 xR.
ecuaia iniial are o singur soluie.
ntruct
Exemplul 2: S se separe rdcinile ecuaiei x3 9x2 + 24x 19 = 0 pe segmentul [0, 8].
Rezolvare:
f (x) = x3 9x2 + 24x 19;
f(x) = 3x2 18x + 24.
Rezolvnd ecuaia f(x) = 0, se obin soluiile x1 = 2, x2 = 4.
x
0
2
4
8

f (x)
19
1
3
109

Semn f (x)

Deci ecuaia va avea trei soluii, cte una pe fiecare din segmentele [0, 2], [2, 4], [4, 8].
Metoda grafic. O alt posibilitate de separare a rdcinilor ecuaiei f (x) = 0 este
cercetarea direct a graficului funciei f (x). Pentru construcia acestuia pot fi folostie att
aplicaii software specializate1, ct i programe simple, elaborate cu ajutorul instrumentelor
unui limbaj de programare.

MatCAD, Matematica, Derive etc.

23

Separarea grafic a soluiilor unei ecuaii pe un segment dat poate fi realizat i local,
cu ajutorul unei aplicaii de calcul tabelar. Este suficient s se construiasc un tabel cu
dou coloane. Prima coloan va reprezenta o divizare a segmentului n segmente
elementare de lungimi egale. Cea de-a doua coloan va conine o formul care calculeaz
valoarea funciei f (x) pentru valorile respective din prima coloan. n baza datelor din
coloana cu valorile f (x) se construiete o diagram liniar, care reprezint graficul funciei
analizate.
. Soluiile se caut pe segmentul [0,2, 10]
Exemplu:
(fig. 3.1 a, 3.1 b).

Fig. 3.1a. Funcia f(x) reprezentat tabelar


n foaia de calcul. Colana A conine
valorile x de la 0,2 la 10 cu pasul 0,2.
Coloana B conine valorile f(x)

Fig. 3.1b. Funcia f(x) reprezentat grafic n baza


datelor din tabel. Pot fi uor identificate dou
segmente oarecare, ce conin exact cte o soluie
a ecuaiei f(x)=0, de exemplu: [3, 5] i [5, 6]

ntrebri i exerciii
Ce numim soluie a unei ecuaii?
Ce condiii trebuie s satisfac funcia f (x), pentru ca pe un segment dat s fie cel puin o
rdcin a ecuaiei f (x)=0? Dar pentru existena exact a unei soluii?
Determinai analitic numrul de soluii reale ale ecuaiei:
a) x5 5x + 7 = 0;
b) x3 9x2 + 24x 13= 0.
Elaborai un program, care pentru funcia f (x), continu pe [a, b], realizeaz o divizare a
segmentului n n segmente de lungime egal i afieaz toate segmentele la extremitile
crora funcia are valori de semn opus:
a)
pe [10, 10],

b)
pe [2, 2],
Separai, folosind cea mai potrivit metod, soluiile ecuaiilor:

n = 100.

a)

; e)

b)

; f )

c)

; g)

d)

24

n = 100;

3.2. Metoda biseciei


Fie dat funcia f (x), continu pe segmentul [a, b], i f (a) f (b) < 0.
Se cere s se determine pe segmentul [a, b] o soluie a ecuaiei
f (x) = 0.

(1)

Proprietile funciei asigur existena a cel puin unei soluii pe acest segment.
Una dintre cele mai simple metode de determinare a unei soluii a ecuaiei f (x) = 0
este metoda biseciei. Metoda presupune determinarea punctului de mijloc c al segmen
tului [a, b], apoi calculul valorii f (c). Dac f (c) = 0, atunci c este soluia exact a ecuaiei.
n caz contrar, soluia este cutat peunul dintre segmentele [a, c] i [c, b]. Ea va aparine
segmentului pentru care semnul funciei n extremiti este diferit(fig. 3.2).
Dac f (a) f (c) > 0, atunci soluia e cutat n continuare pe segmentul [a1, b1], unde
a1 primete valoarea c, iar b1 valoarea b. n caz contrar, a1 primete valoarea a, iar b1
valoarea c. Procesul de divizare se reia pe segmentul [a1, b1], repetndu-se pn cnd nu se
obine soluia exact sau (n majoritatea absolut a cazurilor!) devierea soluiei calculate
ci de la cea exact nu devine suficient de mic.
n urma divizrilor succesive se obine con
secutivitatea segmentelor
[a0,b0], [a1, b1], [a2, b2], ..., [ai, bi], ... .
Pentru fiecare dintre ele are loc relaia
(2)
f (ai) f (bi) < 0, i = 0, 1, 2, ... .
Estimarea erorii. Deoarece soluia exact
a ecuaiei este un punct al segmentului [ai, bi],
rezult c diferena dintre soluia exact i cea
calculat nu depete lungimea acestui seg
ment. Prin urmare, localizarea soluiei pe un
segment cu lungimea asigur o eroare de
calcul a soluiei ce nu depete valoarea :
.

Fig. 3.2. Calculul consecutiv al segmentelor,


care conin soluia ecuaiei f(x)=0

Algoritmizarea metodei
Pornind de la descrierea matematic a metodei, putem separa dou cazuri distincte
de oprire a procesului de calcul al soluiei ecuaiei f (x) = 0 pentru metoda biseciei:
A1. Algoritmul de calcul pentru un numr prestabilit n de divizri consecutive:
Pasul 0. Iniializare: i 0.
.
Pasul 1. Determinarea mijlocului segmentului
Pasul 2. Reducerea segmentului ce conine soluia: dac f (c) = 0,
atunci soluia calculat este x = c. SFRIT.
n caz contrar, dac f (a) f (c) > 0, atunci a c; b b, altfel a a; b c.
Pasul 3. i i + 1. Dac i = n, atunci soluia calculat este
n caz contrar, se revine la pasul 1.

. SFRIT.

25

A2. Algoritmul de calcul pentru o precizie2 dat:


Pasul 1. Determinarea mijlocului segmentului

Pasul 2. Dac f (c) = 0, atunci soluia calculat este x = c. SFRIT.


n caz contrar, dac f (a) f (c) > 0, atunci a c; b b, altfel a a; b c.
Pasul 3. Dac |b a|< , atunci soluia calculat este
. SFRIT.
n caz contrar, se revine la pasul 1.
Exemplul 1: S se determine o rdcin a ecuaiei x4 + 2x3 x 1 = 0 pe segmentul
[0, 1] pentru 16 divizri consecutive.
Deoarece numrul de aproximri succesive este fixat, iar extremitile segmentului
cunoscute, atribuirile se realizeaz nemijlocit n program.
program cn05;
var a,b,c: real;
i,n:integer;

function f(x:real):real;
begin f:=sqr(sqr(x))+2*x*sqr(x)-x-1;end;
begin a:=0; b:=1; n:=16;
for i:=1 to n do

begin c:=(b+a)/2;
writeln(i=,i:3, x=,c:10:8, f(x)=,f(c):12:8);
if f(c)=0 then break3
else if f(c)*f(a)>0 then a:=c else b:=c;
end;
end.

Rezultate:

i= 1 x=0.50000000 f(x)= -1.18750000


i= 2 x=0.75000000 f(x)= -0.58984375
...
i= 15 x=0.86679077 f(x)= 0.00018565
i= 16 x=0.86677551 f(x)= 0.00009238

Exemplul 2: S se determine o rdcin a ecuaiei 6cos(x) + 8sin(x) = 0 pe segmentul


[2, 4] cu precizia =0,00017.
program cn06;
var a,b,c,eps: real;

function f(x:real):real;
begin f:=6*cos(x)+8*sin(x);end;

begin a:=2; b:=4; eps:=0.00017;


repeat
c:=(b+a)/2;
writeln(x=,c:10:8, f(x)=,f(c):12:8);
if f(c)=0 then break
else if f(c)*f(a)>0 then a:=c else b:=c;
until abs(b-a)<eps;
end.

n contextul dat precizia semnific o eroare de calcul, care nu depete valoarea .


Instruciune de salt necondiionat care ntrerupe execuia instruciunii ciclice n care se conine.

2
3

26

Rezultate:

x=3.00000000
x=2.50000000

x=2.49829102
x=2.49816895

f(x)= -4.81099492
f(x)= -0.01908454
f(x)= -0.00199471
f(x)= -0.00077401

ntrebri i exerciii
n ce cazuri se folosesc metode aproximative de determinare a soluiilor ecuaiilor algebrice?

Descriei metoda biseciei. Care snt prioritile ei? Dar neajunsurile? Formula pentru estimarea
. Exprimai diferena dintre valoarea
erorii, dedus n paragraful curent, este
exact i cea calculat printr-o formul care depinde doar de extremitile segmentului iniial
i numrul de divizri realizate.
Descriei algoritmul metodei biseciei.
Determinai prin metoda biseciei soluiile ecuaiilor:
1. ex x2 = 0
pe [1, 0,5];
pe [1, 2];
2. x3 x 1 = 0
pe [3, 2];
3. x3 + 3x2 3 = 0
pe [1, 2].
4. x5 x 2 =0
a) pentru 10, 20, 40 de divizri ale segmentului iniial;
b) cu precizia = 0,001; 0,0001; 0,00001;
c) n condiiile punctului precedent determinai numrul de divizri necesare pentru aobine
precizia cerut.
Determinai prin metoda biseciei soluiile ecuaiilor de pe intervalele separate n exerciiile3,
4, 5, p. 24, pentru 10, 20, 30 de divizri consecutive.

3.3. Metoda coardelor


Metoda biseciei, cu toat simplitatea ei, nu este eficient n cazurile cnd rezultatul
trebuie obinut printr-un numr redus de iteraii, cu o exactitate nalt. Astfel stnd
lucrurile, este mai potrivit metoda coardelor, care const n divizarea segmentului n
pri proporionale, proporia fiind dat de punctul de intersecie al coardei care unete
extremitile segmentului cu axa 0x.
Fie dat funcia f (x), care posed urmtoarele proprieti:
1. f (x) continu pe segmentul [a, b] i f (a) f (c) < 0.
2. Pe segmentul [a, b] exist f(x) 0; f(x) 0, continui, iar semnul lor pe [a, b] este
constant.
Proprietile enumerate garanteaz existena soluiei unice a ecuaiei f (x) = 0 pe [a, b].
Metoda coardelor presupune alegerea n calitate de aproximare a soluiei punctul
determinat de intersecia dreptei ce trece prin punctele (a, f (a)) i (b, f (b)) cu axa 0x.
Pentru realizarea metodei se stabilete extremitatea e a segmentului [a, b] prin care
se va duce o serie de coarde (fig. 3.3). Aceast extremitate este determinat de condiia:
f (e) f (e) > 0.
Cealalt extremitate a segmentului [a, b] se consider aproximare iniial a soluiei: x0.
Prin punctele (e, f (e)) i (x0, f (x0)) se construiete o coard. Se determin punctul x1

27

n care coarda intersecteaz axa 0x. Punctul x1 este


considerat urmtoarea aproximare a soluiei.
Procesul se repet, coarda urmtoare fiind dus
prin punctele (e, f (e)) i (x1, f (x1)). Astfel se obine
irul de aproximri x0, x1, x2, ... xi, xi+1, ... xn ...,
limita cruia este soluia exact a ecuaiei f (x) = 0.
Punctele e i x0 snt cunoscute. Folosind ecuaia
dreptei ce trece prin dou puncte, putem deter
mina aproximarea x1 (f (x1) = 0):
,
de unde

Fig. 3.3. Apropierea succesiv de soluia


ecuaiei prin metoda coardelor

n general, avnd calculat aproximarea xi1,


putem determina urmtoarea aproximare xi prin
formula recurent:

Ne amintim!
Teorema Lagrange
Fie f:[a, b] R, continu i deriva
bil, pe [a, b]. Atunci exist c(a, b),
astfel nct:
f(b) f(a) = (ba) f (c).

(3)

i = 1, 2, .
Se demonstreaz c irul de valori x1, x2, xi,
xi+1, xn ... calculate dup formula (3) converge
ctre soluia a ecuaiei f (x) = 0.

Eroarea metodei
Faptul c irul aproximrilor succesive prin metoda coardelor converge ctre soluia
exact implic urmtoarea concluzie: eroarea soluiei calculate va fi invers proporional
cu numrul de iteraii efectuate. Totui se poate determina i formula care permite esti
marea erorii de calcul.
Fie f (x) satisface condiiile (1), (2). Dac soluia exact a ecuaiei f (x) = 0 pe
segmentul [a, b], iar M1 i m1 marginea superioar i inferioar a f (x) pe acelai seg
ment, din teorema Lagrange i formula recurent pentru calculul aproximrilor succesive
rezult:
, sau
(4)
Prin urmare, dac se cere calculul soluiei cu o exactitate dat , calculele se vor repeta
conform formulei (3) pn cnd inegalitatea (4) nu va deveni una adevrat.

Algoritmizarea metodei
Aplicarea metodei coardelor necesit o cercetare prealabil a funciei f (x), pentru
stabilirea extremitii fixe, din care vor fi trasate coardele. Numrul n de aproximri
succesive ale soluiei poate fi indicat n enunul problemei sau determinat de o condiie.

28

n ambele cazuri calculul se realizeaz conform formulei (3). Condiia de oprire n primul
caz va fi aplicarea repetat de n ori a formulei (3); n cel de al doilea ndeplinirea
condiiei (4).
Determinarea extremitii fixe. Pentru a evita calculul f (x), se va folosi urmtorul
procedeu: se determin semnul f (x) n punctul c de intersecie cu axa 0x al dreptei care
trece prin punctele (a, f (a)) i (b, f (b)). Fix va fi acea extremitate e a segmentului [a, b],
pentru care se ndeplinete condiia: f (e)f (c) < 0.
A1. Algoritmul de calcul pentru un numr prestabilit n de aproximri succesive:
Pasul 1. Determinarea extremitii fixe e i a aproximrii x0:
dac f (c) f (a) < 0, atunci e a, x0 b, altfel e b, x0 a; i 0.
Pasul 2. Calculul xi+1 conform formulei
Pasul 3. Dac i + 1 = n, atunci soluia calculat x xi. SFRIT.
n caz contrar, i i+1 i se revine la pasul 2.
A2. Algoritmul de calcul pentru o exactitate dat:
Deoarece n formula de estimare a erorii figureaz mrimile M1 i m1, atunci cnd
valorile lor nu snt indicate n enunul problemei, este necesar descrierea analitic a f (x)
i calcularea M1 i m1.
Pasul 1. Determinarea extremitii fixe e i a aproximrii x0:
dac f (c) f (a) < 0, atunci e a, x0 b, altfel e b, x0 a; i 0.
Pasul 2. Calculul xi+1 conform formulei
Pasul 3. Dac

, atunci soluia calculat x xi. SFRIT.

n caz contrar, i i+1 i se revine la pasul 2.


Exemplul 1: Fie dat funcia f (x) = ln(xsinx). S se calculeze soluia aproximativ
aecuaiei f (x) = 0 pe segmentul [0,5; 1,5] pentru 10 aproximri succesive, utiliznd
metoda coardelor.
Pentru acest exemplu, preprocesarea matematic nu este necesar.
Deoarece numrul de aproximri succesive este fixat, iar extremitile segmentului
cunoscute, atribuirile respective vor fi realizate direct n corpul programului.
program cn07;
var a,b,e,c,x: real;
n,i: integer;
function f(x:real):real;
begin f:=ln(x*sin(x));end;

29

begin a:=0.5; b:=1.5; n:=10;



{determinarea extremitatii fixe e si a aproximarii initiale x0}

c:=a-(f(a))/(f(b)-f(a))*(b-a);
if f(c)*f(a)>0 then begin e:=b; x:=a; end

else begin e:=a; x:=b; end;
{calculul iterativ al solutiei}
for i:=1 to n do
begin x:= x-(f(x))/(f(e)-f(x))*(e-x);
writeln(x:10:8, ,f(x):12:8);
end;
end.

Rezultate:

i= 1 x=1.27995775 f(x)= 0.20392348


i= 2 x=1.18251377 f(x)= 0.09028687
...
i= 9 x=1.11427651 f(x)= 0.00016577
i= 10 x=1.11420523 f(x)= 0.00006678

Exemplul 2: Fie dat funcia f (x) = x4 3x2 + 7,5x 1. S se calculeze soluia aproxima
tiv a ecuaiei f (x) = 0 pe segmentul [0,5; 0,5] cu exactitatea = 0,0001, utiliznd metoda
coardelor. Pentru funcia dat pe [0,5; 0,5] M1 i m1 snt, respectiv, egale cu 10 i 5.
Pentru simplitate, atribuirile necesare vor fi realizate direct n corpul programului.
program cn08;
var
Msup,minf,a,b,e,x,xnou,xvechi,eps: real;
function f(x:real):real;
begin
f:=sqr(sqr(x))-3*sqr(x)+7.5*x-1;
end;
begin
a:=-0.5; b:=0.5; eps:=0.0001;
Msup:=10; minf:=5;
{determinarea extremitatii fixe si a aproximarii initiale}
x:=a-(f(a))/(f(b)-f(a))*(b-a);
if f(x)*f(a)>0 then begin e:=b; xnou:=a; end
else begin e:=a; xnou:=b; end;
{calculul iterativ al solutiei}
repeat
xvechi:=xnou;
xnou:= xvechi-(f(xvechi))/(f(e)-f(xvechi))*(e-xvechi);
writeln( x=,xnou:10:8, f(x)=,f(xnou):12:8);
until abs((Msup-minf)/minf*(xnou-xvechi))<eps;
end.

Rezultate:

30

x=0.22500000
x=0.15970438
...
x=0.14130134
x=0.14127062

f(x)= 0.53818789
f(x)= 0.12191694
f(x)= 0.00026052
f(x)= 0.00005579

ntrebri i exerciii
Explicai esena metodei coardelor. Descriei metoda grafic.
Cum depinde extremitatea fix de semnul f(x)?
Descriei procesul de determinare a extremitii fixe. Cum poate fi omis calculul f(x)?
Descriei pe pai algoritmul metodei coardelor pentru un numr fix de iteraii.
Determinai soluiile ecuaiilor, utiliznd metoda coardelor, pentru 10, 20, 30 de iteraii:
pe [1, 2];
a) x3 0,2x2 + 0,2x 2,1 = 0
b) 5x3 20x + 3 = 0
pe [0, 1];
c) ex x2 = 0
pe [1, 0].
Separai soluiile ecuaiilor care urmeaz. Rezolvai ecuaiile folosind metoda coardelor:
pentru 5, 25 de iteraii;
a) tg(0,55x + 0,1) x2 = 0
pentru 3, 9, 27 de iteraii.
b) x3 0,2x2 + 0,5x + 1,5 = 0
Determinai prin metoda coardelor soluiile ecuaiilor de pe intervalele separate n exerciiile 3, 4, 5,

p. 24, pentru 10, 20, 30 de iteraii. Comparai rezultatele cu cele obinute n exerciiul 4, p. 27.
Explicai diferenele.
Fie dat funcia f (x) = x[sin(ln(x)) cos(ln(x))]. Determinai soluia ecuaiei f (x) = 0 pe
segmentul [2, 3] cu exactitatea = 0,0001, utiliznd metoda coardelor.

3.4. Metoda Newton


Fie dat funcia f (x), care posed urmtoarele proprieti:
1. f (x), continu, pe segmentul [a, b] i f (a)f (b) < 0 .
2. Pe segmentul [a, b] exist f (x) 0, f (x) 0, continui, i semnul lor pe [a, b] este
constant.
Urmeaz s se rezolve ecuaia f (x) = 0 pentru x [a, b]. Se va ncerca rezolvarea
problemei prin trasarea consecutiv a unor tangente la graficul funciei, prima dintre ele
fiind construit prin extremitatea E0 (x0, y0) a segmentului [a, b], extremitate pentru care
se respect condiia: f (x0) f (x0) > 0.
Fie c tangenta cu numrul i intersecteaz axa 0x n punctul xi (fig. 3.4). Urmtoarea
tangent (i+1) va fi trasat prin punctul Ei+1 cu coordonatele (xi, f (xi)) i va intersecta axa
absciselor n punctul xi+1. irul de valori x0, x1, x2, ..., xi, xi+1, ... va converge ctre soluia
ecuaiei f (x) = 0. Aceast metod de calcul al soluiei ecuaiei f (x)=0 este numit metoda
tangentelor sau Newton, dup numele matematicianului care a introdus-o.
Pentru a calcula valorile x1, x2, ... xi, ..., se va
folosi ecuaia tangentei la funcia ce trece
printr-un punct dat:
y f(xi) = f(xi)(x xi). (5)
n caz general ecuaia (5) reprezint tangenta
la funcia f (x), care trece prin punctul (xi, f (xi)).
Ea va intersecta axa absciselor n punctul cu
coordonatele (xi+1,0). n consecin se obine:
(6)

Fig. 3.4. Convergena irului de valori


x0, x1, x2, ..., xi, xi+1, ... ctre soluia exact

31

Eroarea metodei
Procesul iterativ de calcul poate fi oprit fie dup repetarea unui numr prestabilit de
ori, fie dup atingerea unei exactiti cerute.
Eroarea se va estima conform formulei:

=
,
unde
xi, xi+1 dou aproximri succesive ale soluiei calculate,
M2 supremul f (x) pe [a, b],
m1 infimul f (x) pe [a, b].

(7)

Algoritmizarea metodei
Numrul de aproximri succesive n procesul de calcul poate fi stabilit apriori sau
determinat de o condiie. Mai nti se stabilete extremitatea segmentului care va servi
drept aproximare iniial. Calculul aproximrii urmtoare se realizeaz n ambele cazuri
conform formulei (6). Condiia de oprire a calculelor va fi n primul caz generarea aproxi
mrii cu indicele cerut; n cel de al doilea ndeplinirea condiiei (7).
A1. Algoritmul de calcul pentru un numr dat de aproximri succesive:
Pentru a realiza acest algoritm, este suficient s fie cunoscute descrierile analitice pentru
f (x) i f (x). Dac descrierea f (x) nu este indicat n enun, urmeaz s fie calculat.
Aproximarea iniial se deduce utiliznd procedeul similar determinrii extremitii fixe
pentru metoda coardelor.
Pasul 1. Determinarea aproximrii iniiale x0:
dac f (c) f (a) < 0, atunci x0 a, altfel x0 b; i 0.
Pasul 2. Se calculeaz xi+1 conform formulei
Pasul 3. Dac i+1 = n, atunci soluia calculat x xi+1. SFRIT.
n caz contrar, i i+1, apoi se revine la pasul 2.
A2. Algoritmul de calcul pentru o exactitate dat:
n formula de estimare a erorii figureaz mrimile M2 i m1. Atunci cnd valorile lor
nu snt indicate n enunul problemei, este necesar o preprocesare matematic pentru
stabilirea M2 i m1. Suplimentar snt necesare descrierile analitice pentru f (x) i f (x).
Pasul 1. Determinarea aproximrii iniiale x0:
dac f (c) f (a) < 0, atunci x0 a, altfel x0 b; i 0.
Pasul 2. Se calculeaz xi+1 conform formulei
Pasul 3. Dac

, atunci soluia calculat x xi+1. SFRIT.

n caz contrar, i i+1 i se revine la pasul 2.

32

Exemplul 13: Fie dat funcia f (x) = x3 2x2 + x 3. S se scrie un program care va
calcula soluia ecuaiei f (x) = 0 pe segmentul [2; 15] pentru 10 aproximri succesive,
utiliznd metoda Newton.
Preprocesarea matematic: Se determin f (x):
Deoarece numrul de aproximri succesive este fixat, iar extremitile segmentului
cunoscute, atribuirile necesare se vor realiza direct n corpul programului.
program cn09;
var a, b, x, c : real;
i, n: integer;
function f(z:real):real;
begin f:=z*z*z-2*z*z+z-3; end;
function fd1(z:real):real;
begin fd1:=3*z*z-4*z+1; end;
begin a:=2.1; b:=15; n:=10; i:=0;
c:=a-(f(a))/(f(b)-f(a))*(b-a);
if f(c)*f(a)<0 then x:=a else x:=b;
while i<n do
begin i:=i+1;
x:=x-f(x)/fd1(x);
writeln(i=,i:2, x=,x:15:12, f=,f(x):15:12);
end;
end.

Rezultate:

i= 1
i= 2
...
i= 9
i=10

x= 10.23214285700 f=869.11072454000
x= 7.06207637180 f=256.52261987000
x= 2.17455942470 f= 0.00000009329
x= 2.17455941030 f= 0.00000000001

Exemplul 2: Fie dat funcia


S se scrie un program care va
calcula soluia aproximativ a ecuaiei f (x) = 0 pe segmentul [2,4; 3] cu exactitatea
= 0,0001, utiliznd metoda Newton. Pentru funcia dat pe segmentul [2,4; 3] M2 i
m1 snt, respectiv, egale cu 2 i 0,03.
Preprocesarea matematic:
Deoarece este dat, extremitile segmentului i valorile M2, m1 cunoscute, atri
buirile vor fi realizate direct n program.
program cn10;
var a, b, xn, xv, M2, m1, e, c : real;
function f(z:real):real;
begin f:=cos(z)*cos(z)-z/4; end;
Pentru toate exemplele i exerciiile propuse se presupune ndeplinirea condiiilor 1. i 2. (p. 31) de f (x).

33

function fd1(z:real):real;
begin fd1:=-sin(2*z)-1/4; end;
begin a:=2.4; b:=3; M2:=2; m1:=0.03; e:=0.0001;
c:=a-(f(a))/(f(b)-f(a))*(b-a);
if f(c)*f(a)<0 then begin
xn:=a; xv:=b;
end
else begin xn:=b; xv:=a; end;
while M2*sqr(xn-xv)/(2*m1)>e do
begin xv:=xn;
xn:=xv-f(xv)/fd1(xv);
writeln( x=,xn:15:12, f=,f(xn):15:12);
end;
end.

Rezultate:

x= 2.47538619170 f= -0.00078052066
x= 2.47646766320 f= -0.00000027700
x= 2.47646804730 f= 0.00000000000

ntrebri i exerciii
Descriei sensul geometric al metodei Newton.
Cum poate fi stabilit aproximarea iniial a metodei?
Explicai de ce, la alegerea corect a punctului iniial, irul aproximrilor obinute prin metoda
Newton converge ctre soluia exact a ecuaiei.

Scriei un program care va determina pe fiecare din intervalele propuse soluiile ecuaiilor care
urmeaz, pentru 2, 4, 6 iteraii, utiliznd metoda Newton:
a)
pe [1,7; 1,58], [1,53; 1,4], [0,4; 0,52], [0,58; 0,8];
b)

pe [100; 150];

c)
d)

pe [4,5; 4] [4; 4,5];

pe [0,1; 0,5].

Modificai programul elaborat n exerciiul 4, pentru a calcula soluiile ecuaiilor, utiliznd metoda
Newton, pentru = 0,00001:
a) 2cos2(x) ex/2 = 0
b) x5 4x + 9 = 0

Fie dat funcia

pe [0,1; 0,74],
pe [2; 1],

M2=4, m1 =0,5;
M2=150, m1 = 1.

Calculai soluia aproximativ a ecuaiei f(x) = 0 pe seg

mentul [0,5; 0,7] cu exactitatea = 0,00001, utiliznd metoda Newton.


Separai soluiile, apoi calculai soluiile ecuaiilor, folosind metoda Newton, pentru
= 0,00001:
a) x5 80 x2 + 89 = 0; b) ex x2 = 0.

34

Test de evaluare
I Selectai rspunsul corect:

1. A rezolva ecuaia f (x) = 0 nseamn a determina punctele:


a) de intersecie f (x) cu axa 0y;
b) de intersecie f (x) cu axa 0x;
c) n care f (x) nu este definit.
2. A separa soluiile ecuaiei f (x) = 0 nseamn a determina:
a) un interval pe axa 0x, care va conine toate soluiile ecuaiei f (x) = 0;
b) toate intervalele pe axa 0x, care au proprietatea de a conine exact cte o soluie a ecua
iei f (x) = 0;
c) toate intervalele pe axa 0x, care au proprietatea de a nu conine nicio soluie a ecuaiei
f (x) = 0;
d) domeniul de valori al funciei f (x).
3. Metoda biseciei de rezolvare a ecuaiilor algebrice i transcendente se bazeaz pe divizarea
intervalului pe care este cutat soluia ecuaiei n pri:
a) egale;
b) proporionale, determinate de coarde, trasate consecutiv;
c) proporionale, determinate de tangente, trasate consecutiv;
d) proporionale, determinate de coarde i tangente, trasate consecutiv.
4. Formula recurent de calcul a aproximrii xi a soluiei ecuaiei f (x) = 0 prin metoda coardelor
este:

a)

c)

b)

d)

5. Aproximarea iniial n cazul aplicrii metodei tangentelor este acea extremitate e a interva
lului [a, b] pe care este cutat soluia, pentru care este adevrat relaia:
a)
;
c)
;
b)
;
d)
.
II Calculai folosind programele elaborate anterior:

1. Soluia ecuaiei

pe [10; 15] prin metoda biseciei, pentru5, 10, 20

de divizri ale segmentului iniial i prin metoda coardelor, pentru 5, 10, 20 de iteraii. Explicai
diferena dintre rezultatele obinute.
2. Soluia ecuaiei x2 sin 5x = 0 pe [0,5; 0,6] prin metoda tangentelor, pentru 2, 4, 6 divizri ale
segmentului iniial i cu exactitatea : 0,001; 0,00001; 0,0000001.
Considerai: m1 = 1,2; M2 = 6,2.

35

CAPITOLUL 4

METODE NUMERICE DE CALCUL


AL DETERMINANILOR I REZOLVAREA
SISTEMELOR DE ECUAII LINIARE
Dup studierea acestui capitol, vei fi capabili s:
descriei metodele numerice de calcul al determinanilor i algoritmii pentru
implementarea acestor metode;
descriei metodele numerice de rezolvare a sistemelor de ecuaii liniare;
descriei algoritmii de rezolvare a sistemelor de ecuaii liniare prin metoda
Cramer i metoda Gauss;
elaborai programe pentru calculul determinanilor de ordinul n;
elaborai programe pentru rezolvarea sistemelor de ecuaii liniare de ordinul n;
combinai metodele studiate pentru elaborarea algoritmilor eficieni de rezolvare
asistemelor de ecuaii liniare i a programelor care realizeaz aceti algoritmi.

4.1. Determinani numerici


Fie dat o matrice ptratic arbitrar de ordinul n:

(1)

Fiecrei din matricele de acest tip i este asociat o valoare numeric numit determinant.
Determinantul poate fi definit n mod inductiv. Notaia folosit pentru determinantul
matricei A este det(A).
Pentru a defini determinantul unei matrice de ordinul n, se va folosi noiunea de minor.
Se numete minor de ordinul n1 al elementului ai,j al matricei A de rang n(n>1) deter
minantul matricei de rang n1, obinut din matricea A prin excluderea rndului i i a
coloanei j. Vom nota minorul elementului ai,j prin Ai,j, unde i indic rndul, iar j coloana
la intersecia crora se afl elementul ai,j.

Astfel, pentru a calcula n matricea din exemplu minorul A1,2 al elementului a1,2, se
exclude din matrice linia 1 i coloana 2:

36

Se numete determinant al matricei A de rang n


valoarea expresiei

Conform definiiei

.
Astfel, pentru matricea de ordinul 4:

Ne amintim!
Pentru matricea A de ordinul 1, for
mat dintr-un singur element a1,1,
determinantul va fi chiar valoarea
acestui element.
Exemplu: A = (7); det(A) = 7.
Pentru o matrice de ordinul 2,

determinantul vafi egal cu valoarea expresiei a1,1a2,2 a1,2a2,1.


Exemplu:

det(A) = 9.

Pentru o matrice de ordinul 3,

Fiecare dintre minorii A1,j, j = 1, ..., 4 este deter


minantul unei matrice de ordinul 3 i poate fi
calculat direct.
Algoritmul de calcul al determinanilor numerici
Fie dat matricea (1).
Algoritmul de calcul al determinantului unei matri
ce de ordinul n se bazeaz direct pe definiia determi
nantului:
n aceast formul elementele necunoscute snt
minorii elementelor din prima linie. Fie un minor
arbitrar A1,j. El este determinantul unei matrice de
ordinul n1. Pentru a-l calcula, urmeaz s fie rezolvat
o problem echivalent cu problema iniial, dar de
dimensiune mai mic. Deoarece la un moment dat se
ajunge la calculul unui determinant de ordinul1, 2
sau3, care se calculeaz direct, se respect regula de
consisten i poate fi aplicat un algoritm recursiv:
Fie matricea A are ordinul R.

Algoritm CRD (A, R)


{Calcul recursiv determinant al matricei A de
ordin R.}
Cazul elementar
Dac ordinul matricei A este 1, (R = 1), atunci
, altfel:

determinantul poate fi calculat folo


sind regula lui Sarrus (regula diago
nalelor i a triunghiurilor).
Astfel, pentru o matrice de ordinul3 determinantul poate fi calculat
direct dup formula:
det(A)=a1,1a2,2a3,3+a1,3a2,1a3,2+
+a1,2a2,3a3,1 a1,3a2,2a3,1
a2,1a1,2a3,3a1,1a2,3a3,2.
Exemplu:
; det(A) = 10.

Regula de consisten:
1. Exist un caz elementar: matricea ce corespunde minorului curent
are ordinul 1.
2. La nivelul k se fac k apeluri pentru calculul determinanilor de
ordinul k1. Prin urmare, procesul
converge spre un caz elementar.

37

Cazul de reducere
1. Valoarea determinantului se iniializeaz cu 0
.
2. Pentru toi j de la 1 la R:
a) Se formeaz matricea M1,j prin excluderea din matricea curent A a liniei 1 i a
coloanei j. (Ordinul M1,j este R1. Matricea dat corespunde minoruluiA1,j.)
b) Se calculeaz determinantul D1, j al matricei M1,j prin apelul CRD (M1,j, R1).
c) Se actualizeaz valoarea + (1)1+j D1, j.
. SFRIT.
3.

Implementarea algoritmului
Fie date declaraiile:
const nmax=10;
type matrice=array[1..nmax,1..nmax] of real;

Matricea pentru care se calculeaz determinantul va fi stocat n tabloul X de tip mat.


Ordinul maxim al matricei pentru care se calculeaz determinantul este limitat de constanta
nmax. Minorul M1,j, care se genereaz n cadrul apelului curent, este stocat n variabila minor,
de tip mat. Semnul valorii (1)1+j CRD (M1,j, R1) este determinat de paritatea variabilei j,
prin urmare, valoarea calculat va fi adugat pentru j impar i sczut pentru j par.
O realizare posibil n limbajul Pascal a funciei recursive de calcul al determinanilor
este urmtoarea:
function cdet(var x:matrice; t:integer) : real;
var
i, j, k: integer;
s : real;
minor : matrice;
begin
if t=1 then cdet:=x[1,1] {caz elementar}
else begin
s:=0;
for k:=1 to t do
begin
{Se exclude linia 1 si coloana k pentru a forma matricea,
care corespunde minorului elementului x[1,k]}
for i:=1 to t-1 do
for j:=1 to k-1 do
minor[i,j]:=x[i+1,j];
for i:=1 to t-1 do
for j:=k to t-1 do
minor[i,j]:=x[i+1,j+1];
{apelul recursiv}
if odd(k) then s:=s+x[1,k]*cdet(minor, t-1)
else s:=s-x[1,k]*cdet(minor, t-1);
end;
cdet:=s;
end;
end;

38

Numrul de operaii necesare pentru calculul recursiv al determinantului unei matrice


de ordinul n este determinat de numrul de apeluri recursive, precum i de numrul de
operaii n cadrul unui apel.
Dezvoltarea unei matrice de ordinul n dup o linie presupune formarea a n minori de
ordinul n1. Consecutiv, la dezvoltarea fiecruia dintre ei vor apare n1 minori de ordinul
n2 i aa mai departe. Numrul total de apeluri va fi determinat de valoarea n (n1)
(n2) 3 2 1 = n! Numrul de operaii n cadrul fiecrui apel este proporional
cu n2. Prin urmare, complexitatea final a subprogramului recursiv este O(n2n!), ceea ce
face ca algoritmul s fie puin eficient pentru valori mari ale lui n.
Exist i un algoritm de complexitate polinomial, care permite calculul iterativ al deter
minanilor. Algoritmul folosete transformrile elementare aplicate consecutiv asupra
matricei iniiale pentru a o transforma ntr-o matrice triunghiular. Determinantul acesteia
din urm este egal cu produsul valorilor elementelor de pe diagonala principal.
Pentru a obine elemente cu valoare nul sub elementul diagonal din coloana
j (j =1, ..., n1), elementele liniei i (i = j+1, ..., n) se vor aduna cu elementele respective
. Dac elementul aj, j are valoarea 0, se ncearc
ale liniei j nmulite cu coeficientul
permutarea liniei j i a liniei k (j < k), astfel nct ak,j 0. Dac o asemenea linie nu exist,
se poate spune cu certitudine c determinantul matricei este zero.
Neajunsul metodei este numrul considerabil de mpriri efectuate, care n cazul
oscilaiilor mari ale valorilor elementelor matricei pot genera erori, ceea ce nu se ntmpl
n cazul algoritmului recursiv.
O posibil implementare a acestui algoritm este realizat n funcia CID:
function CID(x:matrice; r:integer): real;
var i,j,k:integer;
q:real;
begin {CID}
for i: =1 to r-1 do
begin
{se verifica valoarea elementului diagonal din linia i} if x[i,i]=0
then {daca e nula, se cauta o linie pentru inlocuire}
begin
k:=i;
for j:=i+1 to r do
if x[j,i]<>0 then k:=j;
{daca nu exista linie pentru inlocuire}
if k=i then begin CID:=0; exit; end
{altfel are loc permutarea liniilor i, k}
else
for j:=1 to r do
begin
q:=x[i,j];
x[i,j]:=x[k,j];
x[k,j]:=-q;
end;
end;
{modificarea liniilor in scopul obtinerii elementelor cu
valoare nula in coloana i}

39

for j:=i+1 to r do
begin
q:=-x[j,i]/x[i,i];
for k:=i to r do x[j,k]:=x[j,k]+x[i,k]*q
end;
end;
{calculul valorii determinantului pentru matricea triunghiulara}
q:=1;
for i:=1 to r do q:=q*x[i,i];
CID:=q;
end;

ntrebri i exerciii
Explicai legtura dintre matrice i determinantul ei.
Elaborai o funcie pentru calculul determinanilor de ordinul 3, utiliznd regula luiSarrus.
Descriei algoritmul de calcul al determinanilor de ordinul n prin dezvoltare dup elementele
unei linii arbitrare.

Elaborai un program pentru calculul determinanilor de ordinul n (n 10), n care vei folosi
funcia cdet, descris n paragraful curent. Ordinul matricei i valorile elementelor sale se vor
introduce de la tastatur.
Calculai, cu ajutorul programului elaborat, determinanii urmtoarelor matrice:

a)

c)

b)

d)

;
f)

e)
;

h)

g)
;

n programul realizat n exerciiul 4, transformai parametrul variabil x al funciei cdet n

parametru valoare. Observai ce se va ntmpla n cazul calculului aceluiai determinant pentru


diferite tipuri ale parametrului x. Explicai diferena observat.
ncercai s aplicai programul realizat pentru calculul determinanilor matricelor cu dimen
siuni n, n > 20, cu elemente de tip real. Ce se va ntmpla? Explicai.

40

4.2. Metoda Cramer de rezolvare a sistemelor


de ecuaii liniare

Formulele Cramer1
Capacitatea de a calcula determinanii numerici de ordinul n permite rezolvarea unei
game largi de probleme din diverse domenii. Una dintre aplicaiile practice ale calculului
determinanilor este rezolvarea sistemelor de ecuaii liniare.
Fie dat sistemul din n ecuaii liniare cu n necunoscute:

. (1)

Pentru transcrierea sistemului n form matriceal vor fi folosite urmtoarele notaii:


matricea
coeficienilor,

vectorul
termenilor
liberi,

vectorul
soluiilor.

n form matriceal sistemul (1) poate fi scris



Ax = b.
(2)
1
n cazul cnd determinantul A este diferit de0,exist matricea invers A . n urma
nmulirii ambelor pri ale egalitii (2) la A1, se obine:
A1Ax = A1b,
ceea ce este echivalent cu
x = A1b. (3)
Aceast formul permite calculul soluiilor siste
Ne amintim!
mului (1) n cazul n care matricea A a sistemului este Matricea ptratic A se numete
nesingular. Formula detaliat pentru calcularea nesingular, dac determinantul
componentelor vectorului soluie rezult nemijlocit ei este diferit de 0.
din (3) i proprietile matricei inverse:

. (4)

Matricea invers matricei A matri


cea care, fiind nmulit la A (fie la
stnga, fie la dreapta), d ca rezultat
matricea unitar E. Matricea invers matricei A va fi notat A1:
AA1 = A1A = E.

Gabriel Cramer (17041752) matematician elveian. Nscut n Geneva. Cele mai remarcabile rezultate n
matematic le obine n domeniul algebrei (cercetarea curbelor algebrice, regula Cramer) i al probabilitii
(soluia paradoxului din Sankt-Petersburg).

41

i este determinantul matricei formate din matricea A, n care coloana i a fost nlocuit
prin vectorul termenilor liberi.
Formulele (4) permit calculul direct al soluiilor sistemului de ecuaii liniare (1), deoarece
conin doar mrimi calculate prin utilizarea matricei coeficienilor sistemului (1) i a
vectorului termenilor liberi ai acestui sistem. Ele snt numite formulele Cramer.

Algoritmizarea metodei
Fie dat sistemul (1) din n ecuaii liniare cu n necunoscute. Pentru rezolvarea siste
mului, folosind formulele Cramer, vor fi necesare urmtoarele structuri de date:
a) Un tablou bidimensional (n n) cu elemente de tip real sau ntreg (n funcie de
valorile datelor de intrare) matricea A a coeficienilor sistemului;
b) Un tablou unidimensional cu elemente de tip real sau ntreg (n funcie de valorile
datelor de intrare) vectorul b al termenilor liberi ai sistemului;
c) Un tablou unidimensional cu elemente de tip real vectorul soluiilor x.
Determinarea soluiilor unui sistem de ecuaii liniare, utiliznd formulele Cramer, se
bazeaz pe calculul determinanilor. Pentru aceasta poate fi utilizat funcia recursiv de
calcul al determinanilor, descris n paragraful precedent.
Fiind realizat funcia de calcul al determinantului unei matrice CRD (A, n), se va
trece la algoritmul de rezolvare a sistemului, folosind formulele Cramer.
Pasul 1. Se calculeaz = CRD(A, n)(A matricea coeficienilor sistemului).
Dac 0, se trece la pasul 2; n caz contrar, se afieaz mesajul de imposibilitate de
utilizare a metodei. SFRIT.
Pasul 2. i: 1.
Pasul 3.
a) Se creeaz o copie (C) a matricei coeficienilor sistemului. C A.
b) n tabloul C, coloana cu numrul de ordine i este nlocuit cu vectorul termenilor
liberi b.
c) Se calculeaz determinantul i al matricei (C), apoi componenta i a soluiei:
.
d) Se trece la pasul 4.
Pasul 4. Dac i<n, atunci i i+1, dup care se revine la pasul 3; n caz contrar, este
afiat vectorul x. SFRIT.
Not. n procesul de realizare a programului, copia matricei coeficienilor sistemului poate fi
obinut prin transmiterea acesteia ntr-un subprogram n calitate de parametru valoare. nlocuirea
coloanei necesare i calculul determinantului pot fi efectuate n acelai subprogram.

Exemplul 1: S se scrie programul care va calcula soluiile sistemului:

folosind formulele Cramer.


Intrare: Coeficienii i termenii liberi ai sistemului se introduc nemijlocit n program.
Ieire: Rezultatele vor fi afiate pe ecran.

42

program cn11;
type mat=array[1..3,1..3] of integer;
vec=array[1..3] of integer;
vs=array[1..3] of real;
var a
: mat;
b
: vec;
sol
: vs;
p,n
: integer;
de
: real;
function cdet( x:mat;t:integer):real;
var i,j,k,l: integer;
s
: real;
minor : mat;
begin
if t=1 then cdet:=x[1,1]
else
begin
s:=0;
for k:=1 to t do
begin
for i:=1 to t-1 do
for j:=1 to k-1 do minor[i,j]:=x[i+1,j];
for i:=1 to t-1 do
for j:=k to t-1 do minor[i,j]:=x[i+1,j+1];
if odd(k) then s:=s+x[1,k]*cdet(minor, t-1)
else s:=s-x[1,k]*cdet(minor, t-1);
end;
cdet:=s;
end;
end;
function transforma(x:mat;t,l:integer):real;
var i : integer;
begin for i:=1 to t do x[i,l]:=b[i];
transforma:=cdet(x,t);
end;
begin
n:=3;
a[1,1]:= 3; a[1,2]:= 2; a[1,3]:= -1; b[1]:= 7;
a[2,1]:=-1; a[2,2]:= 1; a[2,3]:= 1; b[2]:= 4;
a[3,1]:= 1; a[3,2]:=-6; a[3,3]:= 2; b[3]:=-13;
de:=cdet(a,n);
if de<>0 then
begin for p:=1 to n do sol[p]:= transforma(a,n,p)/de;
for p:=1 to n do writeln(x[,p,]=,sol[p]:0:3);
end
else writeln(Calcul imposibil);
end.

Rezultate:

x[1]=1.000
x[2]=3.000
x[3]=2.000

43

ntrebri i exerciii
Pentru rezolvarea cror probleme pot fi folosite formulele Cramer? Care snt condiiile cnd ele
nu pot fi aplicate?

Explicai sensul elementelor i i din formulele Cramer.


n baza exemplului cn11 elaborai un program pentru calculul soluiei unui sistem din n
ecuaii liniare cu n (n 10) necunoscute, utiliznd formulele Cramer:
a) Numrul de ecuaii n, valorile coeficienilor ecuaiilor sistemului i ale termenilor liberi se
introduc de la tastatur;
b) Datele iniiale vor fi citite din fiierul text sistem.in care va conine pe prima linie un
numr ntreg n numrul de ecuaii n sistem. Fiecare din urmtoarele n linii va conine cte
n+1 numere ntregi, separate prin spaiu: coeficienii ecuaiilor n ordinea apariiei lor i
termenii liberi.
Rezolvai urmtoarele sisteme de ecuaii, utiliznd programul realizat n exerciiul 3:

a)

b)

d)

c)

f)
e)

g)

44

4.3. Metoda Gauss de rezolvare a sistemelor


de ecuaii liniare

Una dintre metodele eficiente de determinare a soluiei unui sistem de ecuaii liniare
este metoda excluderii consecutive a necunoscutelor. Aceast metod este cunoscut i
sub numele metodei Gauss2. Ea poate fi utilizat n cazul cnd sistemul cercetat are o soluie
unic sau o infinitate de soluii (n cel de-al doilea caz va fi stabilit o soluie particular).
Fie dat sistemul (1) din n ecuaii liniare cu n necunoscute cu matricea extins (1a):

(1)

(1a)

Metoda Gauss presupune:


excluderea variabilei x1 din toate
ecuaiile sistemului, ncepnd cu a
doua;
excluderea variabilei x2 din toate
ecuaiile sistemului, ncepnd cu a
treia;
...
excluderea variabilei xi din toate
ecuaiile sistemului, ncepnd cu
ecuaia i+1;
...
excluderea variabilei xn1 din ecuaia cu numrul n.
n termeni matematici, trebuie s se obin un sistem de ecuaii, echivalent cu sistemul
(1), de forma (2).
Soluia unui sistem de tipul (2) poate fi determinat dup componente, ncepnd cu xn,
care se determin nemijlocit din ultima ecuaie a sistemului. n general, avnd calculate
componentele xi+1, xi+2 ... xn, din ecuaia i a sistemului (2) se determin componenta xi.
Astfel, procesul de calcul al soluiei unui sistem de ecuaii prin metoda Gauss se divide n dou etape:
Etapa 1 (direct) transformarea sistemului (1) n sistemul echivalent (2) prin transfor
mri elementare a matricei (1a);
Etapa 2 (invers) calculul componentelor soluiei sistemului (2).
n cazul cnd sistemul are o infinitate de soluii (conine variabile libere), metoda
permite determinarea unei soluii particulare, prin setarea direct a valorilor particulare
pentru aceste variabile.

Carl Friedrich Gauss (17771855) matematician i cercettor german. Nscut n Braunschweig, a realizat pe
parcursul vieii cercetri de valoare n domeniul teoriei numerelor, statisticii, analizei matematice, geometriei,
geodeziei, geofizicii, electrostaticii, astronomiei i al opticii.

45

Algoritmizarea metodei
Fie dat sistemul (1) din n ecuaii liniare cu n necunoscute. Pentru rezolvarea siste
mului prin metoda Gauss vor fi necesare urmtoarele structuri de date:
a) Un tablou bidimensional (n n+1) cu elemente de tip real matricea extins A a
coeficienilor sistemului i termenilor liberi;
b) Un tablou unidimensional cu n elemente de tip real vectorul soluiilor x.
Rezolvarea sistemului de ecuaii liniare prin metoda Gauss presupune o serie de
transformri consecutive ale elementelor matricei extinse a coeficienilor.
Etapa direct
Pasul 1. i 1.
Pasul 2.
a) Dac aii = 0, linia i i schimb locul cu o linie r(r > i) pentru care ari 0. Dac o
astfel de linie nu exist, se trece la pasul 3.
b) Pentru fiecare din liniile j de la i+1 la n se repet procedura (P):

I. se calculeaz


II. pentru toi l de la 1 la n+1 aj,l aj,l + k ai,l .
Pasul 3. Dac i<n, atunci i+1 i se revine la pasul 2; n caz contrar, se trece la pasul 4.
{Trecerea la pasul 4 marcheaz sfritul etapei directe i nceputul etapei inverse a
metodei.}
Etapa invers
Pasul 4. Pentru i de la n la 1 se calculeaz:

Pasul 5. Pentru i de la 1 la n se afieaz xi. SFRIT.


Exemplu: Fie dat sistemul de n (n < 20) ecuaii liniare cu coeficieni reali de forma:

Elaborai un program pentru a determina soluiile acestui


sistem prin metoda Gauss.
Intrare: Coeficienii sistemului i termenii liberi se citesc din
fiierul text IN.TXT cu urmtoarea structur (valorile snt
separate prin spaiu) (vezi schema alturat).
Ieire: Soluia calculat se va afia pe ecran.

46

Rezolvare: Condiiile impun utilizarea algoritmului general al metodei. n cazul


apariiei unor variabile libere, li se va atribui valoarea 0.
program cn12;
const nmax=10;
type matrice=array[1..nmax,1..nmax] of real;
vect=array[1..nmax] of real;
var a:matrice;
s :vect;
i,n:integer;
procedure citeste(var x:matrice; var t:integer);
var i, j: integer; f: text;
begin {citeste}
assign (f, in.txt); reset(f);
readln(f, t);
for i:=1 to t do
begin
for j:=1 to t do read(f,x[i,j]);
readln(f, x [i,t+1]);
end;
close(f);
end; {citeste}
procedure direct(var x:matrice;t:integer);
label linie_urmatoare;
var i,j,k,l:integer; r:real;
begin {direct}
for i:=1 to t-1 do
begin
if x[i,i]=0 then
begin
k:=i;
for j:=i+1 to n do if x[j,i]<>0 then k:=j;
if k=i then goto linie_urmatoare
else
for j:=1 to t+1 do
begin
r:=x[i,j]; x[i,j]:=x[k,j]; x[k,j]:=r;
end;
end;
for j:=i+1 to t do
begin r:=-x[j,i]/x[i,i];
for k:=i to t+1 do x[j,k]:=x[j,k]+x[i,k]*r;
end;
linie_urmatoare: end;
end; {direct}
procedure invers (var q:vect);
var i,j: integer;
s: real;

47

begin
for i:=n downto 1 do
begin
s:=0;
for j:=i+1 to n do s:=s+a[i,j]*q[j];
if a [i,i]<>0 then q[i]:=(a[i,n+1] -s)/a[i,i] else q[i]:=0;
end;
end;
begin citeste(a,n);
direct(a,n);
invers(s);
for i:=1 to n do writeln(x[,i,]=,s[i]:0:3);
end.

Teste:

Rezultate:

Note:

x[1]=0.800 Se observ prezena a dou ecuaii cu


x[2]=2.300 coeficieni proporionali. Programul
detecteaz variabila liber x[3], pe
x[3]=0.000
care o stabilete fiind egal cu 0.
x[1]=9.000 Determinantul matricei coeficieni
x[2]=-3.000 lorsistemului este diferit de 0. Prin
urmare exist o singur soluie a siste
x[3]=11.000
mului. Prin verificare direct se sta
x[4]=1.000 bilete corectitudinea soluiei date de
x[5]=2.000 program.

ntrebri i exerciii
Descriei etapele algoritmului de calcul al soluiei unui sistem din n ecuaii liniare cu n necu
noscute, utiliznd metoda Gauss.

Indicai care snt resursele de memorie necesare pentru calculul soluiei unui sistem din n ecuaii
liniare cu n necunoscute prin metoda Gauss.

Elaborai un program pentru calculul soluiei unui sistem din n ecuaii liniare cu n (n 10)

necunoscute prin metoda Gauss.


Estimai
complexitatea temporal a algoritmului de rezolvare a sistemelor de ecuaii liniare

prin metoda Gauss. Folosii programul cn12.


Efectuai o modificare a programului cn12, care ar permite determinarea soluiilor sistemelor
de forma:
a)
b)

Realizai o modificare a programului cn12, care ar permite atribuirea aleatorie a valorilor


variabilelor libere.

48

Test de evaluare
I Selectai rspunsul corect:

1. Determinantul este o caracteristic numeric, pe care o posed matricele:


a) numai de rangul 1;
b) de orice rang;
c) numai de rang mai mic sau egal cu 3.
2. Pentru calculul determinanilor pot fi folosii algoritmi recursivi:
a) adevrat;
b) fals.
3. Pentru a stoca n memoria calculatorului o matrice de dimensiunea 10 x 10, elementele creia
snt numere reale, vor fi necesari:
a) 640 octei;
d) 400 octei;
b) 1 024 octei;
e) 200 octei.
c) 600 octei;
4. Metoda Cramer poate fi utilizat doar n cazul cnd determinantul matricei coeficienilor
sistemului este:
a) diferit de 0;
c) pozitiv;
b) egal cu 0;
d) un numr ntreg.
5. Fie determinantul matricei coeficienilor unui sistem din n ecuaii liniare cu n necu
noscute, iar 1 determinantul matricei coeficienilor sistemului, n care prima coloan a fost
nlocuit cu vectorul termenilor liberi. Metoda Cramer utilizeaz urmtoarea formul de calcul
pentru componenta x1 a vectorului soluie:
a)

; c)
;

b)

; d)
.

6. Metoda Gauss de rezolvare a sistemelor de ecuaii liniare conine:


a) o singur etap;
c) trei etape;
b) dou etape;
d) numrul etapelor nu poate fi estimat apriori.
7. n cadrul metodei Gauss, la etapa direct, pentru un sistem cu n ecuaii, necunoscuta xi este
exclus din toate ecuaiile cu indicii:
a) de la 1 la i;
b) de la 1 la i +1;
c) de la i la n;
d) de la i+1 la n.
8. Fie sistemul de ecuaii liniare, unde ai,i 0 (i = 1, ..., n).

49

Metoda Gauss presupune determinarea componentei xi a vectorului soluie prin formula:

a)

; c)

b)

; d)

II Calculai folosind programele elaborate anterior. Pentru fiecare soluie calculat se va

afia o linie care va conine cuvntul Rspuns:, urmat, dup un spaiu, de soluia
calculat:
1. Determinanii matricelor:
a)

b)

2. Soluiile sistemelor (metoda Cramer):

a)

3. Soluiile sistemului (metoda Gauss):

50

b)

CAPITOLUL 5

Integrarea numeric
Dup studierea acestui capitol, vei fi capabili s:
descriei algoritmul de calcul al integralei definite prin metoda dreptunghiurilor
(a trapezelor);
elaborai subprograme pentru calculul numeric al integralelor definite prin
metoda dreptunghiurilor (a trapezelor);
identificai probleme din diverse domenii, care se rezolv prin calculul numeric
al integralelor definite.

5.1. Metoda dreptunghiurilor pentru calculul


aproximativ al integralei definite

Una dintre cele mai des aplicate implementri ale calculului numeric este calcularea
integralei definite prin metode aproximative. Metodele directe nu ntotdeauna permit
calculul analitic al integralei, de multe ori nici nu este cunoscut formula care definete
funcia ce urmeaz s fie integrat. De obicei este dat doar o serie de puncte n care este
cunoscut valoarea funciei. n aceste cazuri integrala poate fi calculat doar prin metode
aproximative (n presupunerea c funcia integrat este continu pe segmentul pe care
se face integrarea).
Din cursul de matematic se tie c sensul geometric al integralei definite
este aria trapezului curbiliniu, determinat de axa 0x, dreptele x = a, x = b i graficul
funciei f (x) pe segmentul [a, b] (fig. 5.1).
Msurarea exact a ariei unei asemenea figuri nu este ntotdeauna posibil. n aseme
nea situaii o soluie ar fi aproximarea figurii iniiale cu un set de figuri, a cror arie este
uor de calculat. Atunci valoarea integralei
definite (aria figurii iniiale) va fi aproximat
de suma ariilor calculate.
Fie f o funcie derivabil pe [a, b] i se cere
s se calculeze

Pentru rezolvarea numeric a problemei


se consider o diviziune a [a, b] n forma
a=x0<x1<<xn1<xn<=b. Perechile consecu
tive de puncte x0x1, x1x2, xi xi+1, , xn1xn
determin n segmente distincte, reuniunea

Fig. 5.1. Sensul geometric al integralei definite

51

crora este [a, b]. Pentru simplitate punctele diviziunii vor fi echidistante (fig. 5.2).
Atuncilungimea h a fiecrui segment elementar [xi, xi+1] va fi determinat de formula
.
Valorile xi pot fi i ele exprimate prin mrimi cunoscute: xi = a + ih, i = 0, , n.
Fiind cunoscute valorile xi i xi+1, poate fi determinat i mijlocul zi al fiecrui segment

elementar

Pe fiecare dintre segmentele [xi, xi+1] aria trapezului curbiliniu va fi aproximat prin
aria dreptunghiului Si, avnd lungimile laturilor h i f (zi) (fig. 5.3):

.
n acest caz valoarea calculat I a integralei definite se calculeaz ca suma ariilor drept
unghiurilor i se determin nemijlocit din formula

Fig. 5.2. Divizarea [a, b] n segmente elemen


tare. Mijlocul segmentului elementar [xi, xi+1]
este punctul

unde
n numrul de divizri ale segmentului iniial;
h lungimea segmentului elementar;
I valoarea calculat a integralei.
Astfel, calculul integralei se transform n
calculul valorii unei expresii aritmetice care
depinde doar de numrul de diviziuni ale seg
mentului de integrare i de valoarea funciei n
punctele de mijloc ale segmentelor elementare.
Metoda care reduce calculul integralei la calculul
unei sume de arii a dreptunghiurilor este numit
metoda dreptunghiurilor.

Eroarea metodei
Valoarea calculat a integralei este de cele mai
multe ori diferit de valoarea exact, calculat
analitic. Eroarea apare din motivul aproximrii
pe fiecare segment elementar a funciei f (x) cu
ofuncie constant g, iar mrimea erorii este
determinat de integrala erorii de aproximare i
poate fi calculat dup formula:
=
Fig. 5.3. Construcia consecutiv a dreptun
ghiurilor, care aproximeaz figura iniial.
Pefiecare segment elementar nlimea
dreptunghiului este determinat de valoarea
funciei f (x) n mijlocul segmentului

52

unde M supremul |f(x)| pe [a, b], I valoarea


calculat a integralei.
Din formula precedent rezult un fapt impor
tant: eroarea de calcul a metodei dreptunghiurilor

este proporional cu numrul de divizri ale segmentului de integrare. Astfel, pentru


aobine o eroare de calcul, ce nu depete o valoare prestabilit , este suficient s se
realizeze divizarea segmentului de integrare n n segmente elementare, valoarea lui n fiind
determinat prin secvena de transformri

Algoritmizarea metodei
Deoarece n cazul calculelor cu o eroare ce nu depete valoarea prestabilit num
rul necesar de divizri poate fi stabilit apriori, este suficient s se realizeze un singur
algoritm pentru un numr fixat de divizri n:
Pasul 1. Iniializare: Se introduc valorile extremitilor segmentului de integrare a,
b i numrul de divizri n.
Not. n cazul n care este necesar calculul integralei cu o eroare, ce nu depete o valoare

prestabilit , numrul de divizri n se calculeaz cu ajutorul formulei

Pasul 2. Se calculeaz lungimea segmentului elementar


Pasul 3. Pentru toi i de la 0 la n1:
.
a) Se calculeaz valorile

. S 0.

.
b) Se calculeaz aria dreptunghiului elementar:
c) Aria calculat se sumeaz cu ariile precedente: S S + Si.
Pasul 4. Se afieaz aria total calculat S. SFRIT.
Exemplul 1: S se scrie un program care calculeaz integrala

prin 20, 40,

80 i160 de divizri ale segmentului de integrare, folosind metoda dreptunghiurilor.


Pentru fiecare numr de divizri se va indica valoarea calculat cu ase semne dup
virgul.
Rezolvare: Deoarece numrul de divizri este indicat n condiiile problemei, pre
procesarea matematic nu este necesar.
program cn13;
const r=4;
var S, a, b, h : real;
j,i,n:integer;
function f(x:real): real;
begin
f:=x*x*x*x/sqrt(1+x);
end;
begin
a:=1; b:=2; n:=10;
for j:=1 to r do
begin
S:=0; n:=n*2; h:=(b-a)/n;

53

for i:=0 to n-1 do


S:=S+ h*f(a + i*h + h/2);
writeln ( n=,n, I=,S:0:6);
end;
end.

Rezultate:

n=20 I=3.788513
n=40 I=3.789629
n=80 I=3.789908
n=160 I=3.789977

Exemplul 2: S se scrie un program care calculeaz valoarea aproximativ a integralei


prin metoda dreptunghiurilor cu o eroare ce nu depete valoarea
, unde n
dat . Calculul va fi oprit, dac se ndeplinete condiia:
numrul curent de divizri.
Valorile a, b, se definesc nemijlocit n program.
Rezolvare: Din condiiile problemei se deduce numrul necesar de divizri:

+1.
program1 cn14;
var S, a, b, e, h : real;
j,i,n:integer;
function f(x:real): real;
begin f:=sin(cos (x*x))/2;end;
begin a:=-pi/2; b:=pi/2; e:=0.0001;

n:=round(pi*(abs(b-a))/(8*e))+1;

S:=0;

h:=(b-a)/n;

for i:=0 to n-1 do
S:=S+ h*f(a + i*h + h/2);

writeln (n=,n, I=,S:0:6);
end.

Rezultate:

n=12338 I=0.729729

ntrebri i exerciii
Motivai necesitatea calculului numeric al integralei definite.
Ce procedeu st la baza metodei dreptunghiurilor pentru calculul numeric al integralei?
Motivai relaia dintre numrul de divizri ale segmentului de integrare i eroarea de calcul a
metodei dreptunghiurilor.

Aici i n alte programe din prezenta ediie se folosete constanta predefinit pi, utilizat n mediul Turbo
Pascal. Utilizatorii altor limbaje de programare sau ai altor compilatoare Pascal vor defini constanta respectiv
n cadrul programului. Ex.: const pi=3.141.

54

Scriei un program care calculeaz integrala definit prin metoda dreptunghiurilor, pentru
200, 2 000, 20 000 de divizri ale segmentului de integrare. Pentru fiecare numr de divizri
valoarea calculat se va afia cu ase cifre zecimale.
a)

b)

; e)

; c)

d)

f)

Explicai diferena dintre rezultatele obinute pentru valori diferite ale numrului de divizri.
Verificai rezultatele obinute folosind calculatorul on-line pentru integrale definite:
www.solvemymath.com/online_math_calculator/calculus/definite_integral.

Scriei un program care calculeaz integrala definit prin metoda dreptunghiurilor cu o eroare
care nu va depi valoarea prestabilit = 0,001; = 0,0001; = 0,00001. Valoarea M este
cunoscut apriori:
a)

b)

M = 9;

c)

M = 7;

d)

M = 5;

M = 36.

Pentru fiecare valoare a erorii se va afia valoarea calculat a integralei i numrul de divizri,
pentru care se obine aceasta.
Conturul unui teren este determinat lateral de dreptele verticale x = 2 i x = 0, superior de graficul
funciei f (x) = x3 5x + 3 cosx, inferior de graficul funciei f (x) = x3 x2. Scriei un program care
va calcula aria terenului, folosind metoda dreptunghiurilor, pentru:
a) 10 000 de divizri;
b) = 0,00001.

5.2. Variaii ale metodei dreptunghiurilor


n unele cazuri punctul care determin nlimea dreptunghiului ce aproximeaz inte
grala pe un segment elementar este selectat nefiind mijlocul segmentului elementar, ci una
dintre extremitile lui. n acest caz, dac aproximarea este realizat prin extremitile stngi
(fig. 5.4) ale segmentelor elementare, aria dreptunghiului elementar Si = hf (xi), iar integrala
definit se aproximeaz prin suma:

,
unde

, n numrul de divizri ale segmentului iniial, iar metoda este numit

metoda dreptunghiurilor de stnga.


Dac aproximarea este realizat prin extremitile drepte (fig. 5.5) ale segmentelor
elementare, aria dreptunghiului elementar Si = hf (xi+1), iar integrala definit se aproxi
meaz prin suma:
,
unde
, n numrul de divizri ale segmentului iniial, iar metoda este numit
metoda dreptunghiurilor de dreapta.

55

Eroarea de calcul pentru variaiile metodei


dreptunghiurilor
n cazul aproximrii integralei definite prin arii
ale dreptunghiurilor de stnga (dreapta), formula
de estimare a erorii se modific nesemnificativ n
raport cu formula de baz:

,
Fig. 5.4. Aproximarea integralei definite
prin dreptunghiuri de stnga

unde M supremul |f(x)| pe [a, b], I valoarea


calculat a integralei prin dreptunghiuri de stnga
(dreapta).
La fel ca n cazul dreptunghiurilor de mijloc,
numrul de divizri necesare pentru a obine
osoluie calculat cu o eroare ce nu depete
ovaloare prestabilit poate fi dedus direct din
formula erorii:
.

Fig. 5.5. Aproximarea integralei definite


prin dreptunghiuri de dreapta

Algoritmizarea metodei
(dreptunghiuri de stnga)2

Pasul 1. Iniializare: Se introduc valorile extremitilor segmentului de integrare a, b


i numrul de divizri n.
Not. n cazul n care este necesar calculul integralei cu o eroare, care nu depete o valoare

prestabilit , numrul de divizri n se calculeaz cu ajutorul formulei

Pasul 2. Se calculeaz lungimea segmentului elementar


. S 0.
Pasul 3. Pentru toi i de la 0 la n1:
.
a) Se calculeaz valorile
.
b) Se calculeaz aria dreptunghiului elementar:
c) Aria calculat se sumeaz cu ariile precedente: S S + Si.
Pasul 4. Se afieaz aria total calculat S. SFRIT.
Exemplul 3: S se calculeze integrala definit

, utiliznd metoda drept

unghiurilor, variaia dreptunghiurilor de stnga, pentru 10, 100, 1 000 de divizri.


Atribuirea valorilor iniiale se face direct n program. Pentru fiecare numr de divizri
pe ecran se va afia valoarea calculat i numrul de divizri, separate prin spaiu.

56

Pentru dreptunghiurile de dreapta, algoritmul se deosebete doar n pasul 3 prin diapazonul valorilor pe
care le primete indicele i: de la 1 la n.

program cn15;
const r=3;
var S, a, b, h : real;
j,i,n:integer;
function f(x:real): real;
begin f:=sqr((x* sin(x)));end;
begin a:=0; b:=pi; n:=1;

for j:=1 to r do

begin S:=0; n:=n*10;

h:=(b-a)/n;

for i:=0 to n-1 do
S:=S+ h*f(a + i*h);

writeln (n=,n, I=,S:0:6);

end;
end.

Rezultate:

n=10 I=4.381796
n=100 I=4.382315
n=1000 I=4.382315

Exemplul 4: S se calculeze integrala definit

, utiliznd metoda

dreptunghiurilor, variaia dreptunghiurilor de dreapta, cu o eroare de calcul ce nu


depete valoarea = 0,001. Atribuirea valorilor iniiale se face direct n program. Pe
ecran se va afia valoarea calculat a integralei i numrul de divizri necesare pentru
a obine precizia cerut, separate prin spaiu.
Rezolvare: Numrul necesar de divizri poate fi determinat analitic.
Prin calcule elementare se determin valoarea M = 6:
.
program cn16;
var S, a, b, e, h, M : real;
j,i,n:integer;
function f(x:real): real;
begin f:=sin(x)* sin(2*x)* sin(3*x);end;
begin a:=0; b:=1; e:=0.001; M:=6;

n:=trunc(M*(b-a)*(b-a)/(2*e))+ 1;

S:=0; h:=(b-a)/n;

for i:=1 to n do
S:=S+ h*f(a + i*h);

writeln (n=,n, I=,S:0:6);
end.

Rezultate:

n=3001 I=0.278729

57

ntrebri i exerciii
Care este diferena dintre metoda dreptunghiurilor de mijloc i variaiile sale?
Care este relaia dintre numrul de divizri ale segmentului de integrare i eroarea de calcul

avariaiilor metodei dreptunghiurilor?


Care
dintre variaiile metodei dreptunghiurilor este mai exact? De ce?

Scriei
un program care calculeaz integrala definit prin metoda dreptunghiurilor de stnga, de mijloc,

de dreapta. Utilizai un numr variabil de divizri (de exemplu 10, 100, 1 000).

a)
d)

b)

e)

c)
f)

Explicai diferena dintre rezultatele obinute pentru valori diferite ale numrului de divizri.
Verificai rezultatele obinute folosind calculatorul on-line pentru integrale definite:
www.solvemymath.com/online_math_calculator/calculus/definite_integral.
Scriei un program care calculeaz integrala definit prin metoda dreptunghiurilor cu o eroare
care nu va depi valoarea prestabilit = 0,005; = 0,0005; = 0,00005. Valoarea M urmeaz
s fie determinat prin metode analitice:
a)

b)

; c)

Pentru fiecare valoare a erorii se va afia valoarea calculat a integralei i numrul de divizri,
pentru care se obine aceasta.
Scriei un program ce va determina, folosind variaiile metodei dreptunghiurilor, care dintre
integralele definite de mai jos este mai mare:
a)

sau

b)

sau

5.3. Formula trapezelor


n paragrafele precedente, pentru aproximarea valorii integralei au fost folosite
dreptunghiuri figuri geometrice, suprafaa crora se calculeaz prin formule elementare.
Unneajuns al acestei metode este numrul mare
de divizri, necesare pentru obinerea unor rezul
tate suficient de exacte. Este logic aproximarea mai
exact a integralei prin alte figuri geometrice, aria
crora poate fi calculat prin formule elementare.
Una dintre figurile care permit acest lucru este
trapezul (fig. 5.6).
se va
Pentru calculul numeric al
Fig. 5.6. Pe fiecare din segmentele elemen
tare n care este divizat [a, b], valoarea
integralei definite este aproximat de aria
unui trapez. Latura superioar a trapezului
este segmentul cu extremitile n punctele
de coordonate (xi, f (xi)), (xi+1, f (xi+1))

58

folosi, la fel ca pentru metoda dreptunghiu


rilor,odivizare a segmentului de integrare n
nsegmente elementare de lungime egal. Lun
gimea h a unuisegment elementar se determin
conform formulei

, iar valorile xi ale

punctelor care formeaz divizarea prin formula:


xi = a + ih, i = 0, , n.
Ca rezultat al divizrii se obine un set de tra
peze cu nlimi egale (h). Bazele trapezuluii snt
segmentele verticale care unesc punctele xi i xi+1
cu graficul funciei f (x). Lungimile bazelor snt
corespunztor f (xi) i f (xi+1) (fig. 5.7).
Aria trapezului elementar determinat de punc
tele xi i xi+1 va fi calculat dup formula

.
Prin urmare, pe [a, b] valoarea calculat a inte
gralei va fi:

Fig. 5.7. Aproximarea valorii integralei


definite pe un segment elementar prin aria
trapezului determinat de axa 0x, dreptele
x = xi , x = xi+1 i segmentul cu extremitile (xi, f (xi)), (xi+1, f (xi+1))

.
Eroarea metodei
La fel ca n cazul formulei dreptunghiurilor, eroarea de calcul la integrare va fi cerce
tat casuma integralelor erorilor de aproximare a funciei f (x) printr-o funcie liniar pe
fiecare segment elementar.
Eroarea de integrare pe segmentul [a, b] este considerat ca fiind suma erorilor de
integrare pe segmentele elementare i este dat de formula:

,
unde M supremul f(x) pe [a, b], h lungimea unui segment elementar.
n cazul cnd este necesar calculul integralei prin metoda trapezelor cu o eroare
de calcul care nu depete o valoare dat , numrul necesar de divizri ale seg
mentului de integrare, care asigur o eroare ce nu depete valoarea predefinit,
poatefideterminat apriori din relaia
sau

echivalent cu

Algoritmizarea metodei
Pasul 1. Iniializare: Se introduc valorile extremitilor segmentului de integrare a,
b i numrul de divizrin.
Not. n cazul n care este necesar calculul integralei cu o eroare ce nu depete o valoare presta
bilit , numrul de divizri n se calculeaz cu ajutorul formulei

Pasul 2. Se calculeaz lungimea segmentului elementar

. S 0.

59

Pasul 3. Pentru toi i de la 0 la n 1:


a) Se calculeaz valorile xi a+ih; xi+1 a + (i+1)h.
b) Se calculeaz aria trapezului:

c) Aria calculat se sumeaz cu ariile precedente: S S + Si.


Pasul 4. Se afieaz aria total calculat S. SFRIT.
Exemplul 1: S se calculeze integrala definit

, utiliznd metoda

trapezelor, pentru 20, 40, 80 de divizri ale segmentului de integrare. Atribuirea


valorilor iniiale se face direct n program. Pentru fiecare numr de divizri pe ecran
se va afia valoarea calculat i numrul de divizri, separate prin spaiu.
Rezolvare: Numrul de divizri ale segmentului de integrare se modific de la caz
la caz prin formula n 2n.
program cn17;
const r=3;
var S, a, b, h : real;
j,i,n:integer;
function f(x:real): real;
begin
f:=1/(sqr(sqr(sin(x)))+sqr(sqr(cos(x))));end;
begin
a:=0; b:=2*pi; n:=10;
for j:=1 to r do
begin
S:=0; n:=n*2;
h:=(b-a)/n;
for i:=0 to n-1 do

S:=S+ h*(f(a + i*h)+f(a+(i+1)*h))/2;

writeln (n=,n, I=,S:0:11);
end;
end.

Rezultate:

n=20 I=8.88312405500
n=40 I=8.88576626920
n=80 I=8.88576587630

Exemplul 2: S se calculeze integrala definit

, utiliznd

metodatrapezelor, cu o eroare de calcul ce nu depete valoarea = 0,001. Atri


buirea valorilor iniiale se realizeaz direct n program. Pe ecran se va afia
valoareacalculat a integralei i numrul de divizri necesar pentru a obine exactitatea
cerut.
Rezolvare: Numrul de divizri ale segmentului de integrare se calculeaz direct cu
ajutorul formulei

60

. Prin calcule elementare se stabilete M = 42.

program cn18;
var S, a, b, e, h, M : real;
j,i:integer;
n:longint;
function f(x:real): real;
begin
f:=3*x*x*x-7*x*x+2;end;
begin
a:=1; b:=3; e:=0.001; M:=42;
n:=trunc(sqrt(M*(b-a)*(b-a)*(b-a)/(12*e)))+ 1;
S:=0;
h:=(b-a)/n;

for i:=0 to n-1 do

S:=S+ h*(f(a + i*h)+ f(a + (i+1)*h))/2;

writeln (n=,n, I=,S:0:9);
end.

Rezultate:

n=168 I=3.333852986

ntrebri i exerciii
Determinai condiiile n care poate fi aplicat metoda trapezelor.
Care este deosebirea dintre metoda dreptunghiurilor i cea a trapezelor?
Descriei algoritmul metodei trapezelor pentru calculul numeric al integralei.
Care dintre metodele studiate de calculul numeric al integralei definite este mai exact?
Motivai.

Calculai integralele definite utiliznd metoda trapezelor pentru 10, 20, 30 de divizri ale
segmentului de integrare:
a)

; c)

; e)

b)

; d)

; f )

;
.

Scriei un program care calculeaz integrala definit prin metoda trapezelor cu o eroare ce nu
va depi valoarea prestabilit = 0,003; = 0,0003; = 0,00003. Valoarea M urmeaz s fie
determinat prin metode analitice:
a)

; b)

; c)

61

Test de evaluare
I Selectai rspunsul corect:

1. Metoda dreptunghiurilor permite calculul:


a) integralei definite;
b) integralei nedefinite;

c) ambelor tipuri de integrale.

2. Pentru acelai numr de divizri ale segmentului de integrare, o eroare mai mic va fi obi
nut pentru:
a) metoda dreptunghiurilor (de mijloc);
c) metoda dreptunghiurilor (de dreapta);
b) metoda dreptunghiurilor (de stnga);
d) metoda trapezelor.
3. Numrul de divizri ale segmentului de integrare, necesare pentru calculul integralei definite
cu o eroare ce nu depete valoarea prestabilit , poate fi determinat apriori:
a) numai pentru metoda trapezelor;
c) pentru ambele metode;
b) numai pentru metoda dreptunghiurilor;
d) pentru niciuna din metode.
4. Fie

, n numrul de divizri ale segmentului de integrare, iar

. Stabilii

corelaiile dintre formulele de calcul ale integralei definite din coloana stng i denumirile
metodelor respective din coloana dreapt:

5. Fie

Dreptunghiuri de mijloc
Dreptunghiuri de stnga

Dreptunghiuri de dreapta

Trapeze

, valoarea maxim admisibil a erorii de calcul, M supremul |f(x)| pe [a, b].

Care dintre formulele de mai jos permite determinarea apriori a numrului de divizri ale
segmentului de integrare, ce vor asigura o eroare de calcul fr a depi valoarea pentru
metoda dreptunghiurilor de mijloc:
a)

; b)

; c)

II Calculai integralele definite, folosind programele realizate anterior. Pentru fiecare

valoare calculat se va afia o linie care va conine cuvntul Rspuns: urmat, dup un
spaiu, de soluia calculat cu ase cifre zecimale:
1. Metoda dreptunghiurilor de stnga:
de integrare.

2. Metoda dreptunghiurilor de mijloc (a trapezelor)3:


zri ale segmentului de integrare.
3

62

Opional.

pentru 1 000 de divizri ale segmentului


pentru 5 000 de divi

Capitolul 6

Concepte generale despre baze de date


Dup studierea acestui capitol, vei fi capabili s:
explicai sensul termenilor dat elementar, structur de date, baz de date;
recunoatei date elementare, structuri de date i baze de date;
descriei structura bazelor de date ierarhice, n reea i relaionale;
recunoatei modelul conceptual al unei baze de date.

6.1. Noiuni i concepte despre date i despre baze de date


6.1.1. Date elementare i structuri de date
Data este un model de reprezentare a informaiei, accesibil unui procesor (om,
program etc.), model cu care se poate opera pentru a obine informaii noi.
Data elementar este o entitate indivizibil att n raport cu informaia pe care o repre
zint, ct i n raport cu procesorul logic (programul) sau cel fizic (unitatea central care
o prelucreaz).
Din punct de vedere logic, data elementar este caracterizat de:
a) identificatorul datei;
b) valoarea datei;
c) atributele datei.
Identificatorul datei se folosete pentru a apela (a accesa) aceast dat.
Valoarea datei este coninutul zonei de memorie n care este stocat data. Domeniul
de definiie al datei este mulimea valorilor pe care le poate lua data n procesul pre
lucrrii ei.
Atributele datei stabilesc caracteristici specifice datei. Unul dintre cele mai importante
atribute ale datei este tipul, care definete apartenena datei la o anumit clas de date.
Fiecrui tip de date i corespunde un model de reprezentare intern.
Exemplul 1: Declaraia var c: integer, din Pascal, definete variabila c care n orice
moment de timp al execuiei programului identific o dat elementar de tip integer
ce va ocupa o zon de memorie de doi octei. Domeniul de definiie al tipului integer
este mulimea numerelor {32 768, 32 767, ..., 32 767}. n urma instruciunii c:= 8,
n zona de memorie menionat se va stoca valoarea 8.
Exemplul 2: Valorile tipurilor simple din Pascal snt date elementare.
Structura de date este un ansamblu de date, ntre elementele cruia snt stabilite
anumite relaii care definesc metodele de identificare i prelucrare a acestor date. Structura

63

de date poate fi compus din date elementare sau din alte structuri de date. Fiecare compo
nent a structurii de date poate fi localizat cu ajutorul identificatorului ei sau prin poziia
ei n cadrul structurii.
Exemplul 3: Valorile tipului record din Pascal snt structuri de date ale cror compo
nente (cmpurile) pot fi apelate folosind numele lor, adic identificatorii cmpurilor.
Un masiv este o structur de date, ale crui componente (elementele masivului) pot
fi apelate utiliznd poziia acestei componente (adic indicele ei).
Principalele caracteristici ale unei structuri de date snt:
a) Omogenitatea. O structur omogen are toate componentele de acelai tip. Astfel,
nregistrrile (valori de tip record) snt structuri neomogene, iar masivele structuri
omogene;
b) Modul de acces al componentelor. Componentele unei structuri pot fi accesate direct
sau secvenial. De exemplu, fiierele text snt structuri de date cu acces secvenial;
c) Stabilitatea structurii. Dac pe parcursul execuiei programului o structur nu-i
schimb numrul de elemente i relaiile dintre ele, atunci aceast structur este
static. n caz contrar, o astfel de structur se numete structur dinamic. De exemplu,
listele nlnuite snt structuri dinamice, iar nregistrrile structuri statice;
d) Timpul de utilizare. Structurile pot fi permanente sau temporare. De exemplu, fiie
rele externe snt structuri de date permanente, iar masivele structuri temporare.

6.1.2. Baze de date


Pn n prezent am prelucrat diferite tipuri de date i structuri de date utiliznd un
limbaj de programare sau o aplicaie software (editor de texte, procesor tabelar etc.). Cea
mai complex structur de date prelucrat a fost fiierul.
Evident, informaiile despre o firm, companie sau instituie pot fi pstrate n fiiere.
De exemplu, n cazul unui liceu, se pot crea fiierele Profesori, Elevi, Clase, Discipline etc.,
n care se vor stoca datele, respectiv, despre profesori, elevi, clase, discipline studiate etc.
Pentru a pstra informaii despre repartizrile profesorilor pe clase, se va crea alt fiier,
Profesor_Clasa, pe baza coninuturilor fiierelor Profesori i Clase. S presupunem c un
ef de studii proaspt angajat creeaz acest fiier. Dac informaia despre un profesor (din
fiierul Profesori) este inexact, atunci ea va aprea eronat i n tabelul Profesor_Clasa.
Eventual, aceeai greeal va fi i n fiierul Orarul_leciilor. Sesiznd-o, eful de studii va
fi nevoit s corecteze pe rnd toate cele trei fiiere. Mult mai simplu ar fi dac actualiznd
fiierul Profesori, automat vor fi actualizate i toate fiierele care l-au utilizat. n acest
mod, s-ar asigura integritatea datelor.
n afar de complexitatea actualizrilor, metoda prelucrrii datelor prin fiiere inde
pendente are i alte dezavantaje:
Prezena acelorai date n cteva fiiere independente poate duce la duplicarea datelor,
deci i la consumul mare de memorie.
Dificultatea obinerii informaiilor spontane rezid din independena fiierelor (de
exemplu, pentru a obine lista profesorilor de sex feminin care predau tiinele exacte n
clasa a 10-a, profil real, trebuie prelucrate cel puin fiierele Profesori, Clase, Discipline).
Formatele incompatibile de fiiere ncetinesc prelucrarea informaiilor (de exemplu,

64

fiierele generate cu diferite limbaje de programare este posibil s aib formate diferite,
deci va fi necesar o aplicaie care le va transforma n fiiere cu acelai format).
Acestea i alte probleme pot fi rezolvate dac se folosete o structur de date de tip
baz de date.
O baz de date este un ansamblu de informaii (date), organizate ntr-un mod special,
fapt care faciliteaz stocarea i extragerea lor. Informaiile dintr-o baz de date snt
pstrate sub form de nregistrri sau de fiiere, ntre care exist legturi logice. n afar
de depozitul de informaii, baza de date conine descrierea lor: tipul, structura, modul
de organizare i relaiile dintre ele.

ntrebri i exerciii
Numii tipurile de date studiate. Care dintre ele snt:

a) tipuri de date elementare;


b) tipuri de date structurate?
Selectai datele elementare: simbol, numr real, ir de caractere, masiv de numere, element al
unei mulimi, numr ntreg, valoarea false, fiier.
Care este domeniul de definiie al tipului:
a) integer;
b) char;
c) lit_M declarat astfel type lit_M = A.. Z;
d) boolean?
Caracterizai structurile de date:
a) mulime;
b) masiv;
c) nregistrare;
d) list nlnuit;
e) fiier.
Repere: omogenitate, mod de acces, stabilitate i timp de utilizare.
Explicai sensul noiunii baz de date.
Argumentai de ce pentru pstrarea i prelucrarea informaiei unei companii este mai avantajos
utilizarea unei baze de date comparativ cu utilizarea unui sistem de fiiere.
Care snt deosebirile dintre o baz de date i o structur de date?

6.2. Tipuri de baze de date


Dup cum vom vedea n capitolul urmtor, un pas important n elaborarea bazelor
de date este proiectarea modelului conceptual de date al bazei, care nu depinde deparame
trii fizici ai mediului de pstrare a datelor i definete modul lor de organizare.
Modelul conceptual al unei baze de date reprezint o descriere general a bazei de date
cu ajutorul limbajului natural, al celui matematic, al diagramelor i organigramelor, al
graficelor i al altor mijloace nelese de cei care elaboreaz baza de date.

Cele mai rspndite modele conceptuale snt:


a) ierarhic (sau arborescent);
b) reea;
c) relaional.

65

n funcie de modelul ei conceptual, baza de date se numete ierarhic, n reea sau


relaional.
Entitile (coleciile de date) ale bazei de date ierarhice (hierarhical database) snt
organizate sub form de noduri, la care snt conectate ramurile unui arbore. Fiecare nodse
subordoneaz cel mult unui nod de nivel ierarhic imediat superior (numit nod-printe)
i poate fi legat cu niciunul, unul sau cu cteva noduri de nivel inferior (numite noduricopii).
Exemplu: Baza de date a adreselor Internet are urmtorul model ierarhic:
www
Nume de domenii-ri sau domenii speciale
md

ro

ru

uk

com

org

Nume de domenii-organizaii sau reele


ust

ase

usm

edu

weten

Nume de domenii-departamente sau subreele


iti

moodle

cie

n cazul bazei de date n reea (network database), entitile la fel snt aranjate ierarhic,
ns unui nod-copil poate s-i corespund cteva noduri-printe.
Exemplu: Baza de date a unei ramuri industriale poate avea urmtorul model:

O baz de date relaional (relational database) are cel mai flexibil model conceptual
de organizare a datelor. Parcurgerea entitilor unei astfel de baze nu este ierarhic.
Modelul relaional este simplu, dar riguros din punct de vedere matematic. Pentru
prima dat acest model a fost propus n 1970 de savantul Edgar Frank Codd.

Edgar Frank Codd (23.08.1923, Insula Portland, Anglia 18.04.2003, Williams Island, Florida, SUA) informa
tician american de origine englez care, lucrnd pentru IBM, ainventat modelul relaional pentru gestiunea
bazelor de date. Pentru contribuiile sale n domeniul informaticii, n 1981 obine Premiul Turing, considerat
Premiul Nobel pentru Informatic.

66

Baza de date relaional este format din tabele, denumite relaii. Fiecare tabel este
format din rnduri i coloane. Rndurile se numesc nregistrri de date, iar coloanele
cmpuri de date. Capul de tabel (sau antetul tabelului) definete structura tabelului. Prin
crearea unui tabel se subnelege, de fapt, definirea capului de tabel.
n figura 6.1 este reprezentat o parte din schema conceptual a unei baze de date
relaionale.
Tabelul Clase
Cod_clasa

An_clasa

Nume_clasa
Tabelul Elevi

Cod_elev

Cod_clasa

Nume_elev

Prenume_elev

Tabelul Note
Cod_nota

Cod_elev

Cod_disciplina

Nota

Tabelul Discipline
Cod_disciplina

Nume_disciplina
Fig. 6.1

ntre tabelele unei baze de date relaionale exist interdependene (despre care vom
afla mai detaliat n urmtoarele capitole).
Observaie: n continuare vom examina doar baze de date relaionale.

ntrebri i exerciii
Descriei structura bazelor de date:

a) ierarhice;
b) n reea;
c) relaionale.
Stabilii tipul bazei de date tiind c:
a) ntre fiecare dou entiti ale bazei exist o legtur;
b) entitile bazei snt noduri ale unui arbore binar;
c) o entitate este legat cu toate celelalte entiti i alte legturi nu exist;
d) informaiile din baz snt organizate n zece tabele.
Reprezentai schematic un model ierarhic pentru o baz de date cu informaii despre:
a) un liceu;
b) un magazin de produse alimentare;
c) o bibliotec.
Rezolvai exerciiul pentru cazul:
a) modelul reea;
b) modelul relaional.
Stabilii tipul bazei de date a numerelor de telefoane fixe din ar.

67

Capitolul 7

Elaborarea i gestiunea bazelor de date


Dup studierea acestui capitol, vei fi capabili s:
descriei etapele de elaborare a unei baze de date;
explicai rolul persoanelor antrenate n elaborarea bazelor de date;
descriei structura i funciile sistemelor de gestiune a bazelor de date;
recunoatei structura tabelelor unei baze de date relaionale;
identificai tipul relaiei dintre dou tabele;
alegei sau s creai o cheie primar pentru un tabel;
aplicai unele principii de proiectare a bazelor de date la elaborarea modelului
conceptual al bazei.

7.1. Elaborarea unei baze de date


7.1.1. Aspecte generale
Un sistem de baz de date reprezint un sistem de organizare i de prelucrare a bazei
de date i este format din baza de date propriu-zis i dintr-un ansamblu de programe
prin care se asigur gestionarea i prelucrarea complex a datelor.
Prin proiectarea sau elaborarea unei baze de date se subnelege crearea sistemului
acestei baze de date.
Proiectarea unei baze de date const, de regul, din urmtoarele etape:
1. Etapa de analiz. Se analizeaz domeniul de date i se depisteaz cerinele tuturor
categoriilor de utilizatori ctre sistemul de baz de date, precum i operaiile pe care le
va gestiona acest sistem. n urma acestei analize se proiecteaz modelul conceptual al
bazei de date. De asemenea, se stabilete structura interfeei principale a sistemului de
baz de date i a celor auxiliare.
2. Etapa de programare. Se creeaz componentele logice (programele): interfaa
principal, aplicaiile de introducere/actualizare/prelucrare a datelor, cele de interogare
a bazei de date i de extragere a informaiilor.
3. Punerea n funciune i exploatarea sistemului de baz de date. Baza de date se
completeaz cu date (nregistrri). n continuare se realizeaz operaii de actualizare, de
consultare i de ntreinere ulterioar (inclusiv dezvoltare) a sistemului de baz de date.
Elaborarea i ntreinerea unei baze de date se realizeaz, n genere, de un grup de
persoane: administratori (care stabilesc structura iniial a bazei de date, modul de
memorare a datelor la nivel fizic; acord utilizatorilor drepturi de acces la baza de date,
asigur securitatea datelor, modific structura i dezvolt baza de date), programatori
(care scriu programele n limbaje de programare), proiectani (care realizeaz designul
interfeelor bazei de date) etc.

68

Observaie: Exist sisteme computerizate moderne, numite Sisteme de Gestiune a


Bazelor de Date (SGBD), care au fost elaborate special pentru a crea sisteme de baz de
date. Mai detaliat aceste SGBD-uri vor fi examinate n paragraful urmtor.

7.1.2. Proiectarea entitilor unei baze de date relaionale


n capitolul precedent am menionat c entitile unei baze de date relaionale snt
tabelele n care se pstreaz nregistrri de date (rnduri de date).
Capul de tabel (sau antetul tabelului) definete structura tabelului. Prin crearea unui tabel se
subnelege, de fapt, definirea capului de tabel, adic descrierea cmpurilor (a coloanelor) tabelului.
Exemplu: Considerm o baz de date, denumit Liceu, n care snt stocate informaii despre
un liceu. Tabelul Elevi al acestei baze de date pstreaz informaii despre elevii liceului:
Tabelul Elevi
Cod_elev
e001
e002
e003

Nume_elev
Bacinschi
Belobrov
Brnc

Pren_elev Cod_clasa Data_elev Foto_elev Telefon Gen_elev


Sabina
c01
28.09.1993 Package 29-82-54
F
Andreea
c01
18.10.1993 Package 44-26-48
F
Carmen
c01
20.03.1993 Package 67-46-64
F

La descrierea fiecrui cmp al unui tabel se specific numele i tipul cmpului.


a) Numele cmpului trebuie s fie unic n cadrul tabelului. Datele unui cmp snt omogene;
b) Tipul cmpului definete tipul valorilor cmpului (numeric, ir de caractere, text
mare, dat calendaristic, logic, imagine etc.).
Astfel, primul cmp are numele Cod_elev i tipul ir de caractere, iar al cincilea cmp
numele Data_elev i tipul Dat calendaristic.
Fiecare valoare din cmpul Cod_elev al tabelului Elevi corespunde unei singure nregistrri.
Cmpul ale crui valori identific fiecare nregistrare a tabelului se numete cheie primar.
Evident, un cmp este cheie primar doar dac valorile lui nu snt nule i nu se repet.
Se recomand ca fiecare tabel al unei baze de date s conin un cmp-cheie primar.
Uneori, rolul cheii primare i poate reveni ctorva cmpuri (dac acestea mpreun iden
tific univoc rndurile tabelului).
Dac valorile unui cmp se repet, atunci acest cmp se numete cheie secundar. Astfel,
cmpul Cod_elev este cheie primar, iar Cod_clasa cheie secundar ale tabelului Elevi.
De regul, fiecare tabel al unei baze de date relaionale se afl ntr-o legtur cu cel
puin un alt tabel al aceleiai baze. Exist trei tipuri de relaii ntre tabele:
a) unu la unu;
b) unu la muli;
c) muli la muli.
ntr-o relaie de tipul unu la unu (se noteaz 1:1), fiecrei nregistrri a unui tabel i
poate corespunde cel mult o nregistrare a celuilalt tabel i invers. Acest tip de relaie se
obine atunci cnd un tabel, avnd prea multe cmpuri, este divizat n dou tabele. n acest
caz cmpurile primare ale tabelelor vor avea date identice.
De exemplu, ntre tabelele Elevi i Adrese_elevi a fost creat o relaie de tipul unu la unu.
Observm c ambele tabele au acelai cmp-cheie primar Cod_elev cu date identice.

69

Tabelul Adrese_Elevi
Cod_elev
e001
e002

Loc_elev
Chiinu
Stuceni

Strada_elev
Mihail Sadoveanu
Viei

Nr_casa_elev
40
9

Ap_elev
23

Schematic aceast relaie este reprezentat n figura 7.1.


n cazul relaiei unu la muli (se noteaz 1: sau 1:M), fiecrei nregistrri a unuitabel
i pot corespunde cteva nregistrri ale celuilalt tabel, iar fiecrei negistrridin tabelul
al doilea i poate corespunde cel mult o nregistrare a primului tabel. Pentru a stabili
oastfel de relaie, primul tabel trebuie s conin o cheie primar, iar cel de-al doilea
ocheie secundar de tip compatibil cu tipul cheii primare a primului tabel.
De exemplu, tabelul Clase se afl n relaia unu la muli cu tabelul Elevi, deoarece fiecrei
clase i corespund civa elevi, iar fiecare elev aparine unei singure clase.
Tabelul Clase
Cod_clasa
c01
c02
c03
c04

Anul_de_studii
10
10
10
10

Nume_clasa
A
B
C
D

Cod_profil
p1
p1
p2
p2

Cheia primar Cod_clasa a tabelului Clase este compatibil cu cheia secundar


Cod_clasa a tabelului Elevi. Schematic aceast relaie este reprezentat n figura 7.2.

Fig. 7.1

Fig. 7.2

Observaie: Cheia secundar n cazul relaiei unu la muli se mai numete cheie strin.
ntr-o relaie muli la muli (se noteaz : sau M:M), fiecrei nregistrri a unui
tabel i pot corespunde cteva nregistrri ale celuilalt tabel i invers. De exemplu, tabelele
Clase i Discipline se afl n relaia muli la muli, deoarece n fiecare clas se predau mai
multe discipline i fiecare disciplin poate fi predat n cteva clase.
Tabelul Discipline
Cod_disciplina
d01
d02
d03
d04

70

Nume_disciplina
Matematica
Informatica
Chimia
Fizica

Tabelul Prof_dis_clasa
Cod_repart Cod_clasa
r001
c01
r002
c01
r003
c01
r004
c01

Cod_dis
d01
d02
d03
d05

Cod_prof
prof01
prof01
prof02
prof04

Relaia muli la muli dintre dou tabele se poate stabili prin dou relaii de tipul unu la
muli. Fiecare dintre cele dou tabele se leag ntr-o relaie unu la muli cu un al treilea tabel.
De exemplu, relaia muli la muli dintre tabelele Clase i Discipline se realizeaz prin
tabelul Prof_dis_clasa (fig. 7.3).

Fig. 7.3

Observaie: Prima nregistrare din tabelul Prof_dis_clasa informeaz c n clasa c01


(adic n clasa a 10-a A) disciplina d01 (adic Matematica) este predat de profesorul
prof01 (datele despre acest profesor se pstreaz n tabelul Profesori, p. 74).

7.1.3. Principii de proiectare


Proiectnd o baz de date relaional, programatorii definesc tabelele astfel, nct ele
s respecte anumite principii (de exemplu, s fie aduse la aa-numitele forme normale).
Unul dintre aceste principii presupune c datele cmpurilor tabelelor trebuie s fie
date elementare (vezi paragraful 6.1 al capitolului 6). Din aceste considerente, adresa
unui elev sau a unui profesor se pstreaz n cteva cmpuri. Este evident c prelucrarea
nregistrrilor ar fi fost mai dificil dac adresa era stocat ntr-un singur cmp.
Pentru ca actualizarea nregistrrilor din tabele s fie optimal (de exemplu, s fie mai
rapid), se recomand excluderea multipl a repetrilor valorilor fiecrui cmp (excepie
fcnd cazul cmpurilor legate cu chei primare ale altui tabel) prin descompunerea
tabelului respectiv n cteva tabele.
De exemplu, datele despre profesori i despre disciplinele pe care ei le predau n clase
snt stocate n patru tabele: Profesori, Discipline, Clase i Prof_dis_clase. Aa cum ntre
aceste tabele exist relaii, pentru a modifica n toate nregistrrile numele unui profesor,
este suficient s efectum schimbarea numelui doar n tabelul Profesori.

ntrebri i exerciii
Numii etapele de proiectare a unei baze de date.
Care snt entitile unei baze de date relaionale?
Explicai principiile de proiectare a unei baze de date relaionale.
Prin ce se deosebete relaia M : M de relaia 1 : M?
Examinai tabelul Elevi al bazei de date Liceu i stabilii tipul valorilor fiecrui cmp al acestui tabel.
Alegei o cheie primar pentru tabelul:
a) Clasa_12 cu cmpurile Numr_de_ordine, Nume_elev, Prenume_elev, Telefon_elev;
b) Angajai cu cmpurile Nume_angajat, Prenume_angajat, Vrsta_angajat, Gen_angajat,
Numr_buletin_de_identitate_angajat;
c) Parcare_auto cu cmpurile Marca_auto, Numr_de_nmatriculare_auto, Foto_auto, Nume_
proprietar_auto;
d) ri cu cmpurile Nume_ar, Suprafa_ar, Capital_ar, Numr_locuitori_ar.

71

Ce tip de relaie se poate stabili ntre tabelele:

a) Vinuri i Productori_de_vinuri;
b) Cri i Autori;
c) Poezii i Autori;
d) Specialiti i Universiti?
Proiectai tabelele bazei de date care va conine informaii:
a) dintr-o agend de telefoane;
b) despre crile bibliotecii personale;
c) despre automobile;
d) despre marile personaliti ale rii noastre.

7.2. Sisteme de gestiune a bazelor de date (SGBD)


7.2.1. Concepte generale despre sisteme de gestiune a bazelor de date
Un sistem de gestiune a bazelor de date este un ansamblu de programe care permit
construirea bazelor de date, introducerea i actualizarea datelor, asigurarea controlului
de acces al acestor date, gestionarea informaiilor din baza de date, precum i crearea
aplicaiilor cu baze de date. Un SGBD exercit urmtoarele funcii:
a) definete baza de date, n sensul c descrie tipurile i structurile de date, relaiile
dintre ele i modalitile de accesare a informaiilor din baz;
b) actualizeaz baza de date, adic permite inserarea, redactarea i tergerea datelor;
c) execut interogri ctre baza de date, n urma crora informaiile se sorteaz sau se
filtreaz dup anumite criterii formulate de utilizatori;
d) creeaz date noi, care se obin n baza efecturii unor calcule, inclusiv a totali
zrilor;
e) creeaz rapoarte simple i complexe sub form de tabele, grafice, diagrame etc.;
f) asigur ntreinerea bazei de date, care presupune repararea bazei n cazul unor
defeciuni, compactarea (sau defragmentarea) ei, precum i crearea cpiilor de
siguran att pentru date, ct i pentru obiectele bazei;
g) protejeaz baza de date de accesul care nu este autorizat i stabilete aceast autori
zare pentru acces complet sau partajat.
Software-ul SGBD este format din:
a) Dicionarul de date (Data Dictionary), care conine o descriere a structurii datelor
folosite n baza de date;
b) Limbajul de interogare (Query Language), care asigur accesul la informaiile din
baza de date. Cel mai rspndit limbaj de interogare (folosit n diferite SGBD) este
limbajul SQL (Structured Query Language).
Hardware-ul SGBD poate fi format:
a) dintr-un singur calculator sau
b) dintr-o reea de calculatoare, n care pe calculatorul principal (serverul) se afl pro
gramele-componente din SGBD care administreaz i controleaz accesul ctre
baza de date, iar pe celelalte calculatoare programele destinate utilizatorilor.
Cele mai rspndite SGBD snt Microsoft Office Access, Oracle, FoxPro, Paradox,
dBase, Microsoft SQL Server etc.

72

7.2.2. Sistemul de gestiune a bazelor de date Microsoft Office Access


Microsoft Office Access (n continuare vom spune doar Access) este un sistem de
gestiune a bazelor de date relaionale care funcioneaz n mediul Windows. Prima sa
versiune a fost lansat n anul 1993. Cu ajutorul lui pot fi create baze de date complexe,
avnd pentru acest scop tot instrumentarul necesar. Comparativ cu alte SGBD-uri, este
comod i simplu n utilizare. Pentru crearea interogrilor, formularelor, rapoartelor i
aaltor produse de baze de date, Access pune la ndemna programatorilor i utilizatorilor
un set de programe de asisten, care automatizeaz diferite etape de lucru.
Sistemul Access poate fi lansat n cteva moduri:
executnd un dublu-clic pe referina Access de pe suprafaa de lucru Windows;
selectnd opiunea Microsoft Office Access cu ajutorul meniului Start;
executnd un dublu-clic pe pictograma oricrui fiier cu extensia .mdb.
Fiind lansat Access, putem crea o baz de date, selectnd File New Blanc database
Apare fereastra File New Database. n caseta File name: scriem numele bazei de date
pe care dorim s o crem. Cu ajutorul listei derulante Save in selectm catalogul n care
vom pstra aceast baz de date.
n interiorul ferestrei Access apare fereastra bazei de date cu numele ei.
Suprafeele de lucru ale variatelor versiuni ale sistemului Access nu snt total diferite.
Fiecare dintre aceste suprafee are urmtoarele elemente de baz:
a) bara de titlu Access;
b) bara cu meniuri (File, Edit, View, Insert, Tools, Window, Help) a ferestrei Access;
c) bara cu instrumente Access;
d) fereastra bazei de date cu opiuni (sau file) pentru crearea i gestionarea celor apte
clase de obiecte Access (Tables tabele, Queries interogri, Forms formulare,
Reports rapoarte, Pages pagini, Macros macroinstruciuni, Modules module
cu instruciuni n limbajul Visual Basic for Applications). Obiectele bazei de date se
pot accesa prin intermediul pictogramelor corespunztoare lor, amplasate pe bara
Objects a ferestrei bazei de date;
e) bara cu meniuri a ferestrei de date (Open, Design, New).
n continuare vom explica cum se elaboreaz i se gestioneaz cu Access o baz de
date. Vom crea i vom prelucra baza de date Liceu, care va pstra informaii despre elevii
i profesorii unui liceu.

7.2.3. Structura bazei de date Liceu


Baza de date Liceu va fi format din 8 tabele legate ntre ele (fig. 7.4).
Prezentm structura celor 8 tabele. Atragem atenia c aici snt artate doar cteva
nregistrri ale fiecruia din tabelele 28.
Tabelul 1. Profiluri
Cod_profil
p1
p2

Tabelul 2. Discipline
Nume_profil
Real
Umanist

Cod_dis
d01
d02

Nume_disciplina
Matematica
Informatica

73

Fig. 7.4

Tabelul 3. Profesori
Cod_ Nume_ Pren_ Data_prof Foto_ Salariu CV_prof Casatorit Gen_ Telefon Diriginte
prof prof prof
prof
prof
prof01 Albu Ion 01.03.1968 Package 3500 Grad...
Yes
M 64-41-72 C02
prof02 Moraru Vasile 11.05.1973 Package 3000 S-a ns...
No
M 29-10-16

Tabelul 4. Adrese_prof
Cod_prof
prof01
prof02

Loc_prof
Cricova
Chiinu

Strada_prof
Vinului
Grenoble

Nr_casa_prof
89
81

Ap_prof
77

Tabelul 5. Clase
Cod_clasa
c01
c02

Anul_de_studii
10
10

Nume_clasa
A
B

Cod_profil
p1
p1

Tabelul 6. Elevi
Cod_elev Nume_elev Pren_elev Cod_clasa Data_elev Foto_elev Telefon Gen_elev
e001
Bacinschi Sabina
c01
28.09.1998 Package 29-82-54
F
e002
Belobrov
Andreea
c01
18.10.1998 Package 44-26-48
F

Tabelul 7. Adrese_elevi
Cod_elev
e001
e002

74

Loc_elev
Chiinu
Stuceni

Strada_elev
Mihail Sadoveanu
Viei

Nr_casa_elev
40
9

Ap_elev
23

Tabelul 8. Prof_dis_clasa
Cod_repart
r001
r002

Cod_clasa
c01
c01

Cod_dis
d01
d02

Cod_prof
prof01
prof01

Observaie: Tabelele bazei de date Liceu pot fi descrcate de pe adresa www.bd.ust.md.

ntrebri i exerciii
Descriei structura unui sistem de gestiune a bazelor de date.
Explicai funciile sistemelor de gestiune a bazelor de date.
Cum poate fi lansat SGBD Access?
Examinai suprafaa de lucru a SGBD Access i caracterizai clasele de obiecte Access.
Observai nregistrrile din tabelele bazei de date Liceu i stabilii:
a) profilul clasei n care nva eleva Sabina Bacinschi;
b) numele profesorului care pred Informatica n clasa a 10-a A;
c) denumirea unei discipline predate de profesorul Ion Albu;
d) adresa dirigintelui clasei a 10-a A.

Test de evaluare
1. Care dintre urmtoarele valori snt date elementare n limbajul Pascal:
a) irul de caractere 'Informatica';
b) constanta caracterial 'E';
c) valoarea logic false;
d) vectorul V cu elemente de tip byte;
e) constanta Pi;
f ) numrul 32 109?
2. Stabilii tipul bazei de date, ale crei entiti snt legate ntre ele ca-n imagine:

Argumentai rspunsul.
3. Descriei structura tabelului n care pot fi pstrate informaii despre notele obinute la Mate
matic de elevii clasei a 12-a pe parcursul unui semestru.
4. Alegei o cheie primar pentru tabelul:
a) Lista clasei a 12-a cu cmpurile Numr_de ordine, Nume, Prenume, Data_naterii, Gen;
b) Pagini_Web cu cmpurile Nume_pagin, Adresa_pagin, Limba_pagin, Autor_pagin;
c) Filme cu cmpurile Nume_film, Autor_film, Gen_film, Durata_film.
5. Determinai tipul de relaie ntre tabelele:
a) Mrci_auto i Proprietari_auto;
b) Profesori i Elevi;
c) Copii i Mame;
d) ri i Capitale;
e) Canale_TV i Filme.
6. a) Proiectai tabelele bazei de date Agenda elevului n care se vor stoca informaii din agenda
unui elev.
b) Ce tipuri de relaii exist ntre tabelele proiectate?

75

Capitolul 8

Tabelele principalele obiecte


ale unei baze de date
Dup studierea acestui capitol, vei fi capabili s:
creai tabele;
modificai structura unui tabel;
stabilii proprieti pentru cmpurile tabelului;
creai reguli de validare a datelor care urmeaz a fi introduse n tabel;
elaborai abloane de restricionare a caracterelor ce urmeaz a fi introduse
ntr-un cmp al tabelului;
stabilii relaii ntre dou tabele;
introducei date ntr-un tabel;
editai nregistrrile unui tabel;
modificai aspectul unui tabel;
utilizai expresii pentru crearea regulilor de validare a datelor.

8.1. Crearea tabelelor


Am menionat deja c entitile unei baze de date Access snt tabelele. Cu ajutorul lor
se pot crea celelalte obiecte ale bazei de date: interogri, formulare, rapoarte etc. Prin
urmare, o baz de date relaional nu are sens fr existena tabelelor.

8.1.1. Crearea structurii unui tabel


Prin structura unui tabel se subnelege informaia care descrie cmpurile tabelului:
numrul lor, tipul i proprietile fiecrui cmp, cmpurile care constituie cheia primar etc.
Pentru a defini structura unui tabel:
1. Selectm pictograma Tables de pe bara de obiecte Objects a ferestrei bazei de date
(de fapt, la crearea sau deschiderea unei baze de date aceast pictogram este automat
selectat). n zona de coninut a ferestrei apar opiunile:
Create table in Design view (crearea tabelului n regim de proiectare);
Create table by using wizard (crearea tabelului cu ajutorul unui program de asisten);
Create table by entering data (crearea tabelului prin introducerea direct adatelor).
Executm un dublu-clic pe prima opiune.
Observaie: Pasul 1 este echivalent cu selectarea New Design view.
2. Apare fereastra de dialog de tip Table cu numele implicit Table1 (fig. 8.1). Ea este
format din dou zone:

76

a) zona pentru descrierea


structurii documentu
lui;
b) zona descrierii propriet
ilor cmpului selectat din
prima zon (Field Properties).
Zona pentru descrierea
structurii documentului este
divizat n trei coloane:
Field Name (identificato
rul cmpului);
Data Type (tipul cmpu
lui, adic al valorilor lui);
Description (descrierea
cmpului).
Astfel, pentru fiecare cmp
al tabelului ce urmeaz a fi cre
at se precizeaz identificatorul,
Fig. 8.1
tipul i descrierea cmpului.
Identificatorul cmpului poate conine diferite caractere, n afar de semnele . , !, [,
], spaiul de debut i caracterele care nu snt vizibile (de exemplu, returul de car).
Lungimea identificatorului cmpului nu poate fi mai mare dect 64 de caractere.
Tipurile cmpurilor acceptate de Access snt prezentate n urmtorul tabel:
Denumirea
tipului
Text
Memo
Number
Date/time
Currency
AutoNumber
Yes/No
OLE Object
Hiperlink

Descrierea valorilor tipului


iruri de caractere alfanumerice. Pn la 255 de caractere
Texte mari. Pn la 64 Ko
Numere
Date calendaristice
Valori monetare
Numerele naturale 1, 2, 3, ... inserate n ordine i n mod automat la
adugarea unei nregistrri
Valorile Yes sau No
Imagini sau sunete
Adrese Web

Descrierea cmpului (nu este obligatorie) poate conine note explicative referitor la cmp.
Proprietile cmpurilor vor fi descrise mai trziu.
3. Dup ce am definit cmpurile tabelului, stabilim o cheie primar pentru tabel.
Cuacest scop selectm cmpul necesar (ale crui valori nu se vor repeta), apoi alegem
comanda Primary Key din meniul flotant al cmpului (sau executm un clic pe instrumentul
de pe bara cu instrumente Access). n tabelul din figura 8.1, cmpul Cod_prof a fost

77

ales drept cheie primar. Atunci cnd nu definim o cheie primar, sistemul Access va
sugera stabilirea unei astfel de chei imediat dup salvarea tabelului.
Dac utilizatorul va accepta sugestia, atunci sistemul va stabili drept cheie primar
primul cmp de tip AutoNumber sau (dac tabelul nu conine un astfel de cmp) va crea
un astfel de cmp (cu numele implicit ID).
4. Salvm tabelul selectnd comanda Save din meniul File. Apare fereastra Save As n
care scriem numele tabelului.
Exerciiu: Observai denumirile i tipurile cmpurilor tabelului din figura 8.1. Creai
similar tabelul Elevi al bazei de date Liceu, descris n capitolul precedent.

8.1.2. Proprietile cmpurilor tabelului


Proprietile cmpului snt caracteristici care stabilesc un control suplimentar asupra
modului n care snt memorate, introduse sau afiate datele lui. Aceste proprieti depind
de tipul cmpului i se precizeaz n zona inferioar a ferestrei tabelului (fig. 8.1).
1. Proprietatea Field Size determin formatul mrimii datelor cmpului i exist doar
pentru tipurile Text i Number.
Pentru tipul Text se accept valori de la 0 la 255, stabilind astfel limita de lungime
a irului de caractere ce va fi memorat n cmp. Valoarea 50 este implicit.
Pentru tipul Number se poate alege una din valorile Byte, Integer, Long integer (valoare
implicit), Single, Double, Replication ID, Decimal.
2. Proprietatea Format particularizeaz printr-un ablon modul n care vor fi afiate
datele cmpului i exist pentru toate tipurile cu excepia tipului OLE Object.
n cazul tipurilor Text i Memo, ablonul poate fi creat cu ajutorul urmtoarelor
simboluri:
Simbol
@
&
<
>

Descriere
Caracter de text sau spaiu.
Caracterul de text nu este obligatoriu.
Toate caracterele vor fi minuscule.
Toate caracterele vor fi majuscule.
Afieaz caracterul .

Exemplu: ablonul @@-@@-@@> va afia n loc de textul abcdef textul AB-CD-EF.


Pentru tipurile Number i Currency se poate selecta una din valorile General number,
Currency, Euro, Fixed, Standard, Percent sau Scientific.
Formatul tipului Date/Time poate fi General Date, Long Date, Medium Date, Short
Date, Long Time, Medium Time, Short Time. Precizm c dac anul este scris cudou
cifre, atunci pentru valori din intervalul [00, 29] Access subnelege anii 20002029,
iar pentru valori din intervalul [30, 99] anii 19301999.
Exemplu: Formatul Long Date va afia data 28.11.89 astfel: 28 noiembrie 1989.
Tipul Yes/No accept una din formatele Yes/No, On/Off, True/False. n ultimul caz
utilizatorii vor putea scrie n cmp i valorile 1, respectiv, 0.

78

3. Proprietatea Input Mask se folosete la elaborarea unui ablon de restricionare a


caracterelor (se mai spune masc de intrare) ce urmeaz a fi introduse n cmp. Pentru
crearea ablonului snt admise urmtoarele simboluri:
Simbol
0
9

Descriere
Cifr (nu poate fi precedat de + ori ). Introducere obligatorie.
Cifr (poate fi precedat de + ori ) sau spaiu. Introducere opional.
Cifr (poate fi precedat de + ori ) sau spaiu (la salvare este eliminat).
#
Introducere opional.
L
Liter. Introducere obligatorie.
?
Liter. Introducere opional.
A
Liter sau cifr. Introducere obligatorie.
a
Liter sau cifr. Introducere opional.
&
Orice caracter sau spaiu. Introducere obligatorie.
C
Orice caracter sau spaiu. Introducere opional.
Separatori pentru date calendaristice sau pentru clasele numrului (uniti,
.,:;-/
mii, milioane, miliarde etc.). Separatorul predefinit depinde de setrile din
fereastra Regional Setings (poate fi afiat din Panoul de control Windows).
<
Transform simbolurile-litere din dreapta n minuscule.
>
Transform simbolurile-litere din dreapta n majuscule.
!
Foreaz introducerea datelor de la dreapta spre stnga.
Afieaz doar caracterul care urmeaz dup \ (de exemplu, ablonul \M
\
afieaz litera M).
"ir de caractere" Afieaz doar irul de caractere (fr ghilimele).
Password
n loc de simbolurile introduse, se vor afia caractere .

Exemple:
1. ablonul >L<L0\S accept iruri de caractere din 4 simboluri, dintre care primul
este o liter majuscul, al doilea o liter minuscul, al treilea o cifr, ultimul
caracter fiind litera S.
2. Pentru scrierea numerelor de telefon doar de forma (+373 22) XX-XX-XX se va
folosi ablonul "(+373 22)" 00\-00\-00.
Pentru crearea abloanelor se poate folosi programul Input Mask Wizard (se lanseaz
din caseta proprietii Input Mask), care ofer
prin executarea unui clic pe butonul
10 formate uzuale ale mtilor de intrare.
4. Proprietatea Caption specific textul care va fi afiat n calitate de denumire
acmpului n interogri, formulare sau rapoarte. Dac aceast proprietate nu se comple
teaz, atunci Access va folosi n calitate de nume identificatorul cmpului.
5. Proprietatea Default Value stabilete valoarea implicit a cmpului. Apare automat
la inserarea unei noi nregistrri.
6. Cu ajutorul proprietii Validation Rule se pot forma condiii de validare a datelor
care urmeaz a fi introduse n cmp. Condiiile de validare reprezint expresii care se
scriu utiliznd operatori i funcii Access sau VBA (Visual Basic for Applications). De
exemplu, condiia >= 100 permite utilizatorului s introduc ntr-un cmp numeric doar
numere mai mari sau egale cu 100.

79

7. n proprietatea Validation Text se scrie textul care va aprea ntr-o fereastr de


avertizare, dac valoarea introdus n cmp nu respect condiiile de validare din Valida
tion Rule.
8. Proprietatea Required accept doar valorile Yes i No. Valoarea Yes oblig utiliza
torul s completeze cmpul. Este inutil de completat aceast proprietate pentru cheile
primare (deoarece un astfel de cmp nu accept valori vide) sau dac condiia de validare
este Is Not Null (nu este nul).
9. n proprietatea Allow Zero Length de asemenea se poate scrie doar una din valorile
Yes sau No. Ea exist doar pentru cmpurile de tip Text i Memo. Pentru Yes cmpul va
accepta valori de lungime 0, adic iruri vide de caractere, chiar dac proprietatea Required
va fi Yes.
10. Proprietatea Indexed permite (pentru indexul Yes (Duplicates Ok)) sau interzice
(pentru indexul Yes (No Duplicates)) repetarea valorilor n cmp. Indexul existent poate fi
eliminat dac din lista derulant a proprietii se alege valoarea No. Pentru o cheie primar
indexul Yes (No Duplicates) va aprea automat (fig. 8.1) i nu va putea fi modificat.
11. Proprietatea New Values se aplic doar cmpurilor de tip AutoNumber. Pentru
valoarea Increment sistemul Access va genera valori noi n cmp, adugnd 1 la cea mai
mare valoare existent. Dac atribuim proprietii New Values valoarea Random, atunci
cmpul va fi completat cu valori generate aleator.

ntrebri i exerciii
Examinai tabelul Profesori al bazei de date Liceu i descriei structura lui.
Care snt tipurile de date ce pot fi pstrate ntr-o baz de date Access?
Care trebuie s fie tipul unui cmp pentu a putea stoca n el fotografii? Dar adrese de pagini
Web? Biografia unei personaliti?

Ce trebuie s facem pentru ca fiecare nregistrare nou s nu fie acceptat n tabel, dac utiliza
torul nu a completat ultimele dou cmpuri ale lui?

Un cmp care nu este cheie primar nu accept repetri de valori n diferite nregistrri. Care
este cauza?

Cum putem verifica dac n baza de date Liceu exist informaii despre elevi cu aceeai zi de
natere?

Crui an i aparine data:


a) 01.01.01;

b) 30.12.30;

c) 17.12.89;

d) 15.04.28?

Creai un tabel Access care va conine informaii despre o colecie de muzic. Includei cel

puin cmpurile pentru memorarea numelui interpretului, a firmei productoare de nregistrri,


a anului apariiei, a formatului (disc, caset, CD etc.) i a valorii de evaluare atribuite piesei
muzicale, potrivit preferinelor (de exemplu, de la 5 la 10).
Creai un tabel Access care va conine date despre o colecie de reete culinare. Includei cel
puin cmpurile n care se vor stoca denumirile bucatelor, tipurile lor (felurile nti, garnituri,
fripturi, copturi, deserturi etc.), timpul de pregtire, originea bucatelor (moldoveneti, franu
zeti, japoneze etc.).
Alctuii un ablon care va obliga introducerea ntr-un cmp numeric doar a numerelor ntregi:
a) din intervalul [10 99];
b) de trei cifre;
c) negative de dou cifre.
Creai un ablon care va permite introducerea ntr-un cmp a numerelor de identificare a bule
tinelor moldoveneti. Orice buletin moldovenesc are un numr de identificare format dintr-o
liter majuscul, urmat de 8 cifre.

80

8.2. Stabilirea relaiilor dintre tabele


n capitolul 7 am aflat c ntre dou tabele ale unei baze de date relaionale poate exista
una din urmtoarele tipuri de relaie: 1 : 1, 1 : M, M : M.
Sistemul Access folosete pentru afiarea i crearea relaiilor dintre tabele fereastra
Relationships.
Vom examina crearea relaiilor dintre dou tabele printr-un exemplu.
S stabilim relaia 1 : M dintre tabelele Clase i Elevi ale bazei de date Liceu.
1. Executm un clic pe butonul
de pe bara de instrumente sau alegem Tools
Relationships. Apare fereastra Relationships.
de pe bara de instrumente sau selectm Relation
2. Executm un clic pe butonul
ships Show Table. Apare fereastra Show Table (fig. 8.2), din care selectm pe rnd
tabelele Elevi i Clase, confirmnd de fiecare dat alegerea prin apsarea butonului Add.
nfereastra Relationships apar identificatorii cmpurilor tabelelor selectate (fig. 8.3).
3. Cheia primar a fiecrui tabel este mai pronunat fa de celelalte cmpuri. Selec
tm cmpul Cod_clasa al tabelului Elevi, apoi, innd apsat butonul mouse-ului, tragem
cursorul spre cmpul Cod_clasa al tabelului Clase. Apare fereastra Edit Relationships,
ncare automat a fost determinat tipul relaiei 1 : M (Relationship Type: One-To-Many).
De asemenea, putem activa urmtoarele caracteristici ale relaiei (fig. 8.4):
a) Asigurarea integritii refereniale (Enforce Referential Integrity);
b) Actualizarea n cascad a nregistrrilor (Cascade Update Related Fields);
c) Excluderea n cascad a nregistrrilor (Cascade Delete Related Records).
Dac este activat caracteristica Asigurarea integritii refereniale, atunci cmpul
secundar al tabelului subordonat va accepta doar valori ale cmpului cheie primar al

Fig. 8.2

Fig. 8.3

Fig. 8.4

81

tabelului principal. Astfel, n cmpul Cod_clasa al tabelului Elevi vom putea scrie doar
codurile claselor nregistrate n tabelul Clase.
Actualizarea n cascad a nregistrrilor nseamn c la modificarea unei valoriV
din cmpul cheie primar al tabelului principal, automat se vor modifica corespunztor
toate valorile V din cmpul cheie strin al tabelului subordonat. De exemplu, dac vom
schimba n tabelul Clase codul clasei a 10-a A din c01 n c001, atunci fiecare valoare
c01 din cmpul Cod_clasa al tabelului Elevi va fi substituit cu valoarea c001.
Dac este activat caracteristica Excluderea n cascad a nregistrrilor, atunci la
eliminarea unei nregistrri X din tabelul principal se vor elimina toate nregistrrile din
tabelul subordonat, care conin n cmpul cheie strin valoarea din cmpul cheie primar
a nregistrrii X. De exemplu, dac vom exclude din tabelul Clase ultima nregistrare (are
codul c12 i corespunde clasei a 12-a D), atunci din tabelul Elevi vor fi eliminai toi
elevii clasei a 12-a D.

ntrebri i exerciii
Explicai algoritmul de stabilire a relaiei dintre dou tabele Access.
Ce nseamn integritatea referenial a datelor?
Disciplinele colare aparin urmtoarelor arii curriculare:

a) limb i comunicare;
b) educaie socioumanistic (istorie, geografie, educaie civic);
c) matematic i iine (matematic, fizic, chimie, biologie);
d) tehnologii (informatic);
e) sport (educaie fizic).
Deschidei baza de date Liceu. Creai i completai n ea tabelul Arii curriculare, apoi stabilii o
relaie dintre acest tabel i tabelul Discipline.
Care este rolul caracteristicii Cascade Update Related Fields a unei relaii?
Cu ce scop se utilizeaz caracteristica Cascade Delete Related Records a unei relaii?

8.3. Modificarea tabelelor


8.3.1. Introducerea i editarea datelor
Pentru a introduce sau a edita date ntr-un tabel, deschidem acest tabel n regimul
Datasheet View prin executarea unui clic pe butonul
al ferestrei bazei de date.
Comutarea ntre regimurile Datasheet View (regim de editare, fig. 8.5) i Design View
(regim de proiectare) se realizeaz prin intermediul butonului View
de pe bara de
instrumente Access.

Fig. 8.5

La crearea sau modificarea coninutului unei nregistrri, la stnga ei apare un selector de


nregistrare (SI), al crui aspect depinde de starea nregistrrii (vezi tabelul care urmeaz).

82

SI

Starea nregistrrii
nregistrarea curent este selectat.
nregistrare nou, n care se pot introduce date.
Utilizatorul editeaz nregistrarea, iar modificrile nu snt nc salvate.
nregistrarea este blocat de alt utilizator i nu se poate edita (cazul mediului multi
utilizator mediu n care mai multe persoane pot utiliza simultan baza de date).

Pentru gestionarea rapid a nregistrrilor se pot utiliza instrumentele din partea de


, avnd respectiv urmtoarele funcii
jos a ferestrei tabelului:
(de la stnga spre dreapta):
activarea primei nregistrri;
activarea nregistrrii predecesoare celei curente;
afiarea numrului de ordine al nregistrrii curente sau activarea nregistrrii cu
numrul de ordine din caset;
activarea nregistrrii succesoare celei curente;
activarea ultimei nregistrri;
adugarea unei nregistrri noi.
Introducerea i editarea datelor unui tabel se fac prin metode caracteristice lucrului
cu texte. De exemplu, se pot copia date utiliznd memoria Clipboard, iar tergerea lor se
poate realiza folosind tastele Backspace i Delete.
O singur apsare pe tasta Esc anuleaz aciunile de modificare a informaiei din cmpul
curent, iar o dubl apsare pe ea aciunile de modificare a nregistrrii curente.
Nu este obligatoriu de completat toate cmpurile unei nregistrri, cu excepia cm
pului cheie primar (care nu poate conine valori vide) i a celor care au setat cu Yes
proprietatea Required.
Un cmp poate fi selectat prin executarea unui clic pe antetul lui (celula care afieaz
identificatorul cmpului), iar o nregistrare prin executarea unui clic pe antetul ei (celula n
care apare selectorul de nregistrare). Dac dup selectarea unui cmp (sau a unei nregistrri)
nu eliberm butonul mouse-ului i-l poziionm pe urmtorul cmp (respectiv pe urm
toarea nregistrare), vor deveni selectate ambele cmpuri (respectiv ambele nregistrri).
Menionm c asupra datelor sau nregistrrilor se pot efectua urmtoarele operaii:
adugarea unei nregistrri noi naintea celei curente (comanda New Record din meniul
flotant al antetului nregistrrii sau din meniul Insert al meniului principal Access);
tergerea nregistrrii curente (comanda Delete Record din meniul flotant al antetului
nregistrrii sau din meniul Edit al meniului principal Access);
completarea cmpurilor;
copierea coninutului unei celule (comenzile Copy i Paste din meniul flotant al celulei);
copierea unei nregistrri (comenzile Copy i Paste din meniul flotant al antetului
nregistrrii sau din meniul Edit al meniului principal Access).
Observaii:
1. n urma ultimei operaii, utilizatorul va fi obligat s modifice valoarea celulei din
cmpul cheie primar.
2. Unele dintre operaiile menionate se pot efectua i cu ajutorul instrumentelor de
pe bara de instrumente Access.

83

3. Pentru introducerea rapid a datelor se pot folosi comenzile rapide lansate cu ajutorul
combinaiilor de taste.
4. Modificrile unei nregistrri snt automat salvate de Access atunci cnd se trece la
o alt nregistrare sau la nchiderea tabelului.
5. La completarea tabelelor cu nregistrri, mai nti se vor introduce date n tabelele
principale, apoi n cele subordonate.

8.3.2. Modificarea aspectului tabelului


Sistemul Access afieaz n mod implicit datele tabelului respectnd anumite caracte
ristici. De exemplu, nregistrrile tabelului apar ordonate cresctor automat dup valorile
cmpului cheie primar, iar cmpurile lui se succed n ordinea n care au fost create.
Utilizatorul poate schimba modul de prezentare a informaiei dintr-un tabel. Mai exact,
snt permise urmtoarele aciuni de modificare a aspectului tabelului:
a) schimbarea ordinii de afiare a cmpurilor;
b) modificarea ordinii de afiare a nregistrrilor;
c) schimbarea nlimii nregistrrilor sau limii cmpurilor;
d) ascunderea coloanelor;
e) filtrarea nregistrrilor.
Schimbarea ordinii de afiare a cmpurilor se face prin deplasarea lor. Pentru a deplasa
unul sau cteva cmpuri consecutive, selectm aceste cmpuri, apoi, innd apsat butonul
stng al mouse-ului, poziionm indicatorul lui pe cmpul n faa cruia dorim s mutm
cmpurile selectate.
Pentru ca nregistrrile unui tabel s apar ordonate cresctor (respectiv descresctor)
dup valorile unui cmp, selectm acest cmp, apoi executm un clic pebutonul de pe
bara de instrumente (respectiv pe butonul ) sau alegem Records Sort Sort
Ascending (respectiv Records Sort Sort Descending). Similar se face ordonarea dup
valorile ctorva cmpuri consecutive. Menionm c, n acest caz, ordonarea se va face de
la stnga spre dreapta, adic valorile din cmpul din dreapta se vor lua n considerare doar
n cazul n care vor coincide valorile cmpului din stnga.
Aciunile de modificare a nlimii nregistrrilor sau a limii cmpurilor snt similare
cu aciunile de schimbare a nlimii rndurilor sau a limii coloanelor unui tabel ntr-un
redactor de texte ori ntr-un procesor tabelar.
Pentru a ascunde o coloan, o selectm, apoi alegem comanda Hide Columns din meniul
ei flotant sau din meniul Format. Pentru a reafia coloanele ascunse, selectm comanda
Unhide Columns din meniul Format. Apare fereastra Unhide Columns n care alegem
coloanele necesare.
Filtrarea nregistrrilor, adic selectarea acelor nregistrri care respect anumite
condiii, se poate face prin crearea unui filtru (se alege Records Filter Advansed Filter/
Sort) i aplicarea lui (se execut Filter Apply Filter/Sort).
Un filtru poate fi nlturat executnd Records Remove Filter/Sort.
Observaii:
1. Modificrile aspectului tabelului nu snt automat salvate de Access la nchiderea
tabelului. Utilizatorul le poate salva executnd un clic pe butonul Save de pe bara
de instrumente sau lansnd comanda Save din meniul Edit.
2. Modificrile aspectului tabelului nu afecteaz structura tabelului.

84

8.3.3. Modificarea structurii tabelului


Este firesc ca pe parcursul proiectrii (sau chiar al gestionrii) unei baze de date s
apar necesitatea schimbrii structurii unor tabele.
Atenie! Aceste schimbri pot afecta integritatea informaiilor din baza de date. De
exemplu, micorarea dimensiunii unui cmp de tip text poate atrage dup sine trunchierea
valorilor acestui cmp, iar eliminarea unui cmp cheie primar poate duce la tergerea
nregistrrilor tabelului subordonat. De fapt, n funcie de caracteristicile relaiilor dintre
tabele, sistemul Access poate s nu accepte unele schimbri ale structurii tabelului.
Astfel, procesul de modificare a cmpurilor cheie primar sau a cmpurilor cheie
strin se va face doar dup ce vor fi distruse relaiile dintre tabele, urmnd a fi restabilite
ulterior. Pentru a modifica structura unui tabel, acesta trebuie deschis n regimul Design
al ferestrei bazei de date.
View prin executarea unui clic pe butonul
n acest regim snt posibile urmtoarele aciuni:
a) adugarea unui cmp nou;
b) eliminarea unui cmp;
c) schimbarea identificatorului cmpului;
d) modificarea proprietilor cmpurilor;
e) stabilirea unei chei primare;
f) eliminarea unei chei primare.
Aciunile de modificare a structurii unui tabel snt similare cu aciunile de creare
atabelului.

8.3.4. Caracteristica Lookup a cmpurilor


Caracteristica Lookup permite nlocuirea casetelor de text ale cmpurilor cu liste
derulante. Astfel, utilizatorul va putea completa un cmp selectnd o valoare dintr-o list
de valori acceptabile. Coninutul listei poate fi ncrcat dintr-un cmp cheie primar al
unui tabel asociat celui curent sau poate fi creat la stabilirea caracteristicii Lookup.
S alctuim o list derulant cu ajutorul unui program de asisten pentru cmpul
Cod_clasa al tabelului Elevi.
1. Deschidem tabelul Elevi n regim de proiectare. Alegem opiunea Lookup Wizard
din lista derulant a cmpului Cod_clasa.
2. Apare prima caset de dialog Lookup Wizard. Selectm prima opiune, stabilind
astfel c valorile listei care urmeaz a fi creat vor fi luate dintr-un tabel asociat. Opiunea
a doua precizeaz c valorile listei vor fi create la ceilali pai.
3. n urmtoarele dou ferestre alegem tabelul Clase, apoi cmpurile Cod_clasa,
An_de_studii i Nume_clasa. Valorile cmpurilor alese vor aprea n list.
4. n fereastra a patra ajustm limea coloanelor listei i atribuim un nume acestei liste.

ntrebri i exerciii
Ce operaii pot fi efectuate asupra datelor unui tabel?
Care modificri ale tabelului pot afecta structura lui?
Deschidei baza de date Liceu. Adugai tabelului Adrese_elevi cmpul Adresa_Web. Completai
acest cmp pentru primele 10 nregistrri.

85

Deschidei tabelul Elevi n regim de editare:

a) adugai 5 nregistrri n tabel;


b) tergei penultima nregistrare;
c) copiai datele primei nregistrri n cmpurile ultimei nregistrri.
Deschidei tabelul Profesori n regim de editare:
a) afiai datele tabelului n ordinea: numele, prenumele, sexul, telefonul, data naterii a profesorilor;
b) ascundei cmpurile Salariu, CV_prof i Foto_prof;
c) reafiai cmpurile ascunse.
Afiai n ordine alfabetic lista elevilor bazei de date Liceu.
Afiai numele i prenumele elevilor n ordinea descresctoare a vrstei lor.
Afiai lista profesorilor bazei de date Liceu n ordine cresctoare a salariilor lor.

8.4. Crearea expresiilor Access


Examinnd proprietatea Validation Rule a cmpurilor, am menionat c regulile de
validare a datelor care urmeaz a fi introduse n cmp se scriu folosind expresii Access.
Dup cum vom vedea ulterior, expresiile se utilizeaz de asemenea la formularea cererilor
de cutare a datelor i la elaborarea rapoartelor.
O expresie Access este o declaraie de intenie, care conine cel puin un operator i un
operand: constant, identificator sau funcie.

Expresia returneaz o valoare. Un identificator Access este numele unui obiect al


bazei de date. Tabelul, cmpul, interogarea, formularul, raportul i nsi baza de date snt
obiecte. De regul, n cadrul expresiilor identificatorii se scriu ntre simbolurile [ i ].
Identificatorul unui subobiect este format din numele clasei de obiecte i numele
subobiectului delimitate printr-un punct sau printr-un semn de exclamare. n aa mod,
fiecrui obiect i corespunde un singur identificator n interiorul bazei de date.
Totui, uneori, dac nu snt confuzii, n calitate de identificator al subobiectului se
poate folosi doar numele lui.
Exemple: [Elevi].[Nume_elev], [Profesori].[Salariu], [Cod_elev].

8.4.1. Operatori Access


Vom examina 6 categorii de operatori Access.
Operatorii aritmetici (+, -, *, /, \, Mod, ^) se aplic asupra valorilor numerice.
Exemple: 15 \ 6 returneaz 2, iar 15 Mod 6 returneaz 3, deoarece 15 = 6 2 + 3.
Operatorii de comparare compar valorile a doi operanzi i returneaz una din valorile
logice True sau False. n Access se utilizeaz aceiai operatori de comparare i cu aceeai semni
ficaie ca i a operatorilor relaionali din limbajul de programare Pascal: <, <=, =, >=, >, <>.
Operatorii logici Access se aplic asupra operanzilor logici i de asemenea coincid
cu cei din Pascal: And, Or, Not, Xor.
Operatorul de atribuire = atribuie valoare unui obiect, unei variabile sau unei constante.
Operatorul de concatenare + unete dou iruri de caractere n unul.
Ali operatori. Urmtorii operatori nu fac parte din categoriile precedente. Expre
siile care i conin returneaz una din valorile True (sau 1), False (sau 0).

86

Operator
Is
Like
In
Between

Descriere
Se aplic asupra valorii Null (valoarea vid) i verific dac o valoare este sau nu
este vid.
Stabilete dac un ir de caractere respect ablonul specificat de Like. ablonul se scrie
ntre simbolurile "i". ablonul poate s conin caractere de nlocuire (? pentru un
caracter, # pentru o cifr, pentru orice numr de caractere, inclusiv lipsa lor) i liste
de valori. Lista de valori se scrie ntre simbolurile [ i ]. Dac valorile listei snt precedate
de simbolul !, atunci se consider toate valorile cu excepia celor precedate de !.
Stabilete dac o valoare aparine unei liste de valori. Valorile listei se delimiteaz
prin simbolul ;.
Stabilete dac o valoare numeric aparine unui interval.

Exemple:
1. Expresia [Elevi].[Telefon] Is Null returneaz valoarea True doar n cazul n care cmpul
Telefon al tabelului Elevi nu conine nicio valoare (se are n vedere nregistrarea curent).
2. Like "Bov" specific iruri de caractere care ncep cu litera B i se termin cu combinaia
de litere ov. Prin urmare, expresia "Belousov" Like "Bov" returneaz valoarea True.
3. Like "[CK]#?" specific iruri din 3 caractere: primul este una din literele C sau K,
al doilea o cifr, al treilea orice simbol.
4. Like "[5adg]" specific iruri de caractere care se termin cu cifra 5 sau cu una
din literele a, d, e, f, g.
5. Like "[!ae]" specific iruri de caractere care nu se termin cu litera a sau cu literae.
6. Expresia "Duminica" In ("Luni"; "Marti"; "Miercuri"; "Joi"; "Vineri") returneaz valoarea
False, iar expresia 4 In (2; 4; 7; 8) valoarea True.
7. Expresia Between 2 And 10 este echivalent cu expresia >=2 And <=10.
Observaie: La scrierea expresiei condiiei de validare n caseta proprietii Validation
Rule nu se scrie identificatorul primului operand, acesta fiind considerat implicit identi
ficatorul cmpului respectiv. Astfel, regula de validare In ("Luni"; "Marti"; "Miercuri";
"Joi"; "Vineri") va permite utilizatorului s scrie n cmp doar unul din cuvintele Luni,
Marti, Miercuri, Joi, Vineri.

8.4.2. Funcii Access


O funcie returneaz o valoare prin numele ei. Access ofer peste 100 de funcii stan
darde pentru prelucrarea diferitor tipuri de date: numerice, iruri de caractere, calendaris
tice etc. Cele mai uzuale snt prezentate n urmtoarele tabele:
Unele funcii pentru prelucrarea datelor calendaristice
Funcia

Rezultatul returnat

Date()

Data curent
Data calendaristic care se obine adunnd la data D sau scznd din ea
N (n cazul cnd N este negativ) uniti calendaristice de tip T, unde T
poate fi "yyyy", "q", "m", "ww", "d", "h", semnificnd respectiv ani,
trimestre, luni, sptmni, zile, ore
Diferena exprimat n uniti calendaristice de tip T dintre datele D1 i D2
Ora curent

DateAdd(T; N; D)
DateDiff(T; D1; D2)
Time()

87

Now()
Year(D)
Month(D)
Day(D)
WeekDay(D)
Hour(D)

Data i ora curent


Anul scris cu 4 cifre corespunztor datei calendarisice D
Numrul de ordine n an al lunii corespunztoare datei calendarisice D
Numrul de ordine n lun al zilei corespunztoare datei calendarisice D
Numrul de ordine n sptmn al datei calendaristice D (1 corespunde
Duminicii, 2 zilei de Luni etc.)
Ora (numr ntreg de la 0 la 23) corespunztoare valorii calendaristice D

Unele funcii de manipulare a textului


Funcia
Asc(C)
Chr(N)
InStr(S1; S2)
Mid(S; N1; N2)
LCase(S)
UCase(S)
Len(S)
LTrim(S)
RTrim(S)
Trim(S)
Left(S; N)
Right(S; N)
Str(X)
Val(S)

Rezultatul returnat
Codul ANSI al caracterului C
Caracterul al crui cod ANSI este numrul N
Poziia, ncepnd cu care irul S2 se conine n irul S1
Subirul irului S de lungime N2 ncepnd cu poziia N1. Parametrul N2 poate s
lipseasc, ceea ce nseamn c se va returna subirul obinut prin nlturarea
primelor N11 caractere ale irului S
irul de caractere obinut din irul S prin transformarea literelor majuscule
n litere mici
irul de caractere obinut din irul S prin transformarea literelor mici
nmajuscule
Numrul de caractere ale irului S
irul obinut din irul S dup lichidarea spaiilor de debut
irul obinut din irul S dup lichidarea spaiilor de sfrit
irul obinut din irul S dup lichidarea spaiilor de debut i a celor de sfrit
irul format din primele N caractere ale irului S
irul format din ultimele N caractere ale irului S
irul format din simbolurile valorii X n aceeai ordine
Numrul obinut din simbolurile irului S n aceeai ordine (dac acesta are
formatul potrivit)

Unele funcii matematice


Funcia
Abs(X)
Atn(X)
Avg(C)
Count(C)
Max(C)
Cos(X)
Exp(X)
Int(X)
Log(X)

88

Rezultatul returnat
Valoarea absolut a numrului X
Arctangenta (n radiani) a numrului X
Media aritmetic a valorilor cmpului C
Numrul valorilor nevide ale cmpului C
Valoarea maximal din cmpul C
Cosinusul numrului X
Valoarea eX
Partea ntreag a numrului X
Logaritmul zecimal al numrului X

Rnd()
Sgn(X)
Sin(X)
Sqr(X)
Tan(X)

Un numr aleator cuprins ntre 0 i 1


0 dac numrul X este pozitiv, 1 dac numrul X este negativ
Sinusul numrului X
Rdcina ptrat a numrului X
Tangenta numrului X

Observaii:

1. n calitate de parametri ai funciilor pot fi identificatorii cmpurilor (evident, scrii


ntre simbolurile [ i ]).
2. Dac parametrul funciei este o constant calendaristic, atunci ea se scrie ntre
simbolurile " i ".
Exemple:
1. DateAdd("d";50; Date()) returneaz data calendaristic care a fost cu 50 de zile n
urm.
2. Weekday("27.09.1993") returneaz 2, deoarece pe 28 septembrie 1993 a fost luni.
(Luni se consider a doua zi din sptmn.)
3. InStr("Informatica"; "forma") returneaz 3.
4. LCase("INFORMATICA") returneaz textul "informatica".
5. LTrim(" forma") returneaz textul "forma".
6. Sgn( 20) returneaz valoarea 1.

ntrebri i exerciii
Pentru ce se utilizeaz expresiile n Access?
Deschidei baza de date Liceu i scriei o regul de validare pentru cmpul Nr_ore_saptamina
al tabelului Prof_dis_clasa care s admit doar valori ntregi strict mai mari ca 0.

Ce valoare va returna expresia:

a) Mid("Propoziie"; 3);
b) Mid("Calculator"; 1; 3);
c) Int(Rnd()*50);
d) Month("15.11.1990");
e) Left("Tractor"; 5);
f ) 5 In ("4"; "5"; "6"; "7"; "8");
g) Val("25") 25;
h) "R" Like "[TR]*";
i) "R" + Str(Date())?
Scriei o expresie care va returna:
a) salariul mediu al profesorilor din tabelul Profesori;
b) data calendaristic ce va fi peste 5 sptmni dup data curent;
c) a cta zi n an este data curent;
d) a cta zi din sptmn a fost 1 ianuarie 2000;
e) diferena de zile dintre 5 martie 2005 i 5 decembrie 2005.
Scriei pentru cmpul Gen_prof al tabelului Profesori o condiie de validare care ar admite n cmp
doar valorile M sau F.

89

Test de evaluare
1. Stabilii valoarea de adevr a propoziiei: Valorile tabelului fac parte din structura lui.
2. Completai adecvat:
a) Proprietatea ..................... stabilete valoarea implicit a cmpului unui tabel.
b) Dac valoarea proprietii ................................ a unui cmp este .................., atunci Access
nuvaaccepta o nregistrare nou pn cnd utilizatorul nu va completa acest cmp al
nregistrrii.
3. Descriei aciunea de restricionare a ablonului >L0L 0L09.
4. Creai un ablon ce va obliga introducerea ntr-un cmp de text a irurilor formate:
a) din 3 caractere, dintre care primul va fi o liter, iar celelalte dou cifre;
b) din cel puin 4 caractere i cel mult 6 caractere, dintre care ultimul va fi cifr.
5. Care dintre caracteristicile:
Asigurarea integritii refereniale (Enforce Referential Integrity),
Actualizarea n cascad a nregistrrilor (Cascade Update Related Fields),
Excluderea n cascad a nregistrrilor (Cascade Delete Related Records)
trebuie activat pentru ca modificarea unei valori din cmpul cheie primar altabelului
principal s atrag dup sine modificri corespunztoare n tabelul subordonat?
6. Fie tabelul Lista cu urmtoarea structur:

Nume
Popa
...

Prenume
Ion
...

Data naterii
12.08.1979
...

Raionul
Briceni
...

Profesia
profesor
...

Genul
M
...

Descriei aciunile care trebuie realizate pentru a afia datele urmtoarelor cmpuri ale
tabelului Lista n ordinea: Raionul, Data naterii, Prenume, Nume.
7. Completai adecvat:
a) Expresia specific iruri de caractere care ncep cu litera T i se termin
cu litera R.
b) Expresia specific iruri de caractere care nu ncep cu niciuna dintre
literele C, D, E, T.
c) Expresia specific numere ntregi cu modulul mai mare dect 15 i mai
mic dect 40.
8. Care va fi valoarea expresiei:
a) DateAdd("ww";1; "01.09.2010");
b) Year("01.09.30");
c) "PAR" Like "[A-D]"?
9. Scriei pentru cmpul Adrese_email al unui tabel o condiie de validare care ar admite n cmp
doar iruri de caractere ce conin n interiorul lor caracterul @.

90

Capitolul 9

Interogri
Dup studierea acestui capitol, vei fi capabili s:
descriei tipurile de interogri;
creai interogri (prin proiectare independent sau cu ajutorul sistemului de
asisten) care vor selecta date din unul sau mai multe tabele;
executai interogri;
actualizai datele din tabele prin intermediul interogrilor;
obinei cmpuri de date noi n baza informaiilor existente;
creai totalizri ale datelor din unul sau mai multe tabele;
reprezentai compact subseturi de date din unul sau mai multe tabele.

9.1. Noiuni generale despre interogri


Sistemele de gestiune a bazelor de date au fost concepute pentru a pstra informaii
i pentru a automatiza procesul de prelucrare a acestor informaii. Chiar i pentru o baz
de date cu cteva sute de nregistrri, cutarea manual a datelor care satisfac anumite
condiii este anevoioas. Menionm c exist baze de date care conin milioane de nre
gistrri. De exemplu, unii operatori de telefonie mobil din Republica Moldova au peste
1 000 000 de abonai! La ultimele alegeri parlamentare din ar au participat peste 1,5 milioane
de alegtori. Deci, n cazul votrii electronice, se vor prelucra peste 1,5 milioane de nre
gistrri ale unei baze de date!
Cutarea unor date poate implica consultarea ctorva tabele. De exemplu, pentru aafla
ce discipline studiaz un elev anume din baza de date Liceu, trebuie s examinm tabelele
Elevi, Clase, Prof_dis_clasa i Discipline. S ne convingem!
Consultai baza de date Liceu i determinai ce discipline studiaz elevul Dan Moraru.
Exerciiul propus este doar un mic argument menit s demonstreze necesitatea cerce
trii i prelucrrii automatizate a informaiilor unei baze de date.
Pentru selectarea rapid din unul sau din mai multe tabele a seturilor de date care
corespund unor condiii, dar i pentru actualizarea accelerat a nregistrrilor, sistemele
de gestiune a bazelor de date utilizeaz interogri cereri de cutare i/sau de aciune n
conformitate cu aceste condiii.
Interogrile snt obiecte ale sistemelor de gestiune a bazelor de date care reprezint
adresri de cutare, analizare i/sau de modificare a datelor bazei.

Menionm c n calitate de surse de date, n afar de nregistrrile tabelelor bazei,


ointerogare poate folosi rezultatele altei interogri, executate anterior.

91

De exemplu, pentru a afia lista profesorilor cu salariul maximal, se vor crea dou
interogri: prima interogare va gsi valoarea Max a salariului maximal, iar a doua va
selecta din tabelul Profesori nregistrrile cu valorile din cmpul Salariu, egale cu Max
(adic egale cu rezultatul primei interogri).
Interogrile ndeosebi se utilizeaz pentru:
vizualizarea unui subset de nregistrri dintr-un tabel, fr a-l deschide;
afiarea ntr-un singur tabel a informaiilor din cteva tabele;
actualizarea datelor tabelelor (modificri, adugri, excluderi de date);
efectuarea calculelor asupra valorilor cmpurilor i obinerea informaiilor noi;
crearea totalurilor, valorilor medii etc.
n funcie de tipul aciunii i de rezultate, interogrile se clasific n cele:
a) de selecie;
b) de excludere a unor nregistrri;
c) de modificare a unor nregistrri;
d) de creare a cmpurilor rezultante;
e) de grupare i totalizare;
f) ncruciate.
Interogrile de selecie snt cereri formulate n baza unor condiii logice. Ele selecteaz un
subset de date din unul sau mai multe tabele legate ntre ele. De exemplu, cutarea elevilor
nscui pn la 10 ianuarie 1992, afiarea elevilor clasei a 10-a B snt interogri de selecie.
Interogrile de excludere a unor nregistrri reprezint cereri de eliminare dintr-un
tabel a tuturor nregistrrilor care satisfac criteriile logice specificate. De exemplu, cererea
de tergere din tabelul Elevi al bazei de date Liceu a informaiilor despre elevii claselor
a12-a (n legtur cu absolvirea liceului) reprezint o astfel de interogare.
Interogrile de modificare a unor nregistrri schimb valorile unui cmp al tabelului
dup acelai algoritm. De exemplu, mrirea cu 50% a valorilor din cmpul Salariu al
tabelului Profesori poate fi realizat cu ajutorul unei interogri de modificare.
Uneori se pot solicita informaii care trebuie afiate n cmpuri noi. De exemplu, vrsta
elevilor se va prezenta ntr-un cmp aparte. Cu acest scop se va utiliza o interogare de
creare a cmpurilor rezultante.
Interogrile de grupare i totalizare se folosesc pentru sumarea datelor cmpurilor,
obinerea valorilor medii, a celor minimale sau maximale etc. De exemplu, calcularea
numrului total de ore pe sptmn realizate n fiecare clas a bazei de date Liceu se va
face cu ajutorul unei interogri de grupare i totalizare.
Interogrile ncruciate snt destinate prezentrii compacte a informaiilor sub form
de tabel. De exemplu, informaia despre numrul sptmnal de ore rezervat fiecrei
discipline n fiecare clas poate fi afiat cu ajutorul unei interogri ncruciate sub forma
urmtorului tabel:
Anul_de_studii
10
10
11
12
...

92

Nume_clasa
A
D
A
D
...

Biologia
2
1
3
1
...

Chimia
3
1
2
1
...

...
...
...
...
...
...

Aa cum rezultatele interogrilor depind de informaiile din tabele, modificrile reali


zate asupra datelor din tabele vor atrage dup sine modificarea rezultatelor interogrilor
(evident dup executarea lor repetat).
La rndul su, n cazul interogrilor a) d), modificarea de ctre utilizator a rezulta
telor interogrii poate duce la schimbarea coninutului tabelelor. Din aceste considerente
rezultatul interogrilor a) d) se numete set dinamic de date.
Setul dinamic de date nu este constant, deci nu se memoreaz. El exist doar pe
parcursul execuiei interogrii.
Pentru a crea o interogare nou:
1. Selectm clasa de obiecte Queries de pe bara de obiecte Objects. n zona de coninut
a ferestrei bazei de date apar opiunile:
Create query in Design view (crearea interogrii n regim de proiectare);
Create query by using wizard (crearea interogrii cu ajutorul unui program de
asisten).
Executm un dublu-clic pe prima opiune.
Observaie: Pasul 1 este echivalent cu selectarea New Design View.
2. Apare fereastra interogrii i fereastra de dialog Show Table (fig. 9.1).
Selectm pe rnd tabelele necesare apsnd de fiecare dat butonul Add. Tabelele alese
(mai exact cmpurile lor) apar n interiorul ferestrei interogrii mpreun cu reprezentarea
grafic a relaiilor dintre ele (fig. 9.2).

Fig. 9.1

Fig. 9.2

3. Fereastra unei interogri este divizat n dou zone. Zona superioar afieaz denu
mirile cmpurilor tabelelor. Zona inferioar afieaz un formular QBE n care progra
matorul poate folosi exemple de declaraii pariale sau expresii pentru a crea o interogare.
Alegem cmpurile care vor fi utilizate pentru scrierea criteriului de selecie i cmpurile
ale cror valori vor fi afiate. Adugarea unui cmp se face prin executarea unui dublu-clic
pe denumirea lui sau prin selectarea i tragerea acestui cmp cu ajutorul mouse-ului.

Caracteristica QBE (Query by Example) a fost creat iniial pentru a permite utilizatorilor aplicaiilor de baz
de date s gseasc i s afieze poriuni de date fr a fi nevoii s tie un limbaj de programare. Pe parcursul
timpului, aplicaiile QBE au ajuns instrumente preferate pentru scrierea interogrilor. Majoritatea sistemelor
de gestiune a bazelor de date i-au dezvoltat propriile aplicaii QBE, care permit formularea unui spectru larg
de cereri de interogare.

93

Ordinea cmpurilor afiate n formular poate fi schimbat n acelai mod ca i ordinea


coloanelor unui tabel afiate n regimul Datasheet View.
4. Pentru fiecare cmp adugat n formularul QBE, n afar de cmpul i tabelul care
conine acest cmp (afiate n rndurile Field i Table), se pot preciza:
a) modul de sortare a nregistrrilor dup acest cmp (rndul Sort) alegnd una din
valorile Ascending (cresctor) sau Descending (descresctor);
b) afiarea sau ascunderea valorilor cmpului la executarea interogrii (rndul Show);
c) o condiie de selectare pe care o vor respecta valorile afiate (rndurile Criteria ior).
5. Putem afia datele specificate de interogare pn la salvarea ei prin selectarea comenzii
Datasheet View din meniul View sau din lista derulant
de pe bara de instrumente Access.
6. Salvm interogarea (instrumentul Save sau comanda cu acelai nume din meniul File).
Exemplu: n figura 9.2 este prezentat n regim de proiectare o interogare care cere
afiarea listei elevilor clasei a 10-a B, al cror prenume ncepe cu litera C. n figura 9.3
este artat lista pn la salvarea interogrii.

Fig. 9.3

ntrebri i exerciii
Cu ce scop se utilizeaz interogrile?
Caracterizai principalele tipuri de interogri.
Descriei algoritmul de creare a unei interogri.
De ce rezultatul unor interogri se numete set dinamic de date?
Stabilii tipul urmtoarelor interogri:

a) aflarea numrului de profesori de gen masculin i a numrului celor de gen feminin;


b) determinarea salariului mediu al profesorilor din baza de date Liceu;
c) afiarea listei fetelor din clasele a 11-a;
d) determinarea numrului de ore realizate sptmnal de fiecare profesor;
e) cutarea profesorilor de gen feminin care predau n clasele a 10-a.
Examinai baza de date Liceu i formulai dou cereri de interogri:
a) de selecie;
d) de creare a cmpurilor rezultante;
b) de excludere a unor nregistrri;
e) de grupare i totalizare;
c) de modificare a unor nregistrri;
f ) ncruciate.

9.2. Interogri de selecie


Pornind de la faptul c interogrile de selecie snt cele mai des utilizabile, Access stabile
te implicit acest tip pentru toate interogrile nou-create. Dup cum vom vedea ulterior, utili
zatorul trebuie s ntreprind aciuni suplimentare pentru a schimba tipul interogrii noi.
Deci, pentru a crea o interogare de selecie, vom alege tabelele i cmpurile necesare
conform algoritmului descris n tema precedent.

94

9.2.1. Criterii de selecie


Un moment important n procesul de elaborare a unei astfel de interogri este scrierea
criteriului de selecie.
Dac criteriul se formuleaz pentru un singur cmp, atunci expresia logic, care va
controla afiarea datelor, se scrie n celula Criteria a acestui cmp. Menionm c operato
rul Like este inserat automat de Access n cazul n care utilizatorul scrie un ablon de
restricionare a datelor. n particular, n celula Criteria se poate scrie o constant de tip
compatibil cu tipul valorilor cmpului respectiv.
Exemplu: Pentru a afia lista elevilor cu prenumele Ion, este suficient s se scrie n
celula Criteria a cmpului Pren_elev (din tabelul Elevi) irul de caractere "Ion".
Deoarece criteriile de selecie snt expresii logice Access, pentru scrierea lor pot fi
utilizate funciile i operatorii studiai n capitolul precedent, inclusiv cei logici.
n acelai timp, formularul QBE ofer ajutor n crearea criteriilor compuse, formate
din cteva condiii i din operatorii AND i/sau OR. Astfel:
a) pentru un cmp pot fi definite mai multe condiii de selecie legate ntre ele cu operatorul
OR: prima se scrie n rndul Criteria, iar celelalte mai jos, cte una n fiecare celul;
b) dou sau mai multe condiii din rndul Criteria se consider legate ntre ele cu ope
ratorul AND.
Exemple:
1. Dac n formularul interogrii anterioare mai jos de valoarea "Ion" (n celula or)
sevascrie "Vasile", atunci interogarea va afia lista elevilor cu prenumele Ion sau
Vasile.n cazulcompletrii celulei Criteria din cmpul Nume_elev cu condiia "B",
atunci interogarea va afia lista elevilor cu prenumele Ion i al cror nume ncepe
cu litera "B".
2. Interogarea din figura 9.4 va afia lista elevilor clasei a 11-a B nscui n luna ianuarie.
3. Interogarea din figura 9.5 va afia lista elevilor din clasele 1011 cu profil real.
Evident, rezultatul va fi acelai dac vom completa doar rndul Criteria, substituind
valoarea 10 cu expresia 10 OR 11.
4. Interogarea din figura 9.6 va afia lista profesorilor cu salariul lunar mai mare dect
2500 lei i mai mic sau egal cu 3 000 lei n ordinea cresctoare a acestor salarii.

Fig. 9.4
Fig. 9.5

95

9.2.2. Interogri cu parametri


Evident, este imposibil de a prezice toate cererile de selecie de care vor avea nevoie
utilizatorii. Mai mult chiar, unele interogri se pot deosebi ntre ele doar prin unele valori
din formularul QBE. De exemplu, interogrile care vor afia lista disciplinelor studiate
n clasa a 10-a B, respectiv, n clasa a 11-a B, se vor deosebi doar prin valorile cmpului
Anul_de_studii.
n astfel de situaii se poate crea o singur interogare, unde n loc de valoare, n cmpul
corespunztor, se va scrie un parametru.
Un ir de caractere ncadrat ntre simbolurile [ i ], scris ntr-o celul a rndului Criteria
este interpretat de Access drept parametru.
Pentru fiecare parametru, la executarea interogrii, mai nti va aprea o fereastr de
dialog n care utilizatorul va scrie valoarea parametrului (deci o valoare a cmpului pentru
care a fost creat parametrul), apoi se vor afia nregistrrile ale cror valori din cmpul
parametrului coincid cu valoarea scris de utilizator.
De regul, irul de caractere ce definete parametrul este un text explicativ, care
sugereaz utilizatorului ce tip de valoare trebuie s scrie n fereastra de dialog.
n mod implicit parametrul se consider de tip Text. Pentru a modifica tipul para
metrului, se va selecta Query Parameters. Va aprea fereastra Query Parameters, n
care se va scrie fiecare parametru i tipul lui.
Exemplu: n figura 9.7 este reprezentat fereastra unei interogri de selecie cu trei
parametri: primul pentru cmpul Anul_de_studii, al doilea pentru cmpul Nume_clasa,
iar al treilea (de tip Number) pentru cmpul Nr_ore_saptamina. Observm c prin
intermediul acestei interogri se poate afla lista disciplinelor studiate de elevii clasei
indicate de utilizator, al cror numr de ore pe sptmn este de asemenea specificat
de utilizator.
La executarea interogrii din figura 9.7 vor aprea pe rnd trei ferestre n care utili
zatorul va preciza anul de studii, numele clasei (A, B, C sau D) i, respectiv, numrul
sptmnal de ore.

Fig. 9.6

96

Fig. 9.7

ntrebri i exerciii
Ce constituie interogrile de selecie?
Care este rolul criteriului de selecie ntr-o interogare?
Cu ce scop se folosesc parametrii ntr-o interogare?
Deschidei baza de date Liceu. Creai o interogare de selecie ce va afia lista:

a) fetelor bazei;
b) diriginilor;
c) profesorilor nscui pn la 12 februarie 1970;
d) profesoarelor nscute n luna martie;
e) bieilor n ordine cresctoare a vrstei lor;
f ) elevilor care nu au telefon;
g) profesorilor de gen masculin care nu au mplinit 50 de ani;
h) elevilor nscui vara;
i) profesorilor al cror numr de telefon ncepe cu 022 48;
j) elevilor care nu locuiesc n Chiinu;
k) profesorilor al cror prenume ncepe cu litera A sau cu litera E;
l) elevilor care nu nva Filosofia;
m) elevilor care studiaz Matematica 5 ore pe sptmn.
Deschidei baza de date Liceu. Creai o interogare de selecie cu parametru ce va afia lista:
a) disciplinelor studiate de elevul specificat de utilizator;
b) profesorilor care predau n clasa specificat de utilizator;
c) profesorilor care locuiesc n localitatea specificat de utilizator;
d) elevilor care studiaz disciplina specificat de utilizator;
e) profesorilor care predau disciplina specificat de utilizator.
Formulai i creai 5 interogri de selecie pentru baza de date Liceu.
Pentru baza de date Liceu formulai i creai 5 interogri de selecie cu parametru.

9.3. Interogri de aciune


Interogrile de aciune se utilizeaz pentru a crea tabele noi n baza informaiilor din
tabelele existente i/sau pentru a realiza modificri n aceste tabele. n fereastra bazei de
date numele acestor interogri este precedat de semnul exclamrii.
Atenie! Interogrile de aciune (cu excepia celor care genereaz tabele) modific
coninutul tabelelor.

9.3.1. Interogri care genereaz tabele


Interogrile de selecie extrag date din tabele i le afieaz doar la executarea intero
grii. Rezultatul unei astfel de interogri nu se pstreaz (eventual ntr-un tabel). Cu acest
scop, interogarea de selecie poate fi transformat ntr-o interogare care va pstra rezulta
tul ntr-un tabel nou, deci va crea un tabel cu setul dinamic al interogrii.
S alctuim o interogare care va genera un tabel cu date despre elevii claselor a 10-a.
1. Elaborm interogarea de selecie corespunztoare (fig. 9.8).
2. Din meniul Query alegem Make-Table Query... Apare fereastra Make Table unde
precizm numele tabelului nou (de exemplu, Clasele_10) i numele bazei de date n care
va fi pstrat tabelul. Implicit, tabelul va fi creat n baza de date curent.
3. Scriem numele tabelului, confirmm prin apsarea butonului OK, apoi salvm
interogarea.

97

Fig. 9.8

Fig. 9.9

4. Pentru a obine tabelul Clasele_10, executm interogarea recent. Apare o fereastr


cu mesaj de avertizare, n care confirmm intenia de creare a tabelului prin apsarea
butonului Yes.

9.3.2. Interogri de excludere a unor nregistrri


Deseori apare necesitatea eliminrii unor nregistrri din tabele. De exemplu, n cazul
bazei de date Liceu s admitem c trebuie s excludem datele despre elevii claselor a 12-a
(n legtur cu absolvirea liceului).
1. Aa cum ntre tabelele Clase i Elevi exist relaia unu la muli, avnd caracteristica
Excluderea n cascad a nregistrrilor (Cascade Delete Related Records), este suficient
s tergem nregistrrile din tabelul Clase care au valoarea cmpului Anul_de_studii
egal cu 12. Invers nu este corect, deoarece tabelul Elevi este subordonat tabelului
Clase.
2. Elaborm o interogare care afieaz lista claselor. Din meniul Query alegem Delete
Query. n formularul QBE, n locul rndurilor Show i Sort, apare rndul Delete. n celula
Criteria a cmpului Anul_de_studii scriem 12 (fig. 9.9).
3. Salvm interogarea. tergerea nregistrrilor se va realiza dup executarea intero
grii.
Atenie! Aa cum nregistrrile terse nu pot fi restabilite, se recomand de afiat
rezultatul interogrii de selecie nainte ca aceasta s fie transformat n una de excludere
a nregistrrilor. Astfel, se va verifica corectitudinea aciunii interogrii.

9.3.3. Interogri de modificare a unor nregistrri


Dac valorile mai multor nregistrri ale unui cmp pot fi transformate dup acelai
algoritm, atunci pentru automatizarea actualizrilor se va folosi o interogare de modifi
care.
S formulm o interogare care va mri cu 50% valorile din cmpul Salariu al tabelului
Profesori.
1. Crem o interogare de selecie care afieaz valorile cmpului Salariu.
2. Din meniul Query alegem Update Query. n formularul QBE n locul rndurilor
Sort i Show apare rndul Update To. Scriem expresia [Salariu] 1,5 n celula obinut

98

la intersecia rndului Update To i a cmpului Salariu


(fig. 9.10).
3. Salvm interogarea. Modificarea nregistrrilor se va
realiza dup executarea interogrii.
Atenie! Interogrile de modificare se execut o singur
dat. La repetarea lor valorile se vor modifica din nou. Astfel,
dac vom executa de 2 ori ultima interogare, salariul profeso
rilor se va mri cu 125% n loc de 50%.

9.3.4. Interogri care adaug nregistrri


ntabele existente

Fig. 9.10

Uneori trebuie s adugm ntr-un tabel nregistrri din alt tabel. De exemplu, fie
tabelul Elevi1 care conine date despre elevii nscui n luna mai. Dac dorim s adugm
n acest tabel nregistrrile elevilor din tabelul Elevi nscui n luna iunie, vom proceda
astfel:
1. Crem o interogare de selecie care va afia lista elevilor nscui n luna iunie.
2. Din meniul Query alegem Append Query. Apare fereastra Make Table. Din lista
derulant Table Name selectm Elevi1.
3. Salvm, apoi executm interogarea.

ntrebri i exerciii
Cu ce scop se utilizeaz interogrile de aciune?
Descriei algoritmul de creare a unei interogri:

a) care genereaz tabele;


c) de excludere a unor nregistrri;
b) de modificare a unor nregistrri;
d) care adaug nregistrri n tabele existente.
Examinai baza de date Liceu. Creai o interogare ce va genera tabelul:
a) T1 cu date despre profesorii de gen feminin;
b) T2 cu date despre elevii nscui n luna mai;
c) T3 cu date despre diriginii de clase;
d) T4 cu date despre profesorii care predau matematica sau chimia;
e) T5 cu date despre elevii care nu locuiesc n Chiinu.
Examinai baza de date Liceu. Elaborai o interogare ce terge din tabelul:
a) T1 datele despre profesorii nscui vara;
b) T2 datele despre elevii clasei a 11-a;
c) T3 datele despre diriginii claselor cu profil real;
d) T4 datele despre profesorii care nu predau chimia;
e) T5 datele despre elevii care locuiesc n Cricova.
Examinai baza de date Liceu. Alctuii o interogare ce va:
a) mri salariul profesorilor cu 500 de lei;
b) micora cu 300 de lei salariul profesorilor care predau doar o disciplin;
c) mri cu 25% salariul profesorilor nscui pn la 01.01.1960.
Examinai baza de date Liceu. Creai o interogare ce va aduga n tabelul:
a) T1 date despre profesorii de gen masculin care predau matematica;
b) T2 date despre elevii nscui iarna;
c) T3 date despre profesorii care nu snt dirigini i locuiesc n Chiinu;
d) T4 date despre profesorii care predau limba strin;
e) T5 date despre elevii din Chiinu care nva n clasa a 10-a.

99

9.4. Interogri de totalizare


9.4.1. Interogri de creare a cmpurilor rezultante (calculate)
n capitolele precedente am menionat c la proiectarea entitilor unei baze de date
relaionale se vor exclude cmpurile ale cror valori pot fi obinute din cmpurile rmase.
Din aceste considerente n tabelul Elevi nu a fost inclus cmpul Virsta. Valorile acestui cmp
depind de valorile cmpului Data_elev. S elaborm o interogare care va afia ntr-un cmp nou
vrstele elevilor bazei de date Liceu. Interogarea nu va afecta structura i datele tabelului Elevi.
1. Crem o interogare de selecie pe baza tabelului Elevi. n primele dou coloane
aleformularului QBE includem cmpurile Nume_elev, Pren_elev, iar n locul denumirii
coloanei a treia scriem expresia Virsta: DateDiff(yyyy;[Data_elev];Date()). Menionm
c Virsta este identificatorul cmpului nou, iar funcia DateDiff(T; D1; D2) returneaz
diferena exprimat n uniti calendaristice T dintre datele D1 i D2 (a se vedea tema
Funcii Access). Observm c:
T e ste egal cu yyyy, deci exprim ani;
D1 este [Data_elev], adic data naterii elevului;
D2 este Date(), adic data curent.
2. Salvm interogarea. Cmpul Virsta este dinamic. El exist att timp ct snt afiate
rezultatele interogrii.

9.4.2. Interogri de grupare i totalizare


Pentru a obine rezultate bazate pe nregistrrile unui sau ale mai multor tabele, se
vor utiliza interogri de grupare i totalizare.
S definim o interogare care va afia numrul total de elevi ai fiecrei clase din baza
de date Liceu.
1. Crem o interogare de selecie pe baza tabelelor Clase i Elevi n care includem
cmpurile Anul_de_studii, Nume_clasa i Cod_elev.
2. Executm un clic pe butonul Totals ( ) de pe bara de instrumente. n formularul
QBE apare rndul Total (fig. 9.11). Completm celulele acestui rnd:
n primele dou coloane din listele derulante ale celulelor selectm valoarea GroupBy
(deoarece grupm nregistrrile dup anul de studii i numele clasei), iar

Fig. 9.11

100

Fig. 9.12

n coloana a treia selectm funcia Count (deoarece calculm numrul de nre


gistrri ale cmpului Cod_elev).
3. Salvm i executm interogarea. Rezultatul interogrii este prezentat n figura 9.12.
Observaii:
1. Listele derulante ale celulelor rndului Total ofer diferite funcii globale (funcii
aplicabile asupra grupurilor de celule de date) pentru obinerea totalizrilor: Sum,
Max, Min, Avg, First etc.
2. n interogri de grupare i totalizare, de asemenea, se pot formula criterii de selecie.
De exemplu, dac pentru cmpul Cod_elev al interogrii precedente se va scrie
condiia >25, atunci interogarea va afia datele doar despre clasele al cror numr
total de elevi este mai mare dect 25.

9.4.3. Interogri ncruciate


Interogrile ncruciate snt interogri de totalizare care permit utilizatorului s stabi
leasc exact modul n care vor fi afiate rezultatele sub form tabelar. Astfel de interogri
snt recomandate n cazul unei cantiti mari de date totalizatoare. La crearea unei interogri
ncruciate se va ine cont de urmtoarele restricii:
a) denumirile rndurilor tabelului-rezultat pot fi valori din unul sau mai multe cmpuri;
b) denumirile coloanelor tabelului-rezultat pot fi valori doar ale unui singur cmp;
c) valorile celorlalte celule ale tabelului-rezultat snt calculate cu ajutorul unei funcii
globale;
d) nregistrrile din rezultat nu pot fi ordonate dup cmpurile celulelor calculate.
S alctuim o interogare care va afia numrul total de ore rezervat fiecrei discipline
n fiecare clas a bazei de date Liceu.
1. Crem o interogare de selecie pe baza tabelelor Clase, Discipline i Prof_dis_clasa n
care includem cmpurile Anul_de_studii, Nume_clasa, Nume_disciplina i Nr_ore_saptamina.
2. Din meniul Query alegem Crosstab Query. n formularul QBE apar rndurile Total
i Crosstab (fig. 9.13).
3. Completm celulele rndurilor Total i Crosstab ca n figura 9.13. Astfel, valorile
cmpurilor Anul_de_studii i Nume_clasa vor fi denumiri ale rndurilor tabelului-rezultat,
valorile cmpului Nume_disciplina denumiri ale coloanelor tabelului-rezultat, iar
valorile cmpului Nr_ore_saptamina vor fi sumate pentru a completa celelalte celule ale
tabelului-rezultat (fig. 9.14).

Fig. 9.13

Fig. 9.14

101

ntrebri i exerciii
Ce reprezint interogrile:

a) de creare a cmpurilor rezultante;

b) de grupare i totalizare;

c) ncruciate?

Descriei algoritmul de elaborare a unei interogri:

a) de creare a cmpurilor rezultante;


b) de grupare i totalizare;
c) ncruciate.
Examinai
baza
de
date
Liceu.
Aflai
cu
ajutorul
unei
interogri:

a) vrsta elevilor exprimat n zile;


b) numrul de profesori de gen masculin i numrul celor de gen feminin;
c) numrul de clase la fiecare din profilurile real i umanist;
d) salariul mediu lunar al profesorilor;
e) numrul de elevi din fiecare localitate;
f ) numrul de ore realizate sptmnal de fiecare profesor;
g) numrul de ore realizate sptmnal de fiecare clas;
h) valoarea salariului minimal;
i) profesorii care au salariul maximal;
j) numrul de profesori care au salariul mai mic dect cel mediu.
Examinai baza de date Liceu. Formulai i realizai dou cereri de interogri:
a) de creare a cmpurilor rezultante;
b) de grupare i totalizare;
c) ncruciate.

Test de evaluare
1. Examinai baza de date Liceu. Creai o interogare ce va afia lista:
a) elevilor al cror prenume ncepe cu litera A;
b) elevilor nscui joi;
c) profesorilor care predau disciplina specificat de utilizator.
2. Examinai baza de date Liceu. Alctuii o interogare ce va:
a) aduga n tabelul Elevi cmpul Adresa_Web, ale crui valori vor fi formate n aceast ordine
din numele, prenumele elevului i secvena @liceu.md. De exemplu, adresa Web a elevului
Ion Popa va fi PopaIon@liceu.md;
b) genera tabelul Test cu date despre elevii care nu nva n clasele a 10-a A, a 11-a B, a 12-a C
(inclusiv adresa Web descris n a));
c) elimina din tabelul Test datele despre elevii care nva n clasele a 10-a B, a 11-aC;
d) modifica adresa Web a fiecrui elev din tabelul Test, substituind subirul liceu.md cu
secvena elev.md;
e) aduga n tabelul Test date despre elevii de gen feminin care nva n clasa a 10-aA;
f ) mri cu 40% salariul profe
sorilor cu vrsta mai mare
dect 40 de ani.
3. Examinai baza de date Liceu.
Elaborai o interogare ce va
afia numrul:
a) de elevi la fiecare din profi
lurile real i umanist;
b) elevilor de gen masculin i
numrul celor de gen femi
nin.
4. Creai o interogare ncruciat
ce va afia numrul elevilor n
fiecare clas a bazei de date
Fig. 9.15
Liceu (ca n figura 9.15).

102

Capitolul 10

Formulare i rapoarte
Dup studierea acestui capitol, vei fi capabili s:
identificai formulare i elementele care alctuiesc aceste formulare;
elaborai formulare i subformulare cu ajutorul sistemului de asisten;
utilizai formulare pentru vizualizarea, modificarea, formatarea i validarea datelor;
alctuii formulare pe baza tabelelor corelate;
identificai rapoarte i elementele care formeaz aceste rapoarte;
elaborai rapoarte i subrapoarte cu ajutorul sistemului de asisten;
creai rapoarte pe baza tabelelor corelate;
grupai i s totalizai date ntr-un raport.

10.1. Formulare
Formularele snt obiecte ale bazei de date Access, proiectate special pentru a crea o
interfa pentru utilizator cu scopul facilitrii introducerii, editrii i afirii nregistr
rilor din tabele sau interogri.
Formularele mresc viteza i minimizeaz erorile de introducere a datelor. n acelai
timp, ele permit vizualizarea datelor ntr-un format mai atractiv dect cel al regimului
Datasheet View.
Cu ajutorul formularelor pot fi validate intrri de date pe baza informaiilor din alte
tabele (dect cel la care se lucreaz), pot fi create subformulare (formulare coninute nalte
formulare), casete de cutare (pentru accesarea rapid a nregistrrii), liste de opiuni etc.
Componentele unui formular se numesc elemente de control sau obiecte de control.

10.1.1. Crearea unui formular cu ajutorul programului de asisten


S crem un formular care va permite editarea datelor din tabelul Elevi al bazei de
date Liceu.
1. Selectm clasa de obiecte Forms de pe bara de obiecte Objects. n zona de coninut
a ferestrei bazei de date apar opiunile:
Create form in Design view (crearea formularului n regim de proiectare);
Create form by using wizard (crearea formularului cu ajutorul programului de asisten).
Executm un dublu-clic pe a doua opiune.
Observaie: Pasul 1 este echivalent cu selectarea New Form wizard.
2. Apare fereastra Form Wizard (fig. 10.1). Din lista combinat Table/Queries selectm valoarea
Table: Elevi. Astfel, n lista Available Fields apar identificatorii cmpurilor tabelului Elevi.
3. Selectm cmpurile care vor fi incluse n formular, confirmnd alegerea prin apsa
rea butonului
. Pentru a include toate cmpurile din list, vom executa un clic pe

103

Fig. 10.1

Fig. 10.2

butonul
. Identificatorii cmpurilor selectate snt mutai n lista Selected Fields.
i
se folosesc pentru a deplasa napoi cmpurile greit alese. Selectm
Butoanele
toate cmpurile i apsm butonul Next.
4. Urmtoarea fereastr Form Wizard ofer posibilitatea alegerii modului de afiare a
cmpurilor n formular (fig. 10.2). Selectm opiunea Columnar (cmpurile alese la pasul
precedent vor fi afiate n formular una sub alta n coloane).
5. La pasul urmtor alegem unul din stilurile predefinite de formular (fig. 10.3).
6. n ultima fereastr precizm numele formularului (Formular_Elevi). Dac alegem
opiunea Modify the Forms design (fig. 10.4), atunci dup apsarea butonului Finish,
formularul va fi deschis n regim de proiectare. n caz contrar, formularul va aprea n
regim de editare a datelor.
7. Deschidem formularul pentru a vedea i a introduce informaii (fig. 10.5).

Fig. 10.3

104

Fig. 10.4

Fig. 10.5

Butoanele din partea de jos a formularului se folosesc pentru a lista nregistrrile.


,
afieaz prima i, respectiv, ultima nregistrare. Pentru a vedea
Astfel, butoanele
sau,
precedenta sau urmtoarea nregistrare fa de cea curent, se va aciona butonul
.
respectiv,
sau se va executa New Record din
La inserarea datelor noi se va apsa butonul
meniul Insert.
Observaii:
1. Un formular poate fi creat n baza mai multor obiecte-surs (tabele i interogri).
2. Modificarea datelor n formular atrage dup sine modificarea datelor din obiec
tul-surs.
3. Dac dorim s adugm nregistrri noi cu ajutorul unui formular, atunci acesta trebuie
s conin cmpurile cheie primar i cmpurile care au proprietatea Required setat Yes.
Dac aceste cmpuri nu vor fi completate, atunci nregistrarea nou nu va fi acceptat.

10.1.2. Crearea sau modificarea formularelor n regimul Design View


(regim de proiectare)
Regimul Design View este cel mai complet mod de creare sau modificare a formu
larelor, deoarece n el se poate edita orice element de control al formularului.
Suprafaa formularului este format din cteva seciuni (fig. 10.6). Redimensionarea
fiecrei seciuni se realizeaz cu ajutorul mouse-ului.
Linia orizontal (de jos) i linia vertical (la dreapta) stabilesc marginea de jos i,
respectiv, marginea dreapt a formularului.
Seciunea Detail apare automat la crearea sau editarea unui formular nou. n ea snt
afiate nregistrrile din sursa de date a formularului.
Seciunile Form Header i Form Footer nu apar n mod implicit la editare, afiarea
lor fiind posibil prin selectarea opiunii Form Header/Footer a meniului View. Ele repre
zint zona de antet i, respectiv, cea de subsol ale formularului, n care, de regul, se scriu
informaii explicative sau utile. Aceste informaii nu se schimb de la o nregistrare la alta
i pot conine, de exemplu, sugestii de utilizare a formularului, totaluri, date despre autori,
timpul curent, data crerii formularului etc.

Fig. 10.6

105

Seciunile Page Header (antetul de pagin) i Page Footer (subsolul de pagin) de


asemenea trebuie afiate explicit activnd opiunea Page Header/Footer a meniului View.
Page Header afieaz informaii n partea de sus, iar Page Footer n partea de jos a
fiecrei pagini a formularului.
Observaie: Un antet i un subsol de formular se elimin sau se deplaseaz doar n pereche.
n afar de suprafaa formularului, fereastra Form Design conine barele de instru
mente Form Design i Toolbox.
Bara Form Design se utilizeaz pentru a executa rapid unele aciuni, fr a apela la
meniul principal al ferestrei de proiectare a formularului.
Bara Toolbox se utilizeaz pentru a plasa elemente de control pe suprafaa formularului.
S examinm unele instrumente ale ei:
Select Objects nu plaseaz un oarecare element de control, el se folosete pentru
a selecta (atunci cnd este activ) elemente de control din formular.
Control Wizard (atunci cnd este activ) permite intervenia programelor de asisten
la crearea unor elemente de control.
Label creeaz o caset care poate afia un text static (ce nu va putea fi modificat
de utilizator).
Text Box creeaz o caset care va afia texte ce vor putea fi modificate de utilizator.
Option Group creeaz o caset dreptunghiular n care pot fi inserate butoane de
opiune sau casete de validare. n cazul butoanelor, utilizatorul va putea selecta
n orice moment de timp un singur buton.
Togle Button creeaz un buton de comutare pentru activarea sau dezactivarea unei stri.
Option Button creeaz un buton (se mai spune buton radio) utilizat de aseme
nea pentru activarea sau dezactivarea unei stri (ori opiuni). De regul, se
folosete n grup cu mai multe butoane de acest tip pentru organizarea opiunilor
eliminatorii.
Check Box creeaz o caset de validare pentru validarea sau interzicerea unei stri.
Combo Box creeaz o caset combinat (se mai spune list ascuns) format dintr-o
caset de text editabil i o list derulant din care se poate alege o valoare.
List Box creeaz o list derulant din care se poate alege o valoare.
Command Button creeaz un buton de comand pentru lansarea la execuie aunei
comenzi.
Image afieaz o imagine static (care fiind plasat n formular nu va putea fi modificat).
Unbound Object afieaz un obiect OLE neasociat creat cu o aplicaie OLE (deexemplu,
Microsoft Draw). Nu este o valoare dintr-un cmp OLE a unei nregistrri.
Bound Object afieaz un obiect OLE coninut al unui cmp OLE (de exemplu,
o imagine).
Page Breack creeaz un semn pentru imprimant, determinnd-o s treac la o
pagin nou.
Tab Control creeaz un element de control cu mai multe pagini. Fiecare pagin
poate afia un formular. Cu acest element uor se realizeaz comutarea ntre
formulare.

106

Subform/Subreport ataeaz formularului un subformular sau un subraport.


Line creeaz o linie utilizat pentru design (culoarea i grosimea liniei pot fi modi
ficate).
Rectangle creeaz un dreptunghi utilizat pentru design.
More Controls afieaz instrumente pentru crearea altor elemente de control.
Din punctul de vedere al funcionalitii, deosebim urmtoarele categorii ale elemen
telor de control:
a) elemente de control legate;
b) elemente de control calculate;
c) elemente de control independente.
Eticheta asociat
Elementele de control legate servesc pentru
afiarea i editarea datelor cmpurilor tabelelor i
Cmp pentru date
interogrilor n baza crora a fost creat formularul.
Fig. 10.7
Un element de control legat este format dintr-un
cmp (n care apar datele) i o etichet asociat acestui cmp (care afieaz un text expli
cativ, de exemplu, denumirea cmpului). n mod implicit, eticheta asociat afieaz
identificatorul cmpului ale crui valori se vor afia de elementul de control (fig. 10.7). n
regimul Datasheet View n cmpul din figura 10.7 al formularului creat anterior va aprea
un numr de telefon (fig. 10.5).
Componentele elementului de control pot fi redimensionate i deplasate. Dac la
plasarea mouse-ului pe element apare simbolul minii , atunci prin metoda Drag &
Drop putem deplasa simultan ambele componente ale elementului de control. Plasnd
mouse-ul pe unul din cele dou puncte de contact din colul stnga-sus al componentelor,
va aprea simbolul degetului arttor . n acest caz putem deplasa n parte fiecare
component a elementului de control.
Adugarea unui element de control legat se poate face plasnd n formular (prin
metoda Drag & Drop) cmpul necesar din submeniul Field List al meniului View sau
(de pe bara ToolBox) i indicnd n caseta Unbound
insernd un element Text Box
numele cmpului necesar.
n pofida denumirii sale, o caset de text poate afia, n afar de texte, date numerice,
calendaristice etc.
n mod implicit, Access aliniaz textul la stnga i numerele la dreapta.
Dac caseta de text creat va afia texte mari (de exemplu, coninuturi ale cmpurilor
de tip Memo), atunci ea poate fi redimensionat la mrimea dorit. Pentru a ataa acestei
, apoi se atribuie
casete o bar de defilare, se execut un clic pe butonul Properties
valoarea Vertical proprietii Scroll Bars din fila Format (a ferestrei aprute, fig. 10.9).
Elementele de control calculate se folosesc pentru afiarea valorilor expresiilor i pot
fi modificate ca i elementele de control legate. Adugarea unui astfel de element se face
de asemenea prin inserarea unui element Text Box, doar c n caseta Unbound se scrie
expresia (precedat de semnul =) a crei valoare va aprea.
De exemplu, elementul de control din figura 10.8, fiind inserat n formularul creat
anterior, va afia vrsta elevului.

Fig. 10.8

107

Elementele de control independente nu depind de informaiile din tabele sau inte


rogri, deci ele nu se modific de la o nregistrare la alta. Se folosesc pentru a crea efecte
de design.
Proprietile unui element de control stabilesc diferite caracteristici ale acestora:
culoarea, dimensiunile, sursa de date, poziia n cadrul formularului, comportamentul
elementului la unele aciuni ale utilizatorului etc.
Proprietile unui element pot fi modificate cu ajutorul ferestrei, care apare la
efectuarea unui dublu-clic pe acest element (fig. 10.9). Ele snt grupate n patru categorii:
Format, Data, Event, Other. Grupul All include toate proprietile, pe care le afieaz n
ordine alfabetic.

Grupul Format nglobeaz proprie
tile de prezentare a obiectului (di
mensiuni, culoare, format etc.).
Grupul Data conine proprietile refe
ritoare la sursa nregistrrilor care vor
fi gestionate de elementul de control.

Grupul Event include lista eveni
mentelor (aciuni provocate de utili
zator sau de aplicaie) la care poate
reaciona elementul.

Grupul Other pstreaz celelalte
proprieti. Ele se refer la ferestrele
Fig. 10.9
Windows.
Un formular poate fi imprimat ca oricare alt obiect al bazei de date: executnd unclic
pe butonul Print de pe bara de instrumente sau selectnd comanda Print din meniul File.
Pentru a vedea cum arat formularul nainte de imprimare, se execut un clic pe buto
nul Preview de pe bara de instrumente sau se alege comanda Preview din meniul File.

10.1.3. Subformulare
Un subformular este un formular care se conine n alt formular. Putem include subfor
mulare ntr-un formular cu ajutorul unui program de asisten sau prin proiectare indivi
dual. Vom examina doar cazul programului de asisten, acesta fiind disponibil pentru
Control Wizard din caseta Toolbox.
apelare doar dac este activat butonul
Fie formularul Clase din figura 10.10 pentru afiarea i modificarea datelor despre
clasele bazei de date Liceu. Vom aduga un subformular n care vor aprea informaii
despre elevii clasei selectate n formularul principal.
1. Deschidem formularul Clase n
regimul Design. Activm mai nti butonul
Control Wizard, apoi butonul Subform/
Subreport din caseta Toolbox i executm
un clic pe formularul de baz n poziia n
care va aprea subformularul. Apare
fereastra SubForm Wizard din care selectm
tabelul Elevi.
Fig. 10.10

108

2. n urmtoarea fereastr de dialog alegem cmpurile tabelului Elevi, iar n fereastra a


treia confirmm denumirea cmpului de legtur (Cod_clasa) dintre formular i subformular.
3. n ultima fereastr SubfForm Wizard scriem numele subformularului (Lista_elevi).
Activnd regimul Form View, putem vedea lista elevilor clasei selectate n formularul
principal.
Observaie: Subformularul creat Lista_elevi automat se va pstra pe disc la salvarea
formularului de baz.

ntrebri i exerciii
Cu ce scop se utilizeaz formularele?
Ce obiecte ale bazei de date pot fi surse de date pentru formulare?
Caracterizai seciunile formularului n regim de proiectare.
Care este rolul elementelor de control n cadrul unui formular?
Descriei categoriile elementelor de control.
Care snt modalitile de modificare a proprietilor unui element de control?
Examinai baza de date Liceu. Creai cu ajutorul unui program de asisten un formular pentru

editarea datelor despre:


a) profesorii bazei, inclusiv adresa lor;
b) disciplinele bazei.
Adugai ntr-un formular creat anterior o caset de text care va afia data curent i timpul curent.
Adugai ntr-un formular creat anterior o caset de text care va afia numrul de zile rmase
pn la sfritul: a) anului curent; b) anului colar curent.
Examinai baza de date Liceu. Creai un formular care va afia datele despre fiecare clas i va
conine un subformular cu lista profesorilor ce predau n aceast clas.
Examinai baza de date Liceu. Creai un formular care va afia datele despre fiecare clas i va
conine un subformular cu lista disciplinelor studiate n aceast clas.
Examinai baza de date Liceu. Creai un formular care va afia datele despre fiecare profesor i
va conine un subformular cu lista disciplinelor predate de acest profesor.

10.2. Rapoarte
Rapoartele reprezint produsul final al unei baze de date. Ele combin date din tabele,
interogri i formulare pentru a fi tiprite sau pentru a fi salvate pe disc ntr-un format
atractiv i uor de citit. Spre deosebire de formulare, rapoartele:
a) snt special destinate tipririi;
b) nu pot modifica datele din tabelele sau din interogrile care stau la baza lor;
c) nu afieaz datele n form tabelar (nu are un regim de tip Datasheet View).
Ca i n cazul formularelor, rapoartele pot fi elaborate cu ajutorul unui program de
asisten sau prin proiectare independent.

10.2.1. Crearea unui raport cu ajutorul programului de asisten


1. Selectm clasa de obiecte Reports de pe bara de obiecte Objects. Alegem New
Report Wizard.
2. Apare fereastra Report Wizard (fig. 10.11). Din lista combinat Tables/Queries
alegem pe rnd tabelele Clase, Elevi i interogarea Virsta (vezi tema 9.4.1), iar din caseta
Available Fields selectm cmpurile Anul_de_sudii, Nume_clasa (ale tabelului Clase),
Nume_elev, Pren_elev (ale tabelului Elevi) i Virsta (al interogrii Virsta).

109

Fig. 10.11

Fig. 10.12

3. n urmtoarea fereastr Report Wizard selectm cmpurile, dup care se va face


gruparea nregistrrilor (fig. 10.12).
4. n fereastra a treia Report Wizard indicm cmpurile n conformitate cu care se va
face sortarea nregistrrilor (fig. 10.13).
Cu ajutorul butonului Summary Options putem specifica pentru fiecare cmp numeric una
sau mai multe opiuni de calcul: suma, media aritmetic, valoarea minimal sau cea maximal.
Pentru a calcula vrsta medie a elevilor (pentru fiecare clas i pe liceu), selectm opiunea
Avg (fig. 10.14). Activarea opiunii Summary Only va afia doar vrsta medie pe liceu.
5. n celelalte trei ferestre Report Wizard specificm modul de aranjare a nregistrrilor pe
pagin, stilul i, respectiv, titlul raportului. n figura 10.15 este reprezentat o parte din
raportul creat.
de pe bara de instrumente.
Pentru a tipri raportul, se execut un clic pe butonul Print
Observaie: Crearea subrapoartelor se realizeaz ca i crearea subformularelor.

Fig. 10.13

Fig. 10.14

Fig. 10.15

110

10.2.2. Modificarea rapoartelor n regimul Design View


Regimul Design View pentru crearea sau modificarea rapoartelor este asemntor cu
regimul Design View al formularelor. Ca i formularele, rapoartele conin 5 seciuni
principale: Report Header, Page Header, Detail, Page Footer i Report Foter. De asemenea,
raportul poate conine i seciuni pentru grupurile de date. De exemplu, n figura 10.16
este reprezentat raportul creat anterior, deschis n regim de proiectare. Observm c, n
afar de cele 5 seciuni principale, mai apar seciunile Anul_de_studii Header, Nume_
clasa Header, Anul_de_studii Footer i Nume_clasa Footer.
Operaiile cu elementele de control ale rapoartelor se realizeaz similar operaiilor cu
elementele de control din formulare.

Fig. 10.16

10.2.3. Crearea diagramelor n cadrul rapoartelor


Se tie c reprezentarea grafic a datelor este mai uor neleas, mai ales atunci cnd
se fac comparaii ntre diferite valori numerice.
ntr-un sistem de gestiune a bazelor de date diagramele snt considerate un tip special
de rapoarte. Putem crea o diagram n baza unui tabel sau a unei interogri.
Exemplu: S crem o diagram care va reprezenta repartizarea elevilor bazei de date
Liceu pe clase n baza interogrii Nr_elevi_clasa creat n tema 9.4.2.
1. Selectm clasa de obiecte Reports de pe bara de obiecte Objects. Executm un clic
pe butonul New. Apare fereastra New Report, din care alegem tipul de raport Chart
Wizard i interogarea Nr_elevi_clasa din lista derulant. Confirmm alegerile prin apsa
rea butonului Ok.

111

2. Apare prima fereastr Chart Wizard n care selectm cmpurile Anul_de_studii,


Nume_clasa i CountOfCod_elev.
3. n urmtoarea fereastr Chart Wizard specificm tipul diagramei: Column Chart
(diagram cu coloane).
4. n fereastra a treia Chart Wizard (fig. 10.17) stabilim sursa categoriilor de date
(Anul_de_studii), sursa seriilor de date (CountOfCod_elev) i legenda (Nume_clasa).

Fig. 10.17

5. n ultima fereastr Chart Wizard atribuim nume diagramei i precizm dac va fi


sau nu afiat legenda. Obinem diagrama din figura 10.18.

Fig. 10.18

ntrebri i exerciii
Cu ce scop se utilizeaz rapoartele?
Ce obiecte ale bazei de date pot fi surse de date pentru rapoarte?
Care este rolul diagramelor ntr-o baz de date?
Examinai baza de date Liceu. Creai un raport n care s fie artat:

a) media aritmetic a orelor realizate sptmnal n fiecare an de studii;


b) media aritmetic a orelor realizate sptmnal de fiecare profil;
c) suma total de ore realizate sptmnal n fiecare an de studii i n ansamblu pe liceu.
Examinai baza de date Liceu. Creai o diagram care ar reprezenta grafic numrul:
a) de elevi la fiecare profil;
b) de elevi din fiecare localitate;
c) profesorilor de fiecare gen;
d) de ore sptmnal realizat de fiecare clas.
Examinai baza de date Liceu. Creai o diagram care ar reprezenta grafic numrul de elevi de
fiecare vrst.

112

10.3. ntreinerea bazelor de date (opional)


Pentru ca o baz de date s funcioneze normal, ea trebuie dezvoltat continuu i
ntreinut. De regul, aceste operaii snt realizate de administratorul bazei de date. n
acest paragraf vom examina unele aciuni care trebuie efectuate pe msura gestionrii
unei baze de date.

10.3.1. Compactarea i repararea unei baze de date


Pe parcursul timpului, n urma adugrii i actualizrii datelor, a modificrilor
obiectelor bazei, crete volumul fiierului bazei de date i scade viteza de gestionare abazei.
Aceste consecine pot fi cauzate nu doar de volumul datelor, dar i de:
prezena n baza de date a unor obiecte temporare (ascunse de utilizator), chiar
dac Access nu mai are nevoie de ele;
existena n fierul bazei de date a unor spaii libere, rezultate din tergerea obiec
telor.
n acest caz baza de date are nevoie de compactare operaie de nlturare a fragmen
trii fiierului bazei , adic de eliminare a spaiilor i obiectelor neutilizate.
Uneori fiierul bazei de date se poate deteriora. Acest lucru se poate ntmpla din
cauza unor situaii extreme (de exemplu, deconectarea sursei de energie, dereglri ale
reelei) sau atunci cnd mai muli utilizatori lucreaz n mod simultan cu fiierul dat.
n acest caz baza de date are nevoie de reparaie.
Pentru a compacta i a repara o baz de date:
1. nchidem baza de date, lsnd deschis sistemul Access.
2. Executm Tools Database Utilities Compact and Repair Database.
3. Apare caseta de dialog Database to Compact From, n care precizm numele
bazeidedate ce urmeaz a fi compactat i reparat. Confirmm prin apsarea butonului
Compact.
4. Apare caseta de dialog Compact Database Into unde scriem numele sub care seva
memora baza de date compactat i reparat. Confirmm prin apsarea butonuluiSave.

10.3.2. Crearea cpiilor de rezerv


Access poate repara complet sau parial o baz de date deteriorat. n ultimul caz,
datele care nu au fost restabilite pot fi recuperate dintr-o copie de rezerv a bazei dedate.
Prin urmare, administratorul bazei de date va avea grij s realizeze periodic astfel
decpii.
Aceast aciune poate fi fcut n mod tradiional (prin copierea fiierului bazei
ntr-un alt dosar) sau executnd Tools Database Utilities Back Up Database.

10.3.3. Asigurarea securitii datelor


O baz de date poate conine date confideniale i poate fi destinat mai multor utili
zatori, care vor avea acces la ea prin reea (posibil prin Internet). n aceast situaie se
impun msuri de prevenire a accesului neautorizat. Mai mult chiar, diferii utilizatori pot

113

avea diferite drepturi de acces. De exemplu, unii pot avea dreptul s adauge informaii,
iar alii doar s vad unele informaii.
Cu acest scop, unui sau mai multor utilizatori li se va atribui:
un nume unic de acces;
o parol secret;
drepturi de acces sau de proprietar.
Cea mai simpl metod de protejare a bazei de date de accesul neautorizat este stabi
lirea unei parole, n lipsa creia baza de date nu va putea fi deschis.
Pentru crearea parolei:
1. nchidem baza de date, lsnd deschis sistemul Access.
2. Executm File Open. Selectm fiierul bazei de date, apoi opiunea Open Exclusive
din lista derulant Open.
3. Executm Tools Security Set Database Password. Apare caseta de dialog Set
Database Password n care stabilim i confirmm parola.
Observaii:
1. Exist i alte aciuni care pot fi realizate de administratorul bazei de date pentru
aasigura protejarea datelor. De exemplu, se poate face criptarea bazei, pentru ca
datele s nu fie citite cu un editor de texte sau cu utilitare dedisc fr a fi decriptate.
2. Crearea grupurilor, parolelor i a drepturilor de acces de asemenea se face apelnd
submeniul Security al meniului Tools.

Crem, cercetm i exersm


n imagine (fig. 10.19) snt reprezentate relaiile dintre tabelele bazei de date Club
sportiv (cmpul Platit este de tip logic).

1. Creai baza de date conform imaginii i completai-o cu nregistrri.


2. Explicai de ce cmpurile Cod_client, Cod_abonament i Luna ale tabelului Evidenta
formeaz mpreun cheia primar a acestui tabel.
3. Creai o interogare care va afia:
a) lista clienilor al cror prenume ncepe cu litera A sau C;
b) lista antrenorilor al cror nume este format din cel puin 5 litere;
c) salariul mediu al antrenorilor;
d) lista antrenorilor cu salariul mai mare dect cel mediu;
e) lista codurilor abonamentelor cu pre maxim;
f ) numrul de clieni al fiecrui antrenor;

Fig. 10.19

114

g) numele antrenorilor cu cei mai muli clieni;


h) suma total de bani, pltit de fiecare client;
i) numele clienilor care au pltit cel mai mult (n total);
j) slile frecventate cel mai des de clieni.
4. Formulai i creai 5 interogri.
5. Elaborai formulare de introducere i editare a datelor n baza de date.

Crem n echip
1. Proiectai un model conceptual relaional al unei baze de date cu informaii despre:
a) agenda elevului;
d) titluri de cri;
b) rile Europei;
e) pagini web.
c) automobile;
2. Creai tabelele bazei de date proiectate.
3. Stabilii cheile primare i relaiile dintre tabelele bazei de date.
4. Completai fiecare tabel cu cel puin 5 nregistrri.
5. Formulai i realizai cel puin:
a) 4 interogri de selecie, dintre care una cu parametru;
b) 3 interogri de modificare a unor nregistrri;
c) 2 interogri de grupare i totalizare;
d) o interogare ncruciat;
e) o interogare de excludere a unor nregistrri.
6. Creai dou formulare pentru introducerea/modificarea nregistrrilor n tabelele bazei
de date.
7. Creai cel puin dou rapoarte cu informaii din baza de date.
8. Creai o diagram care va reflecta datele din rapoarte.

Test de evaluare
1. Stabilii valoarea de adevr a propoziiei:
a) Odat cu modificarea nregistrrilor n formular, datele se modific i n tabelul sub
ordonat.
b) Access salveaz modificrile imediat dup completarea nregistrrii chiar dac formularul
este nchis fr salvare.
c) Un antet i un subsol de formular se elimin sau se deplaseaz doar n pereche.
2. Cum se poate modifica dimensiunea textului dintr-un element de control cu ajutorul barei
de instrumente?
3. Creai cu ajutorul programului de asisten un formular pentru a edita adresele profesorilor
bazei de date Liceu.
4. Creai prin proiectare individual un formular cu numele Test i fundalul verde, care va conine
trei casete de editare, respectiv, a numelui, prenumelui i a datei de natere a elevilor din
baza de date Liceu.
5. Elaborai un raport pentru baza de date Liceu care va afia lista i numrul total de profesori
de gen feminin la fiecare disciplin.
6. Creai o diagram care ar reprezenta grafic datele din raportul creat n itemul 5.

115

Capitolul 11

Documente WEB
Dup studierea acestui capitol, vei fi capabili s:
recunoatei documente WEB;
proiectai un document Web;
creai un document Web cu ajutorul aplicaiilor de oficiu.

11.1. Noiuni i concepte


n cursul de Informatic pentru clasa a 10-a ai studiat deja mai multe noiuni fundamentale
din domeniul reelelor de calculatoare. Cunoatei elemente de tipologie i de arhitectur
ale reelelor de calculatoare, tehnologii de cooperare n reea, reeaua Internet, compo
nentele i serviciile ei. tii c informaia i operaiile de gestionare a ei constituie cele mai
importante elemente ale reelei globale, iar cel mai modern serviciu care ajut s operai cu
informaia este serviciul WWW (WorldWideWeb pienjeniul global).
V este cunoscut i noiunea de paginWeb, precum i cea de program de rsfoire
(explorare). Putei localiza paginileWeb folosind adresele URL (Uniform Resurse Loca
tor), vizualiza elementele lor informaionale, copia informaiile necesare, prezentate n
diverse formate. Ai observat c paginileWeb pot conine mai multe elemente, natura
crora este distinct: text, imagini, secvene sonore i video, elemente de control (butoane)
i referine ctre alte pagini Web. Toate acestea pot fi asamblate mpreun datorit
hipertextului i limbajului HTML (HyperTextMarkUpLanguage limbajul de marcare
a hipertextului).
Un document Web este o colecie de pagini Web interreferite, mpreun cu elementele
lor informaionale i de control ncorporate.
Documentul Web publicat n reeaua global este cunoscut sub denumirea de site Web.

11.2. Tipurile documentelor Web


Cele mai cunoscute i des utilizate documente Web snt documentele HTML docu
mentele n care informaiile, legturile, elementele de control i metadatele snt descrise
n limbajul HTML. Atunci cnd un program de explorare deschide un fiier HTML, el
interpreteaz marcajele ntlnite n text n conformitate cu regulile limbajului. Documentele

116

HTML au extensia HTML (n unele cazuri HTM, dac provin din sisteme de operare
care accept doar extensii ale numelor de fiier din nu mai mult de trei simboluri). Un
document HTML poate fi creat cu ajutorul oricrui editor de texte i vizualizat, folosind
orice program de explorare (fig. 11.1).

Fig. 11.1. Coninutul unui fiier HTML (n stnga) i interpretarea acestuia


de programul de explorare (n dreapta)

Muli dintre utilizatorii Web denumesc documentele descrise cu ajutorul limbajului


HTML documente n format HTML.
Documentele PHP snt paginile Web, care conin elemente descrise cu ajutorul
limbajului PHP (Hypertext Preprocessor). Utilizarea PHP permite crearea unor pagini
cu un coninut dinamic: coninutul paginii PHP este prelucrat pe un server Web, dup
care se genereaz o pagin HTML, ce este transmis pe calculatorul client, unde este
vizualizat cu ajutorul programului de explorare. Documentele PHP se folosesc frecvent
pentru afiarea dinamic a datelor stocate n bazele de date de reea.
Documentele ASP snt pagini Web elaborate cu ajutorul tehnologiei Active Server
Page. La fel ca documentele PHP, acestea se bazeaz pe componente programate ntr-un
limbaj de nivel nalt, numite obiecte care pot fi transmise de la o pagin la alta.
Documentele grafice SVG (Scalable Vector Graphics) snt realizate cu ajutorul lim
bajului XML pentru reproducerea calitativ a elementelor grafice bidimensionale.
Instrumentele grafice ncorporate n acest limbaj permit utilizarea graficii vectoriale n
documente Web (fig. 11.2).

Fig. 11.2. Coninutul unui document Web grafic (n stnga) i interpretarea


acestuia de programul de explorare (n dreapta)

Meta-limbajul XML (eXtensible Meta Language) este un limbaj asemntor cu HTML, care a fost proiectat n
scopul transferului de date ntre aplicaii, inclusiv n reea.

117

11.3. Proiectarea i realizarea unui document Web


Tradiional asociem termenul document unui fiier separat, care conine informaii
de divers natur, dar din acelai domeniu. Documentul Web, sau site-ul este n majori
tatea absolut a cazurilor o colecie de fiiere (numite i pagini) cu referine interne i
externe. n activitatea cotidian vei avea necesitatea nu doar s utilizai documente Web,
dar i s elaborai unele documente specifice. Instrumentele Web moderne permit auto
matizarea n mare msur a elaborrii unor pagini standard, cum ar fi paginile de profil
personal n reelele sociale, blogurile, paginile wiki. n cazurile cnd urmeaz s elaborai
un document mai puin standardizat, aceste instrumente v pot ajuta doar n procesul
de construcie a documentului. Fiind destinat unui public larg, documentul Web urmeaz
s fie elaborat astfel, nct s acorde utilizatorilor si un acces ct mai comod i rapid la
informaiile structurate dup criterii asociate tematicii documentului. Aceasta ne duce
la concluzia c este necesar o proiectare prealabil a documentului Web.
Indiferent de tipul documentului Web, proiectarea acestuia ncepe de la stabilirea scopului
de utilizare. Avnd fixat scopul, putem selecta mai simplu tipul de document iinstru
mentarul necesar pentru elaborare. De exemplu, dac dorii s facei public ocolecie
de eseuri proprii i ale colegilor vei alege n calitate de pagini documente HTML. Acelai
tip vei utiliza pentru a crea o galerie nu prea mare de imagini. Dac ns dorii s realizai
un document cu descrieri ale figurilor geometrice plane, va fi oportun selectarea docu
mentelor SVG, care va acorda o calitate i flexibilitate sporit a imaginilor din pagini.
Odat fiind stabilit scopul de utilizare, putei trece la urmtoarea etap stabilirea
cerinelor fa de document. Exist mai multe categorii de cerine: fa de coninut i
dozarea lui n pagini, fa de culori i caractere, fa de navigare ntre pagini i elementele
paginii. Cerinele snt specifice pentru fiecare document n parte i se stabilesc n funcie
de grupul-int pentru document i de coninuturile care urmeaz s fie plasate.
Web Design este procesul de creare a unei pagini sau a unui document Web, care mbin
modul de realizare a cerinelor etice, estetice, de coninut i operare mecanic cu
aspectul vizual al documentului elaborat.

La urmtoarea etap este definit structura documentului Web: structura paginii prin
cipale, coninutul ei, amplasarea elementelor informaionale i de navigaie, informaiile
despre autor; structura paginilor subordonate, coninuturile i modul de referire ntre
paginile documentului. Pentru a evita amplasarea nereuit a elementelor n pagini i
apariia referinelor incorecte, este util crearea unei scheme grafice a documentului.
Schema va conine n calitate de noduri viitoarele pagini ale documentului, iar legturile
direcionate ntre noduri vor indica referinele ntre paginile documentului.
Exemplu: Fie c dorii s realizai un document Web cu informaii de interes personal,
care va conine: date personale, o galerie de imagini, pagini separate dedicate activitii
colare, prietenilor, activitilor de interes (hobby) i o colecie de referine la site-uri
cu coninuturi educaionale.
Pagina principal va conine un antet (titlu) al documentului, referine ctre paginile
subordonate, date de contact despre autor i un bloc de informaii personale. Fiecare

118

dintre paginile subordonate va fi una tematic: liceu, prieteni, galerie foto, interese.
Pagina cu lista de referine este asociat procesului de studii i va fi subordonat paginii
cu date despre liceu (fig. 11.3).
Se consider a fi o bun practic posibilitatea de referire direct de pe orice pagin
adocumentului ctre pagina principal. Nu este necesar de specificat aceste referine
pentru a nu suprancrca schema de structur a documentului Web.

Fig. 11.3. Schema de structur a unui site cu date de interes personal.


Este detaliat structura paginii principale

Dup proiectarea structurii referinelor n document, poate fi detaliat structura pagi


nilor subordonate. Se recomand utilizarea unui model comun pentru toate paginile, cu
modificri minime, dictate de specificul coninutului.
Programarea paginilor documentului Web. Este urmtoarea etap de elaborare, i n
funcie de tehnica abordat de autorul documentului, poate s conin nu doar procesul
de programare a paginilor cu ajutorul unui limbaj de programare Web, dar i introducerea
informaiei n pagini. Dac se folosesc sisteme de producere i asisten Web (cum ar fi
sites.google.com, wordpress.com), elementele de programare devin mai puin vizibile, dar
se pierde i o parte din libertatea de organizare a structurii i coninuturilor.
Testarea documentului Web. Se vizualizeaz documentul local, cu ajutorul diferitor
aplicaii de explorare, se stabilete corectitudinea afirii structurii, a coninuturilor,
aculorilor i a referinelor. n cazul depistrii erorilor, se revine la etapa de proiectare.
Dup corectarea lor, documentul este gata de a fi publicat. Pentru aceasta el urmeaz s
fie plasat pe un server Web. Dac pentru elaborarea documentului au fost folosite sisteme
on-line de producere i asisten Web, deplasarea pe serverul Web este opional.
Meninerea i dezvoltarea documentului. Periodic, informaia de pe paginile site-ului
urmeaz s fie rennoit. Pot s apar i modificri de structur, design etc. Pentru site-urile
elaborate nemijlocit n mediul Web operaiile de editare se realizeaz direct, nlocuind
dinamic versiunile vechi ale paginilor. Dac ns site-ul a fost creat local i mai apoi publicat,
versiunea nou se testeaz, apoi se public pe serverul Web, nlocuind site-ul vechi.

119

11.4. Crearea documentelor Web cu ajutorul


aplicaiilor de oficiu

n activitatea cotidian folosim diverse programe de aplicaiipentru a prelucra infor


maii: editoare de texte, editoare grafice, sisteme de prezentri electronice i calcul tabelar,
alte aplicaii specializate.
Fiierele create de aceste sisteme pentru stocarea informaiilor au formate specifice,
care nu pot fi prelucrate i afiate direct de aplicaiile de explorare. Dar, de multe ori,
informaia din aceste fiiere urmeaz s fie plasat ntr-un document Web sau ntr-o pagin
solitar. O soluie simpl, pe care o pun la dispoziie mai multe aplicaii de uz general,
este crearea automat a unui document Web, structura i coninutul cruia repet fidel
documentul original din aplicaie. Aceasta se creeaz n urma selectrii opiunilor speciale
de salvare a documentului, sau de exportare.
Tipurile standard ale documentelor Web care pot fi create n acest mod snt Document
Web (HTML). Pentru a obine automat un document Web, este suficient s se selecteze n
meniul aplicaiei opiunea de salvare a documentului: Web Page (fig. 11.4).

Fig. 11.4. Salvarea fiierelor aplicaiilor de oficiu ca document Web

De remarcat c n cazul cnd documentul iniial conine informaii neomogene sau


elemente care nu pot fi reproduse direct cu ajutorul instrumentelor HTML, aplicaiile
creeaz tot setul de fiiere subordonate, amplasate ntr-un director, numele cruia este
format din numele documentului salvat, nsoit de sufixul files (fig. 11.5).

Fig. 11.5. La salvarea fiierului cu numele main n form de pagin Web, s-a creat
i directorul main_files, care conine mai multe fiiere cu imagini i informaii
de serviciu, necesare pentru reprezentarea corect a paginii Web main

120

Mai multe aplicaii de oficiu propun o opiune suplimentar de generare a documen


tului Web: Web Page, Filtered (pagin Web filtrat). Deosebirea de pagina Web obinuit
este excluderea codurilor excesive i a informaiilor de serviciu, care ocup un volum
semnificativ. Aceast opiune permite micorarea volumului documentului Web, dar
creeaz riscul de reprezentare incorect n unele aplicaii de explorare.
Extensia fiierelor care conin documentul Web este n ambele cazuri html. Exten
siile fiierelor auxiliare i de imagini pot varia n funcie de aplicaia de oficiu, din care
este generat documentul Web.
Un alt tip de documente Web care poate fi produs n mod automat cu ajutorul apli
caiilor de oficiu este arhiva Web. Pentru a crea o arhiv Web din fiierul cu format
specific al aplicaiei, n meniu este selectat opiunea de salvare a documentului: Single
File Web Page (fig. 11.6).

Fig. 11.6

Acest tip de documente ncorporeaz toate elementele documentului original, pstreaz


relaiile ntre componentele referite intern i poate fi deschis cu un program de explorare
local, pe calculatorul pe care se afl.
Extensia fiierelor care conin arhive Web este mht.

ntrebri i exerciii
Ce numim document Web? Care documente Web se numesc site-uri Web?
Care dintre urmtoarele tipuri de documente Web snt realizate cu ajutorul unui limbaj de

programare de nivel nalt:


a) documentele HTML;
c) documentele PHP;
b) documentele ASP;
d) documentele SVG?
Care este tipul de documente Web, ce permite vizualizarea textului formatat cu ajutorul unui
limbaj de marcaje?
Care este tipul de documente Web, ce permite crearea direct a elementelor grafice n aplicaia
de explorare?
Enumerai etapele de proiectare a unui document Web.
Proiectai schema de structur a unui site o microbibliotec virtual pentru cel mult trei
autori. Pentru fiecare autor urmeaz s fie plasate n pagini aparte cel mult dou opere. Pagina
principal va conine lista de referine ctre paginile autorilor distinci. Fiecare pagin a autorului
distinct va conine referine ctre paginile operelor lui literare.
Selectai un domeniu pentru care s proiectai un site Web. Determinai scopul de utilizare.
Proiectai schema de structur.
Cu ajutorul unui editor de texte, creai un document care s conin: text cu elemente de
formatare, tabele, diagrame, imagini. Folosind opiunile de salvare a documentului, generai
automat un document Web, echivalent cu cel original. Care este diferena, dac generai un
document arhiv Web?
Creai o prezentare electronic, care s conin text cu elemente de formatare, tabele, diagrame,
imagini. Folosind opiunile de salvare a documentului, generai automat un document Web,
echivalent cu prezentarea original. Cum credei, care elemente ale unei prezentri nu pot fi
pstrate n documentul Web?

121

Capitolul 12

Limbajul HTML
Dup studierea acestui capitol, vei fi capabili s:
elaborai pagini Web utiliznd sintaxa HTML;
formatai coninutul documentelor Web cu ajutorul instrumentelor HTML;
alctuii i s organizai liste cu ajutorul instrumentelor HTML;
creai i s utilizai n interiorul documentelor HTML referine interne i externe;
inserai n documente HTML imagini;
creai i s editai tabelele n documente HTML;
utilizai tabelele pentru amplasarea n pagin a elementelor HTML.

12.1. Structura general a unui document HTML


12.1.1. Despre documente HTML
Am menionat deja c cele mai utilizate documente Web snt documentele HTML.
Cele mai apreciate caracteristici ale formatului HTML snt: independena fa de platform
(acelai document HTML este afiat asemntor de calculatoare diferite), referinele,
formatarea structurat. Referinele simplific esenial navigarea printr-un document mare
i/sau prin mulimea documentelor unui site. n calitate de referin poate servi un cuvnt,
o fraz, o imagine sau orice alt element al paginii Web.
Prima versiune HTML a fost lansat n 1989 (proiectat de Tim Berners-Lee). Chiar
dac unele programe de explorare nu recunosc toate cuvintele-cheie ale limbajului HTML,
acesta rmne a fi unul dintre cele mai utilizate i mai moderne limbaje pentru elaborarea
paginilor Web. Fiierele HTML snt fiiere n format ASCII, deci pot fi create cu orice
editor de texte. Fr a exagera, menionm c proiectarea unei pagini Web simple se
realizeaz (dup cum vei vedea ulterior) foarte uor.
Prin element al unui document HTML vom nelege orice component a structurii
documentului: tabel, paragraf, list, titlu, buton, caset de text, imagine etc.
Pentru a marca elementele unui fiier HTML, se utilizeaz diferite cuvinte-cheie, numite
etichete sau marcaje (tags). Orice etichet se ncadreaz ntre simbolurile < i >.
Etichetele, de regul, snt pereche pentru ncadrarea unui element. Eticheta de sfrit
arat ca i cea de nceput, mai avnd n faa ei caracterul / (slash). O etichet de nceput
poate avea unul sau mai multe atribute care se pot specifica n forma urmtoare:
<Etichet a1 = v1, a2 = v2, ... ai = vi >, unde vi este valoarea atributului ai.
De reinut c limbajul HTML nu face diferen dintre literele mari i mici.

Sir Timothy Jon (Tim) Berners-Lee (n. 08.06.55) programator englez, inventator al limbajului HTML i al
WWW-ului, director al Consoriului WWW (W3C), organizaie care tuteleaz standardele Webului.

122

12.1.2. Structura general a unui document HTML


Un document HTML are, de regul, urmtoarea structur:
<HTML>

nceputul documentului

Titlul documentului

Seciunea de antet a documentului

<Head>
<Title>

</Title>
</Head>
<Body>

Coninutul documentului

Seciunea de coninut a documentului

</HTML>

Sfritul documentului

</Body>

Textul scris ntre marcajele <TITLE> i </TITLE> este afiat pe bara de titlu a ferestrei
programului de explorare.
Etichetele <BODY> i </BODY> cuprind coninutul propriu-zis al documentului HTML,
care va fi afiat n fereastra programului de explorare i va fi vzut de utilizator.
Menionm cteva dintre atributele etichetei <Body>:
snt numere hexazecimale care de

bgcolor = #n1n2n3n4n5n6, unde
termin intensitatea culorilor rou, verde, respectiv, albastru ale fundalului paginii.
Culoarea poate fi precizat i prin numele ei (red, blue, black, yellow, green, cyan,
purple, white, gray etc.);

text = #n1n2n3n4n5n6 specific culoarea textului;

background = URL, unde URL este adresa i numele fiierului grafic a crui
imagine va fi utilizat ca fundal al documentului;
leftmargin = n, unde n este numr natural, stabilete distana n pixeli dintre marginea
stng a ferestrei programului de explorare i marginea stng a coninutului paginii;
topmargin = n, unde n este numr natural, stabilete distana n pixeli dintre marginea
de sus a ferestrei programului de explorare i marginea de sus a coninutului paginii.
Exemplu: Urmtorul fiier html interpretat de un program de explorare va afia o
pagin Web cu fundalul de culoare aqua i textul de culoarea #FF2233.
<HTML>
<Head> <Title> Exemplu </Title> </Head>
<Body leftmargin=140 topmargin=200 bgcolor=aqua text=#FF2233>
Salut! Acesta este un document .html
</Body>
</HTML>

ntrebri i exerciii
Explicai semnificaia referinelor ntr-un document HTML.
Ce editor de texte poate fi folosit pentru crearea unui fiier html?
Ce nelegei prin element al unui document html?
Ce semnificaie au etichetele ntr-un document html?
Ce simboluri se utilizeaz pentru a pune n eviden o etichet?

123

Care este deosebirea dintre eticheta de nceput i cea de sfrit?


Care este structura general a unui document html?
Cum se utilizeaz etichetele <Title> i </Title> ?
La ce folosesc etichetele <Body> i </Body> i care snt atributele lor?

Creai o pagin Web cu fundalul galben i textul verde, coninutul paginii fiind afiat la 110 pixeli
de la marginea stng i 105 pixeli de la marginea de sus ale ferestrei programului de explorare.
Creai o pagin Web cu fundalul albastru i textul alb, coninutul paginii fiind afiat la10pixeli
de la marginea stng i 15 pixeli de la marginea de sus ale ferestrei programului de explorare.
Ce va afia documentul html cu urmtorul coninut?

<HTML>
<Head> Ce este un fisier .html? <Title> PROBLEMA </Title> </Head>
<Body>
Care este structura unui document .html?
</Body>
</HTML>

Creai o pagin Web care va afia pe bara de titlu a ferestrei programului de explorare textul
UN DOCUMENT HTML i va avea n calitate de fundal o imagine.

12.2. Formatarea textului


n HTML se utilizeaz 6 niveluri de titlu, care pot fi specificate cu ajutorul etiche
telor <Hn> i </Hn>, unde n poate lua valori de la 1 la 6. Fiecare dintre aceste perechi de
etichete stabilesc un anumit nivel de titlu. Nivelul 1 este cel mai proeminent, iar nivelului 6
i corespund cele mai mici i mai subiri caractere.
Etichetele de titlu pot avea atributul align = ''tip'', unde tip este unul dintre cuvintele
center, left, right, pentru stabilirea modului de aliniere a titlului.
Spre deosebire de un editor de texte obinuit, HTML nu ine cont de lungimea textului,
de returul de car (Enter) i de numrul consecutiv de spaii. Acestea din urm vor fi afiate
ca un singur spaiu. Programul de explorare afieaz din rnd nou un text, dacacesta este
precedat de unul din marcajele <P>, <BR>, <PRE>, <DIV> sau <CENTER>.
a) Astfel, textul cuprins ntre etichetele <P> i </P> se consider paragraf. Eticheta
<P> de asemenea accept atributul align.
b) Eticheta <BR> realizeaz trecerea la o linie nou n paragraful curent.
c) Textul ncadrat ntre etichetele <PRE>, </PRE> este afiat exact aa cum este scris,
deci este un text preformatat.
d) Deseori un bloc de text se formateaz cu ajutorul etichetelor <DIV>, </DIV>.
Eticheta <div> poate avea atributele align i nowrap (care interzice ntreruperea
rndurilor de programul de explorare). Un bloc <div>...</div> poate include alte
subblocuri. n acest caz, alinierea precizat de atributul align al blocului are efect
asupra tuturor subblocurilor incluse n blocul <div>.
e) Elementele cuprinse ntre etichetele <CENTER> i </CENTER> snt automat centrate.
Blocul de text cuprins ntre etichetele <NOBR> i </NOBR> va fi afiat ntr-un rnd.
Dac fereastra programului de explorare va fi micorat de utilizator, se poate ntmpla
ca textul s fie trunchiat.

124

Liniile orizontale snt folosite pentru divizarea unei pagini n seciuni logice. n
funcie de necesitate, eticheta <HR>, care insereaz o linie orizontal, poate include
ctevaatribute: align (stabilete alinierea liniei); size (specific nlimea liniei n pixeli);
width (specific limea liniei n pixeli sau n procente fa de limea ferestrei progra
mului deexplorare); color (specific culoarea liniei); noshade (specific o linie fr nicio
evideniere).
Fontul unui text poate fi precizat utiliznd marcajele <FONT> i </FONT>. El poate
fi caracterizat de urmtoarele atribute: face (precizeaz familia de caractere i poate avea ca
valoare una sau mai multe constante delimitate prin virgule, cum ar fi arial, serif, cursive,
monospace, fantasy etc.); color (precizeaz culoarea fontului); size (specific mrimea
caracterelor i poate avea ca valoare constantele 1, 2, ..., 7 sau +1, +2, ... (mrind astfel
dimensiunea caracterelor fa de dimensiunea curent), sau 1, 2, ... (micornd astfel
dimensiunile caracterelor fa de dimensiunea curent)); weight (determin grosimea
caracterelor, avnd valori posibile 100, 200, ..., 900).
Exemplul 1 (fig. 12.1):
<HTML>
<Head>
<Title> Text preformatat </Title>
<H1 align=center> Chisinau</H1>
</Head>
<Body leftmargin=20 topmargin=20 bgcolor=lightgreen text=blue>
<HR size=5 width=70% color=black>
<Font color=purple>
<H2>Sectoarele Chisinaului:</H2>
<H3>
<Pre>
Centru
Buiucani
Riscani
Botanica
Ciocana
</Pre>
</H3>
</Font>
</Body>
</HTML>

Pentru a pune n eviden un fragment de text, se utilizeaz stilurile. Acestea se


mpart n dou categorii:
a) stilurile fizice, care stabilesc nfiarea exact a textului;
b) stilurile logice, care marcheaz textul n funcie de semnificaia lui.
Stilurile fizice afieaz acelai text la fel n orice program de navigare. Pentru stabilirea
stilului fizic se utilizeaz etichetele:
<B>, </B> text cu caractere ngroate (bold);
<I>, </I> text cu caractere nclinate (italic);
<U>, </U> text cu caractere subliniate;

125

<TT>, </TT> text cu caractere monospaiate;


<BIG>, </BIG> text cu caractere mai mari cu o unitate dect cele curente;
<SMALL>, </SMALL> text cu caractere mai mici cu o unitate dect cele curente;
<SUB>, </SUB> text cu caractere aliniate ca indice;
<SUP>, </SUP> text cu caractere aliniate ca exponent;
<S>, </S> text cu caractere tiate de o linie.

Etichetele pentru stilurile fizice pot fi imbricate.


Exemplul 2 (fig. 12.2):

<HTML>
<Head>
<Title> Exemplul 2 </Title>
<H2 align=center> Stiluri HTML</H2>
</Head>
<Body>
<H3>Stiluri fizice:</H3>
<Pre>
Text obisnuit
<B>Text cu caractere ingrosate</B>
<I>Text cu caractere inclinate</I>
<U>Text cu caractere subliniate</U>
<TT>Text cu caractere monospatiate</TT>
<big>Text cu caractere marite</big>
<small>Text cu caractere micsorate</small>
Y = X<sup>2</sup>
M = (m<sub>1</sub>, m<sub>2</sub>)
<s>Text taiat</s>
<B><I>Text cu caractere ingrosate si inclinate</I></B>
</Pre>
</Body>
</HTML>

Fig. 12.1

126

Fig. 12.2

Stilurile logice depind de modul de configurare a programului de navigare i in cont


de rolul textului n cadrul paginii Web. Pentru ele se utilizeaz urmtoarele etichete:
<EM>, </EM> text evideniat (de regul, italic);
<STRONG>, </STRONG> text important (de regul, bold);
<KBD>, </KBD> text cules de la tastatur (de regul, font cu grosime fix);
<CODE>, </CODE> text de program pentru calculator (de regul, font cu grosime fix);
<DFN>, </DFN> text-definiie (de regul, italic);
<VAR>, </VAR> identificator de variabil;
<ADDRESS>, </ADDRESS> text-adres;
<CITE>, </CITE> text-citat.
Una dintre modalitile de includere a semnelor diacritice romne ntr-un docu
ment html este codificarea direct a lor prin &-consecutiviti (escape-consecutiviti).
Unele programe de explorare recunosc o &-consecutivitate dac sfritul ei este marcat
cu simbolul ;.
Litera

Codul &#258 &#259 &Acirc &acirc &Icirc &icirc &#350 &#351 &#354 &#355

De asemenea, &-consecutivitile se folosesc pentru reprezentarea diferitor simboluri


speciale:
Simbolul

&

<

>

spaiu

Codul

&amp

&lt

&gt

&quot

&reg

&copy

&nbsp

&sect

Simbolul

1/2

1/4

3/4

Codul

&plusmn

&times

&brvbar

&frac12

&frac14

&frac34

&deg

Exemplul 3 (fig. 12.3):


<HTML>
<Head><Title> Exemplul 3 </Title><Body>
<H4>
Acest capitol v&#259 &icircnva&#355&#259 s&#259 crea&#355i pagini Web
</H4>
</Body>
</HTML>

Fig. 12.3

127

ntrebri i exerciii
Care etichet indic un nivel de titlu?
Cte niveluri de titlu se pot utiliza n HTML?
Care snt atributele etichetei de titlu?
Care etichete se utilizeaz pentru a delimita un paragraf?
Ce etichete se folosesc pentru trecerea n rnd nou?
Cum se insereaz o linie orizontal?
Ce etichete se folosesc pentru specificarea fontului?
Numii atributele etichetei <font>.
Ce snt stilurile i la ce folosesc?
Care este deosebirea dintre stilurile logice i cele fizice?

Numii etichetele pentru punerea n eviden a stilurilor: a) logice; b) fizice.


Creai o pagin Web pentru un magazin, astfel nct denumirea magazinului s apar ca un
titlu de nivelul 1 avnd culoare neagr. Mai jos se vor afia produsele unui stoc. Denumirea
stocului va avea nivelul 3, iar produsele lui vor fi prezentate ca un text preformatat. Denumirea
magazinului va fi delimitat de stoc printr-o o linie orizontal de grosimea 4 i de culoare
albastr, aliniat la stnga i ocupnd 80% din limea ferestrei programului de explorare.
Creai o pagin Web care va afia dou teoreme de congruen a triunghiurilor. Cuvntul Teorema
va fi scris ca un titlu de nivelul 3, avnd culoarea neagr, caractere ngroate i subliniate. Cele
dou enunuri vor fi nclinate i delimitate unul de altul cu o linie roie orizontal de grosimea
2, aliniat la centru, avnd lungimea 70% din limea ferestrei programului de explorare.
Creai o pagin Web care va afia n centrul paginii formula:
a) (a + b)2 = a2 + 2ab + b2;
b) (a1 + a2 + a3)2 = a12 + a22 + a32 + 2a1a2+ 2 a1a3 + 2 a2a3;
c) | a + b| < |a| + |b|, pentru orice numere nenule a i b.
Creai un document html care va afia urmtoarea pagin Web (fig. 12.4 a, b):

a)

Fig. 12.4

b)

Creai o pagin care va afia o poezie cu titlul de culoare verde, centrat, pe fundal galben, cu
nivelul de titlu 3, desprit de restul textului cu o linie de grosimea 5 i lungimea 50% din
limea ferestrei programului de explorare. Caracterele textului vor fi ngroate i nclinate.

128

12.3. Liste
Pentru organizarea structurat a informaiei unui document html se pot folosi listele.
Deosebim:
a) liste neordonate;
b) liste ordonate;
c) liste de definiii.
Listele neordonate se utilizeaz pentru a indica o succesiune fr o subordonare ierarhic.
Pentru a specifica nceputul i sfrtul unei astfel de liste, se utilizeaz etichetele
<UL> i </UL> (unordered list list neordonat).
Orice element al listei este precedat de eticheta <LI> (list item element al listei).
Fiecrei dintre etichetele <UL>, <LI> i se poate ataa atributul type, care poate lua una
dintre urmtoarele trei valori: Circle, Square, Disc. Acest atribut specific marcajul care
precede fiecare element al listei.
Listele ordonate (se mai numesc liste numerotate) se ncadreaz ntre etichetele <OL>
i </OL> (ordered list list ordonat).
Ca i n cazul listei neordonate, orice element al listei ordonate este precedat de eti
cheta <LI>. Atributul type al etichetei <OL> poate lua una din valorile: A, a, I, i, 1.
Dac atributul type nu este specificat, elementele listei vor fi numerotate cu cifre arabe.
Listele de definiii se utilizeaz, de regul, pentru organizarea glosarelor. Termenii
unui glosar snt listai n ordine alfabetic, fiecare fiind urmat de definiia lui.
Listele de definiii se ncadreaz ntre etichetele <DL> i </DL> (definition list list
de definiii).
Fiecare termen al listei este precedat de eticheta <DT> (definition term termen
definit), iar definiia (descrierea) lui de eticheta <DD> (definition description descrie
rea definiiei).
Observaii:
1. Listele pot fi imbricate.
2. n interiorul unei liste snt permise utilizarea etichetelor <P> i <BR> i a elemen
telor de formatare a textului.
3. O list ordonat poate fi ntrerupt pentru un text. n acest caz se folosesc dou
seturi de etichete <OL>: una pentru prima parte a listei (pn la textul inserat)
ialtapentru partea a doua (dup text). n acest caz, etichetei <OL> din partea
adoua a listei i se ataeaz atributul start cu valoarea ntreag, care indic nceputul
numerotrii.
Exemplul 1 (fig. 12.5):
<HTML>
<Head> <Title> Liste neordonate</Title> </Head>
<Body>
<H4> Unele domenii ale matematicii</H4>
<UL>
<LI> Algebra
<LI> Geometria
<LI> Teoria ecuatiilor diferentiale

129

<LI> Analiza matematica


</UL>
<H4> Unele domenii ale informaticii</H4>
<UL TYPE=square>
<LI> Teoria algoritmilor
<LI> Programarea Web
<LI> Teoria bazelor de date
<LI> Criptografia
</UL>
</Body>
</HTML>

Exemplul 2 (fig. 12.6):


<HTML>
<Head> <Title> Liste ordonate</Title> </Head>
<Body>
<H4> Unele discipline studiate in clasa a X-a </H4>
<OL>
<LI> Limba romana
<LI> Matematica
<LI> Informatica
</OL>
<H4> Unele discipline studiate
in clasa a XII-a</H4>
<OL TYPE=A>
<LI> Informatica
<LI> Biologia
<LI> Matematica
</OL>
</Body>
</HTML>

Fig. 12.5

130

Fig. 12.6

Exemplul 3 (fig. 12.7):


<HTML>
<Head> <Title> Lista de definitii</Title> </Head>
<Body>
<H4> Citeva notiuni din informatica </H4>
<DL>
<DT> Constanta <DD> - marime a carei valoare nu se poate
modifica pe parcursul executiei algoritmului
<DT> Variabila <DD> - marime a carei valoare se poate modifica pe
parcursul executiei algoritmului
<DT> Identificator <DD> - secventa de caractere care incepe (de regula) cu
o litera, ce poate fi urmata de nici una sau de mai multe litere sau cifre,
utilizata pentru a denumi constante, variabile, tipuri, subprograme.
</DL>
</Body>
</HTML>

ntrebri i exerciii
Cu ce scop se folosesc listele?
Ce tipuri de liste cunoatei?
Numii etichetele utilizate pentru fiecare tip de list.
Cum se specific un element al unei liste?
Care snt atributele acestor etichete i ce valori pot primi acestea?
Creai o pagin Web care va afia titlulDisciplinele preferate pe fundal bleu, de nivelul 4, dup care
va urma o list neordonat cu disciplinele respective. n calitate de marcaj se va folosi ptratul.

Creai o pagin Web care va afia titlul Disciplinele studiate n primul semestru al clasei a 12-a
pe fundal bleu, de nivelul 3, dup care va urma o list neordonat cu aceste discipline. n
calitate de marcaj se va folosi discul. Dup list vor fi 2 rnduri goale, apoi va aprea o alt list
neordonat cu disciplinele la care urmeaz s susinei examenul de bacalaureat.
Creai o pagin Web care va afia titlul Lista elevilor clasei a 12-a pe fundal de culoare aqua,
de nivelul 5, aliniat la centru, dup care va urma o list neordonat cu numele elevilor clasei
voastre. Dup list vor fi 2 rnduri goale i va aprea alt list neordonat cu numele elevilor
care au absolvit clasa a 11-a cu media general mai mare dect 8.
Creai o pagin Web care va afia titlul CUPRINS de nivelul 3, dup care vor urma capitolele
unei cri i temele cuprinse n aceste capitole. Folosii liste ordonate i liste imbricate.

Fig. 12.7

131

Creai o pagin Web care va afia 2 liste ordonate:

prima cu titlul Produse alimentare de nivelul 2, n care


elementele vor fi numerotate, iar cealalt cu titlul Pro
duse industriale de nivelul 3, n care elementele vor fi
marcate cu litere.
Creai o pagin Web care va afia o list ordonat a
unor produse culinare. Lista va fi ntrerupt de urm
torul text cursiv: Aceste produse culinare snt pe placul
meu, acum urmeaz produsele culinare care nu-mi plac:.
Titlul listei va avea nivelul 4 i culoarea albastr.
Creai un document html care va afia pagina Web
din figura 12.8.
Creai o pagin Web care va afia definiiile a 5 noiuni
geometrice precedate de titlul Noiuni geometrice
de nivelul 3 avnd culoare gri, aliniat la dreapta i
desprit de noiuni printr-o linie orizontal neagr cu
nlimea 3, aliniat la centru.

Fig. 12.8

12.4. Referine
n paragraful 12.1 am menionat c referinele (se mai numesc linkuri, legturi, hiper
legturi) reprezint, probabil, cea mai important caracteristic a limbajului HTML. Prin
intermediul unei referine se poate ajunge rapid ctre alt secven a documentului curent
sau ctre alt document (pe acelai sau pe alt server). Referinele snt zone active ale paginii
Web, n sensul c la executarea unui clic pe ele, programul de explorare va actualiza pagina.
Pentru a pune n eviden o referin, se folosesc etichetele <A> (de la ancor) i
</A>. Atributul href al etichetei <A> este obligatoriu. Valoarea acestui atribut este numele
fiierului html cu care se face legtura. Numele acestui fiier se scrie ntre simbolurile
i . Textul sau imaginea cuprins ntre etichetele <A> i </A> devine zon activ.
Astfel, o referin se declar n modul urmtor:
<A href=URL> text sau imagine</A>,
unde URL (Uniform Resourse Locator identificator unic al resursei) este numele fiie
rului-destinaie.
Observaie: n acest paragraf vom examina doar referine, n care zona activ este un text.
n general o referin poate:
lega documentul curent cu un document aflat n acelai director;
lega documentul curent cu un document aflat pe acelai disc local;
lega documentul curent cu un alt site;
lega documentul curent cu o alt secven a aceluiai document;
lega documentul curent cu o secven a altui document;
lansa la execuie o aplicaie de expediere a mesajelor electronice;
lega documentul curent cu un fiier de format arbitrar cu scopul crerii unei cpii
pe disc a acestui fiier.
a) Dac documentul referit se afl n acelai director, atunci URL-ul este chiar numele
acestui document.
b) Dac documentul referit se afl pe acelai disc local, dar ntr-un alt director, atunci
se utilizeaz adresarea relativ.

132

c) Dac documentul referit reprezint un alt site, atunci se indic adresa acestui site,
scris ntre simbolurile i .

Exemplul 1 (fig. 12.9):


Prezentm coninutul fiierului exemplul4.html,
care conine legturi ctre:
fiierul exemplul1.html (fiierul referit se afl
n acelai director);
fiierul exemplul2.html (fiierul referit se afl n
subdirectorul EXEMPLE al directorului curent);
fiierul exemplul3.html (fiierul referit se afl
n directorul MAPA, deci pe un nivel ierarhic
imediat superior);
site-ul Universitii de Stat din Tiraspol:
http://www.ust.md.

MAPA

EXEMPLE

<HTML>
<Head> <Title> Referinte</Title> </Head>
<Body>
<H4> <a href = exemplul1.html> Treci la exemplul 1 </a>
<p> <a href = EXEMPLE/exemplul2.html> Treci la exemplul 2 </a> </p>
<p> <a href = ../exemplul3.html> Treci la exemplul 3 </a> </p>
<p> <a href = http://www.ust.md> Universitatea de Stat din
Tiraspol </a> </p>
</H4>
</Body>

</HTML>

d) O referin ctre o alt secven a aceluiai document se numete ancor cu nume.


n acest caz URL-ul este numele atribuit secvenei, precedat de simbolul #. Pentru
aatribui unei secvene un nume, se va scrie o ancor de genul:
<A name = numele secvenei> </A>, unde numele secvenei se scrie ntre simbolurile
i .

Fig. 12.9

Fig. 12.10

Fig. 12.11

133

e) URL-ul ctre o secven a altui document este format din numele fiierului i
numele secvenei, ultimul fiind precedat de simbolul #.
De exemplu, URL-ul secvenei cu numele capitolul2 al fiierului exemplul1.html din
acelai catalog este exemplul1.html#capitolul2.
Exemplul 2 (fig. 12.10, vezi p. 133):
<HTML>
<Head> <Title> Referinte</Title> </Head>
<Body>
<H2>
<a name=inceput></a>
<P>A</P> <P>fost</P> <P>odata</P> <P>ca-n</P> <P>povesti</P>
<P>A</P> <P>fost</P> <P>ca</P> <P>niciodata</P>
<P>Din</P> <P>rude</P> <P>mari</P> <P>imparatesti</P>
<P>O</P> <P>prea</P> <P>frumoasa</P> <P>fata</P>
<a href=#inceput> Treci la inceput </a>
</H2>
</Body>
</HTML>

f) Pentru lansarea la execuie a unei aplicaii de expediere a mesajelor electronice


(sepresupune c aceast aplicaie este instalat pe calculatorul utilizatorului) se va
scrie o ancor de forma:
<A href = mailto: adresa e-mail valid>.
g) Pentru a crea o referin ctre un fiier de format arbitrar cu scopul crerii unei
cpii pe disc a acestui fiier sau cu scopul lansrii la execuie a aplicaiei care va
interpreta astfel de fiiere, se va utiliza o ancor de forma:
<A href=URL> text </A>,
unde URL este numele fiierului, iat text este zona activ.
Observaie: Etichetei <A> i se poate ataa atributul title, care se folosete pentru
afurniza informaii suplimentare despre semnificaia legturii, atunci cnd mouse-ul este
plasat asupra ei. Valoarea atributului title se scrie ntre simbolurile i .
Exemplul 3 (fig. 12.11, vezi p. 133):
<HTML>
<Head> <Title> Referinte</Title>
<H2>Exemplul 3</H2>
</Head>
<Body>
<a href=mailto: delta_mi@mail.md> Cutia postala a revistei Delta </a>
<p><a href=exemplul6.doc title=Salvarea pe disc a fisierului
exemplul6.doc > Salveaza exemplul.doc </p> </a>
</Body>
</HTML>

134

Executnd un clic pe referina Salveaza exemplul6.doc, va aprea fereastra


din figura 12.12, care ne permite s crem pe disc o copie a fiierului exemplul6.doc sau
s deschidem acest fiier n aplicaia Microsoft Word.

Fig. 12.12

ntrebri i exerciii
Ce semnificaie au referinele pentru o pagin Web?
Care snt etichetele folosite pentru declararea unei referine?
Numii atributul obligatoriu pentru eticheta <A>. Ce valoare poate avea acest atribut?
Ce este o zon activ?
Care este forma general de declarare a unei referine?
Care elemente ale unei pagini Web pot fi referine?
Unde se poate afla documentul referit?
Ce este o ancor cu nume?
Cum se atribuie nume unei secvene de document html?
Explicai n ce caz simbolul # se folosete la scrierea URL-ului.
Cum se creeaz o legtur ctre o secven din acelai document?
Din ce este format URL-ul unei secvene din alt document?
Cum dintr-un document html se poate lansa la execuie o aplicaie de expediere a mesajelor
electronice?
Creai o pagin Web care va afia o list cu disciplinele studiate. Fiecare element al listei
vafioreferin ctre un fiier (aflat n acelai director ca i pagina Web) cu informaia despre
disciplina respectiv.
Creai o pagin Web care va afia o list ordonat cu denumirea unor universiti din Republica
Moldova. Fiecare element al listei va fi o referin ctre site-ul universitii respective.
Creai o pagin Web care va afia o list de licee. Fiecare element al listei va fi o referin ctre
fiierul (site-ul) liceului respectiv. Pagina creat se va afla n directorul LICEE, iar fiecare fiier
referit n subdirectorul cu numele liceului. Toate subdirectoarele se vor afla n directorul
LICEE.
Examinai desenul exemplului 1. Care este URL-ul referinei ctre fiierul:
a) exemplul1.html, dac referina se afl n fiierul exemplul3.html;
b) exemplul2.html, dac referina se afl n fiierul exemplul1.html;
c) exemplul4.html, dac referina se afl n fiierul exemplul2.html;
d) exemplul3.html, dac referina se afl n fiierul exemplul2.html?
Creai o pagin Web care va afia o list cu cteva titluri de cri. Fiecare titlu va fi o referin
ctre o scurt prezentare n acelai document html a crii cu acest titlu.

135

Examinai desenul. Care este URL-ul refe MAPA0


rinei ctre fiierul:
a) f1.html, dac referina se afl n f4.html;
b) f2.html, dac referina se afl n f3.html;
c) f4.html, dac referina se afl n f2.html;
d) f4.html, dac referina se afl n f3.html?
Examinai desenul. n ce director se afl do
cumentul html care conine referina dac
URL-ul ei este:
a) Mapa4/fisier4.html;
b) Mapa1/Mapa2/Mapa4/fisier4.html;
c) ../ Mapa1/Mapa2/Mapa4/fisier4.html;
d) ../ ../Mapa3/fisier3.html?
Creai dou pagini Web, astfel nct prima
va conine cteva referine ctre diferite
secvene ale paginii a doua, iar pagina a
doua cteva referine ctre diferite
secvene ale primei pagini.
Creai o pagin Web care va afia o list cu referine ctre fiiere de diferite tipuri pentru a fi
deschise spre vizionare sau stocare.

12.5. Imagini
n afar de faptul c imaginile furnizeaz informaii, ele pot conferi unei paginii Web
atractivitate. Totui utilizarea lor ntr-un document html se va face raional, deoarece
fiecare imagine consum timp pentru descrcarea, decodificarea i afiarea ei.
Fiierele-imagini au diferite formate, cele mai utilizate n Web design fiind:

GIF (Grafics Interchange Format) fiiere cu extensia .gif;

JPEG (Join Photographic Expert Group) fiiere cu extensia .jpeg sau .jpg;

BMP (BitMap) fiiere cu extensia .bmp.
Pentru a insera o imagine, se utilizeaz eticheta <IMG>, cu atributul obligator SRC,
a crui valoare este adresa URL a imaginii:
<IMG SRC = URL>
Sintaxa pentru URL este identic cu cea utilizat pentru referine (vezi paragraful 12.4).
n afar de atributul SRC, eticheta <IMG> poate avea urmtoarele atribute:

ALIGN, utilizat pentru alinierea imaginii i care are una din valorile top (aliniere
deasupra partea de sus a imaginii se aliniaz cu partea de sus a textului ce precede
imaginea), bottom (aliniere la baz partea de jos a imaginii se aliniaz cu linia de baz a
textului), middle (aliniere la mijloc mijlocul imaginii se aliniaz cu linia de baz a textului
ce precede imaginea), left (aliniere la stnga textul i celelalte elemente snt plasate n
dreapta), right (aliniere la dreapta textul i celelalte elemente snt plasate n stnga);

ALT, utilizat pentru afiarea unui text explicativ n locul imaginii (n cazul n care
programul de explorare nu ncarc imaginea opiune stabilit de utilizator sau o alt
cauz) i care are ca valoare nsui textul explicativ (scris ntre "i");

WIDTH i HEIGHT, folosite pentru specificarea mrimii n pixeli a imaginii;

BORDER, folosit pentru crearea n jurul imaginii a unui chenar de grosime (n
pixeli) egal cu valoarea atributului;

136


HSPACE i VSPACE, utilizate pentru precizarea distanei n pixeli pe orizontal,
respectiv pe vertical, dintre imagine i restul elementelor din pagin.
Exemplul 1 (fig. 12.13):
<HTML>
<Head>
<Title>Exemplul 1. Imagine</Title>
</Head>
<Body>
<H3 align=center>Universitatea de Stat din Tiraspol</H3>
<P>
Universitatea de Stat din Tiraspol (UST) este prima institutie de
invatamint superior din Republica Moldova, fondata la 1 octombrie 1930.
<IMG SRC=ust.jpg align=right hspace=10 vspace=10>






Din anul 1992 UST se afla in Chisinau. UST a pregatit peste 80 000 de
specialisti cu studii superioare. Multi dintre ei au devenit personalitati
marcante in diverse domenii - invatamint preuniversitar si universitar,
savanti in pedagogia si economia nationala. Majoritatea cadrelor de
instruire detin titluri stiintifice si didactice. UST colaboreaza cu institutii
din tara si de peste hotare- Romania, Rusia, Ucraina, SUA, Germania,
Italia, Portugalia s.a.

</Body>
</HTML>

Imaginile pot fi utilizate i n calitate de referine.


Exemplul 2 (fig. 12.14):
Urmtoarea pagin Web afieaz 4 imagini-referin. La executarea unui clic pe una
dintre referine se va afia imaginea corespunztoare avnd dimensiuni reale.
Aceast tehnic este deseori folosit la crearea aa-numitelor galerii-foto (referinele
pot fi fiiere de dimensiuni mai mici dect fiierele-imagini referite). Fiierele-imagini se
afl n subdirectorul DESENE al directorului curent.

Fig. 12.13

Fig. 12.14

137

<HTML>
<head> <Title>Imagini</Title> </head>
<Body>
<A HREF=Desene/desen1.jpg><img src=Desene/desen1.jpg
=50 height=50></A>
<A HREF=Desene/desen2.jpg><img src=Desene/desen2.jpg
=50 height=50></A>
<A HREF=Desene/desen3.jpg><img src=Desene/desen3.jpg
=50 height=50></A>
<A HREF=Desene/desen4.jpg><img src=Desene/desen4.jpg
=0 height=50></A>
</Body>
</HTML>

width=
width=
width=
width=5

ntrebri i exerciii
Care snt formatele fiierelor-imagini acceptate de programele de explorare Web?
Ce etichet se utilizeaz pentru inserarea unei imagini ntr-un document html? Care este
atributul obligatoriu al acestei etichete?

Ce atribute neobligatorii poate avea eticheta pentru inserarea imaginilor ntr-un document
html i care snt valorile acestor atribute?

Cum poate fi creat o referin-imagine?


Creai o pagin Web care va afia un CV cu fotografia autorului acestui CV, aliniat la centrul paginii.
Creai o pagin Web care va afia cteva imagini-referine cu dimensiunile 5 cm x 5 cm. La

executarea unui clic pe fiecare imagine, programul de explorare va afia aceast imagine cu
dimensiunile 15 cm x 15 cm.
Creai o pagin Web care va afia un text despre localitatea natal cu titlul de nivelul 5 avnd
culoarea neagr i fundalul gri. O imagine a localitii va aprea n chenar i va fi aliniat la
dreapta textului.
Creai o pagin Web care va afia graficul unei funcii.
Indicaie: Acest grafic poate fi construit cu programul Microsoft Excel.
Creai o pagin Web care va afia o organigram.
Creai un document html care va afia urmtoarea pagin Web (fig. 12.15 a, b) (se pot folosi alte
imagini):

a)

138

Fig. 12.15

b)

12.6. Tabele
n cele mai dese cazuri tabelele se utilizeaz pentru organizarea structurat a datelor.
De asemenea, aa cum fiecare celul a tabelului poate avea propriile culori, stiluri, efecte
pentru text i fundal, tabelele se folosesc i pentru soluii de design.
Un tabel, de regul, are:
a) titlu pentru specificarea numelui tabelului;
b) rnduri i coloane;
c) cap de tabel (table header) pentru descrierea coninutului coloanelor sau al rndurilor;
d) celule de date, care formeaz rndurile i coloanele tabelului.
Etichete pentru definirea unui tabel ntr-un document .html
Etichete

Descrierea etichetelor

<TABLE>
</TABLE>

Definesc un tabel. Eticheta <TABLE> poate avea atributele:


BORDER, care adaug un chenar tabelului i a crui valoare ntreag pozitiv
este grosimea n pixeli a chenarului (valoarea 1 este prestabilit, iar valoarea
0 semnific absena chenarului);
ALIGN, care stabilete modul de aliniere a tabelului n document i poate
avea una din valorile left, right, center;
BGCOLOR, care specific culoarea de fond pentru tot tabelul;
CELLSPACING, care stabilete distana n pixeli dintre dou celule vecine
ale tabelului (valoarea prestabilit este 2);
CELLPADDING, care stabilete distana n pixeli dintre marginea celulei
i coninutul ei (valoarea prestabilit este 1);
WIDTH i HEIGHT, care specific limea i nlimea tabelului (valori
ale atributului pot fi numere ntregi pozitive (numr de pixeli) sau numere
ntregi pozitive mai mici dect 101 i urmate de simbolul % (specificnd astfel
fraciuni din limea i nlimea paginii)).

<CAPTION>
</CAPTION>

Definesc titlul tabelului i pot fi plasate ntre etichetele <table> i </table>,


dar nu n interiorul etichetelor care definesc celulele sau rndurile tabelului.
Eticheta <CAPTION> poate avea atributul ALIGN, care stabilete poziia
titlului fa de tabel i care va avea una din valorile bottom, top, left, right.

<TR>
</TR>

Specific un rnd n tabel. Eticheta <TR> poate avea atributele:


ALIGN pentru alinierea orizontal (cu una din valorile left, center, right);
VALIGN pentru alinierea vertical (cu una din valorile top, middle, bottom).

<TH>
</TH>

Definesc o celul-antet. n mod prestabilit, textul unei astfel de celule este


centrat i ngroat. Eticheta <TH> poate avea atributele:
WIDTH i HEIGHT pentru stabilirea limii i nlimii celulei;
ALIGN i VALIGN;
ROWSPAN, care unific celula cu cteva celule de desubtul ei (valoarea
atributului este numrul total de celule care se unific);
COLSPAN, care unific celula cu cteva celule din dreapta ei (valoarea
atributului este numrul total de celule care se unific);
NOWRAP, care interzice ntreruperea liniei de text din celul (deci coloana
care conine celula poate deveni orict de mare) i care se scrie fr valori;
BGCOLOR, care specific culoarea de fond pentru celul (culoarea textului
celulei poate fi stabilit cu ajutorul atributului Color al etichetei <Font>).

<TD>
</TD>

Definesc o celul de date obinuit. Eticheta <TD> poate avea oricare dintre
atributele etichetei <TH>.

139

Dac o celul a tabelului este vid, atunci n mod normal ea este afiat fr
chenar.Pentru a evita acest efect, n locul coninutului celulei se va scrie textul &nbsp;
sau <br>.
Exemplul (fig. 12.16):
<HTML>
<Head> <Title>Exemplul 1. Tabele</Title> </Head>
<Body>
<Table border=2 width=90% height=80% align=center bgcolor=lightcyan>
<Caption align=left><Font color=Red Size=6> Orarul lectiilor </font>
</Caption>
<Tr><Th Colspan=2>Luni<Th>Marti<Th>Miercuri<Th>Joi<Th>Vineri </Tr>
<Tr align=center><Td>1<Td>Romana<Td>Chimia<Td>Fizica
<Td>Istoria<Td>Algebra </Tr>
<Tr align=center><Td>2<Td>Engleza<Td>Fizica<Td>Informatica
<Td>Rusa<Td>Biologia </Tr>
<Tr align=center><Td>3<Td>Franceza<Td>Algebra<Td>Geometria
<Td>Muzica<Td> Romana </Tr>
</Table>
</Body>
</HTML>

Fig. 12.16

ntrebri i exerciii
Pentru ce snt utilizate tabelele?
Numii atributele etichetei <TABLE> i valorile posibile ale acestor atribute.
Care snt atributele etichetei <CAPTION> i valorile posibile ale acestor atribute?
Cum se specific un rnd de tabel?
Care etichete definesc o celul antet?
Care snt atributele acestor etichete i valorile lor posibile?

140

Care etichete definesc o celul de date? Care snt atributele acestor etichete?
Creai o pagin Web care va afia urmtorul tabel:
a)

A
B

C
D

E
F

B
D

C
E

D
E

b)

c)

A
B

d)

B
e)

B
E
H

G
f)

A
B

C
D
G

E
F
H

g)

Creai un document HTML care va afia urmtoarea pagin Web (fig. 12.17 a, b) (se pot folosi
alte imagini):

a)

Fig. 12.17

b)

141

Ce va afia pagina Web cu urmtorul cod html?


a) <HTML>
<Head><Title>Ce afisam?</Title> </Head>
<Body>
<Table align=center border=2 width=100>
<Tr align=center>
<Td colspan=2>B</Td><Td rowspan=2>D</Td>
</Tr>
<Tr align=center>
<Td>C</Td><Td>A</Td>
</Tr>
</Table>
</Body>
</HTML>
b) <HTML>
<Head><Title>Ce afisam?</Title> </Head>
<Body>
<Table align=center width=100 border=2>
<Tr align=center>
<Td rowspan=2>B</Td><Td>C</Td><Td>A</Td>
</Tr>
<Tr align=center>
<Td colspan=2>D</Td>
</Tr>
</Table>
</body>
</HTML>

Creai un document HTML care va afia urmtorul tabel:


Tabel. Extragerea pietrelor preioase

2010
Rubin
Safir
Diamant

1 483
683

2012
4 532
3 835

2014
6 743
7 482
238

Creai un document HTML care va afia un tabel de forma:


Animale domestice
Pot zbura
Nu pot zbura

142

Animale slbatice
Pot zbura
Nu pot zbura

Gina

Iepurele

Cioara

Lupul

Gsca

Capra

Bufnia

Vulpea

Se
ntlnesc
pe
teritoriul
rii
noastre.

Raa

Calul

Flamingo

Elefantul

Prepelia

Mgarul

Colibri

Leul

Nu se
ntlnesc
pe
teritoriul
rii
noastre.

Crem n echip
1. Proiectai structura unui site cu titlul:
a) Republica Moldova ar european; i) Buctria moldoveneasc;
j) Crile mele preferate;
b) Localitatea noastr de batin;
c) Liceul nostru;
k) Profesii de prestigiu;
d) Republica Moldova atracie turistic; l) Enciclopedia modei;
m) Umorul surs de bun dispoziie;
e) Mnastirile Republicii Moldova;
n) Absolveni de succes ai liceului nostru;
f ) Personaliti notorii;
g) Ani de liceu;
o) Produse autohtone de calitate;
h) Fauna Republicii Moldova;
p) Sportul este sntate.
2. Utiliznd limbajul HTML i consultnd diferite surse de informaie, creai paginile web
componente ale site-ului. Stabilii ntre ele legturi de navigare. Toate paginile vor
avea acelai meniu principal. Testai site-ul cu diferite programe de navigare.
3. Creai i ataai site-ului:
a) o pagin web cu referine spre surse informaionale suplimentare la tema site-ului;
b) o pagin web cu galerii de imagini corespunztoare temei.

Test de evaluare
1. Stabilii valoarea de adevr a propoziiei:
a) Textul scris ntre etichetele <HEAD> i </HEAD> ale unui document HTML va fi afiat
pe bara de titlu a ferestrei programului de explorare n care a fost interpretat acest
document.
b) O etichet poate avea cteva atribute.
c) Programul de explorare va afia din rnd nou un text, dac acesta va fi precedat de
oricare din etichetele <P>, <BR>, <HR>.
d) Un text cuprins ntre etichetele <DIV> i </DIV> este un text preformatat.
2. Selectai etichetele care se folosesc pentru a stabili stiluri fizice pentru un text: <B>,
</B>, <DFN>, </DFN>, <VAR>, </VAR>, <BIG>, </BIG>, <EM>, </EM>, <SUB>, </SUB>.

143

3. Scriei un cod HTML care, fiind interpretat de programul de explorare, va afia urm
toarele liste imbricate:

Fructe
a) Mere
b) Pere
c) Prune
d) Caise

Legume
1. Cartofi
2. Morcovi
3. Ceap

Lactate
o Lapte
o Brnz
o Iaurt
4. Fiierul f1.html se afl n mapa A, iar fiierul f2.html se afl n mapa B. Care este URL-ul
referinei din fiierul f1.html ctre fiierul f2.html, dac:
a) mapele A i B se afl n acelai catalog;
b) mapa A se conine n mapa B;
c) mapa B se conine n mapa A;
d) mapa A se conine n submapa C a mapei B?
5. Comentai semnificaia urmtorului cod HTML:
<A HREF=../TEST/d1.jpg><img src=d2.jpg width=50 height=50></A>.
6. Scriei un cod html care, fiind interpretat de programul de explorare, va afia urm
torul tabel:

A
E
H

144

B
I

C
F

D
G
J

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