Luis Cabrera
María del Cisne Mosquera
Andrés Vargas
FUNDAMENTOS DE LA PROGRAMACIÓN
Arrays De Varias Dimensiones
 Existen grupos de datos que son representados
mejor en forma de tabla o matriz con dos o más
subíndices.
 A los arrays no unidimensionales los dividiremos
en dos grandes grupos:
 Arrays Bidimensionales (Dos dimensiones)
 Arrays Multidimensionales (Tres o mas
dimensiones)
Arreglos Bidimensionales
(Matrices/Tablas)
 Es un conjunto de elementos, todos del mismo
tipo, en el cual el orden de los componentes
es significativo y en el que se necesita
especificar dos subíndices para poder
identificar cada elemento del array . El array
bidimensional es un conjunto de arrays
unidimensionales
 Una matriz bidimensional tiene la
siguiente forma:
a11 a12 ……………….. a1n
a21 a22 ……………….. a2n
am1 am2 ……………….. amn
8 6 2 3 1 2
2 1 4 5 6 9
2 5 10 32 12 23
12 25 8 6 10 14
15 18 62 3 21 1
Fila 0
Fila 1
Fila 2
Fila 3
Fila 4
Columna0
Columna1
Columna2
Columna3
Columna4
Columna5
M [3] [4]
Con esto se refiere
al elemento de la
fila 3 y columna 4
que tiene como
valor 10
 El diagrama anterior representa una tabla de 30
elementos (5x6) es decir con 5 filas y 6 columnas.
 Los elementos de un array bidimensional se
referencian con dos subíndices:
 El primer subíndice se refiere a la fila
 El segundo subíndice se refiere a la columna
 En general se considera que un array dimensional
comienza sus subíndices en 0 o en 1 según el
lenguaje de programación pero pueden tener
limites seleccionados para el usuario durante la
codificación del algoritmo
Operaciones con Matrices
 Generar una matriz
 Inserción de datos: manualmente y
automáticamente
 Lectura y escritura de elementos
 Intercambiar filas y columnas.
 Operaciones artiméticas con matrices:
suma, resta, multiplicacion
Generar una matriz
 Sintaxis
<clase de datos del elemento> <nombre del arreglo> [<número de filas>],
[<número de columnas>];
La única diferencia entre esta definición y la que se requiere para un
arreglo unidimensional se encuentra dentro de la especificación del
tamaño. Se debe especificar el tamaño de filas y columnas, como se
muestra.
Ejemplo: int a [3] [3] ;
a [0] [0] a [0] [1] a [0] [2]
a [1] [0] a [1] [1] a [1] [2]
a [2] [0] a [2] [1] a [2] [2]
Inserción de datos: manualmente y
automáticamente
 La inserción de datos en arrays normalmente se
realizan con estructuras repetitivas aunque
tambien pueden hacerse con estructura
selectivas.
 Las instrucciones de inserción manual se presenta
como:
<nombre del arreglo> [<M>] [<N>] = valor del elemento ;
 Las instrucciones de inserción automática usando
un ciclo for se presenta como:
for (i=0; i<3; i++)
for (j=0; j<4; j++) {
val [i] [j] = c;
c++;
cout << " " << val [i] [j];
}
Lectura y Escritura de
elementos
 Se puede usar cin para insertar
elementos en arreglos bidimensionales
y utilizar enunciados cout para extraer
elementos del arreglo:
cin >> <nombre del arreglo> [<M>] [<N>] ;
cout << <nombre del arreglo> [<M>] [<N>] ;
Intercambiar Filas y
columnas
 Intercambia las Filas por las Columnas.
Para realizar este proceso, primero se
declara una matriz llamada A que al
principio es llenada con normalidad, luego
se muestra por pantalla y finalmente se
asigna de forma invertida los elementos de
la matriz A en la matriz B.
Operaciones artiméticas con
matrices: suma, resta, multiplicación
 Las operaciones suma y resta se pueden
utilizar con arrays de tamaños idénticos, es
decir, aquellos que tiene el mismo número
de filas y de columnas. La suma, así como la
resta, de dos arrays se lleva a cabo
sumando o restando sus elementos.
 Si A y B son dos matrices, la operación
A*B se ejecuta solamente si el número
de columnas de la matriz A es igual al
número de filas de la matriz B. El
resultado es una matriz que tiene el
mismo número de filas que A y el mismo
número de columnas que B.
Arrays Multidimensionales
 Un array puede ser definido de 3
dimensiones, 4 dimensiones, hasta n
dimensiones.
 Estos no se usan por lo común, pero C++
permite que declare cualquier numero de
dimensiones. Esto se hace enlistando el
tamaño máximo de todas las dimensiones
para el arreglo.
 Por ejemplo, la declaración int respuesta
[4] [10] [6]; declara un arreglo
tridimensional. El primer elemento en el
arreglo es designado como respuesta [0]
[0] [0] y el ultimo elemento respuesta [3]
[9] [5]
Conclusiones
Referencias:
Bibliográficas
 LUIS, JOYANES AGUILAR. (2008):
“Fundamentos De Programación:
Algoritmos, Estructura de Datos y Objetos.”
Mc-Graw Hill. Madrid. Páginas 258-261.
 BRONSON, GARY J. (2006): “Declaracion y
procesamiento de arreglos
bidimensionales”. Thomson. México D.F.
Páginas 620-625.
18

Estrctura de Datos

  • 1.
    Luis Cabrera María delCisne Mosquera Andrés Vargas FUNDAMENTOS DE LA PROGRAMACIÓN
  • 2.
    Arrays De VariasDimensiones  Existen grupos de datos que son representados mejor en forma de tabla o matriz con dos o más subíndices.  A los arrays no unidimensionales los dividiremos en dos grandes grupos:  Arrays Bidimensionales (Dos dimensiones)  Arrays Multidimensionales (Tres o mas dimensiones)
  • 3.
    Arreglos Bidimensionales (Matrices/Tablas)  Esun conjunto de elementos, todos del mismo tipo, en el cual el orden de los componentes es significativo y en el que se necesita especificar dos subíndices para poder identificar cada elemento del array . El array bidimensional es un conjunto de arrays unidimensionales
  • 4.
     Una matrizbidimensional tiene la siguiente forma: a11 a12 ……………….. a1n a21 a22 ……………….. a2n am1 am2 ……………….. amn
  • 5.
    8 6 23 1 2 2 1 4 5 6 9 2 5 10 32 12 23 12 25 8 6 10 14 15 18 62 3 21 1 Fila 0 Fila 1 Fila 2 Fila 3 Fila 4 Columna0 Columna1 Columna2 Columna3 Columna4 Columna5 M [3] [4] Con esto se refiere al elemento de la fila 3 y columna 4 que tiene como valor 10
  • 6.
     El diagramaanterior representa una tabla de 30 elementos (5x6) es decir con 5 filas y 6 columnas.  Los elementos de un array bidimensional se referencian con dos subíndices:  El primer subíndice se refiere a la fila  El segundo subíndice se refiere a la columna  En general se considera que un array dimensional comienza sus subíndices en 0 o en 1 según el lenguaje de programación pero pueden tener limites seleccionados para el usuario durante la codificación del algoritmo
  • 7.
    Operaciones con Matrices Generar una matriz  Inserción de datos: manualmente y automáticamente  Lectura y escritura de elementos  Intercambiar filas y columnas.  Operaciones artiméticas con matrices: suma, resta, multiplicacion
  • 8.
    Generar una matriz Sintaxis <clase de datos del elemento> <nombre del arreglo> [<número de filas>], [<número de columnas>]; La única diferencia entre esta definición y la que se requiere para un arreglo unidimensional se encuentra dentro de la especificación del tamaño. Se debe especificar el tamaño de filas y columnas, como se muestra. Ejemplo: int a [3] [3] ; a [0] [0] a [0] [1] a [0] [2] a [1] [0] a [1] [1] a [1] [2] a [2] [0] a [2] [1] a [2] [2]
  • 9.
    Inserción de datos:manualmente y automáticamente  La inserción de datos en arrays normalmente se realizan con estructuras repetitivas aunque tambien pueden hacerse con estructura selectivas.  Las instrucciones de inserción manual se presenta como: <nombre del arreglo> [<M>] [<N>] = valor del elemento ;  Las instrucciones de inserción automática usando un ciclo for se presenta como: for (i=0; i<3; i++) for (j=0; j<4; j++) { val [i] [j] = c; c++; cout << " " << val [i] [j]; }
  • 10.
    Lectura y Escriturade elementos  Se puede usar cin para insertar elementos en arreglos bidimensionales y utilizar enunciados cout para extraer elementos del arreglo: cin >> <nombre del arreglo> [<M>] [<N>] ; cout << <nombre del arreglo> [<M>] [<N>] ;
  • 11.
    Intercambiar Filas y columnas Intercambia las Filas por las Columnas. Para realizar este proceso, primero se declara una matriz llamada A que al principio es llenada con normalidad, luego se muestra por pantalla y finalmente se asigna de forma invertida los elementos de la matriz A en la matriz B.
  • 12.
    Operaciones artiméticas con matrices:suma, resta, multiplicación  Las operaciones suma y resta se pueden utilizar con arrays de tamaños idénticos, es decir, aquellos que tiene el mismo número de filas y de columnas. La suma, así como la resta, de dos arrays se lleva a cabo sumando o restando sus elementos.
  • 13.
     Si Ay B son dos matrices, la operación A*B se ejecuta solamente si el número de columnas de la matriz A es igual al número de filas de la matriz B. El resultado es una matriz que tiene el mismo número de filas que A y el mismo número de columnas que B.
  • 14.
    Arrays Multidimensionales  Unarray puede ser definido de 3 dimensiones, 4 dimensiones, hasta n dimensiones.  Estos no se usan por lo común, pero C++ permite que declare cualquier numero de dimensiones. Esto se hace enlistando el tamaño máximo de todas las dimensiones para el arreglo.
  • 15.
     Por ejemplo,la declaración int respuesta [4] [10] [6]; declara un arreglo tridimensional. El primer elemento en el arreglo es designado como respuesta [0] [0] [0] y el ultimo elemento respuesta [3] [9] [5]
  • 17.
  • 18.
    Referencias: Bibliográficas  LUIS, JOYANESAGUILAR. (2008): “Fundamentos De Programación: Algoritmos, Estructura de Datos y Objetos.” Mc-Graw Hill. Madrid. Páginas 258-261.  BRONSON, GARY J. (2006): “Declaracion y procesamiento de arreglos bidimensionales”. Thomson. México D.F. Páginas 620-625. 18