Post on 08-Jul-2020
Palautetta viime luennosta
• Kuka saa ja kenen täytyy suorittaa 5op kokonaisuus?
• Sivuaineopiskelijat suorittavat jos heidän sivuainekokonaisuuteen on merkitty niin
• Kokonaisuuksia on useita eri tiedekunnittain, mahdoton luetella kaikkia
• Kysy tarvittaessa omalta opoltasi
• TKT-opiskelijoiden täytyy suorittaa 5op
• Avoimen väylän opiskelijoiden täytyy suorittaa 5op
• Ketään ei voi kieltää suorittamasta 5op
• 3op osuudesta ja 2op osuudesta tulevat eri arvosanat – 3op osuus täytyy olla
suoritettuna ennen kuin 2op osuuden arvosanan saa
• Mikä tässä nyt oli oikeastaan tärkeää?
• Aloitusluennot yrittävät antaa vähän pohjatietoa monesta asiasta, suurpiirteinen tietämys
riittänee71
Palautetta viime luennosta
• Näytin opiskelijakorttiani lukijaan – en saanut läsnäoloa?
• Opiskelijakortti pitää käydä rekisteröimässä erikseen ViLLEn, samoin kuin RFID-tagit tai
muut, jos opiskelijakorttia haluaa käyttää kulunvalvontaan
• Kaikki kortit eivät käy, siksi tageja jaetaan
• RFID-tagin saa kysymällä luennoitsijalta tai menemällä Agoran 4krs. huoneeseen 451D
• Opiskelijakortin voi liittää samalla ViLLEen jos se onnistuu
• Läsnäoloa ei tullut?
• Aloitusluennolla läsnäoloja merkittiin niin myöhään, etteivät ne enää rekisteröityneet
• Unohdit näyttää ViLLEä!
• Niin unohdin. Deadlineihin on kuitenkin vielä niin paljon aikaa, että ensi viikon
tutoriaaleissa kaikki selvinnee
72
Ohjelmointikielet ja
peruskäsitteet
Sisältö
• Pythonin esittely
• Ohjelmointikielet ja peruskäsitteet
• Muuttujat
• Valinta
Pythonista
• Kurssilla käytetty ohjelmointikieli
• Tulkattava kieli
• Ohjelma muunnetaan suoritettavaan muotoon lause kerrallaan ohjelmaa suoritettaessa
• Tämä kurssi ei kuitenkaan ole ”Python-kurssi”
• Vältetään Pythonille ominaisia piirteitä
• Kirjoitetaan yksinkertaista koodia
Pythonista
• Ladattavissa www.python.org/download/
• Ei kurssin kannalta välttämätöntä asentaa ollenkaan
• Jos asennat, asenna v2.7.x (älä uusinta 3.x versiota)
• ViLLE käyttää 2.7-versiota, ja näiden versioiden välillä on monia eroja
• Jos et käytä Windowsia, Python saattaa olla jo asennettuna
• Kokeile terminaalissa python komentoa
• Verkosta löytyy palveluita pythonin suorittamiseen, joka saattaa pieneen
testailuun riittää
• Esim http://repl.it/languages/python
Algoritmin ymmärtäminen
• Prosessorin tulee kyetä tulkitsemaan algoritmi
• Ymmärtää esitysmuoto
• Kyetä suorittamaan operaatiot
• Algoritmin esityksen ymmärtäminen jakautuu kahteen vaiheeseen:
1. Ymmärtää symbolit joilla algoritmi esitetään
• Käytetyn kielen aakkosto
• Käytetyn kielen kielioppi
2. Ymmärtää jokaisen askeleen merkitys
Kielen syntaksi – miten ohjelma kuvataan?
• Kielen syntaksi:
• Määrittää kielen lauseiden muodon eli kielioppisäännöt
• Määrää miten kielen symboleja saa laillisesti käyttää
• Syntaksi siis määrää, millaisia ovat kielen oikein muodostetut lauseet.
• Syntaktisesti oikea ohjelma noudattaa kielen syntaksia
• Esimerkki: yhteenlaskukieli: <lhs> + <rhs>
• Oikeita kielen lauseita: a + b, 5 + 2
• Vääriä: + 2, b +, + + +
Kielen semantiikka – mitä ohjelma tarkoittaa?
• Kielen semantiikka
• Oppi lauseiden merkityksestä eli tiettyjen ilmaisujen merkitys kielessä
• Semantiikka määrää, mitä kielen lauseet tarkoittavat.
• Semantiikka vastaa siis kysymykseen Mitä?
• Esimerkkejä:
Hauki on kala. (syntaktisesti ja semanttisesti oikein)
Delfiini on kala. (syntaktisesti oikein, semanttisesti väärin)
Ohjelmointikielten semantiikka
• Luonnollisiin kieliin verrattuna yksinkertaista
• Syntaksi ja semantiikka eroteltu ohjelmointikielissä
• Algoritmin askeleet voivat olla syntaktisesti oikein, mutta semanttisesti merkityksettömiä
Ohjelmointikielen kielioppi
• Ohjemointikielten syntaksi nykyään tarkasti määritelty
• 60-luvulta lähtien syntaksi määritelty käyttäen kielioppia
• Esim. Pascal-kielen kielioppi koostuu n. 150 kielioppisäännöstä
• Kielioppisäännöt määrittävät kielen syntaksin täsmällisesti
• Ohjelmointikielten semanttiikkaa ei (yleensä) kyetä määrittelemään
täsmällisesti
Algoritmin suorittaminen
• Algoritmin suorittaakseen tulee
1. tuntea algoritmin kuvauksessa käytetyt symbolit
2. osata liittää kuhunkin askeleeseen sen merkitys
3. kyetä suorittamaan operaatiot
• Ohjelmointikielen kääntäjä suorittaa vaiheet 1 ja 2
• Kääntäjä muuttaa ohjelman jokaisen askeleen sopiviksi operaatioiksi
• Prosessori suorittaa operaatiot (vaihe 3)
Syntaksivirheet
• Syntaksivirhe tarkoittaa kielen syntaksin rikkomista
• Virhe estää virheellisen lauseen suorittamisen
• Usein yksikin virhe estää koko ohjelman suorittamisen
• Pythonissa tämä pätee
• Esimerkkejä:
• syntaksivirhe Pythonissa, mutta ei C:ssä
a++
• kirjoitusvirhe varatussa sanassa
funktion doSomething()
Virheiden havaitseminen
• Syntaksivirheet havaitaan vaiheessa 1 (kielen kuvauksen tunteminen)
• Jotkin semanttiset virheet vaiheessa 2 (askeleiden merkitys)
• Jotkin semanttiset virheet vaiheessa 3 (operaatioiden suoritus)
• Koska Python on tulkattava kieli, vaiheiden 2 ja 3 virheet havaitaan vasta
ohjelman suorituksen aikana
• Vaiheen 1 virheet havaitaan suorituksen alussa (syntaksi tarkistetaan)
Virheiden havaitseminen - esimerkki
• Esimerkkilause: “Kirjoita viikon n:nnen päivän nimi.”
• Syntaktisesti oikein
• Semanttinen oikeellisuus voidaan tarkastaa vasta suoritettaessa
• Lause on semanttisesti oikein vain tietyille n:n arvoille
• n:n arvo tiedetään vasta silloin
Loogiset virheet
• Syntaktisesti oikea, virheellisen tuloksen antava ohjelma sisältää loogisen
virheen
• Loogiset virheet voidaan havaita esim. vertaamalla algoritmin tuottamaa print
oikeaksi tiedettyyn tulokseen
• Edellyttää oikein tuloksen tuntemista
• Esim. Lukujen summan laskevan algoritmin tulos tunnetaan
• Loogiset virheet vaikeampi havaita kuin syntaktiset ja semanttiset
• Voidaan välttää tuomalla algoritmin semantiikka selvästi esille
• Kuvaavien nimien käyttö
• Ohjelmakoodin sijoitetut kommentit
Algoritmin suoritusjärjestys - peräkkäisyys
• Algoritmin lauseet suoritetaan algoritmin
määräämässä järjestyksessä
• Peräkkäisyys (sequential) on yksi algoritmien
perusohjausrakenteista (flow of control)
• Peräkkäisessä ohjelmassa lauseet suoritetaan
• Yksi kerrallaan
• Täsmälleen kerran
• Siinä järjestyksessä kuin ne ovat algoritmissa
• Viimeisen lauseen suoritus päättää algoritmin suorituksen
Lause ja lauseke
• Algoritmin yksittäisiä käskyjä (tai komentoja) kutsutaan lauseiksi (statement)
• Lause on yksi suoritettava osa lausekielistä ohjelmaa, joka koostuu useista lauseista
• Lausekkeella (expression) tarkoitetaan
• Luku- tai muita arvoja (2, “muumi”, 523.3)
• Muuttujaviittauksia
• Erilaisia laskutoimituksia (+, -, *, /) tai
• Muita operaatioita sisältävää ilmausta
• Lausekkeella on sen osista määräytyvä yksikäsitteinen arvo
Lause ja lauseke
• Lauseen ja lausekkeen ero: lausekkeella on arvo, lauseella ei
• Lauseketta ei voi käyttää yksinään, sen on oltava lauseen osa
• Lausekkeiden asema tosin vaihtelee eri ohjelmointikielissä
• Lausekkeita:
3 + 4
x + 7 * y
• Lauseita:
a = 3 + 4
b = 3 * a
Operaattorit
• Operaattori määrää mitä lasketaan
• Binääriset operaattorit
• Aritmeettiset operaattorit
• Plus, miinus, kerto, …
• Asetusoperaattori (seuraavaksi)
• Vertailuoperaattorit <, >, =, …
• Loogiset operaattorit (ja, tai, ..)
• Unaariset operaattorit
• Negaatio (esim -5)
• Ja monia muita kielestä riippuen
Operandit
• ”Objekteja”, joita operaattori käyttää arvon laskemiseen
Esim: 4 + 2, operaattori on + ja operandeja ovat 4 ja 2.
-42, operaattori on – ja operandi on 42.
Muuttujat
Muuttujat
• Algoritmin halutun tuloksen saavuttamiseen käytetään usein apuna
muuttujia (variables)
• Muuttuja
• On nimi, johon on liitetty jokin arvo
• Arvo voi muuttua algoritmin suorituksen aikana
• Tarkoittaa usein tietokoneen muistipaikkaa
• Algoritmin käskyt muuttavat muistipaikkojen sisältöä (eli muuttujien arvoja)
Muuttuja
Muuttujan alustus ja arvon asetusAsetuslause eli sijoituslause antaa
muuttujalle arvon tai muuttaa sen arvoaesim
muuttuja = lauseke x = 4 + 2
• Muuttuja on sen muuttujan nimi jonka arvo
halutaan asettaa
• Lauseke on tälle muuttujalle sopivan arvon
tuottava lauseke
Muuttujan alustus ja arvon asetusesim
muuttuja = lauseke x = 4 + 2
• Asetuslauseen semantiikka:
– Lasketaan asetuslauseen oikean puolen
saama arvo
– Asetetaan saatu arvo vasemman puolen
muuttujan (uudeksi) arvoksi
– Jos muuttujalla oli ennestään arvo, se häviää
• Oikealla puolella olevan lausekkeen
jokaisella muuttujalla oltava arvo
Asetuslause ja ohjelmointikielet
• Joissakin kielissä muuttujilla on jokin oletusarvo (esim. 0 lukuarvoille)
• int x
• Pythonissa esitellylle muuttujalle on asetettava arvo
• x = 0
Asetuslause esimerkkejä
y = 4 + 3
• Muuttujan y arvo lauseen suorittamisen jälkeen?
Asetuslause esimerkkejä
y = 4 + 3
• Muuttujan y arvo lauseen suorittamisen jälkeen?
• Vastaus: 7
Asetuslause esimerkkejä
x = 5
y = x
• Muuttujan x arvo on ensimmäisen lauseen suorittamisen jälkeen 5.
• Muuttujan y arvo on toisen lauseen suorittamisen jälkeen sama kuin x:n arvo,
eli 5.
Asetuslause esimerkkejä
x = 8
y = x + 2
x = 4
• Muuttujien x ja y arvot ohjelman suorittamisen jälkeen?
Asetuslause esimerkkejä
x = 8
y = x + 2
x = 4
• Muuttujien x ja y arvot ohjelman suorittamisen jälkeen?
• Muuttujan x arvo on ensimmäisen lauseen suorittamisen jälkeen 8.
• Muuttujan y arvo on 2. lauseen suorittamisen jälkeen x:n arvo plus 2, eli 10.
• Muuttujan x arvo on viimeisen lauseen suorittamisen jälkeen 4. Lause ei
muuta y:n arvoa, eli y:n arvo on edelleen 10.
Tyypit
• Muuttujiin ja lausekkeisiin liittyy tyypin käsite
• Tyyppi kertoo, millainen arvo muistipaikkaan tallennetaan
• Tyyppi määrittää myös arvon tallennusmuodon tietokoneen muistiin
Sisäänrakennettuja tyyppejä Pythonissa
Tyyppi Esimerkkejä
arvoista
Kokonaisluku 4
-95
0
Liukuluku 3.14
-123.66
Totuusarvo True
False
Merkkijono ”erkki merkkijono
esimerkki”
””
Muuttujan tyyppi Pythonissa
• Pythonissa muuttujalla ei ole tyyppiä, vaan arvolla, joka muuttujaan on
tallennettu
• => Python on ns. dynaamisesti tyypitetty kieli
• Muuttujan arvon tyyppi voi muuttua suorituksen aikana
• Esim:
x=2
x=“hei maailma”
Staattinen tyypitys
• Pythonin muuttujat ovat dynaamisesti tyypitettyjä
• Vastakohta tälle on staattinen tyypitys
• Tällöin muuttujan tyyppi määräytyy täysin kääntämisvaiheessa, eikä se voi
muuttua ajon aikana
• Muun kuin oikeantyyppisen arvon tallentaminen muuttujaan ei ole sallittua
• Muuttujat alustetaan ilmaisemalla muuttujan tyyppi
• Esim. Javassa:
int x = 3;
Tai:
int x;
x =3
Staattinen tyypitys
• Pythonin muuttujat ovat dynaamisesti tyypitettyjä
• Vastakohta tälle on staattinen tyypitys
• Tällöin muuttujan tyyppi määräytyy täysin kääntämisvaiheessa, eikä se voi
muuttua ajon aikana
• Muun kuin oikeantyyppisen arvon tallentaminen muuttujaan ei ole sallittua
• Muuttujat alustetaan ilmaisemalla muuttujan tyyppi
• Esim. Javassa:
int x = 3;
Tai:
int x;
x =3
Tulostaminen Pythonissa
• print-käskyllä voi tulostaa vakioita ja muuttujien arvoja
• Esim:
print “erkki merkkijono esimerkki”
• Pilkulla voi erottaa eri vakioita tai muuttujia
• Tulostukseen pilkulla eroteltujen osien väliin lisätään välilyönti
• Esim:
x=12
print “x:n arvo on”, x
• Tulostaa:
x:n arvo on 12
Aritmeettinen lauseke
Aritmeettinen lauseke
Aritmeettinen lauseke on lauseke, jonka arvo
on luku
esim. 3 * x + y
(jos muuttujat x ja y ovat lukuarvoisia)
• Käytössä operaatiot:• +
• -
• * (kertolasku)
• / (jakolasku)
• % (jakojäännös)
• ** (potenssi)
Aritmeettinen lauseke
• Lauseketta laskettaessa arvo lasketaan vasemmalta oikealle
• 1. Potenssi ** on vahvin (lasketaan ensin)
• 2. Aritmeettiset operaattorit *, / ja % lasketaan tämän jälkeen
• 3. Operaattorit + ja - ovat heikompia
• Ts. sama laskujärjestys kuin matematiikassa
• Voidaan käyttää sulkeita laskujärjestyksen osoittamiseksi
• Ei kannata olla liian “nokkela”, epäselviä lausekkeita on hyvä selventää
sulkeilla
• Esim: y+x**3%2 voisi kirjoittaa: y + ((x**3) % 2)
Aritmeettinen lauseke - esimerkkejä
3 * x + 2
• Lasketaan ensin 3*x, johon lisätään 2.
• Esim jos x:n arvo on 4, tulee lausekkeen arvoksi 14.
Aritmeettinen lauseke - esimerkkejä
3 * (x + 2)
• Lasketaan ensin x + 2, jonka tulos kerrotaan 3:lla.
• Esim jos x:n arvo on 4, tulee lausekkeen arvoksi 18.
Aritmeettinen lauseke - esimerkkejä
z = 4 * (x + y - 1)
• Lasketaan ensin x + y, jonka tuloksesta vähennetään 1.
• Seuraavaksi kerrotaan tämä 4:llä.
• Lopuksi sijoitetaan saatu arvo muuttujaan z.
• Mikä tulee z:n arvoksi jos x:n arvo on 4 ja y:n -2?
Aritmeettinen lauseke - esimerkkejä
z = 4 * (x + y - 1)
• Lasketaan ensin x + y, jonka tuloksesta vähennetään 1.
• Seuraavaksi kerrotaan tämä 4:llä.
• Lopuksi sijoitetaan saatu arvo muuttujaan z.
• Mikä tulee z:n arvoksi jos x:n arvo on 4 ja y:n -2?
• Vastaus: lausekkeen arvoksi tulee 4 eli 4 * (4 + (-2) - 1.
• Huom! Aritmeettinen lauseke on tässä sijoituslauseen oikea puoli
Aritmeettinen lauseke - esimerkkejä
• Jakojäännösoperaattori % laskee jakojäännöksen, kun vasen puoli jaetaan
oikealla.
• Esim: jos z on 5, niin lausekkeen z % 3 arvo on 2
z = z % 2
• Tässä z:n arvoksi asetetaan 0, jos z on jaollinen kahdella, ja 1 jos z ei ole
jaollinen kahdella
Looginen lauseke
Looginen eli totuusarvoinen lauseke
Looginen tai totuusarvoinen tai ehtolauseke
on lauseke, jonka arvo on totuusarvo tosi
(true) tai epätosi (false)
esim. a < b + 1
Vertailuoperaattorit
• Lausekkeissa voidaan käyttää vertailuoperaattoreita
• Huom! Esimerkkilauseiden arvot riippuvat muuttujien arvoista.
• Vertailuoperaattorit vaihtelevat ohjelmointikielissä.
Vertailuoperaattori Esimerkki
Suurempi > a > 4
Pienempi < a < -2
Suurempi tai yhtäsuuri >= a >= b + 2
Pienempi tai yhtäsuuri <= b <= 0
Yhtäsuuret == a == b
Erisuuret != a != c
Huom! Kaksi yhtäsuuruusmerkkiä
Totuusarvoiset lausekkeet - esimerkkejä
a < 4
• Lausekkeen arvo on tosi, mikäli muuttujan a arvo on pienempi kuin 4.
Muulloin lausekkeen arvo on epätosi.
Totuusarvoiset lausekkeet - esimerkkejä
a >= b + 2
• Lausekkeen arvo on tosi, mikäli muuttujan a arvo on suurempi tai yhtäsuuri
kuin aritmeettisen lausekkeen b + 2. Muulloin lausekkeen arvo on epätosi.
Totuusarvoiset lausekkeet - esimerkkejä
a – 1 > b
• Kun a = 3 ja b = 2, mikä on lausekkeen arvo?
Totuusarvoiset lausekkeet - esimerkkejä
a – 1 > b
• Kun a = 3 ja b = 2, mikä on lausekkeen arvo?
• Vastaus:
• Vasen puoli: a – 1 eli 3 – 1 = 2
• Oikea puoli: b eli 2
• Vertailu on siis 2 > 2, mikä ei pidä paikkaansa joten lausekkeen arvo Epätosi
Loogiset operaattorit
• Totuusarvoinen lauseke voikin sisältää loogisia operaattoreita vertailujen
yhdistämiseen
• Pythonissa on käytössä mm. loogiset operaattorit and, or ja not
Loogiset operaattorit
lauseke1 lauseke2 lauseke1 and
lauseke2
lauseke1 or
lauseke2
not lauseke1
False False False False True
False True False True True
True False False True False
True True True True False
Totuusarvoiset lausekkeet - esimerkkejä
a < 0 and b < 0
• Lausekkeen arvo on tosi, mikäli muuttujien a ja b arvo on pienempi kuin 0.
Mikäli edes toisen arvo on nolla tai sitä suurempi, lausekkeen arvo on
epätosi.
Totuusarvoiset lausekkeet - esimerkkejä
a < 0 or b < 0
• Milloin lausekkeen arvo on tosi?
Totuusarvoiset lausekkeet - esimerkkejä
a < 0 or b < 0
• Milloin lausekkeen arvo on tosi?
• Lausekkeen arvo on tosi, mikäli muuttujan a tai b arvo on pienempi kuin 0.
Mikäli molempien arvo on nolla tai sitä suurempi, lausekkeen arvo on
epätosi.
Totuusarvoiset lausekkeet - esimerkkejä
(a < 0 and b > 0) or a < b
• Mikä on lausekkeen arvo, kun a = -1, b =0?
Totuusarvoiset lausekkeet - esimerkkejä
(a < 0 and b > 0) or a < b
• Mikä on lausekkeen arvo, kun a = -1, b =0?
• Tosi, voidaan tarkistaa sieventämällä:
(-1 < 0 and 0 > 0) or -1 < 0
(True and False) or True
False or True
True
Valinta- eli ehtolause
Ohjausrakenteet
• Peräkkäisyys on perusohjausrakenne
• Algoritmin on kuitenkin kyettävä toimimaan erilaisissa tilanteissa -> pelkkä
peräkkäisyys ei riitä
• Tarvitaan siis ohjausrakenteita eli kontrollirakenteita:
• Valinta (branching)
• Toisto (repetition)
• Ohjausrakenteet kuvaavat järjestyksen, jossa algoritmin toimenpiteet
suoritetaan
• Algoritmi koostetaan ohjausrakenteita yhdistelemällä
• Peräkkäisyys, valinta ja toisto riittävät minkä tahansa algoritmin esittämiseen
Valinta- eli ehtolause
• Saman ongelman ratkaisemiseksi eri tilanteissa algoritmin toimittava eri
tavoin
• Algoritmin varauduttava vaihtoehtoisiin toimintoihin
• Algoritmin on siis tehtävä valinta eri toimintojen välillä
• Valinta ei saa olla satunnainen vaan sen tulee perustua yksiselitteiseen
valintaehtoon
Valinta- eli ehtolause
if ehto:
toiminto
• if on yksinkertaisin
valinnan muoto jonkin toiminnon tekemiseen tai sen
tekemättä jättämiseen.
Valinta- eli ehtolause
if ehto:
toiminto
• ehto on totuusarvoinen lauseke (eli arvo on
joko tosi tai epätosi)
• Ehto määrää tilanteen jossa toiminto
suoritetaan
– Jos ehto on tosi, toiminto suoritetaan muuten ei
Valinta- eli ehtolause
if ehto:
toiminto
• toiminto voi olla yksittäinen lause tai
joukko lauseita
• Se voi siis koostua useasta toiminnosta
• Voi siis sisältää asetuslauseita,
valintalauseita, toistolauseita, jne.
Ehtolause - esimerkki
if a < b + 2:
a = b
• Mikäli a:n arvo on pienempi kuin b:n arvo + 2, suoritetaan toiminto.
• Tässä toiminto asettaa a:n arvoksi b:n arvon.
Sisennys
• Pythonissa sisennysten on oltava oikein!
• Sisennys määrittää mihin lohkoon lause kuuluu
• Saman lohkon lauseet sisennettävä samalle tasolle
• Esimerkki: vasemmanpuoleinen koodipätkä kasvattaa a:n arvoa aina, mutta
oikeanpuolimmainen vain jos a < b
if a < b:
a = b
a = a + 1
if a < b
a = b
a = a + 1
Sisennys Pythonissa
• Mieluiten joko välilyönneillä tai tabulaattoreilla sisennykset, ei näiden
yhdistelmällä
• (Python 2:ssa yhdistely mahdollista, Python3:ssa kielletty)
• Vain kaksoispistettä seuraavan rivi saa ja täytyy olla sisennetty enemmän
kuin edellinen rivi
• Virheellinen sisennys on syntaksivirhe: IndentationError
Oikea sisennys Virheellinen sisennys
a = 3
b = 4
c = a * 2 + b
a = 3
b = 4
c = a*2 + b
if-else-lause
if-else-lause on yleisempi valinta, jossa valitaan
kahden vaihtoehtoisen toiminnon välillä:
if ehto:
toiminto1
else:
toiminto2
if-else-lause
if ehto:
toiminto1
else:
toiminto2
• Mikäli ehto on tosi, suoritetaan toiminto1.
Muussa tapauksessa suoritetaan
toiminto2.
• Vain toinen toiminnoista suoritetaan
if-else-esimerkki
if a > 0 and b > 0:
print “Molemmat nollaa suurempia”
else:
print “Molemmat ei nollaa suurempia”
if-else –esimerkki
if x > y:
max = x
else:
max = y
• Mikäli muuttujan x arvo on suurempi kuin muuttujan y, sijoitetaan muuttujaan
max x:n arvo. Muussa tapauksessa (else-haarassa) sijoitetaan max:iin y:n
arvo.
Sisäkkäiset ehtolauseet
• Monimutkaiset loogiset lausekkeet voivat tehdä ymmärtämisestä hankalaa
• Algoritmi voidaan kirjoittaa yksinkertaisimmilla loogisilla lausekkeilla käyttäen
sisäkkäisiä ehtolauseita
Sisäkkäiset ehtolauseet - esimerkki
if a > b and a > c:
print "a on suurin”
• Tämä voidaan kirjoittaa sisäkkäisiä ehtolauseita käyttäen:
if a > b:
if a > c:
print "a on suurin"
• Huomaa lauseiden sisennys!
Kolme tai useampi vaihtoehtoa
• Useamman kuin kahden valinnan rakenne useissa kielissä ainakin kahdella tavalla
• Joko käyttämällä sisäkkäisiä if-lauseita (Tapa 1)
• Tai käyttämällä avainsanaa elif (Tapa 2)
if ehto1:
toiminto1
else:
if ehto2:
toiminto2
else:
if ehto3:
toiminto3
else:
toiminto4
if ehto1:
toiminto1
elif ehto2:
toiminto2
elif ehto3:
toiminto3
else:
toiminto4
Valintalause ohjelmointikielissä
• Valintalause on käytettävissä kaikissa ohjelmointikielissä
• Syntaksi vaihtelee
• Monissa muissa kielissä sisennyksellä ei ole väliä, vaan lohko osoitetaan
muilla tavoilla
• Sisennysten käyttö on kuitenkin useimmissä kielissä hyvän tavan mukaista
Java Python LOLCODE
if (ehto) {
toiminto1;
} else {
toiminto2;
}
if ehto:
toiminto1
else:
toiminto2
ehto, O RLY?
YA RLY
toiminto1
NO WAI
toiminto2
OIC