Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Chapielchapas en 9 Febrero 2018, 19:18 pm



Título: duda programa sencillo (principante)
Publicado por: Chapielchapas en 9 Febrero 2018, 19:18 pm
Buenas, estoy empezando a programar y me han pedido hacer un programa que al introducir el precio del producto me devuelva el precio de ese producto con el iva (0,21). Y no me da ese resultado, qué he hecho mal?
/**EJERCICIO 2 TEMA 2
Realice un programa para calcular el IVA de un producto cuyo precio es introducido por el usuario.
Suponga que el IVA es del 21 %*/

Código
  1. #include <stdio.h>
  2.  
  3. int main(){
  4. float producto;
  5. const float iva = 0.21;
  6.  
  7. printf("Introduzca precio del producto %f.\n",producto);
  8. scanf("%f",&producto);
  9.  
  10. producto = (iva * producto) + producto;
  11. printf("El precio del producto con iva es: %f.\n", producto = (iva * producto) + producto);
  12.  
  13. system("pause");
  14. return 0;
  15.  
  16.  
  17. }
Gracias de antemano


· Los códigos deben ir en etiquetas GeSHi
· No se debe escribir en mayúsculas
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex


Título: Re: DUDA PROGRAMA SENCILLO (PRINCIPANTE)
Publicado por: deleted_account en 9 Febrero 2018, 19:57 pm
Hola!

Veo que tu código necesita más organización. Te recomiendo ir paso a paso...

1) Tienes que tener el precio. Entonces, defines una variable para almacenarlo.
2) Saca el precio con el Iva, o sea el SubTotal. Este va a ser el resultado del Precio multiplicado 0.21 .
3) Suma el Precio Original con el Subtotal.

Te recomiendo crear una variable por cada 1. Esto hará tu código mucho más legible. Estas sobreescribiendo una y otra vez.

Pruebalo y dime que sucede ;)


Título: Re: DUDA PROGRAMA SENCILLO (PRINCIPANTE)
Publicado por: Chapielchapas en 10 Febrero 2018, 17:43 pm
Gracias por tu aporte. Intentando seguir tus indicaciones he llegado hasta aquí, y me han surgido los siguientes problemas: 1. Cuando meto el precio con decimales solo aparece la parte entera.
2. No calcula nada, solo pone 0,00000

/**EJERCICIO 2 TEMA 2
Realice un programa para calcular el IVA de un producto cuyo precio es introducido por el usuario.
Suponga que el IVA es del 21 %*/

#include <stdio.h>

int main(){

   float precio, subtotal, suma;
   
   //PRECIO NO SE LE DA VALOR, SE INTRODUCE POR TECLADO
   subtotal = precio * 0,21;
   suma = subtotal + precio;
   
   printf("\n\nBIENVENIDO A LA CALCULADORA DE IVA\n\n");
   printf("\n\nINTRODUCE EL PRECIO DE TU PRODUCTO\n\n");
   scanf("%f",&precio);
   
   printf("\n\nEL PRECIO INTRODUCIDO ES %f EUROS\n\n",precio);
   
   printf("\n\nEL IVA DE SU PRODUCTO ES %f EUROS\n\n",subtotal);
   
   printf("\n\nEL PRECIO CON IVA ES %f EUROS\n\n",suma);
   
   
   system("pause");
   return 0;
   
   
}


Título: Re: DUDA PROGRAMA SENCILLO (PRINCIPANTE)
Publicado por: deleted_account en 10 Febrero 2018, 18:24 pm
Ok! He notado un error: Estás calculando el IVA usando un precio que no existe!

Al iniciar la Variable Precio, su número inicial es de 0. Y tu estás calculando sobre 0. En resumen, el error está aquí:
Código:
int main(){

   float precio, subtotal, suma;
   
   //PRECIO NO SE LE DA VALOR, SE INTRODUCE POR TECLADO
   subtotal = precio * 0,21; // ERROR
   suma = subtotal + precio; // ERROR
   
   printf("\n\nBIENVENIDO A LA CALCULADORA DE IVA\n\n");
   printf("\n\nINTRODUCE EL PRECIO DE TU PRODUCTO\n\n");
   scanf("%f",&precio);
   
   printf("\n\nEL PRECIO INTRODUCIDO ES %f EUROS\n\n",precio);
   
   printf("\n\nEL IVA DE SU PRODUCTO ES %f EUROS\n\n",subtotal);
   
   printf("\n\nEL PRECIO CON IVA ES %f EUROS\n\n",suma);
   
   
   system("pause");
   return 0;
   
   
}

Cuando debería de ser así:
Código:
int main(){

   float precio, subtotal, suma;
   
   printf("\n\nBIENVENIDO A LA CALCULADORA DE IVA\n\n");
   printf("\n\nINTRODUCE EL PRECIO DE TU PRODUCTO\n\n");
   scanf("%f",&precio);
   
   //PRECIO NO SE LE DA VALOR, SE INTRODUCE POR TECLADO
   subtotal = precio * 0,21;
   suma = subtotal + precio;

   printf("\n\nEL PRECIO INTRODUCIDO ES %f EUROS\n\n",precio);
   
   printf("\n\nEL IVA DE SU PRODUCTO ES %f EUROS\n\n",subtotal);
   
   printf("\n\nEL PRECIO CON IVA ES %f EUROS\n\n",suma);
   
   
   system("pause");
   return 0;
   
   
}

No se si se entendió. Basicamente, estás realizando los cálculos sobre el precio, que es igual a 0. Y al pedirle al usuario el precio, no modificas el cálculo.

Suerte!


Título: Re: DUDA PROGRAMA SENCILLO (PRINCIPANTE)
Publicado por: Chapielchapas en 18 Febrero 2018, 22:29 pm
Me sirvió de mucho, gracias!!! Q pases buen día amigo