Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include "vector.h"
- #include "ioutils.h"
- #include "mymalloc.h"
- #include "inttypes.h"
- int main(void)
- {
- printf("Vector test program\n");
- printf("Zadejte prosim vychozi velikost pole a velikost prirustku.\n");
- printf("Velikost:\n");
- long size = 0;
- if(io_utils_get_long(&size)== false){
- return 0;
- }
- printf("Prirustek:\n");
- long step = 0;
- if(!io_utils_get_long(&step)){
- return 0;
- }
- Vector_t* vector;
- vector = Vector_Create(size, step);
- if(vector == NULL){
- printf("Nepodarilo se alokovat pamet pro vektor.\n");
- return 0;
- }
- for(int i=0; i < 100; i+=5){
- Vector_Append(vector, i);
- }
- //menu
- bool run = true;
- while (run) {
- printf("Stisknete:\n");
- printf("1 pro vypis delky vektoru\n");
- printf("2 pro pridani prvku\n");
- printf("3 pro odebrani prvku\n");
- printf("4 pro vypis vsech prvku\n");
- printf("5 pro zjisteni jestli vektor obsahuje prvek\n");
- printf("6 pro nalezeni pozice prvku\n");
- printf("7 pro vycisteni vektoru\n");
- printf("8 pro vyplneni casti vektoru predanou hodnotou\n");
- printf("9 pro vytvoreni kopie vektoru\n");
- printf("0 pro vypsani jednoho prvku\n");
- printf("cokoli jineho pro konec.\n");
- char c = 0;
- if(!io_utils_get_char(&c)){
- run = false;
- }
- switch (c) {
- case '0':
- printf("Zadejte hodnotu indexu, ktery ma byt vyhledan:\n");
- long position = 0;
- uint64_t value = 0;
- if(!io_utils_get_long(&position)){
- run = false;
- break;
- }
- if(Vector_At(vector,position,&value)==true){
- printf("vector[%ld]: " "%" PRIu64"\n",position,vector->items[position]);
- }
- else if (Vector_At(vector,position,&value)==false) {
- printf("Prvek na indexu %ld nebyl ve vektoru nalezen.\n",position);
- }
- break;
- case '1':
- printf("Delka vektoru: ""%" PRIu64 "\n", Vector_Length(vector));
- break;
- case '2':
- printf("Vlozte hodnotu prvku:\n");
- long value2 = 0;
- if(!io_utils_get_long(&value2)){
- run = false;
- break;
- }
- Vector_Append(vector, value2);
- break;
- case '3':
- printf("Zadejte pozici prvku ktery chcete odebrat:\n");
- long position1 = 0;
- if(!io_utils_get_long(&position1)){
- run = false;
- break;
- }
- Vector_Remove(vector, position1);
- break;
- case '4':
- for(uint64_t i=0; i<Vector_Length(vector);i++){
- printf("vector[""%" PRIu64"]: " "%" PRIu64"\n",i,vector->items[i]);
- }
- break;
- case '5':
- printf("Zadejte hodnotu hledaneho prvku:\n");
- long value4 = 0;
- if(!io_utils_get_long(&value4)){
- run = false;
- break;
- }
- if(Vector_Contains(vector, value4)){
- printf("Vector obsahuje prvek\n");
- }
- else {
- printf("Vector neobsahuje prvek\n");
- }
- break;
- case '6':
- printf("Zadejte hodnotu hledaneho prvku:\n");
- long value3 = 0;
- if(!io_utils_get_long(&value3)){
- run = false;
- break;
- }
- printf("Zadejte pocatecni index hledani:\n");
- long from = 0;
- if(!io_utils_get_long(&from)){
- run = false;
- break;
- }
- printf("Pozice prvku: ""%" PRId64 "\n",Vector_IndexOf(vector, value3, from));
- break;
- case '7':
- Vector_Clear(vector);
- break;
- case '8':
- printf("Zadejte hodnotu, ktera ma byt zapsana:\n");
- long value1 = 0;
- if(!io_utils_get_long(&value1)){
- run = false;
- break;
- }
- long start = 0;
- printf("Zadejte startovni pozici:\n");
- if(!io_utils_get_long(&start)){
- run = false;
- break;
- }
- printf("Zadejte koncovou pozici:\n");
- long end = 0;
- if(!io_utils_get_long(&end)){
- run = false;
- break;
- }
- break;
- case '9':{
- Vector_t* copy;
- copy = Vector_Copy(vector);
- for(uint64_t i=0; i<Vector_Length(copy);i++){
- printf("copy[""%" PRIu64"]: " "%" PRIu64"\n",i,copy->items[i]);
- }
- printf("Odebiram vektor \"copy\"\n");
- myFree(copy->items);
- myFree(copy);
- break;}
- default:
- run = false;
- break;
- }
- }
- //free
- printf("Uvolnuji vsechnu pridelenou pamet.\n");
- Vector_Clear(vector);
- myFree(vector);
- printf("Vsechna pridelena pamet byla uvolnena.\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement