Sie sind auf Seite 1von 9

Elaborado por Fernando Torre - Universidad Simn Bolvar

ARREGLOS BIDIMENSIONALES
Prctica
Elaborado por Fernando Torre - Universidad Simn Bolvar
Es programa puede ser dividido en varias secciones
Revise el siguiente programa y
explique cul es el resultado.
#include <stdio.h>
#define FILAS 3
#define COLUMNAS 4
void main ( )
{
int i,j;
int M[FILAS][COLUMNAS];
// lectura por filas
for ( i=0; i<FILAS; i++)
for ( j=0; j< COLUMNAS; j++)
scanf(%d, &M[i][j]);
// Escribe por columnas
for ( j=0; j<COLUMNAS; j++)
{
for ( i=0; i< FILAS; i++)
printf(%5d,M[i][j]);
printf(\n);
}
}
Declaraciones iniciales Lectura de datos en el arreglo M Escritura de los datos del arreglo M Fin del programa
Elaborado por Fernando Torre - Universidad Simn Bolvar
Incluye librera estndar de entrada y salida.
Define dos constantes simblicas:
FILAS con valor 3 y
COLUMNAS con valor 4
Observe que no requieren el signo igual ni el punto y
coma, y se procesan antes de la compilacin.
Declara la funcin main Declara las variables enteras i y j
Observemos primero la seccin
con las declaraciones iniciales
#include <stdio.h>
#define FILAS 3
#define COLUMNAS 4
void main ( )
{
int i,j;
int M[FILAS][COLUMNAS];
Declara el arreglo M de elementos
enteros con dimensiones M[3][4]
Elaborado por Fernando Torre - Universidad Simn Bolvar
Hagmosle un seguimiento a
esta seccin del programa
Note que la lectura de datos para el arreglo
M[ i ] [ j ] se realiza por FILAS, donde:
se mantiene fijo el valor de la FILA i mientras
que
el valor de la COLUMNA j vara de 0 a 3.
Los ndices i y j de M[ i ] [ j ] varan de acuerdo a
las instrucciones for, indicando con cul valor del
arreglo M se est trabajando en ese momento.
Veamos ahora la seccin que efecta
la lectura de datos por filas en el
arreglo M
// Lectura por filas
for ( i=0; i < FILAS; i++)
for ( j=0; j < COLUMNAS; j++)
scanf(%d, &M[i][j]);
M[0][0] M[0][1] M[0][2] M[0][3]
M[1][0] M[1][1] M[1][2] M[1][3]
M[2][0] M[2][1] M[2][2] M[2][3]
M =
i =
j =
0 1 2
0 1 2 3
FILA
COLUMNA
0 1 2 3 0 1 2 3
Vamos primero paso a paso Veamos ahora un elemento a la vez Finalmente veamos una fila completa
Hasta aqu hemos ledo los datos y los hemos
almacenado en el arreglo M
Elaborado por Fernando Torre - Universidad Simn Bolvar
// Escribe por columnas
for ( j=0; j < COLUMNAS; j++)
{
for ( i=0; i < FILAS; i++)
printf(%5d,M[i][j]);
printf(\n);
}
En la seccin previa el arreglo M [ i ] [ j ]
fue recorrido por FILAS, es decir
horizontalmente.
Aqu el arreglo M [ i ] [ j ] es recorrido
por COLUMNAS, es decir verticalmente.
Observe que el programador utiliz aqu los
ndices i y j en un orden inverso al que
us para leer los datos:
Aqu la j est primero que la i.
0 1 2 0 1 2 0 1 2
Examinemos ahora la seccin que
imprime los datos almacenados en
el arreglo M
M[0][0] M[0][1] M[0][2] M[0][3]
M[1][0] M[1][1] M[1][2] M[1][3]
M[2][0] M[2][1] M[2][2] M[2][3]
M =
i =
0 1 2
0
FILA
COLUMNA
1 2
3 j =
Elaborado por Fernando Torre - Universidad Simn Bolvar
// Escribe por columnas
for ( j=0; j < COLUMNAS; j++)
{
for ( i=0; i < FILAS; i++)
printf(%5d,M[i][j]);
printf(\n);
}
Procedamos ahora a observar el orden
en que los datos son impresos
M[0][0]
M[0][1]
M[0][2]
M[0][3]
M[1][0]
M[1][1]
M[1][2]
M[1][3]
M[2][0]
M[2][1]
M[2][2]
M[2][3]
\n es Salto de lnea
\n es Salto de lnea
\n es Salto de lnea
\n es Salto de lnea
La matriz que fue introducida con
3 filas y 4 columnas, aparece impresa como de
4 filas y 3 columnas.
Elaborado por Fernando Torre - Universidad Simn Bolvar
Un programa que lee una matriz 3 X 3 de
valores reales, luego:
Calcule la suma de cada fila y la almacena
en un vector
Calcule la suma de cada columna y la
almacena en otro vector.

Matriz: arreglo de elementos reales con
dimensin 3x3
Sum_fila: vector de 3 elementos reales
Sum_fila: contiene la suma de cada fila
Sum_colum: vector de 3 elementos reales
Sum_colum: contiene la suma de cada columna.
Para este programa se definen los
siguientes elementos de datos:
Elaborado por Fernando Torre - Universidad Simn Bolvar
#include <stdio.h>
#define N 3

void main ( )
{
float matriz[N][N]; // Entrada
float sum_fila[N], sum_colum[N]; // Salida
int i,j;

for (i=0; i<N; i++){
sum_fila[i]= 0.0;
sum_colum[i]= 0.0;
}
// Lee los datos para la matriz
printf("Introduzca los %d elementos de la matriz por
fila\n", N*N);
for ( i=0; i<N; i++)
for (j=0; j<N; j++)
scanf("%f", &matriz[i][j]);

// Suma las filas
for ( i=0; i<N; i++)
for (j=0; j<N; j++)
sum_fila[i] = sum_fila[i]+matriz[i][j] ;

// Suma las columnas
for ( j=0; j<N; j++)
for (i=0; i<N; i++)
sum_colum[j] = sum_colum[j] + matriz[i][j] ;

// Imprime las sumas de cada fila y cada columna
for (i=0; i<N; i++)
printf("La suma de la fila %d es: %5.2f y la
suma de la columna %d es: %5.2f \n",
i,sum_fila[i],i, sum_colum[i]);
}
Definiciones iniciales y declaracin de variables Inicializa los arreglos sum_fila y sum_colum a cero Lee los datos y los almacena en el arreglo matriz Recorre cada fila y almacena la suma en sum_fila Recorre cada columna y almacena la suma en sum_column Imprime la suma de cada fila y de cada columna Fin de programa
Elaborado por Fernando Torre - Universidad Simn Bolvar
Interaccin con el programa
1
2
3
4
5
6
7
8
9
Primero el programa solicita al usuario los datos para llenar
la matriz, para ello hemos introducido unos datos de prueba,
y luego se muestran los resultados para esos datos:
La suma de la fila 0 es: 6.00 y la suma de la columna 0 es: 12.00
La suma de la fila 1 es: 15.00 y la suma de la columna 1 es: 15.00
La suma de la fila 2 es: 24.00 y la suma de la columna 2 es: 18.00
Introduzca los 9 elementos de la matriz por fila

Das könnte Ihnen auch gefallen