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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  manipulación de un objeto multidimensional
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: manipulación de un objeto multidimensional  (Leído 2,670 veces)
david_BS

Desconectado Desconectado

Mensajes: 99



Ver Perfil WWW
manipulación de un objeto multidimensional
« en: 3 Abril 2012, 03:49 am »

Un ejemplo que muestra varias cosas, uso de punteros, manipulación de un objeto multidimensional, uso de static en el objeto, y lo que sea, que puede ayudar a iniciados en el lenguaje C/C++. Como siempre, trato de loguear cierta información que permita saber el comportamiento del programa.

Código:
//////////////////////////////////////////////////////////////////

//
// UTN FRGP
// 2012
// david_BS
// EMAIL: david_bs@live.com
//

//////////////////////////////////////////////////

#include <windows.h>
#include <stdio.h>


struct somestruct{

  int index;
};

#define MAX 8

typedef float tMatrix[MAX][3][4];

float**** Inicializar( void ){

static float mmf[8][3][4];// para que no cambie de dirección

// inicializamos el objeto tridimensional
for(int i=0; i<8; i++)
for(int j=0; j<3; j++){

for(int k=0; k<4; k++){

switch(i){
case 0: {

switch(j){

case 0: {

switch(k){
case 0: {mmf[i][j][k]=0.02f;break;}
case 1: {mmf[i][j][k]=0.022f;break;}
case 2: {mmf[i][j][k]=0.0222f;break;}
case 3: {mmf[i][j][k]=0.02222f;break;}
}

break;
}
case 1: {mmf[i][j][k]=0.03f;break;}
case 2: {mmf[i][j][k]=0.04f;break;}
}

break;
}

case 1: {mmf[i][j][k]=0.05f;break;}
case 2: {mmf[i][j][k]=0.7f;break;}
case 3: {mmf[i][j][k]=99;break;}
case 4: {mmf[i][j][k]=0.11f;break;}
case 5: {mmf[i][j][k]=88;break;}
case 6: {mmf[i][j][k]=33;break;}
case 7: {mmf[i][j][k]=100;break;}
}
}
}

return (float****)&mmf;// retornamos la dirección del objeto
}

void Mostrar (float m[3][4]){

for(int i=0; i<3; i++)
for(int j=0; j<4; j++)
printf("%f\n",m[i][j]);
}

int main(){


// pB va a ser un puntero a un objeto de 3 dimensiones
tMatrix *pB = ( tMatrix* )Inicializar( );

struct somestruct vS[8];
vS[0].index=0;
vS[1].index=1;
vS[2].index=2;
vS[3].index=3;
vS[4].index=4;
vS[5].index=5;
vS[6].index=6;
vS[7].index=7;

struct somestruct* pS;

pS=vS;

Mostrar((*pB)[pS[0].index]);// dentro de pB hay una matriz de 3x4


system("pause");
return 0;
}


Proyecto MSVC++ 6.0


« Última modificación: 3 Abril 2012, 03:55 am por david_BS » En línea

3MP3R0R

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: manipulación de un objeto multidimensional
« Respuesta #1 en: 3 Abril 2012, 05:24 am »

Muchas gracias por esta colaboracion, me encanta, porque estoy empezando y resolviste algunas dudas sin que las proponga ;-) Estare chequeando mas a fondo este código, una vez mas gracias...


En línea

david_BS

Desconectado Desconectado

Mensajes: 99



Ver Perfil WWW
Re: manipulación de un objeto multidimensional
« Respuesta #2 en: 3 Abril 2012, 21:53 pm »

de nada, me alegro que te sirva
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines