C/Visual C - matrices

   
Vista:

matrices

Publicado por pappland (1 intervención) el 06/11/2008 18:35:36
¿como reservo la memoria e inicializo esta matriz?

double **matriz
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:matrices

Publicado por chema (8 intervenciones) el 07/11/2008 19:43:59
Ejemplo:

double **matriz;
*matriz = new double[5];
for (int i=0;i<=5; i++)
matriz[i] = new double[5];

matriz[1][1]=23.2;
matriz[1][2]=22.2;
matriz[2][1]=23.3;

/* ........Así sucesivamente********/
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:matrices

Publicado por AntonioG (42 intervenciones) el 08/11/2008 01:14:35
Hola,

Tal vez estas llevando un curso de programacion basica en C y en este caso usan mas malloc() que new , en este caso escribe una funcion como esta:
float **memory(int nr,int nc)
{
int i;
m=(float **)malloc(nr*sizeof(float *));
for(i=0;i<nr;i++)
m[i]=(float *)malloc(nc*sizeof(float));
return(m);
}
y la usas asi:
matriz=memory(5,5);
y ya para inicalizarla, asi como te dice chema
matriz[1][1]=23.2;
matriz[1][2]=22.2;
matriz[2][1]=23.3;
:
:
o con un doble for:
for(i=0;i<nr;i++)
for(j=0;j<nc;j++)
matriz[i][j]=0;
En este caso nr y nc tienen el numero de renglones y de columnas de la matriz.

Saludos
P.D. En el ejemplo de chema como que hay algo mal, en este parte:
*matriz = new double[5];
ahi mas bien deberia reservar memoria para los vectores (renglones de la matriz) matriz[i]
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:matrices

Publicado por chema (8 intervenciones) el 10/11/2008 17:43:39
Tiene razón Antonio, hay un error en esa linea que puse

*matriz = new double[5];

debe ser así: matriz = new double*[5];

el codigo completo:

double **matriz;
matriz = new double*[5]; // Esta es la linea que cambié
for (int i=0;i<=5; i++)
matriz[i] = new double[5];

Sorry, por el error.
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:matrices

Publicado por Victor Alfonso  (2 intervenciones) el 08/11/2008 22:32:18
Hola "Pappland", mira soy estudiante de Ingenieria, te explico lo q
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:matrices

Publicado por Victor Alfonso  (2 intervenciones) el 08/11/2008 22:45:05
Hola "Pappland", mira soy estudiante de Ingenieria, te explico lo que tienes que hacer:

para empezar **matriz, es un puntero a puntero de una localidad de memoria a la que has hecho referencia, para inicializarla y declararla realiza esto:

ejemplo

#include <stdio.h>
#include <conio.h> /* En esta libreria se encuentra definida la funcin "malloc" */

float **matriz;
int fila, columna;

void main()
{

puts("Digite el tamaño que quiere para la matriz");
puts("! Recuerde que son dos dimensiones m x n, por tanto digite dos numeros");
scanf("%d%d", &fila, &columna );

matriz = (float *) malloc(fila, columna sizeof(float)); // Aqui le asigno la dimension que
// quiera el usuario

} /* Fin*/

Espero que te sirva, cualquier inquietud escribeme a (teh_killer@hotmail.com)
te respondere lo mas pronto posible




}
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