<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="https://peda.net/:static/548/atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Funktiot 1/4</title>
<id>https://peda.net/id/a2cd409af0f</id>
<updated>2023-03-09T17:44:17+02:00</updated>
<link href="https://peda.net/id/a2cd409af0f:atom" rel="self" />
<link href="https://peda.net/orivesi/perusopetus/yhteiskoulu/oppiaineet/matematiikka/pasi-kiema/ohjelmointi/ysin-asiaa/funktiot#top" rel="alternate" />
<logo>https://peda.net/:static/548/peda.net.logo.bg.svg</logo>
<rights type="html">&lt;div class=&quot;license&quot;&gt;Tämän sivun lisenssi &lt;a rel=&quot;license noopener&quot; href=&quot;https://peda.net/info&quot; target=&quot;_blank&quot;&gt;Peda.net-yleislisenssi&lt;/a&gt;&lt;/div&gt;&#10;</rights>

<entry>
<title>Ohjelman monimutkaistuessa otetaan funktiot käyttöön</title>
<id>https://peda.net/id/d037b82ef10</id>
<updated>2023-10-10T17:14:28+03:00</updated>
<link href="https://peda.net/orivesi/perusopetus/yhteiskoulu/oppiaineet/matematiikka/pasi-kiema/ohjelmointi/ysin-asiaa/funktiot/ohjelman-laajentuessa-otetaan-funktiot-k#top" />
<content type="html">&lt;h3&gt;Ohjelmiston jäsenteleminen&lt;/h3&gt;&#10;Hyvään ohjelmointityyliin ohjelmointikielestä riippumatta kuuluu ohjelmiston jäsentely osiin, joissa suoritetaan periaatteessa vain yksi toiminto. Funktiot ovat eräs tällainen jäsentelykeino. Funktioiden käytölle on muitakin perusteita.&lt;br/&gt;&#10;&lt;br/&gt;&#10;Seuraavassa periaatteellinen esimerkki. Ensimmäistä koodia ei ole jäsennelty funktioihin, mutta jälkimmäinen on.&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;b&gt;Esimerkki 1:&lt;/b&gt;&lt;br/&gt;&#10;​&lt;iframe src=&quot;https://trinket.io/embed/python/997f2740df&quot; width=&quot;100%&quot; height=&quot;130&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;b&gt;Esimerkki 2:&lt;/b&gt;&lt;br/&gt;&#10;​&lt;iframe src=&quot;https://trinket.io/embed/python/e54242f7ee&quot; width=&quot;100%&quot; height=&quot;220&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;​&lt;br/&gt;&#10;​&lt;br/&gt;&#10;No mitä järkeä tässä oli? Koodi vain piteni, eikä siihen tullut mitään lisäominaisuutta!&lt;br/&gt;&#10;&lt;br/&gt;&#10;Ohjelman logiikassa on kuitenkin kolme eri osiota, jotka on jälkimmäisessä esimerkissä ryhmitelty omiksi osikseen eli funktioiksi. &lt;br/&gt;&#10;&lt;br/&gt;&#10;Osiin jakaminen on perusteltua myös lisäpiirteiden laatimisen kannalta.&lt;br/&gt;&#10;&lt;br/&gt;&#10;Seuraava esimerkki ei ole ammattimainen tapa toteuttaa kielellistäminen, mutta tässä tilanteessa se sopii hyvin havainnollistaminaan koodin osittelun merkitystä.&lt;br/&gt;&#10;&lt;br/&gt;&#10;Oletetaan nimittäin, että ohjelmiston avulla pitää kommunikoida eri kielillä. Esimerkiksi suomeksi ja englanniksi. Ohjelmisto voisi silloin olla esimerkiksi seuraavanlainen:&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;b&gt;Esimerkki 3:&lt;/b&gt;&lt;br/&gt;&#10;​&lt;iframe src=&quot;https://trinket.io/embed/python/2dbdafb409&quot; width=&quot;100%&quot; height=&quot;300&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;​&lt;br/&gt;&#10;&lt;h3&gt;Funktion rakenne&lt;/h3&gt;&#10;&lt;code&gt;def funktio (parametrit):&lt;/code&gt;&lt;br/&gt;&#10;&lt;code&gt;  [funktion toiminnot}&lt;/code&gt;&lt;br/&gt;&#10;&lt;code&gt;  return(arvo)&lt;br/&gt;&#10;&lt;/code&gt;&lt;br/&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;sana def aloittaa funktion määrittelyn&lt;/li&gt;&#10;&lt;li&gt;funktiolla on nimi&#10;&lt;ul&gt;&#10;&lt;li&gt;nimen kannattaa olla mahdollisimman kuvaava&lt;/li&gt;&#10;&lt;li&gt;jos nimi muodostuu eri sanoista, yhdistä sanat alaviivalla tapaan: &lt;code&gt;ympyran_piiri&lt;/code&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;esiintyy myös tapaa kirjoittaa sanat toisesta sanasta alkaen isolla kirjaimella: &lt;code&gt;ympyranPiiri&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;nimen jälkeen tulee aina sulkeet ja kaksoispiste&lt;/li&gt;&#10;&lt;li&gt;sulkeiden sisällä voidaan funktiolle välittää tietoa yhden tai usemman parametrin avulla&#10;&lt;ul&gt;&#10;&lt;li&gt;Esimerkiksi &lt;code&gt;ympyran_piiri(sade)&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;mikäli funktio palauttaa arvon, se annetaan funktion viimeisellä rivillä return-lauseessa sulkeiden sisällä&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3&gt;Harjoittelua&lt;/h3&gt;&#10;&lt;b&gt;Esimerkki 4:&lt;/b&gt;&lt;br/&gt;&#10;​&lt;iframe src=&quot;https://trinket.io/embed/python/65101a6ae0&quot; width=&quot;100%&quot; height=&quot;600&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;​&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;b&gt;Tehtävä 1:&lt;/b&gt;&lt;br/&gt;&#10;Täydennä esimerkkiä 4 laajentamalla kielivalikoimaa jollain valitsemallasi kielellä. Esimerkiksi ruotsi, saksa, italia, ranska, yms.&lt;br/&gt;&#10;Kopioi esimerkin 4 koodi ja tee tarvittavat muutokset.&lt;br/&gt;&#10;​&lt;iframe src=&quot;https://trinket.io/embed/python/db39c5f343&quot; width=&quot;100%&quot; height=&quot;600&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;​&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;b&gt;Tehtävä 2:&lt;/b&gt;&lt;br/&gt;&#10;Täydennä esimerkkiä 4 siten, että ohjelma kysyy aluksi käyttäjän nimen. Nimen kysyminen tapahtuu vain suomen kielellä. Mutta tervehtiminen, kuulumisten kysyminen ja hyvästeleminen tapahtuvat valitulla kielellä. Ohjelma mainitaam siten myös käyttäjän nimi tapaan: '&lt;em&gt;Mitä kuuluu Matti?&lt;/em&gt;'&lt;br/&gt;&#10;Voit kopioida koodin tehtävästä 1 jatkaen siten ohjelman laajentamista tai voit kopioida koodin esimerkistä 4.&lt;br/&gt;&#10;​&lt;iframe src=&quot;https://trinket.io/embed/python/db39c5f343&quot; width=&quot;100%&quot; height=&quot;600&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;b&gt;Esimerkki 5:&lt;/b&gt;&lt;br/&gt;&#10;​&lt;iframe src=&quot;https://trinket.io/embed/python/188391236e&quot; width=&quot;100%&quot; height=&quot;150&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;​&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;b&gt;Tehtävä 3:&lt;/b&gt;&lt;br/&gt;&#10;Laajenna esimerkin 5 ohjelmistoa siten, että ohjelmassa lasketaan myös ympyrän pinta-ala ja se tulostetaan näyttöön samalla tavoin kuin ympyrän piiri. Potenssiin korottaminen voidaan toteuttaa kirjoittamalla kaksi tähteä peräkkäin; a potenssiin b = &lt;code&gt;a ** b&lt;/code&gt;.&lt;br/&gt;&#10;​&lt;iframe src=&quot;https://trinket.io/embed/python/db39c5f343&quot; width=&quot;100%&quot; height=&quot;200&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;​&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;b&gt;Tehtävä 4:&lt;/b&gt;&lt;br/&gt;&#10;Luvun kertoma on kokonaislukujen tulo alkaen ykkösestä. Esimerkiksi luvun 4 kertoma: 4! = 1 * 2 * 3 * 4 = 24&lt;br/&gt;&#10;Laadi ohjelma, joka kysyy käyttäjältä luvun ja laskee ja tulostaa luvun kertoman.&lt;br/&gt;&#10;Laadi funktio nimeltään 'kertoma', joka laskee luvun kertoman, kun funktiolle annetaan parametrina kyseinen luku. Funktio palauttaa kertoman arvon.&lt;br/&gt;&#10;Tutki, miten kertoma käyttäytyy eri arvoilla.&lt;br/&gt;&#10;Kertomalla on käytännöllinen merkitys. Esimerkiksi nelihenkinen viestijoukkue voidaan järjestää neljän kertoman verran eri järjestykseen. Moneenko eri järjestykseen Jukolan viestin joukkue (7 jäsentä) voidaan järjestää? Entäpä luokallasi olevat oppilaat?&lt;br/&gt;&#10;&lt;br/&gt;&#10;Lisätehtävä 1: laadi while true -rakenteellla silmukka, jota toistetaan niin kauan, kunnes käyttäjä antaa luvun nolla.&lt;br/&gt;&#10;Lisätehtävä 2: varmista, että mikäli käyttäjä antaa jonkin muun kuin positiivisen kokonaisluvun tai nollan ohjelma ei pääty virhetilanteeseen.&lt;br/&gt;&#10;​&lt;iframe src=&quot;https://trinket.io/embed/python/db39c5f343&quot; width=&quot;100%&quot; height=&quot;250&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;​&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;b&gt;Esimerkki 6:&lt;/b&gt;&lt;br/&gt;&#10;​&lt;iframe src=&quot;https://trinket.io/embed/python/966e3768af&quot; width=&quot;100%&quot; height=&quot;200&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;​&lt;br/&gt;&#10;&lt;b&gt;&lt;br/&gt;&#10;Tehtävä 5:&lt;/b&gt;&lt;br/&gt;&#10;Laadi funktio 'suurin', joka etsii suurimman listan alkion arvon. Tulosta se näyttöön.&lt;br/&gt;&#10;Laadi funktio 'summa', joka laskee listan alkioiden arvojen summan. Tulosta se näyttöön.&lt;br/&gt;&#10;Laadi funktio 'keskiarvo', joka tulostaa listan alkioiden arvojen keskiarvon.&lt;br/&gt;&#10;Voit kopioida edellisen esimerkin pohjaksi.&lt;br/&gt;&#10;&lt;iframe src=&quot;https://trinket.io/embed/python/db39c5f343&quot; width=&quot;100%&quot; height=&quot;600&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;​&lt;br/&gt;&#10;&lt;b&gt;&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;/b&gt;</content>
<published>2021-07-30T09:38:56+03:00</published>
</entry>


</feed>