Hilo
(sin asunto) (Emanuel) 2019-09-02 16:18:51
hola estoy aprendiendo del curso de c++ con clase y quise realizar un
programa usando funciones, pero aun no las tengo muy claro y me gustaria
que me digan cuales son los errores que cometo en el codigo.
el codigo es el siguiente:
/*
Una farmacia vende algunos artículos sin descuento y a otros con descuento
del 20%. Confeccionar un
programa que recibiendo el precio original y un código que indica si es o
no con descuento, informe el precio
final (0 no aplica el descuento y 1 aplica el descuento)
*/
#include <iostream>
#include <stdlib.h>
using namespace std;
bool descuento(int n);
float valor_total();
int main()
{
float precio_articulo_sin_descuento;
cout<<"Ingrese el precio del poducto: ";
cin>> precio_articulo_sin_descuento;
cout<<"¿El producto tiene descuento?\npresiona 1 si tiene descuento o 0
si no tiene";
if(descuento(n))
{
cout<<"El valor total es: "<<valor_total(valor_total)<<endl;
}
return 0;
}
bool descuento(int n)
{
if(n==1) return true;else return false;
}
float valor_total(int n;float valor_total;float
precio_articulo_sin_descuento)
{
if(descuento(n)==true)
{
valor_total=precio_articulo_sin_descuento*20/100;
return valor_total
}
else
{
valor_total=precio_articulo_sin_descuento;
return valor_total
}
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: (sin asunto) (Salvador Pozo) 2019-09-02 19:07:56
El pasado 2019-09-02 16:18:51, Emanuel escribió:
E> hola estoy aprendiendo del curso de c++ con clase y quise realizar un
E> programa usando funciones, pero aun no las tengo muy claro y me gustaria
E> que me digan cuales son los errores que cometo en el codigo.
Hola:
Te comento sobre el mismo programa:
E> el codigo es el siguiente:
E> /*
E> Una farmacia vende algunos artículos sin descuento y a otros con descuento
E> del 20%. Confeccionar un
E> programa que recibiendo el precio original y un código que indica si es o
E> no con descuento, informe el precio
E> final (0 no aplica el descuento y 1 aplica el descuento)
E> */
E> #include <iostream>
E> #include <stdlib.h>
E> using namespace std;
E> bool descuento(int n);
E> float valor_total();
E> int main()
E> {
E> float precio_articulo_sin_descuento;
E> cout<<"Ingrese el precio del poducto: ";
E> cin>> precio_articulo_sin_descuento;
E> cout<<"¿El producto tiene descuento?\npresiona 1 si tiene descuento o 0
E> si no tiene";
E> if(descuento(n))
Aquí usas la variable n que no está declarada ni tiene ningún valor asignado.
Supongo que se trata de una variable de tipo entero y que debería contener el valor 0 ó 1 dependiendo de si el artículo tiene descuento o no, pero no lees el valor en ningún sitio.
E> {
E> cout<<"El valor total es: "<<valor_total(valor_total)<<endl;
Ahora invocas la función "valor_total" con un parámetro. Sin embargo, en el prototipo no has declarado ningún parámetro, y en la implementación aparecen tres parámetros.
Además, lo que pasas como parámetro es el mismo nombre de la función, y eso no tiene mucho sentido.
E> }
E> return 0;
E> }
E> bool descuento(int n)
E> {
E> if(n==1) return true;else return false;
E> }
E> float valor_total(int n;float valor_total;float
E> precio_articulo_sin_descuento)
Esta declaración es erronea. Las declaraciones de los parámetros de una función se separan con comas, no con puntos y coma.
Vuelves a usar "valor_total" como identificador de un parámetro, pero ese identificador ya lo has usado como nombre de función, y no se puede usar así.
E> {
E> if(descuento(n)==true)
E> {
E> valor_total=precio_articulo_sin_descuento*20/100;
En C y C++ no se usa el identificador de la función como valor de retorno. Puedes usar una variable local para eso.
Además, la fórmula para calcular el precio con descuento está mal. Esa fórmula calcula el descuento.
E> return valor_total
Aquí falta un punto y coma al final de la sentencia.
E> }
E> else
E> {
E> valor_total=precio_articulo_sin_descuento;
E> return valor_total
Aquí también falta un punto y coma.
E> }
Finalmente, falta una llave cerrada }.
Espero que con estas notas sea sencillo corregir el programa. Ya nos contarás.
Hasta pronto.
--
Salvador Pozo (Administrador)
mailto:salvador@conclase.net
Blog con Clase: http://blogconclase.wordpress.com
Con Clase: http://conclase.net
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: (sin asunto) (Pepone) 2019-09-03 07:46:47
Buenos días,
uno de los motivos puede ser este:
*if(descuento(n)) { cout<<"El valor total es:
"<<valor_total(valor_total)<<endl; }*
La variable que te he subrayado en rojo no está declarada. Quizás solo con
sustituirla por la variable *precio_articulo_sin_descuento* te funcione o
al menos tendrías un error menos.
El lun., 2 sept. 2019 a las 20:52, Emanuel Cristaldo (<
imeniuel.3.6@gmail.com> ) escribió:
> hola estoy aprendiendo del curso de c++ con clase y quise realizar un
> programa usando funciones, pero aun no las tengo muy claro y me gustaria
> que me digan cuales son los errores que cometo en el codigo.
> el codigo es el siguiente:
>
> /*
> Una farmacia vende algunos artículos sin descuento y a otros con descuento
> del 20%. Confeccionar un
> programa que recibiendo el precio original y un código que indica si es o
> no con descuento, informe el precio
> final (0 no aplica el descuento y 1 aplica el descuento)
> */
>
> #include <iostream>
> #include <stdlib.h>
>
> using namespace std;
>
> bool descuento(int n);
> float valor_total();
>
> int main()
> {
> float precio_articulo_sin_descuento;
>
> cout<<"Ingrese el precio del poducto: ";
> cin>> precio_articulo_sin_descuento;
> cout<<"¿El producto tiene descuento?\npresiona 1 si tiene descuento o
> 0 si no tiene";
> if(descuento(n))
> {
> cout<<"El valor total es: "<<valor_total(valor_total)<<endl;
> }
>
>
>
>
> return 0;
> }
>
> bool descuento(int n)
> {
> if(n==1) return true;else return false;
> }
>
> float valor_total(int n;float valor_total;float
> precio_articulo_sin_descuento)
> {
> if(descuento(n)==true)
> {
> valor_total=precio_articulo_sin_descuento*20/100;
> return valor_total
> }
> else
> {
> valor_total=precio_articulo_sin_descuento;
> return valor_total
> }
>
> _______________________________________________
> Lista de correo Cconclase Cconclase@listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: (sin asunto) (Facu) 2019-09-03 12:01:42
También noto puntos y coma faltantes en los return.
Te recomiendo que dividas los if en diferentes líneas. Es incómodo de leer
así. Y mejor aún, podes hacer algo como esto:
return n==1;
Te ahorras la condición del if, es más fácil de leer y tiene mejor
rendimiento el código.
Además, la variable sin definir que ya te mencionaron.
Es muy normal que haya errores en el código a la primera, lo importante es
saber encontrarlos y arreglarlos. Para eso, lee los errores que te larga el
compilador, de esa forma podes ir arreglando el código.
Saludos
El mar., 3 de septiembre de 2019 07:05, Jose DLG <josesoftwarem@gmail.com>
escribió:
> Buenos días,
> uno de los motivos puede ser este:
>
>
>
>
> *if(descuento(n)) { cout<<"El valor total es:
> "<<valor_total(valor_total)<<endl; }*
>
> La variable que te he subrayado en rojo no está declarada. Quizás solo con
> sustituirla por la variable *precio_articulo_sin_descuento* te funcione o
> al menos tendrías un error menos.
>
>
> El lun., 2 sept. 2019 a las 20:52, Emanuel Cristaldo (<
> imeniuel.3.6@gmail.com> ) escribió:
>
>> hola estoy aprendiendo del curso de c++ con clase y quise realizar un
>> programa usando funciones, pero aun no las tengo muy claro y me gustaria
>> que me digan cuales son los errores que cometo en el codigo.
>> el codigo es el siguiente:
>>
>> /*
>> Una farmacia vende algunos artículos sin descuento y a otros con
>> descuento del 20%. Confeccionar un
>> programa que recibiendo el precio original y un código que indica si es o
>> no con descuento, informe el precio
>> final (0 no aplica el descuento y 1 aplica el descuento)
>> */
>>
>> #include <iostream>
>> #include <stdlib.h>
>>
>> using namespace std;
>>
>> bool descuento(int n);
>> float valor_total();
>>
>> int main()
>> {
>> float precio_articulo_sin_descuento;
>>
>> cout<<"Ingrese el precio del poducto: ";
>> cin>> precio_articulo_sin_descuento;
>> cout<<"¿El producto tiene descuento?\npresiona 1 si tiene descuento o
>> 0 si no tiene";
>> if(descuento(n))
>> {
>> cout<<"El valor total es: "<<valor_total(valor_total)<<endl;
>> }
>>
>>
>>
>>
>> return 0;
>> }
>>
>> bool descuento(int n)
>> {
>> if(n==1) return true;else return false;
>> }
>>
>> float valor_total(int n;float valor_total;float
>> precio_articulo_sin_descuento)
>> {
>> if(descuento(n)==true)
>> {
>> valor_total=precio_articulo_sin_descuento*20/100;
>> return valor_total
>> }
>> else
>> {
>> valor_total=precio_articulo_sin_descuento;
>> return valor_total
>> }
>>
>> _______________________________________________
>> Lista de correo Cconclase Cconclase@listas.conclase.net
>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
> _______________________________________________
> Lista de correo Cconclase Cconclase@listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: (sin asunto) (Pepone) 2019-09-03 14:11:18
Llevas un buen camino, solo te falta práctica.
¡Ánimo!
El mar., 3 sept. 2019 a las 15:56, Facundo Curti (<facu.curti@gmail.com>)
escribió:
> También noto puntos y coma faltantes en los return.
> Te recomiendo que dividas los if en diferentes líneas. Es incómodo de leer
> así. Y mejor aún, podes hacer algo como esto:
>
> return n==1;
>
> Te ahorras la condición del if, es más fácil de leer y tiene mejor
> rendimiento el código.
> Además, la variable sin definir que ya te mencionaron.
> Es muy normal que haya errores en el código a la primera, lo importante es
> saber encontrarlos y arreglarlos. Para eso, lee los errores que te larga
> el compilador, de esa forma podes ir arreglando el código.
>
> Saludos
>
> El mar., 3 de septiembre de 2019 07:05, Jose DLG <josesoftwarem@gmail.com>
> escribió:
>
>> Buenos días,
>> uno de los motivos puede ser este:
>>
>>
>>
>>
>> *if(descuento(n)) { cout<<"El valor total es:
>> "<<valor_total(valor_total)<<endl; }*
>>
>> La variable que te he subrayado en rojo no está declarada. Quizás solo
>> con sustituirla por la variable *precio_articulo_sin_descuento* te
>> funcione o al menos tendrías un error menos.
>>
>>
>> El lun., 2 sept. 2019 a las 20:52, Emanuel Cristaldo (<
>> imeniuel.3.6@gmail.com> ) escribió:
>>
>>> hola estoy aprendiendo del curso de c++ con clase y quise realizar un
>>> programa usando funciones, pero aun no las tengo muy claro y me gustaria
>>> que me digan cuales son los errores que cometo en el codigo.
>>> el codigo es el siguiente:
>>>
>>> /*
>>> Una farmacia vende algunos artículos sin descuento y a otros con
>>> descuento del 20%. Confeccionar un
>>> programa que recibiendo el precio original y un código que indica si es
>>> o no con descuento, informe el precio
>>> final (0 no aplica el descuento y 1 aplica el descuento)
>>> */
>>>
>>> #include <iostream>
>>> #include <stdlib.h>
>>>
>>> using namespace std;
>>>
>>> bool descuento(int n);
>>> float valor_total();
>>>
>>> int main()
>>> {
>>> float precio_articulo_sin_descuento;
>>>
>>> cout<<"Ingrese el precio del poducto: ";
>>> cin>> precio_articulo_sin_descuento;
>>> cout<<"¿El producto tiene descuento?\npresiona 1 si tiene descuento
>>> o 0 si no tiene";
>>> if(descuento(n))
>>> {
>>> cout<<"El valor total es: "<<valor_total(valor_total)<<endl;
>>> }
>>>
>>>
>>>
>>>
>>> return 0;
>>> }
>>>
>>> bool descuento(int n)
>>> {
>>> if(n==1) return true;else return false;
>>> }
>>>
>>> float valor_total(int n;float valor_total;float
>>> precio_articulo_sin_descuento)
>>> {
>>> if(descuento(n)==true)
>>> {
>>> valor_total=precio_articulo_sin_descuento*20/100;
>>> return valor_total
>>> }
>>> else
>>> {
>>> valor_total=precio_articulo_sin_descuento;
>>> return valor_total
>>> }
>>>
>>> _______________________________________________
>>> Lista de correo Cconclase Cconclase@listas.conclase.net
>>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>>
>> _______________________________________________
>> Lista de correo Cconclase Cconclase@listas.conclase.net
>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
> _______________________________________________
> Lista de correo Cconclase Cconclase@listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