TIEA341 Funktio-ohjelmointi 1, kevät 2008
|
|
- Riitta-Liisa Karoliina Lahti
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 11 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 21. tammikuuta 2008
2 Listakomprehensio Uusi tapa luoda (ja muokata) listoja: [ lauseke tarkenne 1,..., tarkenne n ] tarkenne voi olla: hahmo <- listalauseke (generaattori) kukin hahmossa mainittu muuttuja näkyy myöhemmissä tarkenteissa sekä pystyviivan vasemmalla puolella nuolen oikealla puolella olevan lausekkeen on oltava listatyyppiä; kutakin ko. lausekkeen arvon alkiota sovitetaan vuorollaan hahmoon ehtolauseke (vahti) let määritelmäjoukko kukin määritelty muuttuja näkyy myöhemmissä tarkenteissa sekä pystyviivan vasemmalla puolella
3 Esimerkkejä [ x^2 x < [ 1.. ], x mod 2 == 1 ] Lista kaikista parittomien lukujen neliöistä. c a r t e s i a n xs ys = [ ( x, y ) x < xs, y < ys ] Funktio, joka muodostaa kahden listan karteesisen tulon. Idea: iteroidaan generaattoreissa mainittujen listojen läpi ja raakataan pois ne, jotka vahdit hylkäävät, ja muodostetaan kullakin ei-hylätyllä kierroksella uusi alkio tuloslistaan.
4 Kielioppimakeinen [ e True ] = [ e ] [ e q ] = [ e q, True ] [ e b, Q ] = if b then [ e Q ] else [] [ e p <- l, Q ] = let ok p = [ e Q ] ; ok _ = [] in concatmap ok l (missä ok on uusi nimi) [ e let decls, Q ] = let decls in [ e Q ] Missä e on lauseke, q on jokin tarkennin, Q on tarkentimien jono, b on ehtolauseke, p on hahmo, l on listalauseke ja decls on määritelmäjoukko.
5 Tyyppiluokat Muistathan: (+) : : Num a => a > a > a (==) : : Eq a => a > a > Bool show : : Show a => a > String fromintegral : : (Num b, I n t e g r a l a ) => a > b Num, Eq, Show ja Integral ovat tyyppiluokkia osa tyypeistä kuuluu Num:iin, osa ei Num a, Eq a, Show a ja (Num b, Integral a) ovat konteksteja konteksti =>tyyppi tarkoittaa, että kyseinen tyyppi on voimassa silloin, kun konteksti pätee
6 Vakiokirjaston tyyppiluokat: Eq c l a s s Eq a where (==) : : a > a > Bool (/=) : : a > a > Bool x /= y = not ( x == y ) x == y = not ( x /= y ) Tyyppi a kuuluu luokkaan Eq, jos ja vain jos ko. tyypille on määritelty funktiot (==) :: a > a > Bool ja (/=) :: a > a > Bool. Mikäli funktiota (/=) ei ole määritelty, se määritellään automaattisesti luokkaan Eq kuuluvilla tyypeillä seuraavasti: x /= y = not (x == y). Mikäli funktiota (==) ei ole määritelty, se määritellään automaattisesti luokkaan Eq kuuluvilla tyypeillä seuraavasti: x == y = not (x /= y).
7 Vakiokirjaston tyyppiluokat: Ord d a t a O r d e r i n g = LT EQ GT c l a s s Eq a => Ord a where compare : : a > a > O r d e r i n g ( <), (<=), (>=), (>) : : a > a > B o o l max, min : : a > a > a compare x y x == y = EQ x <= y = LT o t h e r w i s e = GT x <= y = compare x y /= GT x < y = compare x y == LT x >= y = compare x y /= LT x > y = compare x y == GT max x y x <= y = y o t h e r w i s e = x min x y x <= y = x o t h e r w i s e = y class Eq a =>Ord a tarkoittaa, että vain Eq-luokkaan kuuluva tyyppi voi kuulua Ord-luokkaan.
8 Vakiokirjaston tyyppiluokat: Show t y p e ShowS = S t r i n g > S t r i n g c l a s s Show a where showsprec : : I n t > a > ShowS show : : a > S t r i n g s h o w L i s t : : [ a ] > ShowS s h o w s P r e c _ x s = show x ++ s show x = s h o w s P r e c 0 x "" s h o w L i s t [ ] = s h o w S t r i n g " [ ] " s h o w L i s t ( x : x s ) = showchar [. shows x. s h o w l x s where s h o w l [ ] = showchar ] s h o w l ( x : x s ) = showchar,. shows x. s h o w l x s
9 ShowS ShowS on näppärä temppu, jolla kierretään se, että (++) on tehoton, kun merkkijonoa kasataan lisäämällä jatkuvasti uutta kamaa loppuun ShowS-tyyppinen arvo edustaa merkkijonoa se on funktio, joka lisää edustamansa merkkijonon parametrina saamansa merkkijonon eteen (.) toimii ShowS-merkkijonojen katenoijana Vakiokirjastossa myös: showchar : : Char > ShowS showstring : : String > ShowS shows : : (Show a ) => a > ShowS
10 showsprec showsprec : : Show a => I n t > a > ShowS muuttaa annetun vekottimen merkkijonoksi huomioiden presedenssitasot ensimmäinen parametri kertoo nykyisen presedenssitason jos tulostettavan vekottimen presedenssi on matalampi kuin nykyisen presedenssitason, merkkijonon ympärille tulee sulut
11 showlist showlist : : Show a => [ a ] > ShowS käyttää normaalisti normaalia listasyntaksia mahdollistaa erikoisten esitysten käyttämisen esim. String-tyypillä tämä on määritelty uudestaan
12 Vakiokirjaston tyyppiluokat: Read t y p e ReadS a = S t r i n g > [ ( a, S t r i n g ) ] c l a s s Read a where r e a d s P r e c : : I n t > ReadS a r e a d L i s t : : ReadS [ a ] r e a d L i s t =... l e x : : ReadS S t r i n g l e x =.. r e a d s : : ( Read a ) => ReadS a r e a d s = r e a d s P r e c 0 r e a d : : ( Read a ) => S t r i n g > a r e a d s = c a s e [ x ( x, t ) < r e a d s s, ( "", "" ) < l e x t ] o f [ x ] > x [ ] > e r r o r " P r e l u d e. r e a d : no p a r s e " _ > e r r o r " P r e l u d e. r e a d : ambiguous p a r s e "
13 ReadS on jäsennysfunktioiden tyyppi: otetaan merkkijono ja palautetaan lista mahdollisista (osittaisista) jäsennyksistä (ja mitä jäi jäljelle) readsprec on showsprec n vastakohta readslist on readsprec n vastakohta reads ja read ovat hyödyllisiä apufunktioita, joita ei määritellä kullekin tyypille erikseen
14 Vakiokirjaston tyyppiluokat: Enum c l a s s Enum a where s u c c, p r e d : : a > a toenum : : I n t > a fromenum : : a > I n t enumfrom : : a > [ a ] [ n.. ] enumfromthen : : a > a > [ a ] [ n, n.. ] enumfromto : : a > a > [ a ] [ n.. m] enumfromthento : : a > a > a > [ a ] [ n, n.. m] s u c c = toenum. (+1). fromenum p r e d = toenum. ( s u b t r a c t 1). fromenum enumfrom x = map toenum [ fromenum x.. ] enumfromto x y = map toenum [ fromenum x.. fromenum y ] enumfromthen x y = map toenum [ fromenum x, fromenum y.. ] enumfromthento x y z = map toenum [ fromenum x, fromenum y.. fromenum z ] lueteltavissa olevien tyyppien luokka
15 Vakiokirjaston tyyppiluokat: Bounded c l a s s Bounded a where minbound : : a maxbound : : a rajoitettujen tyyppien luokka
16 Vakiokirjaston tyyppiluokat: Num c l a s s (Eq a, Show a ) => Num a where (+), ( ), ( ) : : a > a > a negate : : a > a abs, signum : : a > a frominteger : : Integer > a x y = x + negate y negate x = 0 x Kokonaislukuvakiot kulkevat implisiittisesti frominteger n kautta.
17 Vakiokirjaston tyyppiluokat: Real c l a s s (Num a, Ord a ) => Real a where torational : : a > Rational reaalilukuja approksimoivien lukutyyppien luokka jokainen approksimoiva luku on rationaaliluku (torational on tarkka muunnos)
18 Vakiokirjaston tyyppiluokat: Integral c l a s s ( R e a l a, Enum a ) => I n t e g r a l a where quot, rem : : a > a > a d i v, mod : : a > a > a quotrem, divmod : : a > a > ( a, a ) t o I n t e g e r : : a > I n t e g e r n quot d = q where ( q, r ) = quotrem n d n rem d = r where ( q, r ) = quotrem n d n div d = q where ( q, r ) = divmod n d n mod d = r where ( q, r ) = divmod n d divmod n d = i f signum r == signum d then ( q 1, r+d ) e l s e qr where qr@ ( q, r ) = quotrem n d
19 Vakiokirjaston tyyppiluokat: Fractional c l a s s (Num a ) => F r a c t i o n a l a where ( / ) : : a > a > a r e c i p : : a > a fromrational : : Rational > a r e c i p x = 1 / x x / y = x r e c i p y
20 Vakiokirjaston tyyppiluokat: Floating c l a s s ( F r a c t i o n a l a ) => Floating a where pi : : a exp, log, sqrt : : a > a ( ), logbase : : a > a > a sin, cos, tan : : a > a asin, acos, atan : : a > a sinh, cosh, tanh : : a > a asinh, acosh, atanh : : a > a x y = exp ( log x y ) logbase x y = log y / log x s qrt x = x 0. 5 tan x = s i n x / cos x tanh x = sinh x / cosh x
21 Vakiokirjaston tyyppiluokat: RealFrac c l a s s ( R e a l a, F r a c t i o n a l a ) => R e a l F r a c a where p r o p e r F r a c t i o n : : ( I n t e g r a l b ) => a > ( b, a ) t r u n c a t e, r o u n d : : ( I n t e g r a l b ) => a > b c e i l i n g, f l o o r : : ( I n t e g r a l b ) => a > b t r u n c a t e x = m where (m,_) = p r o p e r F r a c t i o n x r o u n d x = l e t ( n, r ) = p r o p e r F r a c t i o n x m = i f r < 0 t h e n n 1 e l s e n + 1 i n c a s e signum ( a b s r 0. 5 ) o f 1 > n 0 > i f e v e n n t h e n n e l s e m 1 > m c e i l i n g x = i f r > 0 t h e n n + 1 e l s e n where ( n, r ) = p r o p e r F r a c t i o n x f l o o r x = i f r < 0 t h e n n 1 e l s e n where ( n, r ) = p r o p e r F r a c t i o n x properfraction palauttaa luvun kokonaisosan ja desimaaliosan toisistaan erotettuina
22 Vakiokirjaston tyyppiluokat: RealFloat c l a s s ( R e a l F r a c a, F l o a t i n g a ) => R e a l F l o a t a where f l o a t R a d i x : : a > I n t e g e r f l o a t D i g i t s : : a > I n t f l o a t R a n g e : : a > ( I n t, I n t ) d e c o d e F l o a t : : a > ( I n t e g e r, I n t ) e n c o d e F l o a t : : I n t e g e r > I n t > a e x p o n e n t : : a > I n t s i g n i f i c a n d : : a > a s c a l e F l o a t : : I n t > a > a isnan, i s I n f i n i t e, i s D e n o r m a l i z e d, i s N e g a t i v e Z e r o, i s I E E E : : a > B o o l a t a n 2 : : a > a > a e x p o n e n t x = i f m == 0 t h e n 0 e l s e n + f l o a t D i g i t s x where (m, n ) = d e c o d e F l o a t x s i g n i f i c a n d x = e n c o d e F l o a t m ( f l o a t D i g i t s x ) where (m,_) = d e c o d e F l o a t x s c a l e F l o a t k x = e n c o d e F l o a t m ( n+k ) where (m, n ) = d e c o d e F l o a t x a t a n 2 y x =...
23 Tyypin määritteleminen osaksi luokkaa instance Eq Char where c == c = fromenum c == fromenum c instance Ord Char where c <= c = fromenum c <= fromenum c Char kuuluu Eq-tyyppiluokkaan, ja samalla määritellään vaadittu funktio c == c = fromenum c == fromenum c. Char kuuluu Ord-tyyppiluokkaan, ja samalla määritellään vaadittu funktio c <= c = fromenum c <= fromenum c.
24 määrittelemättä jätetyt funktiot määritellään class-määrittelyssä esitetyllä tavalla (ns. oletusmääritelmä) jos funktiolla ei ole oletusmääritelmää, se on pakko määritellä jos funktio määritellään instance-määrittelyssä, sen mahdollinen oletusmääritelmä sivuutetaan
25 Esimerkki: Eq (FiniteMap k d) i n s t a n c e ( Eq k, Eq d ) => Eq ( FiniteMap k d ) where EmptyFM == EmptyFM = True (NonEmptyFM l t k d gt ) == (NonEmptyFM l t k d gt ) = k == k && d == d && l t == l t && gt == gt _ == _ = F a l s e
26 Esimerkki: Show Expr i n s t a n c e Show Expr where s h o w s P r e c 1 = showscmp s h o w s P r e c 2 = showsadd s h o w s P r e c 3 = showsmul s h o w s P r e c 4 = showspow s h o w s P r e c 5 = showsunary s h o w s P r e c n n >= 6 = s h o w s P r i m a r y n <= 0 = showsexpr showsexpr : : Expr > ShowS showsexpr = showscmp...
27 ... Esimerkki: Show Expr showscmp : : Expr > ShowS showscmp ( e1 :==: e2 ) = showsadd e1. s h o w S t r i n g " == ". showsadd e2 showscmp ( e1 : /=: e2 ) = showsadd e1. s h o w S t r i n g " /= ". showsadd e2 showscmp ( e1 :<=: e2 ) = showsadd e1. s h o w S t r i n g " <= ". showsadd e2 showscmp ( e1 :>=: e2 ) = showsadd e1. s h o w S t r i n g " >= ". showsadd e2 showscmp ( e1 : <: e2 ) = showsadd e1. s h o w S t r i n g " < ". showsadd e2 showscmp ( e1 : >: e2 ) = showsadd e1. s h o w S t r i n g " > ". showsadd e2 showscmp e = showsadd e showsadd : : Expr > ShowS showsadd ( e1 :+: e2 ) = showsadd e1. s h o w S t r i n g " + ". showsmul e2 showsadd ( e1 : : e2 ) = showsadd e1. s h o w S t r i n g " ". showsmul e2 showsadd e = showsmul e...
28 Esimerkki: Show Expr... showsmul : : Expr > ShowS showsmul ( e1 : : e2 ) = showsmul e1. s h o w S t r i n g " ". showspow e2 showsmul ( e1 : / : e2 ) = showsmul e1. s h o w S t r i n g " ". showspow e2 showsmul e = showspow e showspow : : Expr > ShowS showspow ( e1 : ^ : e2 ) = showsunary e1. s h o w S t r i n g " ^ ". showspow e2 showspow e = showsunary e showsunary : : Expr > ShowS showsunary ( Negate e ) = showchar. showsunary e showsunary e = s h o w s P r i m a r y e s h o w s P r i m a r y : : Expr > ShowS showsprimary (C ( NumValue v ) ) = shows v showsprimary (C ( BoolValue True ) ) = s h o w S t r i n g " (0 == 0) " showsprimary (C ( BoolValue F a l s e ) ) = showstring " (0 /= 0) " s h o w s P r i m a r y (V s ) = s h o w S t r i n g s s h o w s P r i m a r y e = showchar (. showsexpr e. showchar )
29 Varoituksen sana Pidä huoli, että Show ja Read ymmärtävät toisiaan! (Vaihtoehtoisesti älä määrittele Readia.)
30
31
32
Funktionimien kuormitus. TIES341 Funktio ohjelmointi 2 Kevät 2006
Funktionimien kuormitus TIES341 Funktio ohjelmointi 2 Kevät 2006 Kertausta ongelma Mikä on (+) operaattorin tyyppi? Num a => a -> a -> a Mikä on (==) operaattorin tyyppi? Eq a => a -> a -> a Mikä on show
LisätiedotTyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Tyyppejä ja vähän muutakin TIEA341 Funktio ohjelmointi 1 Syksy 2005 Viime luennolla... Haskellin alkeita pääasiassa Hello World!... ja muita tutunoloisia ohjelmia Haskellilla Haskellin voima on kuitenkin
LisätiedotTIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA341 Funktio-ohjelmointi 1, kevät 2008 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 10. tammikuuta 2008 Arvot... ovat laskutoimituksen lopputuloksia... ovat lausekkeita, joihin
LisätiedotTIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 9 Kombinaattoreista Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 21. tammikuuta 2008 Currying Haskell-funktio ottaa aina vain yhden
LisätiedotTIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 14: Monadit Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 21. tammikuuta 2008 Tyyppien tyypit eli luonteet engl. kind tyyppinimet, kuten
LisätiedotTIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 4 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 17. tammikuuta 2008 Modulin viimeistelyä module Shape ( Shape ( Rectangle, E l l i p
LisätiedotTIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 5 Ympärysmitta. Puut. Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 21. tammikuuta 2008 CASE: YMPÄRYSMITTA Lasketaan kuvioiden ympärysmittoja
LisätiedotLaajennetaan vielä Ydin-Haskellia ymmärtämään vakiomäärittelyt. Määrittely on muotoa
2.6. TIETOKONE LASKIMENA 23 Edellä esitetty Ydin-Haskell on hyvin lähellä sitä kieltä, jota GHCi (Glasgow Haskell Compiler, Interactive) sekä muut Haskell-järjestelmät suostuvat ymmärtämään. Esimerkiksi:
LisätiedotTIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 10 Todistamisesta Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 21. tammikuuta 2008 Samuuden todistaminen usein onnistuu ihan laskemalla
LisätiedotAlgebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Tällä luennolla Algebralliset tietotyypit Hahmonsovitus (pattern matching) Primitiivirekursio Esimerkkinä binäärinen hakupuu Muistattehan...
LisätiedotLuku 3. Listankäsittelyä. 3.1 Listat
Luku 3 Listankäsittelyä Funktio-ohjelmoinnin tärkein yksittäinen tietorakenne on lista. Listankäsittely on paitsi käytännöllisesti oleellinen aihe, se myös valaisee funktio-ohjelmoinnin ideaa. 3.1 Listat
Lisätiedot5.1 Tyyppiparametrit. Nyt lisäämme parametrit myös data-määrittelyihin: data Nimi tp 1 tp 2 tp 3... tp k =...
5.1 Tyyppiparametrit Nyt lisäämme parametrit myös data-määrittelyihin: data Nimi tp 1 tp 2 tp 3... tp k =... Lisäämme ne myös type- ja newtype-määrittelyihin. Nämäkin parametrit tp i kirjoitetaan pienellä
LisätiedotTyyppiluokat II konstruktoriluokat, funktionaaliset riippuvuudet. TIES341 Funktio-ohjelmointi 2 Kevät 2006
Tyyppiluokat II konstruktoriluokat, funktionaaliset riippuvuudet TIES341 Funktio-ohjelmointi 2 Kevät 2006 Alkuperäislähteitä Philip Wadler & Stephen Blott: How to make ad-hoc polymorphism less ad-hoc,
LisätiedotTIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA34 Funktio-ohjelmointi, kevät 2008 Luento 3 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 2. tammikuuta 2008 Ydin-Haskell: Syntaksi Lausekkeita (e) ovat: nimettömät funktiot: \x
LisätiedotEsimerkki: Laskin (alkua) TIEA341 Funktio ohjelmointi 1 Syksy 2005
Esimerkki: Laskin (alkua) TIEA341 Funktio ohjelmointi 1 Syksy 2005 Esimerkki: Laskin Liukulukulaskentaa Yhteen, vähennys, kerto ja jakolaskut Syötteenä laskutehtävä, tulosteena tulos tai virheilmoitus
Lisätiedot5.5 Jäsenninkombinaattoreista
5.5. JÄSENNINKOMBINAATTOREISTA 67 type Env α = FiniteMap String α data EnvT m α = MkE (Env Integer m (Env Integer, α)) instance Transformer EnvT where promote mp = MkE $ λenv mp λr return $(env, r) instance
LisätiedotHaskell ohjelmointikielen tyyppijärjestelmä
Haskell ohjelmointikielen tyyppijärjestelmä Sakari Jokinen Helsinki 19. huhtikuuta 2004 Ohjelmointikielten perusteet - seminaarityö HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Johdanto 1 Tyyppien
LisätiedotGeneeriset tyypit. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos
Geneeriset tyypit TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 6. maaliskuuta 2007 Kysymys Mitä yhteistä on seuraavilla funktioilla?
LisätiedotTämän vuoksi kannattaa ottaa käytännöksi aina kirjoittaa uuden funktion tyyppi näkyviin, ennen kuin alkaa sen määritemää kirjoittamaan.
3.1. LISTAT 35 destaan pisteittäisesti: init :: [α] [α] init (x : []) = [] init (x : xs) = x : init xs Varuskirjastoon kuuluu myös funktiot take ja drop, jotka ottavat tai tiputtavat pois, funktiosta riippuen,
LisätiedotJäsennys. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Jäsennys TIEA341 Funktio ohjelmointi 1 Syksy 2005 Muistutus: Laskutehtävä ja tulos data Laskutehtava = Luku Double Yhteen Laskutehtava Laskutehtava Vahennys Laskutehtava Laskutehtava Tulo Laskutehtava
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
LisätiedotAbstraktit tietotyypit. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Abstraktit tietotyypit TIEA341 Funktio ohjelmointi 1 Syksy 2005 Data abstraktio Abstraktio on ohjelmoinnin tärkein väline Data abstraktio abstrahoi dataa Abstrakti tietotyyppi Koostuu kolmesta asiasta:
Lisätiedotjäsennyksestä TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 29. syyskuuta 2016 TIETOTEKNIIKAN LAITOS Kontekstittomien kielioppien
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. syyskuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 29.9.2016 klo 8:41 (lähes kaikki kommentoitu) passed
LisätiedotLuento 5. Timo Savola. 28. huhtikuuta 2006
UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
LisätiedotTIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 10. kesäkuuta 2013
TIEA241 Automaatit ja kieliopit, kesä 2013 etenevä Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 10. kesäkuuta 2013 Sisällys etenevä etenevä Chomskyn hierarkia (ja muutakin) kieli säännöllinen LL(k) LR(1)
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen
Lisätiedotjäsentämisestä TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 27. marraskuuta 2015 TIETOTEKNIIKAN LAITOS
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 27. marraskuuta 2015 Sisällys Rekursiivisesti etenevä engl. recursive descent parsing Tehdään kustakin välikesymbolista
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 7: Funktionaalista ohjelmointia (mm. SICP 3.5) Riku Saikkonen 13. 11. 2012 Sisältö 1 Laiskaa laskentaa: delay ja force 2 Funktionaalinen I/O 3 Funktionaalista
LisätiedotTähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely
LisätiedotTIEA241 Automaatit ja kieliopit, syksy 2015. Antti-Juhani Kaijanaho. 3. joulukuuta 2015
TIEA241 Automaatit ja, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. joulukuuta 2015 Sisällys Formaalisti Määritelmä Nelikko G = (V, Σ, P, S) on kontekstiton kielioppi (engl. context-free
LisätiedotTIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 2. helmikuuta 2012
TIEA241 Automaatit ja, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 2. helmikuuta 2012 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti lueteltava
Lisätiedottään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla
2.5. YDIN-HASKELL 19 tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla kirjaimilla. Jos Γ ja ovat tyyppilausekkeita, niin Γ on tyyppilauseke. Nuoli kirjoitetaan koneella
Lisätiedot815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset
815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/
Lisätiedot815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 6 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/
LisätiedotDemo 7 ( ) Antti-Juhani Kaijanaho. 9. joulukuuta 2005
Demo 7 (14.12.2005) Antti-Juhani Kaijanaho 9. joulukuuta 2005 Liitteenä muutama esimerkki Ydin-Haskell-laskuista. Seuraavassa on enemmän kuin 12 nimellistä tehtävää; ylimääräiset ovat bonustehtäviä, joilla
LisätiedotLaiska laskenta, korekursio ja äärettömyys. TIEA341 Funktio ohjelmointi Syksy 2005
Laiska laskenta, korekursio ja äärettömyys TIEA341 Funktio ohjelmointi Syksy 2005 Muistatko graafinsievennyksen? DAG esitys ja graafinsievennys DAG esitys Lausekkeen rakennepuu, jossa yhteiset alilausekkeet
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman
LisätiedotLyhyt kertaus osoittimista
, syksy 2007 Kertausta Luento 10 12.10.2007 Syksy 2007 1 Lyhyt kertaus osoittimista char *p; /* char, int, jne ilmoittavat, minkä tyyppisiä */ Keskusmuisti int *q; /* olioita sisältäviin muistilohkoihin
LisätiedotFortran 90/95. + sopii erityisesti numeriikkaan:
Fortran 90/95 + sopii erityisesti numeriikkaan: + optimoivat kääntäjät tehokas koodi + mukana valmiiksi paljon varusfunktioita + kompleksiluvut + taulukko-operaatiot + operaattorit laajennettavissa myös
LisätiedotOhjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin
Ohjausjärjestelmien jatkokurssi Visual Basic vinkkejä ohjelmointiin http://www.techsoft.fi/oskillaattoripiirit.htm http://www.mol.fi/paikat/job.do?lang=fi&jobid=7852109&index=240&anchor=7852109 Yksiköt
LisätiedotHarjoitus 1 -- Ratkaisut
Kun teet harjoitustyöselostuksia Mathematicalla, voit luoda selkkariin otsikon (ja mahdollisia alaotsikoita...) määräämällä soluille erilaisia tyylejä. Uuden solun tyyli määrätään painamalla ALT ja jokin
LisätiedotKoottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.
2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja
Lisätiedot2 Funktion derivaatta
ANALYYSI B, HARJOITUSTEHTÄVIÄ, KEVÄT 2019 2 Funktion derivaatta 2.1 Määritelmiä ja perusominaisuuksia 1. Määritä suoraan derivaatan määritelmää käyttäen f (0), kun (a) + 1, (b) (2 + ) sin(3). 2. Olkoon
LisätiedotJohdatus f90/95 ohjelmointiin. H, R & R luvut 1-3
Johdatus f90/95 ohjelmointiin H, R & R luvut 1-3 Fortran-kieli ( 3.1-3) IBM 1954, FORmula TRANslator ISO/ANSI standardit f90, f95, f2003 tieteellinen & teknillinen laskenta rinnakkaislaskenta (HPF, openmp)
LisätiedotMatriiseista. Emmi Koljonen
Matriiseista Emmi Koljonen 3. lokakuuta 22 Usein meillä on monta systeemiä kuvaavaa muuttujaa ja voimme kirjoittaa niiden välille riippuvaisuuksia, esim. piirin silmukoihin voidaan soveltaa silmukkavirtayhtälöitä.
Lisätiedot6 Eksponentti- ja logaritmifunktio
ANALYYSI A, HARJOITUSTEHTÄVIÄ, KEVÄT 019 6 Eksponentti- ja logaritmifunktio 6.1 Eksponenttifunktio 1. Määritä (a) e 3 e + 5, (b) e, (c) + 3e e cos.. Tutki, onko funktiolla f() = 1 e tan + 1 ( π + nπ, n
LisätiedotTaas laskin. TIES341 Funktio ohjelmointi 2 Kevät 2006
Taas laskin TIES341 Funktio ohjelmointi 2 Kevät 2006 Rakennepuutyyppi data Term = C Rational T F V String Term :+: Term Term : : Term Term :*: Term Term :/: Term Term :==: Term Term :/=: Term Term :
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 4: Symbolit, derivojaesimerkki, kierroksen 1 ratkaisut (mm. SICP 2.32.3.2) Riku Saikkonen 1. 11. 2011 Sisältö 1 Symbolit ja sulkulausekkeet 2 Lisää Schemestä:
LisätiedotPythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python
Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat
LisätiedotFunktion määrittely (1/2)
Funktion määrittely (1/2) Funktio f : A B on sääntö, joka liittää jokaiseen joukon A alkioon a täsmälleen yhden B:n alkion b. Merkitään b = f (a). Tässä A = M f on f :n määrittelyjoukko, B on f :n maalijoukko.
LisätiedotTIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 3 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 14. tammikuuta 2008 Viittausten läpinäkyvyyden 1 periaatteet 1. Lausekkeen arvo ei riipu
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 6: Funktionaalista ohjelmointia: todistamisesta, virrat ja I/O, hahmonsovitus (mm. SICP 3.5) Riku Saikkonen 8. 11. 2011 Sisältö 1 Vähän funktionaalisten
LisätiedotKoostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:
Funktiot Koostefunktiot Viisi standardifunktiota: AVG -- keskiarvo MIN -- pienin arvo MAX -- suurin arvo SUM -- summa COUNT-- lukumäärä Esim. montako henkilöä on henkilo-taulussa: SELECT Count(*) AS Lkm
Lisätiedot2.4 Normaalimuoto, pohja ja laskentajärjestys 2.4. NORMAALIMUOTO, POHJA JA LASKENTAJÄRJESTYS 13
2.4. NORMAALIMUOTO, POHJA JA LASKENTAJÄRJESTYS 13 Toisinaan voi olla syytä kirjoittaa α- tai β-kirjain yhtäsuuruusmerkin yläpuolelle kertomaan, mitä muunnosta käytetään. Esimerkki 4 1. (λx.x)y β = y 2.
LisätiedotTietotyypit ja operaattorit
Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto
Lisätiedot5.3 Laskimen muunnelmia 5.3. LASKIMEN MUUNNELMIA 57
5.3. LASKIMEN MUUNNELMIA 57 Samaan sarjaan kuuluu seuraavakin funktio, jonka määritelmä esittelee muutenkin hyödyllisen tavan kirjoittaa ohjelmia: getline :: IO String getline = getchar λc case c of \n
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 3: SICP kohdat 2.22.3, 33.1 ja 3.33.3.2 Riku Saikkonen 8. 11. 2010 Sisältö 1 Lisää listoista 2 Symbolit ja sulkulausekkeet 3 Derivoijaesimerkki 4 Muuttujan
LisätiedotMATEMATIIKAN PERUSKURSSI I Harjoitustehtäviä syksy Millä reaaliluvun x arvoilla. 3 4 x 2,
MATEMATIIKAN PERUSKURSSI I Harjoitustehtäviä syksy 6. Millä reaaliluvun arvoilla a) 9 =, b) + + + 4, e) 5?. Kirjoita Σ-merkkiä käyttäen summat 4, a) + 4 + 6 + +, b) 8 + 4 6 + + n n, c) + + +
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 26.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 26.1.2009 1 / 33 Valintakäsky if syote = raw_input("kerro tenttipisteesi.\n") pisteet = int(syote) if pisteet >=
Lisätiedotjäsentäminen TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 26. marraskuuta 2015 TIETOTEKNIIKAN LAITOS
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 26. marraskuuta 2015 Sisällys Tunnistamis- ja jäsennysongelma Olkoon G = (N, Σ, P, S) kontekstiton kielioppi ja
Lisätiedotl 1 2l + 1, c) 100 l=0 AB 3AC ja AB AC sekä vektoreiden AB ja
MATEMATIIKAN PERUSKURSSI I Harjoitustehtäviä syksy 7. Millä reaaliluvun arvoilla a) 9 =, b) + 5 + +, e) 5?. Kirjoita Σ-merkkiä käyttäen summat 4, a) + + 5 + + 99, b) 5 + 4 65 + + n 5 n, c) +
LisätiedotTIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 9. lokakuuta 2016
TIEA241 Automaatit ja, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 9. lokakuuta 2016 Sisällys Kontekstiton kielioppi Kontekstiton kielioppi koostuu joukosta päätemerkkejä (engl. terminal symbols),
LisätiedotKOOSTEFUNKTIOT. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:
FUNKTIOT Viisi standardifunktiota: AVG -- keskiarvo MIN -- pienin arvo MAX -- suurin arvo SUM -- summa COUNT -- lukumäärä KOOSTEFUNKTIOT Esim. montako henkilöä on henkilo-taulussa: SELECT Count(*) AS Lkm
LisätiedotLUKUTEORIA A. Harjoitustehtäviä, kevät 2013. (c) Osoita, että jos. niin. a c ja b c ja a b, niin. niin. (e) Osoita, että
LUKUTEORIA A Harjoitustehtäviä, kevät 2013 1. Olkoot a, b, c Z, p P ja k, n Z +. (a) Osoita, että jos niin Osoita, että jos niin (c) Osoita, että jos niin (d) Osoita, että (e) Osoita, että a bc ja a c,
Lisätiedotl 1 2l + 1, c) 100 l=0
MATEMATIIKAN PERUSKURSSI I Harjoitustehtäviä syksy 5. Millä reaaliluvun arvoilla a) 9 =, b) 5 + 5 +, e) 5?. Kirjoita Σ-merkkiä käyttäen summat 4, a) + + 5 + + 99, b) 5 + 4 65 + + n 5 n, c)
Lisätiedotvaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 13. lokakuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 13.10.2016 klo 9:42 passed waiting redo submitters
LisätiedotOliot ja tyypit. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos
Oliot ja tyypit TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 19. maaliskuuta 2007 Olion tyyppi? attribuutti on oikeastaan metodi,
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 5: Sijoituslause, SICP-oliot, tietorakenteen muuttaminen (mm. SICP 33.1.3, 3.33.3.2) Riku Saikkonen 6. 11. 2012 Sisältö 1 Muuttujan arvon muuttaminen:
LisätiedotJava-kielen perusteet
Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet
LisätiedotJavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia)
JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia) Esim 5.1 laskujärjestys operaattorit var tulos = 5 + 4 * 12 / 4; document.write("5 + 4 * 12 / 4 laskutoimituksen tulos
LisätiedotT Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )
T-79144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet 11-22) 26 29102004 1 Ilmaise seuraavat lauseet predikaattilogiikalla: a) Jokin porteista on viallinen
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 8: Tulkki: proseduurit, abstrakti syntaksi, quote ja cond (mm. SICP 44.1.5 osin) Riku Saikkonen 15. 11. 2011 Sisältö 1 Argumentittomat proseduurit ja käyttöliittymä
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 8: Pienen ohjelmointikielen tulkki (ohjelmoitava laskin) (mm. SICP 4-4.1.5 osin) Riku Saikkonen 15. 11. 2012 Sisältö 1 Nelilaskintulkki, globaalit muuttujat
LisätiedotTietueet. Tietueiden määrittely
Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään
Lisätiedot1 sup- ja inf-esimerkkejä
Alla olevat kohdat (erityisesti todistukset) ovat lähinnä oheislukemista reaaliluvuista, mutta joihinkin niistä palataan myöhemmin kurssilla. 1 sup- ja inf-esimerkkejä Kaarenpituus. Olkoon r: [a, b] R
LisätiedotTIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 30. marraskuuta 2015 Sisällys t Väitöstilaisuus 4.12.2015 kello 12 vanhassa juhlasalissa S212 saa tulla 2 demoruksia
Lisätiedot815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava
LisätiedotJatkeet. TIES341 Funktio ohjelmointi 2 Kevät 2006
Jatkeet TIES341 Funktio ohjelmointi 2 Kevät 2006 Havainto: häntäkutsu (1) Funktiokutsun yleinen toimintaperiaate: (koskee vain täysiä kutsuja, ts. jotka eivät palauta funktiota) kutsuja kirjaa pinoon paluuosoitteen
LisätiedotOperaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta
C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus
LisätiedotMATEMATIIKAN JA TILASTOTIETEEN LAITOS Analyysi I Harjoitus alkavalle viikolle Ratkaisuehdotuksia (7 sivua) (S.M)
MATEMATIIKAN JA TILASTOTIETEEN LAITOS Analyysi I Harjoitus 7. 2. 2009 alkavalle viikolle Ratkaisuehdotuksia (7 sivua) (S.M) Luennoilla on nyt menossa vaihe, missä Hurri-Syrjäsen monistetta käyttäen tutustutaan
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 10.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 10.2.2010 1 / 43 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin
LisätiedotIntegroimistekniikkaa Integraalifunktio
. Integroimistekniikkaa.. Integraalifunktio 388. Vertaa funktioiden ln ja ln, b) arctan ja arctan + k k, c) ln( + 2 ja ln( 2, missä a >, derivaattoja toisiinsa. Tutki funktioiden erotusta muuttujan eri
LisätiedotKielioppia: toisin kuin Javassa
Object Pascal Pascal kielen oliolaajennus (Inprise/Borland:n oma) luokat Voit uudelleenkäyttää luomiasi objekteja esim. komponentteja Periytyminen Kielioppia: toisin kuin Javassa Ei eroa isojen ja pienien
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin
LisätiedotMuuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)
VISUAL BASIC OHJEITA Kutsuttava ohjelma alkaa kometoparilla Sub... End Sub Sub ohjelmanimi()...koodia... End Sub Muuttujat Muuttujan esittely Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency,
LisätiedotTämä tarina on Fibonaccin lukujen ongelman alkuperäinen muotoilu.
Rekursiosta ja iteraatiosta Oletetaan että meillä on aluksi yksi vastasyntynyt kanipari, joista toinen on uros ja toinen naaras. Kanit saavuttavat sukukypsyyden yhden kuukauden ikäisinä. Kaninaaraan raskaus
LisätiedotUusi näkökulma. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Uusi näkökulma TIEA341 Funktio ohjelmointi 1 Syksy 2005 Aloitetaan alusta... Otetaan uusi näkökulma Haskelliin ohjelmointi laskentana kertausta toisaalta, uusia käsitteitä toisaalta helpottanee sitten
LisätiedotHarjoitus 1 -- Ratkaisut
Kun teet harjoitustyöselostuksia Mathematicalla, voit luoda selkkariin otsikon (ja mahdollisia alaotsikoita...) määräämällä soluille erilaisia tyylejä. Uuden solun tyyli määrätään painamalla ALT ja jokin
LisätiedotMS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 6: Alkeisfunktioista
MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 6: Alkeisfunktioista Pekka Alestalo, Jarmo Malinen Aalto-yliopisto, Matematiikan ja systeemianalyysin laitos 28.9.2016 Pekka Alestalo,
Lisätiedot13. Loogiset operaatiot 13.1
13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.
LisätiedotLisää laskentoa. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Lisää laskentoa TIEA341 Funktio ohjelmointi 1 Syksy 2005 Kertausta: Laajennettu aritmetiikka Lasketaan rationaaliluvuilla vakiot yhteen, vähennys, kerto ja jakolasku Laajennetaan sitä määrittelyillä: vakio
LisätiedotSQL:N PERUSTEET OSIO 03 MARKKU SUNI
SQL:N PERUSTEET OSIO 03 MARKKU SUNI SQL - KIELI FUNKTIOT ELI SAADUN TIEDON JATKOKÄSITTELYÄ MARKKU SUNI Tarkastellaan Koostefunktioita Päiväys- ja kellonaikafunktioita Aritmeettisia funktioita Merkkifunktioita
Lisätiedot13. Loogiset operaatiot 13.1
13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.
LisätiedotJAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
Lisätiedot20. Javan omat luokat 20.1
20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotSisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang
Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotYksinkertaiset tyypit
Yksinkertaiset tyypit TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 13. helmikuuta 2007 Tyypitön puhdas λ-laskento E ::= I E 1 E 2
Lisätiedot