Umístění: N/A
Čas: 10 minutes
Program čte stdin, který rozděluje do tokenů. Tokeny jsou oddělené pomocí jednoho, nebo více bílých znaků. Po přečtení celého vstupu program vypíše tokeny na stdout, vždy jeden token na řádek. Pořadí tokenů na výstupu musí odpovídat pořadí tokenů na vstupu.
Pro ukončení STDIN lze použít Ctrl+Z a následně Enter.
Umístění: N/A
Čas: 15 minutes
Implementujte třídu Position reprezentující pozici ve 2D. Implementace musí být použitelná pro následující úsek kódu:
Position up = Position(0.0, 1.0);
double up_length = up.length();
// up_length: 1
std::cout << "up_length: " << up_length << std::endl;
Position zero;
zero.add(up);
zero.add(Position(0.0, -1.0));
const Position& zero_ref = zero;
std::string zero_as_string = zero_ref.as_string();
// zero: [0.000000, 0.000000] : 0 0
std::cout << "zero:" << zero_as_string << " : " << zero.x() << " " << zero.y() << std::endl;
Počet desetiných míst na výstupu se může lišit. Hodnoty v komentářích jsou očekávaným výstupem.
Podobné "magickým metodám" v Pythonu. Provázání metod se syntaxí jazyka.
Umístění: N/A
Čas: 15 minutes
Rozšiřte implementaci z 2D Position I. aby byla použitelná pro následujíc kód.
Position up(0.0, 1.0);
Position right(1.0, 0.0);
Position direction = up + right;
direction += up;
double x = direction[0];
std::cout << "direction" << direction << std::endl;
if (up < right) {
std::cout << "'up' is longer" << std::endl;
} else {
std::cout << "'right' is longer" << std::endl;
}
Umístění: ./labs/03-position/
Čas: 10 minutes
Rozšiřte implementaci z 2D Position II. aby byla použitelná pro následujíc kód.
Position up{ 1.0,0.0 };
up.add({ 0.0, 0.0 });
// Container for positions.
Positions position;
position.add({ 0.0, 0.0 });
// Initialization with multiple positions.
Positions list { {0.0, 0.0}, {1.0, 0.0} };
Umístění: ./labs/03-csv-parser/main.cpp
Čas: ?
Napište parser pro CSV formát. Vytvořte program, který parser použije pro načtení standartního vstupu. Načtené CSV není třeba dále zpracovávat.
Nezapomínejte na uvozovky a escapování!
Změřte si čistý čas strávený úlohou a zapište do ho zdrojového souboru ve formátu:
// time: 30
Hodnota je počtem minut, který jste úlohou strávili. Umístění komentáře v souboru nehraje roli, ale ideálně někde viditelně.