keskiviikko 23. marraskuuta 2016
9. Pohdintaa
Viimeinen tehtävä on aika paha nakki...
Kirjoita blogiteksti, jossa otat kantaa seuraaviin asioihin:
Kirjoita blogiteksti, jossa otat kantaa seuraaviin asioihin:
- Mikä on ollut tämän syksyn at:ssa vaikeaa?
- Mikä on ollut tämän syksyn at:ssa mielenkiintoista?
- Mikä on ollut tämän syksyn at:ssa kauheaa, vaikeaa, tylsää?
- Mikä kiinnostaisi tutustumis-/opiskeluaiheena kevään kurssille?
keskiviikko 16. marraskuuta 2016
8. Mediakritiikkiä
Lue Aamulehden 13.10.2015 artikkeli "Näin tunnistat onko uutinen totta vai tarua" (kaksi sivua A12 ja A13) ja sen jälkeen allaolevan ohjeen mukaan tutki kaksi liioittelevaa/täysin virheellistä uutista ja kirjoita raportti.
- Valitse A13 sivun Fakta-laatikon feikkisivusto-listasta jokin sivusto.
- Mene sivustolle ja etsi käsiisi jokin uutinen.
- Lue uutinen tarkasti ja "kriittisesti".
- Ota linkki uutiseen talteen ja näytönkaappauskuva näkymästä.
- Etsi oikeilta uutis- ja tietosivuilta asiaan liittyviä uutisia (linkit talteen).
- Toista kohdat 1-5 eli tutki vielä toinen kyseenalainen uutinen.
- Kirjoita Office365-wordillä kirjoitus, jossa "paljastat" totuuksia. Voit tehdä normaalin vertailevan tekstin tehostamiseksi myös esim. koontitaulukon, jossa on listattu "feikkifaktoja" ja toisessa sarakkeessa miten asia "oikeasti" on kahden tutkimasi uutisen tapauksessa.
- Keksi kirjoituksellesi mullistava otsikko tyyliin "Maa ei ole tiedemiesten mukaan litteä, mies putosi reunalta kuitenkin"
- Liitä kirjoitukseesi myös näytönkaappauskuvat uutisista.
- Loppuun lisää lähdeluettelo tietolähteistä, joita olet käyttänyt (katso vaikka Wikipediasta mallia, kuinka lähteet on merkattu).
- Jaa kirjoitus O365:ssä opettajalle ja tee blogiisi pikku raportti siitä, mitä uutista olet arvioinut ja liitä mukaan näytönkaappauskuvat uutisista.
torstai 3. marraskuuta 2016
7. Exceliä O365
Harjoitellaan taulukkolaskentaa. Käytämme harjoitukseen Office365:n
Excel-sovellusta. Office365 ja Excel ovat käytettävissäsi Hakkarin
koulun oppilaana, kun kirjaudut täältä. Huomaa, että Office365 ei toimi Chromella, joten käytä Firefoxia tai Internet Exploreria.
Tehtävänäsi laatia alla kuvassa näkyvän mukainen laskentataulukko ja korjata mallissa olevat XXXXXX-kohdat oikeiksi laskukaavoiksi tai teksteiksi. Laskettavia asioita ei siis lasketa laskimella tms. vaan teet laskukaavan soluun niin, että taulukkolaskentaohjelma laskee luvut puolestasi.
Ohjeita/vaatimuksia:
Jaa valmis taulukko opettajalle O365:ssä "voi muokata"-muodossa ja ota näytönkuva taulukostasi blogia varten. Blogiin kirjoitat miten sujui, ja mikä oli vaikeaa. Kerro myös, mikä oli esimerkissä vuoden alkupuoliskon tulos ja oliko se voittoa vai tappiota. Liitä mukaan näytönkuva.
Tässä lähtötilannetta kuvastava taulukon kuva:
Tehtävänäsi laatia alla kuvassa näkyvän mukainen laskentataulukko ja korjata mallissa olevat XXXXXX-kohdat oikeiksi laskukaavoiksi tai teksteiksi. Laskettavia asioita ei siis lasketa laskimella tms. vaan teet laskukaavan soluun niin, että taulukkolaskentaohjelma laskee luvut puolestasi.
Ohjeita/vaatimuksia:
- Täydennä kuukausien nimet kohdilleen - automaattinen täyttö nopeuttaa.
- Muista, että laskentataulukon solussa kaavat alkavat aina merkillä "=".
- Saat laskentakaavalla helposti laskettua summan kaikkien valitsemiesi solujen arvoista.
- Voitto-riville laske kuukauden tulojen ja menojen erotus.
- Keskiarvolle, pienimmälle("minimi") ja suurimmalle ("maksimi") arvolle löytyy myös omat funktiot.
- Tulos-riville tarvitset JOS-funktiota, joka muuttaa solun arvoksi joko "Voitto!" tai "Tappio!" riippuen vastaavan voitto-rivin solun arvosta.
- JOS-funktion toiminta: "=JOS(ehtolauseke; tosi; epätosi)" eli jos ehtolauseke toteutuu, tehdään "tosi" ja jos ehtolauseke ei toteudu niin tehdään "epätosi".
- Muotoile myös reunuksia ja tekstin- ja soluvärityksiä tehosteiksi selventääksesi luettavuutta.
- Yhteensä-rivit kannattaa saattaa erottuviksi, samoin erillinen tilastolaskelma, myös koko alkuvuoden tulosta kuvaavat yhteensä-solu ja sen tulos-teksti kannattanee korostaa.
Jaa valmis taulukko opettajalle O365:ssä "voi muokata"-muodossa ja ota näytönkuva taulukostasi blogia varten. Blogiin kirjoitat miten sujui, ja mikä oli vaikeaa. Kerro myös, mikä oli esimerkissä vuoden alkupuoliskon tulos ja oliko se voittoa vai tappiota. Liitä mukaan näytönkuva.
Tässä lähtötilannetta kuvastava taulukon kuva:
maanantai 3. lokakuuta 2016
6. Python V
Listojen avulla ohjelma voi käsitellä kätevästi suurta määrää tietoa.
Esimerkiksi jos ohjelman muistissa ovat sadan käyttäjän nimet, niiden
tallentaminen erillisiin muuttujiin
Listojen merkittävä etu on, että ohjelman rakenne pysyy samana, vaikka tiedon määrä olisi vaihteleva. Esimerkiksi nimien käsittelyssä samanlainen ohjelma kelpaa tilanteissa, joissa nimiä on viisi, sata ja miljoona. Lisäksi vaikka tiedon määrä olisi pieni, listat voivat selventää ohjelman rakennetta.
Lista on yleisin Python-kielen valmiista tietorakenteista ja soveltuu moniin ohjelmointitehtäviin. Lisää esimerkkejä listan sovelluksista tulee vastaan opassarjan myöhemmissä osissa.
Seuraavassa ohjelmassa on lista
Ohjelman tulostus on seuraava:
Listan luonnissa alkiot merkitään hakasulkujen sisään pilkuilla
erotettuina. Tämän jälkeen alkioihin voi viitata kokonaisluvuin nollasta
alkaen: tässä
Ohjelman tulostus voi olla seuraava:
Ohjelman toiminta perustuu siihen, että listan alkioon voi viitata
muuttujan avulla. Listassa kuukausien numerointi alkaa nollasta, minkä
vuoksi ohjelma pienentää yhdellä käyttäjän antamaa numeroa. Esimerkiksi
jos käyttäjä antaa numeron 9, ohjelma hakee kuukauden nimen kohdasta
Tässä on ohjelman mahdollisia tulostuksia:
Jos nimi on Markus, Mikko tai Aino, ohjelma tulostaa viestin
"Mitä uutta, kuoma?". Muuten ohjelma tulostaa viestin "Et kuulu
sisäpiiriin!".
Ohjelman tulostus voi olla seuraava:
Seuraava ohjelma tulostaa kaikkien viikonpäivien nimet:
Ohjelman tulostus on seuraava:
Seuraava ohjelma kysyy käyttäjältä sanoja, kunnes käyttäjä antaa
tyhjän sanan. Sitten ohjelma tulostaa sanojen määrän ja kaikki sanat.
Ohjelman tulostus voi olla seuraava:
Tässä funktio
Seuraava ohjelma etsii listasta käyttäjän antaman kuukauden:
Ohjelman tulostus voi olla seuraava:
Tällä kertaa kuukauden kohtaan listassa pitää lisätä yksi, jotta
tuloksena on tuttu kuukauden numero. Esimerkiksi jos kuukausi on
syyskuu, se on listassa kohdassa
Ohjelman tulostus voi olla seuraava:
Ohjelman alussa lista sisältää kaikkien presidenttien nimet. Aina kun
käyttäjä muistaa presidentin, ohjelma poistaa sen listasta. Tämän
ansiosta käyttäjä ei voi kerätä pisteitä antamalla saman nimen monta
kertaa. Ohjelma päättyy, jos käyttäjä antaa tyhjän nimen tai muistaa
kaikki nimet.
Ohjelman tulostus voi olla seuraava:
Funktiot
nimi1, nimi2, nimi3, ..., nimi100 olisi hankalaa. Kun nimet ovat listassa, kaikkiin nimiin voi viitata helposti yhden muuttujan nimet kautta.Listojen merkittävä etu on, että ohjelman rakenne pysyy samana, vaikka tiedon määrä olisi vaihteleva. Esimerkiksi nimien käsittelyssä samanlainen ohjelma kelpaa tilanteissa, joissa nimiä on viisi, sata ja miljoona. Lisäksi vaikka tiedon määrä olisi pieni, listat voivat selventää ohjelman rakennetta.
Lista on yleisin Python-kielen valmiista tietorakenteista ja soveltuu moniin ohjelmointitehtäviin. Lisää esimerkkejä listan sovelluksista tulee vastaan opassarjan myöhemmissä osissa.
Lista
Lista on muuttuja, joka sisältää kokoelman alkioita tietyssä järjestyksessä. Listassa olevat alkiot voivat olla esimerkiksi lukuja tai merkkijonoja.Seuraavassa ohjelmassa on lista
nimet, joka sisältää
nimet Henrikki, Uolevi ja Antti. Ohjelma tulostaa ensin nimet yksi
kerrallaan ja sitten uudestaan koko listan. Tämän jälkeen ohjelma
muuttaa Uolevin nimeksi Einari ja tulostaa vielä koko listan.Ohjelman tulostus on seuraava:
Ensin tulee Markus Sitten on Mikael Viimeisenä on Elisa
Tässä vielä koko joukko: ['Markus', 'Mikael', 'Elisa'] Toinen onkin Einari Tässä vielä koko joukko: ['Markus', 'Einari', 'Elisa']
nimet[0] on ensimmäinen nimi, nimet[1] on toinen nimi ja nimet[2] on kolmas nimi. Listan koko sisällön voi tulostaa antamalla pelkän listan nimen print-komennolle.Esimerkki: Kuukaudet
Yksi listan käyttötarkoitus on, että se toimii ohjelman tietovarastona. Seuraavassa ohjelmassa lista sisältää kuukausien nimet suomeksi, jolloin ohjelman on helppoa nimetä käyttäjän antama kuukausi.Ohjelman tulostus voi olla seuraava:
Anna kuukausi (1-12): 9 Kuukauden nimi: syyskuu
lista[8].Listassa oleminen
Totuusarvoalkio in lista on tosi, jos alkio on listassa. Vastaavasti totuusarvo alkio not in lista on tosi, jos alkio ei ole listassa. Seuraava ohjelma tulostaa eri viestin listassa oleville käyttäjille.Tässä on ohjelman mahdollisia tulostuksia:
Anna nimi: Markus Mitä uutta, kuoma?
Anna nimi: Sakke Et kuulu sisäpiiriin!
Alkion lisääminen
Listaan voi lisätä alkioita metodillaappend.
Seuraavassa esimerkissä lista on aluksi tyhjä ja ohjelma lisää siihen
käyttäjän antamia sanoja. Ohjelma päättyy, kun käyttäjä antaa saman
sanan uudestaan.Ohjelman tulostus voi olla seuraava:
Kirjoita sana: talo Kirjoita sana: metsä Kirjoita sana: auto Kirjoita sana: tie Kirjoita sana: metsä Kirjoitit saman sanan uudestaan!
Kirjoitit sanat: ['talo','metsä','auto','tie']
Listan läpikäynti
Listassa olevat alkiot voi käydä läpifor-silmukalla.
Silmukalle annetaan muuttuja ja lista, jonka jälkeen muuttujan arvo on
silmukan joka kierroksella vuorollaan yksi listan alkioista.Seuraava ohjelma tulostaa kaikkien viikonpäivien nimet:
Ohjelman tulostus on seuraava:
maanantai tiistai keskiviikko torstai perjantai lauantai sunnuntai
Ohjelman tulostus voi olla seuraava:
Kirjoita sana: apina Kirjoita sana: banaani Kirjoita sana: cembalo Kirjoita sana: Kirjoitit 3 sanaa. Sanat ovat: apina banaani cembalo
len kertoo, kuinka monta alkiota listassa on.
Listan metodit
Listaan liittyvät mm. seuraavat metodit:| metodi | selitys |
|---|---|
lista.append(alkio) | lisää alkion listaan (tämä on jo tuttu) |
lista.index(alkio) | etsii alkion kohdan listassa |
lista.count(alkio) | laskee alkion esiintymiskerrat listassa |
lista.remove(alkio) | poistaa alkion listasta |
lista.sort() | järjestää listan alkiot |
lista.reverse() | kääntää listan toisinpäin |
Ohjelman tulostus voi olla seuraava:
Anna kuukauden nimi: syyskuu Kuukauden numero: 9
lista[8] ja ohjelma ilmoittaa numeroksi 9.Esimerkki: Presidentit
Seuraava ohjelma tarkistaa, kuinka monta presidenttiä käyttäjä muistaa:Ohjelman tulostus voi olla seuraava:
Kuinka monta presidenttiä muistat? Nimi: Kekkonen Oikein! Nimi: Virtanen Ei kelpaa! Nimi: Halonen Oikein! Nimi: Kekkonen Ei kelpaa! Nimi: Mannerheim Oikein! Nimi: Muistit 3 presidenttiä!
Esimerkki: Lukutilasto
Seuraava ohjelma lisää käyttäjän antamia lukuja listaan, kunnes käyttäjä antaa luvun nolla. Sitten ohjelma ilmoittaa listan pienimmän ja suurimman luvun, listan lukujen summan sekä järjestyksessä kaikki eri luvut esiintymiskertoineen.Ohjelman tulostus voi olla seuraava:
Kirjoita luku: 5 Kirjoita luku: 3 Kirjoita luku: 5 Kirjoita luku: 8 Kirjoita luku: 2 Kirjoita luku: 2 Kirjoita luku: 5 Kirjoita luku: 0 Pienin luku: 2 Suurin luku: 8 Lukujen summa: 30 Luku 2 on listassa 2 kertaa. Luku 3 on listassa 1 kertaa. Luku 5 on listassa 3 kertaa. Luku 8 on listassa 1 kertaa.
min, max ja sum
kertovat listan pienimmän luvun, suurimman luvun ja lukujen summan.
Ohjelma käy lopuksi läpi kaikki luvut mutta tulostaa jokaisen eri luvun
vain kerran. Tämän vuoksi ohjelma pitää muistissa muuttujassa vanha edellisen kierroksen lukua.keskiviikko 28. syyskuuta 2016
5. Python IV
Toistorakenteet
Ehtorakenteiden avulla ohjelma voi suorittaa valikoivasti koodirivejä, mutta ohjelman suoritus etenee silti koko ajan rivejä alaspäin. Toistorakenteet antavat ohjelmalle mahdollisuuden suorittaa samoja rivejä monta kertaa peräkkäin. Nyt jos ohjelman täytyy tehdä monta kertaa sama asia, tarvittava koodi riittää kirjoittaa kerran.Python-kielen toistorakenteet ovat
while-silmukka, jossa ohjelma toistaa samaa koodia niin kauan, kuin jokin ehto on voimassa, sekä for-silmukka,
jossa ohjelma käy läpi joukon tietoja ja suorittaa jokaisen kohdalla
saman koodin. Tämä opas esittelee molemmat toistorakenteet, vaikka for-silmukka pääsee täysiin oikeuksiinsa vasta seuraavissa oppaissa listojen ja merkkijonojen käsittelyssä.while-silmukka
Seuraava ohjelma kysyy käyttäjältä tunnussanaa, kunnes käyttäjä antaa oikean tunnussanan "python".Ohjelmassa onKirjoita tunnussana: kissa Kirjoita tunnussana: putka Kirjoita tunnussana: python Tervetuloa!
while-silmukka, jonka alussa on totuusarvomuotoinen ehto. Tässä ehto sana != "python"
tarkoittaa, että ohjelma toistaa silmukkaa niin kauan, kuin tunnussana
ei ole oikein. Jokaisella silmukan kierroksella ohjelma kysyy
käyttäjältä tunnussanaa, ja kun käyttäjä antaa oikean tunnussanan,
silmukan ehto ei ole enää voimassa ja silmukka päättyy.Esimerkissä ohjelman suoritus etenee seuraavasti:
- Muuttuja
sanasaa alkuarvon"". - Ohjelma saapuu silmukkaan.
- Ehto
sana != "python"pätee ja ohjelma suorittaa silmukan koodin. - Silmukassa
sanasaa arvon"kissa". - Ohjelma palaa silmukan alkuun.
- Ehto
sana != "python"pätee ja ohjelma suorittaa silmukan koodin. - Silmukassa
sanasaa arvon"putka". - Ohjelma palaa silmukan alkuun.
- Ehto
sana != "python"pätee ja ohjelma suorittaa silmukan koodin. - Silmukassa
sanasaa arvon"python". - Ohjelma palaa silmukan alkuun.
- Ehto
sana != "python"ei päde ja silmukka päättyy.
for-silmukka
Seuraava ohjelma tulostaa lukujen 0–9 neliöt eli luvut korotettuna toiseen potenssiin. Esimerkiksi luvun 5 neliö on 25, koska 52 = 5 * 5 = 25.Ohjelman tulostus on seuraava:
Ohjelmassa onLuvun 0 neliö on 0 Luvun 1 neliö on 1 Luvun 2 neliö on 4 Luvun 3 neliö on 9 Luvun 4 neliö on 16 Luvun 5 neliö on 25 Luvun 6 neliö on 36 Luvun 7 neliö on 49 Luvun 8 neliö on 64 Luvun 9 neliö on 81
for-silmukka, joka käy läpi joukon tietoja ja suorittaa joka tiedon kohdalla saman koodin. Tässä range(10)
tarkoittaa, että silmukka käy läpi kymmenen ensimmäistä kokonaislukua
nollasta alkaen. Jokaisella silmukan kierroksella muuttuja i saa arvokseen käsiteltävän kokonaisluvun.Esimerkissä ohjelman suoritus etenee seuraavasti:
- Muuttuja
isaa arvon0. - Ohjelma suorittaa silmukan sisällä olevan koodin.
- Muuttuja
isaa arvon1. - Ohjelma suorittaa silmukan sisällä olevan koodin.
- Muuttuja
isaa arvon2. - Ohjelma suorittaa silmukan sisällä olevan koodin.
- (jne.)
| merkintä | lukuväli |
|---|---|
range(10) | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 |
range(5, 15) | 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 |
range(-6, 3) | -6, -5, -4, -3, -2, -1, 0, 1, 2 |
range(24, 16, -1) | 24, 23, 22, 21, 20, 19, 18, 17 |
range(3, 20, 2) | 3, 5, 7, 9, 11, 13, 15, 17, 19 |
range(35, 4, -4) | 35, 31, 27, 23, 19, 15, 11, 7 |
for-silmukalla voi tehdä kuin käydä läpi lukuvälejä.Keskeytys
Tunnussanan kysymisen voi toteuttaa myös seuraavasti:Tässä silmukan alussa on ehto
True, joka on aina tosi eikä rajoita silmukan toistamista. Kuitenkin silmukan sisällä komento break
keskeyttää silmukan, jos käyttäjä antaa oikean tunnussanan. Silmukan
toimintatapa on siis ennallaan, mutta ehdon sijainti poikkeaa aiemmasta.Komentoa
break voi käyttää kaikissa silmukoissa: while-silmukassa se keskeyttää silmukan, vaikka alkuehto olisi voimassa, ja for-silmukassa se keskeyttää silmukan, vaikka kaikkia tietoja ei olisi vielä käsitelty.Uusi kierros
Seuraava ohjelma tulostaa parittomien lukujen neliöitä:Ohjelman tulostus on seuraava:
Tässä silmukan sisällä on komentoLuvun 1 neliö on 1 Luvun 3 neliö on 9 Luvun 5 neliö on 25 Luvun 7 neliö on 49 Luvun 9 neliö on 81
continue, joka siirtyy
silmukassa uudelle kierrokselle, jos käsiteltävä luku on parillinen.
Komennon vaikutuksesta silmukan loppuosa jää suorittamatta, jos luku on
parillinen, eli silmukka tulostaa vain parittomien lukujen neliöt.Komentoa
continue voi käyttää kaikissa silmukoissa: while-silmukassa se palaa silmukan alkuun ehdon tarkistukseen, ja for-silmukassa se palaa silmukan alkuun ja siirtyy seuraavan tiedon käsittelyyn.Esimerkki: Suorakulmiot
Seuraava ohjelma tulostaa suorakulmioita käyttäjän ohjeiden mukaisesti:Ohjelman tulostus voi olla seuraava:
Ohjelman pääsilmukka onKorkeus: 4 Leveys: 5 ***** ***** ***** ***** Haluatko jatkaa (k/e)? k Korkeus: 2 Leveys: 10 ********** ********** Haluatko jatkaa (k/e)? k Korkeus: 6 Leveys: 3 *** *** *** *** *** *** Haluatko jatkaa (k/e)? e
while-silmukka, jonka jokaisella kierroksella ohjelma tulostaa yhden suorakulmion for-silmukan avulla. Ensimmäinen for-silmukka tulostaa yhden suorakulmion rivin, ja toinen for-silmukka tulostaa yhden rivillä olevan merkin.Esimerkki: Luvun tekijät
Luvun jakaminen tekijöihin tarkoittaa, että luku esitetään kertolaskuna, jossa olevia lukuja (tekijöitä) ei voi enää jakaa osiin. Toisin sanoen luku esitetään alkulukujen tulona. Esimerkiksi luvun 15 tekijät ovat 3 ja 5, koska 3 * 5 = 15, ja luvun 44 tekijät ovat 2, 2 ja 11, koska 2 * 2 * 11 = 44. Luku 31 on alkuluku, joten sitä ei voi jakaa osiin.Seuraava ohjelma jakaa annetun luvun tekijöihin:
Seuraavassa on muutamia ohjelman tulostuksia:
Ohjelma käy läpi mahdollisia luvun tekijöitä 2:sta alkaen. Jokaisen tekijän kohdalla luku jaetaan tekijällä ja tekijä tulostetaan, kunnes luku ei ole enää jaollinen tekijällä. Ohjelma päättyy, kun kokeiltava tekijä on lukua suurempi. Käytännössä tällöin luku on jakolaskujen seurauksena 1.Anna luku: 15 3 * 5Anna luku: 44 2 * 2 * 11Anna luku: 31 31
Esimerkki: Viljanjyvät
Tarinan mukaan shakkipelin keksijä pyysi palkkiokseen yhden viljanjyvän shakkilaudan ensimmäiseen ruutuun, kaksi toiseen ruutuun, neljä kolmanteen ruutuun, kahdeksan neljänteen ruutuun jne., siis joka ruutuun kaksinkertaisen määrän jyviä edelliseen ruutuun verrattuna.Seuraava ohjelma laskee, kuinka monta viljanjyvää shakkilaudan kuhunkin ruutuun tulisi ja kuinka monta viljanjyvää shakkilaudalla olisi yhteensä.
Ohjelman tulostus on seuraava:
Shakkipelin keksijän palkkiota ei pystytty koskaan maksamaan, koska koko maailmassa ei ole näin monta viljanjyvää.Ruudussa 1 on 1 jyvää Ruudussa 2 on 2 jyvää Ruudussa 3 on 4 jyvää Ruudussa 4 on 8 jyvää ... (välissä rivejä) Ruudussa 61 on 1152921504606846976 jyvää Ruudussa 62 on 2305843009213693952 jyvää Ruudussa 63 on 4611686018427387904 jyvää Ruudussa 64 on 9223372036854775808 jyvää Yhteensä 18446744073709551615 jyvää
torstai 15. syyskuuta 2016
4. Python III
Totuusarvo
Totuusarvo on joko tosi (True) tai epätosi (False):
jokin asia pitää paikkansa tai ei pidä paikkaansa. Esimerkiksi
"pistemäärä on yli 1000" ja "pelaajan nimi ei ole Einari" vastaavat
totuusarvoja, jotka voivat olla ohjelman yhdellä suorituskerralla tosia
ja toisella suorituskerralla epätosia. Jos pelaajalla on 1500 pistettä
ja hänen nimensä on Einari, ensimmäinen totuusarvo on tosi mutta toinen
totuusarvo on epätosi.Totuusarvoja tuottavat vertailut, joissa tarkistetaan, ovatko kaksi lukuarvoa tai merkkijonoa samat tai mikä on niiden suuruusjärjestys tai aakkosjärjestys:
| vertailu | milloin tosi? |
|---|---|
X == Y | X on sama kuin Y |
X != Y | X ei ole sama kuin Y |
X < Y | X on pienempi kuin Y |
X <= Y | X on pienempi tai sama kuin Y |
X > Y | X on suurempi kuin Y |
X >= Y | X on suurempi tai sama kuin Y |
!= sijasta voi käyttää myös merkintää <>.
Jos vertailussa ovat lukuarvot, "pienempi" ja "suurempi" tarkoittavat
lukujen suuruusjärjestystä. Jos vertailussa ovat merkkijonot, "pienempi"
ja "suurempi" tarkoittavat merkkijonojen aakkosjärjestystä, joka
riippuu siitä, missä järjestyksessä merkit ovat käytetyssä merkistössä.- Anna muuttujille "nimi" ja "vuosi" eri arvot ja tulosta totuusarvoja erilaisista vertailuista. Kts. koodi lopussa.
nimi != "Antti", vuosi >= 1672 ja nimi > "Antti" ovat tosia, koska nimi ei ole Antti, vuosi on ainakin 1672 ja nimi on aakkosissa Antin jälkeen. Vertailut vuosi == 1726 ja vuosi < 1600 ovat epätosia, koska vuosi ei ole 1726 ja vuosi ei ole myöskään alle 1600.
Useamman vertailun voi tehdä myös peräkkäin, jolloin tulos on tosi, jos kaikki yksittäiset vertailut toteutuvat.
- Anna muuttujille a ja b arvot ja vertaile niitä vertailuilla seuraavasti
0 < 1 < 2on tosi, koska0 < 1on tosi ja1 < 2on tosi. Vertailua < b < 1on epätosi, koskab < 1on epätosi. Vertailua < b == 0on tosi, koskaa < bon tosi jab == 2on tosi. (Kts.koodi)
Ehtorakenne
Ehtorakenne muuttaa ohjelman suoritusta sen mukaan, onko jokin totuusarvo tosi vai epätosi eli pitääkö jokin ehto paikkansa vai ei. Seuraava ohjelma tervehtii käyttäjää vain, jos hänen nimensä on Ehtorakenteen aloittaaif-sana, jonka jälkeen tulee
totuusarvomuotoinen ehto. Jos ehto on tosi, ohjelma suorittaa
ehtorakenteen sisällä olevat rivit. Muuten ohjelma hyppää ehtorakenteen
yli. Tässä ehto on tosi, jos nimi on Henrikki, ja muuten epätosi.'- Tee ohjelma, joka tervehtii käyttäjää vain jos hänen nimensä on Henrikki.
Nimi: Antti
Ei muuta...Nimi: Henrikki Hoi, sankari! Minne matka? Ei muuta...
Python tunnistaa ehtorakenteen sisällä olevat rivit siitä, että ne on sisennetty eli niiden edessä on ylimääräistä tyhjää. Ohjelmoijan päätettävissä on, kuinka paljon tyhjää rivien edessä on, kunhan kaikkien ehtorakenteessa olevien rivien edessä on yhtä paljon tyhjää.
Lisää ehtoja
Seuraava ohjelma tervehtii Henrikkiä eri tavoin kuin muita. Ohjelma sanoo Henrikille "Hoi, sankari!" ja kaikille muille "Hellurei!". Nyt ehtorakenteen loppuun lisätäänelse-osa, jonka ohjelma suorittaa, jos alussa oleva ehto ei ole tosi.Tässä ovat ohjelman erilaiset tulostukset:
Nimi: Henrikki Hoi, sankari!Nimi: Antti Hellurei!
Sitten ehtorakenteen laajin muoto: Ohjelma suorittaa ensimmäisen
if- tai elif-osan, jota vastaava ehto on tosi. Jos mikään ehto ei ole tosi, ohjelma suorittaa else-osan.- Seuraava ohjelma tekee omat tervehdykset Henrikille, Antille ja Uoleville. Kaikkia muita ohjelma tervehtii samalla tavalla.
Nimi: Henrikki Hoi, sankari!
Nimi: Antti Morjens!
Nimi: Uolevi Tsaukki!
Ehtorakenteesta voi aina puuttuaNimi: Justiina Hellurei!
else-osa, jolloin ohjelma ei tee mitään, jos mikään ehto ei ole tosi.Totuusarvojen yhdistys
Totuusarvoja voi yhdistää toisiinsa seuraavin merkinnöin:| yhdistys | milloin tosi? |
|---|---|
A and B | A on tosi ja B on tosi |
A or B | A on tosi tai B on tosi |
not A | A ei ole tosi |
and avulla voi tarkistaa, päteekö monta ehtoa yhtä aikaa, ja yhdistyksen or avulla voi tarkistaa, päteekö ainakin yksi ehdoista.- Seuraavan ohjelman pitäisi tarkistaa, ovatko käyttäjän tunnus ja salasana oikein: Ohjelma tulostaa "Oikein!", jos tunnus on "antti" ja salasana on "abc".
- Seuraavaksi tee ohjelma, joka tarkistaa käyttäjän iän ja tulostaa "Mahdotonta!", jos käyttäjä on alle 0 vuotta tai yli 120 vuotta.
Jos totuusarvo on monimutkainen, sulkujen avulla voi varmistaa, että Python tulkitsee sen oikein. Esimerkiksi on vaikeaa tietää, miten Python tulkitsee totuusarvon
tunnus == "antti" and salasana == "abc" or suojaus == 0. Sulkujen avulla pystyy erottamaan mahdolliset tulkinnat:(tunnus == "antti" and salasana == "abc") or suojaus == 0tunnus == "antti" and (salasana == "abc" or suojaus == 0)
Tietokilpailu
- Tee tietokilpailupeli, joka kysyy käyttäjältä kysymyksiä. Jokaisesta oikeasta vastauksesta saa pisteen, ja ohjelma ilmoittaa lopuksi pistemäärän.
Ohjelmassa muuttuja
Lyhennys
Vastaavaa merkintää voi käyttää myös muiden laskutoimitusten kanssa.
Ohjelman tulostus voisi olla seuraava:pisteet on laskurimuuttuja, jonka
arvo on aluksi nolla ja jonka arvo kasvaa yhdellä aina, kun käyttäjä
vastaa kysymykseen oikein.Lyhennys
pisteet += 1 tarkoittaa samaa kuin pisteet = pisteet + 1.Vastaavaa merkintää voi käyttää myös muiden laskutoimitusten kanssa.
Tervetuloa tietokilpailuun!
Kuinka monta sekuntia on tunnissa?
3600
Oikein!
Minä vuonna J. Sibelius kuoli?
1957
Oikein!
Mikä on Bulgarian pääkaupunki?
Plovdiv
Väärin!
Peli loppui!
Pisteet: 2
Arvaaja
- Tee ohjelma, joka arvaa käyttäjän ajatteleman viikonpäivän. Ohjelma kysyy korkeintaan kolme kyllä/ei-kysymystä.
Ajattele jotain viikonpäivää! Onko viikonpäivän nimessä n-kirjain (k/e)? e Onko viikonpäivän nimessä k-kirjain (k/e)? e Onko viikonpäivän nimessä r-kirjain (k/e)? k Viikonpäivä on torstai!
Ohjelma sisältää paljon sisäkkäisiä ehtorakenteita, joissa liikutaan sen mukaan, mitä vastauksia käyttäjä antaa kysymyksiin. Ohjelman täytyy tulostaa monessa kohdassa melkein samanlainen kysymys, minkä vuoksi kysymyksen alkuosa ja loppuosa haetaan muuttujista. Kuten ohjelmasta näkyy,
input-funktion tulos voi olla suoraan osana ehtoa.torstai 8. syyskuuta 2016
3. Python II
Yritä tehdä seuraavien ohjeistusten (ja opettajan tunnin alun ohjeiden mukaan) avulla koodit jotka tekevät pyydetyt asiat. Tee kaikki yhteen ja samaan python-tiedostoon. Lopuksi ota vielä viimeisestä ohjelman suorituksesta ruudunkaappauskuva suoritusikkunasta ja jaa se blogiisi. Python-kooditiedosto OneDrive-kansioonsa.
Näytölle tulostaminen
Näppäimistön lukeminen
Tyyppimuunnokset
Vakiot
Luovuutta!
Alla kuvassa on yhdenlaiset mallisuoritukset, omien koodiesi ei tarvitse olla täsmälleen samanlaiset, mutta kuvan koodi voi antaa vinkkejä suoritukseen.
Näytölle tulostaminen
- Komennolla print tulostetaan näytölle
- Esim. print("Tämä tulostuu!")
- Tee koodi, joka tulostaa "Ohjelmointi on hauskaa!"
- Tee toinen koodi, jossa annat muuttujille lukuarvot ja viime tunnin ohjeiden mukaan tulostat lukujen arvot.
- Tee kolmas koodi, jossa annat muuttujille lukuarvot ja tulostat luvut ja lukujen summan.
Näppäimistön lukeminen
- Komennolla input voi pyytää käyttäjää antamaan tietoja ohjelmalle
- Vastaus palautetaan aina merkkijonona, vaikka käyttäjä antaisikin luvun
- Tee koodi, joka kysyy käyttäjän nimen ja tulostaa "Hei NIMI"
Tyyppimuunnokset
- input-käsky palauttaa käyttäjän syötteen aina merkkijonona, joten ennen kuin käyttäjältä saatuja tietoja voi käyttää laskutoimituksissa, tulee tehdä tyyppimuunnos merkkijonosta luvuksi
- float on desimaaliluku ja int kokonaisluku
- Tee koodi joka kysyy luvun ja tulostaa luvun kaksinkertaiseksi kerrottuna
Vakiot
- Vakio on ohjelmassa kiinteästi määritelty arvo, jolle on annettu sitä kuvaava nimi eikä sen arvoa muuteta.
- Vakiot tekevät koodista helpommin ymmärrettävää.
- Sen sijaan, että kirjoittaisi saman lukuarvon useaan kohtaan koodia, voi käyttää vakion nimeä.
- Vakioiden nimet kirjoitetaan isoilla kirjaimilla.
- Esim. KILOHINTA
- Tee koodi, joka saa vakiona kilohinnan ja pakkauskulut ja kysyy painon. Tulosteena koodi antaa tuotteen hinnan (paino*kilohinta+pakkauskulut).
Luovuutta!
- Nyt kokeile luoda jokin yksinkertainen tuotos itse.
- Ohjelman pitäisi kysyä käyttäjältä jotakin lukua ja merkkijonoa ja tulostaa niitä tai niiden kerrannaisia. Käytä myös vakioita.
Alla kuvassa on yhdenlaiset mallisuoritukset, omien koodiesi ei tarvitse olla täsmälleen samanlaiset, mutta kuvan koodi voi antaa vinkkejä suoritukseen.
torstai 1. syyskuuta 2016
2. Python I
Aloitetaan Python-koodausta.
Käynnistä IDLE opettajan ohjeiden mukaan. Jos teet tätä kotona niin englanninkieliset ohjeet asennukseen ja aloitukseen löytyy (esim. täältä luvusta 1) ja itse asennuspaketti löytyy (täältä).
Aloitetaan testailu.
Kokeile Pythonin komentorivillä erilaisia laskutoimituksia kirjoittamalla lasku ja painamalla enter, esim.
Huomasit, että kun annat muuttujalle uudelleen arvon, vaihtuu muuttujassa oleva arvo uudeksi.
Testaapa seuraavia ja mieti mitä tapahtuu...
Osaatko arvata mitä tulee tulostukseksi nyt kun kirjoitat
Liitä kuva blogiisi ja kirjoita saatteeksi pari sanaa siitä miltä Python vaikuttaa.
Tee Office365-OneDriveesi itsellesi Python-koodeja varten kansio, anna nimeksi vaikka "omanimi_pythonit". Jaa kansio opettajalle. Jatkossa kaikki Python-koodaukset tallennetaan tuohon kansioon ja ne ovat kerralla kaikki opettajan saatavilla kun kansio on jaettuna.
Käynnistä IDLE opettajan ohjeiden mukaan. Jos teet tätä kotona niin englanninkieliset ohjeet asennukseen ja aloitukseen löytyy (esim. täältä luvusta 1) ja itse asennuspaketti löytyy (täältä).
Aloitetaan testailu.
Kokeile Pythonin komentorivillä erilaisia laskutoimituksia kirjoittamalla lasku ja painamalla enter, esim.
Sitten kokeile antaa jollekin muuttujalle arvo ja käyttää sitä, testaile esim. seuraavia syötteitä
- 1+2
- 3*4
- 15/3
- 15/5+2*5
- luku=10
- luku
- luku*3
- luku*2+luku/5
- luku
- luku=13
- luku
Huomasit, että kun annat muuttujalle uudelleen arvon, vaihtuu muuttujassa oleva arvo uudeksi.
Testaapa seuraavia ja mieti mitä tapahtuu...
- luku=5
- luku=luku+5
- luku=luku*10
- munat=3
- pekoni=5
- makkara=2
- munakas=munat+pekoni+makkara
Osaatko arvata mitä tulee tulostukseksi nyt kun kirjoitat
Seuraavaksi onkin aika sitten testailla tekstin kanssa. Merkkijono (string) annetaan Pythonissa heittomerkkien välissä. Tekstijonoja voidaan liittää toisiinsa, käyttää muuttujissa ja kun otetaan vielä mukaan tekstiä tulostava print-käsky niin voidaan liittää tulostukseen muutakin. Testaapa...
- luku
- munakas
Ota nyt ruudunkaappaus/näytönkuva "Python 3.5.2 Shell"-ikkunasta. Valitsemalla se aktiiviseksi ja painamalla alt+printscreen.
- 'Testinki!'
- 'Testaaminen ' + 'on tylsää!'
- lause='Tämä on päälause'
- konjunktio=', johon'
- sivulause=' voidaan liittää sivulause.'
- virke=lause+konjunktio+sivulause
- virke
- print('Tässä luku ',pekoni,' voidaan laskea yhteen luvun ',8,' kanssa ja tulokseksi saadaan ',pekoni+8,'!')
Liitä kuva blogiisi ja kirjoita saatteeksi pari sanaa siitä miltä Python vaikuttaa.
Tee Office365-OneDriveesi itsellesi Python-koodeja varten kansio, anna nimeksi vaikka "omanimi_pythonit". Jaa kansio opettajalle. Jatkossa kaikki Python-koodaukset tallennetaan tuohon kansioon ja ne ovat kerralla kaikki opettajan saatavilla kun kansio on jaettuna.
torstai 18. elokuuta 2016
1. Musisointia
Kaikilla varmaankin on edellisvuodelta tallessa
gmail-/google-tunnukset ja bloggerin käyttö on hallussa. Mutta koska
aloitetaan puhtaalta pöydältä niin aluksi ohje.
Arvosteluperiaatteet ja toimintatavat ovat samansuuntaiset kuin viime vuonna. Tehkää siis töitä ja pyrkikää huolellisuuteen. Lukekaa tehtävänannot tarkasti ja tehkää kaikki vaadittu. Tärkeintä on, etttä saatte palautuksia aikaan.
Aloitetaan luomalla vuoden blogi
Musisoidaan!
Arvosteluperiaatteet ja toimintatavat ovat samansuuntaiset kuin viime vuonna. Tehkää siis töitä ja pyrkikää huolellisuuteen. Lukekaa tehtävänannot tarkasti ja tehkää kaikki vaadittu. Tärkeintä on, etttä saatte palautuksia aikaan.
Aloitetaan luomalla vuoden blogi
- Kirjaudu Bloggeriisi Google-tunnuksellasi (Mikäli tunnukset ovat hukassa/kateissa, avaa ne uudelleen tai tee uudet).
- Luo uusi blogi tätä vuotta varten.
- Anna blogille otsikko ja osoite.
- Jos haluat voit blogin luomisen jälkeen tehdä blogista salaisen niin että se näkyy vain sinulle ja opettajalle.
- Blogin asetuksista -> Blogin lukijat -> muokkaa -> vain nämä lukijat -> lisää opettajan sähköpostiosoite lukijalistalle.
- Laita opettajalle tavallinen sähköposti, josta ilmenee oikea nimesi, sähköpostiosoitteesi ja tämänvuotisen blogisi osoite.
Musisoidaan!
- Suuntaa osoitteeseen http://soundation.com ja luo sinne ilmainen tunnus itsellesi/käytä Google tunnustasi. Kokeile editoida musiikkipätkä (n. pari minuuttia) tarjolla olevilla ilmaisilla sampleilla. (Premium-äänet ovat maksaville asiakkaille.). Soundation tarjoaa myös mahdollisuuden tehdä omia sävelaiheita kosketintyylisesti. Kokeilemalla oppii soundationin parissa kivasti. Lisää ääniraitoja tarvittava määrä ja laita esim. rumpukomppi jollekin raidalle ja tehosteääniä toiselle, mielikuvitus laukkaamaan.
- Tallenna välillä tuotostasi.
- Kun teos on valmis, löydät File-valikon alta vaihtoehdon musiikkiteoksesi julkaisuun "export as wav-file" on hyvä vaihtoehto.
- Testaa äänitiedoston toimivuus.
- Project-välilehdellä näkyy käyttämäsi samplet Ota sopiva näytönkaappauskuva ohjelmasta.
- Seilaa osoitteeseen http://www.online-convert.com/ ja valitse äänitiedoston kohdetyypiksi mp3.
- Muunna musiikkitiedostosi mp3-tiedostoksi.
- Lataa "ämpärisi" DropBoxiisi tai OneDriveesi.
- Tee tiedostollesi jakolinkki, eli jaa tiedostoasi linkin avulla.
- Kirjoita blogiisi teksti, jossa kommentoit soundationia ja johon liität soundationista ottamasi kuvan sekä myös tiedostonjakolinkin mp3-tiedostoosi.
Tilaa:
Kommentit (Atom)






















