Cvičenia

Na cvičeniach sa zadávajú bodované úlohy. Každá je za 6 bodov (plus prípadne nejaké bonusové za vopred definované kritéria). Dokopy by ich malo byť desať. Občas sa môže vyskytnúť dvojúloha za dvojnásobný počet bodov s dvojnásobným časom. Čiže bude sa dať získať 60 bodov (plus X bonusových). Pokiaľ nebude napísané inak, program by mal ísť skompilovať pod C++17 bez akýchkoľvek externých knižníc.

Riešenie za 6 bodov musí spĺňať aj iné náležitosti, okrem toho, že pracuje ako má

  • Program nesmie za žiadnych okolností vykonať nedefinované správanie (teda väčšinou spadnúť).

  • Kompilovať musí ísť ako 64 bit aplikácia bez warningov nastavených na leveli 4. Tu sa to môže líšiť, ak používate iný kompilátor ako Visual Studio, to si ešte prejdeme prípad od prípadu.

  • Premenné musia mať zrozumiteľné názvy, premenne ako (a, aa, ab sú väčšinou zle).

  • Aplikácia musí dávať najavo chybové stavy, teda ak užívateľ urobil niečo zle, tak mu to dá vedieť a nie urobiť nedefinované správanie.

  • Treba sa vyhýbať zbytočnému kopírovaniu (viac používať referencie&), toto bude aktuálne až trochu neskôr

Pokiaľ nie je uvedené inak, nehodnotí sa efektivita nejakého algoritmu. Samozrejme to nemáte urobiť úplne "tupo", ale netreba vymýšľať nové/efektívne algoritmy (to bude za bonusové body ).

Riešenia sa odovzdávajú na našom portáli https://cppseminar.net. Ďalej je finálne riešenie potrebné odovzdať aj do systému AIS (toto iba pre študentov FIIT), študenti na FMFI nám to zatiaľ prosím pošlite mailom na cpp@eset.sk.

Zadania

  1. Palindróm (deadline 4. 10. 2020 23:59)

  2. Sudoku (deadline 11. 10. 2020 23:59)

  3. Hľadanie reťazcov (deadline 18. 10. 2020 23:59)

  4. Triedenie riadkov CSV (deadline 25. 10. 2020 23:59)

  5. Trieda BigNum (deadline 8. 11. 2020 23:59)

  6. Huffmanov kód (deadline 22. 11. 2020 23:59)

  7. Graph (deadline 6. 12. 2020 23:59)

  8. Netpbm (deadline 31. 12. 2020 23:59)

Konce riadkov

Historicky sa nám veľmi tažko robí s textovými súbormi, lebo na Windowse majú iné konce riadkov CR LF, ako na Macu a Linuxe LF. (Kedysi ešte Maci pred OS X používali CR, ale to sa nás už hádam netýka). Totiž programovacie jazyky tieto nezrovnalosti riešia viac menej samé a teda predpokladajú, že súbory sú ukončené tak ako je na danej platforme bežné. Naše príkladové súbory (vstupy, výstupy, …) používajú Windows spôsob, lebo naša hlavná platforma je Windows. Takže predtým než tieto súbory použijete na iných platformách, tak si ich prosím niekde skonvertujte do vášho natívneho formátu. Vie to každý chytrejší editor textu. Prípadne online https://www.privatedaddy.com/dos2unix. A potom si môžete aplikáciu vyskúšať s takýmto skonvertovaným súborom.

Záznamy z cvičení

  1. Organizačné pokyny a práca so súborom heslo “iUXjFrQ3“

  2. Prvá úloha, preťažovanie operátorov a vector heslo “wJhv4c2n“