0% encontró este documento útil (0 votos)
36 vistas8 páginas

Lab9 Matrices

Este documento presenta un laboratorio sobre estructuras de datos multidimensionales o matrices. Explica cómo declarar y manipular matrices en C++, incluyendo asignar y mostrar valores, sumar matrices, e inicializar una matriz cuadrada de forma especial. El laboratorio propone dos algoritmos: el primero suma dos matrices ingresadas y devuelve la suma, y el segundo genera una matriz cuadrada con un patrón alternado de unos y ceros.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
36 vistas8 páginas

Lab9 Matrices

Este documento presenta un laboratorio sobre estructuras de datos multidimensionales o matrices. Explica cómo declarar y manipular matrices en C++, incluyendo asignar y mostrar valores, sumar matrices, e inicializar una matriz cuadrada de forma especial. El laboratorio propone dos algoritmos: el primero suma dos matrices ingresadas y devuelve la suma, y el segundo genera una matriz cuadrada con un patrón alternado de unos y ceros.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

Algoritmos y Metodologías de la Programación Laboratorio

GUIA DE LABORATORIO N° 9

ESTRUCTURA DE DATOS MULTIDIMENSIONALES - MATRICES

I. OBJETIVOS

1.1. Implementar estructuras de datos unidimensionales o vectores.

II. REQUERIMIENTOS

2.1. Conocimientos adquiridos en las clases de Teoría.

2.2. Borland C++

III. MARCO TEORICO

3.1. Introducción

En el laboratorio anterior, observamos cómo se podía usar un arreglo

unidimensional (vector) para almacenar cierta cantidad de datos. Pero en

programación,

3.2. Arreglo de datos multidimensionales (Matrices)

Existen conjuntos de datos que por su naturaleza son mejor representados

mediante tablas o matrices multidimensionales que por vectores.

Por ejemplo, se puede representar las calificaciones de 4 asignaturas cursadas por

6 estudiantes mediante una tabla como la que abajo se ilustra:

Columna 1 Columna 2 Columna 3 Columna 4


Fila 1
Fila 2
Fila 3
Fila 4
Fila 5
Fila 6

Donde cada fila correspondería a un estudiante y cada columna a una asignatura.

Cada dato individual (la calificación de un estudiante en una asignatura dada) es un

elemento de esta tabla y ocupa una celda identificable por el número de la fila y el

número de la columna.
Algoritmos y Metodologías de la Programación Laboratorio

Columna 1 Columna 2 Columna 3 Columna 4


Fila 1 M(1,1) M(1,2) M(1,3) M(1,4)
Fila 2 M(2,1) M(2,2) M(2,3) M(2,4)
Fila 3 M(3,1) M(3,2) M(3,3) M(3,4)
Fila 4 M(4,1) M(4,2) M(4,3) M(4,4)
Fila 5 M(5,1) M(5,2) M(5,3) M(5,4)
Fila 6 M(6,1) M(6,2) M(6,3) M(6,4)

De esta manera, cada elemento de la tabla queda completamente identificado

mediante dos subíndices: el primero para identificar la fila y el segundo para

identificar la columna.

M[ i ][ j ]

Cada elemento de la matriz representaría la calificación de un estudiante dado en

una asignatura dada. Por ejemplo:

M[4][2] = C

significa que el estudiante número 4 obtuvo C en la asignatura 2. La posición del

elemento dentro de la matriz corresponde a la celda sombreada en la tabla de la

figura de arriba.

La matriz de arriba representa un arreglo bidimensional con (6x4) 24 elementos,

donde

i = 1, 2, 3, ...,6

j = 1, 2, 3, 4

En una matriz multidimensional cada dimensión tiene su propio rango.

Con frecuencia se manejan arreglos de más de dos dimensiones, correspondiendo

un subíndice a cada dimensión.

El programador debe tener presente que la memoria de las computadoras es lineal,

por lo que la mayoría de los compiladores almacenan en memoria los elementos de


Algoritmos y Metodologías de la Programación Laboratorio

una matriz linealizandola por filas; es decir, todos los elementos de la primera fila

primero, los de la segunda después y así sucesivamente.

Declaración de Una Matriz

Al declarar una matriz, se debe inicializar sus elementos antes de utilizarlos. Para

declarar se tiene que indicar su tipo, un nombre único y la cantidad de filas y

columnas que va a contener. Por ejemplo:

int Matriz[20][20], M[10][5];

float Matrix[15][15], M1[7][3];

Las operaciones que se pueden realizar aun vector son: asignación, inicialización,

lectura y actualización.

Asignación de Valores a un Vector

No es posible asignar directamente un valor a toda la matriz; sino que se debe

asignar el valor deseado en cada componente. Con una estructura repetitiva se

puede asignar un valor a todos los elementos del vector. Por ejemplo:

matriz[0][0] = 6;

matriz[2][1] = 14,3333;

Se puede asignar un valor constante a todos los elementos de una matriz haciendo

uso de una estructura FOR anidada dentro de otra:

for (i = 0; i<= limite_filas; i++){

for(j = 0; j<= limite_columnas; j++){

matriz[i][j] = 1;

También se puede llenar el vector por medio de datos por teclado usando las

estructuras ya aprendidas:
Algoritmos y Metodologías de la Programación Laboratorio

//Uso con iostream.h //Uso con stdio.h

for (i = 0; i<= limite_filas; i++){ for (i = 0; i<= limite_filas; i++){

for (j = 0; j<= limite_columnas; j++){ for (j = 0; j<= limite_columnas; j++){

cin>>matriz[i][j]; scanf(”%d”, &matriz[i][j]);

} }

} }

Inicialización de un Vector

Para inicializar un vector con el numero 0; se debe ejecutar la siguiente estructura:

for (i = 0; i<= limite_filas; i++){

for(j = 0; j<= limite_columnas; j++){

matriz[i][j] = 0;

Por lo que el vector quedaría de la siguiente manera:

Columna 1 Columna 2 Columna 3 Columna 4


Fila 1 0 0 0 0
Fila 2 0 0 0 0
Fila 3 0 0 0 0
Fila 4 0 0 0 0
Fila 5 0 0 0 0
Fila 6 0 0 0 0

Mostrar Datos de un vector

Para mostrar los datos de los elementos de un vector, se usa la siguiente estructura:
Uso con iostream.h
for (i = 0; i<= limite_filas; i++){
for (j = 0; j<= limite_columnas; j++){
cout<<matriz[i][j]<<”\t”;
}
cout<<endl;
}
Algoritmos y Metodologías de la Programación Laboratorio

Uso con stdio.h


for (i = 0; i<= limite_filas; i++){
for (j = 0; j<= limite_columnas; j++){
printf(“%d\t”,matriz[i][j]);
}
printf(“\n”);
}

Actualización de Datos

Se debe seguir el mismo procedimiento que la asignación de datos.

IV. DESARROLLO DEL LABORATORIO

4.1. Algoritmo 1

Desarrolle un programa en C++ que solicite al usuario llenar dos matrices A y

B de n filas y m columnas y obtener un vector C que guarde la suma de los

mismos:
#include<iostream.h>

void main(){

int A[20][20],B[20][20],C[20][20],i,j,n,m;

cout<<"Tamaño de las filas:";

cin>>n;

cout<<"Tamaño de las columnas:";

cin>>m;

cout<<"Matriz A:\n";

for(i=0;i<n;i++){

for(j=0;j<m;j++){

cout<<"A["<<i<<"]["<<j<<"]=";

cin>>A[i][j];

cout<<"Matriz B:\n";

for(i=0;i<n;i++){
Algoritmos y Metodologías de la Programación Laboratorio

cout<<"Matriz B:\n";

for(i=0;i<n;i++){

for(j=0;j<m;j++){

cout<<"B["<<i<<"]["<<j<<"]=";

cin>>B[i][j];

for(i=0;i<n;i++){

for(j=0;j<m;j++){

C[i][j]=A[i][j]+B[i][j];

cout<<"Matriz resultante:"<<endl;

for(i=0;i<n;i++){

for(j=0;j<m;j++){

cout<<C[i][j]<<"\t";

cout<<endl;

4.2. Algoritmo 2

Desarrolle un programa en C++ que genere una matriz cuadrada de tamaño t,

esta matriz tiene que llenarse de la siguiente manera:


Algoritmos y Metodologías de la Programación Laboratorio

Ejemplo para t = 4:

1 0 1 0

0 1 0 1

1 0 1 0

0 1 0 1

#include<iostream.h>

void main(){

int M[15][15],i,j,t,n=1;

cout<<"Tamaño de la matriz:";

cin>>t;

for(i=0;i<t;i++){

for(j=0;j<t;j++){

if(n==1){

M[i][j]=n;

n=0;

else{

M[i][j]=n;

n=1;

cout<<"Matriz resultante:"<<endl;

for(i=0;i<t;i++){

for(j=0;j<t;j++){

cout<<M[i][j]<<"\t";

cout<<endl;
Algoritmos y Metodologías de la Programación Laboratorio

cout<<M[i][j]<<"\t";

cout<<endl;

V. EJERCICIOS DE LABORATORIO

Ejercicio 1

Desarrollar un algoritmo que genere la matriz identidad de una matriz

cuadrada de tamaño t.

Ejercicio 2

Desarrollar un algoritmo que solicite al usuario llenar una matriz de tamaño

NxM con números introducidos por teclado. Determinar la posición del

número mayor y del menor.

Ejercicio 3

Desarrollar un algoritmo que genere una matriz cuadrada triangular superior

de tamaño t.

VI. CONCLUSIONES

VII. RECOMENDACIONES

VIII. BIBLIOGRAFIA

También podría gustarte