Ohjelmassa tänään
• Ohjelmointimallit• Pseudokieli• Modulaarisuus
Ohjelmointimallit (paradigmat)
• Erilaisia lähestymistapoja ohjelmointiin– Imperatiivinen/proseduraalinen malli– Deklaratiivinen malli– Funktionaalinen malli– Oliomalli
Imperatiivinen malli
• Perinteinen lähestymistapa• Ohjelma on käskyjono• Ongelman ratkaisu vaatii algoritmin
Deklaratiivinen malli
• Yritetään löytää yleinen ongelmanratkaisualgoritmi
• Ongelma ratkaistaan muuttamalla se algoritmin vaatimaan muotoon ja soveltamalla algoritmia
• Vaikeutena ratkaisualgoritmin löytäminen• Formaalinen logiikka
Funktionaalinen malli
• Ohjelma on kokoelma ”mustia laatikoita”• Alkeisfunktiot funktiot• Saatavilla olevat syötteet, halutut tulosteet:
mitä pitää tehdä, jotta syötteistä saadaan tulosteet
Oliomalli
• Tieto on aktiivisia olioita• Olio sisältää tiedon ja sen käsittelyyn
tarvittavat toiminnot• Rakennuspalikka-ajattelu• Olioitten välinen kommunikointi viestejä
välittämällä
Pseudokieli
Imperatiivinen pseudokieli
• Lause, lauseke, muuttuja• Sijoituslause• Ohjausrakenteet• Modulaarisuus• Iteraatio ja rekursio
Lause, lauseke, muuttuja
• Muuttuja: Vastaa matematiikan muuttujaa, sen yksilöi tunnus
• Lauseke: luku- tai muu arvo, viittaus muuttujaan tai laskutoimitus, jolla on sen osista määräytyvä arvo
• Lause: ohjelma koostuu lauseista, lauseella ei ole arvoa
Sijoituslause
• Muuttujan arvoa muutetaan sijoituslauseella
lausekemuuttuja :
Ohjausrakenteet
• Peräkkäisyys• Valinta• Toisto
Peräkkäisyys
• Algoritmin lauseet suoritetaan peräjälkeen yksi kerrallaan
4321
lauselauselauselause
Valinta
• Valintarakenne mahdollistaa algoritmin eri osien suorittamisen ehtolausekkeen arvosta riippuen
• Yksinkertainen valintarakenne• Monivalintarakenne
Yksinkertainen valintarakenne
IF ehto THEN toiminto
ENDIF
IF ehto THEN toiminto_1ELSE toiminto_2ENDIF
Monivalintarakenne
CASE lauseke OFtapaus_1: toiminto_1
tapaus_2: toiminto_2...
tapaus_n: toiminto_n OTHER: toiminto_n+1ENDCASE
Toistorakenteet
• Yhden tai useamman lauseen suorittaminen useamman kerran peräjälkeen
• Definiitti toisto• Indefiniitti toisto
– Alkuehtoinen– Loppuehtoinen
Definiitti toisto
REPEAT n TIMEStoiminto
ENDREPEAT
FOR askellus DOtoiminto
ENDFOR
Indefiniitti toisto
Alkuehtoinen
WHILE ehto DOtoiminto
ENDWHILE
Loppuehtoinen
REPEATtoiminto
UNTIL ehto
Modulaarisuus
Modulaarisuus
• Yksi moduuli ratkaisee yhden osuuden kokonaisuudesta
• Hyvin suunniteltua moduulia voi hyödyntää muissakin ongelmissa
• Selkeyttää algoritmia• Teen keiton moduuleja voisivat olla: laita
teelehdet kannuun, keitä vesi, lisää vesi kannuun, odota 5 minuuttia, kaada tee mukiin
Moduulien parametrit
• Tilanteesta riippuvat tiedot välitetään moduuliin muuttujien arvojen avulla
kaada ainetta x astiaan y
Sopii sekä veden kaatamiseen teekannuun että teen kaatamiseen mukiin
Proseduuri
• Moduuli, joka ei palauta arvoa: lause
MODULE moduulin_nimi(mp1,mp2,...,mpN)moduulin runko
ENDMODULE
Funktio
• Palauttaa arvon
MODULE moduulin_nimi(mp1,...,mpN) RETURNS paluuarvomoduulin runko
ENDMODULE
• Arvon palauttava lause on muotoaRETURN lauseke
Moduulin kutsumoduulin_nimi(tp1, tp2, ..., tpN)• Kutsussa on todelliset parametrit tp1- tpN• Moduulissa ovat muuttujaparametrit mp1...• Kumpiakin on oltava yhtä monta ja järjestyksen
sama• Moduulin kutsun tullessa vastaan suoritus siirtyy
moduuliin• Moduulin suorituksen jälkeen suoritus jatkuu
kutsua seuraavasta tai kutsun sisältävästä lauseesta
Top Related