elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Fracciones en C [Ayuda]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Fracciones en C [Ayuda]  (Leído 1,487 veces)
barnix456

Desconectado Desconectado

Mensajes: 128


El soft es como el sexo, cuando es Libre es mejor


Ver Perfil
Fracciones en C [Ayuda]
« en: 11 Febrero 2013, 00:47 »

Hola buenas tardes, tengo una duda, mi maestro de Fisica me ha dejado un pequeño programa en C para resolver la ecuacion de OHM, y lo he echo, pero me ha pedido que lo haga para que el programa tambien lea numero fraccionarios  :rolleyes: ahora no se, he buscado en google pero no he encontrado grandes cosas, si alguien sabe como trabajar con fracciones en C, me imagino que debe ser una funcion. Aqui les dejo mi codigo, cualquier comentario acerca del codigo son bienvenidos  ;D


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. void resistencia(void);
  4. void intensidad(void);
  5. void voltaje(void);
  6.  
  7. int main()
  8. {
  9.   int opc;
  10.   printf("\n");
  11.   printf ("\t\tC\tE\tP\tR\tO\tG\n");
  12.   printf("\n"); printf("\n");
  13.   printf ("\t\t\tCIRCUITOS EN SERIE \n");
  14.   printf ("\n");
  15.   printf ("Este Software se basa en la ley de OHM\n");
  16.   printf("\n");
  17.   printf("Precione ENTER para continuar\n");
  18.   getchar();
  19.   a:
  20.   system("clear");
  21.   printf("ELIJA UNA OPCCION: \n\n \t1)Calcular resistencia\n\t2)Calcular Intensidad\n\t3)Calcular Voltaje\n\t4)Salir\n");
  22.   scanf("%d",&opc);
  23.   switch (opc)
  24.   {
  25.       case 1:
  26.       {
  27.           resistencia();
  28.           break;
  29.        }
  30.        case 2:
  31.        {
  32.            intensidad();
  33.            break;
  34.        }
  35.        case 3:
  36.        {
  37.            voltaje();
  38.            break;
  39.        }
  40.        case 4:
  41.        {
  42.            exit(0);
  43.        }
  44.        default:
  45.        {
  46.            goto a;
  47.        }
  48.   }
  49.   return 0;
  50. }
  51.  
  52. void resistencia(void)
  53. {
  54.    float n, res, total=0;
  55.    int cont=1;
  56.    system("clear");
  57.    printf("\t\tEn esta sección calcularemos la resistencia total\n"); printf("\n");
  58.    printf("Cuantas resistencias tiene el circuito: "); scanf("%f",&n); printf("\n");
  59.    while (cont<=n)
  60.    {
  61.        printf("Escribe el valor de la resistencia %d :> ",cont); scanf("%f",&res);
  62.        total+=res;
  63.        cont++;
  64.    }
  65.    printf("\n");
  66.    printf("El resultado de el total de las resistencias es: %.2f ohmios",total);
  67. }
  68.  
  69. void intensidad(void)
  70. {
  71.    float vol,res,total=0;
  72.    system("clear");
  73.    printf("\t\tEn esta sección calcularemos la intensidad total\n"); printf("\n");
  74.    printf("Cual es el valor del voltaje total:> "); scanf("%f",&vol);
  75.    printf("Cual es el valor de la resistencai total:> "); scanf("%f",&res); printf("\n"); total=vol/res;
  76.    printf("La intensidad es: %.2f ampers",total);
  77. }
  78.  
  79. void voltaje(void)
  80. {
  81.    float res,inte,total=0;
  82.    system("clear");
  83.    printf("\t\tEn esta sección calcularemos el voltaje total\n"); printf("\n");
  84.    printf("Cual es el valor de la resistencia total:> "); scanf("%f",&res);
  85.    printf("Cual es el valor de la intensidad total:> "); scanf("%f",&inte); printf("\n"); total=res*inte;
  86.    printf("El voltaje total es: %.2f vols",total);
  87. }
  88.  


En línea

"No temo a los ordenadores; lo que temo es quedarme sin ellos"

Isaac Asimov
DickGumshoe


Desconectado Desconectado

Mensajes: 479



Ver Perfil WWW
Re: Fracciones en C [Ayuda]
« Respuesta #1 en: 11 Febrero 2013, 01:08 »

Hola.

Para trabajar con fracciones, puedes hacer una estructura que contenga dos campos: numerador y denominador. Así, cuando sea necesario mostrar la fracción, solo debes poner en un printf numerador / denominador, y te muestra ambos, y si quieres dividir, puedes también. No sé si me he expresado bien...


En línea

barnix456

Desconectado Desconectado

Mensajes: 128


El soft es como el sexo, cuando es Libre es mejor


Ver Perfil
Re: Fracciones en C [Ayuda]
« Respuesta #2 en: 11 Febrero 2013, 02:01 »

Ah ver si entendi, poner algo como.

printf("Escriba la fraccion:)";
printf("  /  ");
scanf("%d%d, &a,&b);


o bueno esa es la idea pero, es una buena tecnica la habia pensado, pero no habra una funcion en la que si se puedan escribir una fraccion, o solo podremos trabajar de esa manera.
En línea

"No temo a los ordenadores; lo que temo es quedarme sin ellos"

Isaac Asimov
DickGumshoe


Desconectado Desconectado

Mensajes: 479



Ver Perfil WWW
Re: Fracciones en C [Ayuda]
« Respuesta #3 en: 11 Febrero 2013, 02:12 »

Me refería a crear un struct de esta forma:

Código
  1. #include <stdio.h>
  2.  
  3. struct division
  4. {
  5.    int numerador;
  6.    int denominador;
  7. }fraccion;
  8.  
  9. int main()
  10. {
  11.    //Las cantidades las asignamos desde donde queramos.
  12.    //Desde el programa, se las pedimos al usuario...
  13.    fraccion.numerador = 59;
  14.    fraccion.denominador = 3;
  15.  
  16.    //Queremos mostrar solo la fracción:
  17.  
  18.    printf("Resultado 1: %d / %d\n\n", fraccion.numerador, fraccion.denominador);
  19.  
  20.    //Queremos mostrar el resultado con decimales:
  21.  
  22.    printf("Resultado 2: %f", (float) fraccion.numerador / fraccion.denominador);
  23.  
  24.    return 0;
  25. }
  26.  

Así podrías trabajar con fracciones de una forma sencilla.

Otra forma que se me acaba de ocurrir, aunque es mucho más pesada y larga, es trabajar con números decimales y expresar el resultado en forma de fracción generatriz. Obviamente esta forma es más larga, supongo que lo que buscas es la primera.  ;)

Un saludo.
En línea

barnix456

Desconectado Desconectado

Mensajes: 128


El soft es como el sexo, cuando es Libre es mejor


Ver Perfil
Re: Fracciones en C [Ayuda]
« Respuesta #4 en: 11 Febrero 2013, 02:37 »

guaoo eso se ve muy interesante, la verdad no se hacer eso de las "struct" apenas comienzo jejej pero se ve interesante... tendre que buscar algo de eso para poder hacerlo jeje gracias
En línea

"No temo a los ordenadores; lo que temo es quedarme sin ellos"

Isaac Asimov
DickGumshoe


Desconectado Desconectado

Mensajes: 479



Ver Perfil WWW
Re: Fracciones en C [Ayuda]
« Respuesta #5 en: 11 Febrero 2013, 02:39 »

En el último caso, si no sabes usar estructuras todavía y no tienes tiempo de aprender, puedes crear dos variables numerador, denominador. No queda "tan elegante", pero sigue siendo útil.

Pero bueno, el uso del struct es bastante sencillo, no tiene más que lo que te he mostrado en el código.  ;)
En línea

barnix456

Desconectado Desconectado

Mensajes: 128


El soft es como el sexo, cuando es Libre es mejor


Ver Perfil
Re: Fracciones en C [Ayuda]
« Respuesta #6 en: 11 Febrero 2013, 03:31 »

siii practicare apartir de ahi.. gracias por la informacion
En línea

"No temo a los ordenadores; lo que temo es quedarme sin ellos"

Isaac Asimov
BatchianoISpyxolo

Desconectado Desconectado

Mensajes: 166


Ver Perfil
Re: Fracciones en C [Ayuda]
« Respuesta #7 en: 13 Febrero 2013, 23:46 »

Generalmente para trabajar con un cierto tidpo de dato que no existe predefinidamente en el lenguaje, lo que se hace es crear un TAD (tipo abstracto de datos) que dependiendo del lenguaje se puede implementar de una forma u otra.

Es decir, tener un tipo de dato complejo (formado a partir de tipos de datos simples) que pueda manejarse a través de rutinas para así abstraer el código y restringir el uso de cierto TAD; entre otras características.
En línea

Puede que desees aprender a programar desde 0: www.espascal.es
barnix456

Desconectado Desconectado

Mensajes: 128


El soft es como el sexo, cuando es Libre es mejor


Ver Perfil
Re: Fracciones en C [Ayuda]
« Respuesta #8 en: 16 Febrero 2013, 21:29 »

disculpa por responder hasta ahora, habia estado ocupado en el trabajo, pasando a lo que explicaste, la verdad, todavia lo de "struct" me parecio algo mas simple de entender a lo tuyo, pero bien, como aun no se mucho de programacion lo que hice fue, hacer un arreglo, para el numerador y denominador, asi primero pedia el numerador y luego el denominador y los fui guardando en la misma posicion del arreglo:

numerador[1]=4
denominador[1]=5

y ya tenia mi fraccion 4/5

y divido los numeros y ya tengo el valor real de cada fraccion, al momento de mostrar el resultado lo muestra con decimales.

Ahora tengo otra duda, por ejemplo corro mi programa, hago una operacion con fracciones por ejemplo, al calcular la resistencia, que es sumado, sumo (2/2)+(2/2) me da de resultado 2, lo cual es correcto, el programa cuando termina de hacer la operacion pulso ENTER y regreso al menu principal, y si eligo la misma opcion de volver a calcular otra resistencia, y pongo unas fracciones como (1/2)+(1/2) y me deberia dar como resultado 1, pero me da como resultado 3, por que aun guarda en su bufer el resultado de 2.

como hago para limpiar este bufer?? busque algo como:

fflush(stdin)

while(getchar()!='\n');

pero no se como funciona?? alguien me podria explicar
En línea

"No temo a los ordenadores; lo que temo es quedarme sin ellos"

Isaac Asimov
barnix456

Desconectado Desconectado

Mensajes: 128


El soft es como el sexo, cuando es Libre es mejor


Ver Perfil
Re: Fracciones en C [Ayuda]
« Respuesta #9 en: 16 Febrero 2013, 21:58 »

