Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Maticové hrátky (4 body)
- Úkolem je realizovat program, který bude hledat výskyty zadané matice v jiných zadaných maticích. Program vypíše, kolikrát se mu podařilo hledanou matici v každé jiné matici najít nebo zda je hledaná matice s prohledávanou identická.
- Vstupem programu jsou hledaná matice (co se hledá) a prohledávané matice (kde se hledá). Pro hledanou matici je zadaná výška (počet řádek), šířka (počet sloupců) a její prvky. Obsahem matice mohou být pouze celá čísla.
- Po zadání hledané matice je nejprve zadán počet prohledávaných matic a poté pro každou prohledávanou matici její rozměry (výška, šířka) a prvky.
- Výstupem programu je informace o tom, v kolika maticicích bylo provedeno hledaní podmatic a kolik matic bylo s hledanou maticí identických. Poté následuje výpis počtu výskytů hledané matice v jednotlivých prohledávaných maticích. Formát výstupu je zřejmý z ukázek níže.
- Program musí být odolný proti zadání nesprávných vstupních dat. Pokud je např. jeden z rozměrů matice zadán jako záporné číslo nebo 0, bude uživatel upozorněn a bude mu nabídnuta možnost opravy.
- Zdrojový kód strukturujte do metod a tříd. Součástí programu musí být:
- třída „Matice“ s konstruktorem „public Matice(int vyska, int sirka)“,
- třída „Matice“ musí implementovat metody:
- „public int getPocetVyskytu(Matice m)“, kde „Matice m“ je hledaná matice a výstupní hodnota „int“ udává počet výskytů „Matice m“,
- „public void setPrvek(int radek, int sloupec, int prvek)“, je metoda pro vložení prvku na pozici [radek][sloupec],
- „public boolean equals(Object obj)“, je překrytá metoda equals pro porovnání dvou matic,
- „public String toString()“, je překrytá metoda toString pro výpis matice.
- Výpis matice musí být naformátovaný takovým způsobem, aby:
- prvky v každém sloupci matice byly zarovnány vpravo,
- mezi každým prvkem na řádce matice byla minimálně jedna mezera.
- Po úspěšném zvlánutí základních testů a ověření správné funkce programu bude pomocí JUnit testů kontrolována existence a správná funkčnost výše uvedené třídy a jejích metod. Za každou chybějící nebo nesprávně fungující část bude odečten 1 bod z celkového hodnocení programu.
- Vstupní řetězec z příkladu v ukázce pro jednodušší testování:
- -1 2 3 1 2 3 4 5 6 4 2 3 1 2 3 4 5 6 4 6 1 2 3 1 2 3 4 5 6 4 5 6 1 2 3 1 2 3 4 5 6 4 5 6 2 3 1 2 3 4 5 6 3 3 1 2 0 1 2 3 4 5 6
- Ukázka práce programu:
- Zadejte velikost hledane matice (radek, sloupec):
- 2 2
- Zadejte 4 prvky matice:
- 1 2 1 2
- Zadejte pocet prohledavanych matic:
- 1
- Zadejte velikost 1. prohledavane matice (radek, sloupec):
- 4 4
- Zadejte 16 prvku matice:
- 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2
- Hledana matice:
- 1 2
- 1 2
- 1. prohledavana matice:
- 1 2 1 2
- 1 2 1 2
- 1 2 1 2
- 1 2 1 2
- ---Vysledky---
- - hledani podmatic: 1, identickych matic: 0
- 1. matice obsahuje hledanou matici 6x
- Ukázka práce programu:
- Zadejte velikost hledane matice (radek, sloupec):
- -1
- Chyba! Opakujte zadani.
- 2 3
- Zadejte 6 prvku matice:
- 1 2 3 4 5 6
- Zadejte pocet prohledavanych matic:
- 4
- Zadejte velikost 1. prohledavane matice (radek, sloupec):
- 2 3
- Zadejte 6 prvku matice:
- 1 2 3 4 5 6
- Zadejte velikost 2. prohledavane matice (radek, sloupec):
- 4 6
- Zadejte 24 prvku matice:
- 1 2 3 1 2 3 4 5 6 4 5 6 1 2 3 1 2 3 4 5 6 4 5 6
- Zadejte velikost 3. prohledavane matice (radek, sloupec):
- 2 3
- Zadejte 6 prvku matice:
- 1 2 3 4 5 6
- Zadejte velikost 4. prohledavane matice (radek, sloupec):
- 3 3
- Zadejte 9 prvku matice:
- 1 2 0 1 2 3 4 5 6
- Hledana matice:
- 1 2 3
- 4 5 6
- 1. prohledavana matice:
- 1 2 3
- 4 5 6
Add Comment
Please, Sign In to add comment