Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

ŽILINSKÁ UNIVERZITA V 

ŽILINE
FAKULTA RIADENIA A INFORMATIKY

ALGORITMY A ÚDAJOVÉ ŠTRUKTÚRY 1

Semestrálna práca č.2

Dorota Kardošová
5ZY022

2018
1. Návrh aplikácie a popis implementácie použitých
údajových štruktúr
V mojej aplikácií sa okrem použitých údajových štruktúr nachádzajú tieto hlavné triedy:
 Okres
 Obec – obsahuje enum TypVymery
 CSV – pomocná trieda pri načítaní, obsahuje ArrayList
 utility – pomocná trieda, obsahuje metódy na načítanie čísel(použité pri načítavaní
rokov zadaných užívateľom) a metódu na načítanie enumu
 Komparatory – trieda obsahuje všetko čo sa triedenia týka
 Debug – pomocné výpisy
 Konštanty – trieda obsahuje číselné konštanty
 main – trieda obsahujúca metódu main
 AplikaciaKonzola – trieda, ktorá sa stará o všetko okolo menu a taktiež obsahuje
metódy načítaní zo súborov

Popis použitých údajových štruktúr údajových štruktúr:


Na riešenie úloh som použila tieto štruktúry:

 Sorted_Sequence_Table – utriedená sekvenčná tabuľka, ktorú som používala na


vyhľadávanie, pretože hľadanie v nej podľa kľúča má logaritmickú zložitosť

 Unsorted_Sequence_Table – má navyše metódu sort, ktorá triedi údaje, používala


som ju pre všetky prvky, ktoré bolo treba zoradiť
2. Zložitosti použitých údajových štruktúr

Zložitosti štruktúr:
 Sorted_Sequence_Table
- O(n) pri vkladaní; n – počet prvkov
- O(log n) pri hľadaní prvku; n – počet prvkov

 Unsorted_Sequence_Table
- O(1) pri vkladaní
- O(n) pri hľadaní
- O(n*log n) pri triedení

Zložitosti konkrétnych metód:

Úloha 1 Vyhľadanie obce na základe jej názvu. Pre každý rok z rozpätia rokov(ktorý zadá
užívateľ) budú vypísané údaje o obci.

- metóda hladajObec();, nájde obec v utriedenej tabuľke; zložitosť O(log n),


kde n je počet obcí

Úloha 2 Zoradenie obcí na základe:

a. Celkovej výmery v danom roku


- metóda zoradPodlaVymery();

b. Prírastku zastavaných plôch voči celkovej výmere obce medzi dvomi rokmi
- metóda zoradPodlaZastavanych();

c. Zmeny podielu výmery ornej pôdy voči celkovej výmere obce medzi dvomi
rokmi
- metóda zoradPodieluOrnej();

Všetky tabuľky triedime HeapSortom, ktorý má zložitosť O(n*logn).

Úloha 3 Vyhľadanie okresu, ktorý mal v roku zadanom užívateľom

a. najväčšiu a najmenšiu celkovú výmeru ovocných sadov

b. najväčší a najmenší podiel celkovej výmery ornej pôdy okresu voči celkovej
výmere ovocných sadov okresu

c. najväčší a najmenší podiel výmery lesov voči celkovej výmere okresu

- metóda vypisStatistikyPreRok(); , ktorá vypíše daný okres; údaje sa


zisťujú pri načítaní dát a uložia sa do tabuľky, z ktorej sa pomocou tejto
metódy vypíšu cyklom foreach (O(n))
Úloha 4 Zoradenie všetkých okresov na základe:

a. Zmeny podielu celkovej výmery ovocných sadov okresu voči celkovej výmere
okresu medzi dvomi rokmi

b. Zmeny podielu celkovej výmery ornej pôdy okresu voči celkovej výmere
okresu medzi dvomi rokmi

c. Zmeny podielu celkovej výmery lesov okresu voči celkovej výmere okresu
medzi dvoma rokmi
- metóda zoradOkresyPodielKVymere(const char *text, TypVymera co);
-
Všetky tabuľky triedime HeapSortom, ktorý má zložitosť O(n*logn).
3. Používateľská príručka
Po spustení aplikácie sa otvorí konzolové okno a po načítaní dát sa zobrazí menu, ktoré
vyzerá takto:

Menu nám ponúka niekoľko možností, napríklad možnosť vyhľadania obce podľa mena, ale
takisto aj výpis obcí alebo okresov zoradených podľa určitého kritéria.
Prácu s aplikáciou ukončíme klávesom [x].

4. Prílohy
Class Diagram v priloženom súbore .eap

You might also like