Ohjelmassa tänään

Post on 20-Mar-2016

147 views 0 download

description

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 - PowerPoint PPT Presentation

Transcript of Ohjelmassa tänään

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