Vielä laskentoa: kertausta ja täsmennystä

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Kehäantennit Looppi, silmukka
@ Leena Lahtinen Helia Ohjelman perusrakenteet 1. PERÄKKÄISRAKENNE 2. VALINTARAKENNE 3. TOISTORAKENNE.
Ohjelman perusrakenteet
Lausekkeiden sieventäminen
Näytölle tulostaminen. 7.2 Sisällys System.out.println - ja System.out.print -operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden.
C-ohjelmointi, kevät 2006 Taulukot Binääritiedostot Luento
Valitse seuraaviin vaihtoehtotehtäviin oikea vastaus…
TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ VARTEN.
Poikkeuskäsittely- lohkot tMyn1 Poikkeuskäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw ja.
KERTAUSTA PERUSASTEEN MATEMATIIKASTA Piia junes
Rajoitetut jonot 1. Alhaalta rajoitettu jono
Ohjelmoinnin tekniikkaa Sisällys for -lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely.
Ohjelman perusrakenteet
m0 M7 Maksimitermi Minimitermi Boole A = A A · 0 = 0 SOP De Morgan POS
Matematiikan yo-ohjeita Yleisohjeita  Laskimet ja taulukot tuotava tarkastettaviksi vähintään vuorokautta ennen kirjoituspäivää kansliaan.  Laskimien.
13. Hyvä ohjelmointitapa (osa 1)
© Jukka Harju, Jukka Juslin
Metodit – Arvotyyppi Ellei metodi palauta arvoa, sen arvotyyppi on void Tällöin ”return;”-lauseke ei ole metodissa pakollinen, vaikka sen käyttö on sallittua.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Tietokannan normalisointi
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen
@ Leena Lahtinen Toistorakenne Ohjelmassa toistetaan tiettyjä toimenpiteitä monta kertaa peräkkäin Toisto noudattaa sille kuuluvia tarkkoja standardoituja.
Johdatus ohjelmointiin – C kielen peruselementit Tutkijayliopettaja Manne Hannula Opetusharjoittelu (ohjaava opettaja Jukka Jauhiainen)
Visual Basic -ohjelmointi
Sovellettu matematiikka 3 Jarkko Hurme1 Maplen peruskäyttö 2. Derivaatta ja integraali.
Monotoniset jonot Jono (a n ) on kasvava, jos  n : a n+1  a n aidosti kasvava, jos  n : a n+1 > a n aidosti vähenevä, jos  n : a n+1 < a n vähenevä,
Tiedon vieminen funktiolle tMyn1 Tiedon vieminen funktiolle, parametrit Argumentin vieminen funktiolle voidaan toteuttaa kahdella menetelmällä: –Pass-by-Value.
Funktio.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
2. MÄÄRÄTTY INTEGRAALI Pinta-alan käsite Kirja, sivut
2. Lukujonot -äärellinen tai ääretön 2.1. Lukujonon käsiteLuettelona: a 1, a 2, a 3,…,a n,…, jolloin a n on jonon n:s termi Lukujonon merkintätapoja Jono.
Funktio ja funktion kuvaaja
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Lisää laskentoa TIEA341 Funktio-ohjelmointi 1 Syksy 2005.
Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö.
Jatkeet TIES341 Funktio-ohjelmointi 2 Kevät 2006.
Uusi näkökulma TIEA341 Funktio-ohjelmointi 1 Syksy 2005.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Laiska laskenta, korekursio ja äärettömyys
Luokan nimi, numero Opettaja Ryhmän jäsenten nimet
Monadeja siellä, monadeja täällä... monadeja kaikkialla?
Funktio-ohjelmointi ja Java
TIES341 Funktio-ohjelmointi 2 Kevät 2006
7. Hyvä ohjelmointitapa..
13. Loogiset operaatiot.
Funktion kuvaaja ja nollakohdat
Määritä särmiön tilavuus
TIES341 Funktio-ohjelmointi 2 Kevät 2006
TIEA341 Funktio-ohjelmointi 1 Syksy 2005
7. Näytölle tulostaminen
9. Aritmeettiset operaatiot
2. Lukujonot 2.1. Lukujonon käsite -äärellinen tai ääretön Luettelona:
16. Ohjelmoinnin tekniikkaa
14. Hyvä ohjelmointitapa.
Laiska laskenta, korekursio ja äärettömyys
7. Hyvä ohjelmointitapa..
7. Näytölle tulostaminen
Itseisarvo ja vastaluku
5. Lisää sovellettavuutta
CLT132 Tehtävät (viikko 9).
13. Loogiset operaatiot.
Iitin yläaste Matematiikka 7. luokka
Ohjelman perusrakenteet
3. Attribuutit.
Derivointikaavoja 1/2 Seuraavissa kaavoissa u jav ovat x:n funktioita; A ja n ovat vakioita Vaasan yliopisto | Sähkötekniikka | SATE2108 Derivointi-
16. Ohjelmoinnin tekniikkaa
Esityksen transkriptio:

Vielä laskentoa: kertausta ja täsmennystä TIEA341 Funktio-ohjelmointi 1 Syksy 2005

