240 likes | 508 Views
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
E N D
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ä
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
Ohjausrakenteet • Peräkkäisyys • Valinta • Toisto
Peräkkäisyys • Algoritmin lauseet suoritetaan peräjälkeen yksi kerrallaan
Valinta • Valintarakenne mahdollistaa algoritmin eri osien suorittamisen ehtolausekkeen arvosta riippuen • Yksinkertainen valintarakenne • Monivalintarakenne
IF ehto THEN toiminto ENDIF IF ehto THEN toiminto_1 ELSE toiminto_2 ENDIF Yksinkertainen valintarakenne
Monivalintarakenne CASE lauseke OF tapaus_1: toiminto_1 tapaus_2: toiminto_2 ... tapaus_n: toiminto_n OTHER: toiminto_n+1 ENDCASE
Toistorakenteet • Yhden tai useamman lauseen suorittaminen useamman kerran peräjälkeen • Definiitti toisto • Indefiniitti toisto • Alkuehtoinen • Loppuehtoinen
REPEAT n TIMES toiminto ENDREPEAT FOR askellus DO toiminto ENDFOR Definiitti toisto
Alkuehtoinen WHILE ehto DO toiminto ENDWHILE Loppuehtoinen REPEAT toiminto UNTIL ehto Indefiniitti toisto
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 MODULEmoduulin_nimi(mp1,mp2,...,mpN) moduulin runko ENDMODULE
Funktio • Palauttaa arvon MODULE moduulin_nimi(mp1,...,mpN) RETURNS paluuarvo moduulin runko ENDMODULE • Arvon palauttava lause on muotoa RETURN lauseke
Moduulin kutsu moduulin_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