Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Torstaina pidettävissä mikroharjoituksissa saa apua tehtävien ongelmakohtiin. Mikroharjoituksissa autetaan myös Javan asennuksessa omalle kannettavalle tietokoneelle. Palauta vastauksesi WETOjärjestelmään viimeistään ensi viikon keskiviikkona 27.6. klo 20.00. Syötteiden lukemiseen tarvittava In-luokka löytyy kurssin kotisivuilta Koodit-kohdasta. WETO tarkistaa ratkaisuja automaattisesti. Lisätietoja: https://coursepages.uta.fi/tiep/kesa- 208/harjoitukset/ratkaisujen-tarkistus/#automaattinen_tarkistus. Ota yhteyttä Kariin tai Kimmoon, jos et keksi miksi WETO hylkää vastauksesi. Lähetä postia Jormalle, jos havaitset WETOn testeissä virheen. Java-kääntäjä ja -tulkki löytyvät yliopiston mikroluokkien koneilta. Nämä ohjelmat voi asentaa myös omalle koneelle. Lisätietoja: https://coursepages.uta.fi/tiep/syksy-207/ohjelmointivalineita/java-jdk/. Ota yhteyttä Kariin tai Kimmoon, jos Java ei suostu asentumaan koneellesi.. Kirjoita Javalla Arithmetic-niminen ohjelma, jossa testaat aritmeettiset operaatiot +, -, *, / ja %. Esittele int-tyyppiset muuttujat ekaluku ja tokaluku ja lue muuttujille kokonaislukuarvot käyttäjältä. Sijoita kunkin operaation tulos omaan tulosmuuttujaansa, jotka ovat jako-operaation tulosmuuttujaa lukuun ottamatta int-tyyppisiä. Osamäärä sijoitetaan double-tyyppiseen muuttujaan. Huomaa, että tarvitset tyyppimuunnoksen, jotta Java ei hävitä desimaaleja jakolausekkeessa ekaluku / tokaluku. Tulosta lopuksi tulosmuuttujien arvot näytölle. Tulosta osamäärä kahden desimaalin tarkkuudella System.out.printf-operaatiota käyttäen esimerkiksi näin: System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara); Esimerkki ohjelman toiminnasta, kun syötteet ovat 7 ja 4: Hello! I do some basic arithmetic. Please, enter the first integer: 7 Please, enter the second integer: 4 7 + 4 = 7-4 = 3 7 * 4 = 28 7 / 4 =.75 7 % 4 = 3 Esimerkki ohjelman toiminnasta, kun syötteet ovat 2 ja : Hello! I do some basic arithmetic. Please, enter the first integer: 2 Please, enter the second integer: 2 + = 3 2 - = 2 * = 2 2 / = 2.00 2 % = 0 Lausekielinen ohjelmointi I Kesä 208 Avoin yliopisto / 6
2. Tee Javalla Glass-niminen ohjelma, joka tiedustelee onko käyttäjä optimisti vai pessimisti ja tulostaa vastauksen mukaan if-else-lausetta käyttäen joko "The glass is half full." tai "The glass is half empty." Voit olettaa, että käyttäjän syöte on aina joko pieni o- tai p- kirjain. Esimerkki ohjelman toiminnasta, kun syöte on 'o': Hello! I tell about glasses. Are you an (o)ptimist or a (p)essimist? o The glass is half full. Esimerkki ohjelman toiminnasta, kun syöte on 'p': Hello! I tell about glasses. Are you an (o)ptimist or a (p)essimist? p The glass is half empty. 3. Liuoksen happamuutta mitataan ph-arvolla. Jos ph on alle 7, sanotaan liuoksen olevan hapan. Jos ph on yli 7, on liuos emäksinen. Liuosta, jonka ph on 7, sanotaan neutraaliksi. Kirjoita Javalla PHScale-niminen ohjelma, joka tulostaa lukee käyttäjältä ph-arvon liukulukuna ja tulostaa saamansa arvon mukaan joko "Solution is acid.", "Solution is neutral." tai "Solution is alkaline." Esimerkki ohjelman toiminnasta, kun syöte on 6.5: Hello! I classify solutions using the ph scale. Enter a ph value: 6.5 Solution is acid. Esimerkki ohjelman toiminnasta, kun syöte on 7: Hello! I classify solutions using the ph scale. Enter a ph value: 7 Solution is neutral. Esimerkki ohjelman toiminnasta, kun syöte on 7.: Hello! I classify solutions using the ph scale. Enter a ph value: 7. Solution is alkaline. Lausekielinen ohjelmointi I Kesä 208 Avoin yliopisto 2 / 6
4. Tee Javalla Seasons-niminen ohjelma, joka tiedustelee käyttäjältä tämän suosikkivuodenajan ja tulostaa if-else-lauseiden avulla alla annettujen esimerkkien mukaisesti. Esimerkki ohjelman toiminnasta, kun syöte on : Your favourite season of the year is winter. Esimerkki ohjelman toiminnasta, kun syöte on 2: 2 Your favourite season of the year is spring. Esimerkki ohjelman toiminnasta, kun syöte on 3: 3 Your favourite season of the year is summer. Esimerkki ohjelman toiminnasta, kun syöte on 4: 4 Your favourite season of the year is autumn. Esimerkki ohjelman toiminnasta, kun syöte on virheellinen eli välille 4 kuulumaton kokonaisluku: 0 Your favourite season of the year is unknown. 5. Ratkaise 4. tehtävä switch-case-lauseen avulla. Anna ohjelman nimeksi Seasons2. Lausekielinen ohjelmointi I Kesä 208 Avoin yliopisto 3 / 6
6. Tee Javalla Divisibility-niminen ohjelma, joka lukee käyttäjältä kaksi int-tyyppistä kokonaislukua x ja y ja päättelee onko ensimmäinen luku jaollinen toisella luvulla. Ohjelma tulostaa viestin "x is divisible by y.", jos jako menee tasan. Tuloste on "x is not divisible by y.", jos jako ei mene tasan. Jos esimerkiksi x = 2 ja y = 3, ohjelma tulostaa "2 is divisible by 3." Nollaan liittyy erikoistapauksia. Jakolaskun tulos on määrittelemätön, kun y = 0. Ohjelma ilmaisee tämän tulostamalla virheilmoituksen "Error!". Jako menee tasan, kun x = 0 ja y 0. Tuloste on "Error!", jos x = 0 ja y = 0. Modulo-operaattorista (%) on hyötyä ongelman ratkaisussa. Esimerkki ohjelman toiminnasta, kun syötteet ovat 2 ja 3: 2 3 2 is divisible by 3. Esimerkki ohjelman toiminnasta, kun syötteet ovat 7 ja 4: 7 4 7 is not divisible by 4. Esimerkki ohjelman toiminnasta, kun syötteet ovat ja 0: 0 Error! Esimerkki ohjelman toiminnasta, kun syötteet ovat 0 ja : 0 0 is divisible by. Lausekielinen ohjelmointi I Kesä 208 Avoin yliopisto 4 / 6
7. Toteuta liitteessä vuokaaviona esitetty algoritmi Java-kielellä. Anna ohjelman nimeksi MultiplicationTable. Esimerkki ohjelman toiminnasta, kun syöte on 5: Hello! I print a multiplication table. Please, enter an integer: 5 x 5 = 5 2 x 5 = 0 3 x 5 = 5 4 x 5 = 20 5 x 5 = 25 6 x 5 = 30 7 x 5 = 35 8 x 5 = 40 9 x 5 = 45 0 x 5 = 50 8. Kirjoita Javalla ohjelma, joka tulostaa ASCII-kalan ">}}}`>" ja kalan perään kuplia, joiden lukumäärä luetaan käyttäjältä In-luokan avulla. Kuplat tulostetaan valitsemalla kunkin kuplan kohdalla satunnaisesti tulostusmerkiksi joko pieni o-kirjain, suuri o-kirjain tai nolla. Jos kuplia halutaan esimerkiksi 0 kappaletta, niin näytölle voisi tulostua merkkijono "0ooOo0ooOo>}}}`>". Ohjelma tulostaa pelkän kalan ">}}}`>", kun käyttäjä antaa kuplien määräksi nollan tai sitä pienemmän arvon. Kuplien lukumäärän ylärajaa ei ole rajoitettu. Voit arpoa kokonaisluvun väliltä [0, YLARAJA] esimerkiksi näin: // Math.random-operaatio tuottaa satunnaisen liukuluvun väliltä [0, [. // Satunnainen kokonaisluku saadaan aikaiseksi kertomalla arvottu // liukuluku sopivasti ja poistamalla desimaalit tyyppimuunnoksella. int arvottu = (int)((ylaraja + ) * Math.random()); Lausekielinen ohjelmointi I Kesä 208 Avoin yliopisto 5 / 6
Liite : Vuokaaviona esitetty algoritmi kertotaulun tulostamiseen. Oletetaan syötteeksi kokonaisluku. Alku tulosta("hello! I print a multiplication table.") tulosta("please, enter an integer:") luku lue() kerroin tulo kerroin luku tulosta(kerroin + " x " + luku + " = " + tulo) kerroin kerroin + kerroin 0 kyllä ei Loppu Lausekielinen ohjelmointi I Kesä 208 Avoin yliopisto 6 / 6