Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/04/2011, 18:57
Dtc
 
Fecha de Ingreso: marzo-2011
Ubicación: México
Mensajes: 39
Antigüedad: 13 años, 1 mes
Puntos: 1
De acuerdo Respuesta: Errores raros en codigo correcto

Gracias por responder. He decido mejor eliminar la función "funcion1", lo que pasa es que pensaba utilizarla mas adelante pero he pensado en otra cosa que aplicaré después.

He corregido varias cosas. Y revisando linea por linea (ya que antes solo le dí un "vistazo"), me dí cuenta de que faltaba cerrar con un } el switch que está dentro del switch principal. Una vez hecho eso, dejaron de salir errores. Mi código, quedó así, y por ahora compila y funciona bien:

Código C:
Ver original
  1. /* -----------------Funciomático-----------------------
  2. -----Creador: Dtc Srni (Erick Renato Vega)-----------
  3. El programa evaluará funciones matemáticas, tanto funciones cuadráticas como cúbicas y lineales,
  4. ademas de guardar los resultados y datos en un archivo de texto.
  5. Caracteristicas:
  6. -Soporte para los 3 tipos de funciones soportadas (por el momento, en esta versión) con cualquier
  7. tipo de signo o valor.
  8. -Distinción de las variables, terminos independientes, coeficientes y exponentes.
  9. -El programa grabará dominios en variables, de uno en uno, en un máximo de 10, hasta que el usuario
  10. presione “n”
  11. http://www.dtcsrni.co.cc
  12. */
  13.  
  14.  
  15. /*Archivos de cabecera (prototipos de funciones de librería)*/
  16.  
  17.  
  18. #include <stdio.h>
  19. #include <stdlib.h>
  20. #include <math.h>
  21.  
  22.  
  23. /*Fin de archivos de cabecera (prototipos de funciones de librería)*/
  24.  
  25. /* Prototipos de Funciones */
  26. void fsimple (float coeficiente1, float dominio1, float dominio2, float dominio3, float dominio4, float dominio5, float dominio6, float dominio7, float dominio8, float dominio9, float dominio10, float termino1, float *rango1, float *rango2, float *rango3, float *rango4, float *rango5, float *rango6, float *rango7, float *rango8, float *rango9, float *rango10);
  27. /* Fin de prototipos de Funciones */
  28. /* Declaracion de Variables */
  29.  
  30. float f1, f2, coef1c1, coef2c1, coef2c2c, coef3c1, coef3c2, coef3c3, term1, term2, term3, dominio1d1, dominio1d2, dominio1d3, dominio1d4, dominio1d5, dominio1d6, dominio1d7, dominio1d8, dominio1d9, dominio1d10, dominio2d1, dominio2d2, dominio2d3, dominio2d4, dominio2d5, dominio2d6, dominio2d7, dominio2d8, dominio2d9, dominio2d10, dominio3d1, dominio3d2, dominio3d4, dominio3d5, dominio3d6, dominio3d7, dominio3d8, dominio3d9, dominio3d10, rango1r1, rango1r2, rango1r3, rango1r4, rango1r5, rango1r6, rango1r7, rango1r8, rango1r9, rango1r10, rango2r1, rango2r2, rango2r3, rango2r4, rango2r5, rango2r6, rango2r7, rango2r8, rango2r9, rango2r10, rango3r1, rango3r2, rango3r3, rango3r4, rango3r5, rango3r6, rango3r7, rango3r8, rango3r9, rango3r10;
  31. int funcioneleg, funcioneleg2;
  32.  
  33. /* Fin de declaración de Variables */
  34.  
  35. /* Inicio del proceso principal del programa */
  36.  
  37.  
  38. int main()
  39.  
  40. {
  41. printf("-------------------Funciomatico-----------------\n\n");
  42. printf("-Por Dtc Srni-\n\n");
  43.    /* Menú principal */
  44. printf("Bienvenido al sistema\n\nEste es el Funciomatico\nPara iniciar, elige y teclea el numero de funcion a evaluar:\n");
  45.    printf("1.- F(X)= x+1\n");
  46.    printf("2.- F(X)= 2x2+2x+1\n");
  47.    printf("3.- F(X)= 2x3+2x2+5x+1\n");
  48.    printf("4.- F(X)= 1/4x+2\n");
  49.    printf("5.- F(X)= 1/4x2+1/4x+5\n");
  50.    printf("6.- F(X)=1/4x+1/1/4x+1\n");
  51. scanf("%i",&funcioneleg);
  52.  
  53.     switch(funcioneleg)
  54.     {
  55.         case 1:
  56.             printf("El tipo de funcion elegida es F(X)= x+1\n");
  57.          printf("Por favor, escribe el valor del termino independiente (+-1):\n");
  58.          scanf("%f", &term1);
  59.          printf("Ahora, escriba el valor del coeficiente\n");
  60.          scanf("%f", &coef1c1);
  61.          printf("De cuantos dominios es la funcion a evaluar? \n1.- 2 dominios \n2.- 3 dominios \n3.- 4 dominios \n4.- 5 dominios \n5.- 6 dominios \n6.- 7 dominios \n7.- 8 dominios \n8.- 9 dominios \n9.- 10 dominios\n");
  62.          scanf("%i", &funcioneleg2);
  63.          switch(funcioneleg2)
  64.          {
  65.          case 1:
  66.            printf("Funcion de 2 dominios\n");
  67.            printf("Por favor, escribe el primer dominio y presiona enter: \n");
  68.            scanf("%f", &dominio1d1);
  69.            printf("Ahora, escribe el segundo dominio y presiona enter: \n");
  70.            scanf("%f", &dominio1d2);
  71.            fsimple(coef1c1, dominio1d1, dominio1d2, dominio1d3, dominio1d4, dominio1d5, dominio1d6, dominio1d7, dominio1d8, dominio1d9, dominio1d10, term1, &rango1r1, &rango1r2, &rango1r3, &rango1r4, &rango1r5, &rango1r6, &rango1r7, &rango1r8, &rango1r9, &rango1r10);
  72.            printf("\nEl dominio de la funcion F(X)=%fx+%f es:\n\nD{%f, %f}\n\nEl rango de la funcion es:\n\n R{%f, %f,}\n\n", coef1c1, term1, dominio1d1, dominio1d2, rango1r1, rango1r2);
  73.       system("pause");
  74.         break;
  75.          }
  76.         case 2:
  77.             printf("El tipo de funcion elegida es F(X)= 2x2+2x+1\n");
  78.             break;
  79.         case 3:
  80.             printf("El tipo de funcion elegida es F(X)= 2x3+2x2+5x+1\n");
  81.             break;
  82.         case 4:
  83.             printf("El tipo de funcion elegida es F(X)= 1/4x+2\n");
  84.             break;
  85.         case 5:
  86.             printf("El tipo de funcion elegida es F(X)= 1/4x2+1/4x+5\n");
  87.             break;
  88.         case 6:
  89.             printf("El tipo de funcion elegida es 1/4x+1/1/4x+1\n");
  90.             break;
  91.         default:
  92.             printf("Has ingresado un numero de opcion no valido, intentalo de nuevo\n");
  93.  
  94.  
  95.     }
  96.  
  97.    /* Fin de Menú principal */
  98.  
  99.  
  100.   return 0;
  101. }
  102.  
  103. /*Procesos de funciones para evaluar */
  104.  
  105.       void fsimple(float coeficiente1, float dominio1, float dominio2, float dominio3, float dominio4, float dominio5, float dominio6, float dominio7, float dominio8, float dominio9, float dominio10, float termino1, float *rango1, float *rango2, float *rango3, float *rango4, float *rango5, float *rango6, float *rango7, float *rango8, float *rango9, float *rango10)
  106.                 {
  107.  
  108.        *rango1 = (coeficiente1*dominio1)+termino1;
  109.        *rango2 = (coeficiente1*dominio2)+termino1;
  110.        *rango3 = (coeficiente1*dominio3)+termino1;
  111.        *rango4 = (coeficiente1*dominio4)+termino1;
  112.        *rango5 = (coeficiente1*dominio5)+termino1;
  113.        *rango6 = (coeficiente1*dominio6)+termino1;
  114.        *rango7 = (coeficiente1*dominio7)+termino1;
  115.        *rango8 = (coeficiente1*dominio8)+termino1;
  116.        *rango9 = (coeficiente1*dominio9)+termino1;
  117.        *rango10 = (coeficiente1*dominio10)+termino1;
  118.  
  119.                 }

Muchas gracias de nuevo!! :D

Por cierto, se que para indicarle a float que debe de mostrar tal cantidad de decimales y enteros se usa algo así como "%1.2f" (por ejemplo, para indicar que se debe de imprimir 1 numero entero y 2 decimales), pero como puedo hacer que solo se muestren decimales cuando los haya?, por que mi programa indicándole algo como esto (ejemplo):


Código C:
Ver original
  1. printf("\nEl dominio de la funcion F(X)=%.2fx+%.2f es:\n\nD{%.2f, %.2f}", coef1c1, term1, dominio1d1, dominio1d2);

Me muestra: "El dominio de la funcion F(X)=1.00x+10.00 es D{15.00, 20.00}"

Y si no hay números decimales resultantes, no quiero que muestre los dos ceros
¿Alguna idea?
__________________
La Web del Dtc
http://www.dtcsrni.tk
DtcSrni Technologies
http://technologies.dtcsrni.tk

Última edición por Dtc; 23/04/2011 a las 19:39