Zadání úlohy třídění dat

Sledujte tento soubor – bude dále upravován/upřesňován

Napište algoritmy realizující zadanou metodu třídění. Tříděná data načtěte ze souboru na disku (v soubor_vstup) a po setřídění je na disk uložte (do souboru soubor_vystup).
Program
sort.exe bude požadovat tři parametry zadané z příkazové řádky ve tvaru:

sort.exe --type=kod_řazení soubor_vstup soubor_vystup

 

Parametr kod_řazení bude zadán jako číslice od nuly do 6 reprezentující typ třídění:

0

neřadí (pouze načte a uloží data ve stejném pořadí do výstupního souboru – implementují všichni)

1

select sort

2

bubble sort

3

insert sort

4

shell sort

5

merge sort

6

quick sort

 



Pokud je daný typ třídění implementován (je vytvořen v rámci práce) je provedeno setřídění a uložení výsledku. V případě, že typ není implementován, vytiskne se chybové hlášení a vrátí se chybový kód 100.

Pro manipulaci s daty budou funkce využívat povinně parametry typu struktura TData. Struktury budou obsahovat vstupní a výstupní data. Pro pole číselných dat je ve struktuře TData ukazatel iValue, Délka pole je ve struktuře TData uložena v proměnné iSize. Data jsou dynamicky alokovaná.

Pro načtení a uložení dat napište funkce, které budou umístěny v samostatném zdrojovém souboru datafile.c, jiném než je funkce main. Upravte příslušný hlavičkový soubor datafile.h, který standardně ošetřete proti vícenásobnému načítání. Na začátek hlavičkového souboru vložte komentář obsahující položky: Autor jméno, Autor ID, Datum odevzdání, Název práce, URL zadání práce. Pro třídění napište soubor datasort.c s hlavičkovým souborem datasort.h.

Jako základ práce použijte přiložené soubory.

Pro kontrolu práce se soubory a pamětí využijte knihovnu check (check.cpp, check.h).

Formát vstupních dat je dán následující tabulkou. Formát výstupních dat bude stejný jako formát vstupních dat.

Předposlední číslice ID

Formát dat

0

každá hodnota je na samostatném řádku – prázdný řádek nebo konec souboru značí konec dat

1

[hodnota0/ hodnota1/ …/ hodnotaN]

2

hodnota0, hodnota1, …, hodnotaN;

3

{ hodnota0; hodnota1; …; hodnotaN }

4

počet_hodnot, hodnota0, hodnota1, … , hodnotaN

5

<počet [hodnota0, hodnota1, …, hodnotaN]>

6

(hodnota0 * hodnota1 * hodnota * … * hodnotaN)

7

<počet hodnot> hodnota0 / hodnota1 / … / hodnotaN

8

hodnota0 | hodnota1 | … | hodnotaN

9

<hodnota0| hodnota1| …| hodnotaN>

 

Napsané funkce okomentujte – u hlavičky funkce uveďte stručně její činnost, význam parametrů a návratové hodnoty.

Vygenerujte alespoň tři dostatečně obsáhlé vstupní soubory s daty (alespoň o 30 prvcích), na kterých budete algoritmy testovat.

Ošetřete chybové stavy – v rámci popisu návratových hodnot funkce main uveďte seznam ošetřených chyb a jejich návratové kódy.

 

Volba řešené úlohy na základě ID:

Projekt bude vždy vytvářet dvojice studentů

Konkrétní třídicí algoritmus, který budete implementovat je dán poslední číslicí vašeho student ID (u studenta ve dvojici, jehož příjmení je dříve v abecedě).



Student ID – poslední číslice

Implementovaný algoritmus

0,1

1

2,4

2

3

3

5,6

4

7,8

5

9

6

 

Formát uložených dat zvolíte na základě předposlední číslice téhož student ID – viz tabulka formát dat v zadání.

 

Odevzdání – bude ještě upřesněno:

Projekt odevzdávejte prostřednictvím IS. Projekt do systému vloží oba autoři (druhý autor pod stejným jménem jako první – na konec názvu přidá znak x).

Termín odevzdání – pondělí (prodlouženo do úterka) zápočtový týden (ti kteří chtějí mít opraveno v zápočtovém týdnu), pondělí první týden zkouškového období (skupiny p. Petyovského), pondělí druhý týden zkouškového období – ostatní. Dvojice musíte odevzdat ve stejném termínu, jinak je druhé/pozdější odevzdání bráno jako plagiát.

Odevzdává se zip soubor: soubory pro vytvoření odevzdávaného zip souboru najdete zde. V adresáři vypracovaného projektu, kde je soubor *.sln, rozbalte stažený soubor a spusťte dávku *.cmd. V adresáři by měl být nově soubor *.zip (jeho konečné jméno viz níže). Datové testovací soubory by měly být v adresáři, kde jsou soubory *.c *.h (adresář by se měl jmenovat project). Pokud vám dávka nebude fungovat, obracejte se na p. Petyovského s přesným popisem umístění cmd, nastavení... Součástí vypracovaného projektu i zip souboru by měly být soubory knihovny check – check.h a check.cpp.

Soubory zip odevzdané se špatným jménem nebo obsahem budou bodově penalizovány.

Pokud vám dávka nebude fungovat, vytvořte zip, jenž bude obsahovat vaše zdrojové soubory (c a h, bez knihovny check()), testovací soubory).

Program bude možné přeložit ve VS2013 Console application.

Název zip souboru bude odvozen od termínu cvičení: MistnostHodinaLogin. (Místnost nahraďte „D104“, „D105“. Hodina nahraďte 12, 14, 16. Login xvomac12).



Např.:

Místnost: D104
Hodina:
14
Login:
xnonam00

Název souboru:                      D10414xnonam00.zip

Druhý z dvojice má název souboru:               D10414xnonam00x.zip

 













Poslední úpravy 2014-04-14