Harjoitus 5 (viikko 41)

Samankaltaiset tiedostot
Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5

Harjoitus 5 (viikko 41)

Harjoitus 6 (viikko 42)

Harjoitus 6. Käytä String-luokasta vain charat- ja length-operaatioita.

Harjoitus 2 (viikko 45)

Harjoitus 6 (viikko 42)

Harjoitus 3 (viikko 39)

Harjoitus 1 (viikko 44)

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Harjoitus 5 (viikko 48)

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Harjoitus 4 (viikko 47)

Harjoitus 5 (viikko 40)

Toinen harjoitustyö. ASCII-grafiikkaa 2017

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

5. HelloWorld-ohjelma 5.1

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

14. Hyvä ohjelmointitapa 14.1

5. HelloWorld-ohjelma 5.1

13. Hyvä ohjelmointitapa (osa 1) 13.1

Toinen harjoitustyö. ASCII-grafiikkaa

ITKP102 Ohjelmointi 1 (6 op)

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

2. Merkkijono, osamerkkijono ja osamerkkijonon haku

Harjoitustyö Johdanto

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Kurssiesite Lausekielinen ohjelmointi II Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tentti kestää kolme tuntia. Tehdään sähköisesti mikroluokkien Windows-koneilla.

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tentti kestää kolme tuntia.

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.

ITKP102 Ohjelmointi 1 (6 op)

Kurssiesite Lausekielinen ohjelmointi I Kesä Jorma Laurikkala Tietojenkäsittelytieteet Luonnontieteiden tiedekunta Tampereen yliopisto

4. Lausekielinen ohjelmointi 4.1

Hakemistojen sisällöt säilötään linkitetyille listalle.

ITKP102 Ohjelmointi 1 (6 op)

Java-kielen perusteet

Kurssiesite Lausekielinen ohjelmointi Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Harjoitustyö Johdanto Tehtävä

Ohjelmoinnin perusteet Y Python

Ohjelmointi 1 C#, kevät 2014, 2. uusintatentti NIMI:

Harjoitustyö Johdanto

ASCII-taidetta. Intro: Python

Python-ohjelmointi Harjoitus 5

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet (TIEA2.1) Kevät Olio-ohjelmoinnin perusteet (eli Oope) Laajuus

Kurssiesite Olio-ohjelmoinnin perusteet (TIEA2.1) Kevät 2018

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet, syksy 2006

Python-ohjelmointi Harjoitus 2

Java-kielen perusteet

Ohjelmoinnin perusteet Y Python

Harjoitustyö Johdanto Tehtävä

Vastuuopettaja. Kurssiesite Lausekielinen ohjelmointi I Syksy Lausekielinen ohjelmointi I (5 op) Lausekielinen ohjelmointi I (5 op)

Kurssiesite Lausekielinen ohjelmointi I Syksy Jorma Laurikkala Tietojenkäsittelytieteet Luonnontieteiden tiedekunta Tampereen yliopisto

Vastuuopettaja. Kurssiesite Lausekielinen ohjelmointi I Syksy Lausekielinen ohjelmointi I (5 op) Lausekielinen ohjelmointi I (5 op)

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Ohjelmoinnin perusteet Y Python

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Ohjelmoinnin peruskurssi Y1

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Harjoitustyö Johdanto. 2. Euroseteli

1. Omat operaatiot 1.1

S: siirtää listan ensimmäisen luvun viimeiseksi V: vaihtaa keskenään listan kaksi ensimmäistä lukua

Java-kielen perusteita

Ohjelmointi 1 C#, kevät 2013,

11. Javan toistorakenteet 11.1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Kurssiesite Olio-ohjelmoinnin perusteet Kevät Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Ohjelmointi 1 C#, kevät 2013, 2. tentti

Kurssiesite Lausekielinen ohjelmointi I Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

4. Luokan testaus ja käyttö olion kautta 4.1

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät Olio-ohjelmoinnin perusteet (5 op) Tavoitteena

Vastuuopettaja. Kurssiesite Lausekielinen ohjelmointi Syksy Tavoitteet ja keinot. Lausekielinen ohjelmointi (10 op)

Ohjelmoinnin peruskurssi Y1

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät Olio-ohjelmoinnin perusteet (TIEA2.1)

Kurssiesite Olio-ohjelmoinnin perusteet Kevät Jorma Laurikkala Tietojenkäsittelytieteet Luonnontieteiden tiedekunta Tampereen yliopisto

Ohjelmointi 1 C#, kevät 2014, tentti

Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet:

Ohjelmoinnin peruskurssi Y1

Kääntäjän virheilmoituksia

Sisältö. 2. Taulukot. Yleistä. Yleistä

Ohjelmoinnin perusteet Y Python

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Vastuuopettaja. Kurssiesite Lausekielinen ohjelmointi I Syksy Lausekielinen ohjelmointi I (5 op) Lausekielinen ohjelmointi I (5 op)

Kurssiesite Lausekielinen ohjelmointi I Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Johdatus Ohjelmointiin

Sisältö. 22. Taulukot. Yleistä. Yleistä

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla:

8. Näppäimistöltä lukeminen 8.1

7.4 Sormenjälkitekniikka

811120P Diskreetit rakenteet

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3

Transkriptio:

Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (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. WETOon (https://wetodev.sis.uta.fi/weto5/) palautetaan vain ratkaisun lähdekoodi eli java-päätteinen tiedosto. In-luokkaa (katso alla) ei tarvitse eikä tule palauttaa. Ensi viikolla pidettävissä mikroharjoituksissa saa apua ongelmakohtiin. Keskiviikon klo 2 4 - ryhmässä avustetaan hieman enemmän kuin muissa ryhmissä. Palauta vastauksesi WETO-järjestelmään viimeistään ensi viikon torstaina 2.. klo 2. (keskipäivä). WETO tarkistaa lähdekoodia automaattisesti. Lisätietoja: https://coursepages.uta.fi/tiep/syksy- 27/harjoitukset/ratkaisujen-tarkistus/#automaattinen_tarkistus. Syötteiden lukemiseen tarvittava In-luokka löytyy kurssin kotisivuilta Koodit-kohdasta. -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ä kurssin vastuuopettajaan, jos ei suostu asentumaan koneellesi.. Osoitteessa: http://www.sis.uta.fi/~laki/harjoitukset/harjoitus5/ on annettu sisentämätön QuadraticEquationSolver-ohjelma. Sisennä ohjelma. 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ä. Ohjelma on englanninkielinen, koska kurssilla on ulkomaalaisia opiskelijoita. Palauta WETOon sisennetty ohjelma QuadraticEquationSolver.java-tiedostossa. 2. Osoitteessa: http://www.sis.uta.fi/~laki/harjoitukset/harjoitus5/ on annettu OddCounter-ohjelma, jossa on sekä kielioppivirheitä että pieniä loogisia virheitä. Muista ajaa ja testata ohjelmaa, jotta löydät varmasti kaikki loogiset virheet. Kerro kommenteissa mistä virheistä oli kyse ja kuinka korjasit virheet. Lisää ohjelman yleisiin kommentteihin omat tietosi. Kommentit voi kirjoittaa suomeksi. Ohjelma on englanninkielinen, koska kurssilla on ulkomaalaisia opiskelijoita. Palauta WETOon korjattu ohjelma OddCounter.java-tiedostossa. Muista, että ehto-operaattori on yhteenlaskua heikompi ja että lausekkeen oletuslaskujärjestystä voi muuttaa koulusta opitulla tavalla sulkeilla. 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 Syksy 27 Jorma Laurikkala / 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 Syksy 27 Jorma Laurikkala 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 Syksy 27 Jorma Laurikkala / 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 Syksy 27 Jorma Laurikkala 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 Syksy 27 Jorma Laurikkala 5 / 5