Ciele cvičenia
Cvičenie bude zamerané na prácu s jednorozmerným (1R) poľom. Študenti si osvoja spôsob deklarácie a inicializácie poľa. Tiež si osvoja problematiku indexácie polí, cyklus for a usporadúvanie a vyhľadávanie prvkov poľa.
Odporúčaná literatúra a dôležité odkazy
[1] KPI-FEI-TUKE: Prednáška č. 5
[2] KPI-FEI-TUKE: Cvičenie č. 7
[3] Tutorialspoint: for loop in C
[4] Geeksforgeeks: Sorting Algorithms
Úloha 1.1
Napíšte funkciu void print_vector(int vector[], int size) pre zobrazenie 1R poľa, ktoré bude zadefinované vo funkcii main().
- Použite funkciu for()!
- Veľkosť poľa size musí byť zistená programom, teda nesmie byť zadávaná ručne!
int pole[] = { 1, 5, 2, 3, 6, 8, 9, 7, 10, 18, 16, 14, 13, 15, 12, 11, 4, 17};
Predpokladaný výsledok:
ab123xy@zapfei:$ gcc -std=c11 -Werror -Wall -lm program.c -o PROGRAM ab123xy@zapfei:$ ./PROGRAM Vstupné pole: 1 5 2 3 6 8 9 7 10 18 16 14 13 15 12 11 4 17
Úloha 1.2
Napíšte funkciu int search(int vector[], int size, int number) pre vyhľadanie prvku number v 1R poli.
- Funkciu main() rozšírte o zadávanie hodnoty hľadaného prvku cez používateľský vstup.
- Funkcia vráti pozíciu (index), na ktorej sa hľadaný prvok nachádza.
- Ak sa prvok v danom poli nenachádza, funkcia vráti hodnotu -1!
- Použite lineárne vyhľadávanie
Predpokladaný výsledok:
ab123xy@zapfei:$ gcc -std=c11 -Werror -Wall -lm program.c -o PROGRAM ab123xy@zapfei:$ ./PROGRAM ********************************************** Zadaj hodnotu hľadaného prvku >> 6 Vstupné pole: 1 5 2 3 6 8 9 7 10 18 16 14 13 15 12 11 4 17 Hľadaný prvok sa nachádza na pozícii: 4
Úloha 1.3
Napíšte funkciu void Bsort(int vector[], int size) pre bublinkové zoradenie prvkov 1R poľa
- Funkcia zoradí prvky priamo v zadanom poli. Nemá teda návratovú hodnotu.
Úloha 1.4 (doplňujúca)
- Vyskúšajte si zoradenie prvkov pomocou Q-sort –> qsort()
Úloha 1.5 (doplňujúca)
Napíšte funkciu int BINsearch(int vector[], int size, int number) pre binárne vyhľadanie prvku number v 1R poli.
- Vo funkciu main() nahraďte volanie funkcie search() funkciou BINsearch().
- Funkcia vráti pozíciu (index), na ktorej sa hľadaný prvok nachádza.
- Ak sa prvok v danom poli nenachádza, funkcia vráti hodnotu -1!
Predpokladaný výsledok:
ab123xy@zapfei:$ gcc -std=c11 -Werror -Wall -lm program.c -o PROGRAM ab123xy@zapfei:$ ./PROGRAM ********************************************** Zadaj hodnotu hľadaného prvku >> 6 Vstupné pole: 1 5 2 3 6 8 9 7 10 18 16 14 13 15 12 11 4 17 Hľadaný prvok sa nachádza na pozícii: 4 Prvky po zoradení ... Vstupné pole: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Hľadaný prvok sa nachádza na pozícii: 5