Informace níže se nevztahují k současnému semestru.
Úlohy na procvičení
Doporučuju zkusit si minimálně úlohy 1, 7 a 12.
U úloh, kde máte naprogramovat funkci pro práci s polem, stačí, když ji naprogramujete pro pole čísel (int[]).
- Napište funkci
Contains, která dostane pole a prvek a má rozhodnout, jestli prvek v poli je. Zkuste funkci napsat bez použití existujících metod jakoArray.IndexOfa podobných. - Napište funkci
IndexOf, která dostane pole a prvek a vrací první pozici prvku v poli (případně-1, pokud tam není). - Napište funkce
AllIndicesOf, která dostane pole a prvek a vrací všechny pozice prvku v poli jako pole/list (pokud tam není, vraťte prázdné pole/list). - Napište funkci, která vytvoří nové pole/list s prvky pouze ze sudých pozic zadaného pole.
- Napište funkci, která spočítá prefixové součty pro zadané pole.
- Napište funkci, která ověří, že textový řetězec je palindrom (čte se stejně zepředu i zezadu).
- Napište funkci, která připojí (concatenate) dvě pole za sebe (tedy vyrobí nové pole, jehož délka je součet délek zadaných polí a prvky jsou nejprve z prvního a pak z druhého pole).
- Napište funkci, která udělá merge dvou setřízených polí (tedy v lineárním čase vyrobí setřízené pole s prvky z obou vstupních polí).
- Napište funkci, která udělá rotaci pole o
kpozic. To znamená, že prvníchkprvků se přesune na konec pole. Např. rotace[1,2,3,4,5,6]o 2 je[3,4,5,6,1,2]. Zkuste to bez vytvoření nového pole (tzv. “in place”). - Napište program, který vypíše seznam slov s obdélníkovým rámečkem. Např. pro slova
["Hello", "World", "in", "a", "frame"]máte vypsat********* * Hello * * World * * in * * a * * frame * ********* - Implementujte libovolný sort (např. select, insert, nebo bubble).
- Napište program, který provede frekvenční analýzu textu. Program dostane textový řetězec (nemusíte ho číst ze vstupu, stačí si vytvořit proměnnou s nějakým kusem textu) a pro každé unikátní slovo v textu spočítá, kolikrát se dané slovo v textu vyskytuje. Například pro vstup:
"Lorem ipsum dolor, ipsum sit."by výstup mohl vypadat takto:Nápověda: použijteLorem: 1 ipsum: 2 dolor,: 1 sit.: 1Dictionary. Pro začátek stačí text dělit podle mezer (text.Split()), interpunkci můžete ignorovat (nechat součástí slov jako v příkladu výše). Až to budete mít, můžete se zamyslet, jak se interpunkce zbavit (například vám může pomocttext.Split(' ', ',', '.')).
Učební výstupy
Učební výstupy podávají zhuštěný souhrn základních konceptů a dovedností, které byste měli umět vysvětlit a/nebo použít po každém cvičení.
- pracovat v C# s textovými řetězci (
string)- znát základní metody (např.
IndexOf,Split)
- znát základní metody (např.
- pracovat v C# s poli (
Array)- projít pole po prvcích
- zjistit délku pole
- znát základní metody (např.
Array.IndexOf,Array.Sort) - umět definovat vícerozměrné pole (např.
int[,])
- použít v C# základní datové struktury, které už znáte z Pythonu
List– seznam (list)Dictionary– slovník (dict)Stack– zásobníkQueue– fronta