infixr 0 $! ($!) :: (a->b) -> a -> b f $! x =... interni, pro striktni vyhodnocovani -- vyhodnoti top konstruktor x -}
|
|
- Kamila Konečná
- před 7 lety
- Počet zobrazení:
Transkript
1 -- literate haskell.lhs -- radky zacinaji > {- > lhsfunkce x = lhstelo (x * x) > where > lhstelo y = y div 2 -- z prelude foldr :: (a->b->b) -> b -> [a] -> b foldr f v [] = v foldr f v (x:xs) = f x (foldr f v xs) (.) :: (b->c) -> (a->b) -> (a->c) (f. g) x = f (g x) -- > test0 x = faze3 ( faze2 ( faze1 x ) ) -- > test1 x = (faze3. faze2. faze1) x -- > test2 = faze3. faze2. faze1 -- stejne typy infixr 0 $ ($) :: (a->b) -> a -> b f $ x = f x -- > test3 x = faze3 $ faze2 $ faze1 x infixr 0 $! ($!) :: (a->b) -> a -> b f $! x =... interni, pro striktni vyhodnocovani -- vyhodnoti top konstruktor x -} 1
2 stromy -- (1) data len v listoch data LTree a = LLeaf a LBranch (LTree a) (LTree a) -- (2) data interne, BVS data BTree a = BLeaf BBranch (BTree a) a (BTree a) -- BVS = BTree (TKey,TValue) -- dvojice :-( -- (3) data: ine v listoch, ine vnutri data DTree a b = DLeaf a DBranch (DTree a b) b (DTree a b) binvyraz :: DTree Int String binvyraz = DBranch (DLeaf 1) "+" (DBranch (DLeaf 2)"*"(DLeaf 3)) -- R-B trees... t1btree = BBranch (BBranch BLeaf 1 BLeaf) 2 (BBranch (BBranch BLeaf 3BLeaf) 4 (BLeaf) ) {- typovy konstruktor BTree, LTree druhu(::) * -> * typ.k. DTree druhu (kind) *->*->* -- datovy konstruktor BLeaf :: BTree a -- polymorfni dat.k. BBranch :: BTree a -> a -> BTree a -> BTree a dat.k. DLeaf :: a -> DTree a b -} 2
3 foldbt :: b->(b->a->b->b)->btree a-> b -- ala foldr pro seznamy (strukt. rek.) foldbt fleaf fbranch bt = f bt where f BLeaf = fleaf f (BBranch l x r) = fbranch (f l) x (f r) copybt t = foldbt BLeaf BBranch t -- "identita" sizebt t = foldbt 0 (\l x r->l+1+r) t depthbt t = foldbt 1 (\l x r->1+max l r) t listify t = foldbt [] (\l x r->l++(x:r)) t -- infixbt postfix t = foldbt [] (\l x r->l++r++[x]) t sumbt t = foldbt 0 (\l x r->l+x+r) t mapbt f t = foldbt BLeaf (\l x r->bbranch l (f x) r) t heapify t = foldbt BLeaf (\l x r->inheap l x r) t -- where inheap na dalsi strane prumer t = frominteger suma/frominteger size -- obecne: potrebuji postspracovani where (suma,size) = foldbt (0,0) (\(ls,lv) x (rs,rv)->(ls+x+rs,lv+1+rv)) t --bvs t = foldbt True (\l x r->l && r && locordered l x r) t -- where locordered l x r =... vaha :: BTree (Int,a) -> (Int,Int) -- (freq,key)-> (freq, vaha); vaha = sum(freq*depth) vaha t = foldbt (0,0) (\(fl,vl)(fx,_k)(fr,vr) ->(fl+fx+fr,vl+fl+fx+vr+fr) ) t a varianty fold: -- Obecne musim vracet i puvodni i spracovanou strukt. (tj. dvo 3
4 -- mkheap :: BTree a -> BTree a -- jen preusporadani, ne stavba mkheap BLeaf = BLeaf mkheap (BBranch l x r) = inheap (mkheap l) x (mkheap r) inheap BLeaf x BLeaf = BBranch BLeaf x BLeaf inheap l@(bbranch l1 xl l2) x BLeaf x <= xl = BBranch l x BLeaf True = BBranch (inheap l1 x l2) xl BLeaf inheap BLeaf x r@(bbranch r1 xr r2) x <= xr = BBranch BLeaf x r True = BBranch BLeaf xr (inheap r1 x r2) inheap l@(bbranch l1 xl l2) x r@(bbranch r1 xr r2) x <= xl && x <= xr = BBranch l x r xl<= xr = BBranch (inheap l1 x l2) xl r True = BBranch l xr (inheap r1 x r2) -- aktivni konstruktory: buduji pozmenenou strukturu t1heap = bbranch (bbranch bleaf 1 bleaf) 2 (bbranch (bbranch bleaf 3 bleaf) 4 (bleaf) ) where bleaf = BLeaf bbranch = inheap 4
5 stromy n-arne (Rose Tree) data RTree a = RT a [RTree a] -- aplikace: XML... data XML a = Elm a [XML a] Txt String -- a/string -- jen tag -- a/(string,[(string,string)]) -- show bez chyb, praca so zoznamami elementov {- -- aplikace: univ.vyrazy, synt. stromy... data Expr a = Var String Fn String [Expr a]... Con a If (Expr Bool) (Expr a) (Expr a) Inc (Expr Int) -- vyrazy v FP, nejen PP -- fantomove typy -} 5
6 -- huffmanovo kodovani: optimalni, hladovy alg. -- vzdaleny ;-) cil {- test_hde s = let t = mkhtree $ freq s in s == (dec t $ enc (hstrom2tab t) s) -} data HStrom a = HL a HV (HStrom a) (HStrom a) hstrom2tab :: HStrom (Char {-,Int-}) -> [(Char,String)] hstrom2tab (HL(c)) = [(c,"")] hstrom2tab (HV l r) = map (\(c,kod)->(c, 0 :kod)) (hstrom2tab l) ++ map (\(c,kod)->(c, 1 :kod)) (hstrom2tab r) -- volani> hs2t "" strom -- akumulator hs2t kod (HL(c,"")) = [(c,kod)] hs2t kod (HV l r) = hs2t (kod++"0") l ++ hs2t (kod++"1") r enc :: (Eq a,show a) => [(a,[b])] -> [a] -> [b] enc tab [] = [] enc tab (x:xs) = enc1 tab x ++ enc tab xs where enc1 [] x = error("enc: missing code for:"++show x) enc1 ((x1,kod):tab) x = if x==x1 then kod else enc1 tab x 6
7 enc2 tab xs = concat(map(\x -> snd(head(filter (f x) tab))) xs) where f x = \(x1,_kod) -> x==x1 -- x: lambda-lifting -- f x = (x==).fst -- varianta -- = concat $ map (\x -> snd $ head $ filter f tab) xs -- concat [] = [] -- v Prelude -- concat (x:xs) = x ++ concat xs -- anebo: concat xss = foldr (++) [] xss 7
8 dec :: HStrom a -> [Char] -> [a] dec strom [] = [] dec strom inp = c : dec strom inp1 where (c, inp1) = dec1 strom inp dec1 :: HStrom a -> [Char] -> (a,[char]) dec1 (HL c) inp = (c,inp) dec1 (HV l r) ( 0 :inp) = dec1 l inp dec1 (HV l r) ( 1 :inp) = dec1 r inp dec1 (HV l r) ( x :inp) = error ("dec: bad code:"++show x) dec1 (HV l r) [] = error "dec: unexpected EOF" dec2 :: HStrom a -> [Char] -> [a] dec2 strom inp = case x of Nothing -> [] -- interni chyba: nic se nedekoduje Just (c,inp1) -> c : dec strom inp1 where x = dec1 strom inp dec1 :: HStrom a -> [Char] -> Maybe (a,[char]) dec1 (HL c) inp = Just (c,inp) dec1 (HV l r) ( 0 :inp) = dec1 l inp dec1 (HV l r) ( 1 :inp) = dec1 r inp dec1 (HV l r) ( x :inp) = Nothing dec1 (HV l r) [] = Nothing -- pozn: odebirana cast je dana kontextem {- data Maybe a = Nothing Just a deriving (Eq, Show) -} 8
9 mkhtree :: [(Char,Int)] -> HStrom Char mkhtree xs = faze5 where cmp (c1,f1) (c2,f2) = f1<=f2 -- cmp = \(c1,f1) (c2,f2) -> f1<=f2 faze1 = sort cmp xs faze2 = map (\(c,f) -> (HL c, f)) faze1 faze3 = iterate spoj faze2 faze4 = dropwhile (\x -> length x > 1) faze3 faze5 = fst $ head $ head faze4 spoj [x] = [x] spoj ((c1,f1):(c2,f2):xs) = insert cmp (HV c1 c2,f1+f2) xs sort cc xs = foldr (insert cc) [] xs insert cc x [] = [x] insert cc x vs@(y:ys) x cc y = (x:vs) True = y:insert cc x ys 9
10 freq :: String -> [(Char,Int)] -- histogram freq xs = foldr ordbagunion [] $ map (\x->[(x,1)]) xs -- O(n^2) :-( ordbagunion [] ys = ys ordbagunion xs [] = xs ordbagunion xx@((x,fx):xs) yy@((y,fy):ys) x < y = (x,fx) :ordbagunion xs yy x == y = (x,fx+fy):ordbagunion xs ys -- memory leak x > y = (y,fy) :ordbagunion xx ys folddvoj f e [] = [] folddvoj f e xs = (head.head.dropwhile((1<).length).iterate(spojdvoj f))xs where spojdvoj f (x1:x2:xs) = f x1 x2 : spojdvoj f xs spojdvoj f xs = xs freq2 xs = folddvoj ordbagunion [] $ map (\x->[(x,1)]) xs testfreq k c = [s s<-varopak1 k [ a..c], let s1=s, freq2 s /= freq s ] -- testfreq 7 f : 1 23, length testov {- prelude iterate :: (a->a) -> a -> [a] iterate f x = x : iterate f (f x) dropwhile :: (a->bool) -> [a] -> [a] dropwhile _ [] = [] dropwhile p (x:xs) p x = dropwhile p xs otherwise = x : xs -- DC: ukoncenie podla vztahu dvoch prvkov -} 10
11 varopak :: [a] -> [b] -> [[(a,b)]] varopak [] _ = [[]] -- vhodne "dodefinovano" varopak (x:xs) r = [(x,y):vs y<-r, vs <- varopak xs r] varopak1 :: Int -> [b] -> [[b]] varopak1 k r = map -- pro všechny variace (map -- pro všechny prvky ve var. snd) -- zahazuju dom., vracím hodnotu (varopak -- volání puv. fce dostane: [1..k] -- domain jako seznam r) -- range bez zmen komb :: Int -> [a] -> [[a]] komb 0 _ = [[]] -- vhodne "dodef." komb (n+1) [] = [] komb (n+1) (x:xs) = [x:ko ko <- komb n xs] ++ komb (n+1) xs kombopak :: Int -> [a] -> [[a]] kombopak 0 _ = [[]] -- vhodne "dodef." kombopak (n+1) [] = [] kombopak (n+1) (xs) = [head xs:ko ko <- kombopak n xs] ++ kombopak (n+1) (tail xs) 11
12 -- testy: QuickCheck 2000, SmallCheck 2008,... test_hde s = let t=mkhtree $ freq s in s == (dec t $ enc (hstrom2tab t) s) prop_hde k c = [s s<-kombopak k [ a..c], not $ test_hde s] -- varopak1 -- > prop_hde 3 b -- >> ["aaa","bbb"] Obsahlejsi popis napr. Huffmanova kodovani v textu "Haskell v pr -- s kombopak: 15 g : 35, testov -- s varopak1: 7 f : okolo 2, testov {- -- Zde ukonceno na Prednasce , -- nektere drobnosti preskocene } 12
13 stablesort cmp xs = map fst $ -- odstraneni poradi (A) sort1 cmp2 $ -- trideni se zmenou porovnavaci fce (B) zip xs [1..] --pridani poradi (C) where cmp2 (x,i) (y,j) = x cmp y && not (y cmp x) x cmp y && y cmp x && i <= j sort1 cmp [] = [] sort1 cmp (p:ys) = sort1 cmp ([y y<-ys,y cmp p]++(p:[y y<-ys,not$y cmp p])) {- -- add F# (.NET), Scala (nad JVM) lift: na Maybe, Either na zoznamy (vektory), matice na funkcie - casova zavislost DSEL - Domain Specific (Embedded) Language fantomove typy Calling hell from heaven and heaven from hell, 1999 kontext Blub: hypoteticky prog. jazyk, Paul Graham -} 13
14 (tvorba indexu: reverzny zoznam) type Word = String splitwords :: String -> [Word] splitwords st = split (dropspace st) split :: String -> [Word] - dostává ř. bez úvodních mezer split [] = [] split st = (getword st):split(dropspace(dropword st)) dropspace st = dropwhile (\x->elem x whitespace) st dropword st = dropwhile (\x->not(elem x whitespace)) st dropwhile :: (t -> Bool) -> [t] -> [t] - obecná výkonná procedur dropwhile p [] = [] -- zahodí poč. prvky, které nesplňují podm. dropwhile p (a:x) -- v prelude p a = dropwhile p x otherwise = (a:x) getword st = takewhile (\x-> not(elem x whitespace)) st -- DC: takewhile p x = -- v prelude whitespace = [, \t, \n] 14
15 Aritmetika s testováním chyb (pomocí Maybe) lift2m :: (a->b->c)->maybe a -> Maybe b -> Maybe c lift2m op Nothing _ = Nothing chyba v 1. arg. lift2m op _ Nothing = Nothing chyba v 2. arg. lift2m op (Just x) (Just y) = Just (x op y) bez chyb minusm :: Maybe Float -> Maybe Float -> Maybe Float minusm x y = lift2m (-) x y -- Vyvolání chyby delenom x y = if y==just 0 then Nothing --test a vyvolání chyby else lift2m (/) x y? delenom(just 3)(minusM(Just 2)(Just 2)) -- 3/(2-2)? delenom(just 3)(lift2M(-)(Just 2)(Just 2)) -- dtto Nothing data AV a = AV a :-: AV a AV a :/: AV a Con a eval :: AV Integer -> Maybe Integer eval (av1 :/: av2) = delenom (eval av1) (eval av2) eval (av1 :-: av2) = lift2m (-) (eval av1) (eval av2) eval (Con x) = Just x -- cena za Maybe: zabalení výsledku -- Odchycení chyby:? catch (eval (Con 3 :/: (Con 2 :-: Con 2)) ) 1 catch Nothing oprdata = opravnafce oprdata catch (Just x) _ = x 15
16 map pro jiné d.s. pro binární stromy rozbor podle konstruktoru maptree :: (a->b) -> Tree a -> Tree b maptree f (Leaf a) = Leaf (f a) maptree f (Branch l r) = Branch (maptree f l) (maptree f r) n-ární stromy data NTree a = Tr a [NTree a] mapnt :: (a->b) -> NTree a -> NTree b mapnt f (Tr x trees) = Tr (f x) (map (mapnt f) trees) typ Maybe, Union - nerekurzivní mapm :: (a->b) -> Maybe a -> Maybe b mapm f Nothing = Nothing mapm f (Just x)= Just (f x) mapu :: (a->c)->(b->d) -> Union a b -> Union c d mapu f g (Left x) = Left (f x) mapu f g (Right y) = Right(g y) 16
17 Stavové programování (Návrhový vzor iterátor) N.vzory ve FP lze (často) napsat jako kod s funkc. parametry vs. (často) pseudokód v OOP iterator::s->(s->s)->(s->bool)->s -- vrací celý (interní) stav, zde není výstupní projekce iterator init next done = head( dropwhile (not.done) --mezivýsl. se průběžně ( iterate next init ) ) -- zahazují DC: fixpoint :: (s->s)->s->s :vrací v=f^n(x) pro min. n:v=f(v) 17
18 Počítání s programy Typicky: dokazování vlastností programů (Částečná) správnost vzhledem k specifikaci Transformace programů pro optimalizaci př.: asociativita (++) append [] ++ ys = ys (x:xs) ++ ys = x: (xs++ys) Tvrzení: x++(y++z) = (x++y)++z pro konečné x, y, z. x=[] : LS = []++(y++z) = y++z PS = ([]++y)++z = y++z x=a:v : LS = (a:v)++(y++z) = / def. ++ a:(v++(y++z)) = / ind. předp. ++ a:((v++y)++z) PS = ((a:v)++y)++z = / def. ++ ((a:(v++y)) ++ z) = / def. ++ a:((v++y)++z) QED? 18
Programovací í jazyk Haskell
Historie Programovací í jazyk Haskell doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 září 1991 Gofer experimentální jazyk Mark P. Jones únor 1995 Hugs Hugs98 téměř úplná implementace
Programovací jazyk Haskell
Programovací jazyk Haskell Ing. Lumír Návrat katedra informatiky, D 403 59 732 3252 Historie září 1991 Gofer experimentální jazyk Mark P. Jones únor 1995 Hugs Hugs98 téměř úplná implementace jazyka Haskell
IB015 Neimperativní programování. Seznamy, Typy a Rekurze. Jiří Barnat Libor Škarvada
IB015 Neimperativní programování Seznamy, Typy a Rekurze Jiří Barnat Libor Škarvada Sekce IB015 Neimperativní programování 02 str. 2/36 Uspořádané n-tice a seznamy Programování a data IB015 Neimperativní
Definice uživatelského typu. Uživatelem definované typy. Součinové datové typy. Součtové datové typy. FLP - Uživatelem definované typy
Uživatelem definované typy Ing. Lumír Návrat katedra informatiky, A 1018 59 732 3252 Definice uživatelského typu data Color = Red Green Blue Color typový konstruktor Red / Green / Blue datové konstruktory
Funkcionální programování Haskell
Funkcionální programování Haskell Jan Hric, KTIML MFF UK,1997-2016a http://ktiml.ms.mff.cuni.cz/~hric/ Jan.Hric@mff.cuni.cz Funkcionální programování Historicky: lambda-kalkul, cca. 1940 LISP, 1959-1960...Scheme,
Funkcionální programování Haskell
Funkcionální programování Haskell Jan Hric, KTIML MFF UK,1997-2018d http://ktiml.ms.mff.cuni.cz/~hric/ Jan.Hric@mff.cuni.cz Funkcionální programování Programování s pomocí funkcí program = definice funkcí
Funkcionální programování Haskell
Funkcionální programování Haskell Jan Hric, KTIML MFF UK,1997-2012f http://ktiml.ms.mff.cuni.cz/~hric/ Jan.Hric@mff.cuni.cz Historicky: Funkcionální programování lambda-kalkul, cca. 1940 LISP, 1959-1960...Scheme,
Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program
Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup
IB015 Neimperativní programování. Časová složitost, Typové třídy, Moduly. Jiří Barnat Libor Škarvada
IB015 Neimperativní programování Časová složitost, Typové třídy, Moduly Jiří Barnat Libor Škarvada Sekce IB015 Neimperativní programování 07 str. 2/37 Časová složitost Časová složitost algoritmu IB015
Martin Milata, <256615@mail.muni.cz> 27.11.2007. Pokud je alespoň jeden rozměr čokolády sudý (s výjimkou tabulky velikosti 1x2, která už je od
IB000 Lámání čokolády Martin Milata, 27.11.2007 1 Čokoláda s alespoň jedním sudým rozměrem Pokud je alespoň jeden rozměr čokolády sudý (s výjimkou tabulky velikosti 1x2, která už
Funkcionální programování. Kristýna Kaslová
Funkcionální programování Kristýna Kaslová Historie Alonzo Church (30. léta) Netypovaný lambda kalkul Základ prvních funkcionálních jazyků Jeho konstrukce i v mnoha současných programovacích jazycích (Python)
Paradigmata programování 1
Paradigmata programování 1 Kvazikvotování a manipulace se symbolickými výrazy Vilém Vychodil Katedra informatiky, PřF, UP Olomouc Přednáška 11 V. Vychodil (KI, UP Olomouc) Kvazikvotování, manipulace se
IB015 Neimperativní programování. Redukční strategie, Seznamy program QuickCheck. Jiří Barnat Libor Škarvada
IB015 Neimperativní programování Redukční strategie, Seznamy program QuickCheck Jiří Barnat Libor Škarvada Sekce IB015 Neimperativní programování 05 str. 2/34 Redukční strategie Redukce, redukční strategie
Generování vnitřní reprezentace programu
Generování vnitřní reprezentace programu Miroslav Beneš Dušan Kolář Možnosti překladu Interpretace Okamžité provádění programu Překlad do instrukcí procesoru Závislost na konkrétním typu procesoru Překlad
Paradigmata programování 1
Paradigmata programování 1 Explicitní aplikace a vyhodnocování Vilém Vychodil Katedra informatiky, PřF, UP Olomouc Přednáška 6 V. Vychodil (KI, UP Olomouc) Explicitní aplikace a vyhodnocování Přednáška
2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
NPRG030 Programování I, 2018/19 1 / :03:07
NPRG030 Programování I, 2018/19 1 / 20 3. 12. 2018 09:03:07 Vnitřní třídění Zadání: Uspořádejte pole délky N podle hodnot prvků Měřítko efektivity: * počet porovnání * počet přesunů NPRG030 Programování
Functional and Logic Programming Functional languages
Functional and Logic Programming Functional languages Ing. Marek Běhálek FEI VŠB-TUO A-1018 / 597 324 251 http://www.cs.vsb.cz/behalek marek.behalek@vsb.cz This presentation is based on original course
Konstruktory překladačů
Konstruktory překladačů Miroslav Beneš Dušan Kolář Konstruktor Lex generátor lexikálních analyzátorů M. E. Lesk, 1975 - pro OS Unix flex - Vern Paxson, 1990 - GNU verze určeno pro generování výstupu v
PG 9.5 novinky ve vývoji aplikací
PG 9.5 novinky ve vývoji aplikací P2D2 2016 Antonín Houska 18. února 2016 Část I GROUPING SETS, ROLLUP, CUBE Agregace Seskupení řádků tabulky (joinu) do podmnožin podle určitého kĺıče. Za každou podmnožinu
Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek
5 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, Spojení tabulek, agregační dotazy, jednoduché a složené
ALG 09. Radix sort (přihrádkové řazení) Counting sort. Přehled asymptotických rychlostí jednotlivých řazení. Ilustrační experiment řazení
ALG Radix sort (přihrádkové řazení) Counting sort Přehled asymptotických rychlostí jednotlivých řazení Ilustrační experiment řazení Radix sort Neseřazeno Řaď podle. znaku Cbb DaD adb DCa CCC add DDb adc
Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.
Základy programování 4 - C# - 8. cvičení Radek Janoštík Univerzita Palackého v Olomouci 3.4.2017 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.2017 1 / 10 Reakce na úkoly
Programování v Haskellu KSI MFF CUNI CZ 2019
Programování v Haskellu KSI MFF CUNI CZ 2019 1 Úvod a předběžnosti Meta, požadavky NPRG068, 2/0 Zk, 3 kredity kratochvil@ksi.mff.cuni.cz http://ksi.mff.cuni.cz/~kratochvil/haskell 2 Požadavky 1. Domácí
Základní datové struktury III: Stromy, haldy
Základní datové struktury III: Stromy, haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz
Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz (2 + 5) * (13-4) * + - 2 5 13 4 - listy stromu obsahují operandy (čísla) - vnitřní uzly obsahují operátory (znaménka)
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Programování v Pythonu
ƒeské vysoké u ení technické v Praze FIT Programování v Pythonu Ji í Znamená ek P íprava studijního programu Informatika je podporována projektem nancovaným z Evropského sociálního fondu a rozpo tu hlavního
Dotazování nad stromem abstraktní syntaxe
Fakulta jaderná a fyzikáln inºenýrská ƒeské vysoké u ení technické v Praze 3.6.2010 Osnova while 1 Reprezentace programu 2 AST a Java 3 Vyhledávání v AST 4 Aplikace body if expr Jak reprezentovat program
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)
ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK) Strom / tree uzel, vrchol / node, vertex hrana / edge vnitřní uzel
Druhy souborů. textové. binární. nestrukturované txt strukturované - ini, xml, csv. veřejné bmp, jpg, wav proprietární docx, cdr, psd
Soubory Druhy souborů textové nestrukturované txt strukturované - ini, xml, csv binární veřejné bmp, jpg, wav proprietární docx, cdr, psd Základy zápisu using System.IO; nutné pro odkázání na jmenný prostor,
B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11
333LP - lgoritmy a programování - Zkouška z předmětu 333LP Jméno Příjmení Už. jméno Marek oháč bohacm11 Zkouškový test Otázka 1 Jaká je hodnota proměnné count po vykonání následujícího kódu: data=[4,4,5,5,6,6,6,7,7,7,7,8,8]
Java/QE Akademie - Osnova
Java/QE Akademie - Osnova Lekce 1 1. Co je to Java? 1.1. Struktura Java kódu 2. Potřebné nástroje pro vývoj 2.1. JVM 2.2. JRE 2.3. JDK 3. Co je to proměnná a její zápis v Javě 3.1. Klasické proměnné 3.2.
SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:
SII - Informatika Způsob vyhodnocení: Při vyhodnocení budou za nesprávné odpovědi strhnuty body. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá: a) sekundární klíč b)
IB015 Neimperativní programování. Organizace a motivace kurzu, programovací jazyk Haskell. Jiří Barnat
IB015 Neimperativní programování Organizace a motivace kurzu, programovací jazyk Haskell Jiří Barnat Sekce IB015 Neimperativní programování 01 str. 2/36 Organizace kurzu Cíle kurzu IB015 Neimperativní
Motivace. Vstup a výstup. Minimální komunikace. Motivace. ÚDPJ - Vstup a výstup. Ing. Lumír Návrat katedra informatiky, A
Motivace Vstup a výstup Ing. Lumír Návrat katedra informatiky, A-1018 59 732 3252 Načtení čísla val :: Int val = 42 function :: Int -> Int function = val + n inputint :: Int inputdiff = inputint - inputint
DSA, První krok: máme dokázat, že pro left = right vrátí volání f(array, elem, left, right)
Indukcí dokažte následující výrok: pokud lef t a right jsou parametry funkce f a platí left right, pak volání f(array, left, right) vrátí minimální hodnotu z hodnot všech prvků v poli array na indexech
JAVA. Další jazyky kompilovatelné do Java byte-code
JAVA Další jazyky kompilovatelné do Java byte-code Přehled Scala objektový a funkcionální jazyk Closure funkcionální jazyk dialekt Lispu Groovy skritpovací jazyk Kotlin nová Java Jython Java implementace
FUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 5. CVIČENÍ
FUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 5. CVIČENÍ 2011 Jan Janoušek MI-FLP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Page 1 of 5 Lekce 5 Obsah sekvence, sequencep, subseq, reverse,
Rekurzivní algoritmy
Rekurzivní algoritmy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA) ZS
Programovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
Object Pascal je přísně typový procedurální jazyk, který umožňuje jak strukturované, tak objektově orientované programování.
Delphi lekce 6 Minimum z Object Pascalu Vrátíme se ještě k základům Object Pascalu. Struktura programu Object Pascal je přísně typový procedurální jazyk, který umožňuje jak strukturované, tak objektově
PB161 Programování v jazyce C++ Přednáška 3
PB161 Programování v jazyce C++ Přednáška 3 Kontejnery Iterátory Algoritmy Nikola Beneš 4. října 2016 PB161 přednáška 3: kontejnery, iterátory, algoritmy 4. října 2016 1 / 25 Standardní knihovna C++ Už
Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz
Semestrální práce z předmětu KIV/UPA Jan Bařtipán / A03043 bartipan@studentes.zcu.cz Zadání Program přečte ze vstupu dvě čísla v hexadecimálním tvaru a vypíše jejich součet (opět v hexadecimální tvaru).
Haskell Hero učební text
Haskell Hero učební text Stanislav Novák, StaNov@mail.muni.cz 22. května 2011 Tento sáhodlouhý dokument obsahuje učební text webové podoby učebnice Haskell Hero ke dni uvedenému výše. Text byl převeden
Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií
1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední
Stromy, haldy, prioritní fronty
Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík
Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.
1 Kurz Databáze Zpracování dat Doc. Ing. Radim Farana, CSc. Obsah Druhy dotazů, tvorba dotazu, prostředí QBE (Query by Example). Realizace základních relačních operací selekce, projekce a spojení. Agregace
KTE / ZPE Informační technologie
4 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Největší
Zápis programu v jazyce C#
Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač
ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)
ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK) Strom / tree uzel, vrchol / node, vertex hrana / edge vnitřní uzel
PARADIGMATA PROGRAMOVÁNÍ 2 PŘÍSLIBY A LÍNÉ VYHODNOCOVÁNÍ
KATEDRA INFORMATIKY, PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO, OLOMOUC PARADIGMATA PROGRAMOVÁNÍ 2 PŘÍSLIBY A LÍNÉ VYHODNOCOVÁNÍ Slajdy vytvořili Vilém Vychodil a Jan Konečný (KI, UP Olomouc) PP 2, Lekce
Paradigmata programování II Korutiny a nedeterminismus
Paradigmata programování II Korutiny a nedeterminismus Vilém Vychodil Katedra informatiky, Univerzita Palackého v Olomouci 27. dubna 2006 Vilém Vychodil (UP Olomouc) PP II, Př. 9: Korutiny, nedeterminismus
Java a XML. 10/26/09 1/7 Java a XML
Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis
Abstraktní datové typy
Karel Müller, Josef Vogel (ČVUT FIT) Abstraktní datové typy BI-PA2, 2011, Přednáška 10 1/27 Abstraktní datové typy Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra teoretické informatiky,
Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 12.2.
Základy programování 4 - C# Radek Janoštík Univerzita Palackého v Olomouci 12.2.2018 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 12.2.2018 1 / 18 Úvod Předmět navazuje
Knihovna XmlLib TXV 003 63.01 první vydání prosinec 2010 změny vyhrazeny
Knihovna XmlLib TXV 003 63.01 první vydání prosinec 2010 změny vyhrazeny 1 TXV 003 63.01 Historie změn Datum Vydání Popis změn Prosinec 2010 1 První vydání, popis odpovídá XmlLib_v13 OBSAH 1 Úvod...3 2
B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11
Jméno Příjmení Už. jméno Marek oháč bohacm11 Zkouškový test Otázka 1 Jaká je hodnota proměnné count po vykonání následujícího kódu: data=[4,4,5,5,6,6,6,7,7,7,7,8,8] count=0 for i in range(1,len(data)):
PARADIGMATA PROGRAMOVÁNÍ 2A INTERPRET S VEDLEJŠÍMI EFEKTY A MAKRY
KATEDRA INFORMATIKY, PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO, OLOMOUC PARADIGMATA PROGRAMOVÁNÍ 2A INTERPRET S VEDLEJŠÍMI EFEKTY A MAKRY VÝVOJ TOHOTO UČEBNÍHO MATERIÁLU JE SPOLUFINANCOVÁN EVROPSKÝM
PB161 Programování v jazyce C++ Přednáška 9
PB161 Programování v jazyce C++ Přednáška 9 Právo friend Přetěžování operátorů Nikola Beneš 16. listopadu 2015 PB161 přednáška 9: friend, přetěžování operátorů 16. listopadu 2015 1 / 30 Reklama PB173 Tematicky
Šablony, kontejnery a iterátory
7. října 2010, Brno Připravil: David Procházka Šablony, kontejnery a iterátory Programovací jazyk C++ Šablony Strana 2 / 21 Šablona funkce/metody Šablona je obecný popis (třídy, funkce) bez toho, že by
SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů
SPJA, cvičení 1 ipython, python, skripty základy syntaxe: základní datové typy, řetězce podmínky: if-elif-else, vyhodnocení logických výrazů cykly: for, while kolekce: seznam, n-tice, slovník funkce, list
Implementace LL(1) překladů
Překladače, přednáška č. 6 Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 30. října 2007 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku
Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b
Výrazy a operátory i = 2 i = 2; to je výraz to je příkaz 4. Operátory Unární - unární a unární + Např.: +5-5 -8.345 -a +b - unární ++ - inkrement - zvýší hodnotu proměnné o 1 - unární -- - dekrement -
Přednáška 3. Rekurze 1
Paradigmata programování 1 Přednáška 3. Rekurze 1 Michal Krupka KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI Obsah 1 Příklady 2 Rekurzivní procedury a rekurzivní výpočetní proces 3 Další příklady
Dynamické programování. Optimální binární vyhledávací strom
The complexity of different algorithms varies: O(n), Ω(n ), Θ(n log (n)), Dynamické programování Optimální binární vyhledávací strom Různé algoritmy mají různou složitost: O(n), Ω(n ), Θ(n log (n)), The
14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
NPRG030 Programování I, 2016/17 1 / :58:13
NPRG030 Programování I, 2016/17 1 / 31 10. 10. 2016 10:58:13 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE NPRG030 Programování
Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 23, 2016
ZPRO cvičení 3 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague October 23, 2016 Outline I 1 Outline 2 Relační a logické operátory 3 Relační a logické
Knihovna XmlLib TXV 003 63.01 druhé vydání říjen 2012 změny vyhrazeny
Knihovna XmlLib TXV 003 63.01 druhé vydání říjen 2012 změny vyhrazeny 1 TXV 003 63.01 Historie změn Datum Vydání Popis změn Prosinec 2010 1 První vydání, popis odpovídá XmlLib_v13 Říjen 2012 2 Druhé vydání,
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 23 Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 2 / 23 biologové často potřebují najít často se opakující sekvence DNA tyto sekvence bývají relativně krátké,
Algoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová
VÝRAZY výrazy = operandy prokládané operátory, vyhodnocované podle priority operátorů
VÝRAZY výrazy = operandy prokládané operátory, vyhodnocované podle priority operátorů Výrazy podle priority operátorů (od nejnižší priority) OPERANDY OPERÁTORY výraz = jednoduché výrazy a relační operátory
Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016
ZPRO cvičení 2 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague October 17, 2016 Outline I 1 Outline 2 Proměnné 3 Proměnné - cvičení 4 Funkce 5 Funkce
PB161 Programování v jazyce C++ Přednáška 6
PB161 Programování v jazyce C++ Přednáška 6 Kontejnery Iterátory Algoritmy Nikola Beneš 26. října 2015 PB161 přednáška 6: kontejnery, iterátory, algoritmy 26. října 2015 1 / 37 Standardní knihovna C++
ŘÍDÍCÍ STRUKTURY - PODMÍNKY
ŘÍDÍCÍ STRUKTURY - PODMÍNKY Pokusíme se rozvětvit sktipt v Bashi ŘÍDÍCÍ STRUKTURY - PODMÍNKY V této lekci budeme probírat podmínkové, tj., které nám pomohou rozvětvit skript a provádět určité pouze při
PB161 6. přednáška (26. října 2015)
PB161 6. přednáška (26. října 2015) Standardní knihovna C++ obsahuje řadu částí, některé už jsme viděli (strings, I/O streams) mimo jiné obsahuje i knihovní funkce ze standardní knihovny jazyka C jiné
IB111 Programování a algoritmizace. Objektově orientované programování (OOP)
IB111 Programování a algoritmizace Objektově orientované programování (OOP) OP a OOP Objekt Kombinuje data a funkce a poskytuje určité rozhraní. OP = objektové programování Vše musí být objekty Např. Smalltalk,
PARADIGMATA PROGRAMOVÁNÍ 2A MAKRA III
KATEDRA INFORMATIKY, P ÍRODOV DECKÁ FAKULTA UNIVERZITA PALACKÉHO, OLOMOUC PARADIGMATA PROGRAMOVÁNÍ 2A MAKRA III Slajdy vytvo ili Vilém Vychodil a Jan Kone ný (KI, UP Olomouc) PP 2A, Lekce 5 Makra III 1
Reprezentace dat v informačních systémech. Jaroslav Šmarda
Reprezentace dat v informačních systémech Jaroslav Šmarda Reprezentace dat v informačních systémech Reprezentace dat v počítači Datové typy Proměnná Uživatelské datové typy Datové struktury: pole, zásobník,
Stromy. Příklady. Rekurzivní datové struktury. Základní pojmy
Základní pojmy Stromy doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Graf uzly hrany orientované / neorientované Souvislý
Náznak ukázky syntaxe a sémantiky pro projekt. 1 Syntaktické prvky. Poslední aktualizace: 8.
Jednoduchý interpretační překladač Náznak ukázky syntaxe a sémantiky pro projekt Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 8. ledna 2008 1 Syntaktické
PB161 Programování v jazyce C++ Přednáška 3
PB161 Programování v jazyce C++ Přednáška 3 Kontejnery Iterátory Algoritmy Nikola Beneš 2. října 2018 PB161 přednáška 3: kontejnery, iterátory, algoritmy 2. října 2018 1 / 27 Automatická dedukce typů (od
9. přednáška - třídy, objekty
třída String a její použití kolekce, typované kolekce 9. přednáška - třídy, objekty Algoritmizace (Y36ALG), Šumperk - 9. přednáška 1 Třída String Objekty knihovní třídy String jsou řetězy znaků Od ostatních
Abstraktní datové typy: zásobník
Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní
Tabulka obsluhovaná kódem VBA
V článku Tabulka aneb Seznam čili ListObject jsme se věnovali Tabulkám z pohledu práce na listu. Dnes si je osaháme prostřednictvím kódu VBA, kde jim není vyhrazen podle očekávání objekt Table, ale ListObject.
Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní
Základy jazyka C# doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Architektura.NET Historie Vlastnosti
5 Přehled operátorů, příkazy, přetypování
5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování
Jazyk VHDL zápis čísel, znaků a řetězců. Jazyk VHDL základní datové typy a operátory. Kurz A0B38FPGA Aplikace hradlových polí
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Ing. Radek Sedláček, Ph.D., katedra měření K13138 Jazyk VHDL zápis čísel, znaků a řetězců Jazyk VHDL základní datové typy a operátory Kurz
Algoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová
Dotazovací jazyk pro řazená data
Dotazovací jazyk pro řazená data NDBI006 2011 Martin Chytil Motivace - dotazy závislé na pořadí Úvod do jazyka AQuery Datový model Algebra Transformace dotazů - optimalizace Výsledky experimentů Podobné
NPRG030 Programování I, 2010/11
Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE když X, Y jsou (číselné) výrazy, potom X = Y X Y X < Y X > Y X = Y jsou
Úvod do programování - Java. Cvičení č.4
Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení
Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.
Přednáška 7 Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu. 1 Příkaz expr výraz Celočíselná aritmetika I Zašle na standardní výstup vyhodnocení výrazu
Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!
Java práce s řetězci Trochu povídání.. Řetězce jsou v Javě reprezentovány instancemi tříd StringBuffer a String. Tyto třídy jsou součástí balíčku java.lang, tudíž je možno s nimi pracovat ihned bez nutného
Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15
Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové
awk programovatelný filtr
awk programovatelný filtr Spouštění: Awk vzor {akce} nebo awk f prg_soubor [ soubory ] čte řádky ze zadaných souborů, nebo ze standardního vstupu výstup směřuje na standardní výstup Struktura programu:
R zné algoritmy mají r znou složitost
/ / zné algoritmy mají r znou složitost Dynamické programování / / Definice funkce Otázka Program f(x,y) = (x = ) (y = ) f(x, y-) + f(x-,y) (x > ) && (y > ) f(,) =? int f(int x, int y) { if ( (x == ) (y