Documente Academic
Documente Profesional
Documente Cultură
Anatol Gremalschi
Sergiu Corlat
Andrei Braicov
tiina
2015
-a
Elaborat n baza curriculumului disciplinar n vigoare i aprobat prin Ordinul ministrului educaiei
(nr. 399 din 25 mai 2015). Editat din mijloacele financiare ale Fondului special pentru manuale.
Comisia de evaluare: Gheorghe Chistrug, prof. colar, gr. did. superior, Liceul Teoretic Mihai Eminescu,
Drochia; Elena Doronina, prof. colar, gr. did. superior, Liceul Teoretic Natalia Gheorghiu, Chiinu; Svetlana
Rudoi, prof. colar, gr. did. superior, Liceul Teoretic Mihai Eminescu, Chiinu
Recenzeni: Tatiana Baciu, dr. n psihologie, Universitatea Pedagogic de Stat Ion Creang; Alexei Colbneac,
prof. universitar, ef catedr Grafic, Academia de Muzic, Teatru i Arte Plastice, maestru n arte;
Tatiana Cartaleanu, dr. n filologie, Universitatea Pedagogic de Stat Ion Creang
Acest manual este proprietatea Ministerului Educaiei al Republicii Moldova
Liceul/Gimnaziul______________________________________________________________________
Manualul nr.__________________________________________________________________________
Anul
de folosire
Numele de familie
i prenumele elevului
Anul
colar
Aspectul manualului
la primire
la restituire
1
2
3
4
5
Dirigintele controleaz dac numele elevului este scris corect.
Elevul nu trebuie s fac niciun fel de nsemnri n manual.
Aspectul manualului (la primire i restituire) se va aprecia cu calificativele: nou, bun, satisfctor, nesatisfctor.
Cuprins
Partea I. Calcul numeric
Capitolul 1. Elemente de modelare
1.1. Noiune de model. Clasificarea modelelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Modelul matematic i modelarea matematic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3. Soluii analitice i soluii de simulare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4. Etapele rezolvrii problemei la calculator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Capitolul 2. Erori n calculul numeric
2.1. Numere aproximative. Eroarea absolut i relativ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2. Sursele erorilor de calcul. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Capitolul 3. Metode numerice de rezolvare a ecuaiilor algebrice i transcendente
3.1. Separarea soluiilor ecuaiilor algebrice i transcendente . . . . . . . . . . . . . . . . . . . . . . . 22
3.2. Metoda biseciei. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3. Metoda coardelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4. Metoda Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Capitolul 4. Metode numerice de calcul al determinanilor i rezolvarea sistemelor
de ecuaii liniare
4.1. Determinani numerici. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2. Metoda Cramer de rezolvare a sistemelor de ecuaii liniare . . . . . . . . . . . . . . . . . . . . . 41
4.3. Metoda Gauss de rezolvare a sistemelor de ecuaii liniare. . . . . . . . . . . . . . . . . . . . . . . 45
Capitolul 5. Integrarea numeric
5.1. Metoda dreptunghiurilor pentru calculul aproximativ al integralei definite. . . . . . . . . . 51
5.2. Variaii ale metodei dreptunghiurilor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.3. Formula trapezelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Partea a II-a. Baze de date
Capitolul 6. Concepte generale despre baze de date
6.1. Noiuni i concepte despre date i despre baze de date. . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.1.1. Date elementare i structuri de date. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.1.2. Baze de date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.2. Tipuri de baze de date. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Capitolul 7. Elaborarea i gestiunea bazelor de date
7.1. Elaborarea unei baze de date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
7.1.1. Aspecte generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
7.1.2. Proiectarea entitilor unei baze de date relaionale. . . . . . . . . . . . . . . . . . . . . . . . . 69
7.1.3. Principii de proiectare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
7.2. Sisteme de gestiune a bazelor de date (SGBD). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
7.2.1. Concepte generale despre sisteme de gestiune a bazelor de date. . . . . . . . . . . . . . 72
7.2.2. Sistemul de gestiune a bazelor de date Microsoft Office Access. . . . . . . . . . . . . . . 73
7.2.3. Structura bazei de date Liceu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Capitolul 8. Tabelele principalele obiecte ale unei baze de date
8.1. Crearea tabelelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8.1.1. Crearea structurii unui tabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8.1.2. Proprietile cmpurilor tabelului. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8.2. Stabilirea relaiilor dintre tabele. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
8.3. Modificarea tabelelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
8.3.1. Introducerea i editarea datelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
CAPITOLUL 1
ELEMENTE DE MODELARE
Dup studierea acestui capitol, vei fi capabili s:
descifrai sensul termenilor model, modelare;
clasificai modelele obiectelor, proceselor, fenomenelor;
utilizai i s elaborai modele matematice;
distingei soluiile analitice i cele de simulare;
explicai metodele de obinere a soluiilor analitice i a celor de simulare;
explicai interaciunea dintre modelul matematic, algoritm i program;
planificai procesul de rezolvare a problemei la calculator.
cosmic real, dar se deosebete de el: difer dimensiunile, proprietile fizice, structura
etc. Globul-machet este o reprezentare simplificat a Terrei, care permite studierea doar
a anumitor particulariti ale ei este doarun model.
Modelul este un sistem material sau ideal, logico-matematic cu ajutorul cruia pot fi
studiate, prin analogie, proprietile i operaiile efectuate asupra sistemului iniial,
care, n general, este mai complex.
Modelele snt utilizate din cele mai vechi timpuri pentru examinarea fenomenelor
iproceselor complexe, de exemplu, moleculele, atomii, sistemul solar, universul n
ansamblu, un reactor atomic, un zgrie-nor etc. Un model reuit este mai comod pentru
cercetri dect obiectul real. Mai mult chiar, anumite obiecte i fenomene nici nu pot fi
studiate n original. De exemplu, snt greu de efectuat experimente ce in de economia
unei ri, snt imposibile experienele cu planetele sistemului solar, cele care presupun
revenirea n timp etc. Un alt aspect important al modelrii l constituie posibilitatea de
a pune n eviden doar acei factori, acele proprieti ale obiectului real, care snt eseniale
pentru obiectul studiat.
De asemenea, modelul permite instruirea n vederea utilizrii corecte a obiectului
real, verificnd diferite moduri de a reaciona pe modelul acestui obiect. Experienele cu
obiectul real pot fi imposibile sau foarte periculoase (durata mare a procesului n timp,
riscul de a deteriora obiectul). n cazurile cercetrii obiectelor dinamice, caracteristicile
crora depind de timp, o importan primordial capt problema prognozrii strii
obiectului sub aciunea unor anumii factori.
n general, un model bine construit permite obinerea unor cunotine noi despre
obiectul original supus cercetrii.
Procesul de construire a modelului se numete modelare.
Exist cteva tipuri de modelare, ce pot fi unite n dou grupe mari: modelarea mate
rial i modelarea ideal.
n cazul modelrii materiale, cercetarea originalului se efectueaz prin redarea cu
ajutorul unui alt obiect material, mai simplu dect cel real, denumit model, a caracte
risticilor geometrice, fizice, dinamice, funcionale de baz ale originalului. Exemple:
machetele cldirilor, avioanelor, automobilelor i ale vehiculelor militare etc.
n cazul modelrii ideale, cercetarea originalului se efectueaz prin reprezentarea
proprietilor lui cu ajutorul anumitor concepte, scheme, planuri, structuri, care exist
doar n imaginaia omului.
n general, modelarea ideal se bazeaz pe o concepie intuitiv despre obiectul cerce
trilor. De exemplu, experiena de via a fiecrui om poate fi considerat drept un model
personificat al lumii nconjurtoare. Atunci cnd modelarea nu este intuitiv i se folosesc
anumite simboluri, cum ar fi diverse scheme, grafice, formule, ea este numit simbolic.
n categoria modelelor simbolice un loc aparte l ocup modelarea matematic, n care
examinarea obiectului se realizeaz prin intermediul unui model formulat n termeni i
noiuni matematice, cu folosirea anumitor metode matematice. Un exemplu clasic al
modelrii matematice l constituie descrierea i cercetarea legilor de baz ale mecanicii
lui Newton cu ajutorul instrumentelor matematice.
Pentru studierea unui proces sau fenomen nu este suficient s fie construit modelul
respectiv. n general, modelul descrie anumite legiti, relaii, caracteristici ale originalu
lui, ns scopul modelrii const n obinerea, n baza informaiilor furnizate de model,
a unor date noi despre original.
ntrebri i exerciii
Explicai noiunea de model. Dai exemple de obiecte ale lumii nconjurtoare i modele ale
acestora. Pentru fiecare exemplu, indicai caracteristicile obiectului original, ce snt redate de
model.
Formulai definiia noiunii de model material. Dai exemple de modele materiale. Argumentai
necesitatea utilizrii modelrii materiale n diferite domenii ale tiinei i tehnicii.
Formulai definiia noiunii de model ideal. Exemplificai. Motivai necesitatea utilizrii mode
lelor ideale.
n anul 1911, cercettorul E. Rutherford a propus modelul planetar (nuclear) al ato
mului. Explicai sensul cuvntului model n contextul propunerii lui Rutherford,
precum i motivul pentru care el este numit planetar.
Explicai sensul urmtoarei afirmaii: Pictogramele interfeei grafice a utilizatorului reprezint
modele ale obiectelor prelucrate de produsele software.
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.
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.
x0
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.
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.
Timp (ore)
0
1
2
3
4
5
6
7
8
Cantitatea de ap
ce a fost pompat
0
15
30
45
60
75
90
105
120
Cantitatea de ap
ce s-a scurs
0
5
10
15
20
25
30
35
40
Cantitatea de ap
din bazin
20
30
40
50
60
70
80
90
100
Soluia problemei a fost obinut printr-un numr relativ mare de calcule consecutive,
care au reconstruit dinamic volumul de ap n bazin peste fiecare or. Sigur, nu este cea
mai eficient metod: se utilizeaz un numr considerabil de rezultate intermediare,
numrul de operaii realizate este la fel nemotivat de mare.
O alt soluie se bazeaz pe o formul care permite calculul direct al rezultatului final.
Timpul necesar pentru umplerea bazinului este determinat de diferena dintre volumul
total al bazinului i cantitatea de ap care se coninea iniial n el raportat la debitul apei
timp de o or:
.
Prima dintre metodele efectuate utiliza un proces iterativ, care determina volumul de
ap dup fiecare interval elementar de timp (1 or) i calcula rezultatele noi, folosind
datele obinute la etapa precedent. Cu alte cuvinte, a fost realizat procesul de modelare
a etapelor de umplere a bazinului. Acest proces se numete simulare.
Simularea este o tehnic de rezolvare a problemelor, bazat pe utilizarea unor modele
matematice i logice ce descriu comportarea unui sistem real n spaiu i/sau n timp.
Model de simulare este modelul de rezolvare a problemei n baza tehnicii de simulare.
Soluiile obinute prin procesul de simulare se numesc soluii de simulare.
10
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?
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
Analiza
Model
matematic
Algoritm
Program
Testare
Exemplu:
Problem:
n condiii de laborator, o populaie de virui, format iniial din N uniti i plasat
ntr-un mediu steril, se micoreaz n fiecare or cu 50 de procente, dac numrul
viruilor la nceputul orei este par, sau crete cu o unitate, dac numrul viruilor la
nceputul orei este impar. n momentul cnd numrul viruilor devine mai mic dect
cantitatea critic de supravieuire C, populaia dispare integral.
Cerin: Scriei un program care va stabili timpul necesar, n ore, pentru distruge
rea n laborator a unei populaii din N (N < 32 000) virui, avnd cantitatea critic de
supravieuire C (1 < C < N).
Analiza problemei
Populaia format dintr-un numr par de virui n fiecare or se micoreaz de dou
ori. Populaia format dintr-un numr impar crete cu o unitate i se transform ntr-o
populaie par. Creterea repetat este imposibil, njumtirea se repet ns cel puin
odat la dou ore. Prin urmare, valoarea C (C > 1) va fi atins ntr-un numr finit de ore.
Modelul matematic
Numrul populaiei n momentul de timp t = 0 este dat de numrul N0 = N.
Numrul populaiei dup t ore de sterilizare (t > 0) este dat de formula recurent:
Algoritm
Pasul 0. Iniializare: Se introduc valorile N, C. t 0.
13
Pasul 1.
a) Trecerea unei ore: t t+1.
b) Remodelarea populaiei: dac N mod 2 = 0, N N div 2, altfel N N+1.
Pasul 2. Verificarea condiiei de supravieuire: dac N < C, se afieaz valoarea t.
SFRIT. n caz contrar, se revine la pasul 1.
Program
program cn04;
var N,C,t: integer;
begin
readln(N, C); t:=0;
while (N>=C) do begin
t:=t+1;
if N mod 2 = 1 then N:=N+1 else N:= N div 2;
end;
writeln(t);
end.
Testare
Pentru verificarea corectitudinii rezolvrii problemei au fost folosite urmtoarele
seturi de date:
Date
iniiale
512 2
25768 235
Rezultat
9
10
Date
iniiale
31999 16
31999 2
Rezultat
15
18
Date
iniiale
331 330
31997 2
Rezultat
2
19
Date
iniiale
332 330
32
Rezultat
1
3
ntrebri i exerciii
Enumerai etapele rezolvrii unei probleme la calculator. Explicai necesitatea fiecrei etape.
Care snt metodele de descriere a algoritmului unei probleme? Exemplificai.
Care este impactul divizrii unei probleme n subprobleme elementare? Dai exemple de
probleme ce pot fi divizate n subprobleme. Indicai dou sau mai multe probleme ce conin
subprobleme identice.
Pentru urmtoarele probleme realizai modelul matematic:
a) Snt cunoscute coordonatele a trei vrfuri ale unui dreptunghi cu laturile paralele axelor de
coordonate. Se cere determinarea coordonatelor celui de-al patrulea vrf.
b) n condiiile punctului precedent, laturile dreptunghiului pot fi poziionate arbitrar fa de
axele de coordonate.
Pentru urmtoarele probleme descriei un algoritm de rezolvare, folosind metodele de
descriere cunoscute:
a) Este dat un ir din cel mult 100 de numere ntregi. Se cere s se aranjeze elementele irului
n ordine cresctoare.
b) Este dat un ir din cel mult 100 de numere ntregi. Se cere determinarea elementului cu valoare
maxim din ir i a numrului de repetri ale lui printr-o singur parcurgere a irului.
Elaborai
programe pentru rezolvarea problemelor din exerciiile 4 i 5.
Alctuii
seturi
de teste pentru programele realizate n exerciiul 6.
14
Test de evaluare
I Stabilii valoarea de adevr a urmtoarelor afirmaii:
1. Modelul este o copie fidel a originalului, care pstreaz toate proprietile acestuia:
a) adevrat;
b) fals.
2. Modelul matematic este un model ideal:
a) adevrat;
b) fals.
3. Modelul matematic poate fi utilizat n exclusivitate pentru rezolvarea problemelor mate
matice:
a) adevrat;
b) fals.
4. Soluia de simulare a unei probleme permite calculul direct al rezultatului din datele iniiale
ale problemei:
a) adevrat;
b) fals.
5. n procesul de rezolvare a unei probleme la calculator, elaborarea modelului matematic al
problemei precede elaborarea algoritmului:
a) adevrat;
b) fals.
6. Rezultatul corect, obinut pentru un set de date de intrare, garanteaz corectitudinea
rezultatelor furnizate de program pentru orice alt set de date:
a) adevrat;
b) fals.
II Selectai varianta corect a definiiei:
15
CAPITOLUL 2
16
Exemplu: O bar are lungimea de 100 cm. n urma unei msurri a fost stabilit o
valoare a lungimii egal cu 101 cm. Distana dintre punctele A i B este de 3 000 m.
Ca rezultat al msurrii s-a obinut distana de 2 997m. Se cere determinarea erorii
relative a fiecrei msurri i msurarea mai exact.
Rezolvare:
pentru prima msurare
;
pentru msurarea a doua
Deoarece eroarea relativ a celei de-a doua msurri este mai mic, aceast msurare
este mai exact.
ntrebri i exerciii
Explicai noiunea de eroare. Dai exemple de apariie a erorilor n situaii reale.
Definii noiunea de eroare absolut. Exemplificai.
Definii noiunea de eroare relativ. Exemplificai. Cum se va modifica formula de calcul a erorii
relative, dac eroarea trebuie indicat n % de la valoarea exact a mrimii cercetate?
Lungimea traseului dintre dou localiti, afiat pe indicatorul de drum, este de 230 km.
17
b) erori de metod;
c) erori ale datelor de intrare;
d) erori de aproximare;
e) erori de rotunjire.
Erori de problem. Aceast categorie de erori apare n situaiile cnd modelul mate
matic ales pentru rezolvarea problemei nu descrie complet procesul real cercetat. Astfel,
n exemplul 2 (1.2. Modelul matematic i modelarea matematic), pentru a construi
modelul matematic al sistemului bilarc, s-a utilizat ecuaia oscilaiilor armonice pentru
deformaii mici i n lipsa forei de frecare. Prin urmare, rezultatul obinut prin utilizarea
formulei va fi diferit de cel exact, diferena fiind cu att mai semnificativ, cu ct e mai
mare fora de frecare i deformarea arcului n sistemul real.
Erori de metod. Este o categorie de erori generat de imposibilitatea determinrii
unei metode exacte de rezolvare a problemei sau de restriciile care impun utilizarea unei
metode mai puin exacte. n acest caz problema iniial este rezolvat printr-o metod
euristic, care poate genera diferene eseniale ntre rezultatul calculat i cel exact.
Un exemplu elocvent este utilizarea metodei Greedy pentru rezolvarea problemei
rucsacului.
Erori ale datelor de intrare. Deseori procesul de modelare matematic se bazeaz pe
rezultatele unor experiene, adic pe nite seturi de mrimi numerice, obinute n urma
msurrilor. Aceste mrimi nu snt exacte (ex.: distana, masa, viteza).
Fie c un corp se mic pe o traiectorie descris pe segmentul [0,1] de funcia f (x) = x2 + x + 1.
Se tie c valoarea argumentului x se calculeaz cu o eroare absolut care nu depete
0,01. Prin urmare, dac z este valoarea exact a argumentului, atunci |z x| < 0,01.
n condiiile date se poate stabili n ce msur
eroarea la msurarea valorilor lui x influeneaz
Ne amintim!
rezultatul calculului:
Problema rucsacului:
Fie un rucsac de volum x S i n obiec
te de volume vi , i = 1...n i costuri
ci , i = 1...n. Se cere s se pun n rucsac obiecte din setul propus astfel,
nct costul total al obiectelor puse
n rucsac s fie maxim posibil.
Dac pentru rezolvare este folosit
metoda Greedy, n majoritatea cazu
rilor soluia obinut va fi diferit
de cea optim. Astfel, pentru un set
din cinci obiecte cu volumele 5, 7,
13, 20, 10, costurile respective de
4, 8, 15, 23, 5 i un rucsac cu volumul
de 30 de uniti va genera soluia
cu valoarea 27 (obiectele 3, 2, 1).
(Sortarea obiectelor este realizat n
descreterea raportului cost/volum.)
n realitate soluia optim are valoarea 31 (obiectele 2 i 4).
18
Deoarece
i
, rezult
.
Diferena dintre valoarea funciei de argument
exact (z) i valoarea funciei de argument msurat (x)
este o mrime constant. De aici reiese c erorile de
calcul nu depind de x, ci numai de exactitatea cu care
acesta este msurat, iar funcia este stabil la erori.
Erori de aproximare. Este o categorie de erori
generate de anumite definiii i noiuni matema
tice. Prezena lor este acceptat n special n proble
mele care folosesc noiunea de limit, convergen
etc. Apariia acestui tip de erori este motivat de
nsi structura definiiei care conine elemente de
aproximare.
,
.
Ne amintim!
Se consider c funcia f (x): I R
posed proprietatea Lipschits dac
exist o constant m > 0, astfel
nct: |f (x) f (z)| m |zx|, x,
z I.
Se consider c determinarea valorilor funciei f(x) este stabil la
erori, dac f(x) posed proprietatea Lipschits.
n ali termeni, stabilitatea funciei
la erori presupune variaii mici ale
valorilor funciei la variaii mici ale
argumentului.
Info+
Apropierea valorilor termenilor
irului 1/n de limita irului 0.
n = 1
1/n = 1
n = 2
1/n = 0,5
n = 501
1/n = 0,001996
n = 502
1/n = 0,001992
n = 503
1/n = 0,001988
n = 999
1/n = 0,001001
n = 1000 1/n = 0,001000
n = 1001 1/n = 0,000999
...
19
ntrebri i exerciii
Identificai principalele surse de erori. Exemplificai.
Dai exemple de erori generate de imposibilitatea formulrii exacte a problemei. Motivai
imposibilitatea formulrii exacte.
Va atinge oare irul soluiilor calculate valoarea soluiei exacte? Stabilii experimental sau
analitic soluia exact. Dup cte iteraii eroarea absolut a soluiei calculate va deveni mai
mic de 0,0001?
Din care motiv rezultatele obinute prin metode numerice nu pot servi drept demonstraii ale
afirmaiilor matematice?
Care este cauza apariiei erorilor de rotunjire? Exemplificai.
Scriei un program care determin produsul i ctul numerelor 1,00000001 i 0,999999999.
Valorile vor fi stocate n variabile, avnd tipul real. Analizai rezultatele obinute. Explicai
cauzele apariiei erorii.
20
Test de evaluare
1. Eroarea absolut a mrimii aproximative a pentru valoarea exact A este dat de
formula:
c) = |a| |A|;
a) = |A a|;
b) = |A| |a|;
d) = a A.
2. Frecvena pe care emite un post de radio este de 105,2 MHz. n procesul de scanare a frecven
elor, staia de radio a stabilit pentru postul dat frecvena de 105,25 MHz. Determinai eroarea
absolut i eroarea relativ cu care a fost stabilit frecvena de staia de radio. Care este
efectul real al erorii, observat n procesul de lucru al staiei?
3. Determinai cte cifre semnificative are fiecare din urmtoarele numere:
a) 0,375;
d) 0,0022222;
b) 0,000672;
e) 0,010101.
c) 0,1233;
4. Erorile de aproximare snt erorile care apar din cauza:
a) modelului matematic incomplet;
b) insuficienei datelor de intrare;
c) specificului reprezentrii numerelor n calculator;
d) metodei aproximative de rezolvare;
e) definiiilor i noiunilor matematice care conin elemente de aproximare.
5. n rezultatele calculelor realizate pentru procesarea tranzaciilor financiare se poate opera
cu cel mult 2 cifre dup virgul. Pentru numerele a = 0,113, b = 0,162, c = 0,21 calculai:
a) rd(rd(a+b)+c);
b) rd(a+rd(b+c)).
Care tip de erori este cauza diferenelor rezultatelor obinute?
Studiu de caz
Fie un container cu volum de 250 de uniti i 5 obiecte avnd volumele de 120, 40, 40, 100,
150de uniti i costurile respective de 150, 60, 80, 120, 180. Se cere s se pun n container
obiecte din setul propus astfel, nct costul total al obiectelor puse n container s fie maxim
posibil.
a) Determinai soluia problemei, utiliznd metoda Greedy. (Ordonarea obiectelor va fi realizat
dup descreterea raportului cost/volum.)
b) Determinai soluia exact a problemei, folosind metoda trierii.
c) Determinai eroarea absolut i eroarea relativ ale soluiei particulare, obinute prin metoda
Greedy.
d) Explicai cauzele apariiei erorilor.
21
CAPITOLUL 3
22
f (x)
19
1
3
109
Semn f (x)
Deci ecuaia va avea trei soluii, cte una pe fiecare din segmentele [0, 2], [2, 4], [4, 8].
Metoda grafic. O alt posibilitate de separare a rdcinilor ecuaiei f (x) = 0 este
cercetarea direct a graficului funciei f (x). Pentru construcia acestuia pot fi folostie att
aplicaii software specializate1, ct i programe simple, elaborate cu ajutorul instrumentelor
unui limbaj de programare.
23
Separarea grafic a soluiilor unei ecuaii pe un segment dat poate fi realizat i local,
cu ajutorul unei aplicaii de calcul tabelar. Este suficient s se construiasc un tabel cu
dou coloane. Prima coloan va reprezenta o divizare a segmentului n segmente
elementare de lungimi egale. Cea de-a doua coloan va conine o formul care calculeaz
valoarea funciei f (x) pentru valorile respective din prima coloan. n baza datelor din
coloana cu valorile f (x) se construiete o diagram liniar, care reprezint graficul funciei
analizate.
. Soluiile se caut pe segmentul [0,2, 10]
Exemplu:
(fig. 3.1 a, 3.1 b).
ntrebri i exerciii
Ce numim soluie a unei ecuaii?
Ce condiii trebuie s satisfac funcia f (x), pentru ca pe un segment dat s fie cel puin o
rdcin a ecuaiei f (x)=0? Dar pentru existena exact a unei soluii?
Determinai analitic numrul de soluii reale ale ecuaiei:
a) x5 5x + 7 = 0;
b) x3 9x2 + 24x 13= 0.
Elaborai un program, care pentru funcia f (x), continu pe [a, b], realizeaz o divizare a
segmentului n n segmente de lungime egal i afieaz toate segmentele la extremitile
crora funcia are valori de semn opus:
a)
pe [10, 10],
b)
pe [2, 2],
Separai, folosind cea mai potrivit metod, soluiile ecuaiilor:
n = 100.
a)
; e)
b)
; f )
c)
; g)
d)
24
n = 100;
(1)
Proprietile funciei asigur existena a cel puin unei soluii pe acest segment.
Una dintre cele mai simple metode de determinare a unei soluii a ecuaiei f (x) = 0
este metoda biseciei. Metoda presupune determinarea punctului de mijloc c al segmen
tului [a, b], apoi calculul valorii f (c). Dac f (c) = 0, atunci c este soluia exact a ecuaiei.
n caz contrar, soluia este cutat peunul dintre segmentele [a, c] i [c, b]. Ea va aparine
segmentului pentru care semnul funciei n extremiti este diferit(fig. 3.2).
Dac f (a) f (c) > 0, atunci soluia e cutat n continuare pe segmentul [a1, b1], unde
a1 primete valoarea c, iar b1 valoarea b. n caz contrar, a1 primete valoarea a, iar b1
valoarea c. Procesul de divizare se reia pe segmentul [a1, b1], repetndu-se pn cnd nu se
obine soluia exact sau (n majoritatea absolut a cazurilor!) devierea soluiei calculate
ci de la cea exact nu devine suficient de mic.
n urma divizrilor succesive se obine con
secutivitatea segmentelor
[a0,b0], [a1, b1], [a2, b2], ..., [ai, bi], ... .
Pentru fiecare dintre ele are loc relaia
(2)
f (ai) f (bi) < 0, i = 0, 1, 2, ... .
Estimarea erorii. Deoarece soluia exact
a ecuaiei este un punct al segmentului [ai, bi],
rezult c diferena dintre soluia exact i cea
calculat nu depete lungimea acestui seg
ment. Prin urmare, localizarea soluiei pe un
segment cu lungimea asigur o eroare de
calcul a soluiei ce nu depete valoarea :
.
Algoritmizarea metodei
Pornind de la descrierea matematic a metodei, putem separa dou cazuri distincte
de oprire a procesului de calcul al soluiei ecuaiei f (x) = 0 pentru metoda biseciei:
A1. Algoritmul de calcul pentru un numr prestabilit n de divizri consecutive:
Pasul 0. Iniializare: i 0.
.
Pasul 1. Determinarea mijlocului segmentului
Pasul 2. Reducerea segmentului ce conine soluia: dac f (c) = 0,
atunci soluia calculat este x = c. SFRIT.
n caz contrar, dac f (a) f (c) > 0, atunci a c; b b, altfel a a; b c.
Pasul 3. i i + 1. Dac i = n, atunci soluia calculat este
n caz contrar, se revine la pasul 1.
. SFRIT.
25
function f(x:real):real;
begin f:=sqr(sqr(x))+2*x*sqr(x)-x-1;end;
begin a:=0; b:=1; n:=16;
for i:=1 to n do
begin c:=(b+a)/2;
writeln(i=,i:3, x=,c:10:8, f(x)=,f(c):12:8);
if f(c)=0 then break3
else if f(c)*f(a)>0 then a:=c else b:=c;
end;
end.
Rezultate:
function f(x:real):real;
begin f:=6*cos(x)+8*sin(x);end;
2
3
26
Rezultate:
x=3.00000000
x=2.50000000
x=2.49829102
x=2.49816895
f(x)= -4.81099492
f(x)= -0.01908454
f(x)= -0.00199471
f(x)= -0.00077401
ntrebri i exerciii
n ce cazuri se folosesc metode aproximative de determinare a soluiilor ecuaiilor algebrice?
Descriei metoda biseciei. Care snt prioritile ei? Dar neajunsurile? Formula pentru estimarea
. Exprimai diferena dintre valoarea
erorii, dedus n paragraful curent, este
exact i cea calculat printr-o formul care depinde doar de extremitile segmentului iniial
i numrul de divizri realizate.
Descriei algoritmul metodei biseciei.
Determinai prin metoda biseciei soluiile ecuaiilor:
1. ex x2 = 0
pe [1, 0,5];
pe [1, 2];
2. x3 x 1 = 0
pe [3, 2];
3. x3 + 3x2 3 = 0
pe [1, 2].
4. x5 x 2 =0
a) pentru 10, 20, 40 de divizri ale segmentului iniial;
b) cu precizia = 0,001; 0,0001; 0,00001;
c) n condiiile punctului precedent determinai numrul de divizri necesare pentru aobine
precizia cerut.
Determinai prin metoda biseciei soluiile ecuaiilor de pe intervalele separate n exerciiile3,
4, 5, p. 24, pentru 10, 20, 30 de divizri consecutive.
27
Ne amintim!
Teorema Lagrange
Fie f:[a, b] R, continu i deriva
bil, pe [a, b]. Atunci exist c(a, b),
astfel nct:
f(b) f(a) = (ba) f (c).
(3)
i = 1, 2, .
Se demonstreaz c irul de valori x1, x2, xi,
xi+1, xn ... calculate dup formula (3) converge
ctre soluia a ecuaiei f (x) = 0.
Eroarea metodei
Faptul c irul aproximrilor succesive prin metoda coardelor converge ctre soluia
exact implic urmtoarea concluzie: eroarea soluiei calculate va fi invers proporional
cu numrul de iteraii efectuate. Totui se poate determina i formula care permite esti
marea erorii de calcul.
Fie f (x) satisface condiiile (1), (2). Dac soluia exact a ecuaiei f (x) = 0 pe
segmentul [a, b], iar M1 i m1 marginea superioar i inferioar a f (x) pe acelai seg
ment, din teorema Lagrange i formula recurent pentru calculul aproximrilor succesive
rezult:
, sau
(4)
Prin urmare, dac se cere calculul soluiei cu o exactitate dat , calculele se vor repeta
conform formulei (3) pn cnd inegalitatea (4) nu va deveni una adevrat.
Algoritmizarea metodei
Aplicarea metodei coardelor necesit o cercetare prealabil a funciei f (x), pentru
stabilirea extremitii fixe, din care vor fi trasate coardele. Numrul n de aproximri
succesive ale soluiei poate fi indicat n enunul problemei sau determinat de o condiie.
28
n ambele cazuri calculul se realizeaz conform formulei (3). Condiia de oprire n primul
caz va fi aplicarea repetat de n ori a formulei (3); n cel de al doilea ndeplinirea
condiiei (4).
Determinarea extremitii fixe. Pentru a evita calculul f (x), se va folosi urmtorul
procedeu: se determin semnul f (x) n punctul c de intersecie cu axa 0x al dreptei care
trece prin punctele (a, f (a)) i (b, f (b)). Fix va fi acea extremitate e a segmentului [a, b],
pentru care se ndeplinete condiia: f (e)f (c) < 0.
A1. Algoritmul de calcul pentru un numr prestabilit n de aproximri succesive:
Pasul 1. Determinarea extremitii fixe e i a aproximrii x0:
dac f (c) f (a) < 0, atunci e a, x0 b, altfel e b, x0 a; i 0.
Pasul 2. Calculul xi+1 conform formulei
Pasul 3. Dac i + 1 = n, atunci soluia calculat x xi. SFRIT.
n caz contrar, i i+1 i se revine la pasul 2.
A2. Algoritmul de calcul pentru o exactitate dat:
Deoarece n formula de estimare a erorii figureaz mrimile M1 i m1, atunci cnd
valorile lor nu snt indicate n enunul problemei, este necesar descrierea analitic a f (x)
i calcularea M1 i m1.
Pasul 1. Determinarea extremitii fixe e i a aproximrii x0:
dac f (c) f (a) < 0, atunci e a, x0 b, altfel e b, x0 a; i 0.
Pasul 2. Calculul xi+1 conform formulei
Pasul 3. Dac
29
Rezultate:
Exemplul 2: Fie dat funcia f (x) = x4 3x2 + 7,5x 1. S se calculeze soluia aproxima
tiv a ecuaiei f (x) = 0 pe segmentul [0,5; 0,5] cu exactitatea = 0,0001, utiliznd metoda
coardelor. Pentru funcia dat pe [0,5; 0,5] M1 i m1 snt, respectiv, egale cu 10 i 5.
Pentru simplitate, atribuirile necesare vor fi realizate direct n corpul programului.
program cn08;
var
Msup,minf,a,b,e,x,xnou,xvechi,eps: real;
function f(x:real):real;
begin
f:=sqr(sqr(x))-3*sqr(x)+7.5*x-1;
end;
begin
a:=-0.5; b:=0.5; eps:=0.0001;
Msup:=10; minf:=5;
{determinarea extremitatii fixe si a aproximarii initiale}
x:=a-(f(a))/(f(b)-f(a))*(b-a);
if f(x)*f(a)>0 then begin e:=b; xnou:=a; end
else begin e:=a; xnou:=b; end;
{calculul iterativ al solutiei}
repeat
xvechi:=xnou;
xnou:= xvechi-(f(xvechi))/(f(e)-f(xvechi))*(e-xvechi);
writeln( x=,xnou:10:8, f(x)=,f(xnou):12:8);
until abs((Msup-minf)/minf*(xnou-xvechi))<eps;
end.
Rezultate:
30
x=0.22500000
x=0.15970438
...
x=0.14130134
x=0.14127062
f(x)= 0.53818789
f(x)= 0.12191694
f(x)= 0.00026052
f(x)= 0.00005579
ntrebri i exerciii
Explicai esena metodei coardelor. Descriei metoda grafic.
Cum depinde extremitatea fix de semnul f(x)?
Descriei procesul de determinare a extremitii fixe. Cum poate fi omis calculul f(x)?
Descriei pe pai algoritmul metodei coardelor pentru un numr fix de iteraii.
Determinai soluiile ecuaiilor, utiliznd metoda coardelor, pentru 10, 20, 30 de iteraii:
pe [1, 2];
a) x3 0,2x2 + 0,2x 2,1 = 0
b) 5x3 20x + 3 = 0
pe [0, 1];
c) ex x2 = 0
pe [1, 0].
Separai soluiile ecuaiilor care urmeaz. Rezolvai ecuaiile folosind metoda coardelor:
pentru 5, 25 de iteraii;
a) tg(0,55x + 0,1) x2 = 0
pentru 3, 9, 27 de iteraii.
b) x3 0,2x2 + 0,5x + 1,5 = 0
Determinai prin metoda coardelor soluiile ecuaiilor de pe intervalele separate n exerciiile 3, 4, 5,
p. 24, pentru 10, 20, 30 de iteraii. Comparai rezultatele cu cele obinute n exerciiul 4, p. 27.
Explicai diferenele.
Fie dat funcia f (x) = x[sin(ln(x)) cos(ln(x))]. Determinai soluia ecuaiei f (x) = 0 pe
segmentul [2, 3] cu exactitatea = 0,0001, utiliznd metoda coardelor.
31
Eroarea metodei
Procesul iterativ de calcul poate fi oprit fie dup repetarea unui numr prestabilit de
ori, fie dup atingerea unei exactiti cerute.
Eroarea se va estima conform formulei:
=
,
unde
xi, xi+1 dou aproximri succesive ale soluiei calculate,
M2 supremul f (x) pe [a, b],
m1 infimul f (x) pe [a, b].
(7)
Algoritmizarea metodei
Numrul de aproximri succesive n procesul de calcul poate fi stabilit apriori sau
determinat de o condiie. Mai nti se stabilete extremitatea segmentului care va servi
drept aproximare iniial. Calculul aproximrii urmtoare se realizeaz n ambele cazuri
conform formulei (6). Condiia de oprire a calculelor va fi n primul caz generarea aproxi
mrii cu indicele cerut; n cel de al doilea ndeplinirea condiiei (7).
A1. Algoritmul de calcul pentru un numr dat de aproximri succesive:
Pentru a realiza acest algoritm, este suficient s fie cunoscute descrierile analitice pentru
f (x) i f (x). Dac descrierea f (x) nu este indicat n enun, urmeaz s fie calculat.
Aproximarea iniial se deduce utiliznd procedeul similar determinrii extremitii fixe
pentru metoda coardelor.
Pasul 1. Determinarea aproximrii iniiale x0:
dac f (c) f (a) < 0, atunci x0 a, altfel x0 b; i 0.
Pasul 2. Se calculeaz xi+1 conform formulei
Pasul 3. Dac i+1 = n, atunci soluia calculat x xi+1. SFRIT.
n caz contrar, i i+1, apoi se revine la pasul 2.
A2. Algoritmul de calcul pentru o exactitate dat:
n formula de estimare a erorii figureaz mrimile M2 i m1. Atunci cnd valorile lor
nu snt indicate n enunul problemei, este necesar o preprocesare matematic pentru
stabilirea M2 i m1. Suplimentar snt necesare descrierile analitice pentru f (x) i f (x).
Pasul 1. Determinarea aproximrii iniiale x0:
dac f (c) f (a) < 0, atunci x0 a, altfel x0 b; i 0.
Pasul 2. Se calculeaz xi+1 conform formulei
Pasul 3. Dac
32
Exemplul 13: Fie dat funcia f (x) = x3 2x2 + x 3. S se scrie un program care va
calcula soluia ecuaiei f (x) = 0 pe segmentul [2; 15] pentru 10 aproximri succesive,
utiliznd metoda Newton.
Preprocesarea matematic: Se determin f (x):
Deoarece numrul de aproximri succesive este fixat, iar extremitile segmentului
cunoscute, atribuirile necesare se vor realiza direct n corpul programului.
program cn09;
var a, b, x, c : real;
i, n: integer;
function f(z:real):real;
begin f:=z*z*z-2*z*z+z-3; end;
function fd1(z:real):real;
begin fd1:=3*z*z-4*z+1; end;
begin a:=2.1; b:=15; n:=10; i:=0;
c:=a-(f(a))/(f(b)-f(a))*(b-a);
if f(c)*f(a)<0 then x:=a else x:=b;
while i<n do
begin i:=i+1;
x:=x-f(x)/fd1(x);
writeln(i=,i:2, x=,x:15:12, f=,f(x):15:12);
end;
end.
Rezultate:
i= 1
i= 2
...
i= 9
i=10
x= 10.23214285700 f=869.11072454000
x= 7.06207637180 f=256.52261987000
x= 2.17455942470 f= 0.00000009329
x= 2.17455941030 f= 0.00000000001
33
function fd1(z:real):real;
begin fd1:=-sin(2*z)-1/4; end;
begin a:=2.4; b:=3; M2:=2; m1:=0.03; e:=0.0001;
c:=a-(f(a))/(f(b)-f(a))*(b-a);
if f(c)*f(a)<0 then begin
xn:=a; xv:=b;
end
else begin xn:=b; xv:=a; end;
while M2*sqr(xn-xv)/(2*m1)>e do
begin xv:=xn;
xn:=xv-f(xv)/fd1(xv);
writeln( x=,xn:15:12, f=,f(xn):15:12);
end;
end.
Rezultate:
x= 2.47538619170 f= -0.00078052066
x= 2.47646766320 f= -0.00000027700
x= 2.47646804730 f= 0.00000000000
ntrebri i exerciii
Descriei sensul geometric al metodei Newton.
Cum poate fi stabilit aproximarea iniial a metodei?
Explicai de ce, la alegerea corect a punctului iniial, irul aproximrilor obinute prin metoda
Newton converge ctre soluia exact a ecuaiei.
Scriei un program care va determina pe fiecare din intervalele propuse soluiile ecuaiilor care
urmeaz, pentru 2, 4, 6 iteraii, utiliznd metoda Newton:
a)
pe [1,7; 1,58], [1,53; 1,4], [0,4; 0,52], [0,58; 0,8];
b)
pe [100; 150];
c)
d)
pe [0,1; 0,5].
Modificai programul elaborat n exerciiul 4, pentru a calcula soluiile ecuaiilor, utiliznd metoda
Newton, pentru = 0,00001:
a) 2cos2(x) ex/2 = 0
b) x5 4x + 9 = 0
pe [0,1; 0,74],
pe [2; 1],
M2=4, m1 =0,5;
M2=150, m1 = 1.
34
Test de evaluare
I Selectai rspunsul corect:
a)
c)
b)
d)
5. Aproximarea iniial n cazul aplicrii metodei tangentelor este acea extremitate e a interva
lului [a, b] pe care este cutat soluia, pentru care este adevrat relaia:
a)
;
c)
;
b)
;
d)
.
II Calculai folosind programele elaborate anterior:
1. Soluia ecuaiei
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.
Se numete minor de ordinul n1 al elementului ai,j al matricei A de rang n(n>1) deter
minantul matricei de rang n1, obinut din matricea A prin excluderea rndului i i a
coloanei j. Vom nota minorul elementului ai,j prin Ai,j, unde i indic rndul, iar j coloana
la intersecia crora se afl elementul ai,j.
Astfel, pentru a calcula n matricea din exemplu minorul A1,2 al elementului a1,2, se
exclude din matrice linia 1 i coloana 2:
36
Conform definiiei
.
Astfel, pentru matricea de ordinul 4:
Ne amintim!
Pentru matricea A de ordinul 1, for
mat dintr-un singur element a1,1,
determinantul va fi chiar valoarea
acestui element.
Exemplu: A = (7); det(A) = 7.
Pentru o matrice de ordinul 2,
det(A) = 9.
Regula de consisten:
1. Exist un caz elementar: matricea ce corespunde minorului curent
are ordinul 1.
2. La nivelul k se fac k apeluri pentru calculul determinanilor de
ordinul k1. Prin urmare, procesul
converge spre un caz elementar.
37
Cazul de reducere
1. Valoarea determinantului se iniializeaz cu 0
.
2. Pentru toi j de la 1 la R:
a) Se formeaz matricea M1,j prin excluderea din matricea curent A a liniei 1 i a
coloanei j. (Ordinul M1,j este R1. Matricea dat corespunde minoruluiA1,j.)
b) Se calculeaz determinantul D1, j al matricei M1,j prin apelul CRD (M1,j, R1).
c) Se actualizeaz valoarea + (1)1+j D1, j.
. SFRIT.
3.
Implementarea algoritmului
Fie date declaraiile:
const nmax=10;
type matrice=array[1..nmax,1..nmax] of real;
38
39
for j:=i+1 to r do
begin
q:=-x[j,i]/x[i,i];
for k:=i to r do x[j,k]:=x[j,k]+x[i,k]*q
end;
end;
{calculul valorii determinantului pentru matricea triunghiulara}
q:=1;
for i:=1 to r do q:=q*x[i,i];
CID:=q;
end;
ntrebri i exerciii
Explicai legtura dintre matrice i determinantul ei.
Elaborai o funcie pentru calculul determinanilor de ordinul 3, utiliznd regula luiSarrus.
Descriei algoritmul de calcul al determinanilor de ordinul n prin dezvoltare dup elementele
unei linii arbitrare.
Elaborai un program pentru calculul determinanilor de ordinul n (n 10), n care vei folosi
funcia cdet, descris n paragraful curent. Ordinul matricei i valorile elementelor sale se vor
introduce de la tastatur.
Calculai, cu ajutorul programului elaborat, determinanii urmtoarelor matrice:
a)
c)
b)
d)
;
f)
e)
;
h)
g)
;
40
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
termenilor
liberi,
vectorul
soluiilor.
. (4)
Gabriel Cramer (17041752) matematician elveian. Nscut n Geneva. Cele mai remarcabile rezultate n
matematic le obine n domeniul algebrei (cercetarea curbelor algebrice, regula Cramer) i al probabilitii
(soluia paradoxului din Sankt-Petersburg).
41
i este determinantul matricei formate din matricea A, n care coloana i a fost nlocuit
prin vectorul termenilor liberi.
Formulele (4) permit calculul direct al soluiilor sistemului de ecuaii liniare (1), deoarece
conin doar mrimi calculate prin utilizarea matricei coeficienilor sistemului (1) i a
vectorului termenilor liberi ai acestui sistem. Ele snt numite formulele Cramer.
Algoritmizarea metodei
Fie dat sistemul (1) din n ecuaii liniare cu n necunoscute. Pentru rezolvarea siste
mului, folosind formulele Cramer, vor fi necesare urmtoarele structuri de date:
a) Un tablou bidimensional (n n) cu elemente de tip real sau ntreg (n funcie de
valorile datelor de intrare) matricea A a coeficienilor sistemului;
b) Un tablou unidimensional cu elemente de tip real sau ntreg (n funcie de valorile
datelor de intrare) vectorul b al termenilor liberi ai sistemului;
c) Un tablou unidimensional cu elemente de tip real vectorul soluiilor x.
Determinarea soluiilor unui sistem de ecuaii liniare, utiliznd formulele Cramer, se
bazeaz pe calculul determinanilor. Pentru aceasta poate fi utilizat funcia recursiv de
calcul al determinanilor, descris n paragraful precedent.
Fiind realizat funcia de calcul al determinantului unei matrice CRD (A, n), se va
trece la algoritmul de rezolvare a sistemului, folosind formulele Cramer.
Pasul 1. Se calculeaz = CRD(A, n)(A matricea coeficienilor sistemului).
Dac 0, se trece la pasul 2; n caz contrar, se afieaz mesajul de imposibilitate de
utilizare a metodei. SFRIT.
Pasul 2. i: 1.
Pasul 3.
a) Se creeaz o copie (C) a matricei coeficienilor sistemului. C A.
b) n tabloul C, coloana cu numrul de ordine i este nlocuit cu vectorul termenilor
liberi b.
c) Se calculeaz determinantul i al matricei (C), apoi componenta i a soluiei:
.
d) Se trece la pasul 4.
Pasul 4. Dac i<n, atunci i i+1, dup care se revine la pasul 3; n caz contrar, este
afiat vectorul x. SFRIT.
Not. n procesul de realizare a programului, copia matricei coeficienilor sistemului poate fi
obinut prin transmiterea acesteia ntr-un subprogram n calitate de parametru valoare. nlocuirea
coloanei necesare i calculul determinantului pot fi efectuate n acelai subprogram.
42
program cn11;
type mat=array[1..3,1..3] of integer;
vec=array[1..3] of integer;
vs=array[1..3] of real;
var a
: mat;
b
: vec;
sol
: vs;
p,n
: integer;
de
: real;
function cdet( x:mat;t:integer):real;
var i,j,k,l: integer;
s
: real;
minor : mat;
begin
if t=1 then cdet:=x[1,1]
else
begin
s:=0;
for k:=1 to t do
begin
for i:=1 to t-1 do
for j:=1 to k-1 do minor[i,j]:=x[i+1,j];
for i:=1 to t-1 do
for j:=k to t-1 do minor[i,j]:=x[i+1,j+1];
if odd(k) then s:=s+x[1,k]*cdet(minor, t-1)
else s:=s-x[1,k]*cdet(minor, t-1);
end;
cdet:=s;
end;
end;
function transforma(x:mat;t,l:integer):real;
var i : integer;
begin for i:=1 to t do x[i,l]:=b[i];
transforma:=cdet(x,t);
end;
begin
n:=3;
a[1,1]:= 3; a[1,2]:= 2; a[1,3]:= -1; b[1]:= 7;
a[2,1]:=-1; a[2,2]:= 1; a[2,3]:= 1; b[2]:= 4;
a[3,1]:= 1; a[3,2]:=-6; a[3,3]:= 2; b[3]:=-13;
de:=cdet(a,n);
if de<>0 then
begin for p:=1 to n do sol[p]:= transforma(a,n,p)/de;
for p:=1 to n do writeln(x[,p,]=,sol[p]:0:3);
end
else writeln(Calcul imposibil);
end.
Rezultate:
x[1]=1.000
x[2]=3.000
x[3]=2.000
43
ntrebri i exerciii
Pentru rezolvarea cror probleme pot fi folosite formulele Cramer? Care snt condiiile cnd ele
nu pot fi aplicate?
a)
b)
d)
c)
f)
e)
g)
44
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)
Carl Friedrich Gauss (17771855) matematician i cercettor german. Nscut n Braunschweig, a realizat pe
parcursul vieii cercetri de valoare n domeniul teoriei numerelor, statisticii, analizei matematice, geometriei,
geodeziei, geofizicii, electrostaticii, astronomiei i al opticii.
45
Algoritmizarea metodei
Fie dat sistemul (1) din n ecuaii liniare cu n necunoscute. Pentru rezolvarea siste
mului prin metoda Gauss vor fi necesare urmtoarele structuri de date:
a) Un tablou bidimensional (n n+1) cu elemente de tip real matricea extins A a
coeficienilor sistemului i termenilor liberi;
b) Un tablou unidimensional cu n elemente de tip real vectorul soluiilor x.
Rezolvarea sistemului de ecuaii liniare prin metoda Gauss presupune o serie de
transformri consecutive ale elementelor matricei extinse a coeficienilor.
Etapa direct
Pasul 1. i 1.
Pasul 2.
a) Dac aii = 0, linia i i schimb locul cu o linie r(r > i) pentru care ari 0. Dac o
astfel de linie nu exist, se trece la pasul 3.
b) Pentru fiecare din liniile j de la i+1 la n se repet procedura (P):
I. se calculeaz
II. pentru toi l de la 1 la n+1 aj,l aj,l + k ai,l .
Pasul 3. Dac i<n, atunci i+1 i se revine la pasul 2; n caz contrar, se trece la pasul 4.
{Trecerea la pasul 4 marcheaz sfritul etapei directe i nceputul etapei inverse a
metodei.}
Etapa invers
Pasul 4. Pentru i de la n la 1 se calculeaz:
46
47
begin
for i:=n downto 1 do
begin
s:=0;
for j:=i+1 to n do s:=s+a[i,j]*q[j];
if a [i,i]<>0 then q[i]:=(a[i,n+1] -s)/a[i,i] else q[i]:=0;
end;
end;
begin citeste(a,n);
direct(a,n);
invers(s);
for i:=1 to n do writeln(x[,i,]=,s[i]:0:3);
end.
Teste:
Rezultate:
Note:
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)
48
Test de evaluare
I Selectai rspunsul corect:
; c)
;
b)
; d)
.
49
a)
; c)
b)
; d)
afia o linie care va conine cuvntul Rspuns:, urmat, dup un spaiu, de soluia
calculat:
1. Determinanii matricelor:
a)
b)
a)
50
b)
CAPITOLUL 5
Integrarea numeric
Dup studierea acestui capitol, vei fi capabili s:
descriei algoritmul de calcul al integralei definite prin metoda dreptunghiurilor
(a trapezelor);
elaborai subprograme pentru calculul numeric al integralelor definite prin
metoda dreptunghiurilor (a trapezelor);
identificai probleme din diverse domenii, care se rezolv prin calculul numeric
al integralelor definite.
Una dintre cele mai des aplicate implementri ale calculului numeric este calcularea
integralei definite prin metode aproximative. Metodele directe nu ntotdeauna permit
calculul analitic al integralei, de multe ori nici nu este cunoscut formula care definete
funcia ce urmeaz s fie integrat. De obicei este dat doar o serie de puncte n care este
cunoscut valoarea funciei. n aceste cazuri integrala poate fi calculat doar prin metode
aproximative (n presupunerea c funcia integrat este continu pe segmentul pe care
se face integrarea).
Din cursul de matematic se tie c sensul geometric al integralei definite
este aria trapezului curbiliniu, determinat de axa 0x, dreptele x = a, x = b i graficul
funciei f (x) pe segmentul [a, b] (fig. 5.1).
Msurarea exact a ariei unei asemenea figuri nu este ntotdeauna posibil. n aseme
nea situaii o soluie ar fi aproximarea figurii iniiale cu un set de figuri, a cror arie este
uor de calculat. Atunci valoarea integralei
definite (aria figurii iniiale) va fi aproximat
de suma ariilor calculate.
Fie f o funcie derivabil pe [a, b] i se cere
s se calculeze
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
unei sume de arii a dreptunghiurilor este numit
metoda dreptunghiurilor.
Eroarea metodei
Valoarea calculat a integralei este de cele mai
multe ori diferit de valoarea exact, calculat
analitic. Eroarea apare din motivul aproximrii
pe fiecare segment elementar a funciei f (x) cu
ofuncie constant g, iar mrimea erorii este
determinat de integrala erorii de aproximare i
poate fi calculat dup formula:
=
Fig. 5.3. Construcia consecutiv a dreptun
ghiurilor, care aproximeaz figura iniial.
Pefiecare segment elementar nlimea
dreptunghiului este determinat de valoarea
funciei f (x) n mijlocul segmentului
52
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
. S 0.
.
b) Se calculeaz aria dreptunghiului elementar:
c) Aria calculat se sumeaz cu ariile precedente: S S + Si.
Pasul 4. Se afieaz aria total calculat S. SFRIT.
Exemplul 1: S se scrie un program care calculeaz integrala
53
Rezultate:
n=20 I=3.788513
n=40 I=3.789629
n=80 I=3.789908
n=160 I=3.789977
+1.
program1 cn14;
var S, a, b, e, h : real;
j,i,n:integer;
function f(x:real): real;
begin f:=sin(cos (x*x))/2;end;
begin a:=-pi/2; b:=pi/2; e:=0.0001;
n:=round(pi*(abs(b-a))/(8*e))+1;
S:=0;
h:=(b-a)/n;
for i:=0 to n-1 do
S:=S+ h*f(a + i*h + h/2);
writeln (n=,n, I=,S:0:6);
end.
Rezultate:
n=12338 I=0.729729
ntrebri i exerciii
Motivai necesitatea calculului numeric al integralei definite.
Ce procedeu st la baza metodei dreptunghiurilor pentru calculul numeric al integralei?
Motivai relaia dintre numrul de divizri ale segmentului de integrare i eroarea de calcul a
metodei dreptunghiurilor.
Aici i n alte programe din prezenta ediie se folosete constanta predefinit pi, utilizat n mediul Turbo
Pascal. Utilizatorii altor limbaje de programare sau ai altor compilatoare Pascal vor defini constanta respectiv
n cadrul programului. Ex.: const pi=3.141.
54
Scriei un program care calculeaz integrala definit prin metoda dreptunghiurilor, pentru
200, 2 000, 20 000 de divizri ale segmentului de integrare. Pentru fiecare numr de divizri
valoarea calculat se va afia cu ase cifre zecimale.
a)
b)
; e)
; c)
d)
f)
Explicai diferena dintre rezultatele obinute pentru valori diferite ale numrului de divizri.
Verificai rezultatele obinute folosind calculatorul on-line pentru integrale definite:
www.solvemymath.com/online_math_calculator/calculus/definite_integral.
Scriei un program care calculeaz integrala definit prin metoda dreptunghiurilor cu o eroare
care nu va depi valoarea prestabilit = 0,001; = 0,0001; = 0,00001. Valoarea M este
cunoscut apriori:
a)
b)
M = 9;
c)
M = 7;
d)
M = 5;
M = 36.
Pentru fiecare valoare a erorii se va afia valoarea calculat a integralei i numrul de divizri,
pentru care se obine aceasta.
Conturul unui teren este determinat lateral de dreptele verticale x = 2 i x = 0, superior de graficul
funciei f (x) = x3 5x + 3 cosx, inferior de graficul funciei f (x) = x3 x2. Scriei un program care
va calcula aria terenului, folosind metoda dreptunghiurilor, pentru:
a) 10 000 de divizri;
b) = 0,00001.
,
unde
55
,
Fig. 5.4. Aproximarea integralei definite
prin dreptunghiuri de stnga
Algoritmizarea metodei
(dreptunghiuri de stnga)2
56
Pentru dreptunghiurile de dreapta, algoritmul se deosebete doar n pasul 3 prin diapazonul valorilor pe
care le primete indicele i: de la 1 la n.
program cn15;
const r=3;
var S, a, b, h : real;
j,i,n:integer;
function f(x:real): real;
begin f:=sqr((x* sin(x)));end;
begin a:=0; b:=pi; n:=1;
for j:=1 to r do
begin S:=0; n:=n*10;
h:=(b-a)/n;
for i:=0 to n-1 do
S:=S+ h*f(a + i*h);
writeln (n=,n, I=,S:0:6);
end;
end.
Rezultate:
n=10 I=4.381796
n=100 I=4.382315
n=1000 I=4.382315
, utiliznd metoda
Rezultate:
n=3001 I=0.278729
57
ntrebri i exerciii
Care este diferena dintre metoda dreptunghiurilor de mijloc i variaiile sale?
Care este relaia dintre numrul de divizri ale segmentului de integrare i eroarea de calcul
Scriei
un program care calculeaz integrala definit prin metoda dreptunghiurilor de stnga, de mijloc,
de dreapta. Utilizai un numr variabil de divizri (de exemplu 10, 100, 1 000).
a)
d)
b)
e)
c)
f)
Explicai diferena dintre rezultatele obinute pentru valori diferite ale numrului de divizri.
Verificai rezultatele obinute folosind calculatorul on-line pentru integrale definite:
www.solvemymath.com/online_math_calculator/calculus/definite_integral.
Scriei un program care calculeaz integrala definit prin metoda dreptunghiurilor cu o eroare
care nu va depi valoarea prestabilit = 0,005; = 0,0005; = 0,00005. Valoarea M urmeaz
s fie determinat prin metode analitice:
a)
b)
; c)
Pentru fiecare valoare a erorii se va afia valoarea calculat a integralei i numrul de divizri,
pentru care se obine aceasta.
Scriei un program ce va determina, folosind variaiile metodei dreptunghiurilor, care dintre
integralele definite de mai jos este mai mare:
a)
sau
b)
sau
58
.
Prin urmare, pe [a, b] valoarea calculat a inte
gralei va fi:
.
Eroarea metodei
La fel ca n cazul formulei dreptunghiurilor, eroarea de calcul la integrare va fi cerce
tat casuma integralelor erorilor de aproximare a funciei f (x) printr-o funcie liniar pe
fiecare segment elementar.
Eroarea de integrare pe segmentul [a, b] este considerat ca fiind suma erorilor de
integrare pe segmentele elementare i este dat de formula:
,
unde M supremul f(x) pe [a, b], h lungimea unui segment elementar.
n cazul cnd este necesar calculul integralei prin metoda trapezelor cu o eroare
de calcul care nu depete o valoare dat , numrul necesar de divizri ale seg
mentului de integrare, care asigur o eroare ce nu depete valoarea predefinit,
poatefideterminat apriori din relaia
sau
echivalent cu
Algoritmizarea metodei
Pasul 1. Iniializare: Se introduc valorile extremitilor segmentului de integrare a,
b i numrul de divizrin.
Not. n cazul n care este necesar calculul integralei cu o eroare ce nu depete o valoare presta
bilit , numrul de divizri n se calculeaz cu ajutorul formulei
. S 0.
59
, utiliznd metoda
Rezultate:
n=20 I=8.88312405500
n=40 I=8.88576626920
n=80 I=8.88576587630
, utiliznd
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.
Rezultate:
n=168 I=3.333852986
ntrebri i exerciii
Determinai condiiile n care poate fi aplicat metoda trapezelor.
Care este deosebirea dintre metoda dreptunghiurilor i cea a trapezelor?
Descriei algoritmul metodei trapezelor pentru calculul numeric al integralei.
Care dintre metodele studiate de calculul numeric al integralei definite este mai exact?
Motivai.
Calculai integralele definite utiliznd metoda trapezelor pentru 10, 20, 30 de divizri ale
segmentului de integrare:
a)
; c)
; e)
b)
; d)
; f )
;
.
Scriei un program care calculeaz integrala definit prin metoda trapezelor cu o eroare ce nu
va depi valoarea prestabilit = 0,003; = 0,0003; = 0,00003. Valoarea M urmeaz s fie
determinat prin metode analitice:
a)
; b)
; c)
61
Test de evaluare
I Selectai rspunsul corect:
2. Pentru acelai numr de divizri ale segmentului de integrare, o eroare mai mic va fi obi
nut pentru:
a) metoda dreptunghiurilor (de mijloc);
c) metoda dreptunghiurilor (de dreapta);
b) metoda dreptunghiurilor (de stnga);
d) metoda trapezelor.
3. Numrul de divizri ale segmentului de integrare, necesare pentru calculul integralei definite
cu o eroare ce nu depete valoarea prestabilit , poate fi determinat apriori:
a) numai pentru metoda trapezelor;
c) pentru ambele metode;
b) numai pentru metoda dreptunghiurilor;
d) pentru niciuna din metode.
4. Fie
. Stabilii
corelaiile dintre formulele de calcul ale integralei definite din coloana stng i denumirile
metodelor respective din coloana dreapt:
5. Fie
Dreptunghiuri de mijloc
Dreptunghiuri de stnga
Dreptunghiuri de dreapta
Trapeze
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)
valoare calculat se va afia o linie care va conine cuvntul Rspuns: urmat, dup un
spaiu, de soluia calculat cu ase cifre zecimale:
1. Metoda dreptunghiurilor de stnga:
de integrare.
62
Opional.
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.
64
fiierele generate cu diferite limbaje de programare este posibil s aib formate diferite,
deci va fi necesar o aplicaie care le va transforma n fiiere cu acelai format).
Acestea i alte probleme pot fi rezolvate dac se folosete o structur de date de tip
baz de date.
O baz de date este un ansamblu de informaii (date), organizate ntr-un mod special,
fapt care faciliteaz stocarea i extragerea lor. Informaiile dintr-o baz de date snt
pstrate sub form de nregistrri sau de fiiere, ntre care exist legturi logice. n afar
de depozitul de informaii, baza de date conine descrierea lor: tipul, structura, modul
de organizare i relaiile dintre ele.
ntrebri i exerciii
Numii tipurile de date studiate. Care dintre ele snt:
65
ro
ru
uk
com
org
ase
usm
edu
weten
moodle
cie
n cazul bazei de date n reea (network database), entitile la fel snt aranjate ierarhic,
ns unui nod-copil poate s-i corespund cteva noduri-printe.
Exemplu: Baza de date a unei ramuri industriale poate avea urmtorul model:
O baz de date relaional (relational database) are cel mai flexibil model conceptual
de organizare a datelor. Parcurgerea entitilor unei astfel de baze nu este ierarhic.
Modelul relaional este simplu, dar riguros din punct de vedere matematic. Pentru
prima dat acest model a fost propus n 1970 de savantul Edgar Frank Codd.
Edgar Frank Codd (23.08.1923, Insula Portland, Anglia 18.04.2003, Williams Island, Florida, SUA) informa
tician american de origine englez care, lucrnd pentru IBM, ainventat modelul relaional pentru gestiunea
bazelor de date. Pentru contribuiile sale n domeniul informaticii, n 1981 obine Premiul Turing, considerat
Premiul Nobel pentru Informatic.
66
Baza de date relaional este format din tabele, denumite relaii. Fiecare tabel este
format din rnduri i coloane. Rndurile se numesc nregistrri de date, iar coloanele
cmpuri de date. Capul de tabel (sau antetul tabelului) definete structura tabelului. Prin
crearea unui tabel se subnelege, de fapt, definirea capului de tabel.
n figura 6.1 este reprezentat o parte din schema conceptual a unei baze de date
relaionale.
Tabelul Clase
Cod_clasa
An_clasa
Nume_clasa
Tabelul Elevi
Cod_elev
Cod_clasa
Nume_elev
Prenume_elev
Tabelul Note
Cod_nota
Cod_elev
Cod_disciplina
Nota
Tabelul Discipline
Cod_disciplina
Nume_disciplina
Fig. 6.1
ntre tabelele unei baze de date relaionale exist interdependene (despre care vom
afla mai detaliat n urmtoarele capitole).
Observaie: n continuare vom examina doar baze de date relaionale.
ntrebri i exerciii
Descriei structura bazelor de date:
a) ierarhice;
b) n reea;
c) relaionale.
Stabilii tipul bazei de date tiind c:
a) ntre fiecare dou entiti ale bazei exist o legtur;
b) entitile bazei snt noduri ale unui arbore binar;
c) o entitate este legat cu toate celelalte entiti i alte legturi nu exist;
d) informaiile din baz snt organizate n zece tabele.
Reprezentai schematic un model ierarhic pentru o baz de date cu informaii despre:
a) un liceu;
b) un magazin de produse alimentare;
c) o bibliotec.
Rezolvai exerciiul pentru cazul:
a) modelul reea;
b) modelul relaional.
Stabilii tipul bazei de date a numerelor de telefoane fixe din ar.
67
Capitolul 7
68
Nume_elev
Bacinschi
Belobrov
Brnc
69
Tabelul Adrese_Elevi
Cod_elev
e001
e002
Loc_elev
Chiinu
Stuceni
Strada_elev
Mihail Sadoveanu
Viei
Nr_casa_elev
40
9
Ap_elev
23
Anul_de_studii
10
10
10
10
Nume_clasa
A
B
C
D
Cod_profil
p1
p1
p2
p2
Fig. 7.1
Fig. 7.2
Observaie: Cheia secundar n cazul relaiei unu la muli se mai numete cheie strin.
ntr-o relaie muli la muli (se noteaz : sau M:M), fiecrei nregistrri a unui
tabel i pot corespunde cteva nregistrri ale celuilalt tabel i invers. De exemplu, tabelele
Clase i Discipline se afl n relaia muli la muli, deoarece n fiecare clas se predau mai
multe discipline i fiecare disciplin poate fi predat n cteva clase.
Tabelul Discipline
Cod_disciplina
d01
d02
d03
d04
70
Nume_disciplina
Matematica
Informatica
Chimia
Fizica
Tabelul Prof_dis_clasa
Cod_repart Cod_clasa
r001
c01
r002
c01
r003
c01
r004
c01
Cod_dis
d01
d02
d03
d05
Cod_prof
prof01
prof01
prof02
prof04
Relaia muli la muli dintre dou tabele se poate stabili prin dou relaii de tipul unu la
muli. Fiecare dintre cele dou tabele se leag ntr-o relaie unu la muli cu un al treilea tabel.
De exemplu, relaia muli la muli dintre tabelele Clase i Discipline se realizeaz prin
tabelul Prof_dis_clasa (fig. 7.3).
Fig. 7.3
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
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.
72
Tabelul 2. Discipline
Nume_profil
Real
Umanist
Cod_dis
d01
d02
Nume_disciplina
Matematica
Informatica
73
Fig. 7.4
Tabelul 3. Profesori
Cod_ Nume_ Pren_ Data_prof Foto_ Salariu CV_prof Casatorit Gen_ Telefon Diriginte
prof prof prof
prof
prof
prof01 Albu Ion 01.03.1968 Package 3500 Grad...
Yes
M 64-41-72 C02
prof02 Moraru Vasile 11.05.1973 Package 3000 S-a ns...
No
M 29-10-16
Tabelul 4. Adrese_prof
Cod_prof
prof01
prof02
Loc_prof
Cricova
Chiinu
Strada_prof
Vinului
Grenoble
Nr_casa_prof
89
81
Ap_prof
77
Tabelul 5. Clase
Cod_clasa
c01
c02
Anul_de_studii
10
10
Nume_clasa
A
B
Cod_profil
p1
p1
Tabelul 6. Elevi
Cod_elev Nume_elev Pren_elev Cod_clasa Data_elev Foto_elev Telefon Gen_elev
e001
Bacinschi Sabina
c01
28.09.1998 Package 29-82-54
F
e002
Belobrov
Andreea
c01
18.10.1998 Package 44-26-48
F
Tabelul 7. Adrese_elevi
Cod_elev
e001
e002
74
Loc_elev
Chiinu
Stuceni
Strada_elev
Mihail Sadoveanu
Viei
Nr_casa_elev
40
9
Ap_elev
23
Tabelul 8. Prof_dis_clasa
Cod_repart
r001
r002
Cod_clasa
c01
c01
Cod_dis
d01
d02
Cod_prof
prof01
prof01
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
76
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.
Descriere
Caracter de text sau spaiu.
Caracterul de text nu este obligatoriu.
Toate caracterele vor fi minuscule.
Toate caracterele vor fi majuscule.
Afieaz caracterul .
78
Descriere
Cifr (nu poate fi precedat de + ori ). Introducere obligatorie.
Cifr (poate fi precedat de + ori ) sau spaiu. Introducere opional.
Cifr (poate fi precedat de + ori ) sau spaiu (la salvare este eliminat).
#
Introducere opional.
L
Liter. Introducere obligatorie.
?
Liter. Introducere opional.
A
Liter sau cifr. Introducere obligatorie.
a
Liter sau cifr. Introducere opional.
&
Orice caracter sau spaiu. Introducere obligatorie.
C
Orice caracter sau spaiu. Introducere opional.
Separatori pentru date calendaristice sau pentru clasele numrului (uniti,
.,:;-/
mii, milioane, miliarde etc.). Separatorul predefinit depinde de setrile din
fereastra Regional Setings (poate fi afiat din Panoul de control Windows).
<
Transform simbolurile-litere din dreapta n minuscule.
>
Transform simbolurile-litere din dreapta n majuscule.
!
Foreaz introducerea datelor de la dreapta spre stnga.
Afieaz doar caracterul care urmeaz dup \ (de exemplu, ablonul \M
\
afieaz litera M).
"ir de caractere" Afieaz doar irul de caractere (fr ghilimele).
Password
n loc de simbolurile introduse, se vor afia caractere .
Exemple:
1. ablonul >L<L0\S accept iruri de caractere din 4 simboluri, dintre care primul
este o liter majuscul, al doilea o liter minuscul, al treilea o cifr, ultimul
caracter fiind litera S.
2. Pentru scrierea numerelor de telefon doar de forma (+373 22) XX-XX-XX se va
folosi ablonul "(+373 22)" 00\-00\-00.
Pentru crearea abloanelor se poate folosi programul Input Mask Wizard (se lanseaz
din caseta proprietii Input Mask), care ofer
prin executarea unui clic pe butonul
10 formate uzuale ale mtilor de intrare.
4. Proprietatea Caption specific textul care va fi afiat n calitate de denumire
acmpului n interogri, formulare sau rapoarte. Dac aceast proprietate nu se comple
teaz, atunci Access va folosi n calitate de nume identificatorul cmpului.
5. Proprietatea Default Value stabilete valoarea implicit a cmpului. Apare automat
la inserarea unei noi nregistrri.
6. Cu ajutorul proprietii Validation Rule se pot forma condiii de validare a datelor
care urmeaz a fi introduse n cmp. Condiiile de validare reprezint expresii care se
scriu utiliznd operatori i funcii Access sau VBA (Visual Basic for Applications). De
exemplu, condiia >= 100 permite utilizatorului s introduc ntr-un cmp numeric doar
numere mai mari sau egale cu 100.
79
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?
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
80
Fig. 8.2
Fig. 8.3
Fig. 8.4
81
tabelului principal. Astfel, n cmpul Cod_clasa al tabelului Elevi vom putea scrie doar
codurile claselor nregistrate n tabelul Clase.
Actualizarea n cascad a nregistrrilor nseamn c la modificarea unei valoriV
din cmpul cheie primar al tabelului principal, automat se vor modifica corespunztor
toate valorile V din cmpul cheie strin al tabelului subordonat. De exemplu, dac vom
schimba n tabelul Clase codul clasei a 10-a A din c01 n c001, atunci fiecare valoare
c01 din cmpul Cod_clasa al tabelului Elevi va fi substituit cu valoarea c001.
Dac este activat caracteristica Excluderea n cascad a nregistrrilor, atunci la
eliminarea unei nregistrri X din tabelul principal se vor elimina toate nregistrrile din
tabelul subordonat, care conin n cmpul cheie strin valoarea din cmpul cheie primar
a nregistrrii X. De exemplu, dac vom exclude din tabelul Clase ultima nregistrare (are
codul c12 i corespunde clasei a 12-a D), atunci din tabelul Elevi vor fi eliminai toi
elevii clasei a 12-a D.
ntrebri i exerciii
Explicai algoritmul de stabilire a relaiei dintre dou tabele Access.
Ce nseamn integritatea referenial a datelor?
Disciplinele colare aparin urmtoarelor arii curriculare:
a) limb i comunicare;
b) educaie socioumanistic (istorie, geografie, educaie civic);
c) matematic i iine (matematic, fizic, chimie, biologie);
d) tehnologii (informatic);
e) sport (educaie fizic).
Deschidei baza de date Liceu. Creai i completai n ea tabelul Arii curriculare, apoi stabilii o
relaie dintre acest tabel i tabelul Discipline.
Care este rolul caracteristicii Cascade Update Related Fields a unei relaii?
Cu ce scop se utilizeaz caracteristica Cascade Delete Related Records a unei relaii?
Fig. 8.5
82
SI
Starea nregistrrii
nregistrarea curent este selectat.
nregistrare nou, n care se pot introduce date.
Utilizatorul editeaz nregistrarea, iar modificrile nu snt nc salvate.
nregistrarea este blocat de alt utilizator i nu se poate edita (cazul mediului multi
utilizator mediu n care mai multe persoane pot utiliza simultan baza de date).
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.
84
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
86
Operator
Is
Like
In
Between
Descriere
Se aplic asupra valorii Null (valoarea vid) i verific dac o valoare este sau nu
este vid.
Stabilete dac un ir de caractere respect ablonul specificat de Like. ablonul se scrie
ntre simbolurile "i". ablonul poate s conin caractere de nlocuire (? pentru un
caracter, # pentru o cifr, pentru orice numr de caractere, inclusiv lipsa lor) i liste
de valori. Lista de valori se scrie ntre simbolurile [ i ]. Dac valorile listei snt precedate
de simbolul !, atunci se consider toate valorile cu excepia celor precedate de !.
Stabilete dac o valoare aparine unei liste de valori. Valorile listei se delimiteaz
prin simbolul ;.
Stabilete dac o valoare numeric aparine unui interval.
Exemple:
1. Expresia [Elevi].[Telefon] Is Null returneaz valoarea True doar n cazul n care cmpul
Telefon al tabelului Elevi nu conine nicio valoare (se are n vedere nregistrarea curent).
2. Like "Bov" specific iruri de caractere care ncep cu litera B i se termin cu combinaia
de litere ov. Prin urmare, expresia "Belousov" Like "Bov" returneaz valoarea True.
3. Like "[CK]#?" specific iruri din 3 caractere: primul este una din literele C sau K,
al doilea o cifr, al treilea orice simbol.
4. Like "[5adg]" specific iruri de caractere care se termin cu cifra 5 sau cu una
din literele a, d, e, f, g.
5. Like "[!ae]" specific iruri de caractere care nu se termin cu litera a sau cu literae.
6. Expresia "Duminica" In ("Luni"; "Marti"; "Miercuri"; "Joi"; "Vineri") returneaz valoarea
False, iar expresia 4 In (2; 4; 7; 8) valoarea True.
7. Expresia Between 2 And 10 este echivalent cu expresia >=2 And <=10.
Observaie: La scrierea expresiei condiiei de validare n caseta proprietii Validation
Rule nu se scrie identificatorul primului operand, acesta fiind considerat implicit identi
ficatorul cmpului respectiv. Astfel, regula de validare In ("Luni"; "Marti"; "Miercuri";
"Joi"; "Vineri") va permite utilizatorului s scrie n cmp doar unul din cuvintele Luni,
Marti, Miercuri, Joi, Vineri.
Rezultatul returnat
Date()
Data curent
Data calendaristic care se obine adunnd la data D sau scznd din ea
N (n cazul cnd N este negativ) uniti calendaristice de tip T, unde T
poate fi "yyyy", "q", "m", "ww", "d", "h", semnificnd respectiv ani,
trimestre, luni, sptmni, zile, ore
Diferena exprimat n uniti calendaristice de tip T dintre datele D1 i D2
Ora curent
DateAdd(T; N; D)
DateDiff(T; D1; D2)
Time()
87
Now()
Year(D)
Month(D)
Day(D)
WeekDay(D)
Hour(D)
Rezultatul returnat
Codul ANSI al caracterului C
Caracterul al crui cod ANSI este numrul N
Poziia, ncepnd cu care irul S2 se conine n irul S1
Subirul irului S de lungime N2 ncepnd cu poziia N1. Parametrul N2 poate s
lipseasc, ceea ce nseamn c se va returna subirul obinut prin nlturarea
primelor N11 caractere ale irului S
irul de caractere obinut din irul S prin transformarea literelor majuscule
n litere mici
irul de caractere obinut din irul S prin transformarea literelor mici
nmajuscule
Numrul de caractere ale irului S
irul obinut din irul S dup lichidarea spaiilor de debut
irul obinut din irul S dup lichidarea spaiilor de sfrit
irul obinut din irul S dup lichidarea spaiilor de debut i a celor de sfrit
irul format din primele N caractere ale irului S
irul format din ultimele N caractere ale irului S
irul format din simbolurile valorii X n aceeai ordine
Numrul obinut din simbolurile irului S n aceeai ordine (dac acesta are
formatul potrivit)
88
Rezultatul returnat
Valoarea absolut a numrului X
Arctangenta (n radiani) a numrului X
Media aritmetic a valorilor cmpului C
Numrul valorilor nevide ale cmpului C
Valoarea maximal din cmpul C
Cosinusul numrului X
Valoarea eX
Partea ntreag a numrului X
Logaritmul zecimal al numrului X
Rnd()
Sgn(X)
Sin(X)
Sqr(X)
Tan(X)
Observaii:
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.
a) Mid("Propoziie"; 3);
b) Mid("Calculator"; 1; 3);
c) Int(Rnd()*50);
d) Month("15.11.1990");
e) Left("Tractor"; 5);
f ) 5 In ("4"; "5"; "6"; "7"; "8");
g) Val("25") 25;
h) "R" Like "[TR]*";
i) "R" + Str(Date())?
Scriei o expresie care va returna:
a) salariul mediu al profesorilor din tabelul Profesori;
b) data calendaristic ce va fi peste 5 sptmni dup data curent;
c) a cta zi n an este data curent;
d) a cta zi din sptmn a fost 1 ianuarie 2000;
e) diferena de zile dintre 5 martie 2005 i 5 decembrie 2005.
Scriei pentru cmpul Gen_prof al tabelului Profesori o condiie de validare care ar admite n cmp
doar valorile M sau F.
89
Test de evaluare
1. Stabilii valoarea de adevr a propoziiei: Valorile tabelului fac parte din structura lui.
2. Completai adecvat:
a) Proprietatea ..................... stabilete valoarea implicit a cmpului unui tabel.
b) Dac valoarea proprietii ................................ a unui cmp este .................., atunci Access
nuvaaccepta o nregistrare nou pn cnd utilizatorul nu va completa acest cmp al
nregistrrii.
3. Descriei aciunea de restricionare a ablonului >L0L 0L09.
4. Creai un ablon ce va obliga introducerea ntr-un cmp de text a irurilor formate:
a) din 3 caractere, dintre care primul va fi o liter, iar celelalte dou cifre;
b) din cel puin 4 caractere i cel mult 6 caractere, dintre care ultimul va fi cifr.
5. Care dintre caracteristicile:
Asigurarea integritii refereniale (Enforce Referential Integrity),
Actualizarea n cascad a nregistrrilor (Cascade Update Related Fields),
Excluderea n cascad a nregistrrilor (Cascade Delete Related Records)
trebuie activat pentru ca modificarea unei valori din cmpul cheie primar altabelului
principal s atrag dup sine modificri corespunztoare n tabelul subordonat?
6. Fie tabelul Lista cu urmtoarea structur:
Nume
Popa
...
Prenume
Ion
...
Data naterii
12.08.1979
...
Raionul
Briceni
...
Profesia
profesor
...
Genul
M
...
Descriei aciunile care trebuie realizate pentru a afia datele urmtoarelor cmpuri ale
tabelului Lista n ordinea: Raionul, Data naterii, Prenume, Nume.
7. Completai adecvat:
a) Expresia specific iruri de caractere care ncep cu litera T i se termin
cu litera R.
b) Expresia specific iruri de caractere care nu ncep cu niciuna dintre
literele C, D, E, T.
c) Expresia specific numere ntregi cu modulul mai mare dect 15 i mai
mic dect 40.
8. Care va fi valoarea expresiei:
a) DateAdd("ww";1; "01.09.2010");
b) Year("01.09.30");
c) "PAR" Like "[A-D]"?
9. Scriei pentru cmpul Adrese_email al unui tabel o condiie de validare care ar admite n cmp
doar iruri de caractere ce conin n interiorul lor caracterul @.
90
Capitolul 9
Interogri
Dup studierea acestui capitol, vei fi capabili s:
descriei tipurile de interogri;
creai interogri (prin proiectare independent sau cu ajutorul sistemului de
asisten) care vor selecta date din unul sau mai multe tabele;
executai interogri;
actualizai datele din tabele prin intermediul interogrilor;
obinei cmpuri de date noi n baza informaiilor existente;
creai totalizri ale datelor din unul sau mai multe tabele;
reprezentai compact subseturi de date din unul sau mai multe tabele.
91
De exemplu, pentru a afia lista profesorilor cu salariul maximal, se vor crea dou
interogri: prima interogare va gsi valoarea Max a salariului maximal, iar a doua va
selecta din tabelul Profesori nregistrrile cu valorile din cmpul Salariu, egale cu Max
(adic egale cu rezultatul primei interogri).
Interogrile ndeosebi se utilizeaz pentru:
vizualizarea unui subset de nregistrri dintr-un tabel, fr a-l deschide;
afiarea ntr-un singur tabel a informaiilor din cteva tabele;
actualizarea datelor tabelelor (modificri, adugri, excluderi de date);
efectuarea calculelor asupra valorilor cmpurilor i obinerea informaiilor noi;
crearea totalurilor, valorilor medii etc.
n funcie de tipul aciunii i de rezultate, interogrile se clasific n cele:
a) de selecie;
b) de excludere a unor nregistrri;
c) de modificare a unor nregistrri;
d) de creare a cmpurilor rezultante;
e) de grupare i totalizare;
f) ncruciate.
Interogrile de selecie snt cereri formulate n baza unor condiii logice. Ele selecteaz un
subset de date din unul sau mai multe tabele legate ntre ele. De exemplu, cutarea elevilor
nscui pn la 10 ianuarie 1992, afiarea elevilor clasei a 10-a B snt interogri de selecie.
Interogrile de excludere a unor nregistrri reprezint cereri de eliminare dintr-un
tabel a tuturor nregistrrilor care satisfac criteriile logice specificate. De exemplu, cererea
de tergere din tabelul Elevi al bazei de date Liceu a informaiilor despre elevii claselor
a12-a (n legtur cu absolvirea liceului) reprezint o astfel de interogare.
Interogrile de modificare a unor nregistrri schimb valorile unui cmp al tabelului
dup acelai algoritm. De exemplu, mrirea cu 50% a valorilor din cmpul Salariu al
tabelului Profesori poate fi realizat cu ajutorul unei interogri de modificare.
Uneori se pot solicita informaii care trebuie afiate n cmpuri noi. De exemplu, vrsta
elevilor se va prezenta ntr-un cmp aparte. Cu acest scop se va utiliza o interogare de
creare a cmpurilor rezultante.
Interogrile de grupare i totalizare se folosesc pentru sumarea datelor cmpurilor,
obinerea valorilor medii, a celor minimale sau maximale etc. De exemplu, calcularea
numrului total de ore pe sptmn realizate n fiecare clas a bazei de date Liceu se va
face cu ajutorul unei interogri de grupare i totalizare.
Interogrile ncruciate snt destinate prezentrii compacte a informaiilor sub form
de tabel. De exemplu, informaia despre numrul sptmnal de ore rezervat fiecrei
discipline n fiecare clas poate fi afiat cu ajutorul unei interogri ncruciate sub forma
urmtorului tabel:
Anul_de_studii
10
10
11
12
...
92
Nume_clasa
A
D
A
D
...
Biologia
2
1
3
1
...
Chimia
3
1
2
1
...
...
...
...
...
...
...
Fig. 9.1
Fig. 9.2
3. Fereastra unei interogri este divizat n dou zone. Zona superioar afieaz denu
mirile cmpurilor tabelelor. Zona inferioar afieaz un formular QBE n care progra
matorul poate folosi exemple de declaraii pariale sau expresii pentru a crea o interogare.
Alegem cmpurile care vor fi utilizate pentru scrierea criteriului de selecie i cmpurile
ale cror valori vor fi afiate. Adugarea unui cmp se face prin executarea unui dublu-clic
pe denumirea lui sau prin selectarea i tragerea acestui cmp cu ajutorul mouse-ului.
Caracteristica QBE (Query by Example) a fost creat iniial pentru a permite utilizatorilor aplicaiilor de baz
de date s gseasc i s afieze poriuni de date fr a fi nevoii s tie un limbaj de programare. Pe parcursul
timpului, aplicaiile QBE au ajuns instrumente preferate pentru scrierea interogrilor. Majoritatea sistemelor
de gestiune a bazelor de date i-au dezvoltat propriile aplicaii QBE, care permit formularea unui spectru larg
de cereri de interogare.
93
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:
94
Fig. 9.4
Fig. 9.5
95
Fig. 9.6
96
Fig. 9.7
ntrebri i exerciii
Ce constituie interogrile de selecie?
Care este rolul criteriului de selecie ntr-o interogare?
Cu ce scop se folosesc parametrii ntr-o interogare?
Deschidei baza de date Liceu. Creai o interogare de selecie ce va afia lista:
a) fetelor bazei;
b) diriginilor;
c) profesorilor nscui pn la 12 februarie 1970;
d) profesoarelor nscute n luna martie;
e) bieilor n ordine cresctoare a vrstei lor;
f ) elevilor care nu au telefon;
g) profesorilor de gen masculin care nu au mplinit 50 de ani;
h) elevilor nscui vara;
i) profesorilor al cror numr de telefon ncepe cu 022 48;
j) elevilor care nu locuiesc n Chiinu;
k) profesorilor al cror prenume ncepe cu litera A sau cu litera E;
l) elevilor care nu nva Filosofia;
m) elevilor care studiaz Matematica 5 ore pe sptmn.
Deschidei baza de date Liceu. Creai o interogare de selecie cu parametru ce va afia lista:
a) disciplinelor studiate de elevul specificat de utilizator;
b) profesorilor care predau n clasa specificat de utilizator;
c) profesorilor care locuiesc n localitatea specificat de utilizator;
d) elevilor care studiaz disciplina specificat de utilizator;
e) profesorilor care predau disciplina specificat de utilizator.
Formulai i creai 5 interogri de selecie pentru baza de date Liceu.
Pentru baza de date Liceu formulai i creai 5 interogri de selecie cu parametru.
97
Fig. 9.8
Fig. 9.9
98
Fig. 9.10
Uneori trebuie s adugm ntr-un tabel nregistrri din alt tabel. De exemplu, fie
tabelul Elevi1 care conine date despre elevii nscui n luna mai. Dac dorim s adugm
n acest tabel nregistrrile elevilor din tabelul Elevi nscui n luna iunie, vom proceda
astfel:
1. Crem o interogare de selecie care va afia lista elevilor nscui n luna iunie.
2. Din meniul Query alegem Append Query. Apare fereastra Make Table. Din lista
derulant Table Name selectm Elevi1.
3. Salvm, apoi executm interogarea.
ntrebri i exerciii
Cu ce scop se utilizeaz interogrile de aciune?
Descriei algoritmul de creare a unei interogri:
99
Fig. 9.11
100
Fig. 9.12
Fig. 9.13
Fig. 9.14
101
ntrebri i exerciii
Ce reprezint interogrile:
b) de grupare i totalizare;
c) ncruciate?
Test de evaluare
1. Examinai baza de date Liceu. Creai o interogare ce va afia lista:
a) elevilor al cror prenume ncepe cu litera A;
b) elevilor nscui joi;
c) profesorilor care predau disciplina specificat de utilizator.
2. Examinai baza de date Liceu. Alctuii o interogare ce va:
a) aduga n tabelul Elevi cmpul Adresa_Web, ale crui valori vor fi formate n aceast ordine
din numele, prenumele elevului i secvena @liceu.md. De exemplu, adresa Web a elevului
Ion Popa va fi PopaIon@liceu.md;
b) genera tabelul Test cu date despre elevii care nu nva n clasele a 10-a A, a 11-a B, a 12-a C
(inclusiv adresa Web descris n a));
c) elimina din tabelul Test datele despre elevii care nva n clasele a 10-a B, a 11-aC;
d) modifica adresa Web a fiecrui elev din tabelul Test, substituind subirul liceu.md cu
secvena elev.md;
e) aduga n tabelul Test date despre elevii de gen feminin care nva n clasa a 10-aA;
f ) mri cu 40% salariul profe
sorilor cu vrsta mai mare
dect 40 de ani.
3. Examinai baza de date Liceu.
Elaborai o interogare ce va
afia numrul:
a) de elevi la fiecare din profi
lurile real i umanist;
b) elevilor de gen masculin i
numrul celor de gen femi
nin.
4. Creai o interogare ncruciat
ce va afia numrul elevilor n
fiecare clas a bazei de date
Fig. 9.15
Liceu (ca n figura 9.15).
102
Capitolul 10
Formulare i rapoarte
Dup studierea acestui capitol, vei fi capabili s:
identificai formulare i elementele care alctuiesc aceste formulare;
elaborai formulare i subformulare cu ajutorul sistemului de asisten;
utilizai formulare pentru vizualizarea, modificarea, formatarea i validarea datelor;
alctuii formulare pe baza tabelelor corelate;
identificai rapoarte i elementele care formeaz aceste rapoarte;
elaborai rapoarte i subrapoarte cu ajutorul sistemului de asisten;
creai rapoarte pe baza tabelelor corelate;
grupai i s totalizai date ntr-un raport.
10.1. Formulare
Formularele snt obiecte ale bazei de date Access, proiectate special pentru a crea o
interfa pentru utilizator cu scopul facilitrii introducerii, editrii i afirii nregistr
rilor din tabele sau interogri.
Formularele mresc viteza i minimizeaz erorile de introducere a datelor. n acelai
timp, ele permit vizualizarea datelor ntr-un format mai atractiv dect cel al regimului
Datasheet View.
Cu ajutorul formularelor pot fi validate intrri de date pe baza informaiilor din alte
tabele (dect cel la care se lucreaz), pot fi create subformulare (formulare coninute nalte
formulare), casete de cutare (pentru accesarea rapid a nregistrrii), liste de opiuni etc.
Componentele unui formular se numesc elemente de control sau obiecte de control.
103
Fig. 10.1
Fig. 10.2
butonul
. Identificatorii cmpurilor selectate snt mutai n lista Selected Fields.
i
se folosesc pentru a deplasa napoi cmpurile greit alese. Selectm
Butoanele
toate cmpurile i apsm butonul Next.
4. Urmtoarea fereastr Form Wizard ofer posibilitatea alegerii modului de afiare a
cmpurilor n formular (fig. 10.2). Selectm opiunea Columnar (cmpurile alese la pasul
precedent vor fi afiate n formular una sub alta n coloane).
5. La pasul urmtor alegem unul din stilurile predefinite de formular (fig. 10.3).
6. n ultima fereastr precizm numele formularului (Formular_Elevi). Dac alegem
opiunea Modify the Forms design (fig. 10.4), atunci dup apsarea butonului Finish,
formularul va fi deschis n regim de proiectare. n caz contrar, formularul va aprea n
regim de editare a datelor.
7. Deschidem formularul pentru a vedea i a introduce informaii (fig. 10.5).
Fig. 10.3
104
Fig. 10.4
Fig. 10.5
Fig. 10.6
105
106
Fig. 10.8
107
10.1.3. Subformulare
Un subformular este un formular care se conine n alt formular. Putem include subfor
mulare ntr-un formular cu ajutorul unui program de asisten sau prin proiectare indivi
dual. Vom examina doar cazul programului de asisten, acesta fiind disponibil pentru
Control Wizard din caseta Toolbox.
apelare doar dac este activat butonul
Fie formularul Clase din figura 10.10 pentru afiarea i modificarea datelor despre
clasele bazei de date Liceu. Vom aduga un subformular n care vor aprea informaii
despre elevii clasei selectate n formularul principal.
1. Deschidem formularul Clase n
regimul Design. Activm mai nti butonul
Control Wizard, apoi butonul Subform/
Subreport din caseta Toolbox i executm
un clic pe formularul de baz n poziia n
care va aprea subformularul. Apare
fereastra SubForm Wizard din care selectm
tabelul Elevi.
Fig. 10.10
108
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
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.
109
Fig. 10.11
Fig. 10.12
Fig. 10.13
Fig. 10.14
Fig. 10.15
110
Fig. 10.16
111
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:
112
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
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
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.
119
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
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
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.
Sir Timothy Jon (Tim) Berners-Lee (n. 08.06.55) programator englez, inventator al limbajului HTML i al
WWW-ului, director al Consoriului WWW (W3C), organizaie care tuteleaz standardele Webului.
122
nceputul documentului
Titlul documentului
<Head>
<Title>
</Title>
</Head>
<Body>
Coninutul documentului
</HTML>
Sfritul documentului
</Body>
Textul scris ntre marcajele <TITLE> i </TITLE> este afiat pe bara de titlu a ferestrei
programului de explorare.
Etichetele <BODY> i </BODY> cuprind coninutul propriu-zis al documentului HTML,
care va fi afiat n fereastra programului de explorare i va fi vzut de utilizator.
Menionm cteva dintre atributele etichetei <Body>:
snt numere hexazecimale care de
bgcolor = #n1n2n3n4n5n6, unde
termin intensitatea culorilor rou, verde, respectiv, albastru ale fundalului paginii.
Culoarea poate fi precizat i prin numele ei (red, blue, black, yellow, green, cyan,
purple, white, gray etc.);
text = #n1n2n3n4n5n6 specific culoarea textului;
background = URL, unde URL este adresa i numele fiierului grafic a crui
imagine va fi utilizat ca fundal al documentului;
leftmargin = n, unde n este numr natural, stabilete distana n pixeli dintre marginea
stng a ferestrei programului de explorare i marginea stng a coninutului paginii;
topmargin = n, unde n este numr natural, stabilete distana n pixeli dintre marginea
de sus a ferestrei programului de explorare i marginea de sus a coninutului paginii.
Exemplu: Urmtorul fiier html interpretat de un program de explorare va afia o
pagin Web cu fundalul de culoare aqua i textul de culoarea #FF2233.
<HTML>
<Head> <Title> Exemplu </Title> </Head>
<Body leftmargin=140 topmargin=200 bgcolor=aqua text=#FF2233>
Salut! Acesta este un document .html
</Body>
</HTML>
ntrebri i exerciii
Explicai semnificaia referinelor ntr-un document HTML.
Ce editor de texte poate fi folosit pentru crearea unui fiier html?
Ce nelegei prin element al unui document html?
Ce semnificaie au etichetele ntr-un document html?
Ce simboluri se utilizeaz pentru a pune n eviden o etichet?
123
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.
124
Liniile orizontale snt folosite pentru divizarea unei pagini n seciuni logice. n
funcie de necesitate, eticheta <HR>, care insereaz o linie orizontal, poate include
ctevaatribute: align (stabilete alinierea liniei); size (specific nlimea liniei n pixeli);
width (specific limea liniei n pixeli sau n procente fa de limea ferestrei progra
mului deexplorare); color (specific culoarea liniei); noshade (specific o linie fr nicio
evideniere).
Fontul unui text poate fi precizat utiliznd marcajele <FONT> i </FONT>. El poate
fi caracterizat de urmtoarele atribute: face (precizeaz familia de caractere i poate avea ca
valoare una sau mai multe constante delimitate prin virgule, cum ar fi arial, serif, cursive,
monospace, fantasy etc.); color (precizeaz culoarea fontului); size (specific mrimea
caracterelor i poate avea ca valoare constantele 1, 2, ..., 7 sau +1, +2, ... (mrind astfel
dimensiunea caracterelor fa de dimensiunea curent), sau 1, 2, ... (micornd astfel
dimensiunile caracterelor fa de dimensiunea curent)); weight (determin grosimea
caracterelor, avnd valori posibile 100, 200, ..., 900).
Exemplul 1 (fig. 12.1):
<HTML>
<Head>
<Title> Text preformatat </Title>
<H1 align=center> Chisinau</H1>
</Head>
<Body leftmargin=20 topmargin=20 bgcolor=lightgreen text=blue>
<HR size=5 width=70% color=black>
<Font color=purple>
<H2>Sectoarele Chisinaului:</H2>
<H3>
<Pre>
Centru
Buiucani
Riscani
Botanica
Ciocana
</Pre>
</H3>
</Font>
</Body>
</HTML>
125
<HTML>
<Head>
<Title> Exemplul 2 </Title>
<H2 align=center> Stiluri HTML</H2>
</Head>
<Body>
<H3>Stiluri fizice:</H3>
<Pre>
Text obisnuit
<B>Text cu caractere ingrosate</B>
<I>Text cu caractere inclinate</I>
<U>Text cu caractere subliniate</U>
<TT>Text cu caractere monospatiate</TT>
<big>Text cu caractere marite</big>
<small>Text cu caractere micsorate</small>
Y = X<sup>2</sup>
M = (m<sub>1</sub>, m<sub>2</sub>)
<s>Text taiat</s>
<B><I>Text cu caractere ingrosate si inclinate</I></B>
</Pre>
</Body>
</HTML>
Fig. 12.1
126
Fig. 12.2
Codul Ă ă Â â Î î Ş ş Ţ ţ
&
<
>
spaiu
Codul
&
<
>
"
®
©
 
