2018, Funkcionális programozás
|
|
- Erik Vass
- 6 évvel ezelőtt
- Látták:
Átírás
1 Funkcionális programozás 10. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia 2018, tavaszi félév
2 Miről volt szó? a foldl és foldr függvények lista első, utolsó eleme lista hossza listaelemek összege egy eleme szerepel-e a listaelemek között kombinatorikai feladatok m elemű kombinációk meghatározása részhalmazok előálĺıtása N királynő feladat Pascal féle háromszög
3 Miről lesz szó? szekvenciális keresés: szövegállományban, bináris állományban bináris keresés, tömbök használata jelszavak hash értékének meghatározása
4 Szekvenciális keresés 1. feladat Olvassunk be egy szót a billentyűzetről és vizsgáljuk meg, hogy az szerepel-e egy adott szövegállományban. mainf1 :: IO() mainf1 = do putstr "szo = " szo <- getline inf <- openfile "szavak.txt" ReadMode feldolgoz1 inf szo 1 hclose inf keresf1 :: (Num a, Eq a1) => [a1] -> a1 -> a -> a keresf1 [] szo ind = 0 keresf1 (k: ve) szo ind k == szo = ind otherwise = keresf1 ve szo (ind + 1)
5 Szekvenciális keresés Az alkalmazott segédfüggvények: feldolgoz1 :: (Show a, Num a) => Handle -> String -> a -> IO () feldolgoz1 inf szo ind = do feof <- hiseof inf if feof then return () else do lista <- hgetline inf let res = keresf1 (words lista) szo 1 if res /= 0 then do putstr "sorszam: " print ind putstr "oszlopszam: " print res return () else feldolgoz1 inf szo (ind + 1)
6 Szekvenciális keresés, bináris állományban 2. feladat Vizsgáljuk meg, hogy egy adott bájtszekvencia benne van-e egy bináris állományban. A bájtszekvencia beolvasása hexa stringként történik, pl: 6F 9A 44 BD E7 mainf2 :: IO () mainf2 = do putstr "all nev: " nev <- getline putstr "Hexa bajt str: " temp <- getline let bmit = map alakith_b (words temp) inf <- openbinaryfile nev ReadMode bmiben <- hgetcontents inf let res = keresf2 bmiben bmit putstr "eredmeny: " putstrln $ show res hclose inf
7 Szekvenciális keresés, bináris állományban A alakith_b az egy vagy két szimbólumból álló hexa értékből előálĺıtja a megfelelő bájtot. alakith_b :: [Char] -> Char alakith_b [c] = chr (hexkar c) alakith_b [c1, c2] = chr ((hexkar c1) * 16 + (hexkar c2)) alakith_b _ = error "Hiba" import Data.Char alakith_b1 :: [Char] -> Char alakith_b1 [c] = chr (digittoint c) alakith_b1 [c1, c2] = chr ((digittoint c1) * 16 + (digittoint c2)) alakith_b1 _ = error "Hiba"
8 Szekvenciális keresés, bináris állományban A hexkar függvény egy hexa ( 0, 1... F ) szimbólumnak meghatározza a megfelelő int típusú értékét. hexkar :: Char -> Int hexkar c c <= 9 && c >= 0 = (ord c) - 48 c == a c == A = 10 c == b c == B = 11 c == c c == C = 12 c == d c == D = 13 c == e c == E = 14 c == f c == F = 15 otherwise = error "Hiba"
9 Szekvenciális keresés, bináris állományban A keresf2 megkeresi hogy az ls bájtszekvenciában megtalálható-e a bs szekvencia. keresf2 :: [Char] -> [Char] -> Bool keresf2 [] bs = False keresf2 ls bs skeres ls bs = True otherwise = keresf2 (tail ls) bs where skeres [] ue = False skeres _ [] = True skeres (k: ve) (l: ue) k /= l = False otherwise = skeres ve ue
10 Szekvenciális keresés, struct típusú adathalmazban 3. feladat Egy szövegállományban egy adott személyről a következő adatok vannak eltárolva: vezetéknév, keresztnév, születési dátum. Hozzuk létre a következő típusú adatszerkezeteket, majd olvassuk ki az adatokat az állományból és határozzuk meg, egy adott dátumon született személyek listáját. A keresett születési dátumot a billentyűzetről olvassuk be. data Datum = Datum{ nap :: Int, honap:: Int, ev :: Int } deriving (Show) data Szemely = Szemely { vnev :: [Char], knev :: [Char], szdatum :: Datum } deriving (Show)
11 Szekvenciális keresés, struct típusú adathalmazban mainf3 :: IO () mainf3 = do putstr "keresett datum: " dat <- getline let datum = formaz dat inf <- openfile "szemely.txt" ReadMode lista <- feldolgoz3 inf let res = keresf3 datum lista putstr (show res) hclose inf > mainf3 keresett datum: [Szemely {vnev = "Szep", knev = "Sandor", szdatum = Datum {nap = 13, honap = 6, ev = 1972}}, Szemely {vnev = "Balogh", knev = "Andras", szdatum = Datum {nap = 13, honap = 6, ev = 1972}}]
12 Szekvenciális keresés, struct típusú adathalmazban A szemely.txt szerkezete a következő: Nagy Ferenc Bandi Zoltan Joo Erika Szep Sandor Kiss Malvin formaz :: String -> Datum formaz str = elem where lstr = words str nap = read (lstr!! 0) :: Int honap = read (lstr!! 1) :: Int ev = read (lstr!! 2) :: Int elem = Datum nap honap ev
13 Szekvenciális keresés, struct típusú adathalmazban feldolgoz3 :: Handle -> IO [Szemely] feldolgoz3 inf = do eof <- hiseof inf if eof then return [] else do sor <- hgetline inf let lsor = words sor let vnev = lsor!! 0 let knev = lsor!! 1 let nap = (read (lsor!! 2) :: Int) let honap = (read (lsor!! 3) :: Int) let ev = (read (lsor!! 4) :: Int) let elemd = Datum nap honap ev let eleml = Szemely vnev knev elemd lista <- feldolgoz3 inf return (eleml : lista)
14 Szekvenciális keresés, struct típusú adathalmazban keresf3 :: Datum -> [Szemely] -> [Szemely] keresf3 _ [] = [] keresf3 datum (k: ve) vizsgal datum (szdatum k) = (k: keresf3 datum ve) otherwise = keresf3 datum ve vizsgal :: Datum -> Datum -> Bool vizsgal d1 d2 nap d1 == nap d2 && honap d1 == honap d2 && ev d1 == ev d2 = True otherwise = False
15 Bináris keresés lista adatszerkezettel, I. módszer 4. feladat Alkalmazzuk a bináris keresés algoritmusát egy lista típusú adatszerkezeten. mainf4 :: Int mainf4 = bkeres1 lista 21 0 (length lista) where lista = [1,5,7,9,10,11,21,21,22,27,34,55,67,90] bkeres1 :: Ord a => [a] -> a -> Int -> Int -> Int bkeres1 ls k l h h < l = -1 p > k = bkeres1 ls k l (i-1) p < k = bkeres1 ls k (i+1) h otherwise = i where i = l + ((h - l) div 2) p = ls!! i
16 Bináris keresés lista adatszerkezettel, II módszer mainf4_2 :: Maybe Int mainf4_2 = bkeres2 lista 100 where lista = [1,5,7,9,10,11,21,34,55,67,90] bkeres2 :: Ord a => [a] -> a -> Maybe a bkeres2 [] _ = Nothing bkeres2 ls k k < p = bkeres2 (take (i-1) ls) k k > p = bkeres2 (drop (i+1) ls) k otherwise = Just k where i = ((length ls) - 1) div 2 p = ls!! i
17 Bináris keresés tömb adatszerkezettel 5. feladat Alkalmazzuk a bináris keresés algoritmusát egy tömb típusú adatszerkezeten. import Data.Array mainf5 :: Maybe Integer mainf5 = bkerestomb tomb 21 where tomb = listarray (0, 10) [1,5,7,9,10,11,21,34,55,67,90] > mainf5 Just 6
18 Bináris keresés tömb adatszerkezettel bkerestomb :: (Ix i, Integral i, Ord e) => Array i e -> e -> Maybe i bkerestomb a x = bkerest a x (bounds a) bkerest :: (Ix a, Ord a1, Integral a) => Array a a1 -> a1 -> (a, a) -> Maybe a bkerest a x (l, h) h < l = Nothing x < aelem = bkerest a x (l, i - 1) x > aelem = bkerest a x (i + 1, h) otherwise = Just i where i = (l + h) div 2 aelem = a! i
19 Feladatok 6. feladat Írjunk egy alkalmazást, amely a lenti leírás alapján meghatározza a jelszavak hash-értékét. További útmutatás: Diviánszky Péter - Jelszavak Jelszavak hash-értékének a meghatározása két lépésben történik Első lépésben egy kulcsképző függvény segítségével meghatározunk egy kulcsértéket, ami tulajdonképpen a jelszó normalizálását jelenti, Második lépésben ennek a kulcsértéknek határozzuk meg a tulajdonképpeni hash-értéket. A gyakorlatban alkalmazott hash függvények: az SHA-függvénycsalád stb, A kulcsképző függvény lehet többféle, a feladatban két kulcsképző függvény kerül alkalmazásra, mindkét esetben egy toldalék, a salt alapján történik a kulcsérték meghatározása A hash-érték meghatározását is többféleképpen végezhetjük, a feladatban a következő egyszerű képlet kerül alkalmazásra: hash[c 1, c 2,..., c n] = n i=1 i 2ord(c i ), ahol a c 1, c 2,... c n értékek a kódolandó jelszó karakterei.
20 Feladatok 1. kulcsképző függvény: a jelszóból a kulcsot úgy képezzük, hogy a jelszót összefűzzük a toldalékkal, majd a saját megfordítottjával. 2. kulcsképző függvény: a függvénynek három paramétere van: a salt és a jelszó mellett meg kell adni az elérni kívánt hosszúság értékét a jelszó után fűzzük a toldalékot addig, amíg az elérni kívánt hosszúságot el nem értük. Ha a jelszó eleve hosszabb a kívánt hosszúságnál, akkor levágunk belőle. Ha nincs megadva toldalék, akkor magát a jelszót fűzzük egymásután többször, a kívánt hossz eléréséig.
21 Feladatok A kulcsképző függvények type Salt = String type KDF = Salt -> String -> String kdf1 :: KDF kdf1 salt list = list ++ salt ++ (reverse list) kdf2 :: Int -> KDF...
22 Feladatok A kulcsképző függvények > kdf1 "" "password" "passworddrowssap" > kdf1 "salt" "password" "passwordsaltdrowssap" > kdf2 16 "" "mypass" "mypassmypassmypa" > kdf2 10 "salt" "mylongpassword" "mylongpass" > kdf2 30 "salt" "mylongpassword" "mylongpasswordsaltsaltsaltsalt"
23 Feladatok A hash-érték meghatározása a kulcsérték alapján import Data.Char import Data.Bits type Hash = Integer hash :: String -> Hash...
24 Feladatok A hash-érték meghatározása > hash "passworddrowssap" > hash "passwordsaltdrowssap" > hash "mypassmypassmypa" > hash "mylongpass" > hash "mylongpasswordsaltsaltsaltsalt"
25 Feladatok A jelszó végső hash-értékének létrehozásához a következő adatszerkezettel dolgozunk, el kell tárolni a hash és salt értéket is data Password = Passw Hash Salt deriving (Show) vagy definiálhatjuk a következőképpen is: data Password = P { h :: Hash, s :: Salt } deriving (Show) Jelszó hash-értékének a létrehozása: mkpassword :: KDF -> Salt -> String -> Password mkpassword fugv salt list = Passw (hash $ fugv salt list) salt
26 Feladatok > mkpassword kdf1 "" "password" Passw "" > mkpassword kdf1 "salt" "password" Passw "salt" > mkpassword (kdf2 16) "" "mypass" Passw "" > mkpassword (kdf2 10) "salt" "mylongpassword" Passw "salt" > mkpassword (kdf2 30) "salt" "mylongpassword" Passw "salt"
2018, Funkcionális programozás
Funkcionális programozás 7. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2018, tavaszi félév Miről volt szó? összefésüléses rendezés (merge
2018, Funkcionális programozás
Funkcionális programozás 6. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2018, tavaszi félév Miről volt szó? Haskell modulok, kompilálás a
2016, Funkcionális programozás
Funkcionális programozás 11. előadás Sapientia Egyetem, Műszaki és Humántudományok Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2016, tavaszi félév Miről volt szó? Haskell I/O műveletek, feladatok:
2019, Funkcionális programozás. 5. el adás. MÁRTON Gyöngyvér
Funkcionális programozás 5. el adás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2019, tavaszi félév Mir l volt szó? a Haskell kiértékelési stratégiája
2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér
Funkcionális programozás 2. el adás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2019, tavaszi félév Mir l volt szó? Követelmények, osztályozás Programozási
2018, Funkcionális programozás
Funkcionális programozás 3. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2018, tavaszi félév Miről volt szó? A Haskell programozási nyelv főbb
2019, Funkcionális programozás. 4. el adás. MÁRTON Gyöngyvér
Funkcionális programozás 4. el adás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2019, tavaszi félév Mir l volt szó? GHC parancsok fenntartott szavak
Funkcionális Nyelvek 2 (MSc)
Funkcionális Nyelvek 2 (MSc) Páli Gábor János pgj@elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar Programozási Nyelvek és Fordítóprogramok Tanszék Tematika A (tervezett) tematika rövid összefoglalása
2016, Funkcionális programozás
Funkcionális programozás 2. előadás Sapientia Egyetem, Műszaki és Humántudományok Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2016, tavaszi félév Miről volt szó? Programozási paradigmák: imperatív,
Programozás burritokkal
Monádok (folytatás) Programozás burritokkal [2..21] Programozás monádokkal: Programstrukturálás type IO α = World (α, World) -- putstr :: String IO () -- getline :: IO String (>>=) :: IO α (α IO β) IO
Tulajdonságalapú tesztelés
Tulajdonságalapú tesztelés QuickCheck A QuickCheck Haskell programok automatikus, tulajdonságalapú tesztelésére használható. Programspecifikáció: program által teljesítendő tulajdonságok Nagy számú, a
2018, Diszkrét matematika
Diszkrét matematika 12. előadás mgyongyi@ms.sapientia.ro Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, ománia 2018, őszi félév Miről volt szó az elmúlt előadáson? a diszkrét logaritmus,
2016, Diszkrét matematika
Diszkrét matematika 7. előadás Sapientia Egyetem, Műszaki és Humántudományok Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2016, őszi félév Miről volt szó az elmúlt előadáson? az ord, chr függvények
FUNKCIONÁLIS PROGRAMOZÁS GYAKORLAT JEGYZET
FUNKCIONÁLIS PROGRAMOZÁS GYAKORLAT JEGYZET Szerkesztette: Balogh Tamás 2013. május 17. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! - Ne add
2018, Diszkrét matematika
Diszkrét matematika 3. előadás mgyongyi@ms.sapientia.ro Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia 2018, őszi félév Miről volt szó az elmúlt előadáson? számtartományok: természetes
Programozás alapjai. 5. előadás
5. előadás Wagner György Általános Informatikai Tanszék Cserélve kiválasztásos rendezés (1) A minimum-maximum keresés elvére épül. Ismétlés: minimum keresés A halmazból egy tetszőleges elemet kinevezünk
2018, Diszkrét matematika
Diszkrét matematika 7. előadás mgyongyi@ms.sapientia.ro Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia 2018, őszi félév Miről volt szó az elmúlt előadáson? számrendszerek számrendszerek
Megoldott feladatok. Informatika
Megoldott feladatok Informatika I.81. Egy autóbuszjegyen az n*n-es négyzethálóban összesen k lyukasztás lehet. Ha a buszjegyet fordítva helyezzük a lyukasztóba, akkor a jegy tükörképét kapjuk. (Csak egyféleképpen
2016, Diszkrét matematika
Diszkrét matematika 2. előadás Sapientia Egyetem, Műszaki és Humántudományok Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2016, őszi félév Miről volt szó az elmúlt előadáson? Követelmények,
2015, Diszkrét matematika
Diszkrét matematika 4. előadás Sapientia Egyetem, Műszaki és Humántudományok Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2015, őszi félév Miről volt szó az elmúlt előadáson? Számtartományok:
Sztringkezelő függvények. A string típusú változók kezelése, használata és szerepük a feldolgozás során
Sztringkezelő függvények A string típusú változók kezelése, használata és szerepük a feldolgozás során Mi string? Röviden: karakterek tárolására alkalmas típus A karakterek betűk, számok, vagy tetszőleges,
2018, Funkcionális programozás
Funkcionális programozás 1. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2018, tavaszi félév Követelmények, osztályozás Előadás, jelenlét:
2018, Diszkrét matematika
Diszkrét matematika 5. előadás mgyongyi@ms.sapientia.ro Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia 2018, őszi félév Miről volt szó az elmúlt előadáson? Python alapfogalmak:
Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.
Informatika 1 2011 Második előadás, vezérlési szerkezetek Szabó Adrienn 2011. szeptember 14. Tartalom Algoritmusok, vezérlési szerkezetek If - else: elágazás While ciklus For ciklus Egyszerű típusok Összetett
2016, Diszkrét matematika
Diszkrét matematika 11. előadás Sapientia Egyetem, Műszaki és Humántudományok Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2016, őszi félév Miről volt szó az elmúlt előadáson? legnagyobb közös
2018, Diszkrét matematika
Diszkrét matematika 4. előadás mgyongyi@ms.sapientia.ro Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia 2018, őszi félév Miről volt szó az elmúlt előadáson? számtartományok: racionális
BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli. A versenyzők figyelmébe:
BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli A versenyzők figyelmébe: 1. A tömböket 1-től kezdődően indexeljük. 2. A rácstesztekre
2018, Diszkre t matematika. 8. elo ada s
Diszkre t matematika 8. elo ada s MA RTON Gyo ngyve r mgyongyi@ms.sapientia.ro Sapientia Egyetem, Matematika-Informatika Tansze k Marosva sa rhely, Roma nia 2018, o szi fe le v MA RTON Gyo ngyve r 2018,
Tisztán funkcionális adatszerkezetek
Tisztán funkcionális adatszerkezetek Bevezetés A hatékony adatszerkezetek általában... [..] language-independent only in the sense of Henry Ford: Programmers can use any language as they want, as long
2017, Diszkrét matematika
Diszkrét matematika 10. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2017, őszi félév Miről volt szó az elmúlt előadáson? a prímszámtétel prímszámok,
INFORMATIKA javítókulcs 2016
INFORMATIKA javítókulcs 2016 ELMÉLETI TÉTEL: Járd körbe a tömb fogalmát (Pascal vagy C/C++): definíció, egy-, két-, több-dimenziós tömbök, kezdőértékadás definíciókor, tömb típusú paraméterek átadása alprogramoknak.
2016, Diszkrét matematika
Diszkrét matematika 8. előadás Sapientia Egyetem, Műszaki és Humántudományok Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2016, őszi félév Miről volt szó az elmúlt előadáson? a Fibonacci számsorozat
FUNKCIONÁLIS PROGRAMOZÁS ELŐADÁS JEGYZET
FUNKCIONÁLIS PROGRAMOZÁS ELŐADÁS JEGYZET Szerkesztette: Balogh Tamás 2013. május 30. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! - Ne add
Tisztán funkcionális adatszerkezetek (folytatás)
Tisztán funkcionális adatszerkezetek (folytatás) FingerTree (intuíció) [2..26] FingerTree (intuíció) [3..26] FingerTree (intuíció) [4..26] FingerTree (intuíció) [5..26] FingerTree (intuíció) [6..26] FingerTree
Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }
Funkcionális és logikai programozás { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi ` 1 Jelenlét: Követelmények, osztályozás Az első 4 előadáson
Programozás I. - 11. gyakorlat
Programozás I. - 11. gyakorlat Struktúrák, gyakorlás Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer- és Számítástudományi Tanszék Utolsó frissítés: November 16, 2009 1 tar@dcs.vein.hu Tar
C# feladatok gyűjteménye
C# feladatok gyűjteménye Készítette: Fehérvári Károly I6YF6E Informatika tanár ma levelező tagozat 1) Feladat: ALAPMŰVELETEK Készítsünk programot, amely bekér két egész számot. Majd kiszámolja a két szám
Érdekes informatika feladatok
A keres,kkel és adatbázissal ellátott lengyel honlap számos díjat kapott: Spirit of Delphi '98, Delphi Community Award, Poland on the Internet, Golden Bagel Award stb. Az itt megtalálható komponenseket
Felvételi vizsga mintatételsor Informatika írásbeli vizsga
BABEȘ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR A. tételsor (30 pont) Felvételi vizsga mintatételsor Informatika írásbeli vizsga 1. (5p) Egy x biten tárolt egész adattípus (x szigorúan pozitív
Tuesday, March 6, 12. Hasító táblázatok
Hasító táblázatok Halmaz adattípus U (kulcsuniverzum) K (aktuális kulcsok) Függvény adattípus U (univerzum) ÉT (értelmezési tartomány) ÉK (érték készlet) Milyen az univerzum? Közvetlen címzésű táblázatok
Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák
Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák Gelle Kitti 2017. 10. 25. Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák 2017. 10. 25. 1 / 20 Hasítótáblák T 0 h(k 2)
Programozás II. 2. Dr. Iványi Péter
Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c
Algoritmizálás és adatmodellezés tanítása 1. előadás
Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmus-leíró eszközök Folyamatábra Irányított gráf, amely csomópontokból és őket összekötő élekből áll, egyetlen induló és befejező éle van, az
end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..
A Név: l 2014.04.09 Neptun kód: Gyakorlat vezető: HG BP MN l 1. Adott egy (12 nem nulla értékû elemmel rendelkezõ) 6x7 méretû ritka mátrix hiányos 4+2 soros reprezentációja. SOR: 1 1 2 2 2 3 3 4 4 5 6
Imperatív programozás
Imperatív programozás 6. Előadás Python típusok (folytatás) Függvények Típusok + műveleteik Listák - mutable (változtatható) - heterogén lista >>> lista = ["szo", 12, 3.5] >>> lista[1] 12 >>> lista[1:3]
6. A Pascal nyelv utasításai
6. A Pascal nyelv utasításai Írjunk programot, amely beolvas két valós számot és a két szám közül a kisebbikkel osztja a nagyobbikat! (felt0) program felt0; szam1, szam2, eredmeny : real; writeln('kérek
Programozás alapjai 6. előadás. Wagner György Általános Informatikai Tanszék
Programozás alapjai 6. előadás Wagner György Általános Informatikai Tanszék Record A valós életben a nyilvántartásra kerülő adatok nem azonos típusúak. Pl.: Név Cím Telefon GySz Fiz Kis Béla Miskolc Török
Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED Reguláris kifejezések - alapok, BASH Operációs rendszerek 9. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor
11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.
11. gyakorlat Sturktúrák használata I. Új típus új műveletekkel 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi. typedef struct datum { int ev; int ho; int nap;
2018, Diszkre t matematika. 10. elo ada s
Diszkre t matematika 10. elo ada s MA RTON Gyo ngyve r mgyongyi@ms.sapientia.ro Sapientia Egyetem, Matematika-Informatika Tansze k Marosva sa rhely, Roma nia 2018, o szi fe le v MA RTON Gyo ngyve r 2018,
Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 4. előadás Procedurális programozás: iteratív és rekurzív alprogramok Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Egyszerű programok készítése... 56 Kifejezések... 57 Bitszintű műveletek... 57 Relációs műveletek... 58
Tartalomjegyzék Algoritmusok - pszeudókód... 1 Abszolút érték... 1 Hányados ismételt kivonással... 1 Legnagyobb közös osztó... 1 Páros számok szűrése... 2 Palindrom számok... 2 Orosz szorzás... 3 Minimum
INFORMATIKAI ALAPISMERETEK
Informatikai alapismeretek középszint 1021 ÉRETTSÉGI VIZSGA 2011. május 13. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM
2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont)
A Név: l 2017.04.06 Neptun kód: Gyakorlat vezet : HG BP l 1. Az A vektor tartalmát az alábbi KUPACOL eljárással rendezzük át maximum kupaccá. A={28, 87, 96, 65, 55, 32, 51, 69} Mi lesz az értéke az A vektor
Felhasználó által definiált adattípus
Felhasználó által definiált adattípus C++ Izsó Tamás 2017. február 24. Izsó Tamás Felhasználó által definiált adattípus/ 1 Irodalom Izsó Tamás Felhasználó által definiált adattípus/ 2 Programtervezési
Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok
LibreOffice Makró Basic
2017/01/12 13:05 1/11 LibreOffice Makró Basic < Basic LibreOffice LibreOffice Makró Basic Szerző: Sallai András Copyright Sallai András, 2013 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu
Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből
1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb
1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb #include main() { int a, b; printf( "a=" ); scanf( "%d", &a ); printf( "b=" ); scanf( "%d", &b ); if( a< b ) { inttmp = a; a =
6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok
6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok 1. feladat: Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR). Írjon C programokat az alábbi kérdések
Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök
Programozás alapjai II. (8. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT Speciális adatszerkezetek A helyes adatábrázolás választása, a helyes adatszerkezet
Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED BASH recap, reguláris kifejezések Operációs rendszerek 9. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor
INFORMATIKAI ALAPISMERETEK
Informatikai alapismeretek emelt szint 1021 ÉRETTSÉGI VIZSGA 2011. május 13. INFORMATIKAI ALAPISMERETEK EMELT SZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM
INFORMATIKA tétel 2019
INFORMATIKA tétel 2019 ELIGAZÍTÁS: 1 pont hivatalból; Az 1-4 feladatokban (a pszeudokód programrészletekben): (1) a kiír \n utasítás újsorba ugratja a képernyőn a kurzort; (2) a / operátor osztási hányadost
length (s): Az s karaklerlánc hossza, substr(s,m,n): Az s mezőben levő karakterláncnak az m-edik karakterétől kezdődő, n darab karaktert vágja ki.
9. Gyakorlat AWK 2 length (s): Az s karaklerlánc hossza, substr(s,m,n): Az s mezőben levő karakterláncnak az m-edik karakterétől kezdődő, n darab karaktert vágja ki. Ha az n-et elhagyjuk, akkor az m-ediktől
Programozás C nyelven (10. ELŐADÁS) Sapientia EMTE
Programozás C nyelven (10. ELŐADÁS) Sapientia EMTE 2015-16 1 const ódosító jelző int x = 1914; // I. világháború ++x; // HELYES, mert x változó Vedd észre, hogy bár: x *p ++x helyes és ++(*p) helytelen
Feldspar: Nyelv digitális jelfeldolgozáshoz
Feldspar: Nyelv digitális jelfeldolgozáshoz Eötvös Loránd Tudományegyetem, Budapest Támogatja: Ericsson, KMOP-1.1.2-08 Feldspar funkcionális beágyazott nyelv Feldspar digitális jelfeldolgozáshoz párhuzamossághoz
Szkriptnyelvek. 1. UNIX shell
Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek
1. Egészítsük ki az alábbi Python függvényt úgy, hogy a függvény meghatározza, egy listába, az első n szám faktoriális értékét:
Az írásbeli vizsgán, az alábbiakhoz hasonló, 8 kérdésre kell választ adni. Hasonló kérdésekre lehet számítani (azaz mi a hiba, egészítsük ki, mi a függvény kimeneti értéke, adjuk meg a függvényhívást,
Algoritmusok - pszeudókód... 1
Tartalomjegyzék Algoritmusok - pszeudókód... 1 Abszolút érték... 1 Hányados ismételt kivonással... 1 Legnagyobb közös osztó... 1 Páros számok szűrése... 2 Palindrom számok... 2 Orosz szorzás... 2 Minimum
1. Egyszerű (primitív) típusok. 2. Referencia típusok
II. A Java nyelv eszközei 1. Milyen eszközöket nyújt a Java a programozóknak Korábban már említettük, hogy a Java a C nyelvből alakult ki, ezért a C, C++ nyelvben járatos programozóknak nem fog nehézséget
BABEŞ-BOLYAI TUDOMÁNYEGYETEM MATEMATIKA-INFORMATIKA KAR Felvételi verseny - minta Informatika írásbeli
BABEŞ-BOLYAI TUDOMÁNYEGYETEM MATEMATIKA-INFORMATIKA KAR Felvételi verseny - minta Informatika írásbeli A versenyzők figyelmébe: 1. Minden tömböt 1-től kezdődően indexelünk. 2. A rácstesztekre (A rész)
Bevezetés a programozásba I.
Bevezetés a programozásba I. 8. gyakorlat Fájlkezelés Surányi Márton PPKE-ITK 2010.11.02. Fájlkezelés C++-ban C++-ban van lehet ségünk fájlok kezelésére. Itt már tényleges fájlokkal dolgozunk, nem pedig
Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010
Programozási technikák Pál László Sapientia EMTE, Csíkszereda, 2009/2010 Előadás tematika 1. Pascal ismétlés, kiegészítések 2. Objektum orientált programozás (OOP) 3. Delphi környezet 4. Komponensek bemutatása
Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj. Nagy
Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj Divide & Conquer (,,Oszd meg és uralkodj ) paradigma Divide: Osszuk fel az adott problémát kisebb problémákra. Conquer: Oldjuk meg a kisebb
Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész
Java Programozás 9. Gy: Java alapok Adatkezelő 5.rész 15/1 B ITv: MAN 2018.04.22 A Keresés funkció Programlogika: 1. A keresés az etm táblamodellben fog keresni, és a találat rekordokat átmásolja egy másik
Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):
Python Változók Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Név Érték Típus Memóriacím A változó értéke (esetleg más attribútuma is) a program futása alatt
Funkcioná lis prográmozá s Start
Start Ez a jegyzet a tudásom és a http://pnyf.inf.elte.hu/fp/index.xml szerint készült, előfordulhatnak benne hibák, de igyekszem megértetni. Elsőnek érdemes elolvasni, kis leírás a Haskell programnyelvről:
BME MOGI Gépészeti informatika 5.
BME MOGI Gépészeti informatika 5. 1. feladat Készítsen alkalmazást, mely feltölt egy egydimenziós tömböt adott tartományba eső, véletlenszerűen generált egész értékekkel! Határozza meg a legkisebb és a
Rendezések. A föltöltés nemcsak az r-re vonatkozik, hanem az s-re is. Ez használható föl a további rendezések
Rendezések Feladat Rendezési algoritmusok kipróbálása, hatékonysági viselkedésének vizsgálata. A rendezések egy ElemSzam méretü r tömben történik. Többféle föltöltés közül lehet választani: o a növekvően
Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.
Keresés Rendezés Feladat Keresés Rendezés Feladat Tartalom Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán
Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában
Programozás alapjai C nyelv 8. gyakorlat Szeberényi mre BME T Programozás alapjai. (C nyelv, gyakorlat) BME-T Sz.. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény
1. Alapok. Programozás II
1. Alapok Programozás II Elérhetőség Név: Smidla József Elérhetőség: smidla dcs.uni-pannon.hu Szoba: I916 2 Irodalom Bjarne Stroustrup: A C++ programozási nyelv 3 Irodalom Erich Gamma, Richard Helm, Ralph
ő Ö Á Á É ő ü ű ü ő ő ú Ö ő ő ö ő ő ű Á ő ö Í ő ü ö ö ő ú ő Í ő ő ő ö ő ú ú ü ö ö ő ö ő ú ő ő É ö ú Á ő ö ú ű ö ü Ú ű ű ö ö ő ö ő ú ű ö ő ö ű ö ő ö ö ú ö ő Ú ö ö Ú ú ö ö ú ö ő ő ő ö ö ú ű ü ű ö ö ö ö ü
Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Algoritmizálás Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 0.1. Az algoritmikus tudás szintjei Ismeri (a megoldó algoritmust) Érti Le tudja pontosan
Algoritmizálás + kódolás C++ nyelven és Pascalban
Algoritmizálás + kódolás nyelven és ban Motiváció A Programozási alapismeretek tárgyban az algoritmizáláshoz struktogramot, a kódoláshoz nyelvet használunk, a Közismereti informatikában (a közoktatásban
Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek
Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1
Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán
Keresés Rendezés Feladat Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán 2016. november 7. Farkas B., Fiala
Információs Technológia
Információs Technológia Rekurzió, Fa adatszerkezet Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 18. Rekurzió Rekurzió
Smalltalk 2. Készítette: Szabó Éva
Smalltalk 2. Készítette: Szabó Éva Blokkok Paraméter nélküli blokk [műveletek] [ x := 5. 'Hello' print. 2+3] Kiértékelés: [művelet] value az értéke az utolsó művelet értéke lesz, de mindet kiírja. x :=
Maximum kiválasztás tömbben
ELEMI ALKALMAZÁSOK FEJLESZTÉSE I. Maximum kiválasztás tömbben Készítette: Szabóné Nacsa Rozália Gregorics Tibor tömb létrehozási módozatok maximum kiválasztás kódolása for ciklus adatellenőrzés do-while
3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai
Kémiai elemek felfedezése A kémiai elemek kémiailag tovább már nem bontható, egyszerű anyagok. Jelenleg 118 különböző kémiai elemet ismerünk, közüliik a Földön 94 található meg a természetben, ezeket természetes
C programozási nyelv
C programozási nyelv Struktúrák Dr Schuster György 2011 június 16 Dr Schuster György () C programozási nyelv Struktúrák 2011 június 16 1 / 11 Struktúrák Struktúrák A struktúra egy olyan összetett adatszerkezet,
Programozás alapjai II. (7. ea) C++
Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1
KIÍRÁS. - makestring("alma"^"korte\n"); > val it = "\"almakorte\\n\"" : string
KIÍRÁS Kiírás Kiírás 10-2 {TextIO.}prt : strg -> unit prt s = kiírja az s értékét a standard kimenetre, és azonnal kiüríti a puffert. {General.}makestrg : numtxt-> strg makestrg v = eredménye a v érték
Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás, rendezések 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Algoritmusok és programozási tételek
Adatbáziskezelés php-ben MySQL adatbáziskezelı rendszert használva
Adatbáziskezelés php-ben MySQL adatbáziskezelı rendszert használva by A feladat bemutatása...1 Táblák létrehozása...1 Táblák feltöltése...2 Adatbáziskezelés php-ben...5 Csatlakozás az MySQL szerverhez
Funkcionális programozás
Funkcionális programozás Horváth Zoltán E-mail: hz@inf.elte.hu Eötvös Lóránd Tudományegyetem, Budapest Programozási Nyelvek és Fordítóprogramok Tanszék Ajánlott irodalom Plasmeijer et al.: Programming
Delphi programozás IV.
Delphi programozás IV. Szöveg konvertálása egész számmá A Turbo Delphi többféle lehetőséget biztosít arra, hogy egy szöveges változó tartalmát egész számmá konvertáljunk. A konvertálandó szövegnek egy
List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error
Generics Egyszerűbb példák (java.util csomagból): public interface List { void add(e x); Iterator iterator(); public interface Iterator { E next(); boolean hasnext(); E - formális típusparaméter,