Les dejo mi codigo, ya sabes lo errores, observaciones y consejos me lo dicen... estoy aprendiendo apenas.


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define sise 100
  4. void resistencia(void);
  5. void intensidad(void);
  6. void voltaje(void);
  7.  
  8. int main()
  9. {
  10.   int opc;
  11.   printf("\n");
  12.   printf ("\t\tC\tE\tP\tR\tO\tG\n");
  13.   printf("\n"); printf("\n");
  14.   printf ("\t\t\tCIRCUITOS EN SERIE \n");
  15.   printf ("\n");
  16.   printf ("Este Software se basa en la ley de OHM\n");
  17.   printf("\n");
  18.   printf("Precione ENTER para continuar\n");
  19.   getchar();
  20.   b:
  21.   system("clear");
  22.   printf("ELIJA UNA OPCCION: \n\n \t1)Calcular Resistencia\n\t2)Calcular Intensidad\n\t3)Calcular Voltaje\n\t4)Salir\n");
  23.   scanf("%d",&opc);
  24.   switch (opc)
  25.   {
  26.       case 1:
  27.       {
  28.           fflush(stdin);
  29.           resistencia();
  30.           break;
  31.        }
  32.        case 2:
  33.        {
  34.            fflush(stdin);
  35.            intensidad();
  36.            break;
  37.        }
  38.        case 3:
  39.        {
  40.            fflush(stdin);
  41.            voltaje();
  42.            break;
  43.        }
  44.        case 4:
  45.        {
  46.            exit(0);
  47.        }
  48.        default:
  49.        {
  50.            goto b;
  51.        }
  52.   }
  53.   return 0;
  54. }
  55.  
  56. void resistencia(void)
  57. {
  58.    float res, total=0,suma=0,numerador[sise], denominador[sise];
  59.    int n,cont,opc,cont1=1,n1;
  60.    a:
  61.    system("clear");
  62.    printf("\t\tRESISTENCA\n"); printf("\n");
  63.    printf("Con que tipo de datos desea calcular la resistencia:\n\n \t1)Numeros fraccionarios\n \t2)Numeros enteros/decimales\n \t3)regresar al menu anteior\n \t4)Salir\n");
  64.    fflush(stdin);
  65.    scanf("%d",&opc); switch(opc)
  66.    {
  67.        case 1:
  68.        {
  69.            system("clear");
  70.            printf("\t\tEn esta sección calcularemos la resistencia total\n"); printf("\n");
  71.            printf("Cuantas resistencias tiene el circuito: "); scanf("%d",&n); printf("\n");
  72.            fflush(stdin);
  73.            for (cont=0;cont<=n-1;cont++)
  74.            {
  75.                printf("Escribe el valor del denomiador %d (_/ ): ",cont); scanf("%f",&numerador[cont]);
  76.                printf("Escribe el valor del Denominaor %d ( /_): ",cont); scanf("%f",&denominador[cont]);
  77.                printf("\n");
  78.            }
  79.            for(cont=0;cont<=n-1;cont++)
  80.            {
  81.                suma=suma+(numerador[cont]/denominador[cont]);
  82.            }
  83.            printf("\n");
  84.            printf("El valor de la resistencia total es: %.2f Ohmios",suma);
  85.            getchar();
  86.            getchar();
  87.            system("clear");
  88.            goto a;
  89.        }
  90.        case 2:
  91.        {
  92.            fflush(stdin);
  93.            system("clear");
  94.            printf("\t\tEn esta sección calcularemos la resistencia total\n"); printf("\n");
  95.            printf("Cuantas resistencias tiene el circuito: "); scanf("%d",&n1); printf("\n");
  96.            fflush(stdin);
  97.            while (cont1<=n1)
  98.            {
  99.                printf("Escribe el valor de la resistencia %d :> ",cont1); scanf("%f",&res);
  100.                total+=res;
  101.                cont1++;
  102.            }
  103.            printf("\n");
  104.            printf("El resultado de el total de las resistencias es: %.2f ohmios",total);
  105.            getchar();
  106.            getchar();
  107.            system("clear");
  108.            goto a;
  109.        }
  110.        case 3:
  111.            main();
  112.        case 4:
  113.            exit(0);
  114.        default:
  115.            goto a;
  116.    }
  117. }
  118. void intensidad(void)
  119. {
  120.    float vol,res,total=0, numerador[sise],denominador[sise],vol1=0,vol2=0,resul;
  121.    int opc,cont;
  122.    c:
  123.    fflush(stdin);
  124.    system("clear");
  125.    printf("\t\tIntensidad\n"); printf("\n");
  126.    printf("Con que tipo de datos desea calcular la Intensidad:\n\n \t1)Numeros fraccionarios\n \t2)Numeros enteros/decimales\n \t3)regresar al menu anteior\n \t4)Salir\n");
  127.    scanf("%d",&opc); switch(opc)
  128.    {
  129.        case 1:
  130.        {
  131.            fflush(stdin);
  132.            system("clear");
  133.            printf("\t\tEn esta sección calcularemos la intensidad total\n"); printf("\n");
  134.            printf("Escribe el valor del voltaje:\n\n");
  135.            fflush(stdin);
  136.            for (cont=1;cont<=1;cont++)
  137.            {
  138.                printf("Escribe el valor del denominador (_/ ): "); scanf("%f",&numerador[cont]);
  139.                printf("Escribe el valor del Denominaor ( /_): "); scanf("%f",&denominador[cont]);
  140.                printf("\n");
  141.                vol1=vol1+(numerador[cont]+denominador[cont]);
  142.            }
  143.            fflush(stdin);
  144.            printf("Escribe el valor de la resistencia total:\n\n");
  145.            fflush(stdin);
  146.            for (cont=2;cont<=2;cont++)
  147.            {
  148.                printf("Escribe el valor del denominador (_/ ): "); scanf("%f",&numerador[cont]);
  149.                printf("Escribe el valor del Denominaor ( /_): "); scanf("%f",&denominador[cont]);
  150.                printf("\n");
  151.                vol2=vol2+(numerador[cont]+denominador[cont]);
  152.            }
  153.            resul=vol1/vol2;
  154.            printf("\n");
  155.            printf("El valor de la intensidad total es: %.2f Ampers",resul);
  156.            getchar();
  157.            getchar();
  158.            system("clear");
  159.            goto c;
  160.        }
  161.        case 2:
  162.        {
  163.            fflush(stdin);
  164.            system("clear");
  165.            printf("\t\tEn esta sección calcularemos la intensidad total\n"); printf("\n");
  166.            printf("Cual es el valor del voltaje total:> "); scanf("%f",&vol);
  167.            printf("Cual es el valor de la resistencai total:> "); scanf("%f",&res); printf("\n"); total=vol/res;
  168.            printf("La intensidad es: %.2f ampers",total);
  169.            getchar();
  170.            getchar();
  171.            system("clear");
  172.            goto c;
  173.        }
  174.        case 3:
  175.            main();
  176.        case 4:
  177.            exit(0);
  178.        default:
  179.            goto c;
  180.    }
  181. }
  182.  
  183. void voltaje(void)
  184. {
  185.    float res,inte,total=0,numerador[sise],denominador[sise],tot1=0,tot2=0,resul;
  186.    int opc,cont;
  187.    d:
  188.    fflush(stdin);
  189.    system("clear");
  190.    printf("\t\tVoltaje\n"); printf("\n");
  191.    printf("Con que tipo de datos desea calcular la Intensidad:\n\n \t1)Numeros fraccionarios\n \t2)Numeros enteros/decimales\n \t3)regresar al menu anteior\n \t4)Salir\n");
  192.    scanf("%d",&opc); switch(opc)
  193.    {
  194.        case 1:
  195.        {
  196.            fflush(stdin);
  197.            printf("\t\tEn esta sección calcularemos el voltaje total\n"); printf("\n");
  198.            printf("Cual es el valor de la resistencia total:> \n\n");
  199.            fflush(stdin);
  200.            for (cont=1;cont<=1;cont++)
  201.            {
  202.                printf("Escribe el valor del denominador (_/ ): "); scanf("%f",&numerador[cont]);
  203.                printf("Escribe el valor del Denominaor ( /_): "); scanf("%f",&denominador[cont]);
  204.                printf("\n");
  205.                tot1=tot1+(numerador[cont]+denominador[cont]);
  206.            }
  207.            fflush(stdin);
  208.            printf("Escribe el valor de la resistencia total:\n\n");
  209.            for (cont=2;cont<=2;cont++)
  210.            {
  211.                printf("Escribe el valor del denominador (_/ ): "); scanf("%f",&numerador[cont]);
  212.                printf("Escribe el valor del Denominaor ( /_): "); scanf("%f",&denominador[cont]);
  213.                printf("\n");
  214.                tot2=tot2+(numerador[cont]+denominador[cont]);
  215.            }
  216.            resul=tot1*tot2;
  217.            printf("\n");
  218.            printf("El valor de el voltaje total es: %.2f Volts",resul);
  219.            getchar();
  220.            getchar();
  221.            system("clear");
  222.            goto d;
  223.        }
  224.        case 2:
  225.        {
  226.            fflush(stdin);
  227.            system("clear");
  228.            printf("\t\tEn esta sección calcularemos el voltaje total\n"); printf("\n");
  229.            printf("Cual es el valor de la resistencia total:> "); scanf("%f",&res);
  230.            printf("Cual es el valor de la intensidad total:> "); scanf("%f",&inte); printf("\n"); total=res*inte;
  231.            printf("El voltaje total es: %.2f vols",total); fflush(stdin);
  232.            getchar(); getchar();
  233.            goto d;
  234.  
  235.        }
  236.        case 3:
  237.            main();
  238.        case 4:
  239.            exit(0);
  240.        default:
  241.            goto d;
  242.    }
  243. }

