Python-ohjelmointi Harjoitus 5

Samankaltaiset tiedostot
Python-ohjelmointi Harjoitus 2

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

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

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1

Ohjelmoinnin perusteet Y Python

Muistutus aikatauluista

Ohjelmoinnin perusteet Y Python

Ehto- ja toistolauseet

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta Toteuta Pythonilla seuraava ohjelma:

Luento 5. Timo Savola. 28. huhtikuuta 2006

Ohjelmoinnin perusteet Y Python

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat

11. Javan toistorakenteet 11.1

Ohjelmoinnin perusteet Y Python

Algoritmit 1. Demot Timo Männikkö

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet

Algoritmit 1. Demot Timo Männikkö

ITKP102 Ohjelmointi 1 (6 op)

Vetelin kunta Oppimisen seurantalomake 0-2 lk

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

Tekijä Pitkä matematiikka

Johdatus Ohjelmointiin

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin perusteet Y Python

Harjoitus 5 (viikko 41)

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Ohjelmoinnin perusteet Y Python

Talousmatematiikan perusteet, L3 Prosentti, yhtälöt Aiheet

ITKP102 Ohjelmointi 1 (6 op)

c) 22a 21b x + a 2 3a x 1 = a,

Tietorakenteet (syksy 2013)

1 Ensimmäisen asteen polynomifunktio

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Ohjelmoinnin perusteet Y Python

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla (Opettajan ohje)

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Java-kielen perusteet

HELSINGIN YLIOPISTON VIIKIN NORMAALIKOULUN

OPPITUNTI 5 Ohjelman kulku

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

14. Hyvä ohjelmointitapa 14.1

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Ohjelmoinnin perusteet Y Python

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 6 Kerta Toteuta Pythonilla seuraava ohjelma:

13. Hyvä ohjelmointitapa (osa 1) 13.1

SELECT-lauseen perusmuoto

Negatiiviset luvut ja laskutoimitukset

LASKUTOIMITUKSET. Montako ötökkää on kussakin ruudussa? Tulos: Tulos: Tulos: Tulos: Tulos: Tulos: Tulos: Tulos: Tulos:

TYÖPAJA 1: Tasogeometriaa GeoGebran piirtoalue ja työvälineet

Neure - tehtäväluettelo 1 / , 17:05

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

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

ITKP102 Ohjelmointi 1 (6 op)

Kenguru 2012 Cadet (8. ja 9. luokka)

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa

ASCII-taidetta. Intro: Python

13. Loogiset operaatiot 13.1

4. Oheisessa 4x4 ruudukossa jokainen merkki tarkoittaa jotakin lukua. Mikä lukua salmiakki vastaa?

Kenguru Student (lukion 2. ja 3. vuosi) sivu 1 / 6

Apua esimerkeistä Kolmio teoriakirja. nyk/matematiikka/8_luokka/yhtalot_ yksilollisesti. Osio

origo III neljännes D

HELSINGIN YLIOPISTON VIIKIN NORMAALIKOULUN MATEMATIIKAN OPETUSSUUNNITELMA TAVOITTEET 1. LUOKALLE

Ohjelmoinnin peruskurssi Y1

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

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

Talousmatematiikan perusteet, L2 Kertaus Aiheet

Harjoitus 3 -- Ratkaisut

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

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Oppimistavoitematriisi

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä.

Java-kielen perusteet

joissa on 0 4 oikeata vastausta. Laskimet eivät ole sallittuja.

Matematiikan opetuksen keskeiset tavoitteet

Ohjausrakenteet. Valinta:

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen.

JavaScript alkeet Esimerkkikoodeja moniste 2 ( Metropolia)

Ohjelmoinnin peruskurssi Y1

Zeon PDF Driver Trial

Ohjelmoinnin perusteet Y Python

LUKUJONOT. 1) Jatka lukujonoja. 0, 1, 2,,,, 6, 8, 10,,,, 8, 12, 16,,,, 18, 15, 12,,,, 30, 25, 20,,,, 2) Täydennä lukujonoihin puuttuvat luvut.

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Transkriptio:

