Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Samankaltaiset tiedostot
Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Harjoitustyö Johdanto

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

Toinen harjoitustyö. ASCII-grafiikkaa 2017

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

Toinen harjoitustyö. ASCII-grafiikkaa

Harjoitus 2 (viikko 45)

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

Harjoitus 5 (viikko 41)

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

Harjoitus 6 (viikko 42)

Harjoitus 5 (viikko 41)

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

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

Harjoitus 1 (viikko 44)

Harjoitus 3 (viikko 39)

Harjoitus 6 (viikko 42)

Harjoitus 4 (viikko 47)

Harjoitus 5 (viikko 48)

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

2. Merkkijono, osamerkkijono ja osamerkkijonon haku

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

7. Näytölle tulostaminen 7.1

Harjoitustyö Johdanto

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

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

13. Hyvä ohjelmointitapa (osa 1) 13.1

14. Hyvä ohjelmointitapa 14.1

Java-kielen perusteet

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

ITKP102 Ohjelmointi 1 (6 op)

Java-kielen perusteet

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

Java-kielen perusteet

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Ohjelmoinnin perusteet, syksy 2006

ITKP102 Ohjelmointi 1 (6 op)

Tehtävä 1: Veroprosentti

17. Javan omat luokat 17.1

3. Muuttujat ja operaatiot 3.1

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

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

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

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

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

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

Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Taulukot. Jukka Harju, Jukka Juslin

17. Javan omat luokat 17.1

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

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

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

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)

58160 Ohjelmoinnin harjoitustyö

Ohjelmoinnin perusteet Y Python

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 peruskurssi Y1

Kohdissa 2 ja 3 jos lukujen valintaan on useita vaihtoehtoja, valitaan sellaiset luvut, jotka ovat mahdollisimman lähellä listan alkua.

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

Sinulle on annettu bittijono, ja tehtäväsi on muuttaa jonoa niin, että jokainen bitti on 0.

Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005

20. Javan omat luokat 20.1

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

Ohjelmoinnin perusteet Y Python

Java-kielen perusteita

Ohjelmoinnin peruskurssi Y1

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

Seuraavassa on esimerkki for-, while- ja do-while -lauseesta:

Ohjelmoinnin peruskurssi Y1

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

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

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

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

Harjoitus 3: Flash-komponenttiarkkitehtuuri ( )

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )

ITKP102 Ohjelmointi 1 (6 op)

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Harjoitustyö Johdanto. 2. Euroseteli

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

Ohjelmoinnin perusteet Y Python

Johdatus Ohjelmointiin

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat ja operaatiot

TIETOKONEEN ÄÄRELLÄ. Kansalaisopistot kotouttamisen tukena hanke/opetushallitus Kuopion kansalaisopisto

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit.

811120P Diskreetit rakenteet

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

Java-kielen perusteita

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

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

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

Tietotekniikan valintakoe

Metodien tekeminen Javalla

Transkriptio:

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Yleistä Tehtävä: Tee Javalla StringStats-ohjelma, joka laskee esikäsittelemästään merkkijonosta joitakin tunnuslukuja. Lausekielinen ohjelmointi II -kurssin pakollinen osasuoritus. Työ tehdään yksin. Ideoita voi vaihtaa koodia ei. Henkilökohtaista ohjausta tarjolla mikroluokissa myöhemmin ilmoitettavina aikoina. Sähköpostilla voi edelleen kysyä. Palautus WETOon todennäköisesti ke 8.11.2017. Lue tehtävänanto ja palautusohjeet tarkkaan. Lopullinen tehtävänanto ja esimerkkejä julkaistaan tällä viikolla. 2

Merkkijonon esikäsittely Käyttäjän oletetaan antavan aina syötteenä merkkijonon, jossa on vähintään yksi merkki ja korkeintaan 1000 merkkiä. Merkkijonosta poistetaan ennen tunnuslukujen laskua seuraavat välimerkit: pilkku, piste, puolipiste, kaksoispiste, kysymysmerkki, huutomerkki, yksinkertainen lainausmerkki ('\''), lainausmerkki ('\"'), jakomerkki ('/') ja kaarisulkeet ('(' ja')'). Oletetaan, että yksi välilyönti seuraa useimmissa tapauksissa edellä mainittuja välimerkkejä. Lisäksi oletetaan, että merkkijonon alussa tai lopussa ei ole välilyöntejä ja että välilyöntejä ei ole peräkkäin. It's a dangerous business, Frodo, going out your door. Its a dangerous business Frodo going out your door 3

