Nämä tehtävät on trkoitettu inostn opiskelijoille, jotk pystyvät svuttmn 40 % rjn (21 pistettä) tekemällä 1 8 kpl ll olevist lisätehtävistä. Ole huolellinen j tee kikki pyydetty. Puutteellisi rtkisuj ei hyväksytä. Hylätyn rtkisun voi korjt pääsääntöisesti kerrn. Plut vstuksesi WETOjärjestelmään viimeistään keskiviikkon 25.7.2018 klo 20.00. Tehtävät trkistetn WETOss utomttisesti. Vrmist, että ohjelmsi toimii esimerkkien mukisesti. Huom, että rivien lkuun ti loppuun ei tulostet välilyöntejä j että kikki tulostettvt rivit viimeinen rivi mukn lukien päätetään rivinvihtoon. 1. Vuonn 2017 miesten keskiikä oli 41,3 vuott j nisten keskiikä 44,0 vuott. Lähde: https://www.tilstokeskus.fi/tup/suoluk/suoluk_vesto.html. Tee AgeTesterniminen Jvohjelm, jok päättelee käyttäjän sukupuolen j iän perusteell onko käyttäjän ikä lle keskiiän (miehet: ikä < 41,3 vuott j niset: ikä < 44,0 vuott) vi ei. Ohjelm lukee molemmt tiedot (chr j double) käyttäjältä j tulost tuloksen näytölle ll nnettujen esimerkkien mukisesti. Tulokset kerrotn miehille j nisille smll tvll. Voit olett, että käyttäjä nt in iäkseen vähintään noll vuott j voi vlit vihtoehtojen ꞌmꞌ j ꞌfꞌ välillä. Esimerkki ohjelmn toiminnst, kun syötteet ovt ꞌfꞌ j 47: Hello! I test you. Are you (m)n or (f)emle? f How old re you? 47 There is still no cure for the common birthdy. Esimerkki ohjelmn toiminnst, kun syötteet ovt ꞌmꞌ j 41.2: Hello! I test you. Are you (m)n or (f)emle? m How old re you? 41.2 Tody is the oldest you hve ever been. 2. Tee Thunderniminen Jvohjelm slmn etäisyyden lskemiseen. Etäisyys kilometreinä sdn selville kotikonstein lskemll sekunnit slmn välähdyksestä slmn ääneen kuulumiseen j jkmll sekuntimäärä kolmell. Jos sekuntej kuluu esimerkiksi 5, on ukkonen noin 5 / 3 1,7 kilometrin etäisyydellä. Lue sekuntien määrä kokonislukun (int). Voit olett, että käyttäjä nt in syötteeksi noll suuremmn kokonisluvun. Tulost etäisyys yhden desimlin trkkuudell System.out.printfopertion vull. Esimerkki: // Tulostetn liukulukutyyppinen muuttuj riviä vihtmtt // yhden desimlin trkkuudell. System.out.printf("%.1f", etisyys); Esimerkki ohjelmn toiminnst, kun syöte on luku yksi: Hello! I estimte the distnce of lightning. Plese, enter the time between the flsh nd the thunderclp: 1 Distnce is 0.3 km. Lusekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5
3. Kirjoit Jvll Roseniminen ohjelm, jok vrioi käyttäjältä lukemns kokonisluvun vull lusett "A rose is rose is rose." siten, että luvull 1 tulostetn "A rose is rose.", luvull 2 tulostetn "A rose is rose is rose.", luvull 3 tulostetn "A rose is rose is rose is rose." j niin edelleen. Ohjelm tulost virheilmoituksen, jos syöte on pienempi ti yhtä suuri kuin noll. Esimerkki ohjelmn toiminnst, kun syöte on luku yksi: 1 A rose is rose. Esimerkki ohjelmn toiminnst, kun syöte on luku kksi: 2 A rose is rose is rose. Esimerkki ohjelmn toiminnst, kun syöte on luku noll: 0 Error! 4. Tee Jvll juustoj luokittelev CheesyClssifierohjelm. Ohjelm kysyy käyttäjältä montko kokonist kuukutt (int) juusto on kypsynyt j tulost kypsymisik vstvn värin. Tuloste on "blue", jos kypsymisik on 1 3 kuukutt. Ohjelm tulost "red", jos kypsymisik on 4 6 kuukutt. Kun kypsymisik on 7 9 kuukutt, tulostetn "blck". Syötteitä luetn j juustoj leimtn, kunnes käyttäjä nt syötteeksi luvun, jok on pienempi kuin yksi ti suurempi kuin yhdeksän. Esimerkki ohjelmn toiminnst: Hello! I sy something cheesy. 5 red 3 blue 0 Bye, bye! Toinen esimerkki ohjelmn toiminnst: Hello! I sy something cheesy. 10 Bye, bye! Lusekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 2 / 5
5. Kirjoit Jvll SfeWordsohjelm, jok lukee käyttäjältä snoj yksi kerrlln, kunnes käyttäjä nt välittömästi peräkkäin snt "it", "is" j "over". Näin ohjelm ei pysähdy esimerkiksi snoill "it", "is", "not" j "over", kosk snojen "is" j "over" välissä on syöte "not". Smoin syötteillä "is", "it" j "over" jtketn syötteiden lukemist, kosk snojen järjestys on väärä. Muist käyttää Stringluokn equlsopertiot merkkijonojen vertiluun. Älä käytä tulukoit ti Jvn tietorkenneluokki (esimerkiksi ArryList). Esimerkki ohjelmn toiminnst: Hello! I wit for you to sy the words. mommy it is over 6. Kirjoit Jvll StringBrekerohjelm, jok lukee käyttäjältä yhdellä välilyönnillä toisistn erotetuist snoist koostuvn merkkijonon, erott snt toisistn j tulost snt llekkin ilmn välilyöntejä. Voit olett, että käyttäjä nt in vähintään yhdestä snst koostuvn merkkijonon. Voit lisäksi olett, että merkkijonon luss ti lopuss ei ole välilyöntejä j että snojen välissä on in yksi välilyönti. Käytä Stringluokst vin chrat j lengthopertioit. Älä käytä tulukoit ti Jvn tietorkenneluokki (esimerkiksi ArryList). Esimerkki ohjelmn toiminnst, kun syöte on "single": Hello! I brek strings. single single Esimerkki ohjelmn toiminnst, kun syöte on "Swim Until You Cnꞌt See Lnd": Hello! I brek strings. Swim Until You Cnꞌt See Lnd Swim Until You Cnꞌt See Lnd Lusekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 3 / 5
7. Kirjoit Jvll FromTheEndohjelm, jok lukee käyttäjältä merkkijonon j kksi merkkiä j tutkii kumpi merkeistä esiintyy lähempänä merkkijonon loppu. Smojen merkkien ktsotn olevn smll etäisyydellä lopust. Ohjelm ilmoitt päättelynsä tuloksen käyttäjälle. Ohjelm kertoo käyttäjälle myös tilnteist, joiss vin jompikumpi merkeistä on merkkijonoss ti kumpikn merkki ei ole merkkijonoss. Edellisessä tilnteess merkkijonoss olevn merkin ktsotn olevn lähempänä loppu. Jälkimmäinen tilnne ktsotn virheeksi. Käytä Stringluokst vin chrat j lengthopertioit. Älä käytä tulukoit ti Jvn tietorkenneluokki (esimerkiksi ArryList). Esimerkki ohjelmn toiminnst, kun syötteet ovt "", ꞌꞌ j ꞌbꞌ: b ꞌꞌ is closer to the end. Esimerkki ohjelmn toiminnst, kun syötteet ovt "", ꞌꞌ j ꞌꞌ: The chrcters re equidistnt from the end. Esimerkki ohjelmn toiminnst, kun syötteet ovt "", ꞌbꞌ j ꞌcꞌ: b c ꞌbꞌ is closer to the end. Esimerkki ohjelmn toiminnst, kun syötteet ovt "", ꞌcꞌ j ꞌdꞌ: c d Cnnot compute! Lusekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 4 / 5
8. Oletetn, että olln kiinnostuneit merkkijonoist, joiss on tietty merkki x, jot välittömästi edeltävä j seurv merkki ovt smn merkin ilmentymiä. Jos x on esimerkiksi väliviiv (ꞌꞌ), olisivt esimerkiksi merkkijonot "" j "bbbc" kiinnostvi merkkijonoj. Toislt esimerkiksi merkkijonot "", "b" j "1234X" olisivt epäkiinnostvi. Kirjoit Jvll RelevntToMyInterestsohjelm, jok lukee käyttäjältä merkkijonon, päättelee onko merkkijono kiinnostv vi epäkiinnostv j tulost johtopäätöksen näytölle. Ohjelm tulost virheilmoituksen, jos merkkijonoss on vähemmän kuin kolme merkkiä. Esimerkki ohjelmn toiminnst, kun syötteet ovt "" j ꞌꞌ: I m interested. Esimerkki ohjelmn toiminnst, kun syötteet ovt "b" j ꞌꞌ: b I m not interested. Esimerkki ohjelmn toiminnst, kun syötteet ovt "" j ꞌꞌ: I m not interested. Esimerkki ohjelmn toiminnst, kun syötteet ovt "b" j ꞌꞌ: b Error! Lusekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 5 / 5