Sisend-väljund Haskellis

Suurus: px
Alustada lehe näitamist:

Download "Sisend-väljund Haskellis"

Väljavõte

1 82 Sisend-väljund Haskellis Haskelli puhtad funktsioonid ei võimalda teha mittepuhtaid arvutusi. Puhas funktsiooni tulemus sõltub ainult argumentide väärtusest. Ei saa teha näiteks juhuarvude funktsiooni random :: () -> Int Lahendus: IO monaad IO a tüüpi väärtus masin mis arvutab a tüüpi väärtuse return :: a -> IO a masina tagastab esimese argumendi väärtuse (>>=) :: IO a -> (a -> IO b) -> IO b masin käivitab esimese argumendi ja rakendab tulemuse teisele... lisaks baasfunktsioonid nagu putstrln :: String -> IO () ja getline :: IO String. Nii saab kombineerida olemasolevaid IO masinaid. Näiteks: main :: IO () main = randomrio (1, 10) >>= classify >>= putstrln where classify :: Int -> IO String classify x odd x = return "paaritu" otherwise = return "paaris"

2 83 do-süntaks I Eelneval slaidil olnud koodi on keeruline lugeda ja kirjutada: main :: IO () main = randomrio (1, 10) >>= classify >>= putstrln where classify :: Int -> IO String classify x odd x = return "paaritu" otherwise = return "paaris" Sama saab saavutada järgnevalt või main :: IO () main = do r <- randomrio (1, 10) c <- classify r putstrln c where classify :: Int -> IO String classify x odd x = return "paaritu" otherwise = return "paaris" main = do r <- randomrio (1, 10) if odd r then putstrln "paaris" else putstrln "paaritu"

3 84 do-süntaks II Näide proc = do s <- getline let n = read s n2 = 2*n putstrln ("Kaks korda " ++ s ++ " on " ++ show n2) Do-süntaks algab do-võtmesõnaga, millele järgnevad järjest töödeldavad laused. Laused mustriga x <- p, kus p :: IO a siis x :: a, let laused ning avaldised e, mille tüüp on IO a.

4 85 Mitme do kasutamine do seob kokku IO-avaldised, kuid ei saa vaadata konstruktsioonide sisse S.t. ühe avaldise jaoks pole do-d vaja main = putstrln "Hello World"! Hargenmise puhul võib olla vaja kasutada mitut do-d: main = do putstrln "Kirjuta midagi!" xs <- getline if (xs=="") then putstr "Sõnakuulmatu!" else do putstrln "Tänan!" putstrln ("Kirjutasid: " ++ xs) do-süntaks on lihtne, kuid vajab harjutamist!

5 86 do tähendus a >>= f on sama mis do x <- a fx a >> b on sama mis do a b do a do do a b on sama mis b c c Fixity: infixl 1 >> infixl 1 >>=

6 87 Näide main = do putstrln "Kirjuta midagi!" xs <- getline if (xs=="") then putstr "Sõnakuulmatu!" else do putstrln "Tänan!" putstrln ("Kirjutasid: " ++ xs) on sama mis main = putstrln "Kirjuta midagi!" >> getline >>= (\ xs -> if (xs=="") then putstr "Sõnakuulmatu!" else putstrln "Tänan!" >> putstrln ("Kirjutasid: " ++ xs) )

7 88 Näide main = putstrln "Kirjuta midagi!" >> getline >>= (\ xs -> if (xs=="") then putstr "Sõnakuulmatu!" else putstrln "Tänan!" >> putstrln ("Kirjutasid: " ++ xs) ) on sama mis main = putstrln "Kirjuta midagi!" >> getline >>= ifthenelse where ifthenelse xs = if (xs=="") then case1 else case2 xs case1 = putstr "Sõnakuulmatu!" case2 xs = putstrln "Tänan!" >> putstrln ("Kirjutasid: " ++ xs) Loe lisaks: RWH, peatükk 7 (algus)

8 89 Reduktsioon IO monaadis Üldised reeglid kehtivad aga saab natuke lihtsustada. Kui redexiks on avaldis e tüübist IO a, tuleb kõrvalefekt enda peas teha ja asendada tulemus tagasi avaldisse. Näiteks putstrln "Tere!" trükib välja "Tere!", peale mille tuleb avaldis asendada väärtusega (). Kuna IO sunnib peale kindla järjestuse võime endi tööd natuke lihtsustada: redutseeritavaid IO avaldisi ei pea iga sammu järel programmi tagasi paigutama. Näiteks printfirst 0 _ = return () printfirst n (x:xs) = do print x printfirst (n-1) xs main = do printfirst 3 [1..] putstrln "Kõik!" Kõigepealt arvutame printfirst 3 [1..] ja alles siis pöördume tagasi main-i juurde

9 90 Monaadidest üldisemalt Haskellis in monaad on ühe muutujaga tüübipere, mille jaoks on defineeritud järgnevad funktsioonid: class Functor f where fmap :: (a -> b) -> fa-> fb class Functor f => Applicative f where pure :: a -> fa (<*>) :: f (a -> b) -> fa-> fb class Applicative m => Monad m where (>>=) :: ma-> (a -> m b) -> mb return = pure -- monaadis kasutatakse funktsiooni return Intuitsioon: Tüüp m a on nagu konteiner, kuhu saab a tüüpi väärtust hoida. (Aga igal m a ei pruugi sisaldada a tüüpi väärtust.) Tahame vältida eksplitsiitselt väärtuse konteinerist välja võtmist.

10 91 Functor class Functor f where fmap :: (a -> b) -> fa-> fb Võrrandid: fmap id == id fmap (f. g) == fmap f. fmap g Intuitsioon: igasugune konteiner f a, kus a väärtus ei interakteeru konteineriga Näide: listid, Maybe

11 92 Applicative class Functor f => Applicative f where pure :: a -> fa (<*>) :: f (a -> b) -> fa-> fb Võrrandid: pure id <*> v == v pure (.) <*> u <*> v <*> w == u <*> (v <*> w) pure f <*> pure x == pure (f x) u <*> pure y == pure ($ y) <*> u Intuitsioon: saame väärtusi konteinerisse panna + võime konteineri sees funktsioone rakendada Näide: Pilveserver (AWS)

12 93 Monad class Applicative m => Monad m where (>>=) :: ma-> (a -> m b) -> mb return = pure -- monaadis kasutatakse funktsiooni return Võrrandid: return a >>= k == ka m >>= return == m m >>= (\x -> kx>>= h) == (m >>= k) >>= h Intuitsioon: järjest rakendatavad masinad Näide: IO

13 94 Maybe monaad data Maybe a = Nothing Just a deriving (Eq, Ord) intuitsioon: Nothing viga, nurjumine definitsioon return x = Just x (Just a) >>= f = fa Nothing >>= f = Nothing Näide (pseudokood): gettaxowed name = do number <- lookup name phonebook registration <- lookup number governmentdatabase lookup registration taxdatabase

14 95 Listi monaad -- data [a] = [] a : [a] intuitsioon: mitmesus definitsioon return x = [x] xs >>= f = concat (map f xs) Näide (pseudokood): sõpradepalgad :: Person -> [Int] sõpradepalgad isik = do sõber <- getfriends isik töö <- getemployers sõber return (getpay töö sõber)... see on sama mis listikomprehensioon

15 96 Parsimise monaad type Parser a = String -> [(a,string)] return x = \ s -> [(x,s)] p >>= g => \ s -> concatmap (\ (a,s) -> g a s) (p s) Näide: expr = term = do n <- term keyw "+" m <- expr return (n+m) < > term do n <- atom keyw "*" m <- term return (n*m) < > atom atom = do keyw "(" e <- expr keyw ")" < > parse_int

16 97 Seisundi monaad State sa -- s on seisundi tüüp; a väärtuse tüüp definitsioon get :: State ss put :: s -> State s () runstate :: State a b-> a -> (a, b) Tavaliselt tehakse tüübisünonüüm iga konkreetse alamprogrammi jaoks. type PangaSeisund = [(String,Double)] type PangaArvutus a = State PangaSeisund a...

17 98 Seisundi monaad II Näide: type PangaSeisund = [(String,Double)] type PangaArvutus a = State PangaSeisund a applyisik :: String -> (Double -> Double) -> PangaArvutus () applyisik nimi f = do s <- get put (map g s) where g (n,s) n==nimi = (n, f s) otherwise = (n, s) rahavälja :: String -> Float -> PangaArvutus Bool rahavälja nimi summa = do s <- get case lookup nimi s of Nothing -> return False Just r -> do applyisik nimi (\ x -> x-summa) return True

18 99 Seisundi tüübi implementeerimine type State s a = s -> (s, a) get :: State ss get s = (s, s) put :: s -> State s a put s _=(s, ()) runstate :: State s a-> s -> (s, a) runstate f = f return :: a -> State s a return x s = (s, x) (>>=) :: State s a-> (a -> State s b) -> State s b (f >>= g) s = gxs where (s,x) = fs

19 100 Seisundi tüübi implementeerimine type State s a = s -> (s, a) get :: s -> (s, s) get x = (x, x) put :: s -> s -> (s, ()) put s _=(s, ()) runstate :: (s -> (s, a)) -> s -> (s, a) runstate f = f return :: a -> s -> (s, a) return x s = (s, x) (>>=) :: (s -> (s, a)) -> (a -> s -> (s, b)) -> s -> (s, b) (f >>= g) s = gxs where (s,x) = fs

20 101 IO modeleerimine seisundimonaadiga type IO a = State m a ehk type IO a = m -> (m, a)

21 102 Monaadilised funktsioonid standardprelüüdis Üldistatud järjestikustamine sequence :: Monad m => [m a] -> m [a] sequence = foldr mcons (return [ ]) where mcons p q = p >>= \ x -> q >>= \ y -> return (x : y) sequence_ :: Monad m => [m a] -> m () sequence_ = foldr (>>) (return ()) Näited: Main> sequence [print 1, print a ] 1 a [(), ()] Main> sequence_ [print 1, print a ] 1 a Main> it () Main> sequence [Just 1, Just 2, Just 3] Just [1,2,3] Main> sequence [Just 1, Nothing, Just 3] Nothing

22 103 Monaadilised funktsioonid standardprelüüdis Monaadiline map mapm :: Monad m => (a -> m b) -> [a] -> m [b] mapm f as = sequence (map f as) mapm_ :: Monad m => (a -> m b) -> [a] -> m () mapm_ f as = sequence_ (map f as) Näited: Main>mapM print [1..5] [(), (), (), (), ()] Main>mapM print (Just 6) 6 Just ()

23 104 Monaadilised funktsioonid standardprelüüdis "for"-tsükkel form :: Monad m => [a] -> (a -> m b) -> m [b] form x y = mapm x y form_ :: Monad m => [a] -> (a -> m b) -> m () form_ x y = mapm_ x y Näited: main = do form_ [1..10] $ \ i -> do let n = fact i putstrln $ show i ++ "! = " ++ show n

24 105 Monaadilised funktsioonid standardprelüüdis Tingimuslik täitmine when :: Monad m => Bool -> m () -> m () when p s = if p then s else return () unless :: Monad m => Bool -> m () -> m () unless p s = when (not p) s Näited: import System.Environment (getargs) import System.Directory (doesdirectoryexist) main = do names <- getargs form_ names $ \ dir -> do b <- doesdirectoryexist dir when b $ putstrln dir

25 106 Monaadilised funktsioonid standardprelüüdis Monaadiline filter filterm :: Monad m -> (a -> m Bool) -> [a] -> m [a] filterm _ [] = return [] filterm p (x : xs) = do b <- px ys <- filterm p xs return (if b then x : ys else ys) Näited: main = do names <- getargs dirs <- filterm doesdirectoryexist names mapm_ putstrln dirs

26 107 Monaadilised funktsioonid standardprelüüdis "Liftimine" (1) liftm :: Monad m => (a -> b) -> ma-> mb liftm f m = do x <- m return (f x) Näited: countlines :: FilePath -> IO Int countlines = liftm (length. lines). readfile Enamasti kasutatakse funktsiooni: fmap :: Functor f => (a -> b) -> fa-> fb

27 108 Monaadilised funktsioonid standardprelüüdis "Liftimine" (2) liftm2 :: Monad m => (a -> b -> c) -> ma-> mb-> mc liftm2 f m1 m2 = do x1 <- m1 x2 <- m2 return (f x1 x2) Näited: Main> liftm2 (+) (Just 1) (Just 2) Just 3 Main> liftm2 (+) (Just 1) Nothing Nothing Main> liftm2 (+) [0, 3] [5, 6, 7] [5,6,7,8,9,10] Analoogiliselt on defineeritud liftm3, liftm4 ja liftm5.

28 109 Monaadilised funktsioonid standardprelüüdis Monaadiline applikatsioon ap :: Monad m => m (a -> b) -> ma-> mb ap = liftm2 id Näited: Main> [(+2)] ap [1, 2, 3] [3, 4, 5] Main> [(+2), (*2)] ap [1, 2, 3] [3,4,5,2,4,6] liftmn f x1 x2... xn = return f ap x1 ap x2 ap... ap xn Aplikatsioon on võimalik ka osade mitte-monaadide puhul! (<*>) return f ap x1 ap x2 ap... ap xn = f <$> x1 <*> x2 <*>... <*> xn

29 110 Monaaditeisendajad Haskell võimaldab väga täpselt spetsifitseerida erinevaid kõrvalefekte. Iga programmi moodul saab tegeleda ainult selle koodi jaoks relevantsega aga kunagi tuleb aeg neid ühendada terviklikuks programmiks. Monaadide kombineerimiseks on monaaditeisendajad. Selle asemel, et kasutada monaadi Maybe kasutame mõnedel juhtudel monaadi MaybeT m, kus m on mingi teine monaad. Haskelli nõrkus raske on ette näha, mis informatisiooni on vaja läbi programmi kaasas kanda.

30 111 QuickCheck on programmide automaatse testimise raamistik: Kontrollib, kas programm vastab etteantud omadustele kasutades juhuslikult genereeritud sisendeid. Algselt kirjutatud Haskellis, kuid nüüd ka Scalas, Javas jne. Teegis on: omaduste kombineerimise kombinaatorid; juhuslike väärtuste generaatorid standardtüüpide jaoks; kombinaatorid oma andmetüüpide juhuslikuks genereerimiseks.

31 112 Liides import Test.QuickCheck quickcheck :: Testable prop => prop -> IO () Funktsioon quickcheck võtab argumendiks omaduse mida juhuslikel argumentidel kontrollitakse. Vaikimisi 100-l juhuslikul väärtusel. Kui test ebaõnnestub, siis trükitakse vastunäide.

32 113 Näide reverse omadused Katsetame... 8z.reverse (reverse z) =z prop_revrev :: [Int] -> Bool prop_revrev Main> xs quickcheck = reverse prop_revrev (reverse xs) == xs +++ OK, passed 100 tests. Main> 8a.8b.reverse quickcheck prop_revapp (a++b) =(reverse b)++(reverse a) +++ OK, passed 100 tests. prop_revapp :: [Int] -> [Int] -> Bool prop_revapp xs ys = reverse (xs ++ ys) == reverse ys ++ reverse xs

33 114 Näide (järg) reverse omadused 8a.8b.reverse (a++b) =(reverse b)++(reverse a) prop_revapp Katsetame... :: [Int] -> [Int] -> Bool prop_revapp xs ys = reverse (xs ++ ys) Main> quickcheck prop_revwrong == reverse ys ++ reverse xs *** Failed! Falsifiable (after 3 tests and 2 shrinks): [0] [1] 8a.8b.reverse (a++b) =(reverse a)++(reverse b) prop_revwrong :: [Int] -> [Int] -> Bool prop_revwrong xs ys = reverse (xs ++ ys) == reverse xs ++ reverse ys

34 115 Omadused class Testable prop where property :: prop -> Property instance Testable Bool instance (Arbitrary a, Show a, Testable prop) => Testable (a -> prop) Omadused on avaldised, mille tüüb on klassist Testable. Argumendid peavad olema monomorfset tüüpi. Vaja argumentide genereerimise jaoks. Nimed tava järgi prefiksiga prop_

35 116 Omadused Näide: sorteerimine pistemeetodil isort :: Ord a => [a] -> [a] isort = foldr insert [] insert :: Ord a => a -> [a] -> [a] insert x [] = [x] insert x (y:ys) x <= y = x : y : ys otherwise = y : insert x ys

