Funkce | Body |
---|---|
Správné načtení hodnot a ošetření vstupu před nesprávnými hodnotami (řetězec místo čísla apod.) | 1 |
Správné zobrazení výsledku (sčítance oddělené znaky + a - ,
případně text NELZE) |
1 |
Spravné řešení mezních čísel: -23456789,-23456788,123456789,123456790,65536,-65536 | 2 |
Zobrazení správných výsledků čísel: 17,8,0,-21,11,159,-121 | 1 |
Zobrazení NELZE pro 160, -122 | 1 |
Automatické vyloučení čísel nad ±123456789 | 1 |
Nepoužívá se backtracking, ale prohledávání v cyklu | 1 |
Heuristika pro vynechání některých nemožných kombinací | 1 |
Funkce | Body |
---|---|
Zformátování kalendáře do tabulky | 1 |
Tlačítka pro pohodlný přechod mezi měsíci | 1 |
Možnost výběru roku | 1 |
Správné zobrazení února 2000 (obsahuje úterý 29. únor) | 1 |
Správné zobrazení února 1980 (obsahuje úterý 29. únor) | 1 |
Správné zobrazení srpna 2011 (1. srpna je pondělí) | 1 |
Program pro zjištění dnů v daném měsící využívá systémové funkce pro práci s datem a časem | 2 |
Použití již hotové komponenty ve vývojovém prostředí | 1 |
Funkce | Body |
---|---|
Možnost zvolení počtu kotoučů, grafické zobrazení kotoučů a kolíků | 1 |
Uživatel může přesouvat kotouče a nemůže přitom porušit pravidla (položit větší kotouč na menší) | 1 |
Rozpoznání koncového stavu a zobrazení počtu tahů | 1 |
Automatické vyřešení úlohy pro 3,5 a 9 kotoučů | po jednom bodu (celkem 3) |
Použití metody rozděl a panuj (převedení na jednoduší úlohu a její řešení pomocí rekurzivního volání). Body se nedávají za tupé použití backtrackingu. | 3 |
Funkce | Body |
---|---|
Ošetření vstupu | 1 |
pro 5! vrací 1 | 1 |
pro 333! vrací 81 | 1 |
pro 2001! vrací 499 | 1 |
pro 32768! vrací 8189 | 1 |
pro 1234567890! vrací 308641968 | 1 |
Program se nesnaží spočítat hodnotu faktoriálu, ale počet nul odvodí z počtu dvojek a pětek v provočíselném rozkladu čísla n! | 1 |
Program používá asi nejefektivnější metodu (viz přiložený program) -- zjišťuje počet pětek a jejich mocnin v prvočíselném rozkladu | 2 |
Body za správný výpočet přidělte pouze v případě, že výsledku se program dopočítá do 5 sekund.
#include <iostream.h> void main() { long n = 0; long pocet = 0; long delitel = 5; while ((n<1) || (n>2000000000)) { cout << "Zadejte cislo od 1 do 2000000000: "; cin >> n; } while (delitel <= n) { pocet += n / delitel; delitel *= 5; } cout << "Cislo " << n << "! ma na konci " << pocet << " nul." << endl; }
Funkce | Body |
---|---|
Kontrola, zda souřadnice tvoří trojúhelník a leží v zadaných mezích | 1 |
Souřadnice lze zadat interaktivně (např. pomocí myši) | 1 |
Správné zobrazení trojúhelníku uvnitř jiného trojúhelníku | 1 |
Správné zobrazení nepřekrývajících se trojůhelníků | 1 |
Správné zobrazení průniku částečně se překrývajících trojúhelníků | 1 |
Pro jednotlivé trojúhelníky, jejich rozdíl a průnik se používají různé barvy | 1 |
Průsečíky stran a pozice trojúhelníků se spočítají analyticky | 2 |
Průnik trojúhelníků se určí průchodem řádek po řádku | 1 |
Ve všech úlohách se hodnotí dokumentace podle následujícího klíče:
Vhodně zvolené názvy proměnných | 0,25 |
Přehledně odsazovaný zdrojový text | 0,25 |
Komentáře ve vhodné míře | 0,25 |
Uživatelská dokumentace a nápověda v programu | 0,25 |