Esempio n. 1
0
File: main.c Progetto: Glooby5/proj2
/**
 * Spocita tangens pomoci cfrac_tan() se zadanou presnosti
 * @param a Uhel pro vypocet
 * @param eps Presnost vypoctu
 * @return Tangens zadaneho uhlu
 */
double getAcurateTan(double a, double eps)
{
    double prevTan = 0.0;
    double actTan = cfrac_tan(a, eps);

    for (unsigned int i = 2; my_fabs(actTan - prevTan) > eps; i++)
    {
        prevTan = actTan;
        actTan = cfrac_tan(a, i);
    }

    return actTan;
}
Esempio n. 2
0
File: main.c Progetto: Glooby5/proj2
/**
 * Spocita tangens nekolika zpusoby a vypocita absolutni chyby
 * @param val Hodnoty pro vypocet
 */
void calculateTan(TValue val)
{
    double tan_lib = tan(val.A);
    double tan_taylor;
    double tan_cfrac;
    double te;
    double ce;

    for (unsigned int i = val.N; i <= val.M; i++)
    {
        tan_taylor = taylor_tan(val.A, i);
        tan_cfrac = cfrac_tan(val.A, i);

        te = my_fabs(tan_taylor - tan_lib);
        ce = my_fabs(tan_cfrac - tan_lib);

        printf("%d %e %e %e %e %e\n", i, tan_lib, tan_taylor, te, tan_cfrac, ce);
    }
}
Esempio n. 3
0
int tang(int argc, char * argv[])
{
 double x;
 unsigned int n,i;
 char * err;
 if (argc >5) 
    {
     fprintf(stderr, "ERROR bolo zadanych vela argumentov pre funkciu --tan \n");// ak je zadanych viac argumentov ako je dane pre funkciu vypise chybu 
     return EXIT_FAILURE;
    }
 x = strtod(argv[2],&err);   //osterenie chybneho vstupu
 if (err == argv[2])
    {
     fprintf(stderr,"ERROR zaddana zla hodnota\n");
     return EXIT_FAILURE;
    }
 n = atoi(argv[4]); //posledny prvok rozsahu
 i= atoi(argv[3]);// prvy prvok rozsahu
 if (x>1.4)
    {
     fprintf(stderr, "ERROR zadany zly rozsah parametrov\n");// ak je zadany zly rozsah parametrov tak vypise chybove hlasenie 
     return EXIT_FAILURE;
    }
 if (i>n || n >14)
    {
     fprintf(stderr, "ERROR zadany zly rozsah\n"); // ak je zadany zly rozsah tak vypise chybove hlasenie 
     return EXIT_FAILURE;
    }
 for(;i<=n;i++)
    printf ("%d %e %e %e %e %e\n",i , tan(x), taylor_tan(x,i-1), MYABS(tan(x) - taylor_tan(x,i-1) ) , cfrac_tan(x,i),MYABS((tan(x) - cfrac_tan(x,i)) )); // vypis funkcie --tan
 return EXIT_SUCCESS;
}
Esempio n. 4
0
int range(int argc, char * argv[])
{
 double x,vyska,vzdialenost;
 unsigned int n;
 char *err;
 if ((strcmp(argv[1],"-m")==0)) // ak je zadany argument -m prebehne vypoccet vzdialenosti  
    {
     if (argc >4) 
        {
         fprintf(stderr, "ERROR bolo zadanych vela argumentov pre funkciu -m\n");// ak je zadanych viac argumentov ako je dane pre funkciu vypise chybu 
         return EXIT_FAILURE;
        }
     else if (argc==3 || argc == 4)
        {
         vyska=1.5;
         n=ITERNUMB; //lebo po 10 iteracii uz nemame odchylku
         x = strtod(argv[2],&err);   //osterenie chybneho vstupu
         if (err == argv[2])
            {
             fprintf(stderr,"ERROR zaddana zla hodnota\n");
             return EXIT_FAILURE;
            }
         printf("%.10e\n",vyska/(cfrac_tan(x,n)) );
         vzdialenost=vyska/cfrac_tan(x,n);// vypocet vzdialenosti pomocou zretazenych zlomkov
         if (argc==4)
            {
             x = strtod(argv[3],&err);   //osterenie chybneho vstupu
             if (err == argv[3])
                {
                 fprintf(stderr,"ERROR zaddana zla hodnota\n");
                 return EXIT_FAILURE;
                }
             printf("%.10e\n",(cfrac_tan(x,n)*vzdialenost+vyska ));// vypocet vysky pomocou zretazenych zlomkov
            }
        } 
    }
 else if  ((strcmp(argv[1],"-c")==0) && (strcmp(argv[3],"-m")==0) )// ak je zadany aj parameter -c tak zmenime vysku meracieho pristroja pri merani vzdialenosti a vysky
    {
     if(argc==5 || argc == 6)
        { 
         vyska = strtod(argv[2],&err);   //osterenie chybneho vstupu
            if (err == argv[2])
                {
                 fprintf(stderr,"ERROR zaddana zla hodnota\n");
                 return EXIT_FAILURE;
                }
         if (vyska>100  || vyska <0 )// osetrenie zadanych hodnout podla zadania
            {
             fprintf(stderr,"ERROR zadany zly rozsah");
             return EXIT_SUCCESS;
            }
         n=ITERNUMB; //lebo po 10 iteracii uz nemame odchylku
         x = strtod(argv[4],&err);   
         if (err == argv[4])
            {
             fprintf(stderr,"ERROR zaddana zla hodnota\n");
             return EXIT_FAILURE;
            }
         printf("%.10e\n",vyska/(cfrac_tan(x,n)) );
         vzdialenost=vyska/cfrac_tan(x,n);// vypocet vzdialenosti objektu pomocou zretazenych zlomkov
         if (argc==6)
            {
             x = strtod(argv[5],&err);  //osterenie chybneho vstupu 
             if (err == argv[5])
                {
                 fprintf(stderr,"ERROR zaddana zla hodnota\n");
                 return EXIT_FAILURE;
                }
             printf("%.10e\n",(cfrac_tan(x,n)*vzdialenost+vyska ));//vypocet vysky objektu pomocou zretazenych zlomkov a predchadzajuceho vypoctu vzdialenosti
            }
        }
    }
    else
    {
     fprintf(stderr, "ERROR neplatny argument, pre napovedu spustite program v tvar /proj1 --help\n"); //ak je zadany argument ini ako su povolee vypise chybu 
     return EXIT_FAILURE;
    }  
  return EXIT_SUCCESS ;
}