Ohjelmoinnin peruskurssi Y1

Samankaltaiset tiedostot
Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

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

13. Loogiset operaatiot 13.1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

13. Loogiset operaatiot 13.1

Ohjelmoinnin peruskurssien laaja oppimäärä

Python-ohjelmointi Harjoitus 2

Java-kielen perusteita

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Tutoriaaliläsnäoloista

Lauseet. Ehdollinen lause. Tämän osan sisältö. Ehdollinen lause. Esimerkkejä. Yksinkertainen ehto. Lohkosulut ja sisennys. Ehdollinen lause if

Ohjelmoinnin peruskurssi Y1

Ehto- ja toistolauseet

T Ohjelmoinnin perusteet Y (Python). Tentti

Ohjausrakenteet. Valinta:

ITKP102 Ohjelmointi 1 (6 op)

Java-kielen perusteet

Ohjelmoinnin perusteet Y Python

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3

811120P Diskreetit rakenteet

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

Ohjelmoinnin perusteet Pythonilla. Teemu Sirkiä, 2015

Muistutus aikatauluista

811120P Diskreetit rakenteet

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Python-ohjelmointi Harjoitus 5

Transkriptio:

Ohjelmoinnin peruskurssi Y1 CSE-A1111 21.9.2016 CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 1 / 22

Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute. Tätä kautta on mahdollisuus antaa nimettömänä palautetta luennosta. Jos jokin asia on jäänyt palautteen perusteella epäselväksi, palataan siihen mahdollisuuksien mukaan seuraavalla luennolla. CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 2 / 22

Oppimistavoitteet: tämän luennon jälkeen Osaat kirjoittaa Python-ohjelman, joka suorittaa eri kerroilla eri käskyjä esimerkiksi käyttäjän antaman syötteen perusteella. Tiedät, millaisia vertailuja voit kirjoittaa if-käskyn ehtoon ja miten voit yhdistellä useampia eri ehtoja. Osaat kirjoittaa ohjelman, joka toistaa haluttua käskyä tai käskyjonoa niin, että käskyjono tarvitsee kirjoittaa vain yhteen kertaan. Tällä luennolla käsitellään näistä asioista vain perusteet. Paljon lisää kurssivaatimuksiin kuuluvaa asiaa tästä aiheesta on opetusmonisteen luvussa 3. CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 3 / 22

Valintakäsky if Tähänastiset ohjelmat ovat toimineen aina samalla tavalla. Usein ohjelman pitäisi kuitenkin muuttaa toimintaansa käyttäjän syötteen mukaan. Esimerkki: kirjoita ohjelma, joka pyytää käyttäjältä tentin pistemäärän ja kertoo, menikö tentti läpi, kun läpipääsyraja on 50 pistettä. Valinta voidaan tehdä if-käskyn avulla. Yleinen muoto: if ehto: kasky1 else: kasky2 else-osa ei ole pakollinen. CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 4 / 22

Tenttiesimerkki def main(): syote = input("kerro tenttipisteesi.\n") pisteet = int(syote) if pisteet >= 50: print("tentti meni lapi!") else: print("reputit!") print("arvosteluun voi tutustua vastaanotoilla.") main() CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 5 / 22

Vertailuoperaattoreita > suurempi kuin < pienempi kuin == yhtäsuuri kuin!= erisuuri kuin >= suurempi tai yhtäsuuri kuin <= pienempi tai yhtäsuuri kuin Huomaa yhtäsuuruusoperaattorin == ja sijoitusoperaattorin = ero. Desimaalilukujen yhtäsuuruutta ei yleensä kannata tutkia, koska pyöristysvirheet voivat aiheuttaa yllätyksiä. CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 6 / 22

Loogiset operaattorit Halutaan lisätä tenttiesimerkkiin tarkistus: jos pisteet ovat alle 0 tai yli 100, ilmoitetaan virheellisistä pisteistä. Tarvittava ehto saadaan operaattorin or avulla: if pisteet < 0 or pisteet > 100: Tai-operaattori or on yksi loogisista operaattoreista. CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 7 / 22

Loogiset operaattorit, jatkoa Pythonin loogiset operaattorit and ja or tai not ei Operaattorit and ja or ovat ehdollisia: jälkimmäisen operandin totuusarvo tutkitaan vain silloin, jos ensimmäisen operandin arvosta ei voida päätellä koko lauseen totuusarvoa. CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 8 / 22

Sisäkkäisiä if-käskyjä def main(): syote = input("kerro tenttipisteesi.\n") pisteet = int(syote) if pisteet < 0 or pisteet > 100: print("virheelliset pisteet!") print("pisteiden pitaa olla valilla 0-100.") else: if pisteet >= 50: print("tentti meni lapi!") else: print("reputit!") print("arvosteluun voi tutustua vastaanotoilla.") main() CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 9 / 22

Useita eri ehtoja def main(): syote = input("kerro tenttipisteesi.\n") pisteet = int(syote) if pisteet < 0: print("kelvottomat pisteet!") elif pisteet < 50: print("arvosana on 0.") elif pisteet < 60: print("arvosana on 1.") elif pisteet < 70: print("arvosana on 2.") elif pisteet < 80: print("arvosana on 3.") # Ohjelma jatkuu seuraavalla kalvolla. CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 10 / 22

Useita eri ehtoja (jatkuu) elif pisteet < 90: print("arvosana on 4.") elif pisteet <= 100: print("arvosana on 5.") else: print("kelvottomat pisteet!") main() CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 11 / 22

Välitehtävä 1 Mitä eroa on seuraavilla ohjelmilla? Kumpi on oikein vai onko kumpikaan? rivi = input("anna hinta. ") hinta = float(rivi) if hinta > 20.0: print("ok hinta.") elif hinta >= 50.0: print("liian kallis!") else: print("halpa on!") rivi = input("anna hinta. ") hinta = float(rivi) if hinta > 20.0: print("ok hinta.") if hinta >= 50.0: print("liian kallis!") else: print("halpa on!") CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 12 / 22

Toistokäsky Usein ohjelma joutuu toistamaan samaa käskyä monta kertaa. Esimerkki: käyttäjä syöttää ohjelmalle 30 päivän lämpötilat. Ohjelma laskee niiden keskiarvon Samaa käskyä ei tarvitse kirjoittaa monta kertaa, jos käytetään toistokäskyä. Pythonissa on kaksi toistokäskyä, while ja for. While-käskyn yleinen muoto on while ehto: kasky CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 13 / 22

Kuuden kertotaulu while-käskyn avulla def main(): i = 1 while i <= 10: tulos = i * 6 print(i, "* 6 =", tulos) i += 1 main() CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 14 / 22

Esimerkki: lämpötilojen keskiarvo def main(): LKM = 30 i = 0 summa = 0.0 while i < LKM: rivi = input("anna seuraava lampotila.\n") lampotila = float(rivi) summa = summa + lampotila i = i + 1 keskiarvo = summa / LKM print("lampotilojen keskiarvo on", keskiarvo) main() CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 15 / 22

Välitehtävä 2 Mitä seuraava ohjelma tekee? def main(): tieto = input("anna kokonaisluku:\n") luku = int(tieto) i = luku tulos = 1 while i > 1: tulos *= i i -= 1 print("tulos on", tulos) main() CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 16 / 22

Toinen versio lämpötilalaskurista: lukumäärä käyttäjältä def main(): rivi = input("montako lampotilaa annat?\n") lkm = int(rivi) i = 0 summa = 0.0 while i < lkm: rivi = input("anna seuraava lampotila.\n") lampotila = float(rivi) summa = summa + lampotila i = i + 1 if lkm > 0: keskiarvo = summa / lkm print("lampotilojen keskiarvo on", keskiarvo) else: print("et antanut yhtaan lampotilaa.") CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 17 / 22

Kolmas versio lämpötilalaskurista: lopetus pienellä luvulla def main(): print("anna lampotiloja, lopeta -300:lla.") lkm = 0 summa = 0.0 rivi = input("anna ensimmainen lampotila.\n") lampotila = float(rivi) while lampotila > -300.0: summa = summa + lampotila lkm = lkm + 1 rivi = input("anna seuraava lampotila.\n") lampotila = float(rivi) if lkm > 0: keskiarvo = summa / lkm print("lampotilojen keskiarvo on", keskiarvo) else: print("et antanut yhtaan lampotilaa.") CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 18 / 22

Toistokäsky for For-käskyn avulla voidaan käydä jonkun rakenteen alkiot järjestyksessä. Funktion range avulla voidaan generoida lukujono (ei täsmällisesti oikea termi), jonka kaikki alkiot voidaan käydä läpi for-käskyn avulla. Esimerkiksi range(11) generoi lukujonon, joka sisältää kokonaisluvut 0:sta 10:een asti. Voidaan kirjoittaa toistokäsky for i in range(11): tee jotain arvolle i jossa i saa vuorotellen arvot 0 10. CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 19 / 22

Esimerkki: kertotaulu for-käskyn avulla def main(): for i in range(11): tulos = i * 6 print(i, "* 6 =", tulos) main() CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 20 / 22

Lisää range-funktiosta Lukujonoja generoidessa voi antaa myös jonon ensimmäisen alkion, esimerkiksi range(1, 11) generoi lukujonon, jonka ensimmäinen alkio on 1 ja viimeinen 10. On myös mahdollista antaa jonon kahden peräkkäisen alkion väli, esimerkiksi range(1, 11, 2) generoi lukujonon, joka sisältää luvut 1, 3, 5, 7 ja 9. Väli voi olla myös negatiivinen, jolloin lukuja generoidaan ylhäältä alaspäin. Esimerkiksi range(10, 1, -2) generoi lukujonon, joka sisältää luvut 10, 8, 6, 4 ja 2. CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 21 / 22

Kertotaulu uudelleen def main(): for i in range(1, 11): tulos = i * 6 print(i, "* 6 =", tulos) main() CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 22 / 22