Python-ohjelmointi Harjoitus 5 TAVOITTEET Kerrataan silmukkarakenteen käyttäminen. Kerrataan jos-ehtorakenteen käyttäminen. Opitaan if else- ja if elif else-ehtorakenteet. Matematiikan sisällöt Tehtävät tukevat luku- ja kuviojonojen opettelua sekä muuttujakirjaimen tuomista osaksi laskutoimituksia. Tehtävät tukevat lisäksi yleisesti kirjainlaskennan harjoittelua. Ohjelmointiin käytettävä alusta löytyy osoitteesta http://sade-oppiminen.herokuapp.com/ KERTAUSTA HARJOITUKSESTA 4 TEHTÄVÄ 1 Tavoitteena on palauttaa mieleen for-silmukkarakenne ja range()-komento. Tee ohjelma, joka tulostaa for-silmukkarakennetta hyödyntäen luvut 1 20. TEHTÄVÄ 2 Tavoitteena on palauttaa mieleen sisäkkäiset silmukkarakenteet. Tee ohjelma, joka piirtää sisäistä silmukkarakennetta hyödyntäen oheisen kuvion. Kuviossa on neljä kappaletta neliöitä eli ulompaa silmukkarakennetta toistetaan neljä kertaa. Sisempi silmukkarakenne piirtää neliön. Neliön sivun pituuden voi päättää itse tai se voidaan kysyä käyttäjältä. Kuvioiden välissä tehdään 36 asteen käännös. Mieti tämän komentorivin sisennys, jotta se kuuluu oikeaan silmukkarakenteeseen.

LUKU- JA KUVIOJONOT Esimerkki 1 Tee ohjelma, joka tulostaa lukujonon 19, 17, 15, 13, 11, 9, 7, 5, 3, 1. Ratkaisu Lukujono muodostuu parittomista luvuista välillä 1 19 laskevassa järjestyksessä. Range()- komennossa alue määritetään ensimmäisestä luvusta eli luvusta 19 alkaen. Lukualue päättyy yhden luvun halutun päättymisluvun jälkeen. Koska viimeiseksi halutaan tulostaa luku 1, päättyy alue lukuun nolla. Parittomat luvut saadaan laskevassa järjestyksessä, kun määritetään askeleeksi 2. Laskuria kuvaamaan käytetään muuttujakirjainta n. KOODI TULOSTE 19 17 15 13 11 9 7 5 3 1 Jos lukujono halutaan tulostaan yhdelle riville, tulostusrivi kirjoitetaan seuraavasti: Numerot tulostuvat tällöin yhdelle riville välilyönnillä erotettuina. Jos lukujono halutaan tulostaa yhdelle riville luvut pilkulla erotettuna, kirjoitetaan tulostusrivi seuraavasti: Numerot tulostuvat yhdelle riville välilyönneillä erotettuna ja myös viimeisen luvun perän tulee pilkku.

Esimerkki 2 Tee ohjelma, joka tulostaa kuviojonon jäseniä käyttäjän haluaman määrän. Ratkaisu Kuviojono saadaan tulostettua leimaustoiminnon avulla. Käyttäjän ilmoittamaa kuviojonon jäsenten määrää käytetään silmukkamuuttujan alueen päättymislukuun. Käyttäjältä pyydetty lukumäärä, muuttuja lkm, pitää muuttaa kokonaisluvuksi, jotta sitä voidaan käyttää range()-komennossa. Ulommalla silmukkarakenteella määrätään kuvioiden määrä. Silmukkamuuttujan lopetusluvuksi käytetään käyttäjän ilmoittamaa määrää lisättynä yhdellä. Ulomman silmukan silmukkamuuttujaa merkitään muuttujakirjaimella n. Kuviojonon jäsenten välinen etäisyys määritetään ulommassa silmukassa. Sisempi silmukkarakenne toteuttaa halutun kuviojonon muodostumisen. Käytetään kuviojonon tekemiseen leimaustoimintoa. Sisemmän silmukan silmukkamuuttujaa merkitään muuttujakirjaimella m. Kun käyttäjä haluaa tulostaa neljä kuviojonon jäsentä, on tuloste seuraava:

