Dev - C++ - no funciona el if cuando leo una matriz de 28*34

 
Vista:

no funciona el if cuando leo una matriz de 28*34

Publicado por isabel (12 intervenciones) el 07/02/2008 02:14:33
Hola a todos

Necesito ayuda con el siguiente programa

resulta que al usar el if en la siguiente matriz no compara los resultados

int datos [28][34]={ 2, 2, 4, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 0, 0, 0, 0,
........................
}

esta matriz contiene solo números enteros
y despues viene un ciclo if donde

if (datos==0 )
{
Ez[i][j][n] = 25
else if (datos[i][j]== 1)
Ez[i][j][n] = 20;
y asi sucesivamente

funciona bien cuando es una matriz de 6*6 pero después solo deja compilar y no ejecutar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por Leo (19 intervenciones) el 08/02/2008 00:10:13
El problema está en
if(datos==0)
Fijate que declaraste a datos como una matriz.. y ¿¿ cuando una matriz es igual a 0?? O sea estás comparando tipos distintos de datos.
Suerte!
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por isabel (12 intervenciones) el 08/02/2008 00:48:35
Gracias Leo por responder
lo que comparo con 0 es

for (n=1;n<n_max;n++)
{



for (i=0;i<Nx-1;i++)
{
for (j=0;j< Ny-1;j++)
{
if (datos[i][j]=0)

Ez[i][j][n]=20;

else if (datos[i][j]=-2)

Ez[i][j][n]=40;

else if (datos[i][j]=5)

Ez[i][j][n]=80;

}
}
}

recordando que datos es una matriz de 28*34
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por Leo (19 intervenciones) el 09/02/2008 14:42:00
oka, solo reemplaza = por ==, y listo el pollo.
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por isabel (12 intervenciones) el 11/02/2008 01:35:09
Gracias por responder Leo

Sabes que ya tenía puesto == en mi problema original, me equivoque al mandar el problema con el signo =,por lo tanto ese no es el error, por lo cual no se cual puede ser el problema de que no pase los if

Isabel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por Leo (19 intervenciones) el 11/02/2008 02:29:24
mm vas a tener q mandar el codigo completo... Debe parecer q no pasan, pero eso no es posible si la condición se cumple. Fijate inicializando de distintas maneras a datos a ver q caso es el q falla, y luego arreglarlo.
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por isabel (12 intervenciones) el 11/02/2008 23:29:21
Hola Leo

aqui va el programa completo, ahora cuando Nx,Ny valen 6 funcionan para algunos valores pero para otros dan valores "extraños", y cuando Nx =28 y Ny=34 no funciona.

desde ya gracias

P.D Uso el DEv 4.9.9.2
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define Nx 6
#define Ny 6
#define n_max 5


main()
{

int i,j,n;
float Ez[Nx][Ny][n_max];

float grilla[Nx][Ny]={

0, 0, 0, 0, 0, 0,
0, -1, 0, -1, 0, 0,
0, -1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0};

/*
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 4, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 3, 4, 4, 3,
3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 4, 4, 3, 3, 3, 4,
3, 3, 3, 3, 3, 3, 4, 4, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4,
3, 3, 3, 3, 3, 3, 4, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 4, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 4, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 4, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 4, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 4, 3, 4, 3, 3,
3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 4, 4, 4, 4,
4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 4, 4, 4, 4,
3, 3, 3, 3, 4, 4, 3, 3, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 4, 4, 4,
3, 3, 3, 3, 4, 4, 3, 3, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 4, 4,
4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 4,
4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2,
2, 4, 4, 4, 4, 4, 4, 3, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2,
2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80};

*/


for ( i=0; i < Ny; i++ ) {
for ( j=0; j < n_max; j++ ) {
for ( n=0; n< Nx; n++ ) {

Ez[i][j][n]= 0.0 ;


} } }


for (i=0;i<Nx;i++){

for (j=0;i<Ny;i++){
for (n=0;n<n_max;n++)
{

if (grilla[i][j]== -1 )
Ez[i][j][n]=0.1;



else if (grilla[i][j]==0)

Ez[i][j][n] = 0.5;

else if (grilla[i][j]== 1) //%piel
Ez[i][j][n] = 9;

else if (grilla[i][j]== 2) // %hueso
Ez[i][j][n] = 7;

else if (grilla[i][j]== 3 ) // %sangre
Ez[i][j][n] = 4;

else if (grilla[i][j]== 4)// %musculo (ojo)
Ez[i][j][n] = 9;

}
}
}

for (i=0;i<Nx;i++)
{
for (j=0;j< Ny;j++)
{
for (n=0;n<n_max;n++)

{

printf("Ez= %2d %2d %2d %9.19f ",i,j,n,Ez[i][j][n]);
}
}}


system("PAUSE");

return EXIT_SUCCESS;//puede no ir
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por Leo (19 intervenciones) el 12/02/2008 16:28:38
Bueno hay un for asi
for (j=0;i<Ny;i++){
Fijate la j y la i. Debe ser eso. Es el segundo for, sin contar los q inicializan en 0.
Si no es eso, avisame q lo vuelvo a leer.
:p
Suerte
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por isabel (12 intervenciones) el 12/02/2008 23:42:32
hola

sabes corregi el error que tenía y funciona bien para Nx=6 y Ny=6, pero lo que quiero lograr es que funcione bien para Nx=28 y Ny=34 y n_max=1000
y en este caso no funciona solo compila no se ejecuta, sabes en el archivo anterior coloque un /* ....*/ para separar la matriz de 6*6 con la de 28*34 por lo cual los datos de la matriz 28*34 ya estan.

Isabel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por Leo (19 intervenciones) el 13/02/2008 01:17:16
OKa, Listo. Lo probe y tira los 28*34*1000 printfs, jajaja. Mira, te has equivocado en los for, escribes mal las variables, sólo error de tipeo.
Compara cada for de este programa con el q me mandaste, y observa en qué te equivovaste para q no lo repitas.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define Nx 28
#define Ny 34
#define n_max 1000

main()
{

int i,j,n;
float Ez[Nx][Ny][n_max];

float grilla[Nx][Ny]={

0,0,0,0,0,0,0,-1,0,-1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 4, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 3, 4, 4, 3,
3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 4, 4, 3, 3, 3, 4,
3, 3, 3, 3, 3, 3, 4, 4, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4,
3, 3, 3, 3, 3, 3, 4, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 4, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 4, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 4, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 4, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 4, 3, 4, 3, 3,
3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 4, 4, 4, 4,
4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 4, 4, 4, 4,
3, 3, 3, 3, 4, 4, 3, 3, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 4, 4, 4,
3, 3, 3, 3, 4, 4, 3, 3, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 4, 4,
4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 4,
4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2,
2, 4, 4, 4, 4, 4, 4, 3, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2,
2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80
};

for ( i=0; i < Nx; i++ ) {
for ( j=0; j < Ny; j++ ) {
for ( n=0; n< n_max; n++ ) {

Ez[i][j][n]= 0.0 ;

} } }

for (i=0;i<Nx;i++){
for (j=0;j<Ny;j++){
for (n=0;n<n_max;n++)
{

if (grilla[i][j]== -1 )
Ez[i][j][n]=0.1;


else if (grilla[i][j]==0)

Ez[i][j][n] = 0.5;

else if (grilla[i][j]== 1) //%piel
Ez[i][j][n] = 9;

else if (grilla[i][j]== 2) // %hueso
Ez[i][j][n] = 7;

else if (grilla[i][j]== 3 ) // %sangre
Ez[i][j][n] = 4;

else if (grilla[i][j]== 4)// %musculo (ojo)
Ez[i][j][n] = 9;

}
}
}

for (i=0;i<Nx;i++)
{
for (j=0;j< Ny;j++)
{
for (n=0;n<n_max;n++)

{

printf("Ez= %2d %2d %2d %9.19f ",i,j,n,Ez[i][j][n]);
}
}}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por isabel (12 intervenciones) el 13/02/2008 01:36:52
hola leo

Sabes compile el programa que enviaste y al ejecutar se queda pegado, ya corregi los for y el que enviaste por si acaso le falta cerrar la llave principal, aunque es un detalle , le coloque la llave y funciona parcialmente.

Sucede algo extraño, cuando Nx=Ny funciona bien me di varios valores hasta llegar a Nx=Ny=30 y el resto lo deje como comentario.

Pero cuando son distintos Nx e Ny ahi es donde no funciona
a continuación te envío el programa que funciona , solo debes cambiar Nx=28 y Ny a 34 y quitar los comentarios y no funciona

Desde ya gracias
isabel

P.D: uso el dev c++ 4.9.9.2


#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define Nx 30
#define Ny 30
#define n_max 1

main()
{

int i,j,n;
float Ez[Nx][Ny][n_max];

float grilla[Nx][Ny]={

0,0,0,0,0,0,0,-1,0,-1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 4, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 3, 4, 4, 3,
3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 4, 4, 3, 3, 3, 4,
3, 3, 3, 3, 3, 3, 4, 4, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4,
3, 3, 3, 3, 3, 3, 4, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 4, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 4, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 4, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 4, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 4, 3, 4, 3, 3,
3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 4, 4, 4, 4,
4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 4, 4, 4, 4,
3, 3, 3, 3, 4, 4, 3, 3, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 4, 4, 4,
3, 3, 3, 3, 4, 4, 3, 3, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 4, 4,
4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 4,
4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2,
2, 4, 4, 4, 4, 4, 4, 3, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2,
2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

/*
, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80
};
*/
for ( i=0; i < Nx; i++ ) {
for ( j=0; j < Ny; j++ ) {
for ( n=0; n< n_max; n++ ) {

Ez[i][j][n]= 0.0 ;

} } }

for (i=0;i<Nx;i++){
for (j=0;j<Ny;j++){
for (n=0;n<n_max;n++)
{

if (grilla[i][j]== -1 )
Ez[i][j][n]=0.1;

else if (grilla[i][j]==0)

Ez[i][j][n] = 0.5;

else if (grilla[i][j]== 1) //%piel
Ez[i][j][n] = 9;

else if (grilla[i][j]== 2) // %hueso
Ez[i][j][n] = 7;

else if (grilla[i][j]== 3 ) // %sangre
Ez[i][j][n] = 4;

else if (grilla[i][j]== 4)// %musculo (ojo)
Ez[i][j][n] = 9;

}
}
}

for (i=0;i<Nx;i++)
{
for (j=0;j< Ny;j++)
{
for (n=0;n<n_max;n++)

{

printf("Ez= %2d %2d %2d %9.19f ",i,j,n,Ez[i][j][n]);
}
}}

system ("pause");

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por isabel (12 intervenciones) el 13/02/2008 01:57:42
hola leo

Sabes mil disculpas me apresure en obtener conclusiones con respecto al programa, lo volvi a compilar y a ejecutar el que enviaste con Nx=28 y Ny=34 y funciona bien hasta n_max=546 y después de ese valor solo se compila ya no se ejecuta, mi error fue el compilarlo de inmediato con n_max =1000 y no empezar de un valor más bajo y lo de Nx=Ny era porque empece a variar ...... ,,son las cosas equivocada que uno llega.

Bueno ya no se porque no funciona con n_max>546, espero que este sea mi último pero y no molestar más con este ejercicio

Isabel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por Leo (19 intervenciones) el 13/02/2008 04:32:17
mm ???? A mi me funciona con 1000. Será tu compu ? poca memoria ? Probalo con otro compilador, o en otra pc. Es rarisimo q no trabaje de un cierto numero para arriba. Me funciona con 1000, lo acabo de probar de vuelta.
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por Leo (19 intervenciones) el 13/02/2008 04:42:36
Que hace ?? Fallo de segmentación ?? Intenta imprimir sólo el último resultado (saca el bucle q imprime, a ver si imprime el último entonces calculó los anteriores)
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por isabel (12 intervenciones) el 13/02/2008 22:27:40
Hola Leo

ejecute el programa en borland 3.1 y sale que hay un error de pila y cambie de pc , en primer lugar estaba trabajando en u n pc con una ram de 1G y ahora me cambie a un pc de RAM de 2G y sigue arrojando el mismo error que a partir de n_max =546 no se ejecuta.

no se puede imprimir el ultimo valor , arroja error
sabes quisiera saber si compilaste el programa em dev 4.9.9.2 o en otro compilador y cuanta Ram tiene tu pc

Isabel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por Leo (19 intervenciones) el 14/02/2008 01:19:06
La ram q tienes es suficiente, es otro problema.... este funciona... mi ram es de 1G y el compilador es gcc pero tiene q funcionar igual, mira, prueba seleccionar y copiar exactamente el código que te mande. Abre un archivo en blanco y pega ahi el código, exacto como te lo mande. Sino pega aqui de nuevo el código completo...
Nunca tuve un error parecido T_T
Yo no tengo drama en seguir ayudandote pq estoy de vacaciones..
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por isabel (12 intervenciones) el 14/02/2008 01:40:54
gracias

Aqui va el código que solo compila hasta n_max=546

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define Nx 28
#define Ny 34
#define n_max 1000

main()
{

int i,j,n;
float Ez[Nx][Ny][n_max];

float grilla[Nx][Ny]={

0,0,0,0,0,0,0,-1,0,-1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 4, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 3, 4, 4, 3,
3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 4, 4, 3, 3, 3, 4,
3, 3, 3, 3, 3, 3, 4, 4, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4,
3, 3, 3, 3, 3, 3, 4, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 4, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 4, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 4, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 4, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 4, 3, 4, 3, 3,
3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 4, 4, 4, 4,
4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 4, 4, 4, 4,
3, 3, 3, 3, 4, 4, 3, 3, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 4, 4, 4,
3, 3, 3, 3, 4, 4, 3, 3, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 4, 4,
4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 4,
4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2,
2, 4, 4, 4, 4, 4, 4, 3, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2,
2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80
};

for ( i=0; i < Nx; i++ ) {
for ( j=0; j < Ny; j++ ) {
for ( n=0; n< n_max; n++ ) {

Ez[i][j][n]= 0.0 ;

} } }

for (i=0;i<Nx;i++){
for (j=0;j<Ny;j++){
for (n=0;n<n_max;n++)
{

if (grilla[i][j]== -1 )
Ez[i][j][n]=0.1;

else if (grilla[i][j]==0)

Ez[i][j][n] = 0.5;

else if (grilla[i][j]== 1) //%piel
Ez[i][j][n] = 9;

else if (grilla[i][j]== 2) // %hueso
Ez[i][j][n] = 7;

else if (grilla[i][j]== 3 ) // %sangre
Ez[i][j][n] = 4;

else if (grilla[i][j]== 4)// %musculo (ojo)
Ez[i][j][n] = 9;

}
}
}

for (i=0;i<Nx;i++)
{
for (j=0;j< Ny;j++)
{
for (n=0;n<n_max;n++)

{

printf("Ez= %2d %2d %2d %9.19f ",i,j,n,Ez[i][j][n]);
}
}}

system("pause");
}


Isabel
P.D hay otra forma eficiente de mejorar este código como leer desde un archvo txt la matrix grilla, lo he intentado pero me no me resulta, la verdad si va ser más lento no me gustaría seguir investigando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por Leo (19 intervenciones) el 14/02/2008 03:01:45
Funciona. Muy extraño... escribe los errores que arroja por favor...y explica cuando se produce el error.
Fijate esto es una partecita pequeña de los resultados que arroja.

Ez= 0 0 883 0.5000000000000000000
Ez= 0 0 884 0.5000000000000000000
Ez= 0 0 885 0.5000000000000000000
Ez= 0 0 886 0.5000000000000000000
Ez= 0 0 887 0.5000000000000000000
Ez= 0 0 888 0.5000000000000000000
Ez= 0 0 889 0.5000000000000000000
Ez= 0 0 890 0.5000000000000000000
Ez= 0 0 891 0.5000000000000000000
Ez= 0 0 892 0.5000000000000000000
Ez= 0 0 893 0.5000000000000000000
Ez= 0 0 894 0.5000000000000000000
Ez= 0 0 895 0.5000000000000000000
Ez= 0 0 896 0.5000000000000000000
Ez= 0 0 897 0.5000000000000000000
Ez= 0 0 898 0.5000000000000000000
Ez= 0 0 899 0.5000000000000000000
Ez= 0 0 900 0.5000000000000000000
Ez= 0 0 901 0.5000000000000000000
Ez= 0 0 902 0.5000000000000000000
Ez= 0 0 903 0.5000000000000000000
Ez= 0 0 904 0.5000000000000000000
Ez= 0 0 905 0.5000000000000000000
Ez= 0 0 906 0.5000000000000000000
Ez= 0 0 907 0.5000000000000000000
Ez= 0 0 908 0.5000000000000000000
Ez= 0 0 909 0.5000000000000000000
Ez= 0 0 910 0.5000000000000000000
Ez= 0 0 911 0.5000000000000000000
Ez= 0 0 912 0.5000000000000000000
Ez= 0 0 913 0.5000000000000000000
Ez= 0 0 914 0.5000000000000000000
Ez= 0 0 915 0.5000000000000000000
Ez= 0 0 916 0.5000000000000000000
Ez= 0 0 917 0.5000000000000000000
Ez= 0 0 918 0.5000000000000000000
Ez= 0 0 919 0.5000000000000000000
Ez= 0 0 920 0.5000000000000000000
Ez= 0 0 921 0.5000000000000000000
Ez= 0 0 922 0.5000000000000000000
Ez= 0 0 923 0.5000000000000000000
Ez= 0 0 924 0.5000000000000000000
Ez= 0 0 925 0.5000000000000000000
Ez= 0 0 926 0.5000000000000000000
Ez= 0 0 927 0.5000000000000000000
Ez= 0 0 928 0.5000000000000000000
Ez= 0 0 929 0.5000000000000000000
Ez= 0 0 930 0.5000000000000000000
Ez= 0 0 931 0.5000000000000000000
Ez= 0 0 932 0.5000000000000000000
Ez= 0 0 933 0.5000000000000000000
Ez= 0 0 934 0.5000000000000000000
Ez= 0 0 935 0.5000000000000000000
Ez= 0 0 936 0.5000000000000000000
Ez= 0 0 937 0.5000000000000000000
Ez= 0 0 938 0.5000000000000000000
Ez= 0 0 939 0.5000000000000000000
Ez= 0 0 940 0.5000000000000000000
Ez= 0 0 941 0.5000000000000000000
Ez= 0 0 942 0.5000000000000000000
Ez= 0 0 943 0.5000000000000000000
Ez= 0 0 944 0.5000000000000000000
Ez= 0 0 945 0.5000000000000000000
Ez= 0 0 946 0.5000000000000000000
Ez= 0 0 947 0.5000000000000000000
Ez= 0 0 948 0.5000000000000000000
Ez= 0 0 949 0.5000000000000000000
Ez= 0 0 950 0.5000000000000000000
Ez= 0 0 951 0.5000000000000000000
Ez= 0 0 952 0.5000000000000000000
Ez= 0 0 953 0.5000000000000000000
Ez= 0 0 954 0.5000000000000000000
Ez= 0 0 955 0.5000000000000000000
Ez= 0 0 956 0.5000000000000000000
Ez= 0 0 957 0.5000000000000000000
Ez= 0 0 958 0.5000000000000000000
Ez= 0 0 959 0.5000000000000000000
Ez= 0 0 960 0.5000000000000000000
Ez= 0 0 961 0.5000000000000000000
Ez= 0 0 962 0.5000000000000000000
Ez= 0 0 963 0.5000000000000000000
Ez= 0 0 964 0.5000000000000000000
Ez= 0 0 965 0.5000000000000000000
Ez= 0 0 966 0.5000000000000000000
Ez= 0 0 967 0.5000000000000000000
Ez= 0 0 968 0.5000000000000000000
Ez= 0 0 969 0.5000000000000000000
Ez= 0 0 970 0.5000000000000000000
Ez= 0 0 971 0.5000000000000000000
Ez= 0 0 972 0.5000000000000000000
Ez= 0 0 973 0.5000000000000000000
Ez= 0 0 974 0.5000000000000000000
Ez= 0 0 975 0.5000000000000000000
Ez= 0 0 976 0.5000000000000000000
Ez= 0 0 977 0.5000000000000000000
Ez= 0 0 978 0.5000000000000000000
Ez= 0 0 979 0.5000000000000000000
Ez= 0 0 980 0.5000000000000000000
Ez= 0 0 981 0.5000000000000000000
Ez= 0 0 982 0.5000000000000000000
Ez= 0 0 983 0.5000000000000000000
Ez= 0 0 984 0.5000000000000000000
Ez= 0 0 985 0.5000000000000000000
Ez= 0 0 986 0.5000000000000000000
Ez= 0 0 987 0.5000000000000000000
Ez= 0 0 988 0.5000000000000000000
Ez= 0 0 989 0.5000000000000000000
Ez= 0 0 990 0.5000000000000000000
Ez= 0 0 991 0.5000000000000000000
Ez= 0 0 992 0.5000000000000000000
Ez= 0 0 993 0.5000000000000000000
Ez= 0 0 994 0.5000000000000000000
Ez= 0 0 995 0.5000000000000000000
Ez= 0 0 996 0.5000000000000000000
Ez= 0 0 997 0.5000000000000000000
Ez= 0 0 998 0.5000000000000000000
Ez= 0 0 999 0.5000000000000000000
Ez= 0 1 0 0.5000000000000000000
Ez= 0 1 1 0.5000000000000000000
Ez= 0 1 2 0.5000000000000000000
Ez= 0 1 3 0.5000000000000000000
Ez= 0 1 4 0.5000000000000000000
Ez= 0 1 5 0.5000000000000000000
Ez= 0 1 6 0.5000000000000000000
Ez= 0 1 7 0.5000000000000000000
Ez= 0 1 8 0.5000000000000000000
Ez= 0 1 9 0.5000000000000000000
Ez= 0 1 10 0.5000000000000000000
Ez= 0 1 11 0.5000000000000000000
Ez= 0 1 12 0.5000000000000000000
Ez= 0 1 13 0.5000000000000000000
Ez= 0 1 14 0.5000000000000000000
Ez= 0 1 15 0.5000000000000000000
Ez= 0 1 16 0.5000000000000000000
Ez= 0 1 17 0.5000000000000000000
Ez= 0 1 18 0.5000000000000000000
Ez= 0 1 19 0.5000000000000000000
Ez= 0 1 20 0.5000000000000000000
Ez= 0 1 21 0.5000000000000000000
Ez= 0 1 22 0.5000000000000000000
Ez= 0 1 23 0.5000000000000000000
Ez= 0 1 24 0.5000000000000000000
Ez= 0 1 25 0.5000000000000000000
Ez= 0 1 26 0.5000000000000000000
Ez= 0 1 27 0.5000000000000000000
Ez= 0 1 28 0.5000000000000000000
Ez= 0 1 29 0.5000000000000000000
Ez= 0 1 30 0.5000000000000000000
Ez= 0 1 31 0.5000000000000000000
Ez= 0 1 32 0.5000000000000000000
Ez= 0 1 33 0.5000000000000000000
Ez= 0 1 34 0.5000000000000000000
Ez= 0 1 35 0.5000000000000000000
Ez= 0 1 36 0.5000000000000000000
Ez= 0 1 37 0.5000000000000000000
Ez= 0 1 38 0.5000000000000000000
Ez= 0 1 39 0.5000000000000000000
Ez= 0 1 40 0.5000000000000000000
Ez= 0 1 41 0.5000000000000000000
Ez= 0 1 42 0.5000000000000000000
Ez= 0 1 43 0.5000000000000000000
Ez= 0 1 44 0.5000000000000000000
Ez= 0 1 45 0.5000000000000000000
Ez= 0 1 46 0.5000000000000000000
Ez= 0 1 47 0.5000000000000000000
Ez= 0 1 48 0.5000000000000000000
Ez= 0 1 49 0.5000000000000000000
Ez= 0 1 50 0.5000000000000000000
Ez= 0 1 51 0.5000000000000000000
Ez= 0 1 52 0.5000000000000000000
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por isabel (12 intervenciones) el 14/02/2008 19:13:33
Hola leo

sabes voy a enviarte a tu correo las imagenes de como compilo y ejecuto el prorama.


Pasa la compilación no hay errores ni warnings

El error es que cuando se ejecuta dice programa.exe ha detectado un error y debe cerrase y viene con el típico informes de errores .

Isabel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por Leo (19 intervenciones) el 15/02/2008 03:34:08
BUeno aprovechando que tuve que ir a Windows (siempre uso linux) probe el programa en el DevCpp y da ese error que dices. Estuve investigando un poquito y descubri que es un limitante de Windows.
Intente hacer este simple programa:
float a[500000];
y funciona, pero
float a[600000] no funciona y da exactamente el mismo error.
Asi que estamos en un limitante de memoria. Voy a ver cómo se puede solucionar... sabes que deberias postear otro tema en este foro con el ejemplo que te acabo de dar del arreglo de floats, para que todos vean porqué falla.
Yo por mi parte voy a averiguar..
Las opciones más rápidas son:
-Rediseña el programa para usar menos memoria. Es muy poco probable que realmente necesites una matriz de 3 dimensiones, piensa a ver que estas guardando demás. O dime qué es lo que se propone hacer el programa.
-Cambiate a linux :p. Ahi sí que funciona..jeje.
-Esperar a que averiguemos cómo se soluciona esto..


Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por Leo (19 intervenciones) el 15/02/2008 04:02:45
Bueno, como estaba aburrido, lo rediseñe yo. Creo q hace exactamente lo mismo pero con una matriz dos dimensiones. Solo sobrescribo la matriz para cada n.
Este funciona en mi DevCpp. Igual descubrimos un problemita en Windows :p.


#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define Nx 28
#define Ny 34
#define n_max 1000

main()
{

int i,j,n;
float Ez[Nx][Ny];

int grilla[Nx][Ny]={

0,0,0,0,0,0,0,-1,0,-1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 4, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 3, 4, 4, 3,
3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 4, 4, 3, 3, 3, 4,
3, 3, 3, 3, 3, 3, 4, 4, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4,
3, 3, 3, 3, 3, 3, 4, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 4, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 4, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 4, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 4, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 4, 3, 4, 3, 3,
3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 4, 4, 4, 4, 4,
4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 4, 4, 4, 4,
3, 3, 3, 3, 4, 4, 3, 3, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 4, 4, 4,
3, 3, 3, 3, 4, 4, 3, 3, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 4, 4,
4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 4,
4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2,
2, 4, 4, 4, 4, 4, 4, 3, 4, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2,
2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80

};
n=0;
while(n<n_max)
{
//inicializo en 0 una matriz
for ( i=0; i < Nx; i++ ) {
for ( j=0; j < Ny; j++ ) {
Ez[i][j]= 0.0 ;
}
}
//Le guardo los valores
for (i=0;i<Nx;i++){
for (j=0;j<Ny;j++){
if (grilla[i][j]== -1 )
Ez[i][j]=0.1;
else if (grilla[i][j]==0)
Ez[i][j] = 0.5;
else if (grilla[i][j]== 1) //%piel
Ez[i][j] = 9;
else if (grilla[i][j]== 2) // %hueso
Ez[i][j] = 7;
else if (grilla[i][j]== 3 ) // %sangre
Ez[i][j] = 4;
else if (grilla[i][j]== 4)// %musculo (ojo)
Ez[i][j] = 9;
}
}
//Lo imprimo
for (i=0;i<Nx;i++)
{
for (j=0;j< Ny;j++)
{
printf("Ez= %2d %2d %2d %9.19f ",i,j,n,Ez[i][j]);
}
}
//cuando vuelva para arriba, será sobrescrita con 0.
n++; // n = n + 1
}

system("pause");

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por isabel (12 intervenciones) el 16/02/2008 00:07:26
Hola Leo

muchas gracias por revisar el programa voy a plantear otro post , se me fue el tiempo realizando otras cosas asi que sera para un dia mas, y ahi resolvere lo que falte.

Isabel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona el if cuando leo una matriz de 28*3

Publicado por isabel (1 intervención) el 16/02/2008 00:12:07
Sabes mil gracias por rediseñar el programa , voy a revisar el programa final y comparar los datos en cada vuelta a ver si da lo mismo



Isabel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar