ITI0011-2016:harjutus 19

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti

Üldine

Kaitsmised: kuni 20. mai
Kaust gitis: EX19

Põhiosa

"Schröndingeri Koer"

Sinu ülesandeks on kirjutada programm, mis etteantud lausest moodustab sõnede massiivi ja suudab neist tuvastada, kas sõne sisaldab Schröndingeri koera. Koer on elus, kui ta algab suure algustähega ("Koer"), ja surnud, kui ta algab väikese algustähega ("koer"). Programm kuvab elusate ja surnud koerte arvu massiivina, kus on toodud ära eluskoerte arv ja surnud koerte arv. Arv näitab, mitmes sõnas vastav koer leidub.

Näide:

String test = "Koeratoit toidukoeratäpp toidukoor kalamaja TäpikKoer koe"
testDog(test) => [2, 1]
testDog("koerkoerkoer") => [0, 1]

Lisaosa (0.5p)

Etteantud sõnes pöörata sõnad tagurpidi nende järjekorda muutmata. Lisaks jälgida, et iga sõna pööramisel jäävad tõstu indeksid muutumatuks (kui mingil positsioonil oli suurtäht, siis pärast sõna pööramist on samas positsioonis suurtäht). Mitte-tähtede korral jääb tõst samaks (sümboleid ei muudeta, sümbol ise ei muuda ka tähte). Veel tuleb sõnes tühikute arv igal pool jätta samaks.

Näide:

reverse("tere") => "eret"
reverse("a  b") => "a  b"
reverse("Tere") => "Eret"
reverse("Tere!") => "!ereT" 
   1. pos on suurtäht (! puhul seda ei rakendata), 
   2.-4. on väiketähed, samamoodi ka väljundis
   viimane on "!", väljundis midagi ei muudeta
reverse("tere!") => "!eret" (sama, viimasel positsioonil midagi ei muudeta)
reverse("TTere!") => "!EretT" 
    esimesed kaks sümbolit peaksid tulemuses olema suured tähed
        sümboleid ei muudeta 
        'E' muutub suureks
    eelviimane sümbol on väiketäht, seepärast muudetakse 't' väikseks
    viimasel kohal olev 'T' jääb samaks kuna algselt on seal positsioonil sümbol (mis ei muuda tähe suurust)).