Harjoitus 1 (viikko 44)

Samankaltaiset tiedostot
Harjoitus 2 (viikko 45)

Harjoitus 5 (viikko 41)

Harjoitus 5 (viikko 48)

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

Harjoitus 3 (viikko 39)

Harjoitus 6 (viikko 42)

Harjoitus 5 (viikko 41)

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

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

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

Harjoitus 4 (viikko 47)

Harjoitus 6 (viikko 42)

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

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

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

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Toinen harjoitustyö. ASCII-grafiikkaa 2017

7. Näytölle tulostaminen 7.1

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op)

Toinen harjoitustyö. ASCII-grafiikkaa

5. HelloWorld-ohjelma 5.1

Harjoitustyö Johdanto

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

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

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

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

Java-kielen perusteita

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

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

2. Merkkijono, osamerkkijono ja osamerkkijonon haku

ITKP102 Ohjelmointi 1 (6 op)

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

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

14. Hyvä ohjelmointitapa 14.1

5. HelloWorld-ohjelma 5.1

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

Java-kielen perusteet

1. Omat operaatiot 1.1

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

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

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

13. Hyvä ohjelmointitapa (osa 1) 13.1

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

Ohjelmoinnin perusteet Y Python

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

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet, 1. välikoe

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

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

Harjoitustyö: virtuaalikone

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

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

Ohjelmoinnin jatkokurssi, kurssikoe

17. Javan omat luokat 17.1

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

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Ohjelmointiharjoituksia Arduino-ympäristössä

MEETING PEOPLE COMMUNICATIVE QUESTIONS

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Harjoitus 3: Flash-komponenttiarkkitehtuuri ( )

Ohjelmoinnin perusteet Y Python

Java-kielen perusteet

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin:

Ohjelmoinnin peruskurssi Y1

17. Javan omat luokat 17.1

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

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 )

Harjoitustyö Johdanto

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

ITKP102 Ohjelmointi 1 (6 op)

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

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

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Tietorakenteet (syksy 2013)

Ohjelmoinnin perusteet Y Python

3. Muuttujat ja operaatiot 3.1

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

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

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

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

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

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

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

Harjoitustyö Johdanto. 2. Euroseteli

Ohjelmointi 1 Taulukot ja merkkijonot

Maahan on pudonnut omenoita, ja Uolevi aikoo poimia niitä. Tiedät jokaisesta omenasta, kuinka painava se on.

Ohjelmoinnin perusteet (Java)

Choose Finland-Helsinki Valitse Finland-Helsinki

Transkriptio:

Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista lisätä static-määre operaatioidesi otsikoihin, jotta ohjelmasi kääntyvät. Muista noudattaa hyvän ohjelmointitavan perusteita (Lausekielinen ohjelmointi I -kurssin luentomateriaalin 4. luku) ja uusia hyviä tapoja, joihin kuuluu operaation otsikkoon liittyvä yleisluonteinen kommentti operaation tarkoituksesta sekä operaation mahdollisesti saamista ja palauttamista tiedoista. 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. Lisätietoja ratkaisujen palautuksesta ja tarkistuksesta julkaistaan kurssisivujen Harjoitukset -kohdassa. Ensi viikolla pidettävissä mikroharjoituksissa saa apua ongelmakohtiin. Keskiviikon klo 2 4 - ryhmässä avustetaan hieman enemmän kuin muissa ryhmissä. Palautusaikaa on jatkettu vuorokaudella. Palauta vastauksesi WETO-järjestelmään viimeistään ensi viikon perjantaina 3.. klo 2.00 (keskipäivä). Syötteiden lukemiseen tarvittava In-luokka löytyy kurssin kotisivuilta Koodit-kohdasta. Java-kääntäjä ja -tulkki löytyvät yliopiston mikroluokkien koneilta. Nämä ohjelmat voi asentaa myös omalle koneelle. Lisätietoja osoitteesta: http://www.uta.fi/sis/tie/laki/ohjelmointivalineita/java_jdk.html. Ota yhteyttä kurssin vastuuopettajaan, jos Java ei suostu asentumaan koneellesi.. Tee Javalla Churchill-ohjelma, jolla on paluuarvoton (void) ja parametriton operaatio (tyhjä parametrilista), joka tulostaa alla annetulla tavalla erään ajatelman. Tämä tehtävä tarkistetaan automaattisesti. Varmista, että ohjelmasi toimii esimerkin 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. ***************************************************************************************** * I am fond of pigs. Dogs look up to us. Cats look down on us. Pigs treat us as equals. * ***************************************************************************************** 2. The Javalla maaginen kasipallo. Magic8Ball-ohjelma lukee käyttäjältä kysymyksen ja tulostaa satunnaisesti jokin alla annetussa taulukossa olevasta 20 vastauksesta. It is certain. As I see it, yes. Reply hazy try again. Don't count on it. It is decidedly so. Most likely. Ask again later. My reply is no. Without a doubt. Outlook good. Better not tell you now. My sources say no. Yes definitely. Yes. Cannot predict now. Outlook not so good. You may rely on it. Signs point to yes. Concentrate and ask again. Very doubtful. Ohjelmassa tulee olla paluuarvoton (void) ja parametriton operaatio (tyhjä parametrilista), joka valitsee ja tulostaa vastauksen. Kysymys luetaan main-operaatiossa, josta käsin vastauksen tuottavaa operaatiota kutsutaan. Löydät kasipallon kuvauksen ja pallon antamat vastaukset täältä: https://en.wikipedia.org/wiki/magic_8-ball. Voit arpoa kokonaisluvun väliltä [, 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 II Syksy 207 Jorma Laurikkala / 5