por ahora mi unica duda es eso del buffer... gracias
En línea

"No temo a los ordenadores; lo que temo es quedarme sin ellos"

Isaac Asimov
leosansan


Desconectado Desconectado

Mensajes: 1.283



Ver Perfil
Re: Fracciones en C [Ayuda]
« Respuesta #10 en: 17 Febrero 2013, 22:34 »


Ahora tengo otra duda, por ejemplo corro mi programa, hago una operacion con fracciones por ejemplo, al calcular la resistencia, que es sumado, sumo (2/2)+(2/2) me da de resultado 2, lo cual es correcto, el programa cuando termina de hacer la operacion pulso ENTER y regreso al menu principal, y si eligo la misma opcion de volver a calcular otra resistencia, y pongo unas fracciones como (1/2)+(1/2) y me deberia dar como resultado 1, pero me da como resultado 3, por que aun guarda en su bufer el resultado de 2.



El problema que te aparece no tiene nada que ver con el buffer,

¡ ¡ ¡ quita todos los "fflush(stdin)" del código que no hacen nada ¡ ¡ ¡ .

Es más sencillo y el culpable en el fondo es el goto.

Lo que ocurre es que cada vez que hace una llamada el goto debe encontrar las variables que acumulan o suman con valor de cero o uno en el caso de un contador que tienes por ahí, pero lo que se encuentran es a esas variables con el valor que han tomado anteriormente, de ahí que sumen al valor viejo el nuevo.

Ese efecto lo corriges asignando nuevamente ,después de la etiqueta a la que llama el goto, esas variables a sus valores originales. por ejemplo, en el caso de la resistencia tendrías que poner:


Código
  1. void resistencia(void)
  2. {
  3.    float res, total=0,suma=0,numerador[sise], denominador[sise];
  4.    int n,cont,opc,cont1=1,n1;
  5.    a:
  6.    total=0,suma=0,cont1=1; /* <==AQUI INICIALIZAS NUEVAMENTE */
  7.    system("clear");
  8.    printf("\t\tRESISTENCA\n\n");
  9.     ..................


Si tienes duda pregunta nuevamente. :rolleyes:

Saluditos!.


P.D: En todo caso habría que poner un "fflush(stdout)" después de cada printf no terminado en \n y ... pero en fin, eso es otro tema.

REEDITO: Perdona que te cambie system (clear) a system (cls) pero así es como me funciona.

Te faltaba además algunos break, tenías entrada de dos resistencias fraccionarias en el cálculo del voltaje -porqué dos o no 3 o 5- y te he cambiado los goto por while, también nombrabas a Numerador como denominador y ya que usas system, en lugar de dos getchar seguidos yo pondría un system(pause). Revisa no obstante por si se ha colado algún gazapo:


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define sise 100
  4.  
  5. void resistencia(void);
  6. void intensidad(void);
  7. void voltaje(void);
  8. /***************************************************/
  9. int main()
  10. {
  11.   int opc;
  12.   printf("\n");
  13.   printf ("\t\tC\tE\tP\tR\tO\tG\n");
  14.   printf("\n"); printf("\n");
  15.   printf ("\t\t\tCIRCUITOS EN SERIE \n");
  16.   printf ("\n");
  17.   printf ("Este Software se basa en la ley de OHM\n");
  18.   printf("\n");
  19.   printf("Precione ENTER para continuar\n");
  20.   getchar();
  21.   while (1){
  22.    system("cls");
  23.     printf("ELIJA UNA OPCCION: \n\n \t1)Calcular Resistencia\n\t2)Calcular Intensidad\n\t3)Calcular Voltaje\n\t4)Salir\n");
  24.     scanf("%d",&opc);
  25.     switch (opc)
  26.     {
  27.         case 1:
  28.         {
  29.             resistencia();
  30.             break;
  31.          }
  32.          case 2:
  33.          {
  34.              intensidad();
  35.              break;
  36.          }
  37.          case 3:
  38.          {
  39.              voltaje();
  40.              break;
  41.          }
  42.          case 4:
  43.          {
  44.              exit(0);
  45.          }
  46.        }
  47.   }
  48.   return 0;
  49. }
  50. /***************************************************/
  51. void resistencia(void)
  52. {
  53.    float res, total=0,suma=0,numerador[sise], denominador[sise];
  54.    int n,cont,opc,cont1=1,n1;
  55.    while (1){
  56.      total=0,suma=0,cont1=1; /* <==AQUI INICIALIZAS NUEVAMENTE */
  57.      system("cls");
  58.      printf("\t\tRESISTENCA\n\n");
  59.      printf("Con que tipo de datos desea calcular la resistencia:\n\n \t1)Numeros fraccionarios\n \t2)Numeros enteros/decimales\n \t3)regresar al menu anteior\n \t4)Salir\n");
  60.      scanf("%d",&opc);
  61.       switch(opc)
  62.      {
  63.          case 1:
  64.          {
  65.              system("cls");
  66.              printf("\t\tEn esta sección calcularemos la resistencia total\n\n");
  67.              printf("Cuantas resistencias tiene el circuito: ");
  68.              scanf("%d",&n);
  69.              printf("\n");
  70.              for (cont=0;cont<=n-1;cont++)
  71.              {
  72.                  printf("Escribe el valor del Numerador %d (_/ ): ",cont); scanf("%f",&numerador[cont]);
  73.                  printf("Escribe el valor del Denominador %d ( /_): ",cont); scanf("%f",&denominador[cont]);
  74.                  printf("\n");
  75.              }
  76.              for(cont=0;cont<=n-1;cont++)
  77.              {
  78.                  suma=suma+(numerador[cont]/denominador[cont]);
  79.              }
  80.              printf("\n");
  81.              printf("El valor de la resistencia total es: %.2f Ohmios",suma);
  82.              getchar();getchar();
  83.              break;
  84.          }
  85.          case 2:
  86.          {
  87.              system("cls");
  88.              total=0;cont1=1;
  89.              printf("\t\tEn esta sección calcularemos la resistencia total\n\n");
  90.              printf("Cuantas resistencias tiene el circuito: ");
  91.              scanf("%d",&n1);
  92.              printf("\n");
  93.              while (cont1<=n1)
  94.              {
  95.                  printf("Escribe el valor de la resistencia %d :> ",cont1);
  96.                  scanf("%f",&res);
  97.                  total+=res;
  98.                  cont1++;
  99.              }
  100.              printf("\n");
  101.              printf("El resultado de el total de las resistencias es: %.2f ohmios",total);
  102.              getchar();getchar();
  103.              break;
  104.          }
  105.          case 3:
  106.              main();
  107.              break;
  108.          case 4:
  109.              exit(0);
  110.        }
  111.    }
  112. }
  113. /***************************************************/
  114. void intensidad(void)
  115. {
  116.    float vol,res,total=0, numerador[sise],denominador[sise],vol1=0,vol2=0,resul;
  117.    int opc,cont;
  118.    while (1){
  119.      system("cls");
  120.      printf("\t\tIntensidad\n"); printf("\n");
  121.      printf("Con que tipo de datos desea calcular la Intensidad:\n\n \t1)Numeros fraccionarios\n \t2)Numeros enteros/decimales\n \t3)regresar al menu anteior\n \t4)Salir\n");
  122.      scanf("%d",&opc); switch(opc)
  123.      {
  124.          case 1:
  125.          {
  126.              system("cls");
  127.              printf("\t\tEn esta sección calcularemos la intensidad total\n"); printf("\n");
  128.              printf("Escribe el valor del voltaje:\n\n");
  129.              for (cont=1;cont<=1;cont++)
  130.              {
  131.                  printf("Escribe el valor del Numerador (_/ ): "); scanf("%f",&numerador[cont]);
  132.                  printf("Escribe el valor del Denominador ( /_): "); scanf("%f",&denominador[cont]);
  133.                  printf("\n");
  134.                  vol1=vol1+(numerador[cont]+denominador[cont]);
  135.              }
  136.              printf("Escribe el valor de la resistencia total:\n\n");
  137.              for (cont=2;cont<=2;cont++)
  138.              {
  139.                  printf("Escribe el valor del Numerador (_/ ): "); scanf("%f",&numerador[cont]);
  140.                  printf("Escribe el valor del Denominador ( /_): "); scanf("%f",&denominador[cont]);
  141.                  printf("\n");
  142.                  vol2=vol2+(numerador[cont]+denominador[cont]);
  143.              }
  144.              resul=vol1/vol2;
  145.              printf("\n");
  146.              printf("El valor de la intensidad total es: %.2f Ampers",resul);
  147.              getchar();getchar();
  148.              system("cls");
  149.              break;
  150.          }
  151.          case 2:
  152.          {
  153.              system("cls");
  154.              printf("\t\tEn esta sección calcularemos la intensidad total\n"); printf("\n");
  155.              printf("Cual es el valor del voltaje total: "); scanf("%f",&vol);
  156.              printf("Cual es el valor de la resistencai total: "); scanf("%f",&res); printf("\n"); total=vol/res;
  157.              printf("La intensidad es: %.2f ampers",total);
  158.              getchar();getchar();
  159.              break;
  160.          }
  161.          case 3:
  162.              main();
  163.          case 4:
  164.              exit(0);
  165.        }
  166.    }
  167.  
  168. }
  169. /***************************************************/
  170. void voltaje(void)
  171. {
  172.    float res,inte,total=0,numerador,denominador,tot1=0,resul;
  173.    int opc;
  174.    while (1) {
  175.      system("cls");
  176.      tot1=0;
  177.      printf("\t\tVoltaje\n\n");
  178.      printf("Con que tipo de datos desea calcular la Intensidad:\n\n \t1)Numeros fraccionarios\n \t2)Numeros enteros/decimales\n \t3)regresar al menu anteior\n \t4)Salir\n");
  179.      scanf("%d",&opc); switch(opc)
  180.      {
  181.          case 1:
  182.          {
  183.              printf("\t\tEn esta sección calcularemos el voltaje total\n\n");
  184.              printf("Cual es el valor de la resistencia total: \n\n");
  185.              printf("Escribe el valor del Numerador (_/ ): "); scanf("%f",&numerador);
  186.              printf("Escribe el valor del Denominador ( /_): "); scanf("%f",&denominador);
  187.              printf("\n");
  188.              tot1=(numerador/denominador);
  189.              printf("Cual es el valor de la intensidad total: "); scanf("%f",&inte); printf("\n");
  190.              resul=inte*tot1;
  191.              printf("El valor de el voltaje total es: %.2f Volts",resul);
  192.              getchar();getchar();
  193.              break;
  194.          }
  195.          case 2:
  196.          {
  197.              system("cls");
  198.              printf("\t\tEn esta sección calcularemos el voltaje total\n\n");
  199.              printf("Cual es el valor de la resistencia total: "); scanf("%f",&res);
  200.              printf("Cual es el valor de la intensidad total: "); scanf("%f",&inte); printf("\n"); total=res*inte;
  201.              printf("El voltaje total es: %.2f vols",total);
  202.              getchar();getchar();
  203.              break;
  204.  
  205.          }
  206.          case 3:
  207.              main();
  208.              break;
  209.          case 4:
  210.              exit(0);
  211.        }
  212.    }
  213.  
  214. }
  215. /***************************************************/
  216.  
« Última modificación: 18 Febrero 2013, 00:15 por leosansan » En línea

0xDani


Desconectado Desconectado

Mensajes: 1.078



Ver Perfil
Re: Fracciones en C [Ayuda]
« Respuesta #11 en: 18 Febrero 2013, 16:17 »

@leosansan, te dejo un truco de preprocesador que he usado mas de una vez aqui para limpiar la pantalla:

Código
  1. #ifdef __unix__ /* Estamos en *nix */
  2. #define clscr() system("clear");
  3. #elif defined __WIN32 /* Estamos en windows */
  4. #define clscr() system("cls");
  5. #else
  6. #warning Missing clear screen function
  7. #endif
  8.  
  9. /* En el codigo puedes usar clscr() tranquilamente para limpiar la pantalla */
  10.  
  11.  
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
leosansan


Desconectado Desconectado

Mensajes: 1.283



Ver Perfil
Re: Fracciones en C [Ayuda]
« Respuesta #12 en: 18 Febrero 2013, 16:57 »

@leosansan, te dejo un truco de preprocesador que he usado mas de una vez aqui para limpiar la pantalla:
.....................................................................................

Muchas gracias, la verdad es que lo veo muy útil. ;-)

Saluditos!.
En línea

BatchianoISpyxolo

Desconectado Desconectado

Mensajes: 166


Ver Perfil
Re: Fracciones en C [Ayuda]
« Respuesta #13 en: 18 Febrero 2013, 23:22 »

@leosansan, te dejo un truco de preprocesador que he usado mas de una vez aqui para limpiar la pantalla:

Código
  1. #ifdef __unix__ /* Estamos en *nix */
  2. #define clscr() system("clear");
  3. #elif defined __WIN32 /* Estamos en windows */
  4. #define clscr() system("cls");
  5. #else
  6. #warning Missing clear screen function
  7. #endif
  8.  
  9. /* En el codigo puedes usar clscr() tranquilamente para limpiar la pantalla */
  10.  
  11.  

¿Y Para Mac OS? *.* xD
En línea

Puede que desees aprender a programar desde 0: www.espascal.es
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines