You are on page 1of 4

ALGORITMOS Y ESTRUCTURA DE DATOS

ARREGLOS BIDIMENSIONALES Los arreglos bidimensionales constan de filas y columnas, se conocen tambin como matrices, dentro de una matriz todos los elementos son del mismo tipo (enteros, reales, cadenas, caracteres) y se definen de la siguiente forma:

j i
1

11 10 5 Matriz A [i,j] 2 3 4 5 Elementos de la matriz A A[2,3] =11 A[4,4] =10 A[5,1] =5 Formato: Tipo Tipo de datos Nombre de Matriz [fila][ columna] Ejemplo: Tipo int A[3][3];

Arreglo A de 3 filas y 3 columnas de datos enteros OPERACIONES EN ARREGLOS BIDIMENSIONALES O MATRICES Todas las operaciones en matrices de realizan dentro de la sentencia FOR, el primer FOR permite que el ndice i recorra las filas y el segundo FOR con el ndice j las columnas. INGRESO DE DATOS EN UNA MATRIZ for(i=0;i<3;i++) for(j=0;j<5;j++) {printf("mat[%d][%d]="i,j); scanf("%d",&mat[i][j]); } Nota: el Desde de las columnas es el que termina de recorrer mas rpido, por eso la lectura de la matriz es de fila y columna (fil1 col1, fil1 col2, fil1 col3)

MATRICES

Pgina 1

ALGORITMOS Y ESTRUCTURA DE DATOS

VISUALIZACIN DE DATOS EN UNA MATRIZ for(j=0;j<5;j++) { for(i=0;i<3;i++) printf("%5d",mat[i][j]); printf("\n");} EJEMPLOS: 1. Ingresar los datos en una matriz de 3 x 5 de la siguiente forma: 4 2 3 7 0 1 1 6 2 3 9 6 5 7 4

Y luego mostrar sus valores invertidos de la siguiente forma: 4 7 1 3 5 2 0 6 9 7 3 1 2 6 4

#include<iostream.h> #include<conio.h> void main(void) {int mat[3][5], i, j; clrscr(); gotoxy(10,5); cout<<"INGRESE DATOS DE LA MATRIZ\n\n"; for(i=0;i<3;i++) for(j=0;j<5;j++) {cout<<"mat["<<i<<"]"<<"["<<j<<"]"; cin>>mat[i][j]; } clrscr(); gotoxy(10,5); cout<<"LA MATRIZ INGRESADA ES:\n\n"; for(i=0;i<3;i++) { for(j=0;j<5;j++) cout<<mat[i][j]; cout<<"\n"; } gotoxy(10,15); cout<<"LA MATRIZ CAMBIADA ES:\n\n"; for(j=0;j<5;j++) { for(i=0;i<3;i++) cout<<mat[i][j]; cout<<"\n";

MATRICES

Pgina 2

ALGORITMOS Y ESTRUCTURA DE DATOS


} getch(); } 2. Programa que ingrese una matriz de m filas y n columnas, ubicar el elementos mayor. #include<iostream.h> #include<conio.h> #define lim 100 void main(void) {int mat[lim][lim],may,cont,i,j,fil,col; may=mat[0][0]; cont=0; clrscr(); do{ cout<<"INGRESE EL LIMITE DE LAS FILAS:"; cin>>fil; }while(fil<=0); do{ cout<<"INGRESE EL LIMITE DE LAS COLUMNAS:"; cin>>col; }while(col<=0); gotoxy(10,5); cout<<"INGRESE DATOS DE LA MATRIZ\n\n"; for(i=0;i<fil;i++) for(j=0;j<col;j++) {cout<<"mat["<<i<<"]"<<"["<<j<<"]"; cin>>mat[i][j]; } for(i=0;i<fil;i++) for(j=0;j<col;j++) if(mat[i][j]>may) may=mat[i][j]; clrscr(); gotoxy(10,5); cout<<"LA MATRIZ INGRESADA ES:\n\n"; for(i=0;i<fil;i++) { for(j=0;j<col;j++) cout<<" "<<mat[i][j]; cout<<"\n"; } gotoxy(10,10); cout<<"\n\nEL NUMERO MAYOR ES:"<<may; getch(); }

MATRICES

Pgina 3

ALGORITMOS Y ESTRUCTURA DE DATOS

EJERCICIOS PROPUESTOS 1. Se tiene una matriz de m filas y n columnas, calcular la suma de sus elementos. 2. Calcular la suma de los elementos que no pertenecen a la diagonal principal de una matriz de m filas y n columnas. 3. Programa que ingrese una matriz de m filas y n columnas y permita: Imprimir los elementos de la diagonal principal Imprimir los elementos de las diagonales 3. Escribir un algoritmo que dada una matriz de m filas y n columnas de nmeros enteros permita: Imprimir los elementos de la diagonal superior Imprimir los elementos de la diagonal inferior Matriz principal 4 7 1 2 0 6 3 1 2 Diagonal superior 4 7 1 0 6 2 Diagonal inferior 4 2 0 3 1 2 4. Escribir un algoritmo que dada una matriz de m filas y n columnas de nmeros enteros permita: Imprimir los elementos de las diagonales Matriz principal 4 7 1 2 0 6 3 1 2 Elementos de las Diagonales 4 1 0 3 2

MATRICES

Pgina 4