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 č. 6

[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





  • No labels