• Viernes 8 de Noviembre de 2024, 13:58

Autor Tema:  Problema Con Programa Sencillo En C  (Leído 3602 veces)

ahi

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Problema Con Programa Sencillo En C
« en: Sábado 6 de Octubre de 2007, 22:56 »
0
Hola, tengo un pequeño problema con un programa sencillo en C que creé hace algún tiempo, el fuente es el siguiente:

/* Created by Anjuta version 1.2.4a */
/*   Under GPL v2 License  */

#include <stdio.h>
#include <math.h>
#define pow

main()

{
        float c;
        float r;
        float t;
        float i;
        float f;
        float p;
        float n;   
   
   printf("Introduzca el número de importe inicial: ");
   
   scanf("%f", &c);
   printf("Introduzca el rédito: ");
   scanf("%f", &r);
   printf("introduzca el tiempo en años: ");
   scanf("%f", &t);
   
   /*cálculo de i y f*/
   
   i = r/100;
   f = p * pow((1 + i), n);
   
   /*escribir la salida*/
   
   printf("\nEl valor final es : %2.f\n", f);
   
   sleep(3600000);
}

el programa compila bien, pero tengo un pequeño problema, el programa se supone que que averigua el interés (i) a partir del importe inicial ©, del rédito ® y del tiempo en años (t) a partir de la siguiente escuación c * r * t / 100  pero al ejecutarlo siempre me dá como resultado -0.00, ¿alguien me hecha una mano?

NOTA: lo compilé con GCC bajo Linux

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema Con Programa Sencillo En C
« Respuesta #1 en: Sábado 6 de Octubre de 2007, 23:44 »
0
No tengo tiempo para verlo ahora pero seguramente si lo depuras te daras cuenta del problema.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Lisa&Llana

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Problema Con Programa Sencillo En C
« Respuesta #2 en: Domingo 7 de Octubre de 2007, 01:47 »
0
,mira apenas revise tu codigo...y resulta que si le sacas el #define pow te compila pero siempre te arroja una constante laaaarga.(me gustaria revirsar mas y mas tu codigo pero tengo mucho que hacer por ahora..).. asi que sigue viendo. ;)

Vallu

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Problema Con Programa Sencillo En C
« Respuesta #3 en: Domingo 14 de Octubre de 2007, 16:01 »
0
Ya se qual es el problema. La funcion Pow retorna INT, mientras que todas las otras variables son de tipo FLOAT, x eso la f siempre te da o un numero muy largo o 0.

kuando puede t busco lo de convertir y t lo arreglo.

Por cierto t dejo el programa aki con algunes toques xa que keda mas presentable  ;)

