UniQuet0p1

Untitled

Jan 7th, 2021
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.10 KB | None | 0 0
  1. Ülesanded
  2. 01. sum_of_multiples (50p)
  3. Funktsioon tagastab antud kordaja (multiplier) korrutiste summa, kus korrutis(ed) peavad olema väiksemad antud arvust limit.
  4. Mõlemad arvud on positiivsed täisarvud. Oletame, et meil on antud piirarvuks 20 ja kordajaks 5, siis saadud korrutised 20-ni (mitte kaasa arvatud) oleks 5, 10 ja 15 ning nende summa annaks vastuseks 30.
  5. Kui piirarv on väiksem kui kordaja, on vastuseks 0.
  6.  
  7.  
  8.  
  9. 02. mix_string(50p)
  10. Funktsioon saab sisendiks kaks sõne ja tagastab nendest kahest sõnest uue sõne, kus antud sõnede sümbolid on vaheldumisi. Kui üks sõne saab otsa, siis lisatakse sümbolid teisest sõnest.
  11.  
  12.  
  13.  
  14. 03. bingo (50p)
  15. Funktsioonis tuleb kontrollida, kas mängija sai bingos mingi võitva kombinatsiooni. Esimene sisend on 5 x 5 maatriks (list listidest) ning teine sisend on list võidunumbritest. Kokku on kolm võidukombinatsiooni:
  16.  
  17. Kui kõik 4 nurka on võidunumbrite hulgas
  18. Kui kõik diagonaalid on võidunumbrite hulgas
  19. Kui kõik maatriksis olevad numbrid on võidunumbrite hulgas
  20. Tagastada on vaja kolme elemendiline ennik, kus on kombinatsioonide tõeväärtused (vt mallist).
  21.  
  22.  
  23.  
  24. 04. can_reach (50p)
  25. Funktsioon saab sisendiks listi, mis koosneb ainult mittenegatiivsetest täisarvudest, ning arvu, mis märgib ära listi sees oleva asukoha (index). Tuleb tagastada tõeväärtus (boolean), kas on võimalik hüpata mööda listi ning jõuda listis positsioonile, kus väärtus on 0. Hüpata võib listis edasi ja tagasi ruudu väärtuse võrra.
  26.  
  27.  
  28.  
  29. 05. prime_factorization (100p)
  30. Funktsioon saab sisendiks täisarvu ning peab selle arvu tagastama tema algtegurite korrutisena.
  31. Arvu algtegurid on kõik algarvud, mis on selle arvu tegurid.
  32. Tuleb tagastada sõnastik, kus võtmeteks on kõik algtegurid ning väärtusteks see, mis astmes see algtegur peab olema, et koos teiste algtegurite astmetega korrutades anda esialgne arv.
  33. Näiteks: 1960 = 23 * 51 * 72, seega tuleks tagastada sõnastik kujul
  34.  
  35. {
  36. 2: 3,
  37. 5: 1,
  38. 7: 2
  39. }
  40.  
  41.  
  42. 06. Candy shop (50p)
  43. Teie ülesandeks on realiseerida kommipood. Poes müüakse komme ning vahepeal on vaja saada ülevaade olemas olevatest kommidest teatud kujul, lisada või eemaldada komme poest.
  44.  
  45. Klass Candy
  46.  
  47. __init__(self, name: str, filling: str) - klassi konstruktor, mille sisendparameetriteks on kommi nimi ja täidis. Nimi ja täidis koosnevad väikestest ladina tähtedest ja numbritest.
  48. Klass CandyShop
  49.  
  50. __init__(self) - klassi konstruktor.
  51.  
  52. add_candies(self, candies: list) - meetod, mis lisab poodi kommid ehk kommide valik poes nö laieneb.
  53.  
  54. get_candies(self) - meetod, mis tagastab listi kõikidest kommidest poes.
  55.  
  56. get_candies_by_filling(self, filling: str) - meetod peab tagastama nimekirja nendest kommidest, mille täidis on sama nagu meetodi parameetris on ette antud. Täidise parameeter koosneb väikestest ladina tähtedest.
  57.  
  58. sort_candies_by_filling(self) - meetod peab tagastab kommide nimekirja järjestatuna täidise järgi (tähestiku järjekorras kasvavalt a-z). Kui täidis on sama, siis sorteerida nime järgi tähestiku järjekorras (kasvavalt a-z).
  59.  
  60. get_most_popular_candy_name_and_filling(self) - meetod tagastab sellise kommi nime ja täidise, millist leidub kõige rohkem poes. Sõnastik peab olema kujul {"name": kommi_nimi, "filling": kommi_täidis}. NB! Tuleb leida nime ja täidise kombinatsioon, mitte et leiad lihtsalt kõige populaarsema nime ja pärast eraldi kõige populaarsema täidise! Kui populaarseid kombinatsioone on mitu, tagastada ükskõik milline neist.
  61.  
  62. get_least_popular_candy_name_and_filling(self) - meetod tagastab sellise kommi nime ja täidise, millist leidub kõige vähem poes. Sõnastik peab olema kujul {"name": kommi_nimi, "filling": kommi_täidis}. NB! Tuleb leida nime ja täidise kombinatsioon, mitte et leiad lihtsalt kõige vähem populaarsema nime ja pärast eraldi kõige vähem populaarsema täidise! Kui selliseid vähe populaarseid kombinatsioone on mitu, tagastada ükskõik milline neist.
  63.  
  64. collect_candies_by_filling(self) - meetod tagastab sõnastiku kommidest sellisel kujul, et sõnastiku võtmeks on kommi täidis ja väärtuseks on selle täidisega kommide list {kommi_täidis: [komm1, komm2]}.
  65.  
  66.  
  67.  
  68.  
  69. 07. Class, Teacher, Student (150p)
  70. Ühes kauges maakoolis on õpetajad alati õpilaste hinded paberile kirjutanud ja teevad seda siiamaani. Paberimajandust on aga juba üpris palju tekkinud, seega otsustad sina uuendusmeelse õpetajana luua arvutiprogrammi, mis võimaldab hindeid sisestada, nende ajalugu näha ning genereerib kõigi klassi õpilaste hinnetelehe.
  71.  
  72. Grade
  73. Esiteks on vaja luua hinde objekt, et oleks võimalik sama töö kohta käivate hinnete kohta järge pidada. Arvesse läheb küll ainult viimane tulemus, kuid mõningatel juhtudel võib osutuda oluliseks ka hinnete ajaloo nägemine, seega tuleb märkida iga hinde juurde ka kuupäev. Hinnetel on kaal (weight), mis on vahemikus 1 - 3. 1 tähendab, et hindel on kõige väiksem kaal, ning 3, et kõige suurem. Nii võib näiteks öelda, et kolm hinnet "5" kaaluga 1 on sama, mis üks hinne "5" kaaluga 3. Hindeks võib olla ka "!", kuid seda ainult esmakordsel hinde määramisel. See on sisuliselt töö mittesooritamine/puudumine ning kui seda ei parandata, siis asendab seda hinne 1.
  74.  
  75. __init__() Konstruktor saab kaasa hinde, selle hinde kaalu, testi/ülesande nimetuse ja testi sooritamise kuupäeva. Konstruktoris luuakse esialgu tühi sõnastik, mille võtmeks on kuupäev ja väärtuseks on hinde number.
  76.  
  77. change_grade(self, new_grade: int, date: str) uuendab hinnet. See juhtub siis, kui õpilane läheb järeltööd tegema. Vana hinne koos kuupäevaga salvestatakse sõnastikku ning praegune hinne ja kuupäev kirjutatakse üle.
  78.  
  79. Student
  80. __init__() Konstruktor, mis saab kaasa õpilase nime. Konstruktoris luuakse ka sõnastik self.grades, kuhu hakatakse hindeid lisama.
  81.  
  82. grade() salvestab õpilase hinde sõnastikku. Sõnastiku võtmeteks on testi/ülesande nimetus ja väärtuseks hinde objekt.
  83.  
  84. redo_assignment(): salvestab uuesti tehtud töö hinde. Töö nime järgi saab leida vastava hinde ning selle väärtused üle kirjutada (sealjuures salvestades vanad väärtused).
  85.  
  86. calculate_weighted_average(): arvutab kaalutud keskhinde. Näiteks: kui üks hinne on 4 kaaluga 3 ja teine hinne 3 kaaluga 1, siis kaalutud keskhinne oleks: (4 * 3 + 3 * 1) / (3 + 1) = 15 / 4 = 3.75 mis ümardatakse tavalisi ümardamisreegleid kasutades 4-ks.
  87.  
  88. Class
  89. __init__() konstruktor, mis saab kaasa õpetaja nime ja õpilaste nimekirja (mis võib esialgu ka tühi olla).
  90.  
  91. add_student() võimaldab lisada ühe õpilase klassi.
  92.  
  93. add_students() võimaldab lisada mitu õpilast korraga klassi.
  94.  
  95. remove_student() eemaldab õpilase klassi nimekirjast. Eemaldatav õpilane on klassis olemas (seda ei pea eraldi kontrollima)
  96.  
  97. get_grade_sheet() loob hinnetelehe. Hinnetelehel on õpilaste nimed ja kaalutud keskhinded. Esimene tulp koosneb õpilaste nimedest ja teine kaalutud keskhinnetest. Tulpadel on pealkirjad "Name" ja "Final grade". Tabelil on äärised, mis koosnevad kas sümbolist "-" või "|". Nimed on joondatud vasakule ning hinded on tulba keskel. Tabeli loomisel tuleks arvesse võtta ka nimede pikkusi. Näited on toodud ülesande mallis.
Add Comment
Please, Sign In to add comment