elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error al compilar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error al compilar  (Leído 1,671 veces)
HectorSersi

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Error al compilar
« en: 11 Diciembre 2018, 19:00 pm »

Buenas, me sale un error al compilar y luego en la puntuación me salen numeros negativos cuando deberían salir numeros pequeños...Es un error que nunca me habia salido y no se por que es.

https://gyazo.com/dd40d2b77b7fa13ba755a169e3b819fe

Código
  1. bool esProbablePasarse(double puntosMaquina, const tCartasPorAparecer cartas)
  2. {
  3. int dato, variable = 0, variable2 = 0, probabilidad;
  4. bool pasarse;
  5. dato = 7.5 - puntosMaquina;
  6.  
  7. for (int i = dato; i < 8; i++)
  8. {
  9. variable = variable + cartas[i];
  10. }
  11.  
  12. for (int i = 0; i < 8; i++)
  13. {
  14. variable2 = cartas[i] + variable2;
  15. }
  16.  
  17. probabilidad = variable / variable2;
  18.  
  19. if (probabilidad < 0.5)
  20. {
  21. pasarse = false;
  22. }
  23. else
  24. pasarse = true;
  25.  
  26. return pasarse;
  27.  
  28. }


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Error al compilar
« Respuesta #1 en: 11 Diciembre 2018, 19:12 pm »

Código:
int dato;



En línea

HectorSersi

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Error al compilar
« Respuesta #2 en: 11 Diciembre 2018, 19:14 pm »

Código:
int dato;



Me sigue dando el error
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Error al compilar
« Respuesta #3 en: 11 Diciembre 2018, 19:20 pm »

Par empezar el tipo de dato de la variable Dato es double no Int, no puedes o mas bien vas a tener errores por guardar un dato entero cuando realemnte esperas un tipo de dato flotante o double.

Segundo segun veo tu Screenshot.

Código:
	for (int i = dato; i < 8; i++)
{
variable = variable + cartas[i];
}

Iguales i al valor de dato pero cuando realizas una Operacion en dato como:

Código:
dato = 7.5 - puntosMaquina;

El resultado no va a ser siempre el que esperes, a no ser que estes 100% seguro que la operacion siempre va a devolver un numero entero.

ahora el error que te aparece es que estas tratando de acceder a una region de memoria no valida, ya sea que te excediste del limite del arreglo o la variable cartas es apuntador No valido. (Cosas que no podemos saber por que no tenemos acceso al resto del codigo.

Te recomiendo colocar Mejores nombres a tus variables por que los nombres de "dato" y "variable" son muy escuetos.

Saludos
En línea

HectorSersi

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Error al compilar
« Respuesta #4 en: 11 Diciembre 2018, 19:42 pm »

Par empezar el tipo de dato de la variable Dato es double no Int, no puedes o mas bien vas a tener errores por guardar un dato entero cuando realemnte esperas un tipo de dato flotante o double.

Segundo segun veo tu Screenshot.

Código:
	for (int i = dato; i < 8; i++)
{
variable = variable + cartas[i];
}

Iguales i al valor de dato pero cuando realizas una Operacion en dato como:

Código:
dato = 7.5 - puntosMaquina;

El resultado no va a ser siempre el que esperes, a no ser que estes 100% seguro que la operacion siempre va a devolver un numero entero.

ahora el error que te aparece es que estas tratando de acceder a una region de memoria no valida, ya sea que te excediste del limite del arreglo o la variable cartas es apuntador No valido. (Cosas que no podemos saber por que no tenemos acceso al resto del codigo.

Te recomiendo colocar Mejores nombres a tus variables por que los nombres de "dato" y "variable" son muy escuetos.

Saludos

Gracias, como puedo haberme pasado si yo he definido el array como
Código
  1. typedef int tCartasPorAparecer[8];
  y con el for he hecho que lea hasta el 8 a si que no creo que me haya pasado... y lo de no valido no se como ver si es eso...
En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Error al compilar
« Respuesta #5 en: 11 Diciembre 2018, 20:46 pm »

Primero que tienes que cambiar todas las variables de <int> a <double> como ya te han comentado. Sino vas a perder los decimales de los cálculos.

El problema de compilación que te da puede ser por pasar ese tipo de dato así. Es una cosa que no te puedo decir seguro ya que nunca lo he usado.

Y el primer <for> tiene que empezar desde 0, la diferencia entre "variable" y "variable2" es que una tiene que tener el número de cartas de cada tipo por su valor y la otra tiene que acumular el número de cartas sólo. Por lo que lo puedes hacer todo en un mismo <for>.

Y por último, un código que sea:
Código
  1. bool variable;
  2. if(condicion)
  3.    variable = true;
  4. else
  5.    variable = false;
Es mejor suponer un valor inicial y solo lo cambias una vez:
Código
  1. bool variable = false;
  2. if(condicion)
  3.    variable = true;
Pero esto último es simplemente como recomendación, de la otra forma funciona igual. Suerte. :-X
PD: No cites un mensaje para responder, dale arriba del todo o abajo del todo donde pone "responder" y no agregues citas a no ser que sea para comentar algo específico de lo que ha dicho otra persona.
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: Error al compilar
« Respuesta #6 en: 11 Diciembre 2018, 21:31 pm »

Si la variable es booleana, más corto

Código
  1. variable = condicion;
En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error al compilar
Programación Visual Basic
newbY 2 1,794 Último mensaje 9 Noviembre 2007, 13:40 pm
por newbY
me da error al compilar
Programación Visual Basic
elguast 2 1,782 Último mensaje 29 Junio 2008, 11:54 am
por elguast
Error al compilar un BAT a EXE « 1 2 »
Scripting
xXEsEtUlOnXx 10 7,614 Último mensaje 26 Julio 2008, 02:19 am
por morenochico
Error al compilar
ASM
Kerber0 4 7,220 Último mensaje 7 Enero 2010, 09:58 am
por Eternal Idol
Error al compilar, error de linker: Undefined reference to...
Programación C/C++
danissj 5 2,949 Último mensaje 26 Septiembre 2018, 22:56 pm
por danissj
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines