Anda di halaman 1dari 10

Gua # 08: Arreglos bidimensionales (Matrices)

UNIVERSIDAD DON BOSCO


FACULTAD DE ESTUDIOS TECNOLGICOS
COORDINACION DE COMPUTACION
GUIA DE LABORATORIO #08
CICLO: 01/ 2016

Nombre de la Practica:

Arreglos bidimensionales(Matrices)

Lugar de Ejecucin:

Centro de Computo

Tiempo Estimado:

2 horas y 30 minutos

MATERIA:

Programacin de Algoritmos (PAL404)

I. OBJETIVOS

Que el alumno sea capaz de:


Elaborar aplicaciones avanzadas en C++ que utilicen arreglos y matrices
Dominar el uso de arreglos para solucin de problemas complejo
Manejar los arreglos de cadenas de caracteres
II. INTRODUCCION TEORICA

Los arreglos en C/C++ pueden tener mltiples subndices. Un uso comn de los arreglos con mltiples
subndices es representar tablas de valores que consisten en informacin organizada en filas y columnas. Para
identificar un elemento en especial de una tabla, debemos especificar dos subndices: el primero identifica la
fila del elemento, y el segundo identifica la columna del elemento.
Las tablas o arreglos que requieren dos ndices para identificar un elemento en particular se llaman arreglos
con doble subndice. Observe que los arreglos con mltiples subndices pueden tener ms de dos subndices.
En la Figura 1 se muestra el arreglo a con doble subndice.

Figura 1: Definicin de los elementos de un arreglo bidimensional

Columna 0

Columna 1

Columna 2

Columna 3

Fila 0

a[0][0]

a[0][1]

a[0][2]

a[0][3]

Fila 1

a[1][0]

a[1][1]

a[1][2]

a[1][3]

Fila 2

a[2][0]

a[2][1]

a[2][2]

a[2][3]

Subindice Fila

Subindice Columna
1

Gua # 08: Arreglos bidimensionales (Matrices)

Este arreglo contiene tres filas y cuatro columnas, de manera que se dice que es un arreglo de 3 por 4, en
general un arreglo con m filas y n columnas se llama arreglo de m por n as:
mxn
Cada elemento del arreglo a se identifica en la figura con el nombre del elemento de la forma a[i][j] tal como se
haca con los vectores a[i].
a es el nombre del arreglo.
i, j son los subndices que identifican de manera nica a cada elemento de a.
Observe que los elementos en la primera fila tienen un primer subndice 0; los nombres de los elementos en la
cuarta columna tienen un segundo subndice 3.

Declaracin de matrices.
Los lenguajes como C y C++, permiten que el programador declare matrices de cualquier tipo y prcticamente
de cualquier tamao. En el seudolenguaje, un matriz se declara usando el siguiente formato:
<TIPOdeDato> <NOMBRE> [<N>][<M>]
En este formato aparecen en maysculas y entre los caracteres < y > los componentes que el programador
puede determinar. As por ejemplo, si se quiere declarar una matriz con nombre matriz, de dimensin 15x4 y
que pueda almacenar datos de tipo carcter, se debe escribir la siguiente lnea.
char

matriz [15][4];

Otros ejemplos:
float numeros[10][3]; //crea una matriz de 30 numeros decimales, distribuidos en 10 filas x 3 columnas.
//crea una matriz llamada lista, con 2 filas y 4 columnas, para asignar sus respectivos valores
int lista[4][2]= {{1,2,3,1},{2,3,9,1}};

Para referenciar a cada posicin de R, ser necesario indicar 2 nmeros ndices (uno para cada dimensin).
Por ejemplo, si desea imprimir en pantalla al valor 9 de la matriz lista del ejemplo anterior, deber utilizar un
ndice de fila (1) y un ndice de columna (2) al usar al identificador lista, as por ej.
cout<<lista[1][2];
Otro ejemplo:
Deseo declarar arreglo bidimensional llamado R que almacene datos tipo double, y que tenga 6
(primera dimensin) por 4 (segunda dimensin) elementos, es decir, un total de (6x4) = 24 elementos.
Para lograrlo basta esta instruccin:
double R[6][4];
A este arreglo R lo podra ver como una
tabla, el cual tendr 6 columnas por 4 filas,
tal como se muestra a la derecha :
Para guardar valor 6.241 en la posicin
indicada por la X de la figura 2, se har as:

