100% encontró este documento útil (1 voto)
502 vistas9 páginas

Tipos y Uso de Arreglos en Programación

Este documento describe diferentes tipos de arreglos en programación, incluyendo arreglos unidimensionales, multidimensionales y con múltiples subíndices. Un arreglo es una colección ordenada de datos del mismo tipo almacenados en posiciones consecutivas de memoria. Los arreglos unidimensionales son listas de valores del mismo tipo, mientras que los arreglos multidimensionales requieren múltiples índices para acceder a cada elemento.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
502 vistas9 páginas

Tipos y Uso de Arreglos en Programación

Este documento describe diferentes tipos de arreglos en programación, incluyendo arreglos unidimensionales, multidimensionales y con múltiples subíndices. Un arreglo es una colección ordenada de datos del mismo tipo almacenados en posiciones consecutivas de memoria. Los arreglos unidimensionales son listas de valores del mismo tipo, mientras que los arreglos multidimensionales requieren múltiples índices para acceder a cada elemento.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

ARREGLOS EN PROGRAMACIÓN.

Un arreglo es una colección de datos del mismo tipo, que se almacenan en


posiciones consecutivas de memoria y reciben un nombre común. Un arreglo
puede tener una colección finita, homogénea y ordenada de elementos. Finita:
Todo arreglo tiene un límite; es decir, debe determinarse cuál será el número
máximo de elementos que podrán formar parte del arreglo. Homogénea: Todos
los elementos del arreglo deben ser del mismo tipo. Ordenada: Se puede
determinar cuál es el primer elemento, el segundo, el tercero,.... y el n-ésimo el
elemento.

Tipos de arreglos

Arreglos unidimensionales.

Arreglos multidimensionales.

Arreglo con múltiple subíndices.

Arreglos unidimensionales

Es un tipo de datos estructurado que está formado de una colección finita y


ordenada de datos del mismo tipo. Es la estructura natural para modelar listas
de elementos iguales. Están formados por un conjunto de elementos de un
mismo tipo de datos que se almacenan bajo un mismo nombre, y se diferencian
por la posición que tiene cada elemento dentro del arreglo de datos. Al declarar
un arreglo, se debe inicializar sus elementos antes de utilizarlos. Para declarar
un arreglo tiene que indicar su tipo, un nombre único y la cantidad de
elementos que va a contener.

Arreglos multidimensionales

Es un tipo de dato estructurado, que está compuesto por dimensiones. Para


hacer referencia a cada componente del arreglo es necesario utilizar n índices,
uno para cada dimensión. El término dimensión representa el número de
índices utilizados para referirse a un elemento particular en el arreglo. Los
arreglos de más de una dimensión se llaman arreglos multidimensionales.

Arreglos con múltiple subíndices

Es la representación de tablas de valores, consistiendo de información


arreglada en renglones y columnas. Para identificar un elemento particular de
la tabla, deberemos de especificar dos subíndices; el primero identifica el
renglón del elemento y el segundo identifica la columna del elemento. A los
arreglos que requieren dos subíndices para identificar un elemento en particular
se conocen como arreglo de doble subíndice. Note que los arreglos de
múltiples subíndices pueden tener más de dos subíndices. El estándar ANSI
indica que un sistema ANSI C debe soportar por lo menos 12 subíndices de
arreglo.

Declaracion en C de los arreglos Undimensionales y bidimensionales

Arreglos unidimensionales en C++

Los arreglos (array) son un conjunto de valores que se relacionan por medio de
un nombre en común. También se puede decir que son datos que se
almacenan bajo el mismo nombre y para diferenciarlos se utiliza un índice.

En el lenguaje C++ un arreglo puede tener varias dimensiones, en esta ocasión


hablaremos de los arreglos unidimensionales (una dimensión).

Arreglos Unidimensionales

Un arreglo unidimensional es una lista de valores guardados bajo el mismo


nombre y del mismo tipo. Cada valor dentro del arreglo se le conoce como
elemento del arreglo.

Para declarar un arreglo unidimensional en C++ se utiliza la siguiente línea de


código:

tipo_dato identificador[tamaño];

En “tipo de dato” introduciremos que tipo de dato queremos (int, char, float..
etc) , luego en “identificador” introducimos como llamaremos a nuestro arreglo
para ubicarlo e identificarlo de manera rápida. Y entre los corchetes
colocaremos el tamaño que le demos a nuestro array. Quedando de esta
manera:

1 int arreglo[3];

Ya que tenemos declarado nuestro arreglo necesitamos declarar cada uno de


los elementos que lo conforman, para esto utilizamos lo siguiente:

1 arreglo[1]=valor;

Iniciamos con el nombre de nuestro arreglo en el apartado que dice arreglo,


entre los corchetes colocaremos que parte del array utilizaremos, en C++ los
valores se inician en 0, esto quiere decir que si nuestro arreglo es de tamaño 3,
al hacer nuestro índice hay que tomar el 0 como valor inicial quedando [0] , [1]
y [2] completando así nuestros 3 valores del tamaño antes mencionado.
En la parte “valor” asignaremos el valor que le daremos a ese elemento
quedando de la siguiente manera:

1 arreglo[1]=100;

Ejemplo: el siguiente programa carga el arreglo sqrs con los cuadrados de los
números del 1 al 10 y luego los visualiza

#include <iostream>
1
 
2
using namespace std;
3
 
4
int main()
5
{
6
    int sqrs[10];// forma un arreglo de tamaño 10
7
    int i;
8
 
9
    for (i=1;i<11;i++) {
10
        sqrs[i-1]=i*i;
11
    }// un ciclo for para ir aumentando el numero que elevaremos al cuadrado
12
y definir la operación.
13
 
14
    for (i=0;i<10;i++) {
15
        cout<<sqrs[i]<<endl;
16
    }//aumento de posición del índice del arreglo.
17
    
18
    return 0;
19
}

La forma como se almacenan los valores en el arreglo es la siguiente:

sqrs[0] = 1*1

sqrs[1] = 2*2

sqrs[2] = 3*3

sqrs[3] = 4*4

sqrs[4] = 5*5

sqrs[5] = 6*6

sqrs[6] = 7*7

sqrs[7] = 8*8

sqrs[8] = 9*9
sqrs[9] = 10*10

y muestra en pantalla:

 Arreglos Bidimensionales
Un arreglos bidimensional esta compuesto, por un conjunto de elementos
homogéneos y se puede acceder a los datos utilizando dos subíndices, este
tipo de arreglo es también conocido como matriz.

Declaración
Un arreglo bidimensional se define así:

int arreglo[10][10];
float matriz[10][10];
también podemos utilizar constantes para definir la dimensión del arreglo de
dos dimensiones:

const int N = 10;


int arreglo[N][N];

Inicialización

Una matriz o arreglo bidimensional se puede inicializar de este modo:

int matriz[3][3] = {{1,2,3},{4,5,6},{7,8,9}};

Con la anterior asignación se crea en memoria una matriz igual a la de abajo

0 1 2
 

0 1 2 3

1 4 5 6
2 7 8 9

Fig. 8.1

También podemos utilizar una estructura for dentro de otra estructura for para


inicializar los valores de un arreglo de dos dimensiones como se muestra a
continuación:
Ejemplo 8.1
Leer desde teclado una matriz de números enteros de dimensión 3x3.

#include <iostream.h>
void main()
{
const int TAM=3;
int matriz[TAM][TAM];
for( int i=0; i<TAM ; i++)
{
for( int j=0; j<TAM; j++)
{
cout<<”Ingrese el elemento [“<<i<<”,“<<j<<”] “;
cin>>matriz[I][j];
}
}
}

El tipo de acceso a los arreglos unidimensionales es el


acceso directo, es decir, podemos acceder a cualquier
elemento del arreglo sin tener que consultar a elementos
anteriores o posteriores, esto mediante el uso de un índice
para cada elemento del arreglo que nos da su posición
relativa.
REPRESENTACION EN MEMORIA
Los arreglos se representan en memoria de la forma
siguiente:
                x : array[1..5] of integer
Para establecer el rango del arreglo (número total de
elementos) que componen el arreglo se utiliza la siguiente
formula:

  RANGO = Ls - (Li+1)
donde:
ls = Límite superior del arreglo
li = Límite inferior del arreglo
Para calcular la dirección de memoria de un elemento dentro
de un arreglo se usa la siguiente formula:
                A[i] = base(A) + [(i-li) * w]
donde :
A = Identificador único del arreglo
i = Indice del elemento
li = Límite inferior
w = Número de bytes tipo componente
Si el arreglo en el cual estamos trabajando tiene un índice
numerativo utilizaremos las siguientes fórmulas:
                RANGO = ord (ls) - (ord (li)+1)

                A[i] = base (A) + [ord (i) - ord (li) * w]

Acceso a los elementos de un arreglo bidimensional

En un arreglo de dos dimensiones necesitamos también dos índices para


acceder a sus elementos.

Si utilizamos: matriz[i][j], entonces i se refiere a la fila y j a la columna.


Para acceder al elemento de la segunda fila y segunda columna de la matriz de
la Fig. 8.1 hacemos:

int nro = matriz[1][1];

En la variable nro se guardara el número 5.

Las matrices o arreglos bidimensionales se suelen utilizar en cálculos


matemáticos, operaciones con matrices, recorridos por matrices, y cualquier
uso que nosotros le podamos dar.

Se pueden definir arreglos de más de 2 dimensiones, pero su manejo se


dificultaría enormemente.

Recorrer un Array en C++

Para obtener todos los datos que se encuentran al interior de un arreglo, es


necesario recorrer el array o vector, para recorrerlo, se usa casi siempre un
ciclo for, en algunos casos mas específicos un ciclo while, pero generalmente
el ciclo for es el ideal para esto, dado que conocemos el tamaño del array. La
lógica de este procedimiento es la siguiente, el ciclo for comenzara desde cero
e ira hasta el tamaño del vector, de modo que la variable de control que
generalmente llamamos "i", será la que va a ir variando entre cero y el tamaño
del array, de esta forma al poner la i al interior de los corchetes, estaremos
accediendo al valor de cada casilla del vector y podremos hacer lo que sea
necesario con dicho valor, veamos:
Nota: A veces no es posible determinar con facilidad el tamaño exacto de un
vector, pero en C++ existen varias formas de determinar el tamaño de un array
o vector fácilmente, aquí explicare un método. Cabe notar que este tamaño es
el que ira como tope del ciclo for y sería equivalente a que nosotros mismos, en
caso de saber el tamaño del vector, lo pongamos allí, sin embargo como
veremos en otra sección no siempre es posible saber con certeza el tamaño de
un vector, es por esto que explico cómo hacerlo.

#include "iostream"

using namespace std;

int main()

int edades[] = {1,2,9,8,16,32,9,50,36,20,1,87};

int limite = (sizeof(edades)/sizeof(edades[0]));

for (int i = 0; i < limite; i++)

cout<<edades[i]<<endl;

Vamos a ver de forma resumida en qué consiste y que hace cada una de estas
líneas

Línea 1:

Tenemos en la primera línea la declaración de un vector que contiene las


edades de 12 personas, notemos que entre los corchetes no se puso ningún
numero, pues no es necesario, ya que el vector tendrá el tamaño según la
cantidad de elementos que declaremos entre las llaves, evidentemente si
pusiéramos un 12 entre los corchetes, no habría ningún problema.
Línea 2:

En la segunda línea, tenemos la declaración del límite del ciclo o en otras


palabras el tamaño del array. El tamaño de un array se puede calcular de
varias formas, aquí lo obtenemos calculando el tamaño del array entero,
dividido por el tamaño del primer elemento de dicho array, para mas detalles de
esto, verifica la información sobre el operador sizeof.

Línea 3 a 6:

Desde la tercera línea hasta la sexta, tenemos entonces un ciclo for que
comienza en cero y termina en el límite (es importante notar que la condición
usada es estrictamente menor "<" y no menor o igual "<="), al interior de este
ciclo, es donde accedemos a cada uno de los elementos del vector por medio
de la sintaxis explicada anteriormente

Línea 5:

La quinta línea es quizá la más vital aunque sin las demás no tendríamos nada.
En esta línea, estamos accediendo a cada uno de los elementos del array de
edades, un elemento por cada vuelta que da el ciclo, accedemos a cada
elemento poniendo entre los corchetes la variable i, que es la que esta
cambiando a medida que el ciclo va girando, así estaremos accediendo a todos
los elementos e imprimiéndolos por pantalla

¿Cómo inicializar un Array en C++?

En cuanto tenemos declarado un vector, es posible asignarle valores,


evidentemente estos valores deben coincidir con el tipo de dato que le
asignamos a dicho vector, no tendría sentido ingresar como valores de un
vector cadenas de caracteres si el tipo de dato de dicho vector es numérico.

string vector[5] = {"5", "hola", "2.7", "8,9", "adios"};

Aquí hemos declarado un vector de tipo string tamaño 5 y lo hemos inicializado


con diferentes valores, es necesario notar que cada valor va entre comillas
dobles "" puesto que son strings. El valor inicial corresponde a la casilla o
índice 0 y tiene el valor de "5", el índice 1 el valor es "hola" y el índice 4 el valor
es "adiós", es importante notar que el primer índice de n array o vector no es el
UNO sino que es el CERO.
Referencias

 Schildt Herbert, C++ Para programadores. McGraw-Hill. 1996


 Lenguaje C++ Arreglos unidimensionales y multidimensionales. Prof.
Elías Cisneros República Bolivariana de Venezuela Aldea Universitaria
Fray Pedro de Agreda PNFSI 2009

También podría gustarte