TEHTÄVÄ 3 Tavoitteena on muodostaa lukujono. Tee ohjelma, joka tulostaa lukujonon väliltä 2 20. Lukujonon ensimmäinen jäsen on 2 ja seuraava jäsen on aina kolme edellistä suurempi. TEHTÄVÄ 4 Tavoitteena on muodostaa lukujono, jonka seuraava jäsen on aina edellistä pienempi. Tee ohjelma, joka tulostaa lähtölaskennan luvusta 10 lukuun 0. Seuraava jäsen on aina yhden edellistä pienempi. TEHTÄVÄ 5 Tavoitteena harjoitella kuviojonon tulostamista leimaustoiminnolla. Tee ohjelma, joka tulostaa lukujonoa 1, 2, 3, 4, 5 vastaavan kuviojonon. Alla on mallikuva tällaista lukujonoa vastaavasta kuviojonosta. Käytä haluamaasi hahmoa kuviojonon muodostamiseen. TEHTÄVÄ 6 Tavoitteena on tulostaa kuviojono piirtämällä. Tee ohjelma, joka tulostaa lukujonoa 2, 4, 6 vastaavan kuviojonon. Käytä kuviona piirrettyä ympyrää. Ympyrä saadaan piirrettyä circle-komennolla. Ympyrän säteeksi kannattaa valita 10 tai 20. Määritä kuvioiden välinen siirtymä sopivaksi. Määritä jäsenien välinen etäisyys. Muista nostaa ja laskea kynää tarvittaessa, muutoin siirtymiset piirtyvät viivana.

EHTORAKENNE VAIHTOEHTOISILLE TAPAHTUMILLE Jos-ehtorakenteessa tapahtuma tapahtuu, jos annettu ehto täytyy. Usein tarkasteltavia ehtoja on useampia kuin yksi. Ohjelma käy läpi kaikki jos-lauseet riippumatta siitä, kohdataanko ehdon täyttävä tapahtuma jossain vaiheessa. Erillisiä jos-ehtolauseita voidaan korvata käyttämällä josmuuten-rakennetta, jossa ohjelma suorittaa tietyn tapahtuman, kun vertailu on tosi ja toisen tapahtuman vertailun ollessa epätosi. Ehtorakenne mahdollistaa sen, että eri valinnat tuottavat erilaisen lopputuloksen. Ehtorakenne if else if ehto tai vertailu: Tapahtuma, joka tapahtuu, kun vertailu on tosi. else: Tapahtuma, joka tapahtuu, kun vertailu on epätosi. Esimerkki 3 Testissä on oikein-väärin-väittämiä. Tee ohjelma, jossa käyttäjältä kysytään seuraavasti: Oikein vai väärin: 3x + x = 4x. k vai e? Jos vastaus on oikein, ohjelma onnittelee oikeasta vastauksesta. Jos käyttäjän antama vastaus on väärin, ohjelma suosittelee käyttäjää kertaamaan asian uudelleen. Ratkaisu Vaihtoehtoisia tapahtumia on kaksi, joten ohjelma voidaan toteuttaa joko kahdella jos-lauseella tai käyttämällä jos-muuten-ehtorakennetta. Tapa 1: Jos-ehtorakenteella toteutettuna Tapa 2: Jos-muuten-ehtorakenteella toteutettuna

Esimerkki 4 Tee ohjelma, joka piirtää kuviojonon käyttäjän haluamalla hahmolla. Käyttäjä voi valita hahmoksi joko ympyrän, neliön tai kolmion. Käyttäjältä myös kysytään, kuinka monta jäsentä kuviojonoon tulostetaan. Ratkaisu Valittavana on kolme eri vaihtoehtoa, joista jokainen tekee eri tapahtuman. Käytetään rakennetta if elif else. KOODI Tuloste, kun hahmoksi valitaan ympyrä ja kuviojonoon halutaan kolme jäsentä. Toistuvasti esiintyvä osa koodista kannattaa tehdä kerran. Testaamisen jälkeen koodia voi kopioida muihin kohtiin ja tehdä niihin kohtiin tarvittavat muutokset.