§
Simbolul
1/2
1/4
3/4
Codul
±
×
¦
½
¼
¾
°
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?
a)
Fig. 12.4
b)
Creai o pagin care va afia o poezie cu titlul de culoare verde, centrat, pe fundal galben, cu
nivelul de titlu 3, desprit de restul textului cu o linie de grosimea 5 i lungimea 50% din
limea ferestrei programului de explorare. Caracterele textului vor fi ngroate i nclinate.
128
12.3. Liste
Pentru organizarea structurat a informaiei unui document html se pot folosi listele.
Deosebim:
a) liste neordonate;
b) liste ordonate;
c) liste de definiii.
Listele neordonate se utilizeaz pentru a indica o succesiune fr o subordonare ierarhic.
Pentru a specifica nceputul i sfrtul unei astfel de liste, se utilizeaz etichetele
<UL> i </UL> (unordered list list neordonat).
Orice element al listei este precedat de eticheta <LI> (list item element al listei).
Fiecrei dintre etichetele <UL>, <LI> i se poate ataa atributul type, care poate lua una
dintre urmtoarele trei valori: Circle, Square, Disc. Acest atribut specific marcajul care
precede fiecare element al listei.
Listele ordonate (se mai numesc liste numerotate) se ncadreaz ntre etichetele <OL>
i </OL> (ordered list list ordonat).
Ca i n cazul listei neordonate, orice element al listei ordonate este precedat de eti
cheta <LI>. Atributul type al etichetei <OL> poate lua una din valorile: A, a, I, i, 1.
Dac atributul type nu este specificat, elementele listei vor fi numerotate cu cifre arabe.
Listele de definiii se utilizeaz, de regul, pentru organizarea glosarelor. Termenii
unui glosar snt listai n ordine alfabetic, fiecare fiind urmat de definiia lui.
Listele de definiii se ncadreaz ntre etichetele <DL> i </DL> (definition list list
de definiii).
Fiecare termen al listei este precedat de eticheta <DT> (definition term termen
definit), iar definiia (descrierea) lui de eticheta <DD> (definition description descrie
rea definiiei).
Observaii:
1. Listele pot fi imbricate.
2. n interiorul unei liste snt permise utilizarea etichetelor <P> i <BR> i a elemen
telor de formatare a textului.
3. O list ordonat poate fi ntrerupt pentru un text. n acest caz se folosesc dou
seturi de etichete <OL>: una pentru prima parte a listei (pn la textul inserat)
ialtapentru partea a doua (dup text). n acest caz, etichetei <OL> din partea
adoua a listei i se ataeaz atributul start cu valoarea ntreag, care indic nceputul
numerotrii.
Exemplul 1 (fig. 12.5):
<HTML>
<Head> <Title> Liste neordonate</Title> </Head>
<Body>
<H4> Unele domenii ale matematicii</H4>
<UL>
<LI> Algebra
<LI> Geometria
<LI> Teoria ecuatiilor diferentiale
129
Fig. 12.5
130
Fig. 12.6
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
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
EXEMPLE
<HTML>
<Head> <Title> Referinte</Title> </Head>
<Body>
<H4> <a href = exemplul1.html> Treci la exemplul 1 </a>
<p> <a href = EXEMPLE/exemplul2.html> Treci la exemplul 2 </a> </p>
<p> <a href = ../exemplul3.html> Treci la exemplul 3 </a> </p>
<p> <a href = http://www.ust.md> Universitatea de Stat din
Tiraspol </a> </p>
</H4>
</Body>
</HTML>
Fig. 12.9
Fig. 12.10
Fig. 12.11
133
e) URL-ul ctre o secven a altui document este format din numele fiierului i
numele secvenei, ultimul fiind precedat de simbolul #.
De exemplu, URL-ul secvenei cu numele capitolul2 al fiierului exemplul1.html din
acelai catalog este exemplul1.html#capitolul2.
Exemplul 2 (fig. 12.10, vezi p. 133):
<HTML>
<Head> <Title> Referinte</Title> </Head>
<Body>
<H2>
<a name=inceput></a>
<P>A</P> <P>fost</P> <P>odata</P> <P>ca-n</P> <P>povesti</P>
<P>A</P> <P>fost</P> <P>ca</P> <P>niciodata</P>
<P>Din</P> <P>rude</P> <P>mari</P> <P>imparatesti</P>
<P>O</P> <P>prea</P> <P>frumoasa</P> <P>fata</P>
<a href=#inceput> Treci la inceput </a>
</H2>
</Body>
</HTML>
134
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
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>
Fig. 12.13
Fig. 12.14
137
<HTML>
<head> <Title>Imagini</Title> </head>
<Body>
<A HREF=Desene/desen1.jpg><img src=Desene/desen1.jpg
=50 height=50></A>
<A HREF=Desene/desen2.jpg><img src=Desene/desen2.jpg
=50 height=50></A>
<A HREF=Desene/desen3.jpg><img src=Desene/desen3.jpg
=50 height=50></A>
<A HREF=Desene/desen4.jpg><img src=Desene/desen4.jpg
=0 height=50></A>
</Body>
</HTML>
width=
width=
width=
width=5
ntrebri i exerciii
Care snt formatele fiierelor-imagini acceptate de programele de explorare Web?
Ce etichet se utilizeaz pentru inserarea unei imagini ntr-un document html? Care este
atributul obligatoriu al acestei etichete?
Ce atribute neobligatorii poate avea eticheta pentru inserarea imaginilor ntr-un document
html i care snt valorile acestor atribute?
executarea unui clic pe fiecare imagine, programul de explorare va afia aceast imagine cu
dimensiunile 15 cm x 15 cm.
Creai o pagin Web care va afia un text despre localitatea natal cu titlul de nivelul 5 avnd
culoarea neagr i fundalul gri. O imagine a localitii va aprea n chenar i va fi aliniat la
dreapta textului.
Creai o pagin Web care va afia graficul unei funcii.
Indicaie: Acest grafic poate fi construit cu programul Microsoft Excel.
Creai o pagin Web care va afia o organigram.
Creai un document html care va afia urmtoarea pagin Web (fig. 12.15 a, b) (se pot folosi alte
imagini):
a)
138
Fig. 12.15
b)
12.6. Tabele
n cele mai dese cazuri tabelele se utilizeaz pentru organizarea structurat a datelor.
De asemenea, aa cum fiecare celul a tabelului poate avea propriile culori, stiluri, efecte
pentru text i fundal, tabelele se folosesc i pentru soluii de design.
Un tabel, de regul, are:
a) titlu pentru specificarea numelui tabelului;
b) rnduri i coloane;
c) cap de tabel (table header) pentru descrierea coninutului coloanelor sau al rndurilor;
d) celule de date, care formeaz rndurile i coloanele tabelului.
Etichete pentru definirea unui tabel ntr-un document .html
Etichete
Descrierea etichetelor
<TABLE>
</TABLE>
<CAPTION>
</CAPTION>
<TR>
</TR>
<TH>
</TH>
<TD>
</TD>
Definesc o celul de date obinuit. Eticheta <TD> poate avea oricare dintre
atributele etichetei <TH>.
139
Dac o celul a tabelului este vid, atunci n mod normal ea este afiat fr
chenar.Pentru a evita acest efect, n locul coninutului celulei se va scrie textul
sau <br>.
Exemplul (fig. 12.16):
<HTML>
<Head> <Title>Exemplul 1. Tabele</Title> </Head>
<Body>
<Table border=2 width=90% height=80% align=center bgcolor=lightcyan>
<Caption align=left><Font color=Red Size=6> Orarul lectiilor </font>
</Caption>
<Tr><Th Colspan=2>Luni<Th>Marti<Th>Miercuri<Th>Joi<Th>Vineri </Tr>
<Tr align=center><Td>1<Td>Romana<Td>Chimia<Td>Fizica
<Td>Istoria<Td>Algebra </Tr>
<Tr align=center><Td>2<Td>Engleza<Td>Fizica<Td>Informatica
<Td>Rusa<Td>Biologia </Tr>
<Tr align=center><Td>3<Td>Franceza<Td>Algebra<Td>Geometria
<Td>Muzica<Td> Romana </Tr>
</Table>
</Body>
</HTML>
Fig. 12.16
ntrebri i exerciii
Pentru ce snt utilizate tabelele?
Numii atributele etichetei <TABLE> i valorile posibile ale acestor atribute.
Care snt atributele etichetei <CAPTION> i valorile posibile ale acestor atribute?
Cum se specific un rnd de tabel?
Care etichete definesc o celul antet?
Care snt atributele acestor etichete i valorile lor posibile?
140
Care etichete definesc o celul de date? Care snt atributele acestor etichete?
Creai o pagin Web care va afia urmtorul tabel:
a)
A
B
C
D
E
F
B
D
C
E
D
E
b)
c)
A
B
d)
B
e)
B
E
H
G
f)
A
B
C
D
G
E
F
H
g)
Creai un document HTML care va afia urmtoarea pagin Web (fig. 12.17 a, b) (se pot folosi
alte imagini):
a)
Fig. 12.17
b)
141
2010
Rubin
Safir
Diamant
1 483
683
2012
4 532
3 835
2014
6 743
7 482
238
142
Animale slbatice
Pot zbura
Nu pot zbura
Gina
Iepurele
Cioara
Lupul
Gsca
Capra
Bufnia
Vulpea
Se
ntlnesc
pe
teritoriul
rii
noastre.
Raa
Calul
Flamingo
Elefantul
Prepelia
Mgarul
Colibri
Leul
Nu se
ntlnesc
pe
teritoriul
rii
noastre.
Crem n echip
1. Proiectai structura unui site cu titlul:
a) Republica Moldova ar european; i) Buctria moldoveneasc;
j) Crile mele preferate;
b) Localitatea noastr de batin;
c) Liceul nostru;
k) Profesii de prestigiu;
d) Republica Moldova atracie turistic; l) Enciclopedia modei;
m) Umorul surs de bun dispoziie;
e) Mnastirile Republicii Moldova;
n) Absolveni de succes ai liceului nostru;
f ) Personaliti notorii;
g) Ani de liceu;
o) Produse autohtone de calitate;
h) Fauna Republicii Moldova;
p) Sportul este sntate.
2. Utiliznd limbajul HTML i consultnd diferite surse de informaie, creai paginile web
componente ale site-ului. Stabilii ntre ele legturi de navigare. Toate paginile vor
avea acelai meniu principal. Testai site-ul cu diferite programe de navigare.
3. Creai i ataai site-ului:
a) o pagin web cu referine spre surse informaionale suplimentare la tema site-ului;
b) o pagin web cu galerii de imagini corespunztoare temei.
Test de evaluare
1. Stabilii valoarea de adevr a propoziiei:
a) Textul scris ntre etichetele <HEAD> i </HEAD> ale unui document HTML va fi afiat
pe bara de titlu a ferestrei programului de explorare n care a fost interpretat acest
document.
b) O etichet poate avea cteva atribute.
c) Programul de explorare va afia din rnd nou un text, dac acesta va fi precedat de
oricare din etichetele <P>, <BR>, <HR>.
d) Un text cuprins ntre etichetele <DIV> i </DIV> este un text preformatat.
2. Selectai etichetele care se folosesc pentru a stabili stiluri fizice pentru un text: <B>,
</B>, <DFN>, </DFN>, <VAR>, </VAR>, <BIG>, </BIG>, <EM>, </EM>, <SUB>, </SUB>.
143
3. Scriei un cod HTML care, fiind interpretat de programul de explorare, va afia urm
toarele liste imbricate:
Fructe
a) Mere
b) Pere
c) Prune
d) Caise
Legume
1. Cartofi
2. Morcovi
3. Ceap
Lactate
o Lapte
o Brnz
o Iaurt
4. Fiierul f1.html se afl n mapa A, iar fiierul f2.html se afl n mapa B. Care este URL-ul
referinei din fiierul f1.html ctre fiierul f2.html, dac:
a) mapele A i B se afl n acelai catalog;
b) mapa A se conine n mapa B;
c) mapa B se conine n mapa A;
d) mapa A se conine n submapa C a mapei B?
5. Comentai semnificaia urmtorului cod HTML:
<A HREF=../TEST/d1.jpg><img src=d2.jpg width=50 height=50></A>.
6. Scriei un cod html care, fiind interpretat de programul de explorare, va afia urm
torul tabel:
A
E
H
144
B
I
C
F
D
G
J