Problem Set #3: Some Problems to Solve

Ciele

  • precvičiť algoritmizáciu
  • práca so štandardným vstupom a výstupom

Č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

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!