title = "Objektinis programavimas 2 (P175B123)" student = { name = "Studento Roko Puzono IF-1/1", gender = "male" } lecturer = { name = "lekt. Simonavičius Kęstutis", gender = "male" } [[sections]] title = "Rekursija (L1)" project = "L1/LD_24" interface_scheme = "L1/LD_24/interface-scheme.png" guide = """ * Atsidarius programą matysite vieną lygtuką * Paspaudus mygtuką geriausia susitiko vieta bus surasta arba bus parašyta, kad neįmanoma susitiki. """ problem = """ LD_24. Susitikimas. Grupė draugų nusprendė susitikti mieste, o po to kartu eiti valgyti picos. Bet tuomet jie susiginčijo, kur geriausia susitikti, ir kurioje picerijoje valgyti. Galiausiai draugai nusprendė, jog patogiausia išsirinkti tokią susitikimo vietą ir piceriją, kad jų nueitų kelių iki susitikimo vietos, po to iki picerijos ir atgal į pradinius taškus suma būtų mažiausia. Parašykite programą, kuri rastų patogiausią susitikimo vietą ir piceriją. Duomenys. Pirmoje „U3.txt“ eilutėje duoti du skaičiai n ir m — miesto žemėlapio aukštis ir plotis (2 ≤ n, m ≤ 10). Toliau pateiktas miesto žemėlapis — n eilučių, kiekvienoje jų – m simbolių. Galimi šie simboliai: . — langelis pereinamas. X — langelis nepereinamas (pastatas, tvora...) P — picerija. Langelis nepereinamas, į piceriją galima įeiti iš gretimo langelio ir išeiti į bet kurį gretimą langelį. Įeiti galima tik į tą piceriją, kurioje bus valgoma pica. S — susitikimo vieta. Langelis pereinamas. D — vieno iš draugų pradinė buvimo vieta. Langelis pereinamas. Judėti galima tik aukštyn, žemyn, į kairę arba į dešinę (ne įstrižai). Rezultatai. Atskirose eilutėse atspausdinkite pradines draugų koordinates (koordinačių pradžia – apatinis kairysis langelis, numeruojama nuo 1, pirmiausiai nurodoma x koordinatė, po to - y). Atskirose eilutėse atspausdinkite: „Susitikimo vieta“ ir susitikimo vietos koordinates; „Picerija“ ir picerijos koordinates; „Nueita“ ir draugų nueitų kelių sumą. Jei susitikimo vietos ar picerijos, kurias visi draugai galėtų pasiekti, nėra, atspausdinkite žodį „Neįmanoma“. """ [[sections]] title = "Dinaminis atminties valdymas (L2)" project = "L2/LD_24" interface_scheme = "L2/LD_24/interface-scheme.png" guide = """ * Atsidaryti tinklalapį * Įvesti n ir k (n - minimalus vienetų kiekis, k - maksimali vieneto kaina) * Spausti "Atrinkti" mygtuką """ problem = """ LD_24. Detalės. Internetinėje parduotuvėje pirkėjai užsisakinėja robotų gamybai reikalingus įtaisus. Suraskite populiariausią įtaisą, kiek tokių įtaisų parduota ir už kokią sumą. Sudarykite tik vienos rūšies įtaisus pirkusių pirkėjų sąrašą, nupirktų įtaisų skaičių ir už juos sumokėtų pinigų sumą. Sąrašas turi būti surikiuotas pagal nupirktų įtaisų skaičių didėjimo tvarka, pirkėjų pavardes bei vardus abėcėlės tvarka. Duomenys: • tekstiniame faile U24a.txt yra informacija apie parduotuvėje parduodamus įtaisus: įtaiso kodas, įtaiso pavadinimas, įtaiso kaina; • tekstiniame faile U24b.txt yra informacija apie pirkėjus: pirkėjo pavardė, vardas, pirkto įtaiso kodas, pirktų įtaisų kiekis. Į kitą rinkinį atrinkite įtaisus (įtaiso kodas, įtaiso pavadinimas, įtaiso kaina), kurių parduota ne mažiau kaip n vienetų ir kurių vieneto kaina ne didesnė kaip k eurų (n ir k įvedami klaviatūra). """ [[sections]] title = "Bendrinės klasės ir testavimas (L3)" project = "L3/LD_24" tests_project = "L3/LD_24Tests" interface_scheme = "L3/LD_24/interface-scheme.png" guide = """ * Atsidaryti tinklalapį * Pasirenki pradinius duomenų failus * Įvesti n ir k (n - minimalus vienetų kiekis, k - maksimali vieneto kaina) * Spausti "Atrinkti" mygtuką """ lecturers_comment = """ Dictionary yra palikti kode, kad būtų galima leingviau grupuoti elementus pagal kažkokį raktą. """ tests_screenshots = [ "L3/LD_24Tests/screenshot1.PNG", "L3/LD_24Tests/screenshot2.PNG", "L3/LD_24Tests/screenshot3.PNG" ] problem = """ LD_24. Detalės. Internetinėje parduotuvėje pirkėjai užsisakinėja robotų gamybai reikalingus įtaisus. Suraskite populiariausią įtaisą, kiek tokių įtaisų parduota ir už kokią sumą. Sudarykite tik vienos rūšies įtaisus pirkusių pirkėjų sąrašą, nupirktų įtaisų skaičių ir už juos sumokėtų pinigų sumą. Sąrašas turi būti surikiuotas pagal nupirktų įtaisų skaičių didėjimo tvarka, pirkėjų pavardes bei vardus abėcėlės tvarka. Duomenys: • tekstiniame faile U24a.txt yra informacija apie parduotuvėje parduodamus įtaisus: įtaiso kodas, įtaiso pavadinimas, įtaiso kaina; • tekstiniame faile U24b.txt yra informacija apie pirkėjus: pirkėjo pavardė, vardas, pirkto įtaiso kodas, pirktų įtaisų kiekis. Į kitą rinkinį atrinkite įtaisus (įtaiso kodas, įtaiso pavadinimas, įtaiso kaina), kurių parduota ne mažiau kaip n vienetų ir kurių vieneto kaina ne didesnė kaip k eurų (n ir k įvedami klaviatūra). """ [[sections]] title = "Polimorfizmas ir išimčių valdymas (L4)" project = "L4/LD_24" tests_project = "L4/LD_24Tests" interface_scheme = "L4/LD_24/interface-scheme.png" guide = """ * Atsidaryti tinklalapį * Įvesti minimalus herojaus intelekto kiekį * Įvesti maksimalus NPC žalos kiekį * Spausti "Vykdyti" mygtuką """ tests_screenshots = [ "L4/LD_24Tests/screenshot1.png" ] problem = """ U4_24. Kompiuterinis žaidimas. Žaidimo pasaulyje yra dviejų tipų veikėjai - žaidėjo valdomi herojai bei kompiuterio valdomi „NPC“ (non playable character). Sugrupavote žaidimo veikėjus pagal rases, ir surašėte jų duomenis į skirtingus failus. Duomenų formatas toks: pirmoje eilutėje – rasės pavadinimas. Antroje – pradinis miestas. Toliau informacija apie žaidimo veikėjus. Sukurkite abstrakčią klasę „Actor“ (savybės - vardas, klasė, gyvybės taškai, mana, žalos taškai, gynybos taškai), kurią paveldės klasės “Hero” (savybės – jėga, vikrumas, intelektas, ypatinga galia), “NPC” (savybė – gildija). * Raskite kiekvienos klasės daugiausiai gyvybės taškų turintį veikėją, ekrane atspausdinkite jo vardą, rasę, klasę ir gyvybės taškų kiekį. * Sudarykite visų veikėjų klasių sąrašą ir įrašykite į failą „Klasės.csv“ . * Norite, jog kiekviena rasė turėtų bent po vieną kiekvienos klasės herojų ir NPC. Raskite, kokių klasių herojų ar NPC „trūksta“ kiekvienai rasei. Į failą „Trūkstami.csv“ įrašykite kiekvienos rasės pavadinimą, trūkstamų herojų klasių sąrašą, trūkstamų NPC klasių sąrašą. * Sudarykite ir surikiuokite bendrą veikėjų rinktinę. Į šią rinktinę patenka herojai, jei jų intelekto reikšmė viršija nurodytą dydį. Į šią rinktinę patenka NPC, jei jų žalos taškai neviršija nurodyto dydžio. Herojus rikiuokite pagal intelektą, o NPC – pagal žalos taškus. Rezultatus įrašykite į failą „Rinktine.csv“. """ [[sections]] title = "Deklaratyvusis programavimas (L5)" problem = """ LDD_24. Leidėjai. Žmonės užsisako spaudą. Užsakymas vyksta metų ribose. Pirmoje failo eilutėje nurodyta įvedimo data (failų daug), o tolesnėse eilutėse nurodyta prenumeratoriaus pavardė, adresas, laikotarpio pradžia (nurodyta sveiku skaičiumi 1..12), laikotarpio ilgis, leidinio kodas, leidinių kiekis. Atskirame faile duota tokia informacija apie leidinius: kodas, pavadinimas, leidėjo pavadinimas, vieno mėnesio kaina. Suskaičiuoti kiekvienam leidėjui nurodyto mėnesio (įvedama klaviatūra) pajamas. Atspausdinkite leidėjų pajamas, surikiuotas pagal dydį ir leidėjų pavadinimus, nurodant ir leidėjų leidinius su jų atneštomis pajamomis. Leidėjų pavadinimai neturi kartotis. """