História

Podobné dokumenty
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

PowerPoint Presentation

midterm2019

Identity Lifecycle Management

midterm2014_1

Snímka 1

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

03_ControlFlow.dvi

NÁVRH UČEBNÝCH OSNOV PRE 1

Algoritmizácia a programovanie - Príkazy

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č

Identity Lifecycle Management

PowerPoint Presentation

Microsoft Word - Algoritmy a informatika-priesvitky02.doc

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

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

Identity Lifecycle Management

DediĊnosť

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

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

Výnimky

User:Andrej Sedlacek

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

Identity Lifecycle Management

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

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

Objektovo orientované programovanie

Microsoft Word - 06b976f06a0Matice - Uzivatelska Dokumentacia

PowerPoint Presentation

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

s sol

Microsoft Word - Transparencies03.doc

Prístup a Nastavenie pre KOMPAKT HOSTING

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

Konkurentné programovanie

Snímka 1

Microsoft Word - prirucka_katedry_nova

Funkcie viac premenných

CviĊenie z PTS

Microsoft PowerPoint - OOP_prednaska_10.pptx

Obsah tejto príručky Microsoft Prechod na program Access 2010 z programu Access 2003 Vzhľad programu Microsoft Access 2010 sa výrazne odlišuje od prog

MO_TČOZ_TLY_2018_2019

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

Microsoft PowerPoint - Prog_p08.ppt

PowerPoint Presentation

1

MO_pred1

Úvodná prednáška z RaL

Návod na vytvorenie kvalifikovaného elektronického podpisu prostredníctvom občianskeho preukazu s čipom Dátum zverejnenia: Verzia: 1 Dátu

Operačná analýza 2

Aktion.NEXT Novinky vo verzii 1.9

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

Ú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

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

Olympiáda v informatike ročník (2012/2013) zadania domáceho kola kategórie A a B Informácie a pravidlá Pre koho je súťaž určená? Kat

INTERNET BANKING Ako zrealizovať hromadný prevod VŠETKO, ČO JE MOŽNÉ with.vub.sk, Bank of

Teória pravdepodobnosti Zákony velkých císel

Riesenie_zasielkovna

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

Spustenie založenej VM mimo vmware ESX

O možnosti riešenia deformácie zemského povrchu z pohladu metódy konecných prvkov konference pro studenty matematiky

Konkurentné programovanie

Snímka 1

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í

list k updatu

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,

Obsah 1 Úvod Predhovor Sylaby a literatúra Základné označenia

