Documente Academic
Documente Profesional
Documente Cultură
Anatol Gremalschi
Sergiu Corlat
Andrei Braicov
tiina
2015
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.__________________________________________________________________________
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.
Fig. 1.1. Imagine zoomorf din paleolitic Fig. 1.2. Globul-machet al Pmntului
5
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.
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.
6
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.
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.
7
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
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.
0 x
Fig. 1.3. Starea iniial a sistemului
8
x0 x
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.
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.
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).
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:
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 Rezultat Date Rezultat Date Rezultat Date Rezultat
iniiale iniiale iniiale iniiale
512 2 9 31999 16 15 331 330 2 332 330 1
25768 235 10 31999 2 18 31997 2 19 32 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
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 ;
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?
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
Ne amintim! eroarea la msurarea valorilor lui x influeneaz
Problema rucsacului: rezultatul calculului:
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 ruc-
sac obiecte din setul propus astfel,
nct costul total al obiectelor puse Deoarece i , rezult
n rucsac s fie maxim posibil. .
Dac pentru rezolvare este folosit
metoda Greedy, n majoritatea cazu Diferena dintre valoarea funciei de argument
rilor soluia obinut va fi diferit exact (z) i valoarea funciei de argument msurat (x)
de cea optim. Astfel, pentru un set este o mrime constant. De aici reiese c erorile de
din cinci obiecte cu volumele 5, 7, calcul nu depind de x, ci numai de exactitatea cu care
13, 20, 10, costurile respective de acesta este msurat, iar funcia este stabil la erori.
4, 8, 15, 23, 5 i un rucsac cu volumul Erori de aproximare. Este o categorie de erori
de 30 de uniti va genera soluia generate de anumite definiii i noiuni matema
cu valoarea 27 (obiectele 3, 2, 1).
tice. Prezena lor este acceptat n special n proble
(Sortarea obiectelor este realizat n
descreterea raportului cost/volum.) mele care folosesc noiunea de limit, convergen
n realitate soluia optim are va- etc. Apariia acestui tip de erori este motivat de
loarea 31 (obiectele 2 i 4). nsi structura definiiei care conine elemente de
aproximare.
18
Exemplu: irul {xn} este convergent i are limita
Ne amintim!
x dac pentru orice > 0, 0, exist un rang
Se consider c funcia f (x): I R
n(n), astfel nct , . posed proprietatea Lipschits dac
Din punctul de vedere al analizei numerice, exist o constant m > 0, astfel
indic precizia cu care xn aproximeaz x. nct: |f (x) f (z)| m |zx|, x,
n procesul de calcul al limitei se utilizeaz z I.
oaproximare consecutiv, care se apropie tot mai Se consider c determinarea va-
mult de limita exact, fr a o atinge. Stoparea lorilor funciei f(x) este stabil la
erori, dac f(x) posed proprieta-
procesului de calcul are loc atunci cnd deviaia
tea Lipschits.
(eroarea) devine mai mic dect eroarea maxim
n ali termeni, stabilitatea funciei
admisibil ().
la erori presupune variaii mici ale
De reinut c rezultatele obinute prin calcul valorilor funciei la variaii mici ale
numeric snt acceptate doar ca rezultate cantitative argumentului.
i nu pot servi drept demonstraie pentru anumite
afirmaii matematice.
Erori de rotunjire. Este un tip aparte de erori, Info+
generate de faptul c n procesul prelucrrii m Apropierea valorilor termenilor
rimilor numerice n calculator ele pot fi pstrate irului 1/n de limita irului 0.
doar cu un anumit numr de semne zecimale dup n = 1 1/n = 1
virgul. Drept exemplu poate serviconstanta , n = 2 1/n = 0,5
valorile funciilor trigonometrice etc.
n = 501 1/n = 0,001996
Fie A = {a1, a2, a3, , an,} mulimea tuturor nu
n = 502 1/n = 0,001992
merelor care pot fi reprezentate n calculator. (Se n = 503 1/n = 0,001988
consider c a1 < a2 < a3 < < an.)
n = 999 1/n = 0,001001
Oricare din numerele lipsete n muli
n = 1000 1/n = 0,001000
mea iniial A. n cazul apariiei uneiasemenea n = 1001 1/n = 0,000999
situaii de calcul, apare eroarea legat de nlocuirea ...
rezultatului real prinnumrul cel mai apropiat de
el din mulimea A. Aceast procedur este numit
rotunjire. Exemplu: Fie c n procesul de
Funcia de rotunjire aplicat la calculatoare se calcul se poate opera cu cel mult
definete n felul urmtor: 3cifre dup virgul. n acest caz
pentru numerele
xR, aiA, ai+1A x(ai, ai+1) a = 0,2334, b = 0,2331, c = 0,233
dac , se obine rd(rd(a+b)+c) =
= rd(rd(0,4665)+0,233) =
= rd(0,467+0,233) = 0,7;
dac . rd(a+rd(b+c)) =
rd(0,2334+rd(0,4661)) =
=
Utilizarea funciei de rotunjire genereaz aba rd(0,2334+0,466) =
=
teri de la legile de baz ale operaiilor aritmetice, rd(0,6994) = 0,699.
=
care nu mai snt asociative, distributive.
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:
a) = |A a|; c) = |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
22
n cele ce urmeaz se va presupune c ecuaia(1)
Ne amintim!
are soluii distincte (izolate), adic pentru fiecare
Teorem. Dac funcia f (x), con-
soluie a ecuaiei exist o vecintate a sa, care nu
tinu pe segmentul [a, b], prime-
conine 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
1. Separarea intervalelor pe care ecuaia are o punct , astfel nct f () = 0. Dac pe
singur soluie. [a, b] exist derivata f '(x), continu,
2. Micorarea pe ct mai mult posibil a fiecrui care are un semn constant, atunci
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.
ntruct ecuaia iniial are o singur soluie.
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.
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.
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.
Exemplu: . Soluiile se caut pe segmentul [0,2, 10]
(fig. 3.1 a, 3.1 b).
Fig. 3.1a. Funcia f(x) reprezentat tabelar Fig. 3.1b. Funcia f(x) reprezentat grafic n baza
n foaia de calcul. Colana A conine datelor din tabel. Pot fi uor identificate dou
valorile x de la 0,2 la 10 cu pasul 0,2. segmente oarecare, ce conin exact cte o soluie
Coloana B conine valorile f(x) 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], n = 100;
b) pe [2, 2], n = 100.
Separai, folosind cea mai potrivit metod, soluiile ecuaiilor:
a) ; e) ;
b) ; f ) ;
c) ; g) .
d) ;
24
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
f (ai) f (bi) < 0, i = 0, 1, 2, ... . (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 . SFRIT.
n caz contrar, se revine la pasul 1.
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.
2
n contextul dat precizia semnific o eroare de calcul, care nu depete valoarea .
3
Instruciune de salt necondiionat care ntrerupe execuia instruciunii ciclice n care se conine.
26
Rezultate: x=3.00000000 f(x)= -4.81099492
x=2.50000000 f(x)= -0.01908454
x=2.49829102 f(x)= -0.00199471
x=2.49816895 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
erorii, dedus n paragraful curent, este . Exprimai diferena dintre valoarea
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];
2. x3 x 1 = 0 pe [1, 2];
3. x3 + 3x2 3 = 0 pe [3, 2];
4. x5 x 2 =0 pe [1, 2].
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.
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
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:
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.
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.
30
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:
a) x3 0,2x2 + 0,2x 2,1 = 0 pe [1, 2];
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:
a) tg(0,55x + 0,1) x2 = 0 pentru 5, 25 de iteraii;
b) x3 0,2x2 + 0,5x + 1,5 = 0 pentru 3, 9, 27 de iteraii.
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.
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:
= , (7)
unde
xi, xi+1 dou aproximri succesive ale soluiei calculate,
M2 supremul f (x) pe [a, b],
m1 infimul f (x) pe [a, b].
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
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):
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.
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).
3
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.
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) pe [4,5; 4] [4; 4,5];
d) 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 pe [0,1; 0,74], M2=4, m1 =0,5;
b) x5 4x + 9 = 0 pe [2; 1], M2=150, m1 = 1.
Fie dat funcia 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:
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
(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.
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 Ne amintim!
valoarea expresiei . Pentru matricea A de ordinul 1, for
mat dintr-un singur element a1,1,
Conform definiiei determinantul va fi chiar valoarea
acestui element.
Exemplu: A = (7); det(A) = 7.
Pentru o matrice de ordinul 2,
.
Exemplu: det(A) = 9.
Implementarea algoritmului
Fie date declaraiile:
const nmax=10;
type matrice=array[1..nmax,1..nmax] of real;
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
ale liniei j nmulite cu coeficientul . Dac elementul aj, j are valoarea 0, se ncearc
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) b) c)
;
;
;
d) e) f)
; ;
;
g) h)
;
.
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)
vectorul
matricea vectorul
termenilor
coeficienilor, soluiilor.
liberi,
Gabriel Cramer (17041752) matematician elveian. Nscut n Geneva. Cele mai remarcabile rezultate n
1
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:
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)
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 ;
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}
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.
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)
a) ; c) ;
b) ; d) .
49
Metoda Gauss presupune determinarea componentei xi a vectorului soluie prin formula:
a) ; c) ;
b) ; d) .
a) ; b) .
a) b)
50
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.
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
,
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
Fig. 5.2. Divizarea [a, b] n segmente elemen
tare. Mijlocul segmentului elementar [xi, xi+1]
unei sume de arii a dreptunghiurilor este numit
metoda dreptunghiurilor.
este punctul
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. unde M supremul |f(x)| pe [a, b], I valoarea
Pefiecare segment elementar nlimea calculat a integralei.
dreptunghiului este determinat de valoarea Din formula precedent rezult un fapt impor
funciei f (x) n mijlocul segmentului
tant: eroarea de calcul a metodei dreptunghiurilor
52
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
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.
+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.
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.
1
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) ; c) ; e) ;
b) ; 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) , M = 9; c) , M = 5;
b) , M = 7; d) , 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.
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:
2
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.
56
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.
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.
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) ; b) ; c) ;
d) ; e) ; 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 .
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:
sau .
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
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.
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.
60
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.
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.
corelaiile dintre formulele de calcul ale integralei definite din coloana stng i denumirile
metodelor respective din coloana dreapt:
Dreptunghiuri de mijloc
Dreptunghiuri de stnga
Dreptunghiuri de dreapta
Trapeze
5. Fie , 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) .
3
Opional.
62
Capitolul 6
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.
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?
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.
www
md ro ru uk com org
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
69
Tabelul Adrese_Elevi
Cod_elev Loc_elev Strada_elev Nr_casa_elev Ap_elev
e001 Chiinu Mihail Sadoveanu 40 23
e002 Stuceni Viei 9
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 Tabelul Prof_dis_clasa
Cod_disciplina Nume_disciplina Cod_repart Cod_clasa Cod_dis Cod_prof
d01 Matematica r001 c01 d01 prof01
d02 Informatica r002 c01 d02 prof01
d03 Chimia r003 c01 d03 prof02
d04 Fizica r004 c01 d05 prof04
70
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
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.
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 Loc_prof Strada_prof Nr_casa_prof Ap_prof
prof01 Cricova Vinului 89
prof02 Chiinu Grenoble 81 77
Tabelul 5. Clase
Cod_clasa Anul_de_studii Nume_clasa Cod_profil
c01 10 A p1
c02 10 B 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 Loc_elev Strada_elev Nr_casa_elev Ap_elev
e001 Chiinu Mihail Sadoveanu 40 23
e002 Stuceni Viei 9
74
Tabelul 8. Prof_dis_clasa
Cod_repart Cod_clasa Cod_dis Cod_prof
r001 c01 d01 prof01
r002 c01 d02 prof01
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
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.
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 .
Simbol Descriere
0 Cifr (nu poate fi precedat de + ori ). Introducere obligatorie.
9 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
prin executarea unui clic pe butonul din caseta proprietii Input Mask), care ofer
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.
2. Executm un clic pe butonul de pe bara de instrumente sau selectm Relation
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.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?
Fig. 8.5
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.
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.
O expresie Access este o declaraie de intenie, care conine cel puin un operator i un
operand: constant, identificator sau funcie.
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.
87
Now() Data i ora curent
Year(D) Anul scris cu 4 cifre corespunztor datei calendarisice D
Month(D) Numrul de ordine n an al lunii corespunztoare datei calendarisice D
Day(D) Numrul de ordine n lun al zilei corespunztoare datei calendarisice D
WeekDay(D) Numrul de ordine n sptmn al datei calendaristice D (1 corespunde
Duminicii, 2 zilei de Luni etc.)
Hour(D) Ora (numr ntreg de la 0 la 23) corespunztoare valorii calendaristice D
88
Rnd() Un numr aleator cuprins ntre 0 i 1
Sgn(X) 0 dac numrul X este pozitiv, 1 dac numrul X este negativ
Sin(X) Sinusul numrului X
Sqr(X) Rdcina ptrat a numrului X
Tan(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:
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.
Interogrile snt obiecte ale sistemelor de gestiune a bazelor de date care reprezint
adresri de cutare, analizare i/sau de modificare a datelor bazei.
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.
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.
96
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.
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.
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
Liceu (ca n figura 9.15). Fig. 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.
Fig. 10.5
104
Butoanele din partea de jos a formularului se folosesc pentru a lista nregistrrile.
Astfel, butoanele , afieaz prima i, respectiv, ultima nregistrare. Pentru a vedea
precedenta sau urmtoarea nregistrare fa de cea curent, se va aciona butonul sau,
respectiv, .
La inserarea datelor noi se va apsa butonul sau se va executa New Record din
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.
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
insernd un element Text Box (de pe bara ToolBox) i indicnd n caseta Unbound
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
casete o bar de defilare, se execut un clic pe butonul Properties , apoi se atribuie
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
Windows. Fig. 10.9
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
apelare doar dac este activat butonul Control Wizard din caseta Toolbox.
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.
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
Fig. 10.17
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.
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.
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.
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).
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.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
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.
122
12.1.2. Structura general a unui document HTML
Un document HTML are, de regul, urmtoarea structur:
<HTML> nceputul documentului
<Head>
<Title>
Titlul documentului Seciunea de antet a documentului
</Title>
</Head>
<Body>
Coninutul documentului Seciunea de coninut a documentului
</Body>
</HTML> Sfritul documentului
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>:
bgcolor = #n1n2n3n4n5n6, unde snt numere hexazecimale care de
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.
<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>
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>
126
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 Ă ă Â â Î î Ş ş Ţ ţ
De asemenea, &-consecutivitile se folosesc pentru reprezentarea diferitor simboluri
speciale:
Simbolul & < > spaiu
Codul & < > " ® ©   §
<HTML>
<Head><Title> Exemplul 3 </Title><Body>
<H4>
Acest capitol vă învaţă să creaţi 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) b)
Fig. 12.4
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>
130
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 .
MAPA
Exemplul 1 (fig. 12.9):
Prezentm coninutul fiierului exemplul4.html,
care conine legturi ctre:
fiierul exemplul1.html (fiierul referit se afl EXEMPLE
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.
<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>
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>
<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>
137
<HTML>
<head> <Title>Imagini</Title> </head>
<Body>
<A HREF=Desene/desen1.jpg><img src=Desene/desen1.jpg width=
=50 height=50></A>
<A HREF=Desene/desen2.jpg><img src=Desene/desen2.jpg width=
=50 height=50></A>
<A HREF=Desene/desen3.jpg><img src=Desene/desen3.jpg width=
=50 height=50></A>
<A HREF=Desene/desen4.jpg><img src=Desene/desen4.jpg width=5
=0 height=50></A>
</Body>
</HTML>
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) b)
Fig. 12.15
138
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> Definesc un tabel. Eticheta <TABLE> poate avea atributele:
</TABLE> 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> Definesc titlul tabelului i pot fi plasate ntre etichetele <table> i </table>,
</CAPTION> 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> Specific un rnd n tabel. Eticheta <TR> poate avea atributele:
</TR> ALIGN pentru alinierea orizontal (cu una din valorile left, center, right);
VALIGN pentru alinierea vertical (cu una din valorile top, middle, bottom).
<TH> Definesc o celul-antet. n mod prestabilit, textul unei astfel de celule este
</TH> 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> Definesc o celul de date obinuit. Eticheta <TD> poate avea oricare dintre
</TD> 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
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 C E
B D F
b)
B C
A
D E
c)
A D
B C E
d)
A C
E
B
e)
B
A C
D E F
G H I
f)
A C E
D F
B
G H
g)
E F G
B
A D
H
C
Creai un document HTML care va afia urmtoarea pagin Web (fig. 12.17 a, b) (se pot folosi
alte imagini):
a) b)
Fig. 12.17
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>
Se
ntlnesc
Gina Iepurele Cioara Lupul pe
teritoriul
rii
noastre.
Crem n echip
1. Proiectai structura unui site cu titlul:
a) Republica Moldova ar european; i) Buctria moldoveneasc;
b) Localitatea noastr de batin; j) Crile mele preferate;
c) Liceul nostru; k) Profesii de prestigiu;
d) Republica Moldova atracie turistic; l) Enciclopedia modei;
e) Mnastirile Republicii Moldova; m) Umorul surs de bun dispoziie;
f ) Personaliti notorii; n) Absolveni de succes ai liceului nostru;
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 B C D
E G
F
H I J
144