Figura 2: Elementos del arreglo bidimensional R


0
0
1
2
3

R [ 1 ] [ 3 ] = 6.241;
2

Gua # 08: Arreglos bidimensionales (Matrices)

III. MATERIALES Y EQUIPO

Para la realizacin de la gua de prctica se requerir lo siguiente:


No.

Requerimiento

Cantidad

Gua de Laboratorio #08 de Programacin de Algoritmos

Memoria USB

PC con el programa DEV-C++

IV. PROCEDIMIENTO

PARTE 1: Acceso a las posiciones de una matriz bidimensional


1.

Proceda a crear una carpeta denominada IPguia8_SUCARNET, en el cual guardara cada uno de los
siguientes cdigos fuentes C++ que desarrollara en el resto de este procedimiento.

2.

Prepara un nuevo archivo cdigo fuente y gurdelo en la carpeta del paso anterior, bajo el nombre
ip_guia8ejemplo1.

3.

El programa a digitar a continuacin le permitir inicializar el valor de cada una de las posiciones de una
matriz de 12 valores decimales, distribuidos en 2 dimensiones (3 filas por 4 columnas).
Luego se solicitan a usuario los 12 valores correctos. Finalmente, se le demuestra que los valores fueron
ingresados apropiadamente a la matriz.
Guia8ejemplo1.cpp

Gua # 08: Arreglos bidimensionales (Matrices)

4.

Compila el programa y confirma que este funciona correctamente.

5.

Haz una copia del archivo anterior bajo el nombre ip_guia8_PROCEDIMIENTO1

6.

Modifica el cdigo original de tal forma que solamente se solicite al usuario el valor de cada posicin de la
matriz n y finalmente, se muestre cada uno de los siguientes resultados del anlisis de valores de la matriz:
a) Cantidad de valores positivos almacenados
b) Porcentaje de valores negativos de todo el listado
c) Mayor valor de las posiciones de la ltima columna de la matriz

Gua # 08: Arreglos bidimensionales (Matrices)

7.

Compile el cdigo modificado en el paso anterior. Compruebe que se obtienen los resultados solicitados y
llame a su instructor para que lo califique.

PARTE 2: Simulacin de una Base de Datos con varias matrices


8.

Prepare un nuevo cdigo fuente, para desarrollar ah al siguiente cdigo fuente y guardar el archivo.
Guia8ejemplo2.cpp

Gua # 08: Arreglos bidimensionales (Matrices)

Gua # 08: Arreglos bidimensionales (Matrices)

9.

Guarde el cdigo anterior, proceda compilarlo y corregir errores sintcticos (si los tiene).

10. Ejecute el programa y haga la seleccin de una categora y de un producto de la misma para ver as su
precio.
11. Sin cerrar la ventana de resultados, compare el resultado con la declaracin de las matrices definidas en el
cdigo, para identificar el uso de las filas y columnas que se da a cada una.

Gua # 08: Arreglos bidimensionales (Matrices)

V. DISCUSION DE RESULTADOS

Elabore el cdigo fuente de C++ que solucionen a cada uno de los problemas a continuacin:

PROBLEMA 1:
Haga una copia del archivo Guia8ejemplo2.cpp del procedimiento, para luego realizar sobre este los siguientes
cambios
- Borre todo el cdigo, excepto la declaracin de las matrices y variables
- Elimine la inicializacin de valores que se hace a las 3 matrices.
- Ahora redacte un nuevo cdigo que muestre el siguiente men de opciones al usuario:
a) Agregar categora
b) Agregar producto a una categora
c) Ver lista de productos
d) Salir
- Tome en cuenta lo siguiente:
* Pueden agregarse hasta 20 categoras diferentes
* Cada categora puede tener hasta 10 productos diferentes como mximo
* En el men c) los diferentes productos deben listarse clasificados por categora
* Cuando usuario elija una opcin de men, este se borra para mostrar el dialogo correspondiente
- Al finalizar la accin del men elegida, debe mostrarse nuevamente el men

