2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont)

Hasonló dokumentumok
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..

Algoritmusok vektorokkal keresések 1

Táblázatok fontosabb műveletei 1

Felvételi tematika INFORMATIKA

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]

Kupac adatszerkezet. 1. ábra.

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

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. (7. ea) C++

Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Algoritmuselmélet 2. előadás

14. Mediánok és rendezett minták

INFORMATIKA javítókulcs 2016

BBTE Matek-Infó verseny mintatételsor Informatika írásbeli vizsga

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).

1. ábra. Egy rekurzív preorder bejárás. Egy másik rekurzív preorder bejárás

Algoritmusok és adatszerkezetek gyakorlat 07

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Rendezések. Összehasonlító rendezések

Adatbázis rendszerek Gy: Algoritmusok C-ben

Adatszerkezetek 7a. Dr. IványiPéter

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

Érdekes informatika feladatok

Számjegyes vagy radix rendezés

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

15. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: január 30.

Programozási segédlet

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Permutáció n = 3 esetében: Eredmény: permutációk száma: P n = n! romámul: permutări, angolul: permutation

Adatszerkezetek 1. előadás

Megoldott feladatok. Informatika

Közismereti informatika 2.zh T-M szakirány

Egyirányban láncolt lista

Gráfelméleti feladatok. c f

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

C# feladatok gyűjteménye

Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y.

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

Algoritmuselmélet 1. előadás

A félév során előkerülő témakörök

1. ábra. Számláló rendezés

I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis

2018, Funkcionális programozás

A MAXIMUM-KUPACOL eljárás helyreállítja az A[i] elemre a kupactulajdonságot. Az elemet süllyeszti cserékkel mindaddig, amíg a tulajdonság sérül.

Algoritmusok és adatszerkezetek I. 1. előadás

Haladó rendezések. PPT 2007/2008 tavasz.

Mesterséges intelligencia 1 előadások

Algoritmusok bonyolultsága

10. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: január 28.

BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli. A versenyzők figyelmébe:

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

Amortizációs költségelemzés

Programozási módszertan. Mohó algoritmusok

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. Függvények. Függvények(2)

Rakov(34125)= Rakov(12543)= Rakov(14532)= Rakov(54321)=-

1. numere.txt n (1 n 10000) n növekvő kilenc a) Pascal/C++ Például: NUMERE.TXT

10. előadás Speciális többágú fák

Számláló rendezés. Példa

angolul: greedy algorithms, románul: algoritmi greedy

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

Adatbányászati szemelvények MapReduce környezetben

értékel függvény: rátermettségi függvény (tness function)

Algoritmuselmélet 1. előadás

hatására hátra lép x egységgel a toll

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Dinamikus programozás vagy Oszd meg, és uralkodj!

INFORMATIKA tétel 2019

Tuesday, March 6, 12. Hasító táblázatok

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

2. Visszalépéses keresés

Knuth-Morris-Pratt algoritmus

Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj. Nagy

Bonyolultságelmélet. Monday 26 th September, 2016, 18:50

2018, Diszkrét matematika

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

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

Egyszerű példaprogramok gyakorláshoz

Kupacrendezés. Az s sorban lévő elemeket rendezzük a k kupac segítségével! k.empty. not s.isempty. e:=s.out k.insert(e) not k.

2. Visszalépéses stratégia

Alkalmazott modul: Programozás. Programozási tételek, rendezések Giachetta Roberto

<... < s n. Írjuk le a megoldási módszert, és adjunk meg egy megjegyzésekkel ellátott Pascal-programot. A bemeneti adatokat helyesnek tekintjük.

BABEŞ-BOLYAI TUDOMÁNYEGYETEM MATEMATIKA-INFORMATIKA KAR Felvételi verseny - minta Informatika írásbeli

Algoritmizálás + kódolás C++ nyelven és Pascalban

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

Matlab alapok. Baran Ágnes

Adatszerkezetek 2. Dr. Iványi Péter

Smalltalk 2. Készítette: Szabó Éva

Apple Swift kurzus 3. gyakorlat





értékel függvény: rátermettségi függvény (tness function)

Matematikai problémák vizsgálata a Maple programcsomag segítségével

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Megoldott feladatok november 30. n+3 szigorúan monoton csökken, 5. n+3. lim a n = lim. n+3 = 2n+3 n+4 2n+1

8. Mohó algoritmusok Egy esemény-kiválasztási probléma. Az esemény-kiválasztási probléma optimális részproblémák szerkezete

Átírás:

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 elemeinek, amikor az eljárás befejezi mûködését?. (2 pont) A={96, 87, 51, 69, 55, 32, 28, 65} (helyes_pozícióban_lévõ_értékek_száma/4 pont). procedure KUPACOL(K) procedure SÜLLYESZT_REK(K, honnan, vége) 1. i [méret(k)/2] 2. while i > 0 do 3. SÜLLYESZT(K, i, méret(k)) 4. i i 1 5. end while 1. gyermek honnan + honnan 2. if gyermek < vége és K[gyermek + 1] > K[gyermek] then 3. gyermek gyermek + 1 5. if gyermek vége és K[gyermek] > K[honnan] then 6. K[gyermek] és K[honnan] felcserélése 7. SÜLLYESZT_REK(K, gyermek, vége) 2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont) function MIEZ(A) 1. if méret(a) > 0 then 2. i j A[1] 3. else 4. return 0 5. end if 6. for k 2 to méret(a) do 7. if k > 0 then 8. j A[k] 9. else if k < 0 then 10. i A[k] 11. end if 12. end for 13. return j i Az A vektor utolsó és elsõ elemének különbségét. (1.5 pont) Ha üres a vektor, akkor 0-t. (0.5 pont) 3. Írjon eljárást, amely megnöveli 1-gyel a paraméterként kapott fejmutató által címzett cirkuláris lista minden negatív értékû elemét!. (4 pont) procedure NÖVEL(listafej) 1. if listafej 6= NIL then 2. x listafej 3. repeat 4. if x! adat < 0 then 5. x! adat 1 + x! adat 6. end if 7. x x! következõ 8. until x = listafej 9. end if

B Név: l 1. Az M mátrixot a V vektorban ábrázoltuk: V={ 70, 1 88, 2 20, 3 16, 4 74, 5 71, 6 6, 7 57, 8 12, 9 13, 10 17, 11 91, 12 91, 13 65, 14 94, 15 75, 16 21, 17 97, 18 80, 19 97, 20 51, 21 47, 22 38, 23 34, 24 88, 25 56, 26 9, 27 91 28 } 1. Mennyi x=m[3,4]+m[3,2] értéke, ha M egy helytakarékosan ábrázolt szimmetrikus mátrix? x=v[9]+v[5]=86.. (1 pont) 2. Mennyi y=m[2,5]m[2,2] értéke, ha M egy sorfolytonosan ábrázolt 4x7-es (4 sora és 7 oszlopa van) mátrix? y=v[12]v[9]=79.. (1 pont) 3. 2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont) function MIEZ(A) 1. i 0 2. if méret(a) > 0 then 3. i A[1] - MIEZ ( A[2.. méret(a)] ) 5. return i Az A vektor páros és páratlan indexû elemei összegéneknek különbségét. (1.5 pont) Ha üres a vektor, akkor 0-t. (0.5 pont) 4. Írjon függvényt, amely meghatározza a paraméterként kapott fejmutató által címzett egyirányban láncolt lista elsõ és utolsó pozitív elemének összegét! (Pozitív értékû elem hiányában legyen 0 a függvényérték!).. (4 pont) function ÖSSZEG(listafej) 1. x listafej 2. elsõ NIL 3. while x 6= NIL do 4. if x! adat > 0 then 5. if elsõ = NIL then 6. elsõ x 7. end if 8. utolsó x 9. end if 10. x x! következõ 11. end while 12. if elsõ = NIL then 13. return 0 14. else 15. return elsõ! adat + utolsó! adat 16. end if

C Név: l 1. Az A vektor tartalmát az alábbi KUPACOL eljárással rendezzük át maximum kupaccá. A={32, 44, 72, 30, 93, 38, 16, 6} Mi lesz az értéke az A vektor elemeinek, amikor az eljárás befejezi mûködését?. (2 pont) A={93, 44, 72, 30, 32, 38, 16, 6} (helyes_pozícióban_lévõ_értékek_száma/4 pont). procedure KUPACOL(K) procedure SÜLLYESZT_REK(K, honnan, vége) 1. i [méret(k)/2] 2. while i > 0 do 3. SÜLLYESZT(K, i, méret(k)) 4. i i 1 5. end while 1. gyermek honnan + honnan 2. if gyermek < vége és K[gyermek + 1] > K[gyermek] then 3. gyermek gyermek + 1 5. if gyermek vége és K[gyermek] > K[honnan] then 6. K[gyermek] és K[honnan] felcserélése 7. SÜLLYESZT_REK(K, gyermek, vége) 2. return 0 3. else if listafej! következõ = NIL then 4. return listafej! adat + MIEZ(listafej! következõ) 5. else 6. return listafej! adat + MIEZ(listafej! következõ) listafej! következõ! adat 7. end if A lista elsõ elemének értékét. (1.5 pont) Ha a lista üres, akkor 0-t. (0.5 pont) 3. Írjon függvényt, amely meghatározza a paraméterként kapott vektor elsõ és utolsó pozitív elemének összegét! (Pozitív értékû elem hiányában a függvényérték legyen 0!). (4 pont) function ÖSSZEG(A) 1. elsõ 0 2. for i 1 to méret(a) do 3. if A[i] > 0 then 4. if elsõ = 0 then 5. elsõ i 6. end if 7. utolsó i 9. end for 10. if elsõ = 0 then 11. return 0 12. else 13. return A[elsõ] + A[utolsó] 1

