Viernes 8 de Noviembre de 2024, 14:52
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
»
C++ Builder
(Moderador:
Eternal Idol
) »
Ayuda En Ciclo For Y Variables Int
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Ayuda En Ciclo For Y Variables Int (Leído 1713 veces)
Linspire
Miembro MUY activo
Mensajes: 232
Ayuda En Ciclo For Y Variables Int
«
en:
Sábado 6 de Enero de 2007, 03:11 »
0
Hola amigos, hace tiempo que habìa dejado un poco de lado la programaciòn y ahora que inicié de nuevo tengo un pequeño problema en el que espero puedan ayudarme, lo que ocurre es lo siguiente (creo que serìa màs fácil entender si solo publico el código)
Código: Text
String cadena, a2, b2, c2;
int i, j, longitud;
double a, b, c, d;
for(i=0;i<=StringGrid2->ColCount;i++)
{
for(j=1;j<=StringGrid2->RowCount;j++)
{
if(StringGrid2->Cells[i][j].IsEmpty()==true)
StringGrid2->Cells[i][j]=0;
else continue;
}
}
for(i=0;i<=StringGrid2->ColCount;i++)
{
for(j=1;j<=StringGrid2->RowCount;j++)
{
cadena=StringGrid2->Cells[0][i+1];
longitud=cadena.Length();
a2=cadena.SubString(1,longitud);
a=a2.Delete(2,longitud).ToDouble();
b2=cadena.SubString(1,longitud);
b2=b2.Delete(1,2);
b=b2.Delete(2,2).ToDouble();
c2=cadena.SubString(1,longitud);
c=cadena.Delete(1,4).ToDouble();
StringGrid2->Cells[1][i+1]=a;
StringGrid2->Cells[2][i+1]=b;
StringGrid2->Cells[3][i+1]=c;
d=(b/c)+a;
StringGrid2->Cells[4][i+1]=d;
}
}
El problema es con las variables
b,c y d
. Resulta que al ejecutar el còdigo se lanza el siguiente mensaje de error:
Y como ven, según yo, en el código todo está bien escrito.
Esta es la ventana de ejecución.
Ya depuré el programa y todo parece estar bien, y la variable
d
si se calcula, pero el error continúa.
alguién podría decirme que es lo que ocurre?.
Agradezco de antemano la ayuda que me aporten.
Tweet
[size=109]
My Blog de Programación
[/i][/b][/size]
´
[size=109]Tan solo quiero pensar que todo es un sueño y que no quiero despertar
porque quiero controlarlo como yo quiera.
[/size]
Todo es posible, lo imposible solo cuesta un poco más. Dan Drown.
wako13
Miembro activo
Mensajes: 36
Re: Ayuda En Ciclo For Y Variables Int
«
Respuesta #1 en:
Sábado 6 de Enero de 2007, 18:15 »
0
Pues al parece una de las variables esta tomando un valor nulo
Hazle un break point a tu codigo para ver en que momento se lanza el error
Mollense
Miembro de PLATA
Mensajes: 1755
Nacionalidad:
Re: Ayuda En Ciclo For Y Variables Int
«
Respuesta #2 en:
Sábado 6 de Enero de 2007, 18:32 »
0
Hacele un paso a paso y comprobá que los valores de las variables "i" y "j" no caigan fuera del rango deceado, seguramente estás leyendo un valor no inicializado .-
Suerte
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."
...no te quedes mirando.
Linspire
Miembro MUY activo
Mensajes: 232
Re: Ayuda En Ciclo For Y Variables Int
«
Respuesta #3 en:
Domingo 7 de Enero de 2007, 03:03 »
0
Ok, ya habìa depurado el còdigo pero me desesperé y lo aborte, pero ahora viendo las respuestas depuraré nuevamente y ya comentaré que ocurre.
Gracias por las respuestas.
[size=109]
My Blog de Programación
[/i][/b][/size]
´
[size=109]Tan solo quiero pensar que todo es un sueño y que no quiero despertar
porque quiero controlarlo como yo quiera.
[/size]
Todo es posible, lo imposible solo cuesta un poco más. Dan Drown.
Linspire
Miembro MUY activo
Mensajes: 232
Re: Ayuda En Ciclo For Y Variables Int
«
Respuesta #4 en:
Lunes 8 de Enero de 2007, 00:56 »
0
Pues bien, siguiendo el consejo de los que respondieron, me apresuré a depurar el código (que por cierto era una matriz enorme) pero antes de llegar siquiera a la mitad supuse cual fue el problema, lo analicé y finalmente pude corregirlo. Resultaba que la variable cadena tiene 5 de longitud, pero si el usuario no introducía un "número" con esa extensión entonces por defecto la variable es igual a 0, pero entonces no se puede generar el valor de las variables b y c ya que la cadena es de 1 caracter en este caso y por lo tanto los valores que deberían tomar no existen.
Finalmente tal motivo publico el código por si le es de ayuda a alguien (aún hay algunos detalles que arreglar).
Nota: La variable d la cambié por la variable grueso, es para hacer cálculos de volumen de la producción de madera en una aserradero.
Muchas gracias a los que me respondieron, hasta pronto.
Código: Text
String cadena, a2, b2, c2;
int i, j, longitud, n;
double a, b, c, grueso, ancho, largo, volumen,suma=0;
for(i=1;i<=31;i++)
{
for(j=0;j<=31;j++)
{
cadena=StringGrid2->Cells[0][i];
longitud=cadena.Length();
a2=cadena.SubString(1,longitud);
b2=cadena.SubString(1,longitud);
b2=b2.Delete(1,2);
c2=cadena.SubString(1,longitud);
if(a2.IsEmpty()==true)
a=0;
else a=a2.Delete(2,longitud).ToDouble();
if(b2.IsEmpty()==true)
b=0;
else b=b2.Delete(2,2).ToDouble();
if(c2.IsEmpty()==true)
c=1;
else
c=cadena.Delete(1,longitud-1).ToDouble();
}
grueso=(b/c)+a;
if(StringGrid2->Cells[1][i].IsEmpty()==true)
ancho=0;
else ancho=StringGrid2->Cells[1][i].ToDouble();
if(StringGrid2->Cells[2][i].IsEmpty()==true)
largo=0;
else largo=StringGrid2->Cells[2][i].ToDouble();
if(StringGrid2->Cells[3][i].IsEmpty()==true)
n=0;
else n=StringGrid2->Cells[3][i].ToDouble();
volumen=((grueso*ancho*largo)/12)*n;
suma+=volumen;
if(volumen==0)
StringGrid2->Cells[4][i]="";
else
StringGrid2->Cells[4][i]=FormatFloat("0.000",volumen);
StringGrid2->Cells[5][1]=FormatFloat("0.000",suma);
StringGrid2->Cells[5][i+1]="";
Edit3->Text=FormatFloat("0.000",suma);
}
[size=109]
My Blog de Programación
[/i][/b][/size]
´
[size=109]Tan solo quiero pensar que todo es un sueño y que no quiero despertar
porque quiero controlarlo como yo quiera.
[/size]
Todo es posible, lo imposible solo cuesta un poco más. Dan Drown.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
»
C++ Builder
(Moderador:
Eternal Idol
) »
Ayuda En Ciclo For Y Variables Int