3
« en: Lunes 15 de Mayo de 2006, 18:40 »
bueno hice un programa que se supone tiene que calcular el area en R^2 y el volumen en R^3, el usuario tenia que ingresar los parametros del rectangulo son:
1º el numero de veces que tengo que dividirlo en el eje x
2º el numero de veces que tengo que dividirlo en el eje y
3º el largo1
4º el largo2
5º el alto1
6ª el alto2
bueno eso seria para R^2 (en el plano).
para R^3
1º el numero de veces que tengo que dividirlo en el eje x
2º el numero de veces que tengo que dividirlo en el eje y
3º el numero de veces que tengo que dividirlo en el eje z
4º el largo1
5º el largo2
6º el alto1
7º el alto2
8º el ancho1
9º el ancho2
bueno ya lo hice en R2
bueno este es una parte del codigo [esto es solo en R2]
//////////////////////////////////////////////////////////////////////////////////////
float largo_n,alto_m,larg,alt;
larg = alt = largo_n = alto_m = 0;
int i,j;
double **area=NULL;
float area_t=0;
larg = *largo2 - *largo1;
alt = *alto2 - *alto1;
//vector dinamico
area = (double **)malloc(sizeof(double)*(*n));
for(i=0;i<*n;i++){
for(j=0;j<*m;j++){
area = (double *)malloc(sizeof(double)*(*n * *m));
}
}
largo_n = larg / *n;
alto_m = alt / *m;
printf("\tEl area de :\n\n");
for(i=0; i < *n ;i++){
for(j =0; j < *m ;j++){
area[j] = (largo_n * alto_m);
printf("\n\t[%d][%d] = %f",i,j,area[j]);
}
}
for(i=0;i< *n;i++){
for(j=0;j< *m;j++){
area_t += area[j];
// printf("\n\tel area es %f",area_t);
}
}
printf("\n\n\tel area es : [ %.4f ]",area_t);
}
else
printf("\n\n\tNo se puede dividir por 0 o por un numero negativo!!!");
// for(int i=0; i< *n; i++) free(area);
// free(area);
exit(0);
return 0;
}
/////////////////////////////////////////////////////////////////
bueno mi problema esta en R3 [el espacio]
//////////////////////////////////////////////////////////////////
float largo_n,alto_m,larg,alt,ancho,ancho_mn;
larg = alt = largo_n =alto_m =ancho= 0;
int i,j,k;
float ***area = NULL;
float area_t=0;
larg = *largo2 - *largo1;
alt = *alto2 - *alto1;
ancho = *ancho2 - *ancho1;
//vector dinamico
area = (float ***)malloc(sizeof(float)*(*n * *m * *mn));
for(i=0 ; i < *n ; i++){
for(j=0 ; j < *m ; j++){
for(k=0 ; k < *mn ; k++){
area[j] = (float *)malloc(sizeof(float)*(*n * *m * *mn));
}
}
}
largo_n = larg / *n;
alto_m = alt / *m;
ancho_mn = ancho / *mn;
printf("\tEl area de :\n\n");
for(i=0; i < *n ;i++){
for(j =0; j < *m ;j++){// alto-1 ;j>0;j--){
for(k =0; k < *mn ;k++){
area[j][k] = (largo_n * alto_m * ancho_mn);
printf("\n[%d][%d][%d] = %.4f",i,j,k,area[j][k]);
}
printf("\n");
}
}
for(i=0;i< *n;i++){
for(j=0;j< *m;j++){
for(k =0; k < *mn ;k++){
area_t += area[j][k];
}
}
}
printf("\n\tel volumen es %.4f",area_t);
//////////////////////////////////////////////////////////////////
}
else
printf("\n\n\tNo se puede dividir por 0, Por un \n\tnumero negativo o un numero \n\tmeror entre ellos!!!\n\t"); exit(0);
}
//////////////////////////////////////////////////////////////////
haaa y se me olvidava mi duda es vectores multidimencionales dinamicos
como po puedo hacer mas eficiente sin tener que definir "#define tam 100"
para mi matrixz ya que al final mi prgrama tiene que calcular el area y el volumen como una suma de riemman(una integral de un rectangulo )
y me esta costando quizas definir mi variable si no me entendieron despues subo unas imagenes de que tien que hacer este programa
PDT: espero solucionar mi problema com las matricez multid.... dinamicas
despues subo el codigo completo