Ú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 a StreamWriter
    • Použít konstrukci using pro automatické zavření souboru
    • Při práci se soubory využít try/catch blok pro odchycení výjimek
  • 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 v Main metodě)
    • Umět na příkazové řádce a ve vašem IDE nastavit argumenty programu