ohjelmassa tänään

24
Ohjelmassa tänään • Ohjelmointimallit • Pseudokieli • Modulaarisuus

Upload: zoltan

Post on 20-Mar-2016

148 views

Category:

Documents


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

Page 1: Ohjelmassa tänään

Ohjelmassa tänään

• Ohjelmointimallit• Pseudokieli• Modulaarisuus

Page 2: Ohjelmassa tänään

Ohjelmointimallit (paradigmat)

• Erilaisia lähestymistapoja ohjelmointiin– Imperatiivinen/proseduraalinen malli– Deklaratiivinen malli– Funktionaalinen malli– Oliomalli

Page 3: Ohjelmassa tänään

Imperatiivinen malli

• Perinteinen lähestymistapa• Ohjelma on käskyjono• Ongelman ratkaisu vaatii algoritmin

Page 4: Ohjelmassa tänään

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

Page 5: Ohjelmassa tänään

Funktionaalinen malli

• Ohjelma on kokoelma ”mustia laatikoita”• Alkeisfunktiot funktiot• Saatavilla olevat syötteet, halutut tulosteet:

mitä pitää tehdä, jotta syötteistä saadaan tulosteet

Page 6: Ohjelmassa tänään

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ä

Page 7: Ohjelmassa tänään

Pseudokieli

Page 8: Ohjelmassa tänään

Imperatiivinen pseudokieli

• Lause, lauseke, muuttuja• Sijoituslause• Ohjausrakenteet• Modulaarisuus• Iteraatio ja rekursio

Page 9: Ohjelmassa tänään

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

Page 10: Ohjelmassa tänään

Sijoituslause

• Muuttujan arvoa muutetaan sijoituslauseella

lausekemuuttuja :

Page 11: Ohjelmassa tänään

Ohjausrakenteet

• Peräkkäisyys• Valinta• Toisto

Page 12: Ohjelmassa tänään

Peräkkäisyys

• Algoritmin lauseet suoritetaan peräjälkeen yksi kerrallaan

4321

lauselauselauselause

Page 13: Ohjelmassa tänään

Valinta

• Valintarakenne mahdollistaa algoritmin eri osien suorittamisen ehtolausekkeen arvosta riippuen

• Yksinkertainen valintarakenne• Monivalintarakenne

Page 14: Ohjelmassa tänään

Yksinkertainen valintarakenne

IF ehto THEN toiminto

ENDIF

IF ehto THEN toiminto_1ELSE toiminto_2ENDIF

Page 15: Ohjelmassa tänään

Monivalintarakenne

CASE lauseke OFtapaus_1: toiminto_1

tapaus_2: toiminto_2...

tapaus_n: toiminto_n OTHER: toiminto_n+1ENDCASE

Page 16: Ohjelmassa tänään

Toistorakenteet

• Yhden tai useamman lauseen suorittaminen useamman kerran peräjälkeen

• Definiitti toisto• Indefiniitti toisto

– Alkuehtoinen– Loppuehtoinen

Page 17: Ohjelmassa tänään

Definiitti toisto

REPEAT n TIMEStoiminto

ENDREPEAT

FOR askellus DOtoiminto

ENDFOR

Page 18: Ohjelmassa tänään

Indefiniitti toisto

Alkuehtoinen

WHILE ehto DOtoiminto

ENDWHILE

Loppuehtoinen

REPEATtoiminto

UNTIL ehto

Page 19: Ohjelmassa tänään

Modulaarisuus

Page 20: Ohjelmassa tänään

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

Page 21: Ohjelmassa tänään

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

Page 22: Ohjelmassa tänään

Proseduuri

• Moduuli, joka ei palauta arvoa: lause

MODULE moduulin_nimi(mp1,mp2,...,mpN)moduulin runko

ENDMODULE

Page 23: Ohjelmassa tänään

Funktio

• Palauttaa arvon

MODULE moduulin_nimi(mp1,...,mpN) RETURNS paluuarvomoduulin runko

ENDMODULE

• Arvon palauttava lause on muotoaRETURN lauseke

Page 24: Ohjelmassa tänään

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