36 117 Omadused Omadus 1: tulemus peab olema järjestatud prop_sortorder :: [Int] -> Bool prop_sortorder xs = ordered (isort xs) ordered :: Ord a => [a] -> Bool ordered (x:y:ys) = x <= y && ordered (y:ys) ordered ys = True

37 118 Omadused Omadus 2: operatsioon ei lisa ega kustuta elemente prop_sortelems :: [Int] -> Bool prop_sortelems xs = sameelems xs (isort xs) sameelems :: Eq a => [a] -> [a] -> Bool sameelems xs ys = null (xs \\ ys) && null (ys \\ xs)

38 119 Omadused Kui pikad on listid? Testandmete inspekteerimine Minut Mis täpselt testi on olidmittetühjad? argumendid? collect :: Main> (Showlet a, l20 Testable xs = length prop) => xsa div -> prop 20 -> Property Main> quickcheck (\xs -> collect (l20 xs) (p xs)) Main> let quickcheck p = prop_sortorder (\ xs -> collect xs (p xs)) +++ OK, passed 100 tests: Main> +++ OK, quickcheck passed 100 (\ tests: xs -> collect (null xs) (p xs)) collect 53% % OK, [] kogub passed statistikat 100 tests. testjuhtude kohta. 22% 1 93% 1% False [97723,95805, ,45943,-73844,6249,64936] 14% 2 Info... 7% kuvatakse True 7% 3 testi läbimisel. 4% 4

39 120 Omadused piste omadused: säilitab sorteerituse (ver. 1) Problem! prop_insertorder1 :: Int -> [Int] -> Bool prop_insertorder1 x xs = ordered xs implies Main> let p = prop_insertorder1 Main> quickcheck(\x xs -> collect(ordered ordered (insert xs)(p x xs)) x xs) +++ OK, passed 100 tests: implies 87% False :: Bool -> Bool -> Bool 13% True implies xy= not x y

40 121 Omadused Implikatsioon (==>) :: Testable prop => Bool -> prop -> Property instance Testable Property Kombinaator (==>) ignoreerib sisendit, kui eeldus pole täidetud, ning genereerib uue väärtused. Vaikimisi 500 korda.

41 122 Omadused piste omadused: säilitab sorteerituse (ver. 2) juba parem... prop_insertorder2 :: Int -> [Int] -> Property prop_insertorder2 Main> let p = xprop_insertorder2 xs = ordered xs ==> Main> quickcheck(\x xs -> collect(ordered ordered (insert xs)(p x xxs)) xs) *** Gave up! Passed only 82 tests (100% True).

42 123 Omadused Univresaalne kvantifitseerimine forall :: (Show a, Testable prop) => Gen a -> (a -> prop) -> property Kombinaator forall saab argumendiks generaatori, millega väärtusi luuakse. Saame luua väärtusi, mis vastavad valitud omadustele.

43 124 Omadused piste Töötab!! omadused: säilitab sorteerituse (ver. 3) prop_insertorder3 Main> quickcheck :: Int (forall -> Property orderedlist ordered) prop_insertorder3 +++ OK, passed x = forall 100 tests. orderedlist (\ xs -> Main> quickcheck prop_insertorder3 ordered (insert x xs)) +++ OK, passed 100 tests.

44 125 Generaatorid Generaatorid newtype Gen a =... instance Monad Gen instance Functor Gen instance (Testable prop) => Testable (Gen prop) Generaatorid on abstraktse tüübiga Gen. Gen on monaad, millel on juurdepääs juhuarvudele.

45 126 Generaatorid Trükib mõned genereeritud väärtused sample :: Show a => Gen a -> IO () Generaatorite kombineerimine choose elements oneof frequency sized vectorof :: Random a => (a, a) -> Gen a :: [a] -> Gen a :: [Gen a] -> Gen a :: [(Int, Gen a)] -> Gen a :: (Int -> Gen a) -> Gen a :: Int -> Gen a -> Gen [a]

46 127 Generaatorid Vaike-generaatorid class Arbitrary a where arbitrary :: Gen a shrink :: a -> [a] shrink _ = [] Vaike-generaatoriga tüübid kuuluvad klassi Arbitrary. Lisaks on klassis meetod shrink, mis vähendab väärtust. shrink tagastab struktuurselt väiksemate väärtuste listi; kui test ebaõnnestub, proovitakse shrink abil argimente vähendada.

47 128 Generaatorid Lihtsad generaatorid instance Arbitrary Bool where arbitrary = choose (False,True) instance (Arbitrary a, Arbitrary b) => Arbitrary (a,b) where arbitrary = do x <- arbitrary y <- arbitrary return (x,y) data Color = Red Blue Green instance Arbitrary Color where arbitrary = elements [Red, Blue, Green]

48 129 Generaatorid Lihtsad generaatorid instance Arbitrary a => Arbitrary (Maybe a) where arbitrary = oneof [ return Nothing, liftm Just arbitrary] Probleem! Parem versioon Pool väärtustest on Nothing!! instance Arbitrary a => Arbitrary (Maybe a) where arbitrary = frequency [ (1, return Nothing),(3, liftm Just arbitrary)]

49 130 Generaatorid Täisarvude genereerimine (ver. 1) instance Arbitrary Int where arbitrary = choose (-20, 20) Täisarvude genereerimine (ver. 2) instance Arbitrary Int where arbitrary = sized (\ n -> choose (-n,n))

50 131 Generaatorid Rekursiivsete andmetüüpide genereerimine (ver. 1) data Tree a = Leaf a Node (Tree a) (Tree a) Probleem! Termineerimine pole kindlustatud! instance Arbitrary a => Arbitrary (Tree a) where arbitrary = frequency [(1, liftm Leaf arbitrary),(2, liftm2 Node arbitrary arbitrary)]

51 132 Generaatorid Rekursiivsete andmetüüpide genereerimine (ver. 2) instance Arbitrary a => Arbitrary (Tree a) where arbitrary = sized arbitrarytree arbitrarytree :: Arbitrary a => Int -> Gen (Tree a) arbitrarytree 0 = liftm Leaf arbitrary arbitrarytree n = frequency [ (1, liftm Leaf arbitrary),(4, liftm2 Node t t)] where t = arbitrarytree (n div 2) NB! Teine võrdus võib ka genereerida Leaf-e. Muidu genereeriks ainult tasakaalus puid.

52 133 Generaatorid Eeldefineeritud erilised generaatorid newtype OrderedList a = Ordered [a] instance (Ord a, Arbitrary a) => Arbitrary (OrderedList a) newtype NonEmptyList a = NonEmpty [a] instance Arbitrary a => Arbitrary (NonEmptyList a) newtype Positive a = Positive a instance (Num a, Ord a, Arbitrary a) => Arbitrary (Positive a) newtype NonZero a newtype NonNegative a = NonZero a = NonNegative a

53 134 Funktsioonide genereerimine class CoArbitrary a where coarbitrary :: a -> Gen b -> Gen b instance (CoArbitrary a, Arbitrary b) => Arbitrary (a -> b) Example variant :: Integral n => n -> Gen a -> Gen a instance CoArbitrary a => CoArbitrary [a] where coarbitrary [] = variant 0 coarbitrary (x:xs) = variant 1. coarbitrary (x,xs) Soovitatav kasutada variant et segada juhuslikku genereerimist. Erineva esimesed argumendi puhul püütakse tagastatakse erinev väärtus.

Funktsionaalne Programmeerimine

Funktsionaalne Programmeerimine Kõrvalefektid ja Haskell Kõik senised programmid on olnud ilma kõrvalefektideta; so. puhtalt funktsionaalsed. Programmi täitmise ainsaks efektiks on tema väartus. Osade ülesannete jaoks on kõrvalefektid

Rohkem

Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi

Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi*r^2, Float -> Int Infixoperaatori kasutamiseks prefix-vormis

Rohkem

Funktsionaalne Programmeerimine

Funktsionaalne Programmeerimine Geomeetrilised kujundid Geomeetriliste kujundite definitsioon: data Shape = Rectangle Side Side Ellipse Radius Radius RtTriangle Side Side Polygon [Vertex] deriving Show type Radius = Float type Side =

Rohkem

Scala ülevaade 1 Meetodid, muutujad ja väärtused. Süntaks 2 Lihtsad tüübid ja väärtused. 3 OOP, case-klassid ja mustrisobitus. 4 Puhta Scala väärtusta

Scala ülevaade 1 Meetodid, muutujad ja väärtused. Süntaks 2 Lihtsad tüübid ja väärtused. 3 OOP, case-klassid ja mustrisobitus. 4 Puhta Scala väärtusta Scala ülevaade 1 Meetodid, muutujad ja väärtused. Süntaks 2 Lihtsad tüübid ja väärtused. 3 OOP, case-klassid ja mustrisobitus. 4 Puhta Scala väärtustamine. 5 Keerulisemad tüübid. 6 Nähtavus, implitsiitsus.

Rohkem

I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Kons

I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Kons I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Konstruktorile antakse andmed, mis iseloomustavad mingit

Rohkem

1 / loeng Tekstitöötlus Sisend/väljund Teksti lugemine Sõnad

1 / loeng Tekstitöötlus Sisend/väljund Teksti lugemine Sõnad 1 / 16 7. loeng Tekstitöötlus Sisend/väljund Teksti lugemine Sõnad 2 / 16 Sisend/väljund vaikimisi: Termid: read, write?-read(x). : 2+3. X = 2+3.?-write(2+3). 2+3 true. Jooksva sisendi vaatamine: seeing?-

Rohkem

Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimu

Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimu Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimused: faili nimi faili vanus faili tüüp... 1 Failiotsing:

Rohkem

Programmeerimiskeel APL Raivo Laanemets 17. mai a.

Programmeerimiskeel APL Raivo Laanemets 17. mai a. Programmeerimiskeel APL Raivo Laanemets 17. mai 2009. a. Sissejuhatus I APL - A Programming Language I Kenneth E. Iverson (1920-2004) I Elukutselt matemaatik I Uuris matemaatilist notatsiooni I 1960 -

Rohkem

(loeng3-ohtlikud_koodiloigud)

(loeng3-ohtlikud_koodiloigud) #include int main (void) uint8_t arr[] = 0x11, 0x22 uint16_t *ptr; ptr = (uint16_t*)&arr[0]; printf ("arr: 0x%02x, 0x%02x\n", arr[0], arr[1]); printf ("ptr: 0x%04x\n", *ptr); /* vigane pointeri

Rohkem

Pealkiri

Pealkiri Andmebaasid II praktikum Andmebaaside administreerimine Andmete sisestamine KESKKOND, KASUTAJAD, ÕIGUSED Mõisted Tabelid, vaated, trigerid, jpm on objektid Objektid on grupeeritud skeemi Skeemid moodustavad

Rohkem

SQL

SQL SQL Teine loeng Mõtelda CREATE TABLE ( { INTEGER VARCHAR(10)} [ NOT NULL] ); Standard SQL-86 (ANSI X3.135-1986), ISO võttis üle 1987 SQL-89 (ANSIX3.135-1989) SQL-92 (ISO/IEC 9075:1992)

Rohkem

loeng2

loeng2 Automaadid, keeled, translaatorid Kompilaatori struktuur Leksiline analüüs Regulaaravaldised Leksiline analüüs Süntaks analüüs Semantiline analüüs Analüüs Masinkoodi genereerimine Teisendamine (opt, registrid)

Rohkem

PHP

PHP PHP Autorid: Aleksandr Vaskin Aleksandr Bogdanov Keelest Skriptikeel skript teeb oma tööd pärast seda, kui toimus mingi sündmus* Orienteeritud programmeerija eesmärkide saavutamiseks (mugavus on tähtsam

Rohkem

untitled

untitled Riistvara kirjelduskeel VHDL L4, L5. Riistvara kirjelduskeel VHDL L6. Mäluga süsteemid VHDL-s L7. VHDL ja süntees 1 Atribuudid Atribuut on väärtus, funktsioon, tüüp, vahemik, signaal või konstant, mida

Rohkem

loeng7.key

loeng7.key Grammatikate elustamine JFLAPiga Vesal Vojdani (TÜ Arvutiteaduse Instituut) Otse Elust: Java Spec https://docs.oracle.com/javase/specs/jls/se8/html/ jls-14.html#jls-14.9 Kodutöö (2. nädalat) 1. Avaldise

Rohkem

Pealkiri

Pealkiri Andmebaasid (6EAP) I praktikum Mida praktikumides tehakse? Õpitakse SQL i Tehakse andmebaas ope (igas praktikumis natuke, kuni lõpuks saab valmis) Tehakse andmebaas edu (kui ope on valmis, tehakse edu,

Rohkem

Operatsioonisüsteemide ehitus

Operatsioonisüsteemide ehitus Lõimed Ülevaade Lõime mõiste Lõimede mudelid Probleemid lõimedega seoses Pthreads Solarise lõimed Windows 2000 lõimed Linuxi lõimed Java lõimed VARMO VENE & MEELIS ROOS 2 Ühe- ja mitmelõimelised protsessid

Rohkem

Pythoni Turtle moodul ja Scratchi värvilisem pool Plaan Isikukoodi kontrollnumbri leidmine vaatame üle lahenduse kontrollnumbri leimiseks. Pythoni joo

Pythoni Turtle moodul ja Scratchi värvilisem pool Plaan Isikukoodi kontrollnumbri leidmine vaatame üle lahenduse kontrollnumbri leimiseks. Pythoni joo Pythoni Turtle moodul ja Scratchi värvilisem pool Plaan Isikukoodi kontrollnumbri leidmine vaatame üle lahenduse kontrollnumbri leimiseks. Pythoni joonistamise võimalused Turtle mooduli abil. Scratchi

Rohkem

SQL

SQL SQL Kuues loeng 3GL inside 4GL Protseduurid Funktsioonid Tavalised Funktsioonid (üks väljund) Ilma väljundita Protseduurid Viitargumentide kasutamise võimalus Tabel-väljundiga Protseduurid Create function

Rohkem

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Kaugprotseduurid IDL kompileerimine ONCIDLnäide CORBAIDLnäide MIDLnäide DCERPCmuidomadusi XML-RPC JSON-RPC REST document

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Kaugprotseduurid IDL kompileerimine ONCIDLnäide CORBAIDLnäide MIDLnäide DCERPCmuidomadusi XML-RPC JSON-RPC REST document Kaugprotseduurid IDL kompileerimine ONCIDLnäide CORBAIDLnäide MIDLnäide DCERPCmuidomadusi XML-RPC JSON-RPC REST document.idl IDL kompilaator document_cstub.o document.h document_sstub.o #include document_client.c

Rohkem

Word Pro - diskmatTUND.lwp

Word Pro - diskmatTUND.lwp Loogikaalgebra ( Boole'i algebra ) George Boole (85 864) Sündinud Inglismaal Lincolnis. 6-aastasena tegutses kooliõpetaja assistendina. Õppis 5 aastat iseseisvalt omal käel matemaatikat, keskendudes hiljem

Rohkem

Mida räägivad logid programmeerimisülesande lahendamise kohta? Heidi Meier

Mida räägivad logid programmeerimisülesande lahendamise kohta? Heidi Meier Mida räägivad logid programmeerimisülesande lahendamise kohta? Heidi Meier 09.02.2019 Miks on ülesannete lahendamise käigu kohta info kogumine oluline? Üha rohkem erinevas eas inimesi õpib programmeerimist.

Rohkem

AWK Aho Weinberger Kernighan struktuurse teksti töötlemise keel rikkalikult tekstitöötlusvahendeid omal alal suhteliselt lihtne ja kiiresti realiseeri

AWK Aho Weinberger Kernighan struktuurse teksti töötlemise keel rikkalikult tekstitöötlusvahendeid omal alal suhteliselt lihtne ja kiiresti realiseeri AWK Aho Weinberger Kernighan struktuurse teksti töötlemise keel rikkalikult tekstitöötlusvahendeid omal alal suhteliselt lihtne ja kiiresti realiseeritav AWK kasutusalad raportite genereerimine ühest formaadist

Rohkem

Microsoft Word - ref - Romet Piho - Tutorial D.doc

Microsoft Word - ref - Romet Piho - Tutorial D.doc Tartu Ülikool Andmetöötluskeel "Tutorial D" realisatsiooni "Rel" põhjal Referaat aines Tarkvaratehnika Romet Piho Informaatika 2 Juhendaja Indrek Sander Tartu 2005 Sissejuhatus Tänapäeval on niinimetatud

Rohkem

1. AKE Ajalise keerukuse empiiriline hindamine

1. AKE Ajalise keerukuse empiiriline hindamine http://kodu.ut.ee/~kiho/ads/praktikum/ 4. PSK Paisksalvestus. Loendamine Mõisteid Paisktabel (Hashtable, HashMap) Paisktabeli kasutamine loendamisülesannetes Paiskfunktsioon, kollisoonid (põrked) Praktikumitööd

Rohkem

Word Pro - digiTUNDkaug.lwp

Word Pro - digiTUNDkaug.lwp / näide: \ neeldumisseadusest x w x y = x tuleneb, et neeldumine toimub ka näiteks avaldises x 2 w x 2 x 5 : x 2 w x 2 x 5 = ( x 2 ) w ( x 2 ) [ x 5 ] = x 2 Digitaalskeemide optimeerimine (lihtsustamine)

Rohkem

Microsoft Word - Referaat.docx

Microsoft Word - Referaat.docx Tartu Ülikool Andmeturve Referaat teemal: CVE-2016-1499 Koostaja: Sander Sats Kursus: Informaatika Tartu 2016 Sissejuhatus Käesolev referaat on kirjutatud seoses Tartu Ülikooli kursuse MTAT.03.134 Andmeturve

Rohkem

Andmed arvuti mälus Bitid ja baidid

Andmed arvuti mälus Bitid ja baidid Andmed arvuti mälus Bitid ja baidid A bit about bit Bitt, (ingl k bit) on info mõõtmise ühik, tuleb mõistest binary digit nö kahendarv kahe võimaliku väärtusega 0 ja 1. Saab näidata kahte võimalikku olekut

Rohkem

X Window System tuntud kui: X11 X X-Windows akendussüsteem/akendesüsteem rastergraafikat toetavatele ekraanidele UNIX-maailmas väga levinud mitmesugus

X Window System tuntud kui: X11 X X-Windows akendussüsteem/akendesüsteem rastergraafikat toetavatele ekraanidele UNIX-maailmas väga levinud mitmesugus X Window System tuntud kui: X11 X X-Windows akendussüsteem/akendesüsteem rastergraafikat toetavatele ekraanidele UNIX-maailmas väga levinud mitmesugused realisatsioonid ka Windowsile erinevad realisatsioonid

Rohkem

Praks 1

Praks 1 Biomeetria praks 3 Illustreeritud (mittetäielik) tööjuhend Eeltöö 1. Avage MS Excel is oma kursuse ankeedivastuseid sisaldav andmestik, 2. lisage uus tööleht, 3. nimetage see ümber leheküljeks Praks3 ja

Rohkem

Microsoft Word - Vx610 EMV KASUTUSJUHEND.doc

Microsoft Word - Vx610 EMV KASUTUSJUHEND.doc MAKSETERMINALI KASUTUSJUHEND VERIFONE Vx610 GSM Kliendiabi: (0) 6711 444 (kõik nädalapäevad 24 h) Makseterminalide osakond: (0) 6711 411 (tööpäeviti kell 9.00 17.00) Faks: (0) 6711 420 Email: posgrupp@estcard.ee

Rohkem

Microsoft Word - requirements.doc

Microsoft Word - requirements.doc Dokumendi ajalugu: Versioon Kuupäev Tegevus Autor 1.0 04.03.2008 Dokumendi loomine Madis Abel 1.1 09.03.2008 Kasutuslugude loomine Madis Abel 1.2 12.03.2008 Kasutuslugude täiendused Andres Kalle 1.3 13.03.2008

Rohkem

Matemaatiline analüüs IV 1 3. Mitme muutuja funktsioonide diferentseerimine 1. Mitme muutuja funktsiooni osatuletised Üleminekul ühe muutuja funktsioo

Matemaatiline analüüs IV 1 3. Mitme muutuja funktsioonide diferentseerimine 1. Mitme muutuja funktsiooni osatuletised Üleminekul ühe muutuja funktsioo Matemaatiline analüüs IV 1 3. Mitme muutuja funktsioonide diferentseerimine 1. Mitme muutuja funktsiooni osatuletised Üleminekul üe muutuja funktsioonidelt m muutuja funktsioonidele, kus m, 3,..., kerkib

Rohkem

Polünoomi juured Juure definitsioon ja Bézout teoreem Vaadelgem polünoomi kus K on mingi korpus. f = a 0 x n + a 1 x n a n 1 x

Polünoomi juured Juure definitsioon ja Bézout teoreem Vaadelgem polünoomi kus K on mingi korpus. f = a 0 x n + a 1 x n a n 1 x 1 5.5. Polünoomi juured 5.5.1. Juure definitsioon ja Bézout teoreem Vaadelgem polünoomi kus K on mingi korpus. f = a 0 x n + a 1 x n 1 +... + a n 1 x + a n K[x], (1) Definitsioon 1. Olgu c K. Polünoomi

Rohkem

Juhend nutiterminali seadistamiseks ja kaardimaksete vastuvõtmiseks Ingenico Link/2500 ja icmp

Juhend nutiterminali seadistamiseks ja kaardimaksete vastuvõtmiseks Ingenico Link/2500 ja icmp Juhend nutiterminali seadistamiseks ja kaardimaksete vastuvõtmiseks Ingenico Link/2500 ja icmp Terminali seadistamine Lülita telefonis või tahvelarvutis (edaspidi telefonis) sisse Bluetooth. (1) 1 1 Mudel

Rohkem

Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööa

Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööa Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööaknas leia Windows Update 4.Lase arvutil kontrollida

Rohkem

Andmebaasid, MTAT Andmebaasikeeled 11.loeng

Andmebaasid, MTAT Andmebaasikeeled 11.loeng Andmebaasid, MTAT.03.264 Andmebaasikeeled 11. loeng Anne Villems Eksamiaegade valimine Kas on vaja eksamiaega mai lõpus? I eksami aeg. valikud: 3., 4. või 5. juuni kell 10.00 II eksami aeg. 17. kell 12.00

Rohkem

Tartu Ülikool

Tartu Ülikool Tartu Ülikool Code coverage Referaat Koostaja: Rando Mihkelsaar Tartu 2005 Sissejuhatus Inglise keelne väljend Code coverage tähendab eesti keeles otse tõlgituna koodi kaetust. Lahti seletatuna näitab

Rohkem

lvk04lah.dvi

lvk04lah.dvi Lahtine matemaatikaülesannete lahendamise võistlus. veebruaril 004. a. Lahendused ja vastused Noorem rühm 1. Vastus: a) jah; b) ei. Lahendus 1. a) Kuna (3m+k) 3 7m 3 +7m k+9mk +k 3 3M +k 3 ning 0 3 0,

Rohkem

Peafail3_2.dvi

Peafail3_2.dvi TARTU ÜLIKOOL ARVUTITEADUSE INSTITUUT Algoritmid ja andmestruktuurid Ülesannete kogu Versioon 3.2 13. märts 2017. a. 09:45 Koostajad: Ahti Peder Jüri Kiho Härmel Nestra Tartu 2017 Käesoleva õppevahendi

Rohkem

PowerPointi esitlus

PowerPointi esitlus Regulaaravaldised ja skriptimine Windows ja UNIX operatsioonisüsteemides WINDOWS 1. slaid Windows käsurida Käsureaks nimetan programme: cmd.exe powershell.exe Nendesse saab kirjutada käske, millega näiteks

Rohkem

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx Tartu Ülikool CVE-2013-7040 Referaat aines Andmeturve Autor: Markko Kasvandik Juhendaja : Meelis Roos Tartu 2015 1.CVE 2013 7040 olemus. CVE 2013 7040 sisu seisneb krüptograafilises nõrkuses. Turvaaugu

Rohkem

MTAT Operatsioonisüsteemid - Turvalisus

MTAT Operatsioonisüsteemid - Turvalisus Regulaaravaldised ja skriptimine Windows ja UNIX operatsioonisüstemides WINDOWS 1. slaid Windows käsurida Käsureaks nimetan programme: cmd.exe powershell.exe command.com (tänapäevastes OS ei kasutata)

Rohkem

Microsoft Word - TallinnLV_lihtsustatud_manual_asutuse_juhataja_ doc

Microsoft Word - TallinnLV_lihtsustatud_manual_asutuse_juhataja_ doc Tallinna Linnavalitsuse sõnumisaatja kasutusjuhend asutuse juhatajale Sisukord 1. Süsteemi sisenemine...2 2. Parooli lisamine ja vahetamine...2 3. Ametnike lisamine ametiasutuse juurde...2 4. Saatjanimede