D Név: l 1. Az M mátrixot a V vektorban ábrázoltuk: V={ 70, 1 88, 2 20, 3 16, 4 74, 5 71, 6 6, 7 57, 8 12, 9 13, 10 17, 11 91, 12 91, 13 65, 14 94, 15 75, 16 21, 17 97, 18 80, 19 97, 20 51, 21 47, 22 38, 23 34, 24 88, 25 56, 26 9, 27 91 28 } 1. Mennyi x=m[3,4]+m[3,2] értéke, ha M egy helytakarékosan ábrázolt szimmetrikus mátrix? x=v[9]+v[5]=86.. (1 pont) 2. Mennyi y=m[7,2]m[5,2] értéke, ha M egy sorfolytonosan ábrázolt 7x4-es (7 sora és 4 oszlopa van) mátrix? y=v[26]v[18]=41.. (1 pont) 2. return 0 4. x listafej! adat 5. y listafej! következõ 6. z MIEZ(y) 7. if y = NIL then 8. return x 9. else 10. return z 11. end if A lista utolsó elemének értékét. (1.5 pont) Ha a lista üres, akkor 0-t. (0.5 pont) 3. Írjon függvényt, amely megnöveli 1-gyel a paraméterként kapott vektor minden negatív értékû elemét, és függvényértékként visszaadja a végrehajtott módosítások számát!. (4 pont) function NÖVEL(A) 1. v 0 2. for i 1 to méret(a) do 3. if A[i] < 0 then 4. A[i] A[i] + 1 5. v v +1 6. end if 7. end for 8. return v

E Név: l 1. Az A vektor tartalmát az alábbi KUPACOL eljárással rendezzük át maximum kupaccá. A={68, 52, 38, 24, 90, 75, 11, 27} Mi lesz az értéke az A vektor elemeinek, amikor az eljárás befejezi mûködését?. (2 pont) A={90, 68, 75, 27, 52, 38, 11, 24} (helyes_pozícióban_lévõ_értékek_száma/4 pont). procedure KUPACOL(K) procedure SÜLLYESZT_REK(K, honnan, vége) 1. i [méret(k)/2] 2. while i > 0 do 3. SÜLLYESZT(K, i, méret(k)) 4. i i 1 5. end while 1. gyermek honnan + honnan 2. if gyermek < vége és K[gyermek + 1] > K[gyermek] then 3. gyermek gyermek + 1 5. if gyermek vége és K[gyermek] > K[honnan] then 6. K[gyermek] és K[honnan] felcserélése 7. SÜLLYESZT_REK(K, gyermek, vége) function MIEZ(listafej, e) 2. return 1 3. else if listafej! adat = e then 4. return 2 * MIEZ(listafej! következõ, e) 5. else 6. return MIEZ(listafej! következõ, e) 7. end if 2-nek az annyiadik hatványát, ahány e értékû eleme van a listának. (1.5 pont) Ha a lista üres, ill. nincs ilyen eleme, akkor 1-t. (0.5 pont) 3. Írjon eljárást, amely a beszúrásos rendezés algoritmusával csökkenõ sorrendbe rakja a paraméterül kapott vektor elemeit!. (4 pont) procedure BESZÚRÁSOS_RENDEZ(A) 1. for i 2 to méret(a) do 2. kulcs A[i] 3. j i 1 4. while j 1 és A[j] < kulcs do 5. A[j + 1] A[j] 6. j j 1 7. end while 8. A[j + 1] kulcs 9. end for

F Név: l 1. Az M mátrixot a V vektorban ábrázoltuk: V={ 70, 1 88, 2 20, 3 16, 4 74, 5 71, 6 6, 7 57, 8 12, 9 13, 10 17, 11 91, 12 91, 13 65, 14 94, 15 75, 16 21, 17 97, 18 80, 19 97, 20 51, 21 47, 22 38, 23 34, 24 88, 25 56, 26 9, 27 91 28 } 1. Mennyi x=m[1,6]+m[4,1] értéke, ha M egy helytakarékosan ábrázolt szimmetrikus mátrix? x=v[16]+v[7]=81.. (1 pont) 2. Mennyi y=m[3,1]m[4,2] értéke, ha M egy oszlopfolytonosan ábrázolt 7x4-es (7 sora és 4 oszlopa van) mátrix? y=v[3]v[11]=3.. (1 pont) 2. return NIL 4. a MIEZ(listafej! következõ) 5. if a = NIL vagy a! adat <= listafej! adat then 6. return listafej 7. else 8. return a 9. end if A lista legnagyobb értékû elemének címét. (1.4 pont) Ha több ilyen érték is van, akkor az elsõt. (0.3 pont) Ha a lista üres, akkor NIL-t. (0.3 pont) 3. Írjon függvényt, amely megnöveli 1-gyel a paraméterként kapott vektor legkisebb értékû elemét! Ha az adott érték többször is elõfordul, akkor minden elõfordulást növeljen meg! Függvényértékként adja vissza a végrehajtott módosítások számát!. (4 pont) function NÖVEL(A) 1. if méret(a) = 0 then 2. return 0 4. min A[1] 5. for i 2 to méret(a) do 6. if A[i] < min then 7. min A[i] 9. end for 1. v! 0 11. for i 1 to méret(a) do 12. if A[i] = min then 13. A[i] A[i] +1 14. v v +1 15. end if 16. end for 17. return v

G Név: l 1. Az A vektor tartalmát az alábbi KUPACOL eljárással rendezzük át maximum kupaccá. A={43, 12, 63, 1, 87, 23, 69, 90} Mi lesz az értéke az A vektor elemeinek, amikor az eljárás befejezi mûködését?. (2 pont) A={90, 87, 69, 12, 43, 23, 63, 1} (helyes_pozícióban_lévõ_értékek_száma/4 pont). procedure KUPACOL(K) procedure SÜLLYESZT_REK(K, honnan, vége) 1. i [méret(k)/2] 2. while i > 0 do 3. SÜLLYESZT(K, i, méret(k)) 4. i i 1 5. end while 1. gyermek honnan + honnan 2. if gyermek < vége és K[gyermek + 1] > K[gyermek] then 3. gyermek gyermek + 1 5. if gyermek vége és K[gyermek] > K[honnan] then 6. K[gyermek] és K[honnan] felcserélése 7. SÜLLYESZT_REK(K, gyermek, vége) 2. return NIL 4. z MIEZ(listafej! következõ) 5. if z = NIL vagy z! adat > listafej! adat then 6. return listafej 7. else 8. return z 9. end if A lista legkisebb értékû elemének címét. (1.4 pont) Ha több ilyen érték is van, akkor az utolsót. (0.3 pont) Ha a lista üres, akkor NIL-t. (0.3 pont) 3. Írjon eljárást, amely a beszúrásos rendezés algoritmusával csökkenõ sorrendbe rakja a paraméterül kapott vektor elemeit!. (4 pont) procedure BESZÚRÁSOS_RENDEZ(A) 1. for i 2 to méret(a) do 2. kulcs A[i] 3. j i 1 4. while j 1 és A[j] < kulcs do 5. A[j + 1] A[j] 6. j j 1 7. end while 8. A[j + 1] kulcs 9. end for

H Név: l 1. Az M mátrixot a V vektorban ábrázoltuk: V={ 70, 1 88, 2 20, 3 16, 4 74, 5 71, 6 6, 7 57, 8 12, 9 13, 10 17, 11 91, 12 91, 13 65, 14 94, 15 75, 16 21, 17 97, 18 80, 19 97, 20 51, 21 47, 22 38, 23 34, 24 88, 25 56, 26 9, 27 91 28 } 1. Mennyi x=m[7,2]+m[5,3] értéke, ha M egy helytakarékosan ábrázolt szimmetrikus mátrix? x=v[23]+v[13]=129.. (1 pont) 2. Mennyi y=m[6,3]m[3,1] értéke, ha M egy oszlopfolytonosan ábrázolt 7x4-es (7 sora és 4 oszlopa van) mátrix? y=v[20]v[3]=77.. (1 pont) 2. return 0 3. else if listafej! adat > 0 then 4. return listafej! adat + MIEZ(listafej! következõ) 5. else 6. return MIEZ(listafej! következõ) listafej! adat 7. end if A lista elemek abszolút értékeinek az összegét. (1.5 pont) Ha a lista üres, akkor 0-t. (0.5 pont) 3. Írjon függvényt, amely a bináris keresésre alapozva megkeresi a paraméterként megadott értéket a szintén paraméterként megadott vektorban!. (4 pont) function BINÁRIS_KERES(A, érték) 1. return BINÁRIS_KERES3(A, érték, 1, méret(a)) function BINÁRIS_KERES3(A, érték, alsó, felsõ) - - bináris keresés rekurzívan, részvektorok nélkül 1. if alsó > felsõ then 2. KIVÉTEL "nincs ilyen értékû elem" 4. középsõ [(alsó + felsõ) / 2] 5. if A[középsõ] = érték then 6. return középsõ 7. else if A[középsõ] > érték then 8. return BINÁRIS_KERES3(A, érték, alsó, középsõ 1) 9. else 10. return BINÁRIS_KERES3(A, érték, középsõ + 1, felsõ) 11. end if