podle slibu jsem se pokusil shrnout některé knížky o C# v češtině
Miroslav Virius: C# pro zelenáče
Neokortex 2002
Dobrá základní učebnice pro čtenáře, jejichž programátorská vyspělost je o dost nižší než Vaše,
zdrojové texty příkladů na síti, v knize se však dost špatně hledá konkrétní informace, kterou právě potřebujete
John Sharp: Microsoft Visual C# 2005 krok za krokem
Computer Press 2006
Dobrá učebnice jazyka C# i jeho vývojového prostředí, zdrojové texty na přiloženém CD
Jeff Kent: Visual C# 2005 bez předchozích znalostí
Computer Press 2007
učebnice pro úplné začátečníky - i v programování
Miroslav Virius: Od C++ k C#
Kopp
Výborná knížka, která však předpokládá u čtenáře alespoň zběžnou znalost jazyka C++,
zdrojové texty na síti
Výsledky zápočtové písemky (písemku musí opakovat studenti Bělánek, Dzurenko, Hrůza, Jirkal a Mejzlík),
písemka bude 10. března od 17:30.
Dohodli jsme se, že zápočtové programy (ve stavu, abyste Vy s nimi už byli spokojeni) je nutné dotat nejpozději do 18.března
Úloha o dominanci šachovnice (se zakázanými políčky) věží
Nalezení nejdelšího symetrického úseku pole délky N - kvadratický algoritmus,
zkuste najít lineární
Zapsání čísel 0..K pomocní co nejmenšího počtu cifer C a zadaného repertoáru permutací
Na příště:
jazyk C# (z přednášky)
pokud to půjde, zkuste napsat program, který bude řešit úlohu o kinu
Na vstupu je textový soubor rozdělený mezerami a konci řádek na slova. Vyskytují se v něm jen písmena anglické abecedy. Vytvořte výstupní textový soubor, který bude formátován (slova, řádky) přesně stejně jako soubor vstupní a při tom v něm budou provedeny následující „cenzurní zásahy“ : Každé zcenzurované slovo bude nahrazeno stejným počtem hvězdiček. Zcenzurována budou slova, která mají následující vlastnost V1.
V1: Pokud některé z následujících N slov obsahuje sudý výskyt písmen písmena o (ať už velkého či malého), kde je N je číslo přečtené z klávesnice.
Naprogramujte tak, aby šlo snadno zaměnit kritérium V1 za V2 resp. nějaké jiné.
V2: Pokud některé z následujících N slov končí na písmena "ova"
Vstupní soubor smíte číst jen jednou, můžete předpokládat, že obsahuje méně než 500 slov.
Vytvořte program, který vytiskne frekvenční tabulku obsahující N nejčastěji se vyskytujících slov v zadaném vstupním souboru uspořádanou podle počtu jejich výskytů. Slovem rozumíme libovolnou posloupnost písmen anglické abecedy, slova jsou oddělena mezerami resp. konci řádků. Pro účely porovnávání slov zanedbáváme rozdíl mezi malými a velkými písmeny ( považujeme tedy slova Adela, adela, aDELa a ADELa za stejná). Můžete předpokládat, že N je nejvýše 100 a že ve vstupním souboru je nejvýše 1000 různých slov. Příklad možného výstupu pro N=5 :
a 123
ale 54
br 54
klasicky 27
co 13
Vytvořte (objektový) návrh programů řešících jednotlivé úkoly,
nejde o jejich implementaci v jazyce, ale o návrh, jaké tam budou třídy a jaké budou mít
datové členy a metody, jak bude vypadat hlavní program.
Napište si to v češtině resp. nějaké pseudojazyce tak, aby byli schopni na příštím cvičení
svůj návrh sdělit ostatním.
Návrhy mi neposílejte, ale můžete se případně vzít s sebou na flashce, abychom je mohli ostatním ukázat.
Vyberte si jeden z těchto problémů (může a nemusí to být ten, který jste řešili na cvičení) a pokuste se ho dotáhnout do funkgujícího programu v C#. Pro odeslání úkolu použijte Codex - jsou tam tři úlohy se zadáním,
ale bez vstupních dat.
cvičení 10.března
cvičení 17.března
suplování
cvičení 24.března
cvičení 31.března
Analýza simulačního programu pro simulaci systému výtahů
cvičení 7.dubna
cvičení 14.dubna
cvičení 21.dubna
První povídání o zápočtových úlohách, jejich zadání by mělo být ukončeno nejpozději do 5.května
Ukázka dvou řešení simulačního programu pro systém výtahů
Programování operací s AVL stromy.
Je vhodné, aby procedury pro vkládání/vypouštění měly výstupní booleovský parametr,
který udává zda daný strom provedenou operací zvýšil/snížil svou výšku. této informace pak využívají balancovací procedury.
Pokud jsou ukazatelé položky rekordu (či třídy) musíme naprogramovat všechny 4 rotace (LL, RR, LR a RL),
pokud následníci jsou v poli, je možno podprogramům předat jako paremetr směr a tedy programovat jen dvě rotace (LL a RR společně,
LR a RL společně). Pokud byste chtěli šetřit kód ještě více, lze si uvědomit, že "dvojité" rotace LR a RL lze provést
dvěma aplikacemi rotací jednoduchých.
Dynamické programování Rozmyslet a poslat mailem s předmětem "PRG031DynPrg" algorimy (není nutné dovádět do stadia programů) pro
Optimální rozvržení písmen na tlačítka mobilního telefonu.
Je zadána velikost abecedy, počet tlačítek a frekvence jednotlivých písmen.
Má se optimalizovat počet stisků tlačítek
Modifikace algoritmu hledání optimálního binárního vyhledávacího stromu tak, aby jeho složitost byla O(n2)
Domácí úkol: Tři úlohy v Codexu (v termínech tam uvedených):
Jeden proti stu
Příšera
Přidávání do AVL stromu
Domácí úkol (ukázkový příklad obtížnosti obdobné jako bude v testech)
bude v Codexu nejpozději ve čtvrtek 24.4., potřeba udělat do pondělí 28.4.