Professional Documents
Culture Documents
I. OBJETIVOS
Que el alumno sea capaz de:
• Elaborar aplicaciones avanzadas en C++ que utilicen arreglos y matrices
• Dominar el uso de arreglos para solución de problemas complejos
Los arreglos en C/C++ pueden tener múltiples subíndices. Un uso común de los arreglos con múltiples
subíndices es representar tablas de valores que consisten en información organizada en filas y columnas. Para
identificar un elemento en especial de una tabla, debemos especificar dos subíndices: 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 subíndice. Observe que los arreglos con múltiples subíndices pueden tener más de dos subíndices. En la
siguiente figura se muestra el arreglo a con doble subíndice.
Subíndice de columna
Subíndice de fila
Figura 1
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
hacia con los vectores a[i].
• a es el nombre del arreglo.
• i, j son los subíndices que identifican de manera única a cada elemento de a.
Introducción a la Programación 1
Guía # 08: Uso de Arreglos bidimensionales (Matrices)
Observe que los elementos en la primera fila tienen un primer subíndice 0; los nombres de los elementos en la
cuarta columna tienen un segundo subíndice 3.
Al definir más de una dimensión al arreglo, C le permite aplicar diversos métodos de clasificación para el
almacenamiento de listas de datos más complejos.
Ejemplos:
Deseo declarar arreglo bidimensional llamado R que almacene datos tipo double, y que tenga 6 (primera
dimensión) por 4 (segunda dimensión) elementos, es decir, un total de (6x4) = 24 elementos. Para lograrlo basta
esta instrucción:
double R[6][10]; 0 1 2 3 4 5
0
1 X
A este arreglo R lo podría ver como una “tabla”, el cual tendrá 6
2
columnas por 4 filas, tal como se muestra a la derecha : 3
Figura 2: Distribución de elementos del
arreglo bidimensional R
Para referenciar a cada posición de R, será necesario indicar 2 números índices (uno para cada dimensión). Si desea
guardar el valor 6.241 en la posición indicada por la X de la figura 2, deberá hacerlo con esta instrucción:
R [ 1 ] [ 3 ] = 6.241;
Introducción a la Programación 2
Guía # 08: Uso de Arreglos bidimensionales (Matrices)
IV. PROCEDIMIENTO
#include <iostream>
using namespace std;
#include <conio.h>
#define tam 2
#define tam1 3
main(){
int numeros[tam][tam1],i,j;
getch();
} //fin main
Ejemplo 2. El siguiente programa permite identificar y contar los datos positivos y negativos almacenados en una
matriz.
#include <stdio.h>
#include <conio.h>
#define tam 2
#define tam1 3
main(){
int numeros[tam][tam1],i,j,positivos=0,negativos=0;
Introducción a la Programación 3
Guía # 08: Uso de Arreglos bidimensionales (Matrices)
scanf("%d",&numeros[i][j]);
}//FIN DE FOR INTERNO
}//FIN DE FOR EXTERNO
Ejemplo 3. El siguiente código d e f i n e u n programa que permite crear dos matrices paralelas, la primera
(nombres) que permitirá almacenar el nombre de 2 estudiantes y otra que permitirá almacenar 3 notas para cada
estudiante.
#include <iostream>
using namespace std;
#include <conio.h>
#include <stdlib.h>
#define tam 2
#define tam1 3
main(){
float notas[tam][tam1];
char nombres[tam][25];
int i,j,k; //contadores para ciclos y arreglos
for(k=0;k<tam1;k++){
cout<<"\nIngrese nota "<<k+1<<" :\t"; cin>>notas[i][k];
}//fin for k
cin.get(); //lee salto de linea
system("cls");
for(i=0;i<tam;i++){
cout<<endl;
Introducción a la Programación 4
Guía # 08: Uso de Arreglos bidimensionales (Matrices)
cout<<"\nEstudiante "<<nombres[i]<<" tiene las notas:\n";
for(k=0;k<tam1;k++) cout<<notas[i][k]<<"\t";
}//fin for i
getch();
} //fin main
V. DISCUSION DE RESULTADOS
1. Hacer un programa que llene una matriz de 4 x 5 y determine la posición [fila, columna] del número mayor
almacenado en la matriz. Asuma que los números son diferentes.
2. Una empresa automotriz tiene cinco agencias y cuenta con la información acerca de las ventas mensuales de
automóviles logradas el año pasado por cada una de éstas. A partir de estos datos la empresa construyó la
siguiente matriz ventas:
Lomas Vallejo Perisur Valle Oriente
Enero
Febrero
...
Noviembre
Diciembre
3. Elabore un programa modular que genere las tablas de multiplicar del 1 al 10 en un solo arreglo de dos
dimensiones y posteriormente imprima dicho arreglo.
1. Hacer un programa que llene una matriz de 5 x 4, únicamente con números positivos (validar este punto)
Calcular la suma de cada fila y almacenarla en un vector. Imprimir el vector resultante.
2. Hacer un programa que llene una matriz de m x n y que imprima cuantos de los números almacenados
se encuentran en los siguientes rangos.
• < 0
• 0 – 20
• 21
Debe imprimir el total de números almacenados en la matriz que se encuentren en cada rango, también debe de
mostrar el total de números que no se encuentra en ningún rango.
Introducción a la Programación 5
Guía # 08: Uso de Arreglos bidimensionales (Matrices)
Por ejemplo: Matriz de 3 x 3
Mensajes a retornar:
5 15 55
Total de números menores que cero: 2
-5 6 13
Total de números en el rango 0 – 20: 6
4 12 -8
Total de números mayores que 21: 1
VII. BIBLIOGRAFIA
• Deitel, Harvey M. y Deitel, Paul J. CÓMO PROGRAMAR EN C++. 1ra Edición. Editorial Mc Graw Hill
• Pappas, Chris H. y Murray, William H. MANUAL DE REFERENCIA DE VISUAL C++ 6.0. 4ta Edición
Editorial Prentice Hall (PEARSON).
• Joyanes Aguilar, Luís. PROGRAMACIÓN EN C++ - ALGORITMOS, ESTRUCTURAS DE DATOS Y
OBJETOS. Editorial McGraw Hill, España, 2000.
Introducción a la Programación 6
Guía # 08: Uso de Arreglos bidimensionales (Matrices)
Hoja de evaluación Guía #08
Fecha:
Firma:
Objetivos a evaluar:
Que el estudiante:
• Definir que es un arreglo y cómo utilizarlo en el lenguaje C/C++.
• Desarrolle métodos para crear, inicializar y asignar valores a los elementos de un arreglo.
• Determine la forma de cómo debe tener acceso a los elementos de un arreglo, ya sea para asignarle valores a
sus elementos o para leer los datos almacenados en ellos.
• Resolver una de las aplicaciones prácticas típicas con arreglos, como lo es la ordenación de elementos.
Criterios SI NO
1. Declaración correcta de las matrices
Introducción a la Programación 7