C/Visual C - Nesesito ayuda en proyecto final!!!!!

 
Vista:

Nesesito ayuda en proyecto final!!!!!

Publicado por Emiliano Damiano (7 intervenciones) el 12/08/2007 19:34:30
buenas tengo como proyecto final .... la tarea de realizar una planilla exel( con su mayoria de funciones ) en c++. Pero tengo algunos problemas.
osea hice un programa con una matriz en que el usuario ingresa tamaño de planilla y sus valores , y que luego tenga la opcion de hallar mayor /menor/ promedio/ suma /orden .
Pero lo que se pide es que el usuario ingrese desde que parte de la planilla hasta donde quiere generar la opercaion, y no utilizar los valores de toda la matriz (se entiende?).
mando el prog. AGRADECERIA MUCHO QUE ME DIERAN UNA MANO. YA QUE TENGO VARIOS PROYECTOS MAS QUE TERMINAR.

void captura(int n)
{
int i,j;
printf ("\n\tPLANILLA EXEL :\n ");
printf ("\n");
for (i=0;i<nf;i++)
for (j=0;j<nc;j++)
{
printf ("\tElemento [%d][%d]: ",i+1,j+1);
scanf ("%d",&matriz[i][j][n]);
}

printf("\n\n");
}

void mostrar (int n)
{
int i,j;
printf ("\tPLANILLA:\n");
printf ("\n");
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
printf (" %4d\t", matriz[i][j][n]);
printf ("\n");
}
}


void ordenar_f(int n, int res)
{
int i,j,k,aux;
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
matriz[i][j][res]=matriz[i][j][n];
}
for (j=0;j<nf;j++)
{
for (i=0;i<nc-1;i++)
{
for (k=i+1;k<nc;k++)
{
if (matriz[j][i][res] > matriz[j][k][res])
{
aux = matriz[j][i][res];
matriz[j][i][res] = matriz[j][k][res];
matriz[j][k][res] = aux;
}
}
}
}
printf ("\n\tOrdenado por filas\n\n");
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
printf (" %4d\t", matriz[i][j][res]);
printf ("\n");
}
printf ("\n");
}

void ordenar_c(int n, int res)
{
int i,j,k,aux;
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
matriz[i][j][res]=matriz[i][j][n];
}
for (j=0;j<nc;j++)
{
for (i=0;i<nf-1;i++)
{
for (k=i+1;k<nf;k++)
{
if (matriz[i][j][res] > matriz[k][j][res])
{
aux = matriz[i][j][res];
matriz[i][j][res] = matriz[k][j][res];
matriz[k][j][res] = aux;
}
}
}
}
printf ("\n\tOrdenado por culumnas\n\n");
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
printf (" %4d\t", matriz[i][j][res]);
printf ("\n");
}
printf ("\n");
}

void menor(int n)
{
int i,j,auxm=1,posf=0,posc=0;
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
{
if (auxm > matriz[i][j][n])
{
auxm=matriz[i][j][n];
posf=i;
posc=j;
}
}
}
printf ("\n\n\tEl numero menor es: %d posicion [%d][%d] ",auxm,posf+1,posc+1);
}

void mayor(int n)
{
int i,j,auxM=0,posf=0,posc=0;
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
{
if (auxM < matriz[i][j][n])
{
auxM=matriz[i][j][n];
posf=i;
posc=j;
}
}
}
printf ("\n\n\tEl numero mayor es: %d posicion [%d][%d] ",auxM,posf+1,posc+1);
}

void promedio(int n)
{
int i,j;
float acu=0,p;
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
{
acu+=matriz[i][j][n];
}
}
p = acu/(nf*nc);
printf ("\n\n\tEl promedio la matriz es: %4.2f",p);
}
void suma(int n)
{
int i,j;
float contador=0,resultado;
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
{
contador+=matriz[i][j][n];
}
}
resultado = contador=+contador;
printf ("\n\n\tla suma es : %.1f",resultado);
}
/*COMENTARIOvoid inicializar (int n)
{
int i,j;
float contador=0,resultado;
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
{
n = 0;
}
}
resultado = contador=+contador;
}
*/
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:Nesesito ayuda en proyecto final!!!!!

Publicado por Nelek (816 intervenciones) el 13/08/2007 07:47:12
Y donde tienes el problema?

Por cierto... por que haces una matriz tridimensional? Quieres guardar mas valores en la misma casilla?

Es decir, en lugar de hacer un puzzle (2 dimensiones) estas intentando montar un cubo de rubic (3 Dimensiones), estas seguro de necesitarlo?
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:Nesesito ayuda en proyecto final!!!!!

Publicado por Alexis (14 intervenciones) el 13/08/2007 20:54:31
Lo q puedes hacer es pedirle al usuario q ingrese la fila y la columna desde donde quiere sumar y a partir de ahi comienzas los ciclos for () para la suma:

cout << "ingrese la fila: "
cin >> fila;
cout << "ingrese la columna: ";
cin >> columna;
for (a=fila-1;a<long_max_matriz;a++)
{
for (b=columna-1;b<long_max_matriz;b++)
{
suma=matriz[a][b];
}
}

Tal vez no sea exactamente lo q quieres hacer pero mas o menos esa es la idea o por lo menos lo q a mi se me ocurre....
Suerte....
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:Nesesito ayuda en proyecto final!!!!!

Publicado por Diego (5 intervenciones) el 14/08/2007 16:49:24
Buenas

Mira, lo que podes hacer es una matriz bastante grande ( 2 elevado a la 15 mas o menos) que te daria una matriz de 32700 mas o menos o hacer una matriz dinamica pero seria mas quilombo

Despues ,crea una estructura punto o coordenada que tenga un campo x (columna) e y (fila). De ahi con con el scanf tomas el valor inicial y final y con esos datos, como dijo Alexis hacer fors.
scanf("%d, %d", &pIni.col, &pIni.row);
scanf("%d, %d", &pFin.col, &pFin.row);

PD: Pregunto lo mismo que Nelek... para que la 3era dimension de la matriz?

Salu2, Diego
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