Вы находитесь на странице: 1из 16

ARREGLO MULTIDIMENSIONAL:

Este tambin es un tipo de dato estructurado, que est compuesto por n dimensiones. Para
hacer referencia a cada componente del arreglo es necesario utilizar n ndices, uno para
cada dimensin

Para determinar el nmero de elementos en este tipo de arreglos se usan las siguientes
frmulas:

RANGO (Ri) = lsi - (lii + 1)


No. TOTAL DE ELEMENTOS = R1 * R2* R3 * ...* Rn

Donde:

i = 1 ... n

n = No. total de dimensiones

Para determinar la direccin de memoria se usa la siguiente formula:

LOC A[i1,i2,i3,...,in] = base(A) + [(i1-li1)*R3*R4*Rn + (i2-


li2)*R3*R2*... (in - lin)*Rn]*w

1.3.1.- Conceptos bsicos.


Los arreglos multidimensionales tienen ms de una dimensin. En C#, las
dimensiones se manejan por medio de un par de corchetes, dentro de los que se
escriben los valores de cada dimensin, separados por comas.

1.3.2.- Operaciones.
Para manejar un arreglo, las operaciones a efectuarse son:

Declaracin del arreglo,


Creacin del arreglo,
Inicializacin de de los elementos del arreglo, y
Acceso a los elementos del arreglo.

A continuacin describiremos cada una de estas operaciones, en C#.


Declaracin.
La sintaxis para declarar un arreglo multidimensional es la siguiente:

<tipo> [ , ...] < identificador > ;

Donde:

Tipo indica el tipo correspondiente a los elementos del arreglo,

Identificador es el nombre del arreglo, y

el par de corchetes, la coma y las diresis, [ , ...], representan las


dimensiones del arreglo. Los corchetes encierran todas las comas
necesarias para separar las dimensiones del arreglo.

Ejemplos:

double [ , ] bidim; // Dos dimensiones.

int [ , , ] tridim ; // Tres dimensiones.

char [ , , , ] enciclopedia; // Cuatro dimensiones.

Observe que, en la declaracin, el espacio entre los corchetes est


vaco. Esto se debe a que, durante dicha operacin, no se reserva
espacio en la memoria.

Creacin.
La creacin de un arreglo multidimensional consiste en reservar espacio
en la memoria para todos sus elementos, utilizando la siguiente sintaxis:

< identificador > = new <tipo> [ dim1, dim2 ... dimN ] ;

Donde:

new es el operador para gestionar espacio de memoria, en tiempo de


ejecucin,

dim1 , dim2 , dimN son valores enteros que representan las dimensiones
del arreglo.
El tamao del arreglo es el resultado de multiplicar los valores de las
dimensiones y representa el nmero de elementos del arreglo.

Ejemplos:

bidim = new double [2, 3] ;

tridim = new int[ 2, 3, 4] ;

enciclopedia = new char[30, 80, 500, 10] ;

Las operaciones de declaracin y creacin anteriores se pueden agrupar


en una sola instruccin, como se muestra enseguida:

double [ , ] bidim = new double [2,3] ;

int [ , , ] tridim = new int[2, 3, 4] ;

char [ , , , ] enciclopedia = new char[ 30, 80, 500, 10 ] ;

Inicializacin.
Un arreglo es un objeto que,cuando es creado por el compilador, se le
asignan automticamente valores iniciales predeterminados a cada uno
de sus elementos, de acuerdo a los siguientes criterios:

Si el tipo del arreglo es numrico, a sus elementos se


les asigna el valor cero.
Si el tipo del arreglo es char, a sus elementos se les
asigna el valor '\u0000'.
Si el tipo del arreglo es bool, a sus elementos se les
asigna el valor false.
Si el tipo del arreglo es una clase, a sus elementos se
les asigna el valor null.

Cuando se requiere asignar valores iniciales diferentes de los


predeterminados, es posible agrupar las operaciones de declaracin,
creacin e inicializacin en una sola instruccin, por ejemplo:
int [ , , ] tridim={{{12, 59, 70, 45} , {20, 16, 29, 48} , {93, 75, 43, 10}},

{{44, 72, 30, 24} , {60, 89, 39, 61} , {99, 52, 34, 47}}};

Acceso.
Se puede acceder a los valores de los elementos de un arreglo
bidimensional a travs del nombre del arreglo y dos subndices. Los
subndices deben escribirse entre corchetes y representa la posicin del
elemento en el arreglo. As, podemos referirnos a un elemento del
arreglo escribiendo el nombre del arreglo y los subndices del elemento
entre corchetes. Los valores de los subndices empiezan en cero para el
primer elemento, hasta el tamao del arreglo menos uno.

1.3.3.- Aplicaciones.
Se necesita manejar, en un arreglo, la posicin todos los caracteres
escritos en una enciclopedia. El arreglo deber tener las siguientes
dimensiones:

Una para manejar el rengln en la pgina,


otra para la columna en la pgina,
otra para la hoja en el volumen y
otra para el volumen en la enciclopedia.

Cada pgina tiene 30 renglones y 80 columnas.


Cada volumen tiene 500 pginas.
La enciclopedia tiene 18 volmenes.

El siguiente fragmento de programa implementa la solucin a este


problema.

char car;

// Declara y crea el arreglo.

char[ , , , ] enciclopedia = new char [18,500,30,80] ;


// Lee, desde el teclado, cada carcter para la enciclopedia.

for(int v = 0 ; v < 18 ; v++) // Volumen

for(int p = 0 ; p < 500 ; p++) // Pgina

for(int r = 0 ; r < 30 ; r++) // Rengln

for(int c = 0 ; c < 80 ; c++) // Columna

car = (char)Console.Read( ) ;
enciclopedia[v,p,r,c] = car ;

}
4.3 Arreglos Multidimensionales

El lenguaje C permite arreglos de cualquier tipo, incluyendo arreglos de arreglos. Con dos pares de corchetes
se obtiene un arreglo bidimensional. Esta idea puede repetirse para obtener arreglos de dimensiones mas altas.
Con cada par de corchetes se agrega otra dimension al arreglo.

int a[100]; arreglo unidimensional


int b[3][5]; arreglo bidimensional
int c[7][9][2]; arreglo tridimensional

2.1.5 ARREGLOS MULTIDIMENSIONALES

Los arreglos multimensionales se declaran de igual modo que los arreglos de una
dimensin.

La posicin de cada uno de los elementos est determinada por dos subndices,
que determinan la fila y la columna.

Los arreglos multimensionales (tablas) se crean con declaraciones type y var


cuando un programa se codifica en Pascal.

Se debe indicar:

1) Nombre del arreglo.


2) Tipo del arreglo.
3) El rango permitido.

Type
Identificador = array [indice1,indice2] of tipo elemento;
Var
Identificador1:identificador;

Ejemplo:

Type
Calificaciones = array [1..5,1..6] of integer;
Var
Calif: calificaciones;

1.4 Arreglos Multidimensionales

Este tambin es un tipo de dato estructurado, que est compuesto por n dimensiones. Para hacer referencia a cada
componente del arreglo es necesario utilizar n ndices, uno para cada dimensin

Para determinar el nmero de elementos en este tipo de arreglos se usan las siguientes frmulas:

RANGO (Ri) = lsi - (lii + 1)

No. TOTAL DE ELEMENTOS = R1 * R2* R3 * ...* Rn

donde:

i = 1 ... n

n = No. total de dimensiones

Para determinar la direccin de memoria se usa la siguiente formula:

LOC A[i1,i2,i3,...,in] = base(A) + [(i1-li1)*R3*R4*Rn + (i2-li2)*R3*R2*... (in - lin)*Rn]*w

1.5 Operaciones Con Arreglos

Las operaciones en arreglos pueden clasificarse de la siguiente forma:

Lectura

Escritura

Asignacin

Actualizacin

Ordenacin

Bsqueda

a) LECTURA
Este proceso consiste en leer un dato de un arreglo y asignar un valor a cada uno de sus componentes.

La lectura se realiza de la siguiente manera:

para i desde 1 hasta N haz

x<--arreglo[i]

b) ESCRITURA

Consiste en asignarle un valor a cada elemento del arreglo.

La escritura se realiza de la siguiente manera:

para i desde 1 hasta N haz

arreglo[i]<--x

c) ASIGNACION

No es posible asignar directamente un valor a todo el arreglo, por lo que se realiza de la manera siguiente:

para i desde 1 hasta N haz

arreglo[i]<--algn_valor

d) ACTUALIZACION

Dentro de esta operacin se encuentran las operaciones de eliminar, insertar y modificar datos. Para realizar este tipo de
operaciones se debe tomar en cuenta si el arreglo est o no ordenado.

Para arreglos ordenados los algoritmos de insercin, borrado y modificacin son los siguientes:

1.- Insertar.

Si i< mensaje(arreglo contrario caso En arreglo[i]<--valor i<--i+1 entonces>

2.- Borrar.

Si N>=1 entonces

inicio

i<--1

encontrado<--falso

mientras i<=n y encontrado=falso

inicio

si arreglo[i]=valor_a_borrar entonces

inicio
encontrado<--verdadero

N<--N-1

para k desde i hasta N haz

arreglo[k]<--arreglo[k-1]

fin

en caso contrario

i<--i+1

fin

fin

Si encontrado=falso entonces

mensaje (valor no encontrado)

3.- Modificar.

Si N>=1 entonces

inicio

i<--1

encontrado<--falso

mientras i<=N y encontrado=false haz

inicio

Si arreglo[i]=valor entonces

arreglo[i]<--valor_nuevo

encontrado<--verdadero

En caso contrario

i<--i+1

fin

fin

Supongamos que nos enfrentamos a un problema como este: Una empresa que cuenta con 150 empleados, desea
establecer una estadstica sobre los salarios de sus empleados, y quiere saber cual es el salario promedio, y tambin cuantos
de sus empleados gana entre $1250.00 y $2500.00.
Si tomamos la decisin de tratar este tipo de problemas con datos simples, pronto nos percataramos del enorme
desperdicio de tiempo, almacenamiento y velocidad. Es por eso que para situaciones de este tipo la mejor solucin son los
datos estructurados.

Un arreglo puede definirse como un grupo o una coleccin finita, homognea y ordenada de elementos. Los arreglos pueden
ser de los siguientes tipos:

Arreglos de n dimensiones (indice1, indice2, .........., indicen )


( i1, i2, ..........., in )

MEMORIA:

Arreglos de n Dimension
A ( i1, i2, .........., in ) -------------------|---
------------------|----------------------->
A ( l1:u1, l2:u2, .........., ln:un ) in
un in

Funcion j = f( i1, i2, i3, ..., in ) = m + ( i1 - 1 ) u2u3...un


+ ( i2 - 1 ) u3u4...un
+ ( i3 - 1 ) u4u5...un
+ ....................
+ ( in - 1 )
Ejemplo de 4 dimensiones

A ( i1, i2, i3, i4 )


A ( l1:u1, l2:u2, l3:u3, l4:u4, )
A ( 4:5, 2:4, 1:2, 3:4, )
Cantidad de elementos = ( u1 - l1 + 1 ) * ( u2 - l2 + 1 ) * ( u3 - l3 +
1 ) * ( u4 - l4 + 1 ) =
( 5 - 4 + 1 ) * ( 4 - 2 + 1 ) * ( 2 - 1 +
1 ) * ( 4 - 3 + 1 ) =
24 elementos
Si m1 = 1000 luego v1 = m1 + cantidad de elementos - 1 = 1000 + 24 - 1
= 1000 + 24 -1 = 1023

Tipos de Ordenamientos en Arreglos Multidimensionales


Arreglos de 2 dimensiones ( indice1, indice2 )

Ordenamiento por filas

*----*----*----*----*
| 00 | 01 | 02 | 03 |
*----*----*----*----* *----*----*----*----*----*----*--
--*----*----*----*----*----*
| 04 | 05 | 06 | 07 | ------> | 00 | 01 | 02 | 03 | 04 | 05 |
06 | 07 | 08 | 09 | 10 | 11 |
*----*----*----*----* *----*----*----*----*----*----*--
--*----*----*----*----*----*
| 08 | 09 | 10 | 11 |
*----*----*----*----*
Ordenamiento por columnas

*----*----*----*----*
| 00 | 01 | 02 | 03 |
*----*----*----*----* *----*----*----*----*----*----*--
--*----*----*----*----*----*
| 04 | 05 | 06 | 07 | ------> | 00 | 04 | 08 | 01 | 05 | 09 |
02 | 06 | 10 | 03 | 07 | 11 |
*----*----*----*----* *----*----*----*----*----*----*--
--*----*----*----*----*----*
| 08 | 09 | 10 | 11 |
*----*----*----*----*

Ordenamiento por arreglos

*----* *----*
| --|--------> | 00 | ( fila 0 )
*----* *----*
| --|-----+ | 01 |
*----* | *----*
| --|--+ | | 02 |
*----* | | *----*
| | | 03 |
| | *----*
| |
| | *----*
| +--> | 04 | ( fila 1 )
| *----*
| | 05 |
| *----*
| | 06 |
| *----*
| | 07 |
| *----*
|
| *----*
+-----> | 08 | ( fila 2 )
*----*
| 09 |
*----*
| 10 |
*----*
| 11 |
*----*
Observar que el caso de ordenamiento por arreglos la variable apunta a un arreglo de arreglos. Si bien el
arreglo multidimensional de dos dimensiones puede definirse como integer[][] numeros = new integer[3][4],
donde existen 3 filas y 4 columnas, numeros[i], variando i de 0 a 2, determinan las filas, y numeros[i][j],
variando i de 0 a 2 y j de 0 a 3, determinan cada celda. En la disposicion de ordenamiento por arreglos,
conmutar una fila por otra, es tan economico como conmutar un apuntador de fila por otro. En las otras
disposiciones es mucho mas complejo.

Arreglos Multidimensionales
Un arreglo puede ser definido de tres dimensiones, cuatro
dimensiones, hasta de n-dimensiones. En general, un arreglo de n dimensiones
requiere que los valores de los n-subndices puedan
ser especificados a fin de identificar un elemento individual del
arreglo.

Las operaciones que se pueden realizar con matrices son:


asignacin, lectura, escritura, recorrido, actualizacin (aadir,
borrar, insertar), ordenacin, bsqueda.
La notacin algortmica que utilizaremos es la siguiente:
Array[dimension i, dimension j,... dimension n] de <tipo de
dato>:<nombre del array>
Array[0..100,0..50,0...20] de entero:numero
int numero[100][50][20];

Lectura:
leer (<nombre del array>[subindice i, subindice j,... subindice
n])
leer (numero[0,0,0])
scanf(%d, &numero[0][0][0]);

http://exa.unne.edu.ar/depar/areas/informatica/introduccion/public_html/material/teoria7.pdf

Procedimientos:

1. Desarrolle el algoritmo y codificacin necesarios para un programa en C que permita


almacenar los nombres de un grupo de 45 alumnos en un arreglo de dos dimensiones.
Posteriormente, el programa deber ser capaz de imprimir los nombres en orden inverso a
como fueron almacenados.
2. Desarrolle el algoritmo y codificacin necesarios para un programa en C que permita sumar
dos matrices de 4 X 4 y generar una matriz de resultados llamada SUMA. Utilice valores
numricos reales.
3. Desarrolle el algoritmo y codificacin necesarios para un programa en C que permita
obtener la matriz transpuesta de una matriz de 3 X 3.

Problema
Parafestejar su dcimo aniversario,
laempresaYYYestrealizando una ventaespecial
condescuentosa lo largo delmes.
Losdescuentossebasanen 3criterios:* El
primerdescuentoseaplicaalos clientes
queseconsideranfrecuentes,obteniendoun 3%
dedescuentodel total desu compra.* Elsiguiente
descuento es por cantidaddetems
involucradosen lacompra.Si comprentre3 y 5
(inclusive)tems, seaplicaun 2% dedescuento.
Encasodellevar6 oms, un 3%
dedescuento.*Finalmente esteldescuento por
monto que comprelcliente.Siel total de
lacompra(antes decualquier
descuento)essuperior a $200.000, seaplicaun 2,5%
dedescuento.Tambiensepuede aplicarencaso
queelmontosea inferior a $200.000sielcliente lleva
msde 4 items.Primeroseaplicaeldescuento por
clientesfrecuente,luego por
cantidadyfinalmente por monto comprado.Sepide
hacerun programa que solicite el montode la
compra, la cantidad de items y la calidad del
cliente (frecuenteo no)e imprima el valor a pagar
por la compra una vez aplicados los descuentos

1.4.1.1.3 Arreglos Multidimensionales. Conjunto de datos del mismo tipo, estructurados de tal
forma que se necesitan tres o ms ndices para referenciar cada elemento.

Las reglas de ndices, nmero de elementos y dimensin del arreglo son las mismas que para los
anteriores.

Por ejemplo, el arreglo tridimensional se almacena en la memoria como un vector compuesto por
vectores que representan las filas o columnas de cada una de las pginas

Un array puede ser definido de res dimensiones, cuatro dimensiones, hasta de n-dimensiones. En general, un array de n-
dimensiones requiere que los valores de n-ndices puedan ser especificados a fin de identificar un elemento individual del
array. Si cada componente de un array tiene n-ndices, el array se dice que es solo de n-dimensiones.

Ejemplo: Mediciones diarias de temperatura


.

Punto
Tiempo 1 2 3
1 65.5 68.7 62.0
2 68.8 68.9 64.5
3 70.4 69.4 66.3
4 68.5 69.1 65.8

lemento del vector.


Leccin 8: El diseo o proyecto de investigacin y sus elementos componentes (I).

Delimitacin de la investigacin.

Tal y como se ha mencionado antes, el problema objeto de investigacin aparece a raz de


una dificultad emprica o terica, a partir de las mltiples necesidades que aquejan al
hombre y que requieren su resolucin o aclaracin. De ah que el primer punto en el
proceso de concebir un objeto de investigacin es saber plantear adecuadamente un
problema a fin de ubicarlo correctamente.

El planteamiento-delimitacin del tema o problema se fundamenta en lo siguiente:

Todo problema no surge aislado, est condicionado por una multiplicidad y variedad de
factores, forman parte de una totalidad ms amplia: histrica, social, econmica, poltica,
ecolgica, etc.

El problema constituye el punto de partida pero tambin es el punto de llegada y entre


ambos extremos se esconde una gama de aspectos tericos y empricos que hay que
identificar.

El planteamiento-delimitacin del problema es el juego de la totalidad global versus la


totalidad parcial, por cuanto que el problema o el fenmeno objeto de estudio es una
totalidad global en s mismo, constituido por totalidades parciales que lo caracterizan; pero
tambin ms amplio de los elementos de la realidad en la cual est inmerso. En dicha
vinculacin se encuentran relaciones de contradiccin, determinacin, subordinacin,
simplicidad o complejidad, etc.

Tan importante es este aspecto en el diseo, que de un adecuado planteamiento-


delimitacin del tema o problema, depende el xito de toda investigacin; porque en esta
parte es donde se encuentra el resumen de los componentes y caractersticas del tema o
problema estableciendo la direccin del estudio a realizar.

La delimitacin de la investigacin es un proceso que implica, bajar de los niveles


abstractos, a los ms concretos y operativos en la investigacin. Para ello se debe tomar en
cuenta lo siguiente:

Sealar los lmites tericos del problema mediante su conceptualizacin , o sea, la


exposicin de las ideas y conceptos relacionados con el problema que se estudia. En este
proceso de abstraccin se podrn precisar los factores o caractersticas del problema que
interesa investigar. Se dilucidarn posibles conexiones entre distintos aspectos o elementos
que estn presentes en la problemtica que se estudia, y se destacarn soluciones
relevantes de otras que no lo son para los propsitos de la investigacin.

Fijar los lmites temporales de la investigacin, ya que el inters puede radicar en analizar
el problema durante un perodo determinado, o en conocer sus mutaciones en el paso del
tiempo.

Establecer los lmites espaciales de la investigacin, ya que difcilmente un fenmeno


podr estudiarse en todo el mbito en que se presenta, por lo que se seala el rea
geogrfica (regin, zona, territorio) que comprender la investigacin. Tambin se
selecciona una parte del universo de observacin (muestra), sobre la cual se realizar el
estudio y los resultados de aqulla se generalizarn para la poblacin de la que se extrajo.
Definir las unidades de observacin, esto permitir tener una idea concreta sobre las
caractersticas fundamentales que deben reunir los elementos (personas, viviendas, etc.),
para que puedan considerarse dentro de la poblacin objeto de estudio.

Situar el problema en el contexto socioeconmico, poltico, histrico y ecolgico


respectivo , ya que esto reviste gran importancia, primordialmente si el estudio est dirigido
a aportar elementos de juicio para corregir o solucionar problemas, pues, los factores
mencionados pueden impedir o dificultar la aplicacin de las polticas y estrategias
formuladas.

Вам также может понравиться