• Viernes 8 de Noviembre de 2024, 05:10

Autor Tema:  Ejercicio En De If En C - Ayuda  (Leído 2560 veces)

Apokalyptica79

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Ejercicio En De If En C - Ayuda
« en: Martes 3 de Julio de 2007, 14:50 »
0
Hola haciendo un ejercicio en C con la siguiente consigna:
Citar
Al recibir como dato el precio de un producto importado incremente 11% el mismo si es inferior a $ 1500 y que además escriba el nuevo precio del producto.
Mi codificación es la siguiente:
Citar
#include <stdio.h>
main()
{
 float PRE, NPRE;
 printf( "Ingrese el precio del producto \n" );
 scanf( "%f", &PRE );
 if (PRE < 1500)
   NPRE = PRE * 11 / 100;
 printf( "El nuevo precio es %.2f \n", NPRE );
}
Cuando ejecuto el programa me da como resultado lo siguiente:
Citar
Ingrese el precio del producto
1450
El nuevo precio es 159.50
Y ese no es el resultado que tendría que darme como nuevo precio.
El libro tiene la siguiente codificación:
Citar
#include <stdio.h>
main()
{
 float PRE, NPR;
 printf( "Ingrese el precio del producto \n" );
 scanf( "%f", &PRE );
 if (PRE > 1500)
 {
   NPR = PRE * 1.11;
   printf( "Nuevo precio: %7.2f \n", NPR );
 }
}
Mis dudas son las siguientes:
1) Porque a mi me da como resultado de nuevo precio 159.50? Qué está mal?
2) Porque el libro hace NPR = PRE * 1.11, de donde sale 1.11?
3) Cuando pregunta if (PRE > 1500), ahí no está mal el signo? No tendría que ser menor?
Muchas gracias y perdón si mis preguntas son muy tontas.
Las personas inteligentes quieren aprender, los demás enseñar...

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Ejercicio En De If En C - Ayuda
« Respuesta #1 en: Martes 3 de Julio de 2007, 15:04 »
0
Citar
1) Porque a mi me da como resultado de nuevo precio 159.50? Qué está mal?
Porque ese valor corresponde al 11% de 1450. Te faltaría incrementar ese valor al monto que vos ingresaste:
Código: Text
  1. NPRE = PRE + PRE * 11 / 100;
  2.  
Citar
2) Porque el libro hace NPR = PRE * 1.11, de donde sale 1.11?
Es una simplificación de la fórmula anterior:
Código: Text
  1. NPRE = PRE + PRE * 11 / 100
  2. NPRE = PRE * ( 1 +  11 / 100)
  3. NPRE = PRE * ( 1 +  0.11)
  4. NPRE = PRE * ( 1.11)
  5. NPRE = PRE * 1.11
  6.  
Citar
3) Cuando pregunta if (PRE > 1500), ahí no está mal el signo? No tendría que ser menor?
Según el enunciado que nos mostrás, si :P

Un saludo  :comp:
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

Apokalyptica79

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Re: Ejercicio En De If En C - Ayuda
« Respuesta #2 en: Martes 3 de Julio de 2007, 15:09 »
0
Hola Angel_K_ido, en la primer pregunta cuando yo revisaba mi codificación y me daba ese resultado, ya me parecía que tenía que sumarle el precio ingresado otra vez, pero no lo hice nada más y estuve mal en no modificarlo y ponerlo a ver si funcionaba.  :blink:
En la segunda pregunta 11/100 me da como resultado 0,11, pero no entiendo porque suma 1. Perdón si es muy tonta esta pregunta.  :unsure:
Y en la tercera, así es como está en el libro, asi que dejé mi codificación como está.
Muchas gracias.  :D
Voy a seguir  :comp:
Las personas inteligentes quieren aprender, los demás enseñar...

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Ejercicio En De If En C - Ayuda
« Respuesta #3 en: Martes 3 de Julio de 2007, 15:47 »
0
acostumbrate siempre a inicializar las variables que vas a usar.
por ej un mejorado de tu codigo seria:

Código: Text
  1. #include &#60;stdio.h&#62;
  2. main()
  3. {
  4. float PRE = 0.0, NPRE = 0.0;
  5. printf( &#34;Ingrese el precio del producto:&#34; );
  6. scanf( &#34;%f&#34;, &PRE );
  7. if (PRE &#60; 1500)
  8.   NPRE = PRE * 1.11;
  9. printf( &#34;El nuevo precio es %.2f &#092;n&#34;, NPRE );
  10. }
  11.  

Apokalyptica79

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Re: Ejercicio En De If En C - Ayuda
« Respuesta #4 en: Martes 3 de Julio de 2007, 15:50 »
0
Hola AnioN, muchas gracias por tu aporte, ya lo pongo en práctica.
 :D
Las personas inteligentes quieren aprender, los demás enseñar...

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Ejercicio En De If En C - Ayuda
« Respuesta #5 en: Martes 3 de Julio de 2007, 16:02 »
0
Cita de: "Apokalyptica79"
En la segunda pregunta 11/100 me da como resultado 0,11, pero no entiendo porque suma 1. Perdón si es muy tonta esta pregunta.  :unsure:
Como te dije antes, es una mera simplificación matemática, te puse el desarrollo de como llegar desde
Código: Text
  1. NPRE = PRE + PRE * 11 / 100
  2.  
hasta
Código: Text
  1. NPRE = PRE * 1.11
  2.  
Las dos formulas te van a dar el mismo resultado pero la segunda es mas eficiente.
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

Apokalyptica79

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Re: Ejercicio En De If En C - Ayuda
« Respuesta #6 en: Martes 3 de Julio de 2007, 16:39 »
0
Hola Angel_K_ido y si entendí tu explicación, porque yo llegué hasta ahí pero lo que yo no entiendo es porque PRE vale 1. Entendés ahora mi duda?
Perdón si soy cabeza dura.  :blink:  :huh:
Gracias por su ayuda.
Las personas inteligentes quieren aprender, los demás enseñar...

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Ejercicio En De If En C - Ayuda
« Respuesta #7 en: Martes 3 de Julio de 2007, 18:21 »
0
Ahora el cabeza dura soy yo. No no entiendo. ¿Por qué decís que PRE vale 1? El valor de PRE lo ingresa el usuario.
¿Vos te referís al uno que se le suma al porcentaje, no? :think:
Mirá...

Supongamos que el usuario ingresa el valor 1000 (PRE=1000), tenemos que...

El 11% de 1000 es 110...

Eso puede obtenerse de la siguiente manera...
Código: Text
  1. nuevoValor=1000*(100/11)=110
  2.  
o lo que es lo mismo...
Código: Text
  1. nuevoValor=1000*0.11=110
  2.  
Muy bien, pero lo que se necesita en este no es el porcentaje sino la suma del valor mas el porcentaje, ¿cierto?, entonces solamente restaría sumarle al porcentaje que acabamos de calcular el valor original...
Código: Text
  1. nuevoValor=1000+1000*0.11=1110
  2.  
sacando el valor 1000 como factor común nos queda
Código: Text
  1. nuevoValor=1000*(1+0.11)=1110
  2.  
que es igual a:
Código: Text
  1. nuevoValor=1000*(1.11)=1110
  2.  

Ese es el mismo desarrollo que te hice antes y es ahí donde aparece esa unidad (1) que no sabés de donde sale.

Si no es eso entonces no te entiendo.

Un saludo
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

Apokalyptica79

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Re: Ejercicio En De If En C - Ayuda
« Respuesta #8 en: Martes 3 de Julio de 2007, 18:26 »
0
Hola Angel_K_ido, me sirvió de mucho tu explicación, y algunas cosas de las que me decís las agrego como comentarios en la codificación asi cuando los veo entiendo el porque de cada uno.
Perdón si te estoy matando o aburriendo con mis preguntas.  :unsure:
 :hola:
Las personas inteligentes quieren aprender, los demás enseñar...

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Ejercicio En De If En C - Ayuda
« Respuesta #9 en: Martes 3 de Julio de 2007, 18:29 »
0
No hay problema. Además me gusta la matemática  :D

Un saludo
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.