예제 #1
0
파일: pt_5.c 프로젝트: melias122/scratch
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;
}
예제 #2
0
파일: pt_5.c 프로젝트: melias122/scratch
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;
}
예제 #3
0
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;
}
예제 #4
0
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;
}