Algoritmia - alguien que me esplique

 
Vista:

alguien que me esplique

Publicado por marcela (4 intervenciones) el 01/08/2007 17:53:53
Buenos dias estoy haciendo un curso de programacion pero esto me tiene un poco confundida
por fa ayudenme
de antemano muchas gracias por su colaboracion

Se desea mostrar las características y propiedades del concepto de un arreglo de dos dimensiones en el sentido de jugar con la matriz como un cuadro mágico de la siguiente manera. Desarrollar un algoritmo y diagrama de flujo que pida al usuario las dimensiones deseadas para un arreglo de dos dimensiones en forma de cuado y luego le pida los datos para llenar el arreglo. Después el programa debe calcular por medio de funciones:

a) La suma de los elementos que no pertenecen a la diagonal principal.

b) El promedio de los elementos del arreglo.

c) Mandar a un arreglo de una dimensión los elementos de cualquier fila, debe indicar que fila mandará al arreglo.


Mostrara el arreglo de entrada, la suma de los elementos que no pertenecen a la diagonal principal, el promedio de los elementos del arreglo y el arreglo con los elementos de la fila.
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:alguien que me explique

Publicado por klaytor (22 intervenciones) el 02/08/2007 17:40:45
Hola marcela.

Si vamos a trabajar con arreglos tienes que tener primero algo claro y que creo que en el enunciado puede prestarse a error. Un arreglo es un tipo de variable cuyas dimensiones deben ser constantes y se declaran al principio del programa por lo cual la dimensión del array no puede definirse mediante una variable. Esto es así porque en cuanto ejecutas tu programa se reserva la memoria necesaria para guardar ese arreglo y por eso no puede ser variable, se trata de una asignación estática de memoria.

Una posible solución; define un arreglo de dos dimensiones de tamaño 100 x 100. Mientras el usuario no introduzca más de 10000 datos (en este caso) todo va bien. Es mejor pasarse de largo que quedar corto.

Lo más cómodo es tratar al arreglo como una matriz de M filas x N columnas. En cuanto al ejercicio yo haría algo como esto;

1. Solicita dimensiones del arreglo (Obtenemos M y N).
2. Rellenamos la matriz (fila por fila por ejemplo). Con dos bucles FOR. Por ejemplo:

FOR i=1 TO M
{
___FOR j=1 TO N
______{
_________Solicita_numero;
_________matriz[i][j] = numero_solicitado;
______}
}

*indice i = filas
*indice j = columnas

3. Sumar todos los elementos salvo los de la diagonal principal. Teniendo en cuenta que los elementos de la diagonal principal son aquellos cuyos subíndices son iguales ( i = j);

suma=0; //OJO, inicializa siempre las variables

FOR i=1 TO M
{
___FOR j=1 TO N
______{
_________IF (i = j) CONTINUE; //Esto salta a la siguiente iteracion del 2º bucle FOR
_________suma = suma + matriz[i][j]; //Si se cumple la condición anterior esta instrucción no se ejecuta.
______}
}

4. El promedio. Mismo bucle que en el punto 3 pero eliminando la sentencia IF. Cuando obtengas la suma de todos los elementos de la matriz la divides entre el número de elementos (M*N).

5. Copiar una fila en un arreglo de una dimensión (La fila 6 por ejemplo).

FOR j=1 TO N
{
___matriz[6][j] = nuevo_arreglo[j];
}

6. Por último sólo queda visualizar los resultados.

Espero que te sirva de ayuda. Si tienes alguna duda posteala.

Saludos.
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:gracias

Publicado por marcela (4 intervenciones) el 03/08/2007 01:32:00
hola mil gracias por tu colaboracion
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:alguien que me esplique

Publicado por jadit (2 intervenciones) el 10/08/2007 22:47:43
alquien que me explique como hacer algoritmos
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