Kaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä:



Samankaltaiset tiedostot
Kaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan valitseminen päätöksellä ja toistaminen silmukalla.

Sisällys. Kaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä. 2.2

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

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

etunimi, sukunimi ja opiskelijanumero ja näillä


3. Muuttujat ja operaatiot 3.1

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

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

12. Javan toistorakenteet 12.1

11. Javan toistorakenteet 11.1

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

12. Javan toistorakenteet 12.1

Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet:

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

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Liite: Verkot. TKK (c) Ilkka Mellin (2004) 1

Algoritmit 1. Demot Timo Männikkö

Puzzle-SM Loppukilpailu Oulu

Clifford Geertz Ø 1926 syntyy San Franciscossa

Ohjelmoinnin perusteet Y Python

Vektorit. Kertausta Seppo Lustig (Lähde: avoinoppikirja.fi)

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

Ohjelmoinnin peruskurssi Y1

KOJELAUTA MITTARISTO. A Nopeusmittari B Polttoainemittari C Moottorin lämpömittari D Kierroslukumittari E Monitoiminäyttö (perus/laajennettu)

Liite 2: Verkot ja todennäköisyyslaskenta

Ohjelmoinnin peruskurssi Y1

KOODAUSPLÄJÄYS. Ohjelmoinnin perusteet

Algoritmit 1. Demot Timo Männikkö

Scratch ohjeita. Perusteet

3. Muuttujat ja operaatiot 3.1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Pelivaihtoehtoja. Enemmän vaihtelua peliin saa käyttämällä erikoislaattoja. Jännittävimmillään Alfapet on, kun miinusruudut ovat mukana pelissä!

Pakkauksen sisältö. Ominaisuudet. - PSP MP5-soitin. - USB-kytkentäkaapeli - kuulokkeet - englanninkielinen pikaopas - seinäadapteri latausta varten

Ohjelmoinnin perusteet Y Python

2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1)

5. HelloWorld-ohjelma 5.1

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

Ohjelmassa on käytettävä funktiota laskeparkkimaksu laskemaan kunkin asiakkaan maksu. Funktio floor pyöristää luvun lähimmäksi kokonaisluvuksi.

58131 Tietorakenteet ja algoritmit (syksy 2015)

1. Universaaleja laskennan malleja

Ohjelmoinnin perusteet Y Python

Ehto- ja toistolauseet

Kenguru 2018 Ecolier (4. ja 5. luokka)

Ohjelmoinnin perusteet Y Python

Harjoitus 3 (viikko 39)

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

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

Johdatus verkkoteoriaan 4. luento

P (A)P (B A). P (B) P (A B) = P (A = 0)P (B = 1 A = 0) P (B = 1) P (A = 1)P (B = 1 A = 1) P (B = 1)

Visual Case 2. Miika Kasnio (C9767)

Ohjelmoinnin perusteet Y Python

Peliteoria luento 1. May 25, Peliteoria luento 1

Nimitys Symboli Merkitys Negaatio ei Konjuktio ja Disjunktio tai Implikaatio jos..., niin... Ekvivalenssi... jos ja vain jos...

Tynnyrisaunan asennusohje (1013)

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

Rubikin kuutio ja ryhmät. Johanna Rämö Helsingin yliopisto, Matematiikan ja tilastotieteen laitos

Vaasan yliopisto (11) Tietotekniikan ja tuotantotalouden kandidaattiohjelma Valintakoe

A* Reitinhaku Aloittelijoille

4. Lausekielinen ohjelmointi 4.1

5. HelloWorld-ohjelma 5.1

Program matopeli; uses graph,grafiikka,crt; VAR. merkkiluettu,herkkutarkistettu : boolean;

Ohjelmoinnin perusteet (Java)

1.1. Järjestelmän käynnistys

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Datatähti alkukilpailu

Venekilpailu! Esteiden väistely ja hahmon ohjaaminen

Impedanssitomografia-peli

Zeon PDF Driver Trial

Ensin klikkaa käynnistä-valikkoa ja sieltä Kaikki ohjelmat valikosta kaikki ohjelmat

VIISIPALLO PELI JOKA KEHITTÄÄ YHTENÄISYYTTÄ YHTEISTYÖTÄ YHTEISÖÄ

Aurinkopaneelin lataussäädin 12/24V 30A. Käyttöohje

Tärkeimmät toiminnot. Kertausta ja uusia toimintoja Wordistä sekä tiedostonhallinnasta. Tärkeimmät toiminnot jatkuu...

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

Kiinnittäytyminen, solmut. Käytännön veneilykurssi

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

Copylefted = saa monistaa ja jakaa vapaasti 1. Käännä omalle kielellesi. Oppitunti 19 - Audio - osa 1

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Algoritmit 1. Luento 1 Ti Timo Männikkö

9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko

10 Liiketaloudellisia algoritmeja

(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3

Tehtävä Vastaus

Kipan AC huone on pääsääntöisesti auki ja opiskelijoiden vapaasti käytettävissä.

KÄYTÖN JÄLKEEN HUOLEHDI, ETTÄ KAIKKI PALAUTETAAN PAIKALLEEN JA LAITTEET SAMMUTETAAN ASIANMUKAISESTI.

Käyttöohje CONDUCTOR

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

PROSESSIMALLINNUS. Ari Wahlstedt, KTT

Verkot ja todennäköisyyslaskenta. Verkot ja todennäköisyyslaskenta. Verkot ja todennäköisyyslaskenta: Esitiedot

RAKENNUSAKUSTIIKKA - ILMAÄÄNENERISTÄVYYS

Lukujonon raja-arvo 1/7 Sisältö ESITIEDOT: lukujonot

Esimerkiksi jos käytössä ovat kirjaimet FFII, mahdolliset nimet ovat FIFI ja IFIF. Näistä aakkosjärjestykssä ensimmäinen nimi on FIFI.

PÄIJÄT-HÄMEEN PERUSOPETUKSEN TVT-OPS NASTOLAN KOULUISSA (tiivistelmä) ALAKOULUT

Ohjelmoinnin perusteet Y Python

PALO MESA KÄYTTÖLAITTEEN KÄYTTÖOHJE HUOM! Sisältö: FI/1 MESA VIKA. Avaimen käyttö: sivu

Matematiikan tukikurssi

Taljajousen hienosäätö kiinteäteräisellä leikkurilla Suomen Jousimetsästäjäin Liitto ry

Matematiikan tukikurssi

Transkriptio:

2. Vuokaaviot 2.1

Sisällys Kaavioiden rakenne. Kaavioiden piirto symbolta yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä: algoritmi oven avaamiseen vuokaaviona, keskiarvon laskeminen ja peli luvun arvaukseen. 2.2

Vuokaaviot Graafinen kieli algoritmien kuvaamiseen. Ymmärrettäviä ja intuitiivisia. Soveltuvat monimutkaistenkin algoritmien esittämiseen. Muodostetaan yhdistelemällä symboleja nuolilla. Symbolissa algoritmin vaihe. Toiminto Päätös Kaavio suoritetaan (ajetaan) seuraamalla nuolia alkusymbolista alkaen ja loppusymboliin päätyen. Esimerkki: Avaa ovi Yksinkertaisin kaavio koostuu alku- ja loppusymbolsta sekä yhdestä toiminnosta. 2.3

Vuokaaviot Etenevät yleensä ylhäältä alas ja vasemmalta oikealle: Suunta länsimaisesta kirjoituksesta. Tilan loppuessa voi piirtää muutenkin. Aina yksi alku- ja yksi loppusymboli. Symbolsta lähtevien nuolien lukumäärä on yksikäsittnen. Symbolhin tulevien nuolien lukumäärässä tulkinnan varaa. 2.4

Lähtevät nuolet symbolista lähtee aina vain yksi nuoli. symbolista lähde nuolia. Toimintosymbolista lähtee aina vain yksi nuoli. Päätössymbolista lähtee aina kaksi nuolta, jotka vastaavat - ja päätöksiä. 2.5

Tulevat nuolet symboliin tule nuolia. Muihin symbolhin tulee aina joko yksi tai useampi nuoli. Jos symboliin tulee useampi nuoli, voidaan nuolet piirtää suoraan kiinni symboliin tai symboliin piirtää yksi nuoli, johon muut nuolet liittyvät. Kalvoilla ja mallivastauksissa pyritään käyttämään selvyyden vuoksi jälkimmäistä piirtotapaa, jolloin tulevia nuolia on aina yksi. 2.6

Oven avaaminen (versio 1) Esitetään AvaaOvialgoritmi vuokaavioina. Ensimmäisessä versiossa algoritmin vaiheet kuvataan peräkkäisissä vaihssa vapaamuotoisena tekstinä. Vedä kahvasta Tartu kahvaan Vedettävä malli? Työnnä kahvasta Toisessa versiossa avaaminen on kuvattu silmukkaa käyttäen. 2.7

Silmukka Usn on tarpeen suorittaa uudelleen vuokaavion osa. Tämä onnistuu silmukan avulla. Koostuu päätöksestä, joka yhdistetään nuolella toistettavaan vuokaavion osaan, josta piirretään nuoli takaisin päätökseen. Päätös sijoitetaan usn siten, että se on silmukan ensimmäiseksi suoritettava osa (esiehto). Toisinaan on luontevampaa sijoittaa päätös silmukan loppuun (jälkiehto). Silmukointi jatkuu niin kauan kuin päätös on silmukkaan johtavaan nuolen suuntainen. Jos päätös on muotoiltu virheellisesti, algoritmi saattaa joutua ikuiseen silmukkaan. 2.8

Oven avaaminen (versio 2) Algoritmin toiseen versioon on lisätty silmukat, joissa ovea joko vedetään tai työnnetään kahvasta kunnes ovi on auki. Avattava lisää? Vedä kahvasta Tartu kahvaan Vedettävä malli? Avattava lisää? Työnnä kahvasta 2.9

Keskiarvon laskeminen (versio 1) Ohjelma kommunikoi käyttäjänsä kanssa: luvut luetaan yksi kerrallaan ennen keskiarvon laskemista ja keskiarvo tulostetaan käyttäjälle. Oletetaan, että käyttäjä antaa aina luvun sitä pyydettäessä. Tarkennettavaa: Lukujen lukemiseen ja summan laskemiseen tarvitaan silmukka. Voi olla, että lukuja anneta. Tähän täytyy varautua. Lue luvut Laske Tulosta keskiarvo 2.10

Keskiarvon laskeminen (versio 2) Lisää lukuja? Lukuja? Laske Tulosta keskiarvo Lue luku Tulosta ilmoitus Summaa Kaaviosta käy vielä ilmi laskemisen logiikka kuten keskiarvon kaavasta. Erityisesti pitää pohtia: kuinka silmukka toteutetaan ja kuinka Laske-vaiheen sisältö määritellään tarkemmin? 2.11

Peli luvun arvaukseen Peli arpoo kokonaisluvun käyttäjän tuntemalta väliltä. Käyttäjän tehtävänä on arvata lukua kunnes hän osuu oikeaan. Väärin menneen arvauksen osalta käyttäjälle kerrotaan oliko luku liian pieni tai suuri suhteessa arvattavaan lukuun. Oikeasta arvauksesta onnitellaan. Algoritmiin tarvitaan silmukka, koska on hyvin epätodennäköistä, että käyttäjä arvaa luvun heti. Jälkiehto on luonteva, koska käyttäjä arvaa aina vähintään kerran. Silmukassa luetaan arvaus ja tehdään päätöksiä, joiden avulla kerrotaan oliko arvaus mahdollisesti ali, yli tai oikn. Arpominen on tehtävä on ennen silmukkaa, jotta luvun arvaaminen on mahdollista vihjden avulla. 2.12

Peli luvun arvaukseen Arvo arvattava luku Liian pienestä ja suuresta arvauksesta ilmoittavista toiminnoista voitaisiin palata suoraan arvauksen lukemiseen, jolloin lukujen erisuuruutta tutkivaa päätöstä tarvittaisi. Päätös on mukana, koska algoritmssa pyritään yleensä selkeyden vuoksi palaamaan silmukan alkuun vain yhtä rttiä. Älä huolestu tästä! Voit käyttää harjoitustehtävissä lyhyempää tapaa. Pitemmän ja lyhyemmän vuokaavion ero selviää, kun silmukoihin palataan Javan merkssä. Lue arvaus Arvaus pienempi kuin arvattava? Arvaus suurempi kuin arvattava? Onnittele käyttäjää Kerro arvauksen olevan liian pieni Kerro arvauksen olevan liian suuri Arvaus eri suuri kuin arvattava? 2.13

Pohdintaa Vuokaavioiden ongelmia: Graafinen esitys poikkeaa paljon usmmista ohjelmointikielistä. Algoritmin tarkentaminen kasvattaa kaaviota nopeasti. Kaavioiden piirtäminen on työlästä. Vapaamuotoisesti tekstillä kuvaillut algoritmin vaiheet ovat liian monikäsittsiä tietokoneelle. Kuinka algoritmin esitys voidaan tarkentaa tietokoneen ymmärtämälle tasolle? 2.14