Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.64 KB | None | 0 0
  1. #include <stdio.h>
  2. #include "vector.h"
  3. #include "ioutils.h"
  4. #include "mymalloc.h"
  5. #include "inttypes.h"
  6.  
  7.  
  8. int main(void)
  9. {
  10.     printf("Vector test program\n");
  11.     printf("Zadejte prosim vychozi velikost pole a velikost prirustku.\n");
  12.  
  13.     printf("Velikost:\n");
  14.  
  15.     long size = 0;
  16.     if(io_utils_get_long(&size)== false){
  17.         return 0;
  18.     }
  19.  
  20.     printf("Prirustek:\n");
  21.     long step = 0;
  22.     if(!io_utils_get_long(&step)){
  23.         return 0;
  24.     }
  25.  
  26.     Vector_t* vector;
  27.     vector = Vector_Create(size, step);
  28.     if(vector == NULL){
  29.         printf("Nepodarilo se alokovat pamet pro vektor.\n");
  30.         return 0;
  31.     }
  32.  
  33.     for(int i=0; i < 100; i+=5){
  34.         Vector_Append(vector, i);
  35.     }
  36.  
  37.  
  38.     //menu
  39.     bool run = true;
  40.     while (run) {
  41.         printf("Stisknete:\n");
  42.         printf("1 pro vypis delky vektoru\n");
  43.         printf("2 pro pridani prvku\n");
  44.         printf("3 pro odebrani prvku\n");
  45.         printf("4 pro vypis vsech prvku\n");
  46.         printf("5 pro zjisteni jestli vektor obsahuje prvek\n");
  47.         printf("6 pro nalezeni pozice prvku\n");
  48.         printf("7 pro vycisteni vektoru\n");
  49.         printf("8 pro vyplneni casti vektoru predanou hodnotou\n");
  50.         printf("9 pro vytvoreni kopie vektoru\n");
  51.         printf("0 pro vypsani jednoho prvku\n");
  52.         printf("cokoli jineho pro konec.\n");
  53.  
  54.         char c = 0;
  55.         if(!io_utils_get_char(&c)){
  56.             run = false;
  57.         }
  58.         switch (c) {
  59.             case '0':
  60.                 printf("Zadejte hodnotu indexu, ktery ma byt vyhledan:\n");
  61.                 long position = 0;
  62.                 uint64_t value = 0;
  63.                 if(!io_utils_get_long(&position)){
  64.                     run = false;
  65.                     break;
  66.                 }
  67.                 if(Vector_At(vector,position,&value)==true){
  68.                     printf("vector[%ld]: " "%" PRIu64"\n",position,vector->items[position]);
  69.                 }
  70.                 else if (Vector_At(vector,position,&value)==false) {
  71.                    printf("Prvek na indexu %ld nebyl ve vektoru nalezen.\n",position);
  72.                 }
  73.  
  74.             break;
  75.             case '1':
  76.                 printf("Delka vektoru: ""%" PRIu64 "\n", Vector_Length(vector));
  77.             break;
  78.             case '2':
  79.                 printf("Vlozte hodnotu prvku:\n");
  80.                 long value2 = 0;
  81.                 if(!io_utils_get_long(&value2)){
  82.                     run = false;
  83.                     break;
  84.                 }
  85.                 Vector_Append(vector, value2);
  86.             break;
  87.             case '3':
  88.                 printf("Zadejte pozici prvku ktery chcete odebrat:\n");
  89.                 long position1 = 0;
  90.                 if(!io_utils_get_long(&position1)){
  91.                     run = false;
  92.                     break;
  93.                 }
  94.                 Vector_Remove(vector, position1);
  95.  
  96.             break;
  97.             case '4':
  98.                 for(uint64_t i=0; i<Vector_Length(vector);i++){
  99.                     printf("vector[""%" PRIu64"]: " "%" PRIu64"\n",i,vector->items[i]);
  100.                     }
  101.             break;
  102.             case '5':
  103.                 printf("Zadejte hodnotu hledaneho prvku:\n");
  104.                 long value4 = 0;
  105.                 if(!io_utils_get_long(&value4)){
  106.                     run = false;
  107.                     break;
  108.                 }
  109.                 if(Vector_Contains(vector, value4)){
  110.                     printf("Vector obsahuje prvek\n");
  111.                 }
  112.                 else {
  113.                     printf("Vector neobsahuje prvek\n");
  114.                 }
  115.  
  116.                 break;
  117.             case '6':
  118.                 printf("Zadejte hodnotu hledaneho prvku:\n");
  119.                 long value3 = 0;
  120.                 if(!io_utils_get_long(&value3)){
  121.                     run = false;
  122.                     break;
  123.                 }
  124.                 printf("Zadejte pocatecni index hledani:\n");
  125.                 long from = 0;
  126.                 if(!io_utils_get_long(&from)){
  127.                     run = false;
  128.                     break;
  129.                 }
  130.                 printf("Pozice prvku: ""%" PRId64 "\n",Vector_IndexOf(vector, value3, from));
  131.  
  132.             break;
  133.             case '7':
  134.                 Vector_Clear(vector);
  135.             break;
  136.             case '8':
  137.                 printf("Zadejte hodnotu, ktera ma byt zapsana:\n");
  138.                 long value1 = 0;
  139.                 if(!io_utils_get_long(&value1)){
  140.                     run = false;
  141.                     break;
  142.                 }
  143.                 long start = 0;
  144.                 printf("Zadejte startovni pozici:\n");
  145.                 if(!io_utils_get_long(&start)){
  146.                     run = false;
  147.                     break;
  148.                 }
  149.                 printf("Zadejte koncovou pozici:\n");
  150.                 long end = 0;
  151.                 if(!io_utils_get_long(&end)){
  152.                     run = false;
  153.                     break;
  154.                 }
  155.  
  156.             break;
  157.             case '9':{
  158.                 Vector_t* copy;
  159.                 copy = Vector_Copy(vector);
  160.                 for(uint64_t i=0; i<Vector_Length(copy);i++){
  161.                     printf("copy[""%" PRIu64"]: " "%" PRIu64"\n",i,copy->items[i]);
  162.                 }
  163.                 printf("Odebiram vektor \"copy\"\n");
  164.                 myFree(copy->items);
  165.                 myFree(copy);
  166.             break;}
  167.             default:
  168.                 run = false;
  169.                 break;
  170.  
  171.         }
  172.  
  173.     }
  174.  
  175.     //free
  176.     printf("Uvolnuji vsechnu pridelenou pamet.\n");
  177.     Vector_Clear(vector);
  178.     myFree(vector);
  179.     printf("Vsechna pridelena pamet byla uvolnena.\n");
  180.  
  181.     return 0;
  182. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement