You are on page 1of 6

TRABAJO DE INVESTIGACIÓN

Gonzalez Cedillo Fernando

Electricidad Grupo 2

Universidad Politécnica Salesiana

bgonzalezc1@est.ups.edu.ec

MANEJO DE ARREGLOS EN BC++

OBJETIVOS:
 Definir que es un arreglo y cómo utilizarlo en el lenguaje BC++.
 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.
 Conocer más sobre arreglos Unidimensionales y Bidimensionales.
 Aprender más sobre la materia.

INTRODUCCIÓN:
En el presente trabajo de investigación se dará a conocer más sobre los arreglos, principalmente sobre
los Unidimensionales y Bidimensionales, tratando de comprender mejor sus usos y emplearlos en la
materia.

DESARROLLO:

¿Qué es un Arreglo?

Muchas aplicaciones requieren el procesamiento de múltiples datos que tienen características


comunes, por ejemplo, un conjunto de datos numéricos, representados por x1, x2, x3 x4… hasta un
xN. En tales situaciones, es conveniente colocar los datos en un arreglo, el cual se caracteriza porque
todos sus elementos comparten un mismo nombre (en este ejemplo el nombre para la variable de
arreglo seria x). Los datos individuales pueden ser caracteres, números enteros, números de coma
flotante de simple o de doble precisión (reales). Debe tenerse muy en cuenta que todos los N
elementos de un arreglo se caracterizan en que: todos deben ser del mismo tipo de dato y deben
tener el mismo tipo de almacenamiento.

Definición de arreglo
(Array en inglés)
Un arreglo es un conjunto de variables del mismo tipo de datos que pueden ser referenciadas a
través de un mismo nombre. La forma de identificar a un elemento determinado es a través de un
índice.

Como se maneja a los elementos de un arreglo


Cada elemento (dato individual) del Arreglo es referenciado mediante la especificación del Nombre
del arreglo seguido por uno o más Índices. El número de índices utilizados determinan las
Dimensiones del Arreglo.

Dimensiones del arreglo


Al definir un arreglo, se le debe indicar el total de elementos N que lo formaran. A este total N se le
conoce como Dimensión del Arreglo, el cual permite indicar el total de posiciones que se almacenara
dentro de la memoria de la PC.
Si un arreglo tiene solo una dimensión, se le llama Arreglo Unidimensional, porque basta indicar un
número, llamado “índice” para referenciar a una posición específica dentro del mismo.
Si define 2 dimensiones para un arreglo, a este se le conoce como un Arreglo bidimensional.

Al definir más de una dimensión al arreglo, le permite aplicar diversos métodos de clasificación
para el almacenamiento de listas de datos más complejos.

ARREGLOS UNIDIMENSIONALES (VECTORES)


Un vector, también llamado array(arreglo) unidimensional, es una estructura de datos que permite
agrupar elementos del mismo tipo y almacenarlos en un solo bloque de memoria juntos, uno después
de otro. A este grupo de elementos se les identifica por un mismo nombre y la posición en la que se
encuentran. La primera posición del array es la posición 0.

Podríamos agrupar en un array una serie de elementos de tipo enteros, flotantes, caracteres, objetos,
etc.

Crear un vector en C++ es sencillo, seguimos la siguiente sintaxix: Tipo nombre[tamaño];

Ejm:

1 int a[5]; // Vector de 5 enteros


2 float b[5]; // vector de 5 flotantes
3 Producto product[5]; // vector de 5 objetos de tipo Producto

Podríamos también inicializar el vector en la declaración:

1 int a[] = {5, 15, 20, 25, 30};


2 float b[] = {10.5, 20.5, 30.5, 12.5, 50.5}
3 Producto product[] = {celular, calculadora, camara, ipod, usb}

Como hay 5 elementos en cada array, automáticamente se le asignará 5 espacios de memoria a cada
vector, pero si trato de crear el vector de la forma int a[] , el compilador mostrará un error, porque no
indiqué el tamaño del vector ni tampoco inicializé sus elementos.

Asigno valores a los elementos de un vector indicando su posición:

1 int a[4] = 30; // le asigno el valor 30 a la posición 4 del vector.


2 product[2].setPrecio(300) // le asigno un precio de 300 al producto en la posición 2.

Obviamente el método setPrecio() debe de estar implementado. Para llenar, recorrer e imprimir un
vector podemos utilizar un bucle for:

1 #include <iostream>
2 using namespace std;
3
4 int main()
5 {
6 int dim;
7 cout << "Ingresa la dimension del vector" << endl;
8 cin >> dim; // Supongamos que ingrese 10
9 int vector[dim]; // mi vector es de tamanyo 10
10
11 for(int i = 0; i < dim; i++){
12 vector[i] = i * 10;
13 cout << vector[i] << endl;
14 }
15
16 return 0;
17 }

Aquí una función simple para sumar 2 vectores a y b y poner el resultado en un tercer vector c:

1 #include <iostream>
2 using namespace std;
3
4 void sumar(int a[], int b[], int c[],int dim) {
5 for (int i = 0; i < dim; i++) {
6 c[i] = a[i] + b[i];
7 }
8 }
9
10 void imprimir(int v[], int dim)
11 {
12 for(int i = 0; i < dim; i++) {
13 cout << v[i] << endl;
14 }
15 cout << endl << endl;
16 }
17
18 int main()
19 {
20 int dim;
21 cout << "Ingresa la dimensión" << endl;
22 cin >> dim;
23
24 int a[dim];
25 int b[dim];
26 int c[dim];
27
28 for(int i = 0; i < dim; i++) {
29 a[i] = i * 10;
30 b[i] = i * 5;
31 }
32
33 cout << "Vector A " << endl;
34 imprimir(a, dim);
35
36 cout << "Vector B " << endl;
37 imprimir(b, dim);
38
39 sumar(a, b, c, dim);
40 cout << "Vector C " << endl;
41 imprimir(c, dim);
42 return 0;
43 }
Si ingreso una dimensión de 10, este programa me daría:

Vector A

0 10 20 30 40 50 60 70 80 90

VECTOR B

0 5 10 15 20 25 30 35 40 45

VECTOR C

0 15 30 45 60 75 90 105 120 135

Entonces para tomar en cuenta:

 Todo vector debe tener definido un tipo de dato.


 Todo vector necesita de una dimensión o tamaño.
El código de arriba se puede mejorar muchísimo con objetos y clases, este es solo un pequeño ejemplo.

ARREGLOS BIDIMENSIONALES (MATRICES)


Una matriz es un vector de vectores o un también llamado array bidimensional. La manera de declarar
una matriz es C++ es similar a un vector:

int matrix[rows][cols];

int es el tipo de dato, matrix es el nombre del todo el conjunto de datos y debo de especificar el número
de filas y columnas.

Las matrices también pueden ser de distintos tipos de datos como char, float, double, etc. Las matrices
en C++ se almacenan al igual que los vectores en posiciones consecutivas de memoria.

Usualmente uno se hace la idea que una matriz es como un tablero, pero internamente el manejo es
como su definición lo indica, un vector de vectores, es decir, los vectores están uno detrás del

Un arreglos bidimensional está 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

Fig1

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

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];

}
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. 1 hacemos:

int nro = matriz[1][1];

En la variable nro se guardará 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.

CONCLUSION:

Un arreglo o array (en inglés) es una colección de variables relacionadas a las que se hace referencia
por medio de un nombre común. Otra definición válida es que un arreglo es un conjunto de datos que se
almacenan en memoria de manera contigua con el mismo nombre y para diferenciar los elementos de
un arreglo se utiliza un índice. En el lenguaje C++ un arreglo se le conoce como un tipo de dato
compuesto. Los arreglos pueden tener una o varias dimensiones.

Un arreglo unidimensional 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. 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. Para
implementar arreglos unidimensionales se debe reservar espacio en memoria.
Los arreglos bidimensionales Son estructuras de datos que agrupan muchos datos del mismo tipo, en
donde cada elemento se puede trabajar individualmente y se puede referenciar con un mismo
nombre. Un arreglo bidimensional equivale a una tabla con múltiples filas y múltiples columnas.

REFERENCIAS:

• http://www.udb.edu.sv/udb/archivo/guia/informatica-tecnologico/introduccion-a-la-
programacion/2012/ii/guia-7.pdf
• https://ronnyml.wordpress.com/2009/07/04/vectores-matrices-y-punteros-en-c/
• http://www.omijal.org/pagina_c/matrix.html
• https://aldeafraypedrodeagreda.files.wordpress.com/2009/12/11-arreglos-
multidimensionales.pdf
• http://www.cs.buap.mx/~mtovar/doc/Matrices.pdf
• http://programacionunefa.blogspot.com/2008/06/arreglos-unidimensionales.html