# Zápočtový test 10.2. 2009

<{ForumPost(poster="Cabroušek", timestamp=2009-02-10 23:14:46)}>
Dneska bylo zadání podobné jednomu z loňského roku ... takový Excel.   
  
Na vstupu byla tabulka (oddělovače buněk mezery) a v buňkách byla buď nějaká hodnota (celé číslo nebo \[] znamenající prázdnou buňku) nebo =\[odkaz]\[operátor]\[odkaz], kde operátor mohl být +, -, * nebo /. Odkaz byl buď odkaz na jinou buňku  ve vstupním souboru (např. B16, AY314, ZZV0) nebo nějakou buňku jiného souboru (např. List2!B7, Bflmpsvz!TS14). Výstupem byla tabulka se spočtenými hodnotami výrazů v buňkách. Při počítání s nedefinovanou buňkou se její hodnota považovala za nulovou. Bylo potřeba kontrolovat, jestli jsou hodnoty ve správném formátu (na výstupu chybové hodnoty #INVAL pro špatně definovanou hodnotu, #MISOP pro chybějící operátor, #FORMULA pro chybně uvedený odkaz), dělení nulou (chyba #DIV0) a zacykle (#CYCLE) - zacyklení bylo potřeba detekovat samozřejmě i mezi několika listy. A ještě mnoho detailů, které si zvídavý čtenář jistě doplní.  
  
Dozíral na nás přímo Pavel Ježek. Původně dal času něco málo přes tři hodiny a potom ještě necelou půlhodinu nastavil. Odcházel jsem jako druhý právě v okamžiku vypršení nastaveného času, ale myslím, že se to dalo stihnout i mnohem rychleji. Zadávající mi odpustil drobné zmatky se zpracováním jména souboru, ale program otestoval důkladěně na všemožných testovacích vstupech.
<{/ForumPost}>

<{ForumPost(poster="starecml", timestamp=2009-02-11 13:11:37)}>
Já jsem byl na testu, který byl v 16:00 a jako zadání jsme měli naprogramovat mergesort s prací s omezenou pamětí. Navíc program musel slévání realizovat ve více vláknech.  
  
**Zadání: **  
Naimplementujte externí třídění pomocí metody mergesort. Implementace musí splnovat dané vstupní parametry – maximalní velikost dostupné paměti a stupen paralelizace.  
**Popis:**  
mergesort <velikost_pameti> <ways><soubor.in>

* velikost_pameti : určuje maximální velikost paměti, která je dostupná pro třídění, v počtu prvků vstupu (X)
* ways : určuje kolik externích souborů se bude v jednom kroku slučovat (W)
* soubor.in: soubor určený k setřídění (soubor). Obsahuje čísla (int) oddělené čárkami (např. 29122,3901, 14567). Neomezená velikost.


*Attachments:*

- *[zadani-10.2.2009.pdf](/NPRG035/Z%C3%A1po%C4%8Det%202009-02-10%20Je%C5%BEek/zadani-10.2.2009.pdf)*
- *[soubor.1.txt](/NPRG035/Z%C3%A1po%C4%8Det%202009-02-10%20Je%C5%BEek/soubor.1.txt)*

<{/ForumPost}>