PROBLEMA 2:
Elabore un programa que permita llevar un control de planilla de los sueldos de N empleados de la empresa
Calipso SA. Se debe mostrar el siguiente men de manera continua:
a) Ingresar datos (Nombre y sueldo base) de un nuevo empleado
b) Ver informe de un empleado: Muestra nombre, sueldo base y sueldo neto.
c) Ver Planilla de empleados:
Se debe presentar como una tabla conteniendo los siguientes datos:
Por c/empleado:
#correlativo de empleado, nombre, monto de sueldo base, descuento de renta (10%), de ISSS (3.5%) y
sueldo final.
Finalmente se muestra el monto de planilla completa a pagar.
d) Finalizar aplicacin
8

Gua # 08: Arreglos bidimensionales (Matrices)

PROBLEMA 3:
Desarrollar una aplicacin que permita registrar la cantidad de votos de una eleccin presidencial ficticia
desarrollada en El Salvador, en la que participan 4 partidos polticos.
El conteo de votos debe limitarse a solamente los 9 municipios que conforman el departamento de Cabaas.
Finalmente, muestre a la autoridad electoral los siguientes resultados especficos:
a) Cantidad acumulada de votos que obtuvo cada partido entre los siguientes municipios: Sensuntepeque (su
cabecera municipal), Cinquera y San Isidro.
b) Cantidad y porcentaje de votos que obtuvo cada partido en todo el departamento de Cabaas.
c) Determine el partido que gano en todo el departamento; o sino, debe indicar que hubo un empate y
aclarar entre cuales de los partidos polticos se gener.
Recordar que un empate electoral puede darse entre 2 o ms partidos del proceso electoral.

PROBLEMA 4:
La empresa automotriz IronMan28 tiene cinco agencias y cuenta con la informacin acerca de las ventas
mensuales de automviles logradas el ao pasado por cada una de stas. A partir de estos datos la empresa
construy la siguiente tabla de ventas mensuales por agencia:
Lomas Vallejo Centro Valle Oriente
Enero
Febrero
...
Noviembre
Diciembre

Elabore un programa que defina a una matriz que permita almacenar las ventas mensuales por agencia de la
empresa IronMan28 e inicialice sus valores con valores dados por el programador.
Luego, haga la programacin restante que permita contestar las siguientes preguntas (permita a usuario elegir
cual opcin desea ver):
a) Cul fue el total de ventas en el ao de la agencia Lomas?
b) Cul fue el promedio de ventas en el mes de diciembre?
c) Qu agencia tuvo mayores ventas en el mes de mayo?
d) En qu mes se registraron las menores ventas del ao, considerando a todas las agencias?

Gua # 08: Arreglos bidimensionales (Matrices)

RUBRICA DE EVALUACION
Actividad a evaluar: ANALISIS DE RESULTADOS
Formar grupos de entre 3 a 4 estudiantes, llenar esta hoja de evaluacin y entregarla a su docente.
Instructor seleccionara a 2 problemas de la DISCUSION DE RESULTADOS para ser resueltos. Luego, su instructor indicara la metodologa de
entrega de la solucin final.
Lista de Integrantes:
CARNET 1

CARNET 2

CARNET 3

CARNET 4

CARNET 5

Problemas a resolver:
Criterio a evaluar

Prob 1?

Prob 2?

PROM.

(30%) Se define un men, el cual muestra las acciones que usuario puede hacer con el programa
Men se muestra continuamente, hasta que usuario selecciona finalizar aplicacin
Cada opcin de men funciona apropiadamente
Cd. fuente se logra compilar y se obtiene a c/u de los resultados solicitados
(45%) Define la cantidad y tipos de datos de los arreglos requeridos en el problema.
Acceso correcto a las posiciones de cada una de las matrices utilizadas en el programa
Cumple las restricciones dadas por el problema
(25%) Aplica un lenguaje conciso para comunicarse con usuario
Documenta el cdigo fuente de manera apropiada
Nota:

10