Rohkem

Microsoft Word - HOTSEC kasutusjuhend v1.900.docx

Microsoft Word - HOTSEC kasutusjuhend v1.900.docx HOTSEC Tarkvara kasutusjuhend v. 1.9 1 Sisukord Käivitamine:... 3 Programmi kasutamine... 4 Kasutajate lisamine ja eemaldamine:... 6 Jooksev logi:... 9 Häired:... 9 2 HOTSEC põhioperatsioonide kirjeldus

Rohkem

E-arvete juhend

E-arvete juhend E- arvete seadistamine ja saatmine Omniva kaudu Standard Books 7.2 põhjal Mai 2015 Sisukord Sissejuhatus... 3 Seadistamine... 3 Registreerimine... 4 E- arve konto... 5 Vastuvõtu eelistus... 5 Valik E-

Rohkem

GRUPI-SMS Veebirakenduse kasutamise juhend Rakendus Elisa grupi-smsi rakendus Väljaandja Elisa Eesti AS Juhendi koostamise kuupäev Versioon

GRUPI-SMS Veebirakenduse kasutamise juhend Rakendus Elisa grupi-smsi rakendus Väljaandja Elisa Eesti AS Juhendi koostamise kuupäev Versioon GRUPI-SMS Veebirakenduse kasutamise juhend Rakendus Elisa grupi-smsi rakendus Väljaandja Elisa Eesti AS Juhendi koostamise kuupäev 05.02.2018 Versiooni kuupäev 30.01.2018 1 SISUKORD 1. ÜLEVAADE... 3 1.1

Rohkem

IMO 2000 Eesti võistkonna valikvõistlus Tartus, aprillil a. Ülesannete lahendused Esimene päev 1. Olgu vaadeldavad arvud a 1, a 2, a 3,

IMO 2000 Eesti võistkonna valikvõistlus Tartus, aprillil a. Ülesannete lahendused Esimene päev 1. Olgu vaadeldavad arvud a 1, a 2, a 3, IMO 000 Eesti võistkonna valikvõistlus Tartus, 19. 0. aprillil 000. a. Ülesannete lahendused Esimene päev 1. Olgu vaadeldavad arvud a 1, a, a 3, a 4, a 5. Paneme tähele, et (a 1 + a + a 3 a 4 a 5 ) (a

Rohkem

MTAT Operatsioonisüsteemid - Turvalisus

MTAT Operatsioonisüsteemid - Turvalisus Regulaaravaldised ja skriptimine Windows ja UNIX operatsioonisüstemides WINDOWS 1. slaid Windows käsurida Käsureaks nimetan programme: cmd.exe powershell.exe command.com Nendesse saab kirjutada käske,

Rohkem

TARTU ÜLIKOOL MATEMAATIKA-INFORMAATIKATEADUSKOND Arvutiteaduse instituut Infotehnoloogia eriala Roman Jagomägis Programmeerimiskeel privaatsust säilit

TARTU ÜLIKOOL MATEMAATIKA-INFORMAATIKATEADUSKOND Arvutiteaduse instituut Infotehnoloogia eriala Roman Jagomägis Programmeerimiskeel privaatsust säilit TARTU ÜLIKOOL MATEMAATIKA-INFORMAATIKATEADUSKOND Arvutiteaduse instituut Infotehnoloogia eriala Roman Jagomägis Programmeerimiskeel privaatsust säilitavate rakenduste loomiseks Bakalaureusetöö (4 AP) Juhendaja:

Rohkem

Andmeturve

Andmeturve CORBA Sissejuhatus IDL CORBA struktuur Serveri ehitus Objekti adapter Lisateenused MEELIS ROOS 1 CORBA sissejuhatus CORBA Common Object Request Broker Architecture Üldine Objektipäringute Vahendaja Arhitektuur:)

Rohkem

Microsoft Word - installation-guide.doc

Microsoft Word - installation-guide.doc Dokumendi ajalugu: Versioon Kuupäev Tegevus Autor 1.0 12.04.2008 Dokumendi loomine Maris Aavik 1.1 13.04.2008 Täiendamine Maris Aavik 1.2 13.04.2008 Täiendamine Andres Kalle 1.3 12.05.2008 Täiendused Kerli

Rohkem

vv05lah.dvi

vv05lah.dvi IMO 05 Eesti võistkonna valikvõistlus 3. 4. aprill 005 Lahendused ja vastused Esimene päev 1. Vastus: π. Vaatleme esiteks juhtu, kus ringjooned c 1 ja c asuvad sirgest l samal pool (joonis 1). Olgu O 1

Rohkem

KASUTUSJUHEND

KASUTUSJUHEND KASUTUSJUHEND Sissejuhatus Kui valvesüsteem on valvessepanekuks valmis ning puuduvad rikke- ning häireteated, kuvatakse sõrmistiku displeil kellaaeg, kuupäev ning tekst Enter Your Code sisestage kood Peale

Rohkem

DIGITAALTEHNIKA DIGITAALTEHNIKA Arvusüsteemid Kümnendsüsteem Kahendsüsteem Kaheksandsüsteem Kuueteistkü

DIGITAALTEHNIKA DIGITAALTEHNIKA Arvusüsteemid Kümnendsüsteem Kahendsüsteem Kaheksandsüsteem Kuueteistkü DIGITAALTEHNIKA DIGITAALTEHNIKA... 1 1. Arvusüsteemid.... 2 1.1.Kümnendsüsteem....2 1.2.Kahendsüsteem.... 2 1.3.Kaheksandsüsteem.... 2 1.4.Kuueteistkümnendsüsteem....2 1.5.Kahendkodeeritud kümnendsüsteem

Rohkem

Sügis 2018 Kõrgema matemaatika 2. kontrolltöö tagasiside Üle 20 punkti kogus tervelt viis üliõpilast: Robert Johannes Sarap, Enely Ernits, August Luur

Sügis 2018 Kõrgema matemaatika 2. kontrolltöö tagasiside Üle 20 punkti kogus tervelt viis üliõpilast: Robert Johannes Sarap, Enely Ernits, August Luur Sügis 2018 Kõrgema matemaatika 2. kontrolltöö tagasiside Üle 20 punkti kogus tervelt viis üliõpilast: Robert Johannes Sarap, Enely Ernits, August Luure, Urmi Tari ja Miriam Nurm. Ka teistel oli edasiminek

Rohkem

Algoritmid ja andmestruktuurid

Algoritmid ja andmestruktuurid Algoritmid ja andmestruktuurid Arvutipraktikum 2017/2018 sügissemestril J.Liivi 2-202, E12-14 J.Liivi 2-202, T14-16 kodu.ut.ee/~kiho/ads/fall17 Jüri Kiho jyri.kiho@ut.ee Eesmärgid Paremini omandada, kinnistada

Rohkem

Microsoft PowerPoint - EMCS13

Microsoft PowerPoint - EMCS13 EMCS piloot-projekt Raigo Veisberg Maksu- ja Tolliameti kaudsete maksude ja aktsiiside talitus TEEMAD Mis on EMCS EMCS käivitumine EMCS kasutamine ja selle võimalused E-saateleht Info edastamine EMCS infosüsteemi

Rohkem

Image segmentation

Image segmentation Image segmentation Mihkel Heidelberg Karl Tarbe Image segmentation Image segmentation Thresholding Watershed Region splitting and merging Motion segmentation Muud meetodid Thresholding Lihtne Intuitiivne

Rohkem

Diskreetne matemaatika I Kevad 2019 Loengukonspekt Lektor: Valdis Laan 20. juuni a.

Diskreetne matemaatika I Kevad 2019 Loengukonspekt Lektor: Valdis Laan 20. juuni a. Diskreetne matemaatika I Kevad 2019 Loengukonspekt Lektor: Valdis Laan 20. juuni 2019. a. 2 Sisukord 1 Matemaatiline loogika 7 1.1 Lausearvutus.................................. 7 1.1.1 Põhimõistete meeldetuletamine....................

Rohkem

Directo ja Omniva arvekeskuse (endine EAK ehk Eesti E-arvete Keskus) liidestamine

Directo ja Omniva arvekeskuse (endine EAK ehk Eesti E-arvete Keskus) liidestamine 2019/02/17 11:26 1/2 Directo ja Omniva arvekeskuse (endine EAK ehk Eesti E-arvete Keskus) liidestamine Sisukord Directo ja Omniva arvekeskuse (endine EAK ehk Eesti E-arvete Keskus) liidestamine... 1 Definitsioonid...

Rohkem

Programmi AnimatorDV Simple+ lühike kasutajajuhend

Programmi AnimatorDV Simple+ lühike kasutajajuhend Programmi AnimatorDV Simple+ esmane kasutusjuhend Programm AnimatorDV Simple+ on mõeldud animatsioonide loomiseks. Tegemist on tasuta tarkvaraga, mis töötab videoseadmetega (videokaamera, veebikaamera).

Rohkem

Matemaatiline analüüs III 1 4. Diferentseeruvad funktsioonid 1. Diferentseeruvus antud punktis. Olgu funktsiooni f : D R määramispiirkond D R selles p

Matemaatiline analüüs III 1 4. Diferentseeruvad funktsioonid 1. Diferentseeruvus antud punktis. Olgu funktsiooni f : D R määramispiirkond D R selles p Matemaatiline analüüs III 4. Diferentseeruvad funktsioonid. Diferentseeruvus antud punktis. Olgu funktsiooni f : D R määramispiirkond D R selles paragravis mingi (lõplik või lõpmatu) intervall ning olgu

Rohkem

3D mänguarenduse kursus (MTAT ) Loeng 3 Jaanus Uri 2013

3D mänguarenduse kursus (MTAT ) Loeng 3 Jaanus Uri 2013 3D mänguarenduse kursus (MTAT.03.283) Loeng 3 Jaanus Uri 2013 Teemad Tee leidmine ja navigatsioon Andmete protseduuriline genereerimine Projektijuhtimine Tee leidmine Navigatsiooni võrgustik (navigation

Rohkem

ANOVA Ühefaktoriline dispersioonanalüüs Treeningu sagedus nädalas Kaal FAKTOR UURITAV TUNNUS Mitmemõõtmeline statistika Kairi Osula 2017/kevad

ANOVA Ühefaktoriline dispersioonanalüüs Treeningu sagedus nädalas Kaal FAKTOR UURITAV TUNNUS Mitmemõõtmeline statistika Kairi Osula 2017/kevad ANOVA Ühefaktoriline dispersioonanalüüs Treeningu sagedus nädalas Kaal FAKTOR UURITAV TUNNUS Factorial ANOVA Mitmefaktoriline dispersioonanalüüs FAKTOR FAKTOR Treeningu sagedus nädalas Kalorite kogus Kaal

Rohkem

Excel Valemite koostamine (HARJUTUS 3) Selles peatükis vaatame millistest osadest koosnevad valemid ning kuidas panna need Excelis kirja nii, et

Excel Valemite koostamine (HARJUTUS 3) Selles peatükis vaatame millistest osadest koosnevad valemid ning kuidas panna need Excelis kirja nii, et Excel2016 - Valemite koostamine (HARJUTUS 3) Selles peatükis vaatame millistest osadest koosnevad valemid ning kuidas panna need Excelis kirja nii, et programm suudaks anda tulemusi. Mõisted VALEM - s.o

Rohkem

Microsoft Word - Keypad-controller-manual-new_1.docx

Microsoft Word - Keypad-controller-manual-new_1.docx Eraldiseisev ühe ukse juurdepääsukontroller Kasutusjuhend Enne seadme paigaldamist ja kasutamist lugege tähelepanelikult seda juhendit 1. Pakkeleht Nimi Kogus Märkused Sõrmistik 1 Kasutusjuhend 1 Kruvikeeraja

Rohkem

Neurovõrgud. Praktikum aprill a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust k

Neurovõrgud. Praktikum aprill a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust k Neurovõrgud. Praktikum 11. 29. aprill 2005. a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust kombinatoorsete optimiseerimisülesannete lahendamiseks.

Rohkem

12. Marek Kolk, Kõrgem matemaatika, Tartu Ülikool, Algfunktsioon ja määramata integraal Sisukord 12 Algfunktsioon ja määramata integraal 1

12. Marek Kolk, Kõrgem matemaatika, Tartu Ülikool, Algfunktsioon ja määramata integraal Sisukord 12 Algfunktsioon ja määramata integraal 1 2. Marek Kolk, Kõrgem matemaatika, Tartu Ülikool, 203-. 2 Algfunktsioon ja määramata integraal Sisukord 2 Algfunktsioon ja määramata integraal 9 2. Sissejuhatus................................... 50 2.2

Rohkem

Õppematerjalide esitamine Moodle is (alustajatele) seminar sarjas Lõunatund e-õppega 12. septembril 2017 õppedisainerid Ly Sõõrd (LT valdkond) ja Dian

Õppematerjalide esitamine Moodle is (alustajatele) seminar sarjas Lõunatund e-õppega 12. septembril 2017 õppedisainerid Ly Sõõrd (LT valdkond) ja Dian Õppematerjalide esitamine Moodle is (alustajatele) seminar sarjas Lõunatund e-õppega 12. septembril 2017 õppedisainerid Ly Sõõrd (LT valdkond) ja Diana Lõvi (SV valdkond) Järgmised e-lõunad: 10. oktoober

Rohkem

prakt8.dvi

prakt8.dvi Diskreetne matemaatika 2012 8. praktikum Reimo Palm Praktikumiülesanded 1. Kas järgmised graafid on tasandilised? a) b) Lahendus. a) Jah. Vahetades kahe parempoolse tipu asukohad, saame graafi joonistada

Rohkem

ITI Loogika arvutiteaduses

ITI Loogika arvutiteaduses Predikaatloogika Predikaatloogika on lauseloogika tugev laiendus. Predikaatloogikas saab nimetada asju ning rääkida nende omadustest. Väljendusvõimsuselt on predikaatloogika seega oluliselt peenekoelisem

Rohkem

MOOCi „Programmeerimise alused“ ülesannete lahenduste analüüs

MOOCi „Programmeerimise alused“ ülesannete lahenduste analüüs TARTU ÜLIKOOL LOODUS- JA TÄPPISTEADUSTE VALDKOND Arvutiteaduse instituut Informaatika õppekava Helen Hendrikson MOOCi Programmeerimise alused ülesannete lahenduste analüüs Bakalaureusetöö (9 EAP) Juhendaja:

Rohkem

Tartu Ülikool Matemaatika-informaatikateaduskond Puhta Matemaatika Instituut Algebra õppetool Riivo Must Mõned katsed üldistada inversseid poolrühmi M

Tartu Ülikool Matemaatika-informaatikateaduskond Puhta Matemaatika Instituut Algebra õppetool Riivo Must Mõned katsed üldistada inversseid poolrühmi M Tartu Ülikool Matemaatika-informaatikateaduskond Puhta Matemaatika Instituut Algebra õppetool Riivo Must Mõned katsed üldistada inversseid poolrühmi Magistritöö Juhendaja: prof. Mati Kilp Tartu 2004 Sisukord

Rohkem

Tootmine_ja_tootlikkus

Tootmine_ja_tootlikkus TOOTMINE JA TOOTLIKKUS Juhan Lehepuu Leiame vastused küsimustele: Mis on sisemajanduse koguprodukt ja kuidas seda mõõdetakse? Kuidas mõjutavad sisemajanduse koguprodukti muutused elatustaset? Miks sõltub

Rohkem

Outlookist dokumendi registreerimine Plugina seadistamine Dokumendi registreerimine Outlookist Vastusdokumendi registreerimine Outlookist Outlooki plu

Outlookist dokumendi registreerimine Plugina seadistamine Dokumendi registreerimine Outlookist Vastusdokumendi registreerimine Outlookist Outlooki plu Outlookist dokumendi registreerimine Plugina seadistamine Dokumendi registreerimine Outlookist Vastusdokumendi registreerimine Outlookist Outlooki plugina ikoon on kadunud Outlooki kasutajad saavad dokumente

Rohkem

Automaatjuhtimise alused Automaatjuhtimissüsteemi kirjeldamine Loeng 2

Automaatjuhtimise alused Automaatjuhtimissüsteemi kirjeldamine Loeng 2 Automaatjuhtimise alused Automaatjuhtimissüsteemi kirjeldamine Loeng 2 Laplace'i teisendus Diferentsiaalvõrrandite lahendamine ilma tarkvara toeta on keeruline Üheks lahendamisvõtteks on Laplace'i teisendus

Rohkem

Pangalingi spetsifikatsioon Pocopay pangalingilt makse algatamiseks tuleb kasutada teenust Kaupmees teeb päringu Pocopayle aadressile

Pangalingi spetsifikatsioon Pocopay pangalingilt makse algatamiseks tuleb kasutada teenust Kaupmees teeb päringu Pocopayle aadressile Pangalingi spetsifikatsioon Pocopay pangalingilt makse algatamiseks tuleb kasutada teenust 1011. Kaupmees teeb päringu Pocopayle aadressile https://my.pocopay.com/banklink. Vastuspäring tehakse makse õnnestumise

Rohkem

Skriptid ja käsud

Skriptid ja käsud TTÜ informaatikainstituut Skriptid ja käsud Skript on Scratchi programmi suhteliselt sõltumatu üksus, mida mõnedes programmeerimiskeeltes nimetatakse protseduurideks või funktsioonideks. Skript on alati

Rohkem

Document number:

Document number: WNR Kiirpaigaldusjuhend Lisateavet, juhised ja uuendused saab leida internetist aadressil http://www.a-link.com Kiirpaigaldusjuhend Komplekt sisaldab: - WNR repiiter - Paigaldusjuhend Ühendused / Ports:

Rohkem

8.klass 4 tundi nädalas, kokku 140 tundi Hulkliikmed ( 45 tundi) Õppesisu Hulkliige. Hulkliikmete liitmine ja lahutamine ning korrutamine ja jagamine

8.klass 4 tundi nädalas, kokku 140 tundi Hulkliikmed ( 45 tundi) Õppesisu Hulkliige. Hulkliikmete liitmine ja lahutamine ning korrutamine ja jagamine 8.klass 4 tundi nädalas, kokku 140 tundi Hulkliikmed ( 45 tundi) Hulkliige. Hulkliikmete liitmine ja lahutamine ning korrutamine ja jagamine üksliikmega. Hulkliikme tegurdamine ühise teguri sulgudest väljatoomisega.

Rohkem

MS Word Sisukord Uue dokumendi loomine... 2 Dokumendi salvestamine... 3 Faili nimi... 4 Teksti sisestamine... 6 Klaviatuuril mitteleiduvat sümbolite l

MS Word Sisukord Uue dokumendi loomine... 2 Dokumendi salvestamine... 3 Faili nimi... 4 Teksti sisestamine... 6 Klaviatuuril mitteleiduvat sümbolite l MS Word Sisukord Uue dokumendi loomine... 2 Dokumendi salvestamine... 3 Faili nimi... 4 Teksti sisestamine... 6 Klaviatuuril mitteleiduvat sümbolite lisamine... 6 Uue dokumendi loomine Dokumendi salvestamine

Rohkem

KUULA & KORDA INGLISE KEEL 1

KUULA & KORDA INGLISE KEEL 1 KUULA & KORDA INGLISE KEEL 1 KUULA JA KORDA Inglise keel 1 Koostanud Kaidi Peets Teksti lugenud Sheila Süda (eesti keel) Michael Haagensen (inglise keel) Kujundanud Kertu Peet OÜ Adelante Koolitus, 2018

Rohkem

1. Üliõpilased 1.1 Tõendid Vali menüüst: Üliõpilased tõendid tõendite trükkimine. Avaneb vorm Tõendite trükkimine, vali tõendi liik Tõend õppim

1. Üliõpilased 1.1 Tõendid Vali menüüst: Üliõpilased tõendid tõendite trükkimine. Avaneb vorm Tõendite trükkimine, vali tõendi liik Tõend õppim 1. Üliõpilased 1.1 Tõendid Vali menüüst: Üliõpilased tõendid tõendite trükkimine. Avaneb vorm Tõendite trükkimine, vali tõendi liik. 1.1.1 Tõend õppimise kohta TLÜ-s Seda tõendiliiki saab väljastada ainult

Rohkem

Tiia Salm 2011 Online kirjastus CALAMÉO Calameo kujutab endast on-line kirjastust, mis võimaldab oma dokumente avaldada e-raamatuna tasuta. Failid (Pd

Tiia Salm 2011 Online kirjastus CALAMÉO Calameo kujutab endast on-line kirjastust, mis võimaldab oma dokumente avaldada e-raamatuna tasuta. Failid (Pd Online kirjastus CALAMÉO Calameo kujutab endast on-line kirjastust, mis võimaldab oma dokumente avaldada e-raamatuna tasuta. Failid (Pdf, Word, Excel, PowerPoint, Open Office) tuleb esmalt keskkonda üles

Rohkem

Mining Meaningful Patterns

Mining Meaningful Patterns Konstantin Tretjakov (kt@ut.ee) EIO õppesessioon 19. märts, 2011 Nimetuse saladus Vanasti kandis sõna programmeerimine natuke teistsugust tähendust: Linear program (~linear plan) X ülesannet * 10 punkti

Rohkem

Häälestusutiliit Kasutusjuhend

Häälestusutiliit Kasutusjuhend Häälestusutiliit Kasutusjuhend Autoriõigus 2007, 2008 Hewlett-Packard Development Company, L.P. Windows on Microsoft Corporationi USAs registreeritud kaubamärk. Käesolevas dokumendis sisalduvat teavet

Rohkem

lcs05-l3.dvi

lcs05-l3.dvi LAUSELOOGIKA: LOOMULIK TULETUS Loomuliku tuletuse süsteemid on liik tõestussüsteeme nagu Hilberti süsteemidki. Neile on omane, et igal konnektiivil on oma sissetoomise (introduction) ja väljaviimise (elimination)

Rohkem

Microsoft Word - Toetuste veebikaardi juhend

Microsoft Word - Toetuste veebikaardi juhend Toetuste veebikaardi juhend Toetuste veebikaardi ülesehitus Joonis 1 Toetuste veebikaardi vaade Toetuste veebikaardi vaade jaguneb tinglikult kaheks: 1) Statistika valikute osa 2) Kaardiaken Statistika

Rohkem

Kom igang med Scratch

Kom igang med Scratch Alustame algusest Getting Started versioon 1.4 SCRATCH on uus programmeerimiskeel, mis lubab sul endal luua interaktiivseid annimatsioone, lugusid, mänge, muusikat, taieseid jm Scratch'i saab kasutada

Rohkem

Operatsioonisüsteemi ülesanded

Operatsioonisüsteemi ülesanded Praktikum 2 OPERATSIOONISÜSTEEMIDE MASSPAIGALDUS Operatsioonisüsteemide masspaigaldus Suure arvu arvutisüsteemide korral ei ole mõistlik operatsioonisüsteeme paigaldada manuaalselt. Operatsioonisüsteemide

Rohkem

Treeningvõistlus Balti tee 2014 võistkonnale Tartus, 4. novembril 2014 Vastused ja lahendused 1. Vastus: 15, 18, 45 ja kõik 0-ga lõppevad arvud. Olgu

Treeningvõistlus Balti tee 2014 võistkonnale Tartus, 4. novembril 2014 Vastused ja lahendused 1. Vastus: 15, 18, 45 ja kõik 0-ga lõppevad arvud. Olgu Treeningvõistlus Balti tee 014 võistkonnale Tartus, 4. novembril 014 Vastused ja lahendused 1. Vastus: 15, 18, 45 ja kõik 0-ga lõppevad arvud. Olgu b arvu k üheliste number ning a arv, mille saame arvust

Rohkem

Microsoft Word - 56ylesanded1415_lõppvoor

Microsoft Word - 56ylesanded1415_lõppvoor 1. 1) Iga tärnike tuleb asendada ühe numbriga nii, et tehe oleks õige. (Kolmekohaline arv on korrutatud ühekohalise arvuga ja tulemuseks on neljakohaline arv.) * * 3 * = 2 * 1 5 Kas on õige, et nii on

Rohkem

Süsteemide modelleerimine: praktikum Klassiskeemid Oleg Mürk

Süsteemide modelleerimine: praktikum Klassiskeemid Oleg Mürk Süsteemide modelleerimine: praktikum Klassiskeemid Oleg Mürk Klassiskeem (class diagram) Klass (class) atribuut (attribute) meetod (method) Liides (interface) meetod (method) Viidatavus (visibility) avalik

Rohkem