Harjoitus 6 (viikko 42)

Samankaltaiset tiedostot
Harjoitus 6 (viikko 42)

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

Harjoitus 5 (viikko 41)

Harjoitus 5 (viikko 41)

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

Harjoitus 2 (viikko 45)

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

Harjoitus 5 (viikko 48)

Harjoitus 3 (viikko 39)

Harjoitus 4 (viikko 47)

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

Harjoitus 1 (viikko 44)

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

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

Toinen harjoitustyö. ASCII-grafiikkaa 2017

14. Hyvä ohjelmointitapa 14.1

13. Hyvä ohjelmointitapa (osa 1) 13.1

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

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

Toinen harjoitustyö. ASCII-grafiikkaa

2. Merkkijono, osamerkkijono ja osamerkkijonon haku

Harjoitustyö Johdanto

5. HelloWorld-ohjelma 5.1

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

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

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin perusteet Y Python

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

Harjoitus 5 (viikko 40)

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

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

ITKP102 Ohjelmointi 1 (6 op)

Harjoitustyö Johdanto

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

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

5. HelloWorld-ohjelma 5.1

Ohjelmoinnin peruskurssi Y1

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

Ohjelmoinnin peruskurssi Y1

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

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

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

Ohjelmoinnin peruskurssi Y1

Harjoitustyö Johdanto Tehtävä

Harjoitustyö Johdanto Tehtävä

Java-kielen perusteet

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

Python-ohjelmointi Harjoitus 2

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

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

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

Ohjelmoinnin perusteet Y Python

ITKP102 Ohjelmointi 1 (6 op)

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

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

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmoinnin peruskurssi Y1

Java-kielen perusteet

ASCII-taidetta. Intro: Python

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3

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

ITKP102 Ohjelmointi 1 (6 op)

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

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

7. Näytölle tulostaminen 7.1

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

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

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3 opettaja: Pasi Ranne

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

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

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

12. Javan toistorakenteet 12.1

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin perusteet Y Python

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

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

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

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmointi 1 C#, kevät 2013,

Ohjelmoinnin perusteet, syksy 2006

17. Javan omat luokat 17.1

20. Javan omat luokat 20.1

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Ohjelmoinnin perusteet Y Python

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

12. Javan toistorakenteet 12.1

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Python-ohjelmointi Harjoitus 5

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

12. Näppäimistöltä lukeminen 12.1

Ohjelmointi 1 C#, kevät 2014, tentti

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Transkriptio:

Nämä ovat kurssin viimeiset harjoitukset. Hyväksytyistä ratkaisuista ja läsnäoloista kerättyjen pisteiden summan tulee olla vähintään 4 % (2 pistettä) tehtävien ja läsnäolopisteiden kokonaislukumäärien summasta (45 + 6 = 5). Hyvityspisteiden rajat: 6 % ( pistettä), 7 % (6 pistettä) ja 8 % (4 pistettä). Voit tehdä lisätehtäviä (korkeintaan 8 kpl), jos aiot suorittaa kurssin, mutta pisteesi ovat alle 4 % -rajan tämän harjoituksen jälkeen. Kurssin vastuuopettaja ottaa yhteyttä opiskelijoihin, jotka voivat saavuttaa 4 %:n rajan lisätehtäviä tekemällä. Tentti ja Lausekielinen ohjelmointi II -kurssin ensimmäisen harjoitustyön ohjelmointi sujuvat todennäköisesti paremmin, jos ratkaiset tämän harjoituskerran tehtäviä. 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. Ohjelmointitehtävien osalta palautetaan vain ratkaisun lähdekoodi (java-päätteinen tiedosto) kurssin kotisivuilta Koodit-kohdasta löytyvää In-luokkaa 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 (https://wetodev.sis.uta.fi/) viimeistään ensi viikon perjantaina 9.. klo 2. (keskipäivä). WETO tarkistaa kaikki tämän harjoituskerran tehtävät automaattisesti. Varmista, että ohjelmasi toimii esimerkkien mukaisesti. Huomaa, että rivien alkuun tai loppuun ei tulosteta välilyöntejä ja että kaikki tulostettavat rivit viimeinen rivi mukaan lukien päätetään rivinvaihtoon. Lisätietoja tarkistuksesta: https://coursepages.uta.fi/tiep/syksy-28/harjoitukset/ratkaisujen-tarkistus/automaattinen/. Ota yhteyttä harjoitusryhmäsi vetäjään, jos et keksi järjellisessä ajassa miksi WETO hylkää palautuksesi.. Osoitteessa: https://coursepages.uta.fi/tiep/syksy-28/harjoitukset/tehtavat/ on annettu sisentämätön TwoUp-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ä. Palauta WETOon sisennetty ohjelma TwoUp.java-tiedostossa. Huomaa, että WETOn hyväksymä palautus ei ole välttämättä sisennetty oikein, koska WETO testaa vain, että uudelleen muotoiltu ja alkuperäinen ohjelma vaikuttavat toimivan samalla tavalla. Esimerkki alkuperäisen ohjelman toiminnasta: Hello! I shall gamble on your behalf. Please enter the number of turns (>): - Please enter the number of turns (>): Please enter the number of turns (>): - Turn --- New toss. Loss! - Turn 2 --- Loss! - Turn --- New toss. Win! There were wins and 2 losses. Lausekielinen ohjelmointi I Syksy 28 Jorma Laurikkala / 6

2. Kirjoita Javalla StringBeginner-ohjelma merkkijonon alun tulostamiseen. Käyttäjältä luetaan merkkijono (String) ja sen alusta tulostettavien merkkien lukumäärä. Ohjelma tulostaa merkkien asemasta virheilmoituksen, jos merkkien lukumäärä on pienempi tai yhtä suuri kuin nolla tai suurempi kuin merkkijonon pituus. Esimerkki ohjelman toiminnasta, kun syötteet ovat "Trying is the first step towards failure." ja : Hello! I print the beginning of a string. Trying is the first step towards failure. Please, enter the number of characters: Try Esimerkki ohjelman toiminnasta, kun syötteet ovat "Vacuuming sucks." ja : Hello! I print the beginning of a string. Vacuuming sucks. Please, enter the number of characters:. Kirjoita Javalla EndsChopper-ohjelma, joka lukee käyttäjältä merkkijonon (String) ja poistaa siitä käyttäjän valinnan mukaan joko ensimmäisen tai viimeisen merkin. Merkkijonosta poistetaan sen ainoa merkki, jos merkkijonon pituus on yksi. Ohjelma tulostaa typistetyn merkkijonon näytölle lainausmerkkien välissä, jos käyttäjä valitsi poistettavan merkin pienellä f- tai l-kirjaimella. Muussa tapauksessa tulostetaan virheviesti "". Voit välttää kaksi sisällöltään lähes samaa silmukkaa esimerkiksi a) esittelemällä muuttujat laskurin alkuarvolle ja laskuria rajoittavalle arvolle ennen silmukkaa ja päättelemällä arvot muuttujille tai b) käyttämällä valintarakennetta silmukan sisässä. Voit tulostaa lainausmerkit tuloksen ympärille esimerkiksi näin: System.out.println("The chopped string is \"" + jaannos + "\"."); Esimerkki ohjelman toiminnasta, kun syötteet ovat "hei" ja 'f': hei f The chopped string is "ei". Lausekielinen ohjelmointi I Syksy 28 Jorma Laurikkala 2 / 6

Esimerkki ohjelman toiminnasta, kun syötteet ovat "hei" ja 'l': hei l The chopped string is "he". Esimerkki ohjelman toiminnasta, kun syötteet ovat "x" ja 'f': x f The chopped string is "". Esimerkki ohjelman toiminnasta, kun syötteet ovat "x" ja 'l': x l The chopped string is "". Esimerkki ohjelman toiminnasta, kun syötteet ovat " Saved by the bell!" ja 'F': Saved by the bell! F 4. Tee Javalla CharacterMultiplier-ohjelma, joka lukee käyttäjältä merkkijonon (String), merkin paikan määrittävän indeksiarvon ja luvun, joka ilmaisee montako kertaa paikassa oleva merkki tulee toistaa uudessa merkkijonossa. Jos syötteet ovat esimerkiksi "Aargh!", 4 ja, niin ohjelma lisää pienen h-kirjaimen perään kolme kappaletta samaa merkkiä, jolloin uusi merkkijono on "Aarghhhh!" Ohjelma tulostaa virheilmoituksen, jos indeksiarvo on virheellinen tai jos merkin kertautumisen ilmaiseva luku on yhtä pienempi. Esimerkki ohjelman toiminnasta, kun syötteet ovat "abc", ja : Hello! I multiply characters. abc Please, enter location: Please, enter multiplier: Lausekielinen ohjelmointi I Syksy 28 Jorma Laurikkala / 6

