====== Domácí úkol 4 - algoritmy ====== ===== Příklady: ===== **ÚKOL A:** Napište program obsahující metodu, která určí, kolikrát se v zadaném čísle vyskytují jednotlivé číslice. Výstupem bude pole setříděné podle počtu výskytů jednotlivých číslic. //Příklad:// číslo: 4754134201 {{ :courses:a0b36pri:teacher:pelikano:vyskyt_cisl.jpg |}} **počet bodů:** 5 ---- **ÚKOL B:** Napište program, který najde průnik dvou množin. Množiny představují dvě jednorozměrná pole s celými čísly. Výsledkem programu bude jednorozměrné pole obsahující čísla vyskytující se v obou množinách. Program bude obsahovat následující metody: metodu pro načtení pole, pro výpis pole a metodu, která bude vracet jednorozměrné pole (průnik), ve kterém budou uloženy hodnoty společné pro obě vstupní pole. Množiny je vhodné před hledáním společných prvků setřídit. //Příklad:// * množina 1: {7, 4, 15, 2, 12, 5} * množina 2: {8, 7, 20, 12}, * průnik: {7,12} **počet bodů:** 6 ---- **ÚKOL C:** Napište program, který v matici přerovná pořadí řádek podle n-tého prvku v řádce. První řádek v nové matici bude řádek s nejmenším prvním prvkem v řádku, poslední řádek v nové matici bude řádek s největším prvním prvkem v řádku. Program bude obsahovat následující metody: metodu pro načtení matice, pro výpis matice a metodu, která bude vracet setříděnou matici dle výše uvedeného pravidla. //Příklad:// seřazení podle 2. sloupce: {{ :courses:a0b36pri:teacher:pelikano:radk_seraz1.jpg |}} **počet bodů:** 8 ---- **ÚKOL D:** Napište program, který vytvoří čtvercovou matici o velikosti m, symetrickou podle diagonály. Program bude obsahovat následující metody: metodu pro načtení množiny hodnot typu int do dvourozměrného pole (trojúhelníková matice), proceduru pro výpis zadaného dvourozměrného pole, metodu vytvářející symetrickou matici. //Příklad:// {{ :courses:a0b36pri:teacher:pelikano:symetr_mat1.jpg |}} **počet bodů:** 4 ---- **ÚKOL E:** Napište program, který zjistí v jmenném seznamu (pole textových řetězců -prvky typu String)výskyt hledaného jména.Seznam nejpve setřiďte dle abecedy a pro vyhledání požadovaného jména použijte rekurzivní algoritmus binárního vyhledávání. Výsledkem metody vyhledávání bude hodnota typu boolean (true - nalezeno, false - nenalezeno). Seznam jmen a hledané jméno zadává uživatel. Jednotlivé podproblémy programu (třídění, hledání atd.) řešte v samostatných metodách. //RADA:// pro pojmenování položek seznamu použijte jen znaky základní ASCII sady (tzn. nepoužívat např. "české" znaky - č, á, ě, ř atd.). //Příklad:// * Vstup: String[] seznam = {"kun", "kocka", "slepice", "ovce", "pes", "husa"}; * hledane_jmeno: "pes", výsledek: true * hledane_jmeno: "krysa", výsledek: false **počet bodů:** 5 ----