int sucet(int* pole, int size){ int suma_left = 0, suma_right = 0; if( size == 1 ) return *pole; suma_left = sucet(pole, size/2); suma_right = sucet(pole + size/2, (size%2 == 0) ? size/2 : size/2 + 1); return suma_left + suma_right; }
int main(void) { int * pole = NULL; int size, i; srand(time(NULL)); size = 11; pole = alloc1D(size); pridaj_do_pola(pole, size, 0); printf("pole1: "); print(pole, size); free(pole); pole = alloc1D(size); // int sum = 0; for(i = 0; i < size; i++){ pole[i] = -20 + rand()%41; // sum += pole[i]; } // printf("sum: %d\n", sum); printf("pole2: "); print(pole, size); printf("maximum: %d\n", maximum(pole, size)); printf("sucet: %d\n", sucet(pole, size - 1)); printf("max predchodca: %d\n", max_predchodca(pole, size, 0)); return EXIT_SUCCESS; }
int main (int argc, char *argv[]) { int code; TParams tp = {.mat1.add = NULL,.mat2.add = NULL }; if ((code = processParams (&tp, argc, argv)) != RET_OK) { errmsg (code); return EXIT_FAILURE; }; switch (tp.function) { case 0: errmsg (RET_OK); break; case 1: code = sucet (&(tp.mat1), &(tp.mat2)); break; case 2: code = sucin (&(tp.mat1), &(tp.mat2)); break; case 3: code = submatrix (&(tp.mat1), &(tp.mat2)); break; case 4: code = crot (&(tp.mat1)); break; case 5: code = plough (&(tp.mat1)); break; case 6: code = sudoku (&(tp.mat1)); break; default: return EXIT_FAILURE; } if (tp.mat1.add != NULL) { freeMat (&(tp.mat1)); } if (tp.mat2.add != NULL) { freeMat (&(tp.mat2)); } if (code != RET_OK) { errmsg (code); return EXIT_FAILURE; } return EXIT_SUCCESS; }
int main() { /** Testovani souctu */ // test 1 - celych cisel SHOULD_BE_EQUAL_FLOAT(122.0+105.0,sucet(122.0,105.0),"soucet_1"); // test 2 - desetinnych cisel SHOULD_BE_EQUAL_FLOAT(36514.515+3652.525, sucet(36514.515,3652.525),"soucet_2"); // test 3 - desetinnych cisel s vetsi presnosti SHOULD_BE_EQUAL_FLOAT(9.8+3.1, sucet(9.8,3.1),"soucet_3"); // test 4 - zapornych cisel SHOULD_BE_EQUAL_FLOAT(-1.5811111+6.5252525, sucet(-1.5811111,6.5252525),"soucet_4"); /** Testovani rozdilu */ // test 5 - celych cisel SHOULD_BE_EQUAL_FLOAT(55.0-20.0, rozdil(55.0,20.0), "rozdil_5"); // test 6 - desetinnych cisel SHOULD_BE_EQUAL_FLOAT( 358.49-258.4, rozdil(358.49,258.4),"rozdil_6"); // test 7 - desetinnych cisel s vetsi presnosti SHOULD_BE_EQUAL_FLOAT(256.12357-128.999999, rozdil(256.12357,128.999999),"rozdil_7"); // test 8 - zapornych desetinnych cisel SHOULD_BE_EQUAL_FLOAT(-2.555555-(-3.595959), rozdil(-2.555555,-3.595959), "rozdil_8"); /** Testovani nasobeni */ // test 9 - celych cisel SHOULD_BE_EQUAL_FLOAT(11.0*3.0, nasobeni(11.0,3.0),"nasobeni_9"); // test 10 - desetinnych cisel SHOULD_BE_EQUAL_FLOAT(35.555*211.652, nasobeni(35.555,211.652),"nasobeni_10"); // test 11 - nasobeni nulou SHOULD_BE_EQUAL_FLOAT(5.5*0.0, nasobeni(5.5,0.0),"nasobeni_11"); // test 12 - nasobeni zapornym cislem SHOULD_BE_EQUAL_FLOAT(36.56*(-4.123), nasobeni(36.56,-4.123),"nasobeni_12"); /** Testovani podilu */ // test 13 - celych cisel SHOULD_BE_EQUAL_FLOAT( 8.0/4.0, podil(8.0,4.0),"podil_13"); // test 14 - desetinnych cisel SHOULD_BE_EQUAL_FLOAT(64.5/28.244, podil(64.5,28.244),"podil_14"); // test 15 - zapornych cisel SHOULD_BE_EQUAL_FLOAT(-96.2/16.5, podil(-96.2,16.5),"podil_15"); // test 16 - podil nulou SHOULD_BE_EQUAL_INF(45.136/0.0,podil(45.136,0.0),"podil_16"); // using isnan() function /** Testovani mocniny */ // test 17 - umocneni celeho cisla SHOULD_BE_EQUAL_FLOAT(pow(5.0,3.0), my_pow(5.0,3.0),"mocnina_17"); // test 18 - umocneni desetinneho cisla SHOULD_BE_EQUAL_FLOAT(pow(25.684,6.0), my_pow(25.684,6),"mocnina_18"); // test 19 - umocneni zapornym cislem SHOULD_BE_EQUAL_NAN(NAN, my_pow(11.6545,-8),"mocnina_19"); // test 20 - umocneni nulou SHOULD_BE_EQUAL_FLOAT(pow(78.1111,0.0), my_pow(78.1111,0),"mocnina_20"); /** Testovani druhe odmocniny */ // test 21 - odmocneni celeho cisla SHOULD_BE_EQUAL_FLOAT(pow(64.0,1/2.0), my_sqrt(64.0), "odmocnina_21"); // test 22 - odmocneni desetinneho cisla SHOULD_BE_EQUAL_FLOAT(pow(235.154787,1/2.0), my_sqrt(235.154787),"odmocnina_22"); // test 23 - odmocneni zaporneho cisla SHOULD_BE_EQUAL_NAN(pow(-81.154787,1/2.0),my_sqrt(-81.154787),"odmocnina_23"); // test 24 - odmocneni nuly SHOULD_BE_EQUAL_FLOAT(pow(0,1/2.0),my_sqrt(0),"odmocnina_24"); /** Testovani arcus sinu */ // test 25 - krajnich hodnot Df SHOULD_BE_EQUAL_FLOAT(asin(1.0), my_asin(1.0),"arcus_sinus_25"); // test 26 - krajnich hodnot Df SHOULD_BE_EQUAL_FLOAT(asin(-1.0), my_asin(-1.0),"arcus_sinus_26"); // test 27 - hodnot z intervalu (-1;1) SHOULD_BE_EQUAL_FLOAT(asin(0.56), my_asin(0.56),"arcus_sinus_27"); // test 28 - hodnot z intervalu (-1;-0.9) a (0.9;1) SHOULD_BE_EQUAL_FLOAT(asin(-0.96), my_asin(-0.96),"arcus_sinus_28"); //test 29 - hodnot mimo definicni obor SHOULD_BE_EQUAL_NAN(NAN,my_asin(-2.56),"arcus_sinus_29"); /** Testovani faktorialu */ // test 30 - kladneho celeho cisla SHOULD_BE_EQUAL_FACT(120.0,factorial(5),"factorial_33"); // test 31 - kladneho celeho cisla SHOULD_BE_EQUAL_FACT(40320.0,factorial(8),"factorial_34"); //test 32 - zaporneho cisla SHOULD_BE_EQUAL_NAN(NAN,factorial(-6),"factorial_35"); // test 33 - cisla s vysledkem nad limit hodnot promenne integer SHOULD_BE_EQUAL_NAN(NAN,factorial(100.0),"factorial_36"); // test 34 - desetinneho cisla SHOULD_BE_EQUAL_NAN(NAN,factorial(29.99),"factorial_37"); /** Testovani absolutni hodnoty */ // test 37 - kladneho celeho cisla SHOULD_BE_EQUAL_FLOAT(fabs(11.0), my_abs(11.0),"my_abs_38"); // test 38 - zaporneho cisla SHOULD_BE_EQUAL_FLOAT(fabs(-222.0), my_abs(-222.0),"my_abs_39"); // test 39 - desetinneho cisla SHOULD_BE_EQUAL_FLOAT(fabs(-55.666), my_abs(-55.666),"my_abs_40"); // test 40 - nuly SHOULD_BE_EQUAL_FLOAT(fabs(0), my_abs(0),"my_abs_41"); printf("\nTest failed: %d\n", errors); printf("Test passed: %d\n",passed); return 0; }