Esimerkki ohjelman toiminnasta, kun syötteet ovat "Java", ja : Hello! I multiply characters. Java Please, enter location: Please, enter multiplier: Jaava Esimerkki ohjelman toiminnasta, kun syötteet ovat "Aargh!", 4 ja : Hello! I multiply characters. Aargh! Please, enter location: 4 Please, enter multiplier: Aarghhhh! 5. Tee Javalla AlternationCounter-ohjelma, jossa luetaan merkkijono ja lasketaan montako kertaa merkki vaihtuu toiseksi. Jos merkkijono on esimerkiksi "tintti", on merkin vaihtoja neljä: t i, i n, n t ja t i. Vaihtoja ei ole, jos merkkijonossa on vain yksi merkki. Vinkki: Käy merkit läpi ensimmäisestä (viimeisestä) merkistä toiseksi viimeiseen (toiseen) merkkiin saakka ja tutki kunkin merkin kohdalla mikä seuraava (edeltävä) merkki on. Esimerkki ohjelman toiminnasta, kun syöte on "abba": abba There were 2 alternations. Esimerkki ohjelman toiminnasta, kun syöte on "tintti": tintti There were 4 alternations. Esimerkki ohjelman toiminnasta, kun syöte on "aaa": aaa There were alternations. Lausekielinen ohjelmointi I Syksy 28 Jorma Laurikkala 4 / 6

Esimerkki ohjelman toiminnasta, kun syöte on "aaa": a There were alternations. 6. Tee Javalla Interrogator-ohjelma, joka esittää käyttäjälle kysymyksen ja hyväksyy vastaukseksi vain jommankumman kahdesta vastauksia vastaavasta merkistä. Käyttäjälle tulostetaan virheilmoitus ja kysymys esitetään uudestaan niin pitkään kuin käyttäjä antaa vastaukseksi jonkin muun kuin ohjelman tunnistaman merkin. Tämä tehtävä tarkistetaan opettajan toimesta hyvän ohjelmointitavan osalta. Näin esimerkiksi huono sisennys tai puutteellinen kommentointi voi tuottaa nollan, vaikka ohjelma läpäisee WETOn testit. Muista noudattaa hyvän ohjelmointitavan perusteita, jotka on vedetty yhteen kurssin luentomateriaalin 4. luvussa. Kysymys ja vastauksina käytettävät merkit luetaan käyttäjältä ennen kysymyksen esittämistä. Oletetaan, että käyttäjän vastauksiksi määrittelemät merkit eivät ole samoja. Esimerkki ohjelman toiminnasta, kun syötteet ovat "Are you Sarah Connor?", 'y' ja 'n': Hello! I ask a mandatory question. Please, enter the question: Are you Sarah Connor? Please, enter the first answer: y Please, enter the second answer: n Are you Sarah Connor? N Are you Sarah Connor? n See you soon. Esimerkki ohjelman toiminnasta, kun syötteet ovat "To (b)e or (n)ot to be?", 'b' ja 'n': Hello! I ask a mandatory question. Please, enter the question: To (b)e or (n)ot to be? Please, enter the first answer: b Please, enter the second answer: n To (b)e or (n)ot to be? b See you soon. Lausekielinen ohjelmointi I Syksy 28 Jorma Laurikkala 5 / 6

7. Tee Javalla SmallestInteger-ohjema, joka päättelee kokonaislukujen jonon pienimmän luvun arvon. Jonon lukujen lukumäärä ja luvut luetaan käyttäjältä. Ohjelma tulostaa pienimmän luvun näytölle. Ohjelma tulostaa virheilmoituksen, jos lukumäärä on nolla tai pienempi. Vinkki: Säilö pienin lukuarvo apumuuttujaan ja päivitä muuttujan arvo aina, kun löydät muuttujan nykyistä arvoa pienemmän luvun. Alusta muuttuja joko jonon ensimmäisellä luvulla tai muuttujan tyypin arvoalueen suurimmalla mahdollisella arvolla. Esimerkiksi int-tyypin suurin mahdollinen arvo on tallennettu Integer.MAX_VALUE-vakioon. Esimerkki ohjelman toiminnasta, kun syötteet ovat,, -2, 2: Hello! I determine the smallest integer. Please, enter the number of integers: -2 2 The smallest integer is -2. Esimerkki ohjelman toiminnasta, kun syötteet ovat 5, 2,,,, 4: Hello! I determine the smallest integer. Please, enter the number of integers: 5 2 4 The smallest integer is. Esimerkki ohjelman toiminnasta, kun syöte on : Hello! I determine the smallest integer. Please, enter the number of integers: Lausekielinen ohjelmointi I Syksy 28 Jorma Laurikkala 6 / 6