Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät tekniset ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä, käytä yksittäisiä välirivejä erottamaan ohjelman teemoja toisistaan ja erota lauseiden osat toisistaan välilyönneillä. Vakioi muuttujia tarvittaessa. Hyvät ohjelmointitavat on vedetty yhteen luentorungon 4. luvussa. Torstaina pidettävissä mikroharjoituksissa saa apua tehtävien ongelmakohtiin. Mikroharjoituksissa autetaan myös n asennuksessa omalle kannettavalle tietokoneelle. Palauta vastauksesi WETOjärjestelmään viimeistään ensi viikon keskiviikkona.7. klo 2.. Syötteiden lukemiseen tarvittava In-luokka löytyy kurssin kotisivuilta Koodit-kohdasta. WETO tarkistaa ratkaisuja automaattisesti. Lisätietoja: https://coursepages.uta.fi/tiep/kesa- 28/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. -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-27/ohjelmointivalineita/java-jdk/. Ota yhteyttä Kariin tai Kimmoon, jos ei suostu asentumaan koneellesi.. Osoitteessa: https://coursepages.uta.fi/tiep/kesa-28/harjoitukset/tehtavat/ on annettu sisentämätön QuadraticEquationSolver-ohjelma. Sisennä ohjelma. Huomaa, että sisennyksen voi tehdä mekaanisesti sisennysääntöjä noudattamalla täysin oikein, vaikka ohjelman logiikkaa ei ymmärtäisi. Kerro kommenteissa mitä sisennystyyliä käytät ja anna viite (esimerkiksi verkko-osoite) dokumenttiin, jossa tyylisi on määritelty, jos käytät sisentämiseen tyyliä, joka poikkeaa selvästi kurssilla opetetusta tyylistä. Palauta WETOon sisennetty ohjelma QuadraticEquationSolver.java-tiedostossa. 2. Osoitteessa: https://coursepages.uta.fi/tiep/kesa-28/harjoitukset/tehtavat/ on annettu OddCounter-ohjelma, jossa on sekä kielioppivirheitä että pieniä loogisia virheitä. Kerro kommenteissa mistä virheistä oli kyse ja kuinka korjasit virheet. Lisää ohjelman yleisiin kommentteihin omat tietosi. Kommentit voi kirjoittaa suomeksi. Muista ajaa ja testata ohjelmaa, jotta löydät varmasti kaikki loogiset virheet. Palauta WETOon korjattu ohjelma OddCounter.java-tiedostossa. Muista, että ehto-operaattori on yhteenlaskua heikompi ja että lausekkeen oletuslaskujärjestystä voi muuttaa koulusta opitulla tavalla kaarisulkeilla. Esimerkki ohjelman toiminnasta: Hello! I count odd integers. The number must be at least one! - The number must be at least one! 42 5 Found 2 odd integers. Lausekielinen ohjelmointi I Kesä 28 Avoin yliopisto / 5
. Lausekielinen ohjelmointi I -kurssin arvosana määräytyy tenttipisteiden ( 24 kpl) ja tenttipisteisiin lisättävien hyvityspisteiden ( kpl) summan perusteella seuraavasti: 2 4 pistettä (välttävä), 5 7 pistettä 2 (tyydyttävä), 8 2 pistettä (hyvä), 2 tai 22 pistettä 4 (kiitettävä) ja vähintään 2 pistettä 5 (erinomainen). Hyvityspisteet huomioidaan vasta, kun opiskelija on suorittanut tentin hyväksyttävästi eli saanut tentistä vähintään 2 pistettä. Kirjoita Grader-niminen -ohjelma, joka lukee käyttäjältä tenttipisteiden ja hyvityspisteiden lukumäärät sekä laskee ja tulostaa pisteiden summaa vastaavan arvosanan. Ohjelma tulostaa virheilmoituksen "I cannot give a grade.", jos tenttipisteet eivät ole välillä 2 24 tai hyvityspisteet eivät ole välillä. Hyvityspisteet kysytään, vaikka tenttipisteet olisivat epäkelvot. Esimerkki ohjelman toiminnasta, kun syötteet ovat 22 ja : 22 Your grade is 5. Esimerkki ohjelman toiminnasta, kun syötteet ovat 5 ja : 5 Your grade is. Esimerkki ohjelman toiminnasta, kun syötteet ovat ja : I cannot give a grade. 4. Tee lla StringComparator-ohjelma, joka lukee käyttäjältä kaksi merkkijonoa ja kertoo alla annettujen esimerkkien mukaisesti ovatko ne samat vai erilaiset, kunnes käyttäjä antaa molemmiksi syötteiksi merkkijonon "stop". Vertaile merkkijonoja String-luokan equals-operaatiolla. Lausekielinen ohjelmointi I Kesä 28 Avoin yliopisto 2 / 5
Esimerkki ohjelman toiminnasta, kun syöteparit ovat "abba" ja "abba", "Aargh!" ja "aargh!", "cat" ja "dog" sekä "stop" ja "stop": Hello! I compare strings. abba abba "abba" is equal to "abba". Aargh! aargh! "Aargh!" is different from "aargh!". cat dog "cat" is different from "dog". stop stop 5. Kirjoita lla StringLengthComparator-ohjelma merkkijonojen pituuksien vertailuun. Ohjelma lukee käyttäjältä kaksi merkkijonoa ja kertoo alla olevien esimerkkien mukaisesti onko ensimmäinen merkkijono lyhempi kuin toinen merkkijono, ovatko merkkijonot samanpituiset tai onko ensimmäinen merkkijono pitempi kuin toinen merkkijono. Esimerkki ohjelman toiminnasta, kun syötteet ovat "summer" ja "you think": summer you think "summer" is shorter than "you think". Esimerkki ohjelman toiminnasta, kun syötteet ovat "pain" ja "life": pain life "pain" is as long as "life". Lausekielinen ohjelmointi I Kesä 28 Avoin yliopisto / 5
Esimerkki ohjelman toiminnasta, kun syötteet ovat "metre" ja "yard": metre yard "metre" is longer than "yard". 6. Kirjoita CharacterComparator-ohjelma, joka lukee merkkijonon ja kaksi indeksiarvoa ja tutkii ovatko annetuissa paikoissa olevat merkit samat. Pienet ja suuret kirjaimet katsotaan eri merkeiksi. Ohjelma tulostaa virheilmoituksen, jos jompikumpi tai molemmat indeksiarvot ovat virheelliset. Laillinen indeksiarvo on välillä [, n - ], missä n on merkkijonon pituus. Esimerkki ohjelman toiminnasta, kun syötteet ovat "", ja : 'a' is equal to 'a'. Esimerkki ohjelman toiminnasta, kun syötteet ovat "", ja : 'a' is different from 'J'. Esimerkki ohjelman toiminnasta, kun syötteet ovat "", ja 4: 4 Error! Lausekielinen ohjelmointi I Kesä 28 Avoin yliopisto 4 / 5
7. Kirjoita lla Zorro-ohjelma, joka tulostaa alla olevien esimerkkien mukaisen kuvion. Ohjelma lukee käyttäjältä tulostuksessa käytettävän merkin ja kuvion koon (kuvion rivien ja sarakkeiden lukumäärä). Ohjelma piirtää kuvion annettua merkkiä ja välilyöntejä käyttäen, jos koko on vähintään kolme. Ohjelma tulostaa "No comprendo.", jos koko on virheellinen. Vinkki: Sisäkkäiset silmukat. mukaisesti. Kuvion keskellä olevien rivien alkuun tulostetaan poikkeuksellisesti välilyöntejä. Rivien loppuun ei tulosteta välilyöntejä: jokainen rivi loppuu viimeiseen näkyvään merkkiin. Alla olevissa esimerkeissä tulostetut välilyönnit on korostettu keltaisella. Kaikki Esimerkki ohjelman toiminnasta, kun syötteet ovat tähtimerkki ja : * *** _* *** Esimerkki ohjelman toiminnasta, kun syötteet ovat pieni o-kirjain ja 4: o 4 oooo o _o oooo Esimerkki ohjelman toiminnasta, kun syötteet ovat pieni x-kirjain ja 5: x 5 xxxxx x x _x xxxxx Esimerkki ohjelman toiminnasta, kun syötteet ovat suuri z-kirjain ja : Z No comprendo. Lausekielinen ohjelmointi I Kesä 28 Avoin yliopisto 5 / 5