Úlohy na procvičení
Velká písmena
Napište program, který projde zadaný text po slovech a u každého slova změní první písmeno na velké. Například pro vstup
The quick brown fox jumps over the lazy dog.
je správný výstup
The Quick Brown Fox Jumps Over The Lazy Dog.
Než začnete programovat, zamyslete se nad strukturou programu. Vhodně rozdělte jednotlivé části programu do objektů a funkcí, aby byl se program dal snadno rozšířit.
Zadání obsahuje i dvě možná rozšíření programu. Jejich popis si zobrazte až po tom, co dokončíte základní verzi úlohy.
Rozšíření 1 (klikněte pro zobrazení)
Doplňte do vašeho programu překlad textu z angličtiny do Pig Latin a zpět. Pig Latin funguje tak, že pro každé slovo přesunete jeho první písmeno na konec slova a přidáte "ay"
. Například pro vstup
the quick brown fox
dostanete
hetay uickqay rownbay oxfay
Rozšíření 2 (klikněte pro zobrazení)
Upravte program tak, aby uměl číst vstupní text ze souboru a výsledek zapisovat do jiného souboru.
Poznámka
Pokud chcete, aby váš program fungoval se vstupem z konzole i ze souboru a mohli jste je snadno střídat (což se může hodit třeba pro ladění), můžete použít typ TextReader
. To je nadřazený typ pro StreamReader
, ve kterém jsou definované základní metody jako ReadLine
. Vstup z konzole můžete číst přes vlastnost Console.In
, která je taky typu TextReader
.
Můžete to tedy udělat třeba takto:
TextReader reader;
if (inputFileName != null)
reader = new StreamReader(inputFileName);
else
reader = Console.In;
reader.ReadLine();
Podobně existuje i TextWriter
a Console.Out
.
Příkaz wc
Naprogramujte zjednodušenou verzi linuxového příkazu wc
(“word count”). Program dostane dva argumenty na příkazové řádce – první je volba režimu, druhý cesta k souboru. Režimy jsou
-l
: program vypíše, kolik řádků má zadaný soubor,-w
: program vypíše, kolik slov je v zadaném souboru.
Regulární výrazy
Pokud si chcete procvičit regulární výrazy, můžete zkusit třeba Regex Crossword.
Poznámka: Další procvičení regulárních výrazů vás čeká na Úvodu do Linuxu v druhé polovině semestru.
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í.
- Číst a zapisovat textové soubory pomocí
StreamReader
aStreamWriter
- Použít konstrukci
using
pro automatické zavření souboru - Při práci se soubory využít
try
/catch
blok pro odchycení výjimek
- Použít konstrukci
- Vědět, že různé způsoby spuštění programu můžou pracovat s různou “working directory” – pak se může lišit relativní cesta k souborům
- Umět ve vašem IDE nastavit “working directory”
- Umět číst argumenty předané programu při spuštění (
args
vMain
metodě)- Umět na příkazové řádce a ve vašem IDE nastavit argumenty programu