Hello! I am a Magic 8 Ball. Ask me: Are you telling the truth? Better not tell you now. Toinen esimerkki ohjelman toiminnasta: Hello! I am a Magic 8 Ball. Ask me: Is winter coming? Without a doubt. 3. Kirjoita Javalla HelloYou-ohjelma, jossa on paluuarvoton (void) operaatio, joka tervehtii ohjelman käyttäjää nimellä. Käyttäjän nimi välitetään operaatiolle String-tyyppisen parametrin avulla. Parametrin arvoa ei tarvitse tarkistaa. Lue käyttäjän nimi main-operaatiossa ja kutsu kirjoittamaasi operaatiota main-operaatiosta siten, että annat käyttäjältä lukemasi syötteen operaatiolle parametrina. Hello! I shall say hello to you. Please, enter your name: Conan the Librarian Hello Conan the Librarian! 4. Kirjoita Javalla operaatio, joka saa parametrinaan kuukauden järjestysluvun (int) ja tulostaa näytölle lukua vastaavan kuukauden nimen esimerkkien tapaan. Luku vastaa tammikuuta ("January"), luku 2 vastaa helmikuuta ("February") ja niin edelleen. Koska operaatio on tyypitön (void), se ei palauta paluuarvoa. Voit olettaa, että operaation parametrin arvo on aina välillä 2. Lue järjestysnumero käyttäjältä main-operaatiossa ja kutsu operaatiotasi antaen syöte operaation parametrin arvoksi. Anna ohjelman nimeksi Month. Hello! I verbalise your input. Please, enter a number: It is January. Hello! I verbalise your input. Please, enter a number: 3 It is March. Lausekielinen ohjelmointi II Syksy 207 Jorma Laurikkala 2 / 5

5. Kirjoita Javalla tyypitön (void) operaatio, jossa tutkitaan ovatko parametrina saadut kaksi kokonaislukua (int) etumerkiltään samat. Etumerkit ovat samat, jos kumpikin luku on positiivinen ( 0) tai negatiivinen (< 0). Päättelyn tulos tulostetaan näytölle. Lue luvut käyttäjältä Signs-ohjelman main-operaatiossa ja anna syötteet parametrien arvoiksi, kun kutsut operaatiotasi main-operaatiosta. Esimerkki ohjelman toiminnasta, kun syötteet ovat ja 2: 2 The signs are the same. Esimerkki ohjelman toiminnasta, kun syötteet ovat - ja -2: - -2 The signs are the same. Esimerkki ohjelman toiminnasta, kun syötteet ovat ja -: - The signs are different. Esimerkki ohjelman toiminnasta, kun syötteet ovat - ja : - The signs are different. Lausekielinen ohjelmointi II Syksy 207 Jorma Laurikkala 3 / 5

6. Kirjoita Javalla 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. Pituuksien vertailu ja tuloksen tulostaminen tapahtuu tyypittömässä (void) operaatiossa, jolle merkkijonot (String) välitetään parametreina. Operaatiota kutsutaan main-operaatiossa, jossa luetaan käyttäjän syötteet. Vinkki: Lausekielinen ohjelmointi I -kurssin viidennen harjoituksen viides tehtävä. 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". Esimerkki ohjelman toiminnasta, kun syötteet ovat "metre" ja "yard": metre yard "metre" is longer than "yard". Lausekielinen ohjelmointi II Syksy 207 Jorma Laurikkala 4 / 5

7. Tee Javalla tyypitön (void) operaatio, joka tutkii moniko ensimmäisen merkkijonon merkeistä esiintyy jälkimmäisessä merkkijonossa. Merkkijonot välitetään operaatiolle Stringtyyppisinä parametreina. Operaatio tulostaa esiintymien lukumäärän näytölle. Isot ja pienet kirjaimet katsotaan eri merkeiksi. Oletetaan, että kukin ensimmäisen merkkijonon merkeistä esiintyy jonossaan vain kerran. Näin ollen ensimmäinen merkkijono ei voi olla esimerkiksi "aa". Tulos on yksi, jos ensimmäinen merkkijono on esimerkiksi "ab" ja toinen merkkijono "Big data", koska merkki 'a' esiintyy jälkimmäisessä merkkijonossa, mutta merkillä 'b' ei ole esiintymiä. Huomaa, että esiintymät lasketaan kyllä/ei-asteikolla. Tästä syystä edellisessä esimerkissä tulos on yksi, vaikka merkillä 'a' on kaksi esiintymää jälkimmäisessä merkkijonossa. Molemmat merkkijonot luetaan käyttäjältä main-operaatiossa. Kutsu kirjoittamaasi operaatiota main-operaatiosta siten, että annat käyttäjältä lukemasi syötteen operaatiolle parametrina. Anna ohjelmasi nimeksi Occurrences. Vihje: Sisäkkäiset silmukat. Esimerkki ohjelman toiminnasta, kun syötteet ovat "em" ja "Tampere": Hello! I count character occurrences between strings. Enter the first string: em Enter the second string: Tampere The number of occurrences is 2. Toinen esimerkki ohjelman toiminnasta, kun syötteet ovat "k" ja "Kuopio": Hello! I count character occurrences between strings. Enter the first string: k Enter the second string: Kuopio The number of occurrences is 0. Lausekielinen ohjelmointi II Syksy 207 Jorma Laurikkala 5 / 5