You are on page 1of 19

FUNDAMENTOS DE

PROGRAMACION
Arreglos Bidimensionales

Facultad de Ingeniera
Fundamentos de Programacin - Manuel Malpica Rodrguez

19/10/2014
Fecha

Operaciones Bsicas

MATRICES - I

Suma de Matrices

Qu sabemos hasta ahora?


Qu tipos de estructuras
conocemos?
Cul es la diferencia
entre un vector y una
matriz?
Cul es el cdigo que
utilizamos para leer y
mostrar un vector?
De qu manera
simplificamos el cdigo
para evitar repetirlo?

Cmo lo resuelvo?

Si me piden crear un
subprograma que
encuentre la transpuesta
de una matriz. (se
obtiene intercambiando
simplemente las filas por
columnas y viceversa).

Logro Esperado
Al trmino de la sesin,
el estudiante resuelve los
ejercicios propuestos,
sobre matrices,
probando el buen
funcionamiento de cada
uno presentando un
cdigo legible y fcil de
mantener.

Arreglos Bidimensionales

MATRICES

Arreglos Bidimensionales: Matrices


Un arreglo bidimensional,
el cual a veces se denomina
tabla, consiste de filas y
columnas de elementos.
Por ejemplo, el arreglo de
nmeros.
Declaracin del arreglo
int m[3][4];

Del mismo modo, las


declaraciones
double voltios[10][5];
char codigo[6][26];

16

52

15

27

14

25

10

Uso de los elementos del arreglo

int temp = m[2][3];


m[0][0] = 62;
nuevoNum = 4 * (m[1][0] 5);
sumaFila0 = m[0][0] + m[0][1] + m[0][2] + m[0][3];

Inicializacin de un arreglo
Int m[3][4] =
{ {8,16,9,52},
{3,15,27,6},
{14,25,2,10}};
Int m[3][4] = {8,16,9,52,
3,15,27,6,
14,25,2,10};

Pseudocdigo para trabajar con


matrices
Dimension m[f,c]
Para i<-1 Hasta f Con Paso 1 Hacer
Para j<-1 Hasta c Con Paso 1 Hacer
m[i,j]=azar(10)
FinPara
FinPara
Para i<-1 Hasta f Con Paso 1 Hacer
Para j<-1 Hasta c Con Paso 1 Hacer
Escribir sin saltar m[i,j]," "
FinPara
Escribir ""
FinPara

Cdigo C++ para trabajar con matrices


for (int i=0;i<f;i++) {
for (int j=0;j<c;j++) {
m[i][j]= rand()%10;
}
}
for (int i=0;i<f;i++) {
for (int j=0;j<c;j++) {
cout<<setw(4)<<m[i][j];
}
cout<<endl;
}

Cdigo C++ con subprogramas


void leerM(int m[][], int f, int c){
for (int i=0;i<f;i++) {
for (int j=0;j<c;j++) {
m[i][j]= rand()%10;
}
}
}
void mostrarM(int m[][], int f, int c){
cout<<endl;
for (int i=0;i<f;i++) {
for (int j=0;j<c;j++) {
cout<<setw(4)<<m[i][j];
}
cout<<endl;
}
cout<<endl;
}

Llamando al procedimiento desde main

Cmo lo resuelvo?
void transpuestaM(int m[][MAX], int f, int c){
int temp[MAX][MAX];
for (int i=0;i<f;i++) {
for (int j=0;j<c;j++) {
temp[j][i]=m[i][j];
}
}
mostrarM(temp,c,f);
}

Si me piden crear un subprograma


que encuentre la transpuesta de una
matriz. (se obtiene intercambiando
simplemente las filas por columnas
y viceversa).

Evaluando lo aprendido

QU HEMOS APRENDIDO?

Preguntas de repaso
Por qu utilizamos dos
ndices para recorrer una
matriz?
Describa la manera general
en que C++ permite
declarar una matriz
Puede cualquier elemento
individual de una matriz ser
usado como una variable
cualquiera?
cul es el cdigo C++ que
me permite generar y
mostrar una matriz?

Manos a la obra!!!

APLICANDO LO APRENDIDO

Ejercicios propuestos
Escriba un algoritmo que
lea una matriz de flotantes
de dimensin f x c y a
continuacin debera
escribir la matriz recin
leda.
Escribir un programa que:

Genere una matriz identidad


de orden n
Genere una matriz triangular
superior/inferior
Encuentre la suma de la
diagonal principal

Escribir un programa que


lea dos matrices A y B y nos
devuelva la suma de las
misma

You might also like