Problem Set #3: Some Problems to Solve
Ciele
- precvičiť algoritmizáciu
- práca so štandardným vstupom a výstupom
Upozornenie
Toto zadanie je potrebné odovzdať do 07.04.2024
23:59:59. Na diskusiu používajte kanál na slack-u
#problems-to-solve
.
Čo treba spraviť?
Ako už názov napovedá, cieľom tohto zadania je vyriešiť niekoľko problémov. Konkrétne sa jedná o tieto problémy:
Odovzdávanie projektu
Zadanie sa odovzdáva prostredníctvom systému na správu verzií Git na serveri http://git.kpi.fei.tuke.sk/. Riešenie tejto úlohy odovzdáte ako súčasť vášho projektu.
Ak vytvárate projekt prvýkrát, urobte tak na tejto stránke. Návod na to, ako si inicializovať prostredie a ako pracovať s GitLab-om, nájdete na stránkach predmetu ZAP.
Štruktúra vášho projektu bude vyzerať nasledovne:
├── ps3/
│ ├── cheesefactory.c
│ ├── mm.c
│ ├── isolation.c
│ └── racer.c
└── README
Názvy súborov zodpovedajú názvom jednotlivých problémov, ktoré treba riešiť.
README
- Súbor, v ktorom bude uvedené označenie vašej skupiny, ktorú navštevujete na cvičeniach v tvare:GROUP : A1
Upozornenie
Je dôležité, aby vaše súbory zachovali uvedenú štruktúru. Ak sa niektorý zo súborov síce v repozitári nachádza, ale v inom priečinku, bude to považované za chybu a takýto projekt nebude považovaný za správny! Ak sa naopak vo vašom projekte nachádzajú súbory alebo priečinky navyše, tieto nebudú považované za chybu.
Upozornenie
Pri názvoch priečinkov, súborov a obsahu súboru README
záleží na veľkosti písmen!
Hodnotenie a testovanie
Vaše hodnotenie sa bude odvíjať od výsledku testov, ktorými vaše zadanie úspešne prejde. Overovať sa bude:
- Štruktúra vášho projektu (či sa v ňom nachádzajú všetky potrebné súbory).
- Statická analýza vášho kódu pomocou nástroja
cppcheck
. - Kontrola únikov v pamäti pomocou nástroja
valgrind
- Prítomnosť globálnych premenných vo vašom kóde.
- Funkčnosť vašej implementácie.
V riešení každého zadania sa musí nachádzať funkcia
main()
, aby sa vaše zadanie dalo spustiť. Názov súboru pre
konkrétne zadanie nájdete na stránke znenia tohto zadania.
Tento typ zadaní netestuje funkcie, ktoré v programe vytvoríte! To znamená, že si môžete vytvoriť ľubovoľný počet funkcií, ale musia zostať v súbore riešenia.
Zadanie sa testuje na základe výstupu, ktorý váš program vypíše na obrazovku vzhľadom na vstup, ktorý váš program prečíta zo štandardného vstupu. Ukážkové vstupy a výstupy, voči ktorým si môžete zadania testovať, sa nachádzajú pri každom zadaní.
Váš kód sa bude prekladať prekladačom gcc s nasledovnými prepínačmi a knižnicami:
$ gcc -std=c11 -Werror -Wall -lm
Testovanie vašich riešení sa bude vykonávať automaticky každé 3 hodiny.
Vaše riešenia opäť prejdú kontrolou originality. Preto sa pri práci na vašom zadaní správajte podľa pravidiel etického kódexu! V prípade, že odovzdáte zadanie, ktoré nie je vaše, budete vylúčení z predmetu!