Sunteți pe pagina 1din 16

Universitatea Ovidius Constanta

Compunerea Functiilor Compuse

Student: Radu Macovei MCTIM, anul I

Cuprins
1. escrierea pro!lemei........................................................................................................" #.$roiectul Su!%!a&ei de date..............................................................................................." #.1 $roiectul in '(........................................................................................................) #.# $roiectul in MR .......................................................................................................) #." $roiectul in MM' ....................................................................................................) ".(r*itectura si proiectarea so+t,are...................................................................................)..*id de utili&are................................................................................................................-.Conclu&ii.........................................................................................................................../.0i!lio1ra+ie.......................................................................................................................2.(ne3e................................................................................................................................/ 2.1 Codul sursa al implementarii...................................................................................../

1. Descrierea problemei
O!iectul acestei lucrari il repre&inta implementarea in Mat0ase a +untionalitatii de de+inire a +unctiilor compuse. $rin +unctie in conte3tul ascetei lucrari se intele1 atat sensul matemamatic al termenului cat si transpunerea acestuia in Modelul Matematic 'lementar al atelor. In matematica o +unctie compusa 4+ormata din compuerea unei +unctii cu o alta5 repre&inta aplicarea celei din urma la re&ultatul aplicarii primei +unctii unui ar1ument. aca e3ista +unctiile f: X -> Y si g: Y -> Z, atunci e3ista h = g o f: X->Z unde h(x) = g(f(x)) cu conditia ca 67 este inclusa sau e1ala cu 6. In MM' aceasta pro!lema este tratata in acelasi mod, compunerea +unctiilor aducand dupa sine o constran1ere asupra sc*emei de !a&e de date ce presupune respectarea de catre orice instanta a sc*emei si orice instanta a datelor din multimile implicate a relatiei de e1alitate intre +unctia compusa si compo&itia ec*ivalenta. O alta constran1ere care tre!uie satis+acuta este cea ca in ca&ul in care se repre&inta prin sinonimie 4acest termen este eminamente imprpropriu in acest conte3t5 o +unctie compusa cu a8utorul compo&itiei sale, atunci prima +unctie din compo&itie va avea domeniul e1al cu cel al +unctiei compuse si ultima +unctie din compo&itie va avea codomeniul e1al cu cel al +unctiei compuse. $entru implementare corecta tre!uie asi1urata atat corectitudinea sintactica dar si semantica a compunerii +unctiilor si mai ales impuerea conditiei de perpetuare a constran1erii nou create.

2. Proiectul Sub-bazei de date


Su!%!a&a de date contine " ta!ele: S'TS, FU9CTIO9S si COM$:FU9CT:COM$.

"

2.1 Proiectul in DEA

Functions u

omeni

Sets

Codomeni u

Compunere Comp:Funct:Comp

Comp us

2.2 Proiectul in MRD


Ta!elele au urmatoarea structura 4voi pre&enta doar structura de interes simpli+icata5: Functions: ;F, Funtion9ame, omain, Codomain, S<stem Sets: ;S, Set9ame, SetT<pe, O!8ectId Comp:+unt:comp: CompFunct, $osition, Funct

2.3 Proiectul in MMED


Sets: ;S =%> 9(T4)5 Set9ame =%> C?(R4"#5 O!8ectId =%> 9(T4)5 Functions: ;F =%> 9(T4)5 Function9ame =%> C?(R4"#5

S<stem =%> 0OO@ Comp:Funct:Comp: ;COM$ =%> 9(T4)5 $osition =%> 9(T4#5 In8 omain: Functions %> Sets In8 Codomain: Functions %> Sets In8 CompFunct: CompFunctComp %> Functions Funct: CompFunctComp %> Functions

3. Arhitectura si proiectarea software


$roiectul este reali&at (ccess cu suport A0( si contine doua clase care de+inesc doua ecrane pentru introducerea si vi&uali&area datelor. $rimul ecran este cel destinat introducerii +unctiilor. (l doilea este un su!%+orm care permite de+inirea compunerii ec*ivalente a +unctiei alese. Reali&area acestui proiect a presupus scrierea codului doar pentru ecranul de introducere a compuerii. Si1natura +unctiilor este pre&entata si e3plicate atat in surse cat si in (ne3a 1.

4. Ghid de utilizare
In Mat0ase, se navi1*ea&a pana la sectiunea de vi&uali&areBintroducere a +unctiilor. Se de+ineste o +unctie ce poate +i repre&entata si ca o +unctie compusa. Se desc*ide su!+ormul de de+inire a comunerii si se introduce +unctiile componente preci&and po&itia +untiei simple in relatia de compunere.

5.

o!cluzii

$entru a reali&e aceasta implementare s%au scris +unctii si procedure care asi1ura toate cele trei conditii: constran1erea sintactica C +untiile vor +i de+inite in ordine, po&itiile lor vor +i de+inite ca numere consecutive constan1erea semantica C la +iecare introducere a unei noi +unctii in compuere se veri+ica toate constra1erile matemetice le1ate de compunerea de +unctii: inclu&iunea sau e1alitatea domeniu 4+unctiei curente5 C codomediu 4+unctiei anterioare5 constran1erea de perpetuare C se asi1ura ca nicun element e3istent sau viitor +ie al +untiei compuse ec*ivalente sau a unor +unctii simple nu va viola constran1era semantica

". #iblio$rafie
1. C*ristian Mancas C 9ote de curs #. C*ristian Mancas % Te&a de octorat

%. A!e&e
7.1 Codul sursa al implementarii
D EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE D E (pplication: E Mat0ase E D E Module: E FU9CTIO9S Form E D E @ast update: E F1B#FFG E D E (ut*or: E Radu Macovei E D E Aersion: E F.G !eta E D E $urpose: E MCTIM E D EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE Option Compare ata!ase Option '3plicit DEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE Dde+initii constante DEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE $rivate Const minFunc9o (s Inte1er H # DEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE Ddeclaratii varia!ile de instanta DEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE Dnumarul +unctiilor introduse in compunere Ddaca acest numar este mai mic decat =minFunc9o>, atunci la e3it din +orm se va da un mesa8 Dca nu se va salva insertia % o compunere de +unctii este de minim # +unctii im +unctionsInserted (s @on1 Ddaca toata +orma e valida % daca toate po&itiile sunt OI Din +unctie de aceasta vom ster1e sau nu, la iesirea din +orma si vom atentiona utili&atorul im isConstructionAalid (s Inte1er $rivate Su! Form:Current45 Don load On 'rror .oTo err:point Dstoc*e& re&ultatul numaratorii de +unctii compuse in varia!ila 1lo!ala +unctionsInserted H Count:Inserted:Functions4MeJCompFunct5

isConstructionAalid H False '3it Su! err:point: Ms10o3 'rr. escription 'nd Su! $rivate Su! Form:0e+oreUpdate4Cancel (s Inte1er5 Dveri+icarea de codomeniu Ddaca nu este nicio +unctie inserata inainte, nu se mai +ace veri+icarea Ddaca da, se +ace veri+icarea domeniu % codomeniu On 'rror .oTo err:point im po& (s Inte1er im min$osition (s Inte1er im ma3$osition (s Inte1er Cancel H False +unctionsInserted H Count:Inserted:Functions4MeJCompFunct5 I+ Me.9e,Record T*en Deste un insert +unctionsInserted H +unctionsInserted K 1 'lse Deste un update Dtre!uie sa veri+ic daca s%a modi+icat po&itia sau +unctia po& H 4Me.$osition5 'nd I+ Dveri+ic sa vad daca e sin1ura linie inserata I+ 49ot 4+unctionsInserted = #55 T*en Dnu e sin1ura linie inserata po& H 4Me.$osition5 min$osition H .et:Min:$osition4MeJCompFunct5 ma3$osition H .et:Ma3:$osition4MeJCompFunct5 I+ po& = min$osition T*en Dpo&itia pe care se doreste introducerea in compunere Deste mai mica decat po&itia minima de pana acum Dveri+ic doar codomeniul 9e,Record cu domeniul de la po&itia minima daca po& H min$osition % 1

Dadica daca este imediat urmatorul % daca nu e urmatorul I+ 4po& H min$osition % 15 T*en Dpot sa +ac veri+icarea I+ 4C*ecL:Constraints: o,n4Me.Funct, po&55 T*en Ds%au veri+icat constran1erile D+ac insertul, totul e !ineJ isConstructionAalid H True Cancel H False 'lse Dnu s%au veri+icat constran1erile Ms10o3 MT*is +unction canDt !e added to t*e compositionJM, v!Critical, M'rrorM isConstructionAalid H False Cancel H True 'nd I+ 'lse Dnu mai are rost sa +ac veri+icarea isConstructionAalid H False Ms10o3 MT*e composition is not valid <etJM, v!In+ormation, M(ttentionJM 'nd I+ 'lse Dnu e cea mai mica po&itie I+ po& > ma3$osition T*en Dpo&itia este cea mai mare de pana acum Dveri+ic doar domeniul 9e,Record cu Codomeniul po&itiei anterioare daca e valida constructia I+ 4po& H ma3$osition K 15 T*en Dpot sa +ac veri+icarea I+ 4C*ecL:Constraints:Up4Me.Funct, po&55 T*en Dtotul e OI D+ac insertul isConstructionAalid H True Cancel H False

'lse Dnu s%au veri+icat constran1erile Ms10o3 MT*is +unction canDt !e added to t*e compositionJM, v!Critical, M'rrorM isConstructionAalid H False Cancel H True 'nd I+ 'lse Dnu mai +ac nicio veri+icare Cancel H False isConstructionAalid H False Ms10o3 MT*e composition is not valid <etJM, v!In+ormation, M(ttentionJM 'nd I+ 'lse De un insert intermediar Dtre!uie sa veri+ic daca e in intervalul Npo&%1, po&K1O I+ 4Is:In:Interval4po&55 T*en Deste in interval Dveri+ic constran1erile I+ 4C*ecL:Constraints:Up4Me.Funct, po&5 (nd C*ecL:Constraints: o,n4Me.Funct, po&55 T*en Ds%au indeplinit toate constran1erile D+ac insertul, constructia e valida Cancel H False isConstructionAalid H True 'lse Dnu s%au indeplinit constran1erile Dnu +ac inserul, constructia nu e valida il anunt pe utili&ator Ms10o3 MT*is +unction canDt !e added to t*e compositionJM, v!Critical, M'rrorM isConstructionAalid H False Cancel H True 'nd I+ 'lse

Dnu e3ista un ast+el de interval D+ac insertul dar constructia nu e valida Cancel H False isConstructionAalid H False Ms10o3 MT*e composition is not valid <etJM, v!In+ormation, M(ttentionJM 'nd I+ 'nd I+ 'nd I+ 'lse De o sin1ura inre1istrare pt compunere si deci nu e valida constructia isConstructionAalid H False Ms10o3 MT*e composition is not valid <etJM, v!In+ormation, M(ttentionJM 'nd I+ '3it Su! err:point: Cancel H True Ms10o3 'rr. escription 'nd Su! $rivate Su! Form:Close45 Dtratarea evenimentului de inc*idere Dse veri+ica daca sunt cel putin # +unctii in Compunere Ddaca da, atunci nu se intervine Ddaca nu, atunci se ster1e inre1istrarea care e3ista, unde este ca&ul D(T'9TI'J Sistemul de evenimente la su!+orme este 0U..6 Dnu se tratea&a decat ultima su!+orma desc*isa, si mai mult, Ddoar daca su!+orma este desc*isa

'nd Su! $rivate Su! Form: elete4Cancel (s Inte1er5 DCon+irmare de ster1ere DRecalculare si reveri+icare relatie domeniu, codomeniu

1F

On 'rror .oTo err:point im s (s Aariant Cancel H True s H Ms10o34M(re <ou sure <ou ,ant to delete t*e selected recordQM, v!6es9o Or v!Ruestion, MCon+irmM5 I+ 4s H v!6es5 T*en Cancel H False 'lse Cancel H True 'nd I+ D im 345 (s Inte1er DRe im $reserve 34"P5 (s Inte1er D34-5 H / '3it Su! err:point: Cancel H True Ms10o3 'rr. escription 'nd Su! $rivate Function Count:Inserted:Functions4Main:Function:Id (s @on15 (s Inte1er DFunctie care calculea&a cate inre1istrari sunt asociate +unctiei principale DSreturn +unction:count im stSR@ (s Strin1 im con (s ( O 0.Connection im rso (s ( O 0.Recordset Dvad daca mai sunt +unctii de8a de+inite pt +unctia selectata Set con H (pplication.Current$ro8ect.Connection Set rso H 9e, ( O 0.Recordset stSR@ H MS'@'CT Count4E5 (S RecordsFound FROM COM$:FU9CT:COM$ M : T MU?'R' COM$:FU9CT:COM$.CompFunctHM T Main:Function:Id rso.Open stSR@, con D, adOpenStatic Count:Inserted:Functions H rsoJRecordsFound rso.Close con.Close

11

Set rso H 9ot*in1 Set con H 9ot*in1 'nd Function $rivate Function C*ecL:Constraints: o,n4Up:Function:Id (s @on1, po&5 (s 0oolean Dveri+ic constran1erile codomeniu %> domeniu lui po&K1 Dveri+ic daca codomeniul meu este domeniul lui po&K1 Ddaca ele se veri+ica H> True Ddaca nu H> False im Codomain, omain (s Inte1er im stSR@ (s Strin1 im con (s ( O 0.Connection im rso (s ( O 0.Recordset Set con H (pplication.Current$ro8ect.Connection Set rso H 9e, ( O 0.Recordset stSR@ H Mselect +.domain as domain +rom +unctions + inner 8oin comp:+unct:comp c on +. N;+O H c.+unctM : T M ,*ere c.comp+unct HM T MeJCompFunct : T M and c.position H M T po& K 1 rso.Open stSR@, con D omain H rsoJ omain rso.Close con.Close Set rso H 9ot*in1 Set con H 9ot*in1 Set con H (pplication.Current$ro8ect.Connection Set rso H 9e, ( O 0.Recordset stSR@ H Mselect +.codomain as codomain +rom +unctions + M : T M,*ere +.N;+O H M T o,n:Function rso.Open stSR@, con D Codomain H rsoJCodomain rso.Close con.Close

1#

Set rso H 9ot*in1 Set con H 9ot*in1 C*ecL:Constraints: o,n H TransIncl4 omain, Codomain5 'nd Function $rivate Function C*ecL:Constraints:Up4 o,n:Function:Id (s @on1, po&5 (s 0oolean Dveri+ic constran1erile domeniu %> codomeniu lui po&%1 Dsunt in ca&ul in care tre!uie sa veri+ic daca domeniul meu este codomeniul lui po&%1 Ddaca ele se veri+ica H> True Ddaca nu H> False im Codomain, omain (s Inte1er im stSR@ (s Strin1 im con (s ( O 0.Connection im rso (s ( O 0.Recordset Set con H (pplication.Current$ro8ect.Connection Set rso H 9e, ( O 0.Recordset stSR@ H Mselect +.codomain as codomain +rom +unctions + inner 8oin comp:+unct:comp c on +.N;+O H c.+unctM : T M ,*ere c.comp+unct HM T MeJCompFunct : T M and c.position H M T po& % 1 rso.Open stSR@, con D Codomain H rsoJCodomain rso.Close con.Close Set rso H 9ot*in1 Set con H 9ot*in1 Set con H (pplication.Current$ro8ect.Connection Set rso H 9e, ( O 0.Recordset stSR@ H Mselect +.domain as domain +rom +unctions + M : T M,*ere +.N;+O H M T o,n:Function rso.Open stSR@, con D omain H rsoJ omain rso.Close con.Close Set rso H 9ot*in1

1"

Set con H 9ot*in1 C*ecL:Constraints: o,n H TransIncl4 omain, Codomain5 'nd Function $rivate Function .et:Min:$osition4Main:Function:Id (s @on15 (s @on1 Diau po&itia minima a unei +unctii inserate DSreturn position im stSR@, s (s Strin1 im con (s ( O 0.Connection im rso (s ( O 0.Recordset im n (s Aariant DInte1er Set con H (pplication.Current$ro8ect.Connection Set rso H CreateO!8ect4M( O 0.RecordSetM5 DstSR@ H MS'@'CT min4c.position5 as mini FROM COM$:FU9CT:COM$ c M : D T MU?'R' c.CompFunctHM T Main:Function:Id T M and c.position H M : D T M4 select min 4+.position5 +rom COM$:FU9CT:COM$ + ,*ere +.compFunct H M T Main:Function:Id T M 5M Drso.Open s, con Dn H rsoJmini n H @ooLup4M$ositionM, MCOM$:FU9CT:COM$M, MCompFunctHM T Main:Function:Id5 .et:Min:$osition H n Drso.Close Dcon.Close 'nd Function $rivate Function .et:Ma3:$osition4Main:Function:Id (s @on15 (s Inte1er Diau po&itia minima a unei +unctii inserate DSreturn position im s (s Strin1 im con (s ( O 0.Connection im rs (s 9e, ( O 0.Recordset im n (s Aariant Set con H (pplication.Current$ro8ect.Connection

1)

s H MS'@'CT ma34c.position5 as val FROM COM$:FU9CT:COM$ cM : T MU?'R' c.CompFunctHM T Main:Function:Id Drs.Open s, con rs.Open MS'@'CT ma34c.position5 as val FROM COM$:FU9CT:COM$ c U?'R' c.CompFunctHM T Main:Function:Id, con n H rsJAal .et:Ma3:$osition H n rs.Close con.Close 'nd Function $rivate Function Is:In:Interval4po& (s Inte1er5 (s Inte1er Dveri+ic daca e3ista inserturi in intervalul Npo&%1, po&K1O im s, sVl (s Strin1 im con (s ( O 0.Connection im rs (s ( O 0.Recordset im upFunct (s Aariant im do,nFunct (s Aariant Set con H (pplication.Current$ro8ect.Connection Set rs H 9e, ( O 0.Recordset s H MS'@'CT c.N;c+cO as val FROM COM$:FU9CT:COM$ c M : T MU?'R' c.CompFunctHM T Main:Function:Id T M and c.positionHM T po& % 1 rs.Open s, con upFunct H rsJAal rs.Close con.Close Set con H 9ot*in1 Set rs H 9ot*in1 I+ Is9ull4upFunct5 T*en Is:In:Interval H False 'lse Set con H (pplication.Current$ro8ect.Connection Set rs H 9e, ( O 0.Recordset sVl H MS'@'CT c.N;c+cO as val FROM COM$:FU9CT:COM$ c M :

1-

T MU?'R' c.CompFunctHM T Main:Function:Id T M and c.positionHM T po& K 1 rs.Open sVl, con do,nFunct H rsJAal rs.Close con.Close Set con H 9ot*in1 Set rs H 9ot*in1 I+ Is9ull4do,nFunct5 T*en Is:In:Interval H False 'lse Is:In:Interval H True 'nd I+ 'nd I+ 'nd Function

1/

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