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 03.04.2025
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 -lmTestovanie 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!