Guest User

Untitled

a guest
Jan 22nd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.83 KB | None | 0 0
  1. Jedním z nejdůležitějších problémů manažerů je správné plánování času. Problematické jsou zejména schůzky, kdy se mají manažeři sejít a kdy je potřeba koordinovat jejich časové plány. Vaším úkolem je realizovat jednoduchý program, který plánování schůzek usnadní.
  2.  
  3. Předpokládáme, že tři manažeři se mají sejít na koordinační schůzku. Ideální je, aby se sešli všichni tři, ale akceptovatelná je i schůzka dvou z nich. Pro jednoduchost předpokládáme, že každý manažer poskytne jeden časový interval, ve kterém by se schůzka mohla realizovat. Úkolem programu je tyto tři časové intervaly načíst a analyzovat, kdy mohou schůzky proběhnout.
  4.  
  5. Vstupem programu jsou tři časové intervaly. Interval je zadaný vždy hodinou a minutou svého počátku a hodinou a minutou svého konce. Hodiny a minuty jsou oddělené dvojtečkou, počátek a konce je oddělen znakem -. Formát je zřejmý z ukázek níže.
  6.  
  7. Výstupem programu je vyhodnocení možných intervalů konání schůzky. Pokud lze realizovat schůzku všech tří manažerů, je zobrazen přednostně tento interval. Pokud je možné realizovat schůzky pouze dvou manažerů, jsou vypsány opět všechny tyto možné intervaly (pozor, nemusí být pouze jeden). Konečně, pokud se intervaly nikde nepřekrývají, je programem oznámeno, že schůzka nemůže proběhnout. Přesný formát očekávaných výstupů je zobrazen níže.
  8.  
  9. Program musí rozpoznat nesprávný vstup a odpovídajícím způsobem na něj reagovat. Pokud jsou vstupy nesprávné, program to rozpozná, zobrazí chybové hlášení a ukončí se. Program musí detekovat případný nesprávný vstup okamžitě po načtení ze vstupu. Neodkládejte tedy kontroly až za načtení všech vstupních dat. Za nesprávný vstup je považováno:
  10.  
  11. nečíselná hodnota,
  12. nesmyslná hodnota (mimo rozsah hodin a minut),
  13. chybějící dvojtečka nebo pomlčka,
  14. interval nulové délky nebo
  15. počátek intervalu větší než jeho konec.
  16.  
  17. I v této úloze platí, že výstup Vašeho programu se musí přesně shodovat s očekávaným výstupem (referenční). Opět máte k dispozici archiv s testovacími vstupy a očekávanými výstupy (využití pro testování - viz FAQ). Nezapomeňte na odřádkování (\n), zejména za posledním řádkem výpisu.
  18.  
  19. Váš program bude spouštěn v omezeném testovacím prostředí. Je omezen dobou běhu (limit je vidět v logu referenčního řešení) a dále je omezena i velikost dostupné paměti (ale tato úloha by ani s jedním omezením neměla mít problém).
  20. Ukázka práce programu:
  21.  
  22. Manazer A:
  23. 12:00 - 16:00
  24. Manazer B:
  25. 10:00 - 15:00
  26. Manazer C:
  27. 11:30 - 14:45
  28. Vsichni tri manazeri: 12:00 - 14:45
  29.  
  30. Manazer A:
  31. 9:00 - 12:02
  32. Manazer B:
  33. 11:30 - 14:30
  34. Manazer C:
  35. 13:15 - 18:00
  36. Dva manazeri: 11:30 - 12:02, 13:15 - 14:30
  37.  
  38. Manazer A:
  39. 10:00 - 12:00
  40. Manazer B:
  41. 10:00 - 13:15
  42. Manazer C:
  43. 16:00 - 20:00
  44. Dva manazeri: 10:00 - 12:00
  45.  
  46. Manazer A:
  47. 9:00 - 11:00
  48. Manazer B:
  49. 12:30 - 14:20
  50. Manazer C:
  51. 14:21 - 17:32
  52. Spolecny cas neexistuje.
  53.  
  54. Manazer A:
  55. 2:13 - 4:15
  56. Manazer B:
  57. 4:15 - 6:32
  58. Manazer C:
  59. 2:13 - 6:32
  60. Dva manazeri: 2:13 - 6:32
  61.  
  62. Manazer A:
  63. 14:15 - 16:78
  64. Nespravny vstup.
  65.  
  66. Manazer A:
  67. 13:30 - 13:15
  68. Nespravny vstup.
  69.  
  70. Manazer A:
  71. 13:15 13:30
  72. Nespravny vstup.
  73.  
  74. Manazer A:
  75. 12:45 - 16:abcd
  76. Nespravny vstup.
  77.  
  78. Nápověda
  79.  
  80. S časovým údajem v podobě dvojice hodina:minuta se špatně pracuje. Pro porovnávání je lepší si časové údaje převést na jedno číslo (např. počet minut od půlnoci).
  81. Úloha je zaměřená na podmínky a logické operátory (&& a ||). Smažte se vymyslet co nejjednodušší podmínky, pro test překryvu dvou intervalů stačí vždy pouze 2 porovnání.
  82. V úloze je vhodné použít funkce, zápis programu se velmi zpřehlední.
Add Comment
Please, Sign In to add comment