Informace níže se nevztahují k současnému semestru.
Úlohy na procvičení
Doporučuju zkusit si minimálně úlohy 1, 6 a 11.
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.IndexOf
a podobných. - Napište funkci
IndexOf
, která dostane pole a prvek a vrací pozici prvku v poli (případně-1
, pokud tam není). - 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
k
pozic. To znamená, že prvníchk
prvků 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.: 1
Dictionary
. 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