TEHTÄVÄ 7 Tavoitteena on harjoitella if else-rakenteen käyttämistä. Tee ohjelma, jossa käyttäjältä kysytään, onko hän kissa- vai koiraihminen. Kissaihmisille ohjelma tulostaa lauseen Kissoja onkin mukava silitellä ja kuunnella niiden kehräystä.. Koiraihmisille ohjelma tulostaa Koirien kanssa onkin mukava ulkoilla ja harrastaa. Käytä ohjelmassa if else-rakennetta. TEHTÄVÄ 8 Tavoitteena on harjoitella if elif else rakenteen käyttämistä. Tee ohjelma, joka toimii yksinkertaisena nelilaskimena. Käyttäjältä kysytään kaksi lukua ja minkä laskutoimituksen, yhteen-, vähennys-, kerto- vai jakolaskun, hän haluaa niillä tehdä. Määritä muuttujat ja niiden arvoksi käyttäjältä kysyttävät luvut. Vastaus on muutettava kokonaisluvuksi, jotta sitä voidaan käyttää myöhemmin laskutoimituksissa. Määritä muuttuja, jonka arvoksi tulee käyttäjän valitsema laskutoimitus. Mieti, miten haluat, että käyttäjä ilmaisee valitsemansa laskutoimituksen, jotta siitä voi tehdä ehtorakenteen. Ohjelma tulostaa valitun laskutoimituksen ja laskun vastauksen. Koska vaihtoehtoja on neljä, tarvittava ehtorakenne on if elif elif else. TEHTÄVÄ 9 Tavoitteena on syventää jos-muuten-rakenteen käyttämistä. Tee ohjelma, jossa käyttäjälle esitetään kysymyksiä lausekkeen ja muuttujan arvosta ja hänen on valittava kahdesta vaihtoehdosta oikea. Käyttäjälle esitettävät kysymykset ja vastausvaihtoehdot: Mikä on lausekkeen x + 1 arvo, kun x saa arvon 5? a) 5 b) 6 Mikä on lausekkeen 2n + 1 arvo, kun n = 10? a) 21 b) 211 Mikä on lausekkeen 3a arvo, kun a = 4? a) 12 b) 12 Millä x:n arvolla x 4 = 9? a) x = 5 b) x = 13 Käyttäjä valitsee joko a tai b. Oikeasta vastauksesta käyttäjä saa kannustuksena Hienosti tiedetty!. Väärästä vastauksesta käyttäjä saa palautteena Kaipaat vielä hieman harjoitusta tämän tyyppisestä tehtävästä. Jokaiseen kysymykseen tulee tehdä erillinen jos-muuten-rakenne.

TEHTÄVÄ 10 Tavoitteena on palauttaa mieleen merkkijonojen yhtenevyyden vertailu. Tee ohjelma, jossa käyttäjän pitää arvata jotain. Käyttäjä voi esimerkiksi arvata tunnussanan keksiä vastauksen arvoitukseen keksiä, mitä sanaa yritetään selittää keksiä, mitä vieraskieliset sanat tarkoittavat. Päätä itse, mitä ohjelman antaa palautteena oikeasta ratkaisusta ja mitä väärästä. Pohdi, onko ratkaisun kirjoitusasulla väliä eli pitääkö isot kirjaimet olla isoja vai onko itse sana tärkein kirjoitusmuodosta huolimatta. LISÄTEHTÄVIÄ LISÄTEHTÄVÄ 1 Tavoitteena on syventää jos-muuten-rakenteen käyttämistä. Tee ohjelma, jossa käyttäjältä kysytään pituus senttimetreinä ja haluaako hän muuttaa sen millimetreiksi vai metreiksi.