midterm2014_1

Podobné dokumenty
midterm2019

enum

História

Identity Lifecycle Management

DediĊnosť

Identity Lifecycle Management

Microsoft Word - Zaver.pisomka_januar2010.doc

Klasická metóda CPM

PowerPoint Presentation

Identity Lifecycle Management

Microsoft Word - skripta3b.doc

Funkcionálne programovanie Cvičenie 9 Funkcionálne programovanie v Jave Sergej Chodarev 22. november 2017 Technická Univerzita v Košiciach

Tue Oct 3 22:05:51 CEST Začiatky s jazykom C 2.1 Štruktúra programu Štruktúra programu by sa dala jednoducho popísať nasledovnými časťami, kto

Analýza sociálnych sietí Geografická lokalizácia krajín EU

Úroveň strojového kódu procesor Intel Pentium Pamäťový operand Adresovanie pamäte Priama nepriama a indexovaná adresa Práca s jednorozmerným poľom Pra

Objektovo orientované programovanie

Microsoft Word - Transparencies03.doc

Relačné a logické bázy dát

NÁVRH UČEBNÝCH OSNOV PRE 1

Výnimky

PowerPoint Presentation

PowerPoint Presentation

03_ControlFlow.dvi

Priebeh funkcie

Vnútorná reprezentácia údajových typov

A 1

8 Cvičenie 1.1 Dokážte, že pre ľubovoľné body X, Y, Z platí X + Y Z = Z + Y X. 1.2 Dokážte, že pre ľubovoľné body A, B, D, E, F, G afinného priestoru

STRUČNÝ NÁVOD KU IP-COACHU

Pokrocilé spracovanie obrazu - Fourierová transformácia

Konkurentné programovanie

Vzorové riešenia úlohy 4.1 Bodovanie Úvod do TI 2010 Dôvod prečo veľa z Vás malo málo bodov bolo to, že ste sa nepokúsili svoje tvrdenia dokázať, prič

Siete vytvorené z korelácií casových radov

Microsoft Word - Argumentation_presentation.doc

PowerPoint Presentation

Databázy (1) - Prednáška 03

Algoritmizácia a programovanie - Príkazy

Podpora metód operačného výskumu pri navrhovaní systému liniek doc. RNDr. Štefan PEŠKO, CSc. Katedra matematických metód, Fa

User:Andrej Sedlacek

(Microsoft Word - Registr\341cia \372\350tu Hik-Connect.docx)

Informačné technológie

Paralelné algoritmy, cast c. 3

Paralelné algoritmy, cast c. 3

Snímka 1

Microsoft PowerPoint - OOP_prednaska_10.pptx

Slovenská komisia Matematickej olympiády FMFI UK, Mlynská dolina, Bratislava 51. ročník matematickej olympiády Riešenia úloh I. kola kategórie

Microsoft Word - Príloha P2 - zadania pracovných listov pre 6. ročník

Identity Lifecycle Management

Operačná analýza 2

12Prednaska

ECDL Syllabus V50 SK-V01

GEODETICKÝ A KARTOGRAFICKÝ ÚSTAV BRATISLAVA Chlumeckého 4, Bratislava II Obsah 1. Export údajov ZBGIS do CAD formá

1

STRUČNÝ NÁVOD KU IP-COACHU

Microsoft Word - mnohouholnik.doc

Súkromné gymnázium, Česká 10, Bratislava INFORMATIKA

Algoritmizácia a programovanie - Štruktúrované údajové typy

Microsoft Word - mpicv11.doc

Úvod do mobilného operačného systému ANDROID

C-Monitor WIN klient pre verziu 2.8

Prihlásenie sa do systému AIS2 Pomôcka pre študentov Odoslanie záverečnej práce cez AiS2 Spustite si internetový prehliadač a do riadku s adresou napí

Telesá Príklady: 1) Vypočítajte objem a povrch pravidelného štvorbokého ihlana ak a = 10 cm s uhol ACV = 70 2) Kváder má rozmery a = 4 cm, b = 3 cm, c

PowerPoint Presentation

