ARREGLOS EN LENGUAJE C++ Departamento/ Ciencias de la Computación (ESPE) Sangolqui – Ecuador Ecuador Darío Astudillo
[email protected]
::In In this paper we explain in detail det ail as is the use of arrays in c + + language "programming" and so for future practices can more easily understand the use of this method of data storage. r esu men
I.
INTRODUCCION
Un arreglo es una estructura de datos, o más técnicamente, técnicamen te, un espacio de memoria que permite almacenar una colección de elementos, todos del mismo tipo. Conviene imaginar un arreglo como una secuencia contigua de celdas (espacios de memoria), o casillas, en cada una de las cuales se puede guardar un elemento de la colección. Además, es usual dibujarlo como lo ilustra la figura siguiente:
Esta figura representa un arreglo de siete casillas cada una de las cuales se puede utilizar para guardar un dato. La dimensión o tamaño de un arreglo es el número de casillas que lo conforman. Debe ser claro, entonces, que la figura anterior corresponde a un arreglo de dimensión 7. Cada una de las casillas de un arreglo tiene asociado un número que la identifica de manera única. A este número se le llama índice o dirección. En la figura anterior, debajo de cada casilla, aparece su índice. En lenguajes como C, C++ y java, la primera casilla del arreglo tiene índice 0, la segunda tiene índice 1, la tercera índice 2, y así sucesivamente. Es muy importante tener presente que si el arreglo es de dimensión N, la última casilla tiene índice N-1.
Los lenguajes de programación, permiten que el programador declare arreglos de cualquier tipo y prácticamente de cualquier tamaño. En el seudolenguaje, un arreglo se declara usando el siguiente formato o plantilla:
ll. Arreglos 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.
• Arreglos tipo matrices También podemos ubicar un dato dentro de una matriz de memoria.
a) Arreglos unidimensionales Un arreglo de una dimensión es una lista de variables, todas de un mismo tipo a las que se hace referencia por medio de un nombre común. Una variable individual del arreglo se llama elemento del arreglo. Para declarar un arreglo de una sola dimensión se usa el formato general:
tip o _dat o iden tif ic ado r[ tam añ o ];
Ejemplo 1. Arreglo de una dimensión : 1. using namespace std; 2. #include
3. int main() 4. { 5. int sqrs[10]; 6. int i; 7. for (i=1;i<11;i++) { 8. sqrs[i-1]=i*i; 9. } 10. for (i=0;i<10;i++) { 11. cout<
arreglo es la siguiente: sqrs[0] = 1*1 sqrs[1] = 2*2 sqrs[2] = 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
• Asignación entre arreglos En C++ no se puede asignar un arreglo completo a otro arreglo. Por ejemplo, este fragmento es incorrecto : incorrecto char a1[10], a2[10]; . a2=a1; // Es incorrecto
Si desea copiar los valores de todos los elementos de una arreglo a otro debe hacerlo copiando cada elemento por separado. Por ejemplo, el siguiente programa carga a1 con los números 1 a 10 y después | los copia en a2. Ejemplo 3. 1. using namespace std; La forma como quedará 2. #include es la seguinte: 3. int main() 4. { a1[0] = a2[0] 5. int a1[10], a2[10]; a1[1] = a2[1] 6. int i; a1[2] = a2[2] 7. //Inicialización de a1 a1[3] = a2[3] 8. for (i=0; i<10;i++) a1[4] = a2[4] 9. a1[i]=i+1; a1[5] = a2[5] 10. //Copiar en a2 a1[6] = a2[6] 11. for (i=0; i<10;i++) a1[7] = a2[7] 12. a2[i]=a1[i] a1[8] = a2[8] 13. //Mostrar a2 a1[9] = a2[9] 14. for (i=0; i<10;i++) 15. cout<
b) Arreglos multidimensionales Es una estructura de datos estática y de un mismo tipo de datos, y de longitud fija que almacena datos de forma matricial. De igual forma que los arreglos unidimensionales, el almacenamiento de los datos en la memoria se realiza de forma secuencial y son accedidos mediante índices. Los arreglos multidimensionales son también conocidos como matrices. Por lo tanto se llama matriz de orden "m×n" a un conjunto rectangular de elementos dispuestos en filas "m" y en columnas "n", siendo m y n números naturales. Las matrices se denotan con letras mayúsculas: A, B, C, ... y los elementos de las mismas con letras minúsculas y subíndices que indican el lugar ocupado: a, b, c, ... Un elemento genérico que ocupe la fila i y la columna j se escribe i,j. Si el elemento genérico aparece entre paréntesis también representa a toda la matriz: A (i,j). Una matriz de orden 3x4 se muestra a continuación, siendo M una matriz de 3 filas y 4 columnas, la representación gráfica de sus posiciones sería la siguiente:
M 3x4 Filas = 3, columnas = 4
• Declaración de Arreglos multidimensionales La sintaxis es la siguiente: tipo_dato identificador [dimensión1] [dimensión2] ... [dimensiónN] ; Donde N es un número natural positivo. Ejemplo Arreglo de dos dimensiones de orden 2x3. char m[2][3] ;
Declaración char m[2][3]; // forma una tabla de dos filas y tres columnas // cada fila es un arreglo de una dimensión
II.VECTORES Y MATRICES Los vectores y matrices son uno de los medios principales para el almacenamiento de los datos en un programa. En esta práctica veremos todos los conceptos relativos a la creación y manejo en C de vectores, matrices y cadenas de caracteres.
Búsqueda en vectores y matrices. Como ya hemos comentado inicialmente, los vectores y matrices son uno de los medios principales mediante los cuales se almacenan los datos en un programa C. Debido a esta causa, existen operaciones fundamentales cuyo tratamiento es imprescindible conocer. Estas operaciones esenciales son la búsqueda de elementos y la ordenación.
a) Búsqueda de un Vector La búsqueda de un elemento dentro de un vector se basa en ir recorriendo secuencialmente el vector, de una posición a la siguiente, comenzando en la primera posición del vector y deteniéndose únicamente cuando se encuentra el elemento buscado o bien cuando se alcanza el final del vector.
Ejemplo 2: encontrado = 0 indice = 0 mientras (encontrado == 0) y (indice < ultimo) hacer si (Vector[indice] == elemento_buscado) entonces encontrado = 1 sino incrementar indice fin_mientras si (encontrado == 1) entonces Escribir “Elemento encontrado en posición” indice sino Escribir “Elemento no encontrado”
•
CADENA DE CARACTERES
En C no existe un tipo predefinido para manipular cadenas de caracteres (string). Sin embargo, el estándar de C define algunas funciones de biblioteca para tratamiento de cadenas. Una cadena en C es un array de caracteres de una dimensión (vector de caracteres) que termina con el carácter especial „\0‟ (cero). El formato para declarar una cadena es: char nombre[n]; donde: n >= 1 y representa a la longitud-1 real de la cadena.
Un ejemplo de declaración de cadena: char cadena [5]; char cadena[] = "Hola"; char cadena[] = {'H','o','l','a',0}; char cadena[] = {'H','o','l','a','\0'}; La biblioteca “string” tiene una gran cantidad de funciones prácticas para trabajar con cadenas de caracteres. Para utilizarlas debemos de incluir el fichero que define los prototipos de dichas funciones:
#include Algunas de las funciones más importantes son: strlen(): Devuelve la longitud de la cadena sin tomar en cuenta el caracter de final de cadena. strcpy(, ) : Copia el contenido de en . strcat(, ) : Concatena el contenido de al final de . strcmp(, ) : Compara las dos cadenas y devuelve un 0 si las dos cadenas son iguales, un número negativo si es menor que (precede alfabéticamente a) número positivo (mayor que cero) si es mayor que . •
•
•
•
Por ejemplo, para mostrar en pantalla un array de caracteres podemos hacerlo dentro de un bucle, desde el primer caracter (indice 0) hasta el último carácter (lo que nos devuelve la función strlen): for(i=0; i
CONCLUSIONES Los arreglos en c++ son de gran importancia cuando hablamos de almacenamiento de datos «en cadenas» Con un uno de cadenas o de series almacenamos datos mas rápido y ordenadamente así al momento de usarlas sabremos como ejecutarla e imprimirlos
Fin