Autor |
Mensaje |
Igoicoa
Nivel 3
Edad: 33
Registrado: 01 Jul 2010
Mensajes: 56
Ubicación: Nuñez
Carrera: Informática
|
|
Bueno estoy con el TP2 de Calvo, tuve que modificar un montón de cosas en base a las modificaciones que fueron surgiendo en el TP...
Tengo una función dentro de mi clase que recorre la matriz y le va cambiando los valores chequeando una serie de condiciones.
Hago el recorrido de mi función manualmente y debería funcionar bien, ya controlé que nunca me vaya de rango y no lo hace pués en las condiciones de recorrer la matriz siempre empiezo desde i=1 (no el 0) y voy hasta cantidadfilas-1 o cantidadcolumnas-1.
No me tira errores de compilacion y el build lo hace exitosamente.
Pero cuando comienza a ejecutar el programa se tilda justo en la llamada a esta función con el cartel de:
"TP2.exe dejó de funcionar
El programa dejo de funcionar correctamente por un problema. Windows cerrará el programa y le notificará si existe una solución."
(depurar) o (cerrar programa)
Process terminated with status -1073741819 (40 seconds).
Por favor si alguien me ayuda que puedo estar haciendo mal!
Por lo pronto la matriz dinámica la crea bien el constructor, de hecho la creo, la inicializo en 0, luego le cargo manualmente valores, la imprime en pantalla y lo hace bien.
|
|
|
|
|
|
|
|
|
csebas
Nivel 9
Edad: 71
Registrado: 16 Feb 2009
Mensajes: 1634
Carrera: No especificada
|
|
Última edición por csebas el Dom Abr 15, 2012 2:36 am, editado 1 vez
|
|
|
|
|
Igoicoa
Nivel 3
Edad: 33
Registrado: 01 Jul 2010
Mensajes: 56
Ubicación: Nuñez
Carrera: Informática
|
|
void Matriz::validarCeldas()
{
bool recorrerNuevamente=1;
while (recorrerNuevamente==1)
{
recorrerNuevamente=0;
for (int i=1;i<(cantidadFilas-1);i++)
{
for (int j=1;i<(cantidadColumnas-1);j++)
{
if (datos[i][j]==1)
{
if ((datos[i][j+1]==1)&&(datos[i][j-1]==1)&&(datos[i+1][j]==1)&&(datos[i-1][j]==1))
{
if ((datos[i-1][j-1]==0)||(datos[i+1][j-1]==0)||(datos[i-1][j+1]==0)||(datos[i+1][j+1]==0))
{
datos[i][j]=3;
recorrerNuevamente=1;
}
}
if ((datos[i][j+1]==3)||(datos[i][j-1]==3)||(datos[i+1][j]==3)||(datos[i-1][j]==3))
{
datos[i][j]=3;
recorrerNuevamente=1;
}
}
}
}
}
}
|
|
|
|
|
|
|
|
|
Igoicoa
Nivel 3
Edad: 33
Registrado: 01 Jul 2010
Mensajes: 56
Ubicación: Nuñez
Carrera: Informática
|
|
Hu quedó re confuso sin las tabulaciones
|
|
|
|
|
|
|
|
|
csebas
Nivel 9
Edad: 71
Registrado: 16 Feb 2009
Mensajes: 1634
Carrera: No especificada
|
|
Viendolo asi, la vdd no se cual es el error, pero algunas cosas.
1) bool recorrerNuevamente=1;
dejalo para cuando aprendiste algo1, pone true o false, idem adentro del while.
2) Al tener tantas comparaciones, (y no se que estas comparando con eso de =3 o =1), se complica mucho probar posibilidades de que ande bien, hay una leve sospecha de que recorrerNuevamente valga siempre true a la hora de evaluar y se muera en algun momento (usa lo que te puse abajo).
Te recomiendo usas COUT para imprimir los valores de las variables, y lo que estas evaluando. Quizas asi encuentres tu error.
Ejemplo pone (supongo c++, sino usa printf)
cout << " i vale :" << i;
cout << " datos i,j: " << datos[i][j] ;
cout << "datos i,j+1": << (datos[i][j+1];
cout << "recorrer nuevamente: " << recorrerNuevamente; (ultimo renglon del while, cuando salis del for)
Como vos dijiste que la matriz te la imprime bien, supuse que a vos la matriz te llega perfectamente cargada.
|
|
|
|
|
|
|
|
|
Torbellino
Nivel 9
Edad: 37
Registrado: 29 May 2006
Mensajes: 1742
Ubicación: Congreso
Carrera: Electrónica y Informática
|
|
for (int j=1;i<(cantidadColumnas-1);j++)
Te quedó i en la condición de mantenimiento del bucle que debe usar j. No revisaste lo suficientemente bien :-P
En algún link se avivaron de pasarlo a hexa de 32 bits, y da el código de error de segmentation fault. Te estás yendo de rango, nomás. Lo que no entiendo es por qué te lo muestra en decimal signado, si está pensado en hexa.
@csebas: si agitás con que busque en google, al menos tené la viveza de no seguir el primer resultado sin fijarte que el código de error es otro distinto del que buscaste.
Saludos
|
|
|
|
_________________
No hay vuelta atrás...
Spike Spiegel escribió:
|
Por un lado se celebran las hazañas de San Martín, Bolivar y demases, la reforma de 1918, el cordobazo y otras tantas en Argentina, Latinoamérica y el mundo entero. No sé cuántos habrán llorado mirando Braveheart al grito de FREEDOM de Wallace y dicho "cuántos huevos, viejo", tenido ganas de cambiar el mundo cuando terminaron de ver V for Vendetta o celebrado toda la ficcionaria justicia que solía hacer El Zorro.
Y sin embargo...
"Ay, no, violencia no. Ay, no, corte de calle, no. Ay, no, piden democracia pero son antidemocráticos con sus métodos. Ay, no, a la facultad se viene a estudiar"
¡PERO QUÉ MANGA DE PUTOS!
|
|
|
|
|
|
csebas
Nivel 9
Edad: 71
Registrado: 16 Feb 2009
Mensajes: 1634
Carrera: No especificada
|
|
que buen ojo, para los ciegos como yo esos errores se solucionan con el cout .
@es el sueño.
|
|
|
|
_________________ ━━━━━┓ \\
┓┓┓┓┓┃
┓┓┓┓┓┃ ヽ○ノ
┓┓┓┓┓┃ /
┓┓┓┓┓┃ ノ)
┓┓┓┓┓┃
┓┓┓┓┓┃
▒▒▒▒▒▒▒▒▒▒▒▒▒▒
|
|
|
|
|
Igoicoa
Nivel 3
Edad: 33
Registrado: 01 Jul 2010
Mensajes: 56
Ubicación: Nuñez
Carrera: Informática
|
|
Torbellino crack! Era esa boludes nomás!! No lo puedo creer, se ve que el sueño ya no me dejaba ver nada! Que buen ojo loco jaja
csebas gracias igual por tus consejos! Los tendré en cuenta a la hora de buscar un próximo error!
|
|
|
|
|
|
|
|
|
csebas
Nivel 9
Edad: 71
Registrado: 16 Feb 2009
Mensajes: 1634
Carrera: No especificada
|
|
de nada, como acotacion lo que te dije te lo ahorras si aprendes a usar bien el modo debug, utilizando break points, leyendo los valores de las variables, utilizando el paso a paso.
Trata de acostumbrarte a eso porque cuando llegues a materias mas complicadas lo vas a necesitar.
Salu2
|
|
|
|
_________________ ━━━━━┓ \\
┓┓┓┓┓┃
┓┓┓┓┓┃ ヽ○ノ
┓┓┓┓┓┃ /
┓┓┓┓┓┃ ノ)
┓┓┓┓┓┃
┓┓┓┓┓┃
▒▒▒▒▒▒▒▒▒▒▒▒▒▒
|
|
|
|
|
|
|
Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro No podés responder a temas en este foro No podés editar tus mensajes en este foro No podés borrar tus mensajes en este foro No podés votar en encuestas en este foro No Podéspostear archivos en este foro No Podés bajar archivos de este foro
|
Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker365 Attacks blocked.
|