コード例 #1
0
/* ------------------------------ */
int main() {

   int x, coef, exp, poliEscolhido, operando1, operando2;
   Polinomio *p1 = NULL;
   Polinomio *p2 = NULL;
   Polinomio *resultado = NULL;

   scanf("%d",&x);

   int opcao = 1;
   while(opcao != 0){
      scanf("%d",&opcao);
      switch(opcao){

         case ADICIONAR_POLI:
            scanf("%d %d %d", &poliEscolhido, &coef, &exp);
            poliEscolhido == 1 ? adicionarPolinomio(&p1,coef,exp) : adicionarPolinomio(&p2,coef,exp);
            //imprimir(p1);
         break;

         case REMOVER_POLI:
            scanf("%d %d", &poliEscolhido, &exp);
            poliEscolhido == 1 ? removerPolinomio(&p1,exp) : removerPolinomio(&p2,exp);
         break;

         case SOMAR_POLI:
            if(resultado != NULL) libera(resultado);
            resultado = somarPolinomios(p1,p2);
           
         break;

         case SUBTRAIR_POLI:
            scanf("%d %d", &operando1, &operando2);
            if(resultado != NULL) libera(resultado);
            resultado = subtrairPolinomios(operando1 == 1 ? p1 : p2, operando2 == 2 ? p2 : p1);
         break;

         case MULTIPLICAR_POLI:
            if(resultado != NULL) libera(resultado);
            resultado = multiplicarPolinomios(p1,p2);
           //imprimir(resultado);
         break;

         case CALCULAR_POLI:
            scanf("%d",&poliEscolhido);
            switch(poliEscolhido) {
               case 1: printf("%d\n",calcularPolinomio(p1,x)); break;
               case 2: printf("%d\n",calcularPolinomio(p2,x)); break;
               case 3: printf("%d\n",calcularPolinomio(resultado,x)); break;
            }
         break;
	
	
	 
      
   }
}
   return (0);

}
コード例 #2
0
ファイル: tpSuperior.c プロジェクト: nazarenolevy/tpSuperior
void menuPrincipal(float **matrizDePares, int cantidadDePares, float* vectorDeCoeficientesPro, float* vectorDeCoeficientesReg,int *volverAEmpezar)
{
    int salirPrograma = NO;
    int opcion = 0;
    *volverAEmpezar = NO;

    while(salirPrograma == NO && *volverAEmpezar == NO)
    {
    printf("\n\n\n\nMenu Principal\n\n");
    printf("1. Analizar el polinomio en algun punto del intervalo de interpolacion\n");
    printf("2. Agregar o quitar un par ordenado\n");
    printf("3. Volver a empezar\n");
    printf("4. Salir\n\n");
    printf("Opcion: ");
    scanf("%d", &opcion);
    system("clear");



    switch(opcion)
    {
                            case 1:
                           {


                           //Calculo del valor del polinomio en un punto
                           calcularPolinomio(cantidadDePares, vectorDeCoeficientesPro, vectorDeCoeficientesReg, matrizDePares);



                                break;
                            }
                            case 2:
                            {
                                  //printf de los datos ingresados de forma ordenada
                                  int volverAlMenu = NO;
                                  while(volverAlMenu == NO)
                                  {
                                  printf("\n\nPares Ordenados:\n");
                                  int i;
                                  i = 0;
                                  while(i < cantidadDePares)
                                  {
                                  printf("X= %.*f Y= %.*f\n",cantidadDecimales, matrizDePares[i][0], cantidadDecimales, matrizDePares[i][1]);
                                  i++;
                                  }

                                  int opcion2 = 0;
                                  printf("\nElija la opcion deseada:\n");
                                  printf("1. Agregar par ordenado\n");
                                  printf("2. Quitar par ordenado\n");
                                  printf("3. Mostrar polinomio actual\n");
                                  printf("4. Volver al Menu Principal\n\n");
                                  printf("Opcion: ");
                                  scanf("%d", &opcion2);




                                  switch(opcion2)
                                  {
                                                case 1:
                                                     {
                                                              float x, y;
                                                              int encontrado = NO;


                                                             cantidadDePares++;

															 matrizDePares = (float **) realloc(matrizDePares, cantidadDePares * sizeof(float *));


															 for(i=0; i < cantidadDePares; i++){
															 matrizDePares[i] = (float *) realloc( matrizDePares[i], (cantidadDePares + 1) * sizeof(float));
															 }

                                                              do{
                                                              printf("Ingrese el nuevo par...\n");
                                                              printf("Componente X: ");
                                                              scanf("%f", &x);
                                                              printf("Componente Y: ");
                                                              scanf("%f", &y);

                                                              system("clear");



                                                              encontrado = buscarX(x, matrizDePares, cantidadDePares-1);

                                                              if(encontrado == NO){
                                                              matrizDePares[cantidadDePares - 1][0] = x;
                                                              matrizDePares[cantidadDePares - 1][1] = y;

                                                              matrizDePares = burbuja(cantidadDePares, matrizDePares);


                                                              matrizDePares = completarMatriz(matrizDePares, cantidadDePares);

                                                              vectorDeCoeficientesPro = coeficientesPro(cantidadDePares, matrizDePares);


                                                              vectorDeCoeficientesReg = coeficientesReg(cantidadDePares, matrizDePares);

                                                              }else
                                                            	  printf("ERROR: ya se ingreso dicho valor de X, por favor ingrese otro\n\n");

                                                              }while(encontrado == SI);

                                                              break;
                                                     }
                                                case 2:
                                                     {

                                                        printf("Pares Ordenados:\n");
                                                    	int i;
														i = 0;
														while(i < cantidadDePares)
														{
														printf("X= %.*f Y= %.*f\n",cantidadDecimales, matrizDePares[i][0],cantidadDecimales, matrizDePares[i][1]);
														i++;
                                                    	}

														matrizDePares = buscarYBorrarPar(matrizDePares, &cantidadDePares);

														matrizDePares = burbuja(cantidadDePares, matrizDePares);


														 matrizDePares = completarMatriz(matrizDePares, cantidadDePares);

														 vectorDeCoeficientesPro = coeficientesPro(cantidadDePares, matrizDePares);


														 vectorDeCoeficientesReg = coeficientesReg(cantidadDePares, matrizDePares);



                                                              break;

                                                     }
                                                case 3:
                                                {

                                                	  //Mostrando los Polinomios
                                                	   mostrarPolinomios(cantidadDePares, vectorDeCoeficientesPro, vectorDeCoeficientesReg, matrizDePares);

                                                	   break;

                                                }
                                                case 4:
                                                     {
                                                                      //mostrar el polinomio
                                                                      volverAlMenu = SI;
                                                                      break;
                                                     }
                                                default:
                                                {
                                                	printf("Error, opcion invalida\n");

                                                	break;
                                                }

                                  }
                                  }
                                  break;
                            }
                            case 3:
                                 {
                                        *volverAEmpezar = SI;
                                        system("clear");

                                        break;
                                 }
                            case 4:
                           {
                                    salirPrograma = SI;
                                  //  sleep(1000);
                                    break;
                           }


                           }



   }



}