midterm2019

Podobné dokumenty
midterm2014_1

Microsoft Word - Zaver.pisomka_januar2010.doc

História

enum

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

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č

Microsoft Word - skripta3b.doc

Metódy dokazovanie v matematike 1 Základné pojmy Matematika exaktná veda vybudovaná DEDUKTÍVNE ZÁKLADNÉ POJMY základy každej matematickej teórie sú in

PowerPoint Presentation

DediĊnosť

Microsoft Word - Transparencies03.doc

Informačné technológie

(ıkolské kolo-PYT)

Microsoft Word - 06b976f06a0Matice - Uzivatelska Dokumentacia

Microsoft Word - Diskusia11.doc

Identity Lifecycle Management

Snímka 1

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

Prehľad matematiky I. ROZDELENIE ČÍSEL 1. Prirodzené N: 1, 2, 3, 4,... a. kladné: 8; 6,3; 5; Celé Z:..., 3, 2, 1, 0, 1, 2, 3... b. záporné: 3;

Čí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

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

Identity Lifecycle Management

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

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

1

Matematika 2 - cast: Funkcia viac premenných

Hardwarové prerušenie Nasledujúci kód ukazuje inštaláciu obsluhy časovača vrátane jeho inicializácie // inicializace časovače, přerušení každou milise

Microsoft Word - Priloha_1.docx

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

Metódy násobenie v stredoveku

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

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

Microsoft Word - Argumentation_presentation.doc

Matematický model činnosti sekvenčného obvodu 7 MATEMATICKÝ MODEL ČINNOSTI SEKVENČNÉHO OBVODU Konečný automat predstavuje matematický model sekvenčnéh

III. Diferenciálny počet funkcie viac premenných (Prezentácia k prednáškam, čast B) Matematická analýza IV (ÚMV/MAN2d/10) RNDr. Lenka Halčinová, PhD.

Príklad 1 Obtiažnosť: ľahká Opravovateľ: 1 Traja kamaráti majú spolu 30 rokov. Koľko budú mať spolu o 5 rokov? Príklad 2 Obtiažnosť: ľahká Opravovateľ

Identity Lifecycle Management

Ú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

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

Microsoft Word - FRI”U M 2005 forma B k¾úè.doc

Inteligentné rozhodovacie systémy Heuristické prehľadávanie SP Október, 2018 Katedra kybernetiky

(Microsoft Word Zadanie na s\372\235a\236 KROS DESIGN AWARD .doc)

Paralelné algoritmy, cast c. 3

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

Microsoft Word - Final_test_2008.doc

Operačná analýza 2

Riesenie_zasielkovna

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

30435_M_Pracovny.indd

Zobrazenie čísiel v počítači Celé nezáporné čísla - čísla bez znamienka dvojková sústava iné používané sústavy - šestnástková a osmičková BCD kódovani

Microsoft Word - Algoritmy a informatika-priesvitky02.doc

Microsoft Word - zapis-predmetov-AiS

Pracovný postup pre vypĺňanie údajov elektronického formulára IŠIS pre spravodajskú jednotku 1

Slide 1

Pokrocilé spracovanie obrazu - Fourierová transformácia

03_ControlFlow.dvi

STRUČNÝ NÁVOD KU IP-COACHU

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

Microsoft Word - mnohouholnik.doc

Microsoft PowerPoint - OOP_prednaska_10.pptx

Deň otvorených dverí BVS, a

PYTAGORIÁDA

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

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

PowerPoint Presentation

K S P Korešpondenčný seminár z programovania XXXIV. ročník, 2016/17 Katedra základov a vyučovania informatiky FMFI UK, Mlynská Dolina, Bratisla

Identity Lifecycle Management

prijimacky 2014 MAT 4rocne ver A.doc

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

Objektovo orientované programovanie

PowerPoint-Präsentation

Preco kocka stací? - o tom, ako sú rozdelené vlastné hodnoty laplasiánu v limite, ked sú velké

Paralelné algoritmy, cast c. 3

Úvod do lineárnej algebry Monika Molnárová Prednášky 2006

Microsoft Word - typ_S_1_Priklad.doc

Priebeh funkcie

Kolmogorovská zložitost

gazdikova

Úrad pre dohľad nad zdravotnou starostlivosťou Žellova 2, Bratislava Dátové rozhranie pre externý subjekt MV SR Strana 1 z 10 Dátové rozhranie

A 1

MediatelYext

eKasa

Paralelné algoritmy, cast c. 2

Úrad pre dohľad nad zdravotnou starostlivosťou Žellova 2, Bratislava Dátové rozhranie pre externý subjekt FR SR Strana 1 z 11 Dátové rozhranie

Microsoft PowerPoint - Prog_p08.ppt

Microsoft Word - prechod_euro_prolpo.doc

Finančné riaditeľstvo Slovenskej republiky 12/ORP/2019/IM Postup pre overenie pravosti pokladničného dokladu Informácia je určená pre subjekty (zákazn

STRUČNÝ NÁVOD KU IP-COACHU

Ďalšie vlastnosti goniometrických funkcií

SK MATEMATICKA OLYMPIADA 2010/ ročník MO Riešenia úloh domáceho kola kategórie Z4 1. Doplň do prázdnych políčok čísla od 1 do 7 každé raz tak,

Výnimky

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

M59dkZ9ri10

1)

User:Andrej Sedlacek

Operačná analýza 2

Klasická metóda CPM

Prepis:

Midterm 2019 Meno a priezvisko: obsahuje 5 príkladov, spolu 6+5+5+5+6 = 27 bodov 1) [6 bodov] Prvočíselný Prvočísel je nekonečne veľa, elegantný Euklidov dôkaz sporom hovorí: Ak by ich bolo konečne veľa, tak nech sú to p 1, p 2,..., p n, tak potom ich súčin plus jedna p 1*p 2*...*p n + 1 nie je deliteľný žiadnym z p i (lebo zvyšok po delení je 1), ergo, je to prvočíslo, alebo existuje nejaké iné-nespomenuté prvočíslo, ktoré ho delí. A to je spor, a preto je prvočísel NEKONEČNE veľa... Nič menej, túto Euklidovu historku nepotrebujete k riešeniu príkladu, poslúžila len ako motivácia na príklad. Vašou úlohou je napísať program, ktorý nájde koľko prvých prvočísel p i treba vynásobiť, aby ich súčin plus jedna NEBOLO prvočíslo, a teda bolo zložené číslo. K cieľu vás snáď dovedú pomocné úlohy: a) [1 bod] Definujte metódu public static boolean isprime(long n), ktorá zistí o čísle n, či je prvočíslo. Predopokladajte, že n > 0, a 1 nie je prvočíslo! b) [2 body] Definujte statickú metódu public static List<Long> primes(long n), ktorá vráti zoznam prvých n prvočísel. Predopokladajte, že n > 0. c) [2 bod] Napíšte kód, ktorý nájde najmenšie n také, že p 1*p 2*...*p n + 1 je zložené, vypíše n a súčin+1. d) [1 bod] Mersennove prvočíslo je prvočíslo tvaru 2 p -1, v BiLandii sú to samé jednotky. Ak p nie je prvočíslo, tak 2 p -1, nie je prvočíslo (bez dôkazu, ten si nájdete po midterme). Ak ale p je prvočíslo, tak 2 p -1, nemusí byť prvočíslo. Napíšte kód, ktorý nájde najmenšie prvočíslo p také, že 2 p -1 je zložené číslo. Hint: v oboch prípadoch vystačíte s typom long. Ak náhodou neviete, ako sa slušne počíta 2 p, tak pozor, Math.pow(double a, double b) vráti a b, ale je to double. riešenia príkladu 1 píšte na tento list (aj z druhej strany) alebo si vypýtajte ďalší list

2) [5 bodov] Stromový Trieda Node definuje uzol stromu, ktorý s číslom obsahuje podstromy pre všetky vlastné delitele tohoto čísla number. Vlastné delitele n sú kladné čísla menšie ako n, ktoré delia n bez zvyšku. Takže, vlastné delitele 24 sú 1,2,3,4,6,8,12. Uzol s hodnotou 24 má 7 podstromov pre 7 vlastných deliteľov, na poradí v zozname divisors nezáleží. Číslo 1 nemá vlastné delitele, preto zoznam podstromov je divisors prázdny, obr. dole. public class Node { Integer number; List<Node> divisors; public Node(Integer number, List<Node> divisors) { toto nemusíte písať } } Trieda Node má automaticky vygenerovaný konštruktor. V triede Node ďalej definujte: a) [1 bod] metódu public String tostring(), ktorá rekurzívne prevedie celý strom do reťazca, detaily formátovania nie sú rozhodujúce, príklad máte dole, b) [1 bod] konštruktor public Node(Integer n), ktorý rekurzívne vytvorí strom deliteľov pre n. c) [1 bod] metódu int depth(), ktorá vráti hĺbku stromu. Hĺbka vrchola, ktoré obsahuje 1 je 0. d) [2 body] metódu Map<Integer, Integer> dict(), ktorá vráti zobrazenie/slovník/frekvenčnú tabuľku, ktorý deliteľ sa v strome koľkokrát nachádza. Na obrázku máte Node(24), v ktorom sa nachádza číslo 1...20x, číslo 2...8x, číslo 3...4x, a t.ď. Toto zobrazenie musí byť utriedené podľa kľúča. Príklady: Node(2)= Node(2,[Node(1,[])]) Node(2).depth()= 1 Node(2).dict()= {1=1, 2=1} Node(6)= Node(6,[Node(1,[]), Node(2,[Node(1,[])]), Node(3,[Node(1,[])])]) Node(6).depth()= 2 Node(6).dict()= {1=3, 2=1, 3=1, 6=1} Node(24)= Node(24,[ Node(1,[]), Node(2,[Node(1,[])]), Node(3,[Node(1,[])]), Node(4,[Node(1,[]), Node(2,[Node(1,[])])]), Node(6,[Node(1,[]), Node(2,[Node(1,[])]), Node(3,[Node(1,[])])]), Node(8,[Node(1,[]), Node(2,[Node(1,[])]), Node(4,[Node(1,[]), Node(2,[Node(1,[])])])]), Node(12,[Node(1,[]), Node(2,[Node(1,[])]), Node(3,[Node(1,[])]), Node(4,[Node(1,[]), Node(2,[Node(1,[])])]), Node(6,[Node(1,[]), Node(2,[Node(1,[])]), Node(3,[Node(1,[])])])])]) Node(24).depth()= 4 Node(24).dict()= {1=20, 2=8, 3=4, 4=3, 6=2, 8=1, 12=1, 24=1} Node(25)= Node(25,[Node(1,[]), Node(5,[Node(1,[])])]) Node(25).depth()= 2 Node(25).dict()= {1=2, 5=1, 25=1} riešenia príkladu 2 píšte na tento list alebo si vypýtajte ďalší list

3) [5 bodov] a) Tento kód for(int i = 0; i < s.length; i++) { for(int j = 0; j < s[i].length; j++) { System.out.print(s[i][j]); } } skončí výpisom reťazca 123456789 a chybou takto 123456789Exception NullPointerException Modré je výstup cez System.out.print do out, červené je chyba/výnimka do System.err. Definujte premennú s a inicializujte tak, aby k popísanej chybe došlo presne podľa výstupu. b) Tento kód System.out.println(s1 == s2); System.out.println(s1.equals(s2)); System.out.println(a[0].equals(a[1])); System.out.println(a[1].equals(a[0])); skončí výpisom: false true false a chybou takto: Exception java.lang.nullpointerexception Definujte a inicializujte premenné s1, s2, a tak, aby k popísanej chybe došlo. c) Tento kód vypíše dva riadky Integer[] a = {1}; Integer[][] b = {a,a}; Integer[][] c = (Integer[][])b.clone(); b[0][0] = 99; System.out.printf ("%d %d %d %d\n", a[0], b[1][0], c[0][0], c[1][0]); System.out.println( a[0] +b[1][0] +c[0][0] +c[1][0]); Aké budú vypísané riadky? d) Definujte dve triedy Pes a Macka tak, aby ste vedeli vytvoriť dvojprvkové pole s inštanciami tried Pes a Macka. Ak to ide, vytvorte také pole. Ak to nejde, napíšte NEEXISTUJE. e) Definujte triedu Zajac tak, aby posledný riadok vypísal 1: HashSet<Zajac> pp = new HashSet<>(); pp.add(new Zajac()); pp.add(new Zajac()); System.out.println(pp.size()); riešenia príkladu 3 píšte na tento list, aj zozadu, alebo si vypýtajte ďalší list

4) [5 bodov] Priatelia V triede Friends sú priatelia reprezentovaní v dátovej štruktúre Map<String, Set<String>> friends, teda k menu je množina jeho priateľov. Tá môže byť prázdna (Set.of()), ale nemôže to byť null. Zobrazenie friends je vlastne popis grafu priateľstiev, kde vrcholy grafu sú mená - osoby, a orientované hrany smerujú od osoby k jej priateľom. Priateľstvo je nesymetrická relácia, a sú takí, čo nikoho nemajú... A už aj na obrázku, aj v príklade vidíte, že graf má/môže mať cyklus (po šípkach Palo->Jano->Palo). a) [2 body] Definujte metódu public Set<String> reflexive(), ktorá vráti množinu samoľúbich priateľov, teda takých, čo sú sami sebe priateľmi. b) [3 body] Definujte metódu public Set<String> transitive(string s), ktorá vráti množinu, do ktorej patrí osoba s, jeho priatelia, priatelia priateľov, atd. Teda tranzitívny uzáver priateľov vstupného parametra s. Príklad: friends = Map.of("Jano", Set.of("Palo", "Fero"), "Palo", Set.of("Jano"), "Nobody", Set.of(), "Jana", Set.of("Palo", "Jana"), "Fero", Set.of("Jana"), "Ignac", Set.of("Fero", "Palo", "Jano", "Jana")); Friends fr = new Friends(); fr.reflexive() [Jana] jediná Jana má seba vo svojich priateľoch fr.transitive("jano") [Palo, Jana, Jano, Fero] pozri obrázok fr.transitive("ignac") [Palo, Ignac, Jana, Jano, Fero] Jano Palo Ignac Jana Fero Nobody riešenia príkladu 4 píšte na tento list, aj zozadu, alebo si vypýtajte ďalší list

5) [6 bodov] Streamový a) [1bod] Nájdite aspoň jedno číslo patriace do tohoto zoznamu: IntStream.range(2,30).filter(n -> IntStream.range(2,n).filter(i->n%i == 0).sum() == 0).boxed().collect(Collectors.toList()) V zozname sa nachádza číslo:... b) [1bod] Koľko prvkov má výsledná množina. Pozor, pýtame sa na množinu, nie zoznam? Stream.of(1,2,3).flatMap(i -> Stream.of(3,2,1).map(j -> i*j)).collect(collectors.toset()) Počet prvkov:... c) [1bod] Koľko je IntStream.range(0,100).map(i -> i*6).filter(i -> i % 3 == 0).count() ==...? IntStream.range(0,100).map(i -> i*3).filter(i -> i % 6 == 0).count() ==...? Bez použitia for/while-cyklu definujte usporiadaný zoznam typu List<Integer> prirodzených čísel menších ako MAX (použite ako parameter, napr. int MAX = 1000), ktoré: d) [1bod] v desiatkovom zápise končia aspoň dvomi deviatkami, napr. 3999. e) [1bod] v desiatkovom zápise končia práve dvomi deviatkami, napr. 399, ale nie 3999 ani 19. f) [1bod] v dvojkovom zápise sú to palindromy, napr. 5, alebo 7. Hint: akisto viete (a my vás nechceme nachytať), že IntStream.range(0,100) je stream čísel 0, 1,..., 99, ale 100 tam nepatrí,.boxed() je len konverzia z IntStream do Stream<Integer>.sorted() utriedi Stream<Integer> Integer.toBinaryString prevedie do dvojkovej, StringBuffer.reverse zrkadlovo otočí StringBuffer riešenia príkladu 5 píšte na tento list (aj z druhej strany) alebo si vypýtajte ďalší list