Exemplo n.º 1
0
void Leg::draw() {
	glPushMatrix();
		glTranslatef(posX, posY, posZ);

		//coxa
		glPushMatrix();
		glRotatef(thighAng,1,0,0);
		glRotatef(90,1,0,0);
			glPushMatrix();
				colors[2]->paint();
				drawSolidCylinder(0.6,0.7, 5.9);
			glPopMatrix();
			glPushMatrix();
				colors[1]->paint();
				if(side == RIGHT) {
					glTranslatef(0.3,0,0);
					glRotatef(-5,0,1,0.2);
				} else { //LEFT
					glTranslatef(-0.3,0,0);
					glRotatef(5,0,1,0.2);

				}
				glRotatef(3, 1, 0, 0);
				drawSolidCylinder(1.0,1.6, 5.5);
			glPopMatrix();
		glPopMatrix();

		//joelho
		glPushMatrix();
		colors[1]->paint();
		glTranslatef(0, -6.5*cosseno(thighAng),-6.5*seno(thighAng));
		glutSolidSphere(0.99, 10,10);
		glPopMatrix();

		//canela
		glPushMatrix();
			glTranslatef(0, -6.5*cosseno(thighAng),-6.5*seno(thighAng));
			glRotatef(shuttleAng, 1,0,0);
			//canela
			glPushMatrix();
				colors[1]->paint();
				glRotatef(90,1,0,0);
				drawSolidCylinder(0.95, 1.6, 5);
			glPopMatrix();
			//pe�
			glPushMatrix();
				colors[2]->paint();
				glTranslatef(0, -5, 1);
				glScalef(2,1,3);
				glutSolidCube(1);
			glPopMatrix();
		glPopMatrix();

	glPopMatrix();

}
/*--------------------------------------------------*/
int main(){
	double ang, s, s1, s2;
	int pid;	
	int n;
	int pipe1[2], pipe2[2];

	printf("Digite o angulo: ");
	scanf("%lf", &ang);

	printf("Digite o numero de termos: ");
	scanf("%d", &n);

	ang = ang * PI / 180; 

	pipe(pipe1);

	pid = fork();

	if ( pid > 0 ){
		
		pipe(pipe2);

		pid = fork();

		if ( pid > 0 ){
			close(pipe1[1]);
			close(pipe2[1]);
						
			read(pipe1[0],&s1,sizeof(double));
			read(pipe2[0],&s2,sizeof(double));
			s = s1 + s2;
			printf("Seno: %f\n", s);			

			close(pipe1[0]);
			close(pipe2[0]);
			wait(NULL);
			wait(NULL);
		}	
		else{
			close(pipe1[0]);
			close(pipe1[1]);
			close(pipe2[0]);
			s2 = seno(ang,n/2+1,n);			
			write(pipe2[1],&s2,sizeof(double));
			close(pipe2[1]);
		}
	}
	else{
		close(pipe1[0]);
		s1 = seno(ang,1,n/2);			
		write(pipe1[1],&s1,sizeof(double));
		close(pipe1[1]);
	}
}
Exemplo n.º 3
0
void main(int argc, char const *argv[])
{
	
	pid_t p1, p2;
	double x;
	int shmid,n;
	double *memoria;

	printf("Digite x e n:\n");
	scanf("%lf %d", &x, &n);

	x = (x * PI)/180;

	shmid = shmget(CHAVE, 2 * sizeof(double), 0600 | IPC_CREAT);
	if (shmid < 0) {
		printf("Erro na criação da area de memoria");
	}

	memoria = shmat(shmid, 0, 0);
	if (memoria < 0) {
		printf("Erro na alocacao da area de memoria");	
	}

	p1 = fork();

	if (p1 > 0) {
		p2 = fork();
		if (p2 > 0) {

			wait(NULL);
			wait(NULL);

			printf("Seno: %f\n", memoria[0] - memoria[1]);
			shmdt(memoria);
			shmctl(shmid,IPC_RMID,NULL);

		} else {

			memoria[0] = seno(x, 1, n);
			shmdt(memoria);

		}
	} else {

		memoria[1] = seno(x, 3, n);
		shmdt(memoria);
	}
}
Exemplo n.º 4
0
int main(void) {
        double angulo;
        int precisao;
      freopen("e26.txt", "r", stdin);
      freopen("s26.txt", "w", stdout);

        scanf("%lf %d", &angulo, &precisao);

        while (angulo >= 0.0) {
                printf("sen(%.2lf): %.4lf, ", angulo, seno(angulo, precisao));

                if (angulo != 90.0 && angulo != 270.0) {
                        printf("cos(%.2lf): %.4lf, ", angulo, cosseno(angulo, precisao));
                        printf("tan(%.2lf): %.4lf", angulo, tangente(angulo, precisao));
                }
               else {
                        printf("cos(%.2lf): %.4lf ", angulo, cosseno(angulo, precisao));
                }


                printf("\n");
                scanf("%lf %d", &angulo, &precisao);
        }

       fclose(stdin);
        fclose(stdout);
        return 0;
}
Exemplo n.º 5
0
int main(int argc, char **argv)
{
	int c, op=0, op2=0, x, flag=0;
	double *vecX, *vecY, limiteI = 0.0, limiteD=1.0, h=0.1;
	double auxPaso,auxPaso2; 
	//auxPaso es para saber si el h es correcto.
	printf("Final Programacion concurrente.");
	printf("\nProfesor: Eschoyez, Maximiliano Andrés. ");
	printf("\nAlumno: Mina, Franco Ignacio.");
	do{
		printf("\n\n1. Ingresar Datos.\n2. Elegir funcion.");
		printf("\n3. Calcular\n4. Salir.");
		scanf("%d",&op);
		switch(op){
			
			case 1:{
				printf("Ingrese el limite izquierdo: ");           
				scanf("%lf",&limiteI);
				printf("Ingrese el limite derecho: ");
				scanf("%lf",&limiteD);
			
				do{		
					
					printf("Ingrese el paso (en caso de que sea invalido");
					printf(" el h se ingresa otra vez): ");
					scanf("%lf",&h);		
					auxPaso = modf((limiteD - limiteI) / h ,&auxPaso2);		
					printf("\n--------------------------------\n");
					
				}while(auxPaso > 0);		
				break;
			}
			case 2:{
				c =(int) auxPaso2;
				vecX = (double*) malloc(c * sizeof(double));
				vecY = (double*) malloc(c * sizeof(double));
				vector(limiteI, vecX, h, auxPaso2);
							
				do{
					printf("\n\n1. F(x)= X \n2. F(x)= (2/3)*X^2 \n3. F(x)= sen(x)");
					printf("\n4.Salir\n Elija una opcion: ");
					scanf("%d",&op);
					switch(op2){
						case 1:{
							lineal(vecX, vecY, c);
							break;
						}
						case 2:{
							cuadrado(vecX, vecY, c);
							break;
						}
						case 3:{
							seno(vecX, vecY, c);
							break;
						}
						case 4:{
							break;
						}
						default:{
							printf("\nOpcion no valida");
						}			 
				}
			}while(op2 != 4);
				flag++;
				break;
			}
			case 3:{
				if(flag != 0){
					//aca calcula
				}
				else{
					printf("\nPor favor eliga alguna funcion");
					printf(" con la opcion 2");					
				}
				break;
			}
			case 4:{
				printf("\nEl programa finalizara");
				break;
			}
			default:{
				printf("\nOpcion incorrecta");
			}			
		}
	}while(op != 4);
	
	return 0;
}
Exemplo n.º 6
0
void biseccion(int opcion)
{
    int *ptPolinomio, grado;
    int n;
    float li,ls,e,d,a,z,ex=2.7182818284;
    float fa,fb,pm,fx;
    
    if(opcion==DEFINE_POLINOMIO){
        printf("Define el grado del polinomio:\n");
        scanf("%d", &grado);
        ptPolinomio = definePolinomio(grado);
        leePolinomio(ptPolinomio, grado);
    }
    
    printf("Ingresa el Limite inferior : \n");
    scanf("%f",&li);
    printf("Ingresa el Limite Superior : \n");
    scanf("%f",&ls);
    printf("Ingresa el Error de tolerancia : \n");
    scanf("%f",&e);
    pm=(li+ls)/2;
    
    switch(opcion)
    {
        case 1:
            fa=seno(li);
            fb=seno(ls);
            fx=seno(pm);
            break;
             
        case 2:
            fa=senoCuadrado(li);
            fb=senoCuadrado(ls);
            fx=senoCuadrado(pm);
            break;
             
        case 3:
            fa=exponente(li);
            fb=exponente(ls);
            fx=exponente(pm);
            break;
             
        case 4:
            fa=senoCoseno(li);
            fb=senoCoseno(ls);
            fx=senoCoseno(pm);
            break;
            
        case 5:
            fa=evaluaPolinomio(li, ptPolinomio, grado);
            fb=evaluaPolinomio(ls, ptPolinomio, grado);
            fx=evaluaPolinomio(pm, ptPolinomio, grado);
            break;
            
    }
    
    a=(ls-li);
    if(a<0){
        d=(-1*a);
    }else{
        d=a;
    }
    
    if (d<e){
        z=0 ;
    }else{
        z=1;
    }
    
    n=0;
    printf("\nI LI\tLS\tf(LI)\tf(LS)\tPM\tf(PM)\tf(LI)*f(PM)\t\"|LS-LI|<Error\"\n");
    printf("0 %.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%f\tFalso\n",li,ls,fa,fb,pm,fx,fa*fx);
    while(z)
    {
    n=n+1;
    if ((fa*fx)>0){
                   li=pm;
                   }
    if ((fa*fx)<0){
                   ls=pm;
                   }
    pm=(li+ls)/2;
    
    switch(opcion)
    {
        case 1:
            fa=seno(li);
            fb=seno(ls);
            fx=seno(pm);
            break;
             
        case 2:
            fa=senoCuadrado(li);
            fb=senoCuadrado(ls);
            fx=senoCuadrado(pm);
            break;
             
        case 3:
            fa=exponente(li);
            fb=exponente(ls);
            fx=exponente(pm);
            break;
             
        case 4:
            fa=senoCoseno(li);
            fb=senoCoseno(ls);
            fx=senoCoseno(pm);
            break;
            
        case 5:
            fa=evaluaPolinomio(li, ptPolinomio, grado);
            fb=evaluaPolinomio(ls, ptPolinomio, grado);
            fx=evaluaPolinomio(pm, ptPolinomio, grado);
            break;
    }
    
    a=(ls-li);
    if(a<0){
    d=(-1*a);
}
else d=a;
    if (d<e)
    {
                z=0 ;
                 }
    else
    z=1;
     if (z==0){
               printf("%d %.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%f\tDetener\n",n,
                       li,ls,fa,fb,pm,fx,fa*fx);
               }
               else
    printf("%d %.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%f\tFalso\n",n,li,ls,fa,fb,
             pm,fx,fa*fx);
    }
    printf("\nLa raiz es : %.9f \n\n",pm);
    free(ptPolinomio);

}
Exemplo n.º 7
0
void falsaPosicion(int opcion)
{
    int *ptPolinomio, grado;
    int n;
    float li,ls,e,d,z,ex=2.7182818284;
    float fa,fb,fp,fx;

    if(opcion==DEFINE_POLINOMIO){
        printf("Define el grado del polinomio:\n");
        scanf("%d", &grado);
        ptPolinomio = definePolinomio(grado);
        leePolinomio(ptPolinomio, grado);
    }
    
    printf("Ingresa el Limite inferior : \n");
    scanf("%f",&li);
    printf("Ingresa el Limite Superior : \n");
    scanf("%f",&ls);
    printf("Ingresa el Error de tolerancia : \n");
    scanf("%f",&e);
    switch(opcion)
    {
             case 1:
                 fa=seno(li);
                 fb=seno(ls);
                 fp=((ls*fa-li*fb)/(fa-fb));
                 fx=seno(fp);
             break;
             
             case 2:
                 fa=senoCuadrado(li);
                 fb=senoCuadrado(ls);
                 fp=((ls*fa-li*fb)/(fa-fb));
                 fx=senoCuadrado(fp);
             break;
             
             case 3:
                 fa=(pow(ex,li)*(pow(li,2)-16));
                 fb=(pow(ex,ls)*(pow(ls,2)-16));
                 fp=((ls*fa-li*fb)/(fa-fb));
                 fx=(pow(ex,fp)*(pow(fp,2)-16));
             break;
             
             case 4:
                 fa=senoCoseno(li);
                 fb=senoCoseno(ls);
                 fp=((ls*fa-li*fb)/(fa-fb));
                 fx=senoCoseno(fp);
             break;
             
             case 5:
                 fa=evaluaPolinomio(li, ptPolinomio, grado);
                 fb=evaluaPolinomio(ls, ptPolinomio, grado);
                 fp=((ls*fa-li*fb)/(fa-fb));
                 fx=evaluaPolinomio(fp, ptPolinomio, grado);
             break;
    }
    
    if(fx<0){
    d=(-1*fx);
    }else{
        d=fx;
    }
    
    if (d<e)
    {
                z=0 ;
                 }
    else
    z=1;
    n=0;
    printf("\nI LI\tLS\tf(LI)\tf(LS)\tFP\tf(FP)\tf(LI)*f(FP)\t\"|f(FP)|<Error\"\n");
    printf("0 %.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%f         \tFalso\n",li,ls,fa,fb,fp,fx,fa*fx);
    while(z)
    {
    n=n+1;
    if ((fa*fx)>0){
                   li=fp;
                   }
    if ((fa*fx)<0){
                   ls=fp;
                   }
    
    switch(opcion)
    {
             case 1:
                 fa=seno(li);
                 fb=seno(ls);
                 fp=((ls*fa-li*fb)/(fa-fb));
                 fx=seno(fp);
             break;
             
             case 2:
                 fa=senoCuadrado(li);
                 fb=senoCuadrado(ls);
                 fp=((ls*fa-li*fb)/(fa-fb));
                 fx=senoCuadrado(fp);
             break;
             
             case 3:
                 fa=(pow(ex,li)*(pow(li,2)-16));
                 fb=(pow(ex,ls)*(pow(ls,2)-16));
                 fp=((ls*fa-li*fb)/(fa-fb));
                 fx=(pow(ex,fp)*(pow(fp,2)-16));
             break;
             
             case 4:
                 fa=senoCoseno(li);
                 fb=senoCoseno(ls);
                 fp=((ls*fa-li*fb)/(fa-fb));
                 fx=senoCoseno(fp);
             break;
             
             case 5:
                 fa=evaluaPolinomio(li, ptPolinomio, grado);
                 fb=evaluaPolinomio(ls, ptPolinomio, grado);
                 fp=((ls*fa-li*fb)/(fa-fb));
                 fx=evaluaPolinomio(fp, ptPolinomio, grado);
             break;
    }
    if(fx<0){
    d=(-1*fx);
}
else d=fx;
    if (d<e)
    {
                z=0 ;
                 }
    else
    z=1;
     if (z==0){
               printf("%d %.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%f         \tDetener\n",n,li,ls,fa,fb,fp,fx,fa*fx);
               }
               else
    printf("%d %.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%f         \tFalso\n",n,li,ls,fa,fb,fp,fx,fa*fx);
    }

    printf("\nLa raiz es : %.9f \n\n",fp);
    free(ptPolinomio);
}
Exemplo n.º 8
0
double tangente(double x, int precisao) {
        return seno(x, precisao) / cosseno(x, precisao);
}
Exemplo n.º 9
0
int main(int argc, char* argv[]){
    bind_textdomain_codeset ("calc", "UTF-8");
    setlocale(LC_ALL, "");
    bindtextdomain("calc","idioma");
    textdomain("calc");
    // declaracion de variables locales
    //variable para leer la categoria de funciones
    int categoria;

    //Cambio del manejo de señales, mensaje de error en caso de que no sea posible
	if (signal (SIGINT, myCatch) == SIG_ERR){
		perror ("SIGINT can not change");
	}

    if (signal (SIGSEGV	, myCatch) == SIG_ERR){
		perror ("SIGTERM can not change");
	}

    //Mensaje de bienvenida
    printf(_("\n\nWelcome, you are running a calculator developed by the team Icazas!\n\n"));

    //Ciclo principal
    do{
        //Desplegamos en pantalla el menu de categorias
        mostrarMenu ();

        //Leemos un digito en base 10 de maximo 2 caracteres
        categoria = readInt(10,2);

        //Si el valor leido es un numero evaluamos el menu
        //De lo contrario mostramos mensaje de error
        if (categoria != myNaN ()) {

                //Con la categoria y la operacion elegidas evaluamos la funcion adecuada
                switch (categoria) {
                  case 1: { suma(); break; }
                  case 2: { resta(); break; }
                  case 3: { multiplicacion(); break; }
                  case 4: { division(); break;}
                  case 5: { seno(); break; }
                  case 6: { coseno(); break; }
                  case 7: { tangente(); break; }
                  case 8: { arcoseno(); break; }
                  case 9: { arcoCoseno(); break; }
                  case 10:{ coseno(); break; }
                  case 11:{ senoHiper(); break; }
                  case 12:{ coship(); break; }
                  case 13:{ tangenteHiper(); break; }
                  case 14:{ atanDos(); break; }
                  case 15:{ expon(); break; }
                  case 16:{ logaritmoNatural(); break; }
                  case 17:{ decLog(); break; }
                  case 18:{ raizCuadrada(); break; }
                  case 19:{ potencia(); break; }
                  case 20:{ valorAbsoluto(); break; }
                  case 21:{ fmodd(); break;}
                  case 22:{ funcionTecho(); break;}
                  case 23:{ funcionPiso(); break; }
                  case 24:{ frexpre(); break; }
                  case 25:{ ldexpe(); break;}
                  case 26:{ moduloF(); break;}
                  case 27:{
                      printf(_("\n\nThank you for using our calculator!\n"));
                      printf(_("Come back soon!\n\n"));
                      break;
                  }
                  default:{
                      printf(_("\n\nYou entered an invalid option!\n"));
                      printf(_("Try again!\n\n"));
                      break;
                  }
              }
        }
        else{
            printf(_("\n\nError: It is not a number!\n"));
            printf(_("Try again!\n\n"));
        }
    }while (categoria != 27);
    return 0;
}
Exemplo n.º 10
0
void menu_graf(char *file)
{
    FILE * pbm;
    int flag_opt=0; /* flag_opt = 0 si no entro a ninguna funcion a graficar */
    typedef enum {SEN=1,COS,POL0,POL1,POL2,POL3,LN,EXP,DEFAULT,ERROR=255} opt_graf_t;
    opt_graf_t optgraf;
    char option[MAX_CHAR];
    int matriz[RESOLUCION][RESOLUCION];
    float vect_x[RESOLUCION];
    float vect_y[RESOLUCION];

    cargo_x(vect_x);

    printf(MENU_GRAF);
    limpiarbuffer();

    fgets(option, MAX_CHAR, stdin);
    option[strlen(option)-1]='\0';
    optgraf=atoi(option);

    /* si se ingreso algo que no es una opcion debe ir al default */
    if (optgraf==0) optgraf=DEFAULT;


    while (optgraf) {

        switch(optgraf)
        {
        case SEN:
            seno(vect_x, vect_y);
            flag_opt=1;
            break;

        case COS:
            coseno(vect_x, vect_y);
            flag_opt=1;
            break;

        case POL0:
            pol0(vect_x, vect_y);
            flag_opt=1;
            break;

        case POL1:
            pol1(vect_x, vect_y);
            flag_opt=1;
            break;

        case POL2:
            pol2(vect_x, vect_y);
            flag_opt=1;
            break;

        case POL3:
            pol3(vect_x, vect_y);
            flag_opt=1;
            break;

        case LN:
            ln(vect_x, vect_y);
            flag_opt=1;
            break;

        case EXP:
            expo(vect_x, vect_y);
            flag_opt=1;
            break;

        default:
            printf("Entrada inválida!\n");

        }
        /* Este if corta la ejecuccion del programa si ya grafico sale del bucle while(optgraf) */
        if(flag_opt==1) break;

        printf("Presione enter para volver al menu \n");
        limpiarbuffer();
        system(CLS);
        printf(MENU_GRAF);

        fgets(option, MAX_CHAR, stdin);
        option[strlen(option)-1]='\0';
        optgraf=atoi(option);

        /* Si se ingreso una letra o algo que no es valido*/
        if (!optgraf) optgraf=255;

    }


    inicializo_matriz(matriz);
    inicializo_ejes(matriz);
    cargo_matriz(matriz, vect_y);
    if(file==NULL) imprimo_matriz(matriz);
    else
    {
        /* Abrimos el pbm para guardar datos como file */
        make_pbm_file(&pbm,file);
        /* grabamos la info y luego cerramos el file* */
        write_pbm_file(&pbm, matriz, RESOLUCION, RESOLUCION);
        close_pbm_file(&pbm);
    }

}
Exemplo n.º 11
0
	double  coseno(double x){
		double cos=radiceq(1-potint(seno(x),2));
		return cos;
	}