Programming Contest Intermezzo

Motivácia

Dnes sa pokúsime pomôcť dr. Jonesovej s vyriešením zapeklitého kóderskeho problému.

Postup

Analyze First

V prvom kroku sa pokúsime problém analyzovať a navrhnúť jeho riešenie.

Úloha 1.1

Pozorne si prečítajte znenie úlohy.

Úloha 1.2

Pokúste sa navrhnúť riešenie úlohy.

O možných riešeniach diskutujte nahlas. Rovnako diskutujte aj o možných algoritmoch a vlastných údajových typoch.

Let’s Code

V tomto kroku zostáva už len dr. Jonesovej pomôcť naprogramovaním riešenia jej zapeklitého problému. Pokiaľ úlohu nestihnete vyriešiť priamo na cvičení, určite sa k nej vráťte aj doma.

Úloha 2.1

Pripravte si vstupné súbory pre testovanie úlohy.

Vytvorte si súbory input1 a input2, do ktorých prekopírujete hodnoty ukážkových vstupov. Váš kód budete následne môcť spúšťať spôsobom:

./chamber < input1

kde chamber je názov vášho preloženého spustiteľného súboru a input1 je ukážkový vstup č. 1. Týmto spôsobom ušetríte čas zbytočným prepisovaním vstupných hodnôt pri každom spustení programu.

Úloha 2.2

Vyriešte a otestujte úlohu.

Pri testovaní si môžete tiež pomôcť. Podobne, ako v prípade vstupných údajov si aj tie výstupné môžete uložiť do samostatných súborov output1 a output2. Po spustení vášho programu následne presmerujte výstup programu do samostatného súboru, napr.:

./chamber < input1 > output

kde chamber je názov vášho preloženého spustiteľného súboru, input1 je ukážkový vstup č. 1 a output je názov súboru, do ktorého bude uložený výstup z vášho programu. Tento následne môžete porovnať s očakávaným výstupom pomocou príkazu diff nasledovne:

diff output output1

Poznámka

Skúsenejší linuxáci samozrejme uvedený postup zvládnu napísať aj pomocu tzv. one-linera. Pre naše potreby si však vystačíme aj s takýmto postupom.

Ďalšie zdroje