Tunnuslukujen laskeminen Ohjelma katkoo esikäsitellyn merkkijonon osiksi välilyöntien kohdilta ja laskee: osien lukumäärän, osien pituuksien summan, osien pituuksien keskiarvon kokonaisluvuksi pyöristettynä, lyhimmän osan pituuden, toiseksi lyhimmän osan pituuden, toiseksi pisimmän osan pituuden ja pisimmän osan pituuden. 4

Tunnuslukujen laskeminen Lyhimmän, toiseksi lyhimmän, pisimmän ja toiseksi pisimmän osan pituudet (min 1, min 2, max 1, max 2 ) ovat samat, kun osia on yksi tai kaikkien osien pituudet ovat samat. Jos osat ovat esimerkiksi "x" ja "x", niin min 1 = 1 ja max 1 = 1, min 2 = 1 ja max 2 = 1. Kun osia on vain kahta pituutta, on toiseksi pisimmän osan pituus sama kuin lyhimmän osan pituus ja toiseksi lyhimmän osan pituus sama kuin pisimmän osan pituus. Jos osat ovat esimerkiksi "x" ja "xx", niin min 1 = 1, max 1 = 2, min 2 = 2 ja max 2 = 1. 5

Tunnuslukujen laskeminen Lyhimpien ja pisimpien osien osalta ei huomioida myöhemmin löydettäviä samanpituisia osia. Osien pituuksia vertaillaan pienempi ja suurempi kuin operaattoreilla. Jos osat ovat esimerkiksi "x", "xx", "x" ja "xx", niin min 1 = 1 ja max 1 = 2 ja min 2 = 2 ja max 2 = 1, vaikka ensimmäinen ja kolmas osa ja toinen ja neljäs osa ovat samanpituisia. 6

Ohjelman toiminnasta Ohjelma tervehtii käyttäjäänsä tulostamalla kerran merkkijonon Hello! I calculate some string statistics. Merkkijonoa luettaessa tulostetaan Please, enter a string: Esikäsitelty merkkijono tulostetaan lainausmerkkien väliin ennen tunnuslukujen tulostamista. Pituuksien keskiarvo lasketaan siten, että tulos on liukuluku, joka pyöritetään kokonaisluvuksi Math-luokan round-operaatiolla. 7

Ohjelman toiminnasta Merkkijonon sovituksen jälkeen ohjelman käyttäjältä tiedustellaan Continue (y/n)? ja vastaukseksi hyväksytään vain pieni y- tai n-kirjain. Virheeseen reagoidaan tulostamalla Error!. Syöte luetaan uudelleen, jos käyttäjä haluaa jatkaa. Ohjelman loppuessa tulostetaan See you soon. Kaikki viestit tulostetaan omille riveilleen ja tulosteet päätetään rivinvaihtoon. 8

Esimerkki ohjelman toiminnasta Hello! I calculate some string statistics. Please, enter a string: It's a dangerous business, Frodo, going out your door. "Its a dangerous business Frodo going out your door" - The number of parts is 9. - The sum of part lengths is 42. - The average length of parts is 5. - The length of the shortest part is 1. - The length of the second shortest part is 3. - The length of the second longest part is 8. - The length of the longest part is 9. Continue (y/n)? k Error! Continue (y/n)? n See you soon. 9

Esimerkki ohjelman toiminnasta Hello! I calculate some string statistics. Please, enter a string: x "x" - The number of parts is 1. - The sum of part lengths is 1. - The average length of parts is 1. - The length of the shortest part is 1. - The length of the second shortest part is 1. - The length of the second longest part is 1. - The length of the longest part is 1. Continue (y/n)? y 10

Esimerkki ohjelman toiminnasta Please, enter a string: x xx "x xx" - The number of parts is 2. - The sum of part lengths is 3. - The average length of parts is 2. - The length of the shortest part is 1. - The length of the second shortest part is 2. - The length of the second longest part is 1. - The length of the longest part is 2. Continue (y/n)? n See you soon. 11

Muuta Taulukot ja Javan API:n edistyneemmät ohjelmointitekniikat on kielletty, jotta noviisit eivät käyttäisi tuntemattomia tekniikoita. API-luokkien operaatioista sallittuja ovat System.out.println ja print, String-luokan length- ja charat-, equals-operaatiot ja Math-luokan round-operaatio. Muita API-operaatioita ei saa käyttää. Lue syötteet In-luokan avulla. Kysy ohjaajalta, jos olet epävarma. Noudata hyvää ohjelmointitapaa. Testaus WETOssa julkisilla ja salaisilla testeillä. Arvostelu: hylätty tai hyväksytty. Hylätyn työn saa korjata. 12