Código: Text
  1. /* Created by Anjuta version 1.2.4a
  2. Under GPL v2 License */
  3.  
  4. #include &#60;stdio.h&#62;
  5. #include &#60;math.h&#62;
  6.  
  7.  
  8. void main(){
  9.      
  10. float c=0,r=0,t=0,i=0,f=0,p=0,n=2, x=0;
  11.  
  12.     printf(&#34;Introduzca el numero de importe inicial: &#34;);    
  13.     scanf(&#34;%f&#34;,&c);
  14.     printf(&#34;Introduzca el credito: &#34;);
  15.     scanf(&#34;%f&#34;,&r);
  16.     printf(&#34;introduzca el tiempo en años: &#34;);
  17.     scanf(&#34;%f&#34;,&t);
  18.    
  19.     //cálculo de i y f
  20.    
  21.     i = r/100;
  22.     f = p*(pow((1+i),n));
  23.    
  24.    //escribir la salida
  25.    
  26.     printf(&#34;&#092;nEl valor final es : %f&#092;n&#34;, f);
  27.    
  28.     getch();
  29. }
  30.  

ahi

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Problema Con Programa Sencillo En C
« Respuesta #4 en: Domingo 14 de Octubre de 2007, 17:17 »
0
el código que me das nisiquiera me lo compila, me da error el compilador, te pego la salida de terminal :

ahi@Debian-ahib0t:~$ gcc /home/ahi/Desktop/mnaa-i.c -o /home/ahi/Desktop/mnaa-i
/home/ahi/Desktop/mnaa-i.c: In function ‘main’:
/home/ahi/Desktop/mnaa-i.c:8: warning: return type of ‘main’ is not ‘int’
/tmp/cctfubil.o: In function `main':
mnaa-i.c:(.text+0xd6): undefined reference to `pow'
mnaa-i.c:(.text+0xf4): undefined reference to `getch'
collect2: ld returned 1 exit status
ahi@Debian-ahib0t:~$

Esos son los fallos que me da al compilar.

Pero gracias por ayudarme con el programita ese.....  :D

Vallu

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Problema Con Programa Sencillo En C
« Respuesta #5 en: Domingo 14 de Octubre de 2007, 17:43 »
0
pues entonces pon el tuyo que ya estaba bien, x cierto, a la n asignale un numero, ya k si no t dara error.  Has podido conseguir lo de passar de INT a FLOAT?

octopus22

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Problema Con Programa Sencillo En C
« Respuesta #6 en: Viernes 19 de Octubre de 2007, 13:17 »
0
Cita de: "Eternal Idol"
No tengo tiempo para verlo ahora pero seguramente si lo depuras te daras cuenta del problema.
pero es que el depurador no le arroja error sino que le da como salida -0.00

fucking user! xD

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema Con Programa Sencillo En C
« Respuesta #7 en: Viernes 19 de Octubre de 2007, 13:19 »
0
Cita de: "octopus22"
pero es que el compilador no le arroja error sino que le da como salida -0.00
¿Y que tiene que ver? Si el compilador diera algun error no podria depurarlo ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

octopus22

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Problema Con Programa Sencillo En C
« Respuesta #8 en: Viernes 19 de Octubre de 2007, 14:23 »
0
Cita de: "Eternal Idol"
Cita de: "octopus22"
pero es que el compilador no le arroja error sino que le da como salida -0.00
¿Y que tiene que ver? Si el compilador diera algun error no podria depurarlo ...
Es cierto! fue error mio... corregido  :P

fucking user! xD

anthony25

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Problema Con Programa Sencillo En C
« Respuesta #9 en: Viernes 19 de Octubre de 2007, 17:00 »
0
Cita de: "octopus22"
Cita de: "Eternal Idol"
Cita de: "octopus22"
pero es que el compilador no le arroja error sino que le da como salida -0.00
¿Y que tiene que ver? Si el compilador diera algun error no podria depurarlo ...
Es cierto! fue error mio... corregido  :P
en la parte para calcular tienes que modificarla para que te de un resultado correcto.

y si te sirve esta formula A=p(1+r)n

y imprime tu resultado asi >>> %.2f



pueden contactarme a este email: kcsk18@hotmail.com

octopus22

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Problema Con Programa Sencillo En C
« Respuesta #10 en: Viernes 19 de Octubre de 2007, 17:08 »
0
Cita de: "anthony25"
Cita de: "octopus22"
Cita de: "Eternal Idol"
Cita de: "octopus22"
pero es que el compilador no le arroja error sino que le da como salida -0.00
¿Y que tiene que ver? Si el compilador diera algun error no podria depurarlo ...
Es cierto! fue error mio... corregido  :P
en la parte para calcular tienes que modificarla para que te de un resultado correcto.

y si te sirve esta formula A=p(1+r)n

y imprime tu resultado asi >>> %.2f



pueden contactarme a este email: kcsk18@hotmail.com
pero yo no arme el thread  :P

fucking user! xD

ahi

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Problema Con Programa Sencillo En C
« Respuesta #11 en: Viernes 19 de Octubre de 2007, 18:17 »
0
La formula que me dijiste que usase, la: A=p(1+r)n

Esa no sirve, no se a que haces referencia con "A" ni como encajarla en el código.

Perdonad mi falta de conocimiento, estoy aprendiendo programación con un libro y me lio un poco (sobre todo porque todavia no me lo he acabado.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema Con Programa Sencillo En C
« Respuesta #12 en: Viernes 19 de Octubre de 2007, 18:25 »
0
ahi: revisa el codigo, no tiene gran sentido. Estas usando variables sin inicializar:

¿Que es n? ¿El tiempo (osea t)? Cuando la usas tiene un valor indefinido.
¿Que es p? ¿El valor inicial (osea c)? Cuando la usas tiene un valor indefinido.

Declara las variables con nombres mas utiles y que tengan relacion con lo que van a contener y despues plantea el calculo que queres hacer.

Y sino segun lo que dijiste ahi lo tenes facil:
printf("\nEl valor final es : %2.f\n", c * r * t / 100 );

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

ahi

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Problema Con Programa Sencillo En C
« Respuesta #13 en: Viernes 26 de Octubre de 2007, 15:53 »
0
Muchas gracias, me habeis ayudado muchísimo, acabo de usar la fórmula que me citó Eternal Idol:

printf("\nEl valor final es : %2.f\n", c * r * t / 100 );

he eliminado las variables inservibles y me ha funcionado el programa :kicking: , muchísimas gracias, aparte me habeis ayudado a seguir, a continuar estudiando C por mi parte...

Saludos