Atliko: Tomas Danikauskas IFM 5/1
Programos tekstas: Tvarka.javaAlgoritmas turi trūkumą, nes išrenka pirmąjį langą ir pirmą patogią paskaitą ir mėgina jas sukeisti. Jei sukeitimo nėra, tai tvarkaraštis taip ir lieka nepakeistas. Mūsų realizacijoje langas ir patogi pamoka randami atsitiktinai, kas pagerina optimizavimo algoritmą.
Tikrinimas vyksta pagal punktus apibrėžtus skyrelyje
apribojimai. Bet normaliame tvarkaraštyje įmanomi kai kokie apribojimai. Galimos kelios to paties dalyko paskaitos einančios viena po kitos, bei klasės suskaldymas į kelias dalis. Tam tikslui įvestos 3 naujos Mokytojai[i][3] reikšmės reikalingos tikrinimui:R - šito dalyko pamokos gali eiti viena paskui kita. Pvz.: klase gali turėti 2 lietuviu kalbos, darbu ar kūno kultūros pamokas. Toks žymėjimas ir parodys dalykus, kurių dvigubi užsiėmimai neskaitomi klaida.
D - pamokos per kurias klasė skaidoma i dvi dalis. Pvz.: kūno kultūra. Žymėjimas rodo, kad radus, jog klase turi dvi pamokas tuo pat metu, to neskaityti klaida. šitą žymėjimą turi turėti abi pamokos.
B = D + R. Galimos viena paskui kita einančios pamokos, paskirstytos keliems mokytojams. Pvz.: darbų pamoka. Ji gali vykti pas skirtingus mokytojus ir po pora pamoku iš eilės. Abu dalykai turi būti pažymėti B raide.
Tikrinama pamoka, kuria buvo bandoma sukeisti su mokytojo langu. Apie klaida pradiniame tvarkaraštyje vartotojui atsiranda dialogo langas, kuriame yra nurodyta klasė ir jei įmanoma koordinatės tos patogios mokytojui paskaitos, kuria tikrinant įvyko klaida:
