Título: ejercicio esperanza c++ Publicado por: indict en 25 Junio 2013, 19:09 pm Hola,
quiero hacer un programa que le des una serie de elementos en tan por uno y calcule la esperanza. La esperanza será la suma de cada elemento introducido multiplicado por el valor del contador correspondiente. Si la suma de valores introducidos no es igual a 1 se imprimirá por pantalla que no existe la esperanza en cambio si la suma de valores es igual a 1 se mostrará por pantalla que sí existe la esperanza y es ... ejemplo: introduzco los elementos: 0.1 , 0.5 , 0.3, 0.1 la suma de estos 4 elementos es 1 luego si existe la esperanza. Y será: 0.1 * 0 + 0.5 * 1 + 0.3 *2 + 0.1 * 3 = 1.4 Mi problema es que este mismo caso que he ejemplificado el programa me devuele que la esperanza no existe :SS Si pudieras decirme donde está el fallo os lo agradeceria Muchas gracias :) Código: #include<iostream> Título: Re: ejercicio esperanza c++ Publicado por: engel lex en 25 Junio 2013, 21:13 pm mira la variable "s" de tu codigo, solo ubicaré donde está en orden de ejecucion
Código: s=0 así que t depende de s... y aunque no soy realmente conocedor de "<vector>" estoy seguro que en "es_esperan" el vector es vacio... y la s es = 0 ya que lo declaraste al principio y la única modificación depende de un vector vacio... a "es_esperan" debes pasarle el vector, ya que "s" no tiene velas en ese entierro... puedes declararlo global o pasarlo como parametro, tu decides eso... Título: Re: ejercicio esperanza c++ Publicado por: amchacon en 25 Junio 2013, 21:44 pm mira la variable "s" de tu codigo, solo ubicaré donde está en orden de ejecucion Código: s=0 así que t depende de s... y aunque no soy realmente conocedor de "<vector>" estoy seguro que en "es_esperan" el vector es vacio... y la s es = 0 ya que lo declaraste al principio y la única modificación depende de un vector vacio... a "es_esperan" debes pasarle el vector, ya que "s" no tiene velas en ese entierro... puedes declararlo global o pasarlo como parametro, tu decides eso... Ahí está la clave. Tienes que pasar el vector como parámetro a la función. Título: Re: ejercicio esperanza c++ Publicado por: indict en 26 Junio 2013, 00:33 am Gracias por la ayuda :D
He pasado el vector como parámetro en la función booleana pero sigue sin funcionar. :S Código: bool es_esperan(vector<double>v){ Título: Re: ejercicio esperanza c++ Publicado por: amchacon en 26 Junio 2013, 01:11 am Tienes que inicializar la variable "esperanza" a 0.
Mi propio compilador me ha avisado, deberías usar uno más moderno: http://foro.elhacker.net/programacion_cc/iquestpor_que_no_deberias_usar_el_devcpp-t385150.0.html Título: Re: ejercicio esperanza c++ Publicado por: indict en 26 Junio 2013, 18:03 pm La inicializo a 0 y sigue sin funcionar bien :/.
Título: Re: ejercicio esperanza c++ Publicado por: engel lex en 26 Junio 2013, 18:09 pm postea tu código hasta este punto (recomiendo usar para mostrar no el símbolo de numeral, sino donde dice GeSHi buscas el lenguaje)
Título: Re: ejercicio esperanza c++ Publicado por: indict en 27 Junio 2013, 19:25 pm Código
Título: Re: ejercicio esperanza c++ Publicado por: engel lex en 27 Junio 2013, 19:49 pm practicas recomendadas...
inciializa toda variable... no declares variables en el for (i la tienes declarada como 4 veces) declara las funciones main primero Código
los cambio que le hice al codigo son esteticos, y le agregué 2 cout para visualizar como se movian las variables, el código funciona aparentemente bien... con cuales valores eso debe dar "1"? Título: Re: ejercicio esperanza c++ Publicado por: indict en 27 Junio 2013, 21:37 pm con la suma de todos los los elementos del vector, es decir la suma de todos los e debe dar 1.
Gracias por toda la ayuda y aportaciones :) |