“Laajennetun aritmetiikan” lausekkeet Muuttuja on lauseke Ei-negatiivinen lukuvakio on lauseke Kahden lausekkeen summa, erotus, tulo ja osamäärä ovat lausekkeita, samoin lausekkeen vastaluku Funktiokutsu on lauseke funktion nimi jonka jälkeen tulee peräkkäin kirjoitettuna yksi tai useampi argumenttilauseke Koostimenkutsu on lauseke muodoltaan kuten funktiokutsu koostin eroaa funktion nimestä isolla alkukirjaimellaan Haskellin case on lauseke rajoitus: ei vahteja, hahmot eivät rekursiivisia Pohja (⊥) on lauseke – ilmaisee virhettä

Presedenssi ja assosiatiivisuus Huom! f g h x on sama kuin ((f g) h) x

Normaalimuodot Heikko päänormaalimuoto (WHNF): Vakio on WHNF-lauseke Koostimenkutsu on WHNF-lauseke Vastalukulauseke on WHNF Pohja on WHNF-lauseke Normaalimuoto (NF): Vakio on NF-lauseke Koostimenkutsu on NF-lauseke, jos sen argumenttilausekkeet ovat NF huomaa rekursiivinen määrittely! Vastalukulauseke on NF, jos sen alilauseke on vakio Pohja on NF-lauseke

Vastaluvun sievennyssääntö (NEG) Lauseke on NEG-redeksi, jos se on vastalukulauseke ­e ja e on WHNF ja e ei ole vakio NEG-redeksi sievenee aina pohjaksi Huom! Vakion vastaluku on normaalimuodossa, sitä ei voi sieventää

Yhteen-, vähennys- ja kertolaskun sievennys (+, -, *) Lauseke on +-, ­- tai *-redeksi, jos se on yhteen-, vähennys-, tai kertolasku ja sen alilausekkeet ovat WHNF Jos molemmat alilausekkeet ovat vakioita, +-, ­- ja *-redeksi sievenee normaalisti nollalla jako tuottaa pohjan Jos toinen alilauseke on vastalukulauseke: e + (­e') ==> e ­ e', e­ (­e') ==> e + e' (­e) + e' ==> e' ­ e, (­e) ­ e' ==> e' + e e * (­e') ==> ­(e * e'), e / (­e') ==> ­(e / e') (­e) * e' ==> ­(e * e'), (­e) / e' ==> ­(e / e') (­e) * (­e') ==> e * e', (­e) / (­e') ==> e / e' Muuten tulos on pohja

Funktiokutsun sievennys Funktiokutsulauseke f e1 ... en on aina funktiokutsuredeksi Jos laskentaympäristössä on f x1 ... xn = e huomaa: sama määrä parametreja kuin argumentteja niin lauseke sievenee muotoon e[x1e1,...,xnen] Jos ei, niin lauseke sievenee pohjaksi

Casen sievennys, tapaus 1 case-lauseke on LCASE-redeksi, jos sen ensimmäinen hahmo on muuttujahahmo case e of x -> e' sievenee muotoon e[xe] huomaa! sovitettavan ei tarvitse olla WHNF! poikkeus viime viikon säännöstä

Casen sievennys, tapaus 2 case-lauseke on ECASE-redeksi, jos se ei ole LCASE-redeksi ja tutkittava lauseke on WHNF jos casessa ei ole hahmoja, lauseke sievenee pohjaksi case C e1 ... en of C x1 ... xn -> e sievenee muotoon e[x1e1,...,xnen] sama koostin, sama määrä parametreja ja argumentteja case V of V -> e sievenee muotoon e muuten case e of p1 -> e1 ; p2 -> e2 ... sievenee muotoon case e of p2 -> e2 ...

Korvaus e[x1e1,...,xnen] Pääsääntö: kukin muuttuja xi korvataan ei:llä lausekkeessa e Poikkeus: jos jokin xi on jossakin alilausekkeessa paikallinen muuttuja (case-lausekkeiden haarat lähinnä), näitä paikallisia muuttujia ei korvata Varoitus: Korvaus ei saa aiheuttaa ei-paikallisen muuttujan muuttumista paikalliseksi paikallinen muuttuja on nimettävä uudelleen konfliktin sattuessa esim. (case 1 of x -> y)[yx] ==> case 1 of z -> x

Sievennettävän alilausekkeen valinta Jos lausekkeessa on useampi redeksi, valitaan niistä vasemmanpuoleisin jätetään huomiotta ne redeksit, jotka ovat toisen redeksin sisällä Toisin sanoen: uloimmista vasemmanpuolisin ... eli normaalijärjestys

Viimeinen sievennyssääntö Jos lausekkeella ei muiden sääntöjen nojalla ole normaalimuotoa, se voidaan viimeisen sievennyssäännön nojalla sieventää pohjaksi Pohja edustaa näin ollen sekä virhettä että umpiluuppia puhtaassa funktio-ohjelmoinnissa ohjelma ei muutenkaan voi erottaa näitä toisistaan