Agenda záverečnej práce pedagóg Celá agenda týkajúca sa záverečnej práce je dostupná v obrazovke Záverečná práca (menu Agenda pedagóga -> Záverečné pr

Matej Kendera - PDF, word, lucene, java

PowerPoint Presentation

SAEAUT SNMP OPC Server

Používateľská príručka POUŽÍVATEĽSKÁ PRÍRUČKA Generátor XML dávok pre Informačný systém kontrolných známok z MS Excel šablóny Dátum: Verzia

9. kapitola Maticová algebra II systém lineárnych rovníc, Frobeniova veta, Gaussova eliminačná metóda, determinanty 1. Systém lineárnych rovníc Systém

Metódy násobenie v stredoveku

PowerPoint Presentation

MATEMATICKÁ OLYMPIÁDA NA STREDNÝCH ŠKOLÁCH 54. ročník, školský rok 2004/2005 Zadania úloh 3. kola kategórie P 1. súťažný deň Na riešenie úloh máte 4.5

Praktické paralelné programovanie v jazykoch C# 4.0 a C++

Prenosový kanál a jeho kapacita

Generovanie viacstavových modelov a ich riešenie v Maxime 1 Jozef Fecenko Abstrakt Cieľom príspevku je prezentovať zdrojový kód v open source systéme

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

eKasa

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

Registrácia používateľa Portálu finančnej správy -1/18-

Paralelné algoritmy, cast c. 3

Ako v programe zaúčtovať úver, ktorý bol poskytnutý bankou a suma úveru bola pripísaná na podnikateľský bankový účet?

Microsoft Word - navrh-na-tvvp-matematika-pre-tretiakov-bs

Obsah 1 Úvod Predhovor Sylaby a literatúra Základné označenia

Microsoft Word prist_prava_ Popadic.doc

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

Klasická metóda CPM

Teritoriálna stabilita súčasných štátov stredovýchodnej a juhovýchodnej Európy

Microsoft Word - Priloha_1.docx

Zakúpili sme mobilný telefón, ktorý budeme splácať v mesačných splátkach spolu s poplatkom za mobilné služby. Prvá faktúra bola vystavená s rozpisom n

Microsoft Word - Novinky_2012_2.doc

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

(Manu\341l)

Prepis:

Fakulta riadenia a informatiky ŽU Množiny

Pojmy zavedené v 8. prednáške N-rozmerné polia Dvojrozmerné polia matica definícia typ[][] premenna inicializácia new typ[pocetriadkov][pocetstlpcov] práca s prvkami premenna[riadok][stlpec] Pole polí inicializácia new typ[pocetriadkov][] inicializácia prvkov pole[riadok] = new typ[pocetstlpcov] 1

Pojmy zavedené v 8. prednáške vnorené cykly this sekcie rozhrania verejné ľubovoľný objekt v okolí neverejné len objekt vo svojom súkromí 2

Cieľ základná práca so súbormi množinové operácie v jazyku Java projekt: Sudoku 3

Sudoku 4

Sudoku metóda nacitajzadanie public void nacitajzadanie() { amriezka = new int[][] { {9, 0, 0, 0, 8, 0, 0, 5, 0,... {8, 0, 2, 0, 0, 3, 0, 1, 5, {0, 1, 0, 0, 9, 0, 0, 0, 3 ; 5

Sudoku nová požiadavka Možnosť načítania zadania zo súboru Zadania stiahnuté z internetu Formát: matica čísel prvky oddelené medzerami riadky oddelené ukončením riadku 6

Súbor so zadaním 7

Práca so súbormi čítanie otvorenie súboru na čítanie postupné čítanie obsahu zatvorenie súboru zápis otvorenie súboru na zápis postupný zápis nového obsahu zatvorenie súboru 8

Práca so súbormi v jazyku Java 9

Sudoku príkazy import import java.util.scanner; import java.io.file; import java.io.ioexception; 10

Sudoku metóda nacitajzosuboru public void nacitajzosuboru(string panazov) throws IOException {... 11

Sudoku metóda nacitajzosuboru File subor = new File(paNazov); Scanner citac = new Scanner(subor); for (int riadok = 0; riadok < 9; riadok++) { for (int stlpec = 0; stlpec < 9; stlpec++) { amriezka[riadok][stlpec] = citac.nextint(); citac.close(); 12

Sudoku nová požiadavka Možnosť zapísania aktuálneho stavu riešenia do súboru Využitie knižničnej triedy java.io.printwriter Formát zhodný s formátom zadania 13

Sudoku príkazy import Využívame ďalšiu triedu, treba pridať import import java.io.printwriter; 14

Sudoku metóda zapisdosuboru public void zapisdosuboru(string panazov) throws IOException {... 15

Sudoku metóda zapisdosuboru File subor = new File(paNazov); PrintWriter zapisovac = new PrintWriter(subor); for (int[] riadok : amriezka) { for (int policko : riadok) { zapisovac.print(" " + policko); zapisovac.println(); zapisovac.close(); 16

Políčko inicializácia prázdne políčko test, či je prázdne vkladané číslo testovanie pravidiel výpis bodka alebo číslo z <1, 9> teraz inštancia triedy Sudoku presun do inštancií triedy Policko 17

Zavedenie triedy Policko 18

Políčko rozhranie 19

Políčko vnútorný pohľad 20

Policko trieda public class Policko { private int acislo; public Policko() { acislo = 0;... 21

Policko jeprazdne public boolean jeprazdne() { return acislo == 0; 22

Policko nastavcislo public void nastavcislo(int pacislo) { if (this.jeprazdne()) { acislo = pacislo; 23

Policko dajcislo public int dajcislo() { return acislo; 24

Policko tostring public String tostring() { if (this.jeprazdne()) { return "."; else { return "" + this.dajcislo(); 25

Metóda tostring automatická konverzia objektov na reťazce ak trieda nedefinuje svoju metódu tostring má automatickú vráti reťazcový identifikátor inštancie triedy System.out.print(policko); String retazec = "" + policko; 26

Sudoku trieda stará public class Sudoku { private int[][] ahraciepole;... 27

Sudoku trieda nová public class Sudoku { private Policko[][] ahraciepole;... 28

Sudoku konštruktor starý public Sudoku() { ahraciepole = new int[9][9]; 29

Sudoku konštruktor nový public Sudoku() { ahraciepole = new Policko[9][9]; for (int riadok = 0; riadok < 9; riadok++) { for (int stlpec = 0; stlpec < 9; stlpec++) { ahraciepole[riadok][stlpec] = new Policko(); 30

Sudoku vykreslimriezku stará for (int[] riadok : amriezka) { for (int policko : riadok) { if (policko == 0) { System.out.print("."); else { System.out.print(policko); System.out.println(); 31

Sudoku vykreslimriezku nová for (Policko[] riadok : amriezka) { for (Policko policko : riadok) { System.out.print(policko); System.out.println(); 32

Sudoku nová požiadavka automatické riešenie Sudoku Pridajte metódu ries, ktorá sa pokúsi vyriešiť Sudoku 33

Sudoku Najjednoduchšie automatické riešenie: Jednoduché pravidlo Ak je množina kandidátov políčka jednoprvková, môžeme kandidáta použiť ako hodnotu políčka Množina kandidátov Množina všetkých čísel, ktoré možno do políčka vpísať 34

Sudoku kandidáti políčka stĺpcoví kandidáti políčka 2,3,4, 6,9 35

Sudoku kandidáti políčka riadkoví kandidáti políčka 4,6,7, 9 36

Sudoku kandidáti políčka blokoví kandidáti políčka 4,5,6, 9 37

Množiny kandidátov Množina riadkových kandidátov pre každý riadok Množina stĺpcových kandidátov pre každý stĺpec Množina blokových kandidátov pre každý blok 38

Sudoku kandidáti políčka Platí: kandidatipolicka = stlpcovikandidati riadkovikandidati blokovikandidati 39

Sudoku kandidáti políčka 2, 3, 4, 6, 9 4, 6, 7, 9 4, 5, 6, 9 ============ 4, 6, 9 kandidáti políčka 4,6,9 40

Práca s množinami Generická trieda HashSet<TPrvok> bez usporiadania nemožnosť pristúpiť cez index možnosť prechádzať pomocou foreach 41

Trieda HashSet rozhranie 42

Matematické operácie s množinami máme množiny A, B máme prvok x 43

Prvok množiny x A if (A.contains(x))... 44

Množina je prázdna A = if (A.isEmpty())... 45

Množina A je podmnožinou B A B if (B.containsAll(A))... 46

Zjednotenie množín A a B A B C HashSet<TPrvok> C = new HashSet<TPrvok>(); C.addAll(A); C.addAll(B); 47

Prienik množín A a B A B C HashSet<TPrvok> C = new HashSet<TPrvok>(); C.addAll(A); C.retainAll(B); 48

Rozdiel množín A a B A B C A B C HashSet<TPrvok> C = new HashSet<TPrvok>(); C.addAll(A); C.removeAll(B); 49

Sudoku trieda public class Sudoku { private Policko[][] ahraciepole; private HashSet<Integer>[] ariadkovikandidati; private HashSet<Integer>[] astlpcovikandidati; private HashSet<Integer>[][] ablokovikandidati;... 50

Sudoku konštruktor public Sudoku() { ariadkovikandidati = new HashSet<Integer>[9]; astlpcovikandidati = new HashSet<Integer>[9]; ablokovikandidati = new HashSet<Integer>[3][3]; 51

Chyba generická trieda ako prvok poľa 52

Sudoku konštruktor public Sudoku() { ariadkovikandidati = new HashSet[9]; astlpcovikandidati = new HashSet[9]; ablokovikandidati = new HashSet[3][3]; 53

Varovanie 54

Sudoku konštruktor @SuppressWarnings({"unchecked") public Sudoku() { ariadkovikandidati = new HashSet[9]; astlpcovikandidati = new HashSet[9]; ablokovikandidati = new HashSet[3][3]; 55

Sudoku konštruktor pokračovanie naplnenie všetkých množín kandidátov hodnotami <1, 9> na doma 56

Práca s kandidátmi jednoduché riešenie políčka s jediným kandidátom každé políčko má trojicu množín kandidátov riadok, stĺpec, blok kandidáti políčka prienik trojice poveríme políčko 57

Rozšírenie rozhrania triedy Policko 58

Sudoku konštruktor pokračovanie for (int riadok = 0; riadok < 9; riadok++) { for (int stlpec = 0; stlpec < 9; stlpec++) { ahraciepole[riadok][stlpec] = new Policko( ariadkovikandidati[riadok], astlpcovikandidati[stlpec], ablokovikandidati[riadok/3][stlpec/3] ); 59

Policko trieda public class Policko { private HashSet<Integer> ariadkovikandidati; private HashSet<Integer> astlpcovikandidati; private HashSet<Integer> ablokovikandidati; private int acislo; 60

Policko konštruktor { public Policko( 61 acislo = 0; HashSet<Integer> pariadkovikandidati, HashSet<Integer> pastlpcovikandidati, HashSet<Integer> pablokovikandidati) ariadkovikandidati = pariadkovikandidati; astlpcovikandidati = pastlpcovikandidati; ablokovikandidati = pablokovikandidati;

Policko dajjedinehokandidata public Integer dajjedinehokandidata() { HashSet<Integer> kandidati = new HashSet<Integer>(); kandidati.addall(ariadkovikandidati); kandidati.retainall(astlpcovikandidati); kandidati.retainall(ablokovikandidati); 62

Policko dajjedinehokandidata if (kandidati.size() == 1) { for (Integer cislo: kandidati) { return cislo; return null; 63

Sudoku ries(1) public void ries() { for (Policko[] riadok : ahraciepole) { for (Policko policko : riadok) { // riesenie pre policko 64

Sudoku ries(2) if (policko.jeprazdne()) { Integer kandidat = policko.dajjedinehokandidata(); if (kandidat!= null) { policko.nastavcislo(kandidat); 65

Kandidáti ako trieda 66

Kandidati rozhranie 67

Kandidáti konštruktor public Kandidati() { akandidati = new HashSet<Integer>(); for (int i = 1; i <= 9; i++) { akandidati.add(i); 68

Kandidáti dajjednehokandidata public int dajjednehokandidata() { for (Integer cislo: akandidati) { return cislo; return 0; 69

Ďakujem za pozornosť