Metrické konštrukcie elipsy Soňa Kudličková, Alžbeta Mackovová Elipsu, ako regulárnu kužeľosečku, môžeme študovať synteticky (konštrukcie bodov elipsy

Pokrocilé programovanie XI - Diagonalizácia matíc

aplikácia do mobilého telefónu na stiahnutie digitálneho tachografu

Centrum vedecko-technických informácií, Odbor pre hodnotenie vedy, Oddelenie pre hodnotenie publikačnej činnosti Vyhľadávanie a práca so záznamami - C

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY Katedra informatiky PLATNOSŤ BERGE-FULKERSONOVEJ HYPOTÉZY PRE ŠPECIÁLNE TR

Republika Srbsko MINISTERSTVO OSVETY, VEDY A TECHNOLOGICKÉHO ROZVOJA ÚSTAV PRE HODNOTENIE KVALITY VZDELÁVANIA A VÝCHOVY VOJVODINSKÝ PEDAGOGICKÝ ÚSTAV

Microsoft Word - 06b976f06a0Matice - Uzivatelska Dokumentacia

Microsoft Word - typ_S_1_Priklad.doc

Matematika 2 - cast: Funkcia viac premenných

CviĊenie z PTS

NSK Karta PDF

Microsoft Word - Diskusia11.doc

Kolmogorovská zložitost

Čísla Nájdite všetky dvojice prirodzených čísiel, ktoré vyhovujú rovnici: 2 ( a+ b) ( a b) + 2b ( a+ 2b) 2b = 49 RIEŠENIE ( ) ( ) ( ) 2 a+ b a

Konkurentné programovanie

ŤAHÁK PRAKTICKÁ ČASŤ Prerekvizity: LINUX: WINDOWS: Inštalácia Oracle VirtualBoxu a vytvorenie virtuálneho stroja /návod nižšie/ Operačný system Window

Manuál pre nastavenie tlače z VRP elio m500 Elio m500 Manuál pre nastavenie tlače -1-

2.5. Dotyčnica krivky, dotykový kužeľ. Nech f je krivka a nech P V (f) (t.j. m P (f) 1). Ak m P (f) = r a l je taká priamka, že I P (f, l) > r, potom

Snímka 1

Microsoft Word prist_prava_ Popadic.doc

SK MATEMATICKÁOLYMPIÁDA skmo.sk 2009/ ročník MO Riešenia úloh česko-poľsko-slovenského stretnutia 1. Určte všetky trojice (a, b, c) kladných r

Metódy násobenie v stredoveku

Princípy tvorby softvéru Programovacie paradigmy

Prenosový kanál a jeho kapacita

VSDC Free Video Editor stručný návod na používanie Link na sťahovanie softvéru: K prog

Katalóg cieľových požiadaviek k maturitnej skúške

Analýza toku dát Ján Šturc Zima 2010 Kompilátory

7/1/2015 Úvod do databáz, skúškový test, max 25 bodov, 90 min

PowerPoint Presentation

I:/Konferencie/Ruzomberok 2007/Semanisinova_Ruzomberok2007.dvi

Zeszyty Naukowe PWSZ, Nowy Sącz 2013 Konštrukcie magických obdĺžnikov Marián Trenkler Faculty of Education, Catholic University in Ružomberok Hrabovsk

1. KOMPLEXNÉ ČÍSLA 1. Nájdite výsledok operácie v tvare x+yi, kde x, y R. a i (5 2i)(4 i) b. i(1 + i)(1 i)(1 + 2i)(1 2i) (1 7i) c. (2+3i) a+bi d

Prepis:

Midterm 2014 Meno a priezvisko: obsahuje 5 príkladov, spolu 31>25 bodov skupina: 1) [8 bodov] Zistite, čo počíta nasledujúca funkcia foo pre n>=0. Hint: foo(1000) = 1. static long foo(long n) { return rekurzia(n, 0); static long rekurzia(long n, long r) { if (n == 0) return r; else return rekurzia(n / 10, 10 * r + n % 10); [1 bod] Pre istotu to vyjadrite pár slovami, a že tomu rozumiete, tak vypočítajte foo(911775039) =? [1 bod] Nájdite najväčšie 3-ciferné číslo také, že foo(x) == x: [2 body] Napíšte nerekurzívnu definíciu pre funkciu rekurzia, aby počítala to isté, teda: static long nerekurzia(long n, long r) { // píšte rovno sem... Zistite, čo počíta nasledujúca funkcia goo pre n>=0. Hint: goo(13) = 11, goo(11) = 13. static long goo(long n) { long vysledok = 0; while (n!= 0) { vysledok <<= 1; vysledok += n & 1 ; n >>= 1; return vysledok; [2 body] Vyjadrite pár slovami, a že tomu rozumiete, tak vypočítajte goo(31) =? [2 bod] Nájdite najväčšie 3-ciferné číslo také, že goo(x) == x: Hint: 2^0 = 1, 1 2^1 = 2, 10 2^2 = 4, 100 2^3 = 8, 1000 2^4 = 16, 10000 2^5 = 32, 100000 2^6 = 64, 1000000 2^7 = 128, 10000000 2^8 = 256, 100000000 2^9 = 512, 1000000000 2^10 = 1024, 10000000000 riešenia príkladu 1 píšte na tento list (aj z druhej strany) alebo si vypýtajte ďalší list

2) [6 bodov] Tieto dve triedy popisujú známu implementáciu binárneho vyhľadávacieho stromu: public class BVSNode<E extends Comparable<E>> { BVSNode<E> left; E key; BVSNode<E> right; public class BVSTree<E extends Comparable<E>> { BVSNode<E> root; Pomocou týchto tried vieme vytvoriť objekt typu BVSTree<E>, ktorý však nespĺňa podmienku vyhľadávacieho stromu, t.j. že hodnoty v ľavom podstome sú <= ako vrchol a hodnoty v pravom podstrome sú > vrchol. To musí platiť pre každý vrchol. V triede BVSTree (prípadne aj BVSNode) definujte metódu boolean isbvs(), ktorá platí, ak strom spĺňa uvedenú podmienku vyhľadávacieho stromu. [3 body za efektívne riešenie, inak max. 2 body] AVL strom je taký binárny vyhľadávací strom, v ktorom hĺbky ľavého a pravého podstromu ľubovoľného vrchola sa líšia najviac o 1. Definujte v triede BVSTree metódu boolean isavl(), ktorá zistí, či strom je AVL stromom. [3 body, ak prejdete celý strom len raz, inak max. 2 body] riešenia príkladu 2 píšte na tento list alebo si vypýtajte ďalší list

3) [5 bodov = 0.5 bodu za každú správnu odpoveď] Ku každému obrázku priraďte číslo obrázku, ktorý graficky vystihuje situáciu v pamäti po vykonaní série príkazov. V prípade, že nastane chyba, napíšte CHYBA. Prečiarknutá bunka prestavuje hodnotu null. Ak taký obrázok neexistuje, napíšte NEEXISTUJE. Nedajte sa nachytať! zdroj: http://pages.cs.wisc.edu/~hasti/cs368/javatutorial/notes/java_vs.html int [] A; kód int [] A = new int [4]; int [][] A = new int[4][3]; int [][] A = new int[4][]; A[1] = new int[4]; A[3] = new int[2]; int [] B = {0,1,2,3,4,5,6,7,8,9; System.arraycopy(B,2,A,0,4); int [] B = {2,3,4; System.arraycopy(B,0,A,0,4); int [] B = {0,1,2,3,4,5,6,7,8,9; System.arraycopy(B,8,A,0,4); int [] A = {1,1,1,1; int [] B = {2,2,2; System.arraycopy(A,0,B,1,2); System.arraycopy(B,0,A,0,3); int [] B = {0,1,2,3,4,5,6,7,8,9; System.arraycopy(B,0,A,0,10); int [][] A = new int[4][3]; int [] B = {1,2,3,4,5,6,7,8,9,10; System.arraycopy(B,0,A[0],0,3); System.arraycopy(B,1,A[1],0,3); System.arraycopy(B,2,A[2],0,3); System.arraycopy(B,3,A[3],0,3); Číslo obrázku, chyba, alebo neexistuje obrázok Help: public static void arraycopy(object src, int srcpos, Object dest, int destpos, int length) Copies an array from the specified source array, beginning at the specified position, to the specified position of the destination array. A subsequence of array components are copied from the source array referenced by src to the destination array referenced by dest. The number of components copied is equal to the length argument. The components at positions srcpos through srcpos+length-1 in the source array are copied into positions destpos through destpos+length-1, respectively, of the destination array.

Obrázky (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15)

4) [5 bodov] V tomto príklade reprezentujeme orientovaný ohodnotený graf medzi mestami SR. Intuitívne, hodnota hrany je vzdialenosť z mesta do druhého mesta. Orientovaný znamená, že k hrane z A->B nemusí existovať z B->A. Najprv definujeme triedu Dvojica, ktorá popisuje cieľovú stanicu a jej vzdialenosť: public class Dvojica implements Comparable<Dvojica> { String kam; // meno mesta - cieľová stanica int vzdialenost; public Dvojica(String kam, int vzdialenost) { // konštruktor this.kam = kam; this.vzdialenost = vzdialenost; @Override public String tostring() { return "("+kam+":"+vzdialenost+")"; [1 bod] V definícii triedy Dvojica chýba metóda compareto. Doplňte ju do voľného miesta tak, aby menšia dvojica bola tá, ktorá je bližšie, t.j. má menšiu vzdialenosť. Nasledujúci kód spustíme s argumentami v príkazovom riadku java Cities BA:KE:401 NI:KE:307 NI:PP:234 PP:KE:119 PP:BA:327 KE:BA:401 BB:PP:115 NI:BB:118 kde hrany grafu sú zadané v trojiciach, vo formáte odkiaľ:kam:vzdialenosť. public class Cities { static TreeMap<String, TreeSet<Dvojica>> cudo = new TreeMap<String, TreeSet<Dvojica>>(); public static void main(string[] args) { for (String arg : args) { // arg má tvar odkiaľ:kam:vzdialenosť String[] hrana = arg.split(":"); String odkial = hrana[0]; String kam = hrana[1]; int vzdialenost = Integer.parseInt(hrana[2]); TreeSet<Dvojica> set = cudo.get(odkial); if (set == null) set = new TreeSet<Dvojica>(); set.add(new Dvojica(kam, vzdialenost)); cudo.put(odkial, set); System.out.println(cudo); výpis premennej cudo vypíše podľa Vás [označte správnu možnosť, 2 body]: 1. {[BA,BB,KE,NI,PP]=[(KE:401)],[(PP:115)],[(BA:401)],[(BB:118),(PP:234),(KE:307)],[(KE:119),(BA:327)] 2. {BB=[(PP:115)], NI=[(BB:118),(PP:234),(KE:307)], PP=[(KE:119),(BA:327)],BA=[(KE:401)],KE=[(BA:401)] 3. {BA=[(KE:401)],BB=[(PP:115)],KE=[(BA:401)],NI=[(BB:118),(KE:307),(PP:234)],PP=[(BA:327),(KE:119)] 4. {BA=[(KE:401)],BB=[(PP:115)],KE=[(BA:401)],NI=[(BB:118)],NI=[(PP:234)],NI=[(KE:307)],PP=[(KE:119)], PP=[(BA:327)] 5. {BA=[(KE:401)],BB=[(PP:115)],KE=[(BA:401)],NI=[(BB:118),(PP:234),(KE:307)],PP=[(KE:119),(BA:327)] 6. {(BA:KE:401),(NI:KE:307),(NI:PP:234),(PP:KE:119),(PP:BA:327),(KE:BA:401),(BB:PP:115),(NI:BB:118) 7. niečo ine: Napíšte kus kódu, ktorý z hodnoty premennej cudo nájde niektoré dve najvzdialenejšie mestá, v uvedenom príklade sú to KE a BA [2 body] riešenia príkladu 4 píšte na tento list, aj zozadu, alebo si vypýtajte ďalší list

5) [7 bodov] Orientovaný graf pozostáva z hrán (jednosmerných šípiek) medzi vrcholmi parametrizovateľného typu E. V celom zadaní môžete predpokladať, že graf neobsahuje cyklus. Vašou úlohou je navrhnúť vlastnú reprezentáciu grafu v triede Graf<E extends Comparable<E>>, ktorá implementuje nasledujúci interface: public interface GrafI<E extends Comparable<E>> { public void pridajhranu(e a, E b); // zapamätá si hranu z vrchola a do b [1bod] public int vystupnystupenvrchola(e a);// počet hrán vychádzajúcich z vrchola a [1bod] public HashSet<E> nasledovnici(e a);// množina vrcholov,do ktorých vedie hrana z a [1bod] public HashSet<E> komponent(e a); // množina vrcholov dosiahnuteľných z vrchola a [2body] public boolean existujecesta(e a, E b); // existuje cesta z a do b [2body] Kód, ktorý musí zbehnúť, a súvisí s obrázkom: Graf<Integer> g = new Graf<Integer>(); g.pridajhranu(1,2); g.pridajhranu(2,3); g.pridajhranu(2,4); g.pridajhranu(4,5); g.pridajhranu(4,6); g.pridajhranu(5,6); g.pridajhranu(6,3); System.out.println(g.vystupnyStupenVrchola(4)); // = 2 System.out.println(g.vystupnyStupenVrchola(3)); // = 0 System.out.println(g.nasledovnici(2)); // = [3,4] System.out.println(g.komponent(1)); // = [1, 2, 3, 4, 5, 6] System.out.println(g.komponent(4)); // = [3, 4, 5, 6] System.out.println(g.existujeCesta(1, 3)); // = true System.out.println(g.existujeCesta(5, 1)); // = false Ak metódy komponent a existujecesta implementujete tak, že fungujú aj na cyklickom grafe (t.j. existuje v ňom cyklus po orientovaných hranách), môžete získať +0.5 bodu za každú z nich. Ak však napíšete explicitne (a slovom), že vaše metódy fungujú na acyklickom grafe, tak získate za každú +1 bod, ak funguje, a -1 bod, ak nefunguje. Svet patrí odvážnym... riešenia príkladu 5 píšte na tento list, aj zozadu, alebo si vypýtajte ďalší list