Documente Academic
Documente Profesional
Documente Cultură
22
34
X [3]
X [2]
39
X [4]
X [5]
63
72
Se han hechos programas que suman una cantidad de nmeros usando dos
variables, una para leer cada nmero y otra para acumular la suma. Este
enfoque tiene la desventaja de que se pierden los valores de los sumandos. El
uso de arreglos permite calcular la suma de los nmeros con una cantidad
mnima de cdigo y a la vez conservar cada valor, como muestra el siguiente
programa completo:
Program SumaN;
Uses
Crt;
Const
n = 5;
Var
nums: Array[1..n] Of Integer;
s, i: Integer;
Begin
For i:=1 To n Do
Begin
Write('Escriba el nmero: ');
ReadLn(nums[i]);
s := s + nums[i];
End;
WriteLn('La suma es: ', s);
End.
Ntese el uso de una constante para marcar el tamao del arreglo; dicha
constante, tambin sirve para controlar el For. De este modo, slo se hace
necesario cambiar un nmero para adecuar el programa a la escala apropiada
Al igual que los arreglos de una dimensin, los arreglos bidimensionales tambin
pueden ser creados usando la funcin array, pero pasando como argumentos una
lista con las filas de la matriz:
a = array([[5.1, 7.4, 3.2, 9.9],
[1.9, 6.8, 4.1, 2.3],
[2.9, 6.4, 4.3, 1.4]])
Todas las filas deben ser del mismo largo, o si no ocurre un error de valor:
>>> array([[1], [2, 3]])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: setting an array element with a sequence.
Los arreglos tienen un atributo llamado shape, que es una tupla con los tamaos
de cada dimensin. En el ejemplo, a es un arreglo de dos dimensiones que tiene
tres filas y cuatro columnas:
>>> a.shape
(3, 4)
Los arreglos tambin tienen otro atributo llamado size que indica cuntos
elementos tiene el arreglo:
>>> a.size
12
>>> len(a)
3
Las funciones zeros y ones tambin sirven para crear arreglos bidimensionales. En
vez de pasarles como argumento un entero, hay que entregarles una tupla con las
cantidades de filas y columnas que tendr la matriz:
>>> zeros((3, 2))
array([[ 0., 0.],
[ 0., 0.],
[ 0., 0.]])
>>> ones((2, 5))
array([[ 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1.]])
Lo mismo se cumple para muchas otras funciones que crean arreglos; por
ejemplom la funcin random:
>>> from numpy.random import random
>>> random((5, 2))
array([[ 0.80177393, 0.46951148],
[ 0.37728842, 0.72704627],
[ 0.56237317, 0.3491332 ],
[ 0.35710483, 0.44033758],
[ 0.04107107, 0.47408363]])
[ 0, 1, 2]])
Cuando dos matrices aparecen en una operacin, ambas deben tener exactamente
la misma forma:
>>> a = array([[5, 1, 4],
...
[0, 3, 2]])
>>> b = array([[ 2, 3],
...
[-1, 1],
...
[ 0, 1]])
>>> a + b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: shape mismatch: objects cannot be broadcast to a single
shape
5.33,
2.14,
0.71,
6.28,
0.77,
4.67, 6.41],
6.57],
2.56],
8.76],
8.78]])
>>> a[4, 3]
8.78
>>> a[-1, -1]
8.78
>>> a[0, -1]
6.41
Para obtener una fila completa, hay que indicar el ndice de la fila, y poner : en el
de las columnas (significa desde el principio hasta el final). Lo mismo para las
columnas:
>>> a[2, :]
array([ 5.62, 0.54, 0.71, 2.56])
>>> a[:, 3]
array([ 6.41, 6.57, 2.56, 8.76, 8.78])
Otras operaciones
La trasposicin consiste en cambiar las filas por las columnas y viceversa. Para
trasponer un arreglo, se usa el mtodo transpose:
>>> a
array([[ 3.21, 5.33, 4.67, 6.41],
[ 9.54, 0.3 , 2.14, 6.57],
[ 5.62, 0.54, 0.71, 2.56]])
>>> a.transpose()
array([[ 3.21, 9.54, 5.62],
[ 5.33, 0.3 , 0.54],
[ 4.67, 2.14, 0.71],
[ 6.41, 6.57, 2.56]])
El mtodo reshape entrega un arreglo que tiene los mismos elementos pero otra
forma. El parmetro dereshape es una tupla indicando la nueva forma del arreglo:
>>> a = arange(12)
>>> a
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
>>> a.reshape((4, 3))
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
>>> a.reshape((2, 6))
array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11]])
Adems, diag recibe un segundo parmetro opcional para indicar otra diagonal
que se desee obtener. Las diagonales sobre la principal son positivas, y las que
estn bajo son negativas:
>>> diag(a, 2)
La misma funcin diag tambin cumple el rol inverso: al recibir un arreglo de una
dimensin, retorna un arreglo bidimensional que tiene los elementos del
parmetro en la diagonal:
>>> diag(arange(5))
array([[0, 0, 0, 0, 0],
[0, 1, 0, 0, 0],
[0, 0, 2, 0, 0],
[0, 0, 0, 3, 0],
[0, 0, 0, 0, 4]])
Arreglos multidimensionales
Un arreglo multidimensional es un arreglo cuyos elementos tienen ms de un
ndice.
El caso ms simple son los arreglos bidimensionales, que tienen dos ndices, y son
tiles para representar datos con formato tabular, como tablas y matrices.
Los arreglos multidimensionales son declarados indicando los tamaos a lo largo
de cada una de las dimensiones, separados por comas. Por ejemplo, un arreglo de
enteros de 5 3 es declarado as:
integer, dimension(5, 3) :: a
Este arreglo tiene quince elementos: desde a(1, 1) hasta a(5, 3).
La manera tpica de recorrer los elementos de un arreglo multidimensional es usar
varios ciclos do anidados, uno por cada dimension. Por ejemplo, el siguiente
programa suma todos los elementos del arreglo a declarado en el ejemplo anterior:
suma = 0
do i = 1, 5
do j = 1, 3
PARTES DE UN ARREGLO.
Los componentes: Hacen referencia a los elementos que forman el arreglo, es
decir, a los valores que se almacenan en cada una de las casillas del mismo.
Los ndices: Permiten hacer referencia a los componentes del arreglo en forma
individual, especifican cuntos elementos tendr el arreglo y adems, de qu
modo podrn acezarse esos componentes. Existen tres formas de indexar los
elementos de una matriz:
Indexacin base-cero (0): En este modo el primer elemento del vector ser la
componente cero (0) del mismo, es decir, tendr el ndice '0'. En consecuencia,
si el vector tiene 'n' componentes la ltima tendr como ndice el valor n-1.
* Indexacin base-uno (1): En esta forma de indexacin, el primer elemento de
la matriz tiene el ndice '1' y el ltimo tiene el ndice 'n' (para una matriz de 'n'
componentes).
* Indexacin base-n (n): Este es un modo verstil de indexacin en la que el
ndice del primer elemento puede ser elegido libremente, en algunos lenguajes
de programacin se permite que los ndices puedan ser negativos e incluso de
cualquier tipo escalar (tambin cadenas de caracteres).
Las operaciones que se pueden llegar a realizar con vectores o arreglos
durante el proceso de resolucin de un problema son las siguientes:
* Lectura (llenar el vector): El proceso de lectura de un arreglo consiste en leer
y asignar un valor a cada uno de sus elementos. Normalmente se realizan con
estructuras repetitivas, aunque pueden usarse estructuras selectivas.
* Escritura (mostrar el vector): Es similar al caso de lectura, slo que en vez de
leer el componente del arreglo, lo escribimos.
* Asignacin (dar valor a una posicin especfica): No es posible asignar
directamente un valor a todo el arreglo; sino que se debe asignar el valor
Cadena de caracteres
Representacin
Una cadena suele ser representada entre comillas dobles superiores ("palabra"), mientras que un
carcter de esa cadena (unchar en ingls) suele ser representado entre comillas simples ('p'). Por
ejemplo, en C:
charAt c = 'a';
char str[5] = "hola";
Mediante un carcter de fin de cadena ("\0" en C) para las cadenas de tipo dinmico.
Mediante una propiedad de la cadena que delimite su longitud ( Length en C#) para las de tipo
esttico.
# en C++
cadena1 := cadena2
# en Smalltalk
# en Perl y PHP;
# en Visual Basic;
pareja = "Luisa" + " y " + "Carmen"; # en C++ y Java con la clase String.
pareja := 'Luisa' , ' y ' , 'Carmen'.
# en Smalltalk
# en C++
cadena size.
# en Smalltalk
puntos en Smalltalk
CONCLUSIN.
Uno de los problemas ms comunes en los diversos sistemas de informacin es
el tratamiento o procesamiento de un gran volumen de datos o de informacin.
Pero para resolver dichos problemas se emplea el mtodo del arreglo, que nos
sirve para Ordenar y estructurar datos que responden a una misma realidad o
entidad, pero donde cada uno hace referencia a una instancia y De este modo
nos evitamos tener n variables de un mismo tipo.
En la programacin tradicional siempre se manejan dos tipos de arreglos los
arreglos tipo listas, vectores o unidimensionales y los arreglos tipo tablas,
cuadros, concentrados, matrices o bidimensionales en ambos casos son
variables que permiten almacenar un conjunto de datos del mismo tipo a la
vez, su diferencia es en la cantidad de columnas que cada uno de estos tipos
contiene.
Para concluir en pocas palabras, un arreglo es la mejor solucin a la hora de
agrupar distintos datos que sean de un mismo tipo, estos datos se almacenan
en la memoria y reciben un nombre comn para todos.
BIBLIOGRAFIA.