top of page

ARREGLOS

La historia completa


Un arreglo, lista o tabla es una secuencia de datos del mismo tipo. Los datos se llaman elementos del arreglo y se numeran consecutivamente 0, 1, 2, 3, etc. El tipo de elementos almacenados en el arreglo puede ser cualquier tipo de dato de C, incluyendo estructuras definidas por el usuario, como se describirá más tarde. Normalmente el arreglo se utiliza para almacenar tipos como char, int o float. Un arreglo puede contener, por ejemplo, la edad de los alumnos de una clase, las temperaturas de cada día de un mes en una ciudad determinada, o el número de personas que residen en cada una de las 17 comunidades autónomas españolas. Cada item del arreglo se denomina elemento.

Al igual que con cualquier tipo de variable, se debe declarar un arreglo antes de utilizarlo. Un arreglo se declara de modo similar a otros tipos de datos, excepto que se debe indicar al compilador el tamaño o longitud del arreglo. Para indicar al compilador el tamaño o longitud del arreglo se debe hacer seguir al nombre, el tamaño encerrado entre corchetes. La sintaxis para declarar un arreglo de una dimensión determinada es:

areglo1.png
Modulo 2: Acerca de

Esta declaración hace que el compilador reserve espacio suficiente para contener diez valores enteros. En C los enteros ocupan, normalmente, 2 bytes, de modo que un arreglo de diez enteros ocupa 20 bytes de memoria

Un arreglo de enteros se almacena en bytes consecutivos de memoria. Cada elemento utiliza dos bytes. Se accede a cada elemento de arreglo mediante un índice que comienza en cero.

El tamaño de los arreglos

El operador sizeof devuelve el número de bytes necesarios para contener su argumento. Si se usa sizeof para solicitar el tamaño de un arreglo, esta función devuelve el número de bytes reservados para el arreglo completo.


TIPOS DE ARREGLOS Y SU DEFINICIÓN

Vectores. Para un arreglo unidimensional, el tamaño se especifica con una expresión entera positiva encerrada entre paréntesis cuadrados. En términos generales, una definición de arreglo unidimensional puede expresarse como


Manejo de cadenas de caracteres. Las funciones gets y puts ofrecen alternativas sencillas al uso del scanf y del printf para la lectura y escritura de cadenas de caracteres.


Matrices. Un arreglo bidimensional requerirá dos pares de corchetes, un arreglo tridimensional requerirá tres pares de corchetes, y así sucesivamente. En términos generales, la definición de un arreglo multidimensional se puede escribir como

tipo-de-dato arreglo[expresión 1] [expresión2] … [expresión n];

Modulo 2: Texto

ARREGLOS BIDIMENSIONALES

Los arreglos vistos anteriormente se conocen como arreglos unidimensionales (una sola dimensión) y se caracterizan por tener un solo subíndice. Estos arreglos se conocen también por el término listas. Los arreglos multidimensionales son aquellos que tienen más de una dimensión y, en consecuencia, más de un índice. Los arreglos más usuales son los de dos dimensiones, conocidos también por el nombre de tablas o matrices. Sin embargo, es posible crear arreglos de tantas dimensiones como requieran sus aplicaciones, esto es, tres, cuatro o más dimensiones.
Un arreglo de dos dimensiones equivale a una tabla con múltiples filas y múltiples columnas
Obsérvese que en el arreglo bidimensional de la figura 8.5 si las filas se etiquetan de 0 a m y las columnas de 0 a n, el número de elementos que tendrá el arreglo será el resultado del producto (m+1) *(n + 1). El sistema para localizar un elemento será a través de las coordenadas representadas por su número de fila y su número de columna (a, b). La sintaxis para la declaración de un arreglo de dos dimensiones es:

matriz.png
Modulo 2: Texto

Un arreglo de dos dimensiones en realidad es un arreglo de arreglos. Es decir, es un arreglo unidimensional, y cada elemento no es un valor entero, o de coma flotante o carácter, sino que cada elemento es otro arreglo. Los elementos de los arreglos se almacenan en memoria de modo que el subíndice más próximo al nombre del arreglo es la fila y el otro subíndice, la columna. se representan todos los elementos y sus posiciones relativas en memoria del arreglo, int tabla [4][2], suponiendo que cada entero ocupa 2 bytes.

matriz 2.png
Modulo 2: Texto

Para realizar la Inicialización de arreglos multidimensionales es necesario mencionar que Los arreglos multidimensionales se pueden inicializar, al igual que los de una dimensión, cuando se declaran. La inicialización consta de una lista de constantes separadas por comas y encerradas entre llaves,
Los arreglos multidimensionales (a menos que sean globales) no se inicializan a valores específicos a menos que se les asignen valores en el momento de la declaración o en el programa. Si se inicializan uno o más elementos, pero no todos, C rellena el resto con ceros o valores nulos (‘\0’)
En otro punto es necesario saber el cómo se realiza el Acceso a los elementos de los arreglos bidimensionales. Se puede acceder a los elementos de arreglos bidimensionales de igual forma que a los elementos de un arreglo unidimensional. La diferencia reside en que en los elementos bidimensionales deben especificarse los índices de la fila y la columna.
La Lectura y escritura de elementos de arreglos bidimensionales se realiza utilizando las funciones de entrada o salida se aplican de igual forma a los elementos de un arreglo bidimensional.

matriz 3.png
Modulo 2: Texto

PASO DE CADENAS COMO PARÁMETROS


La técnica de pasar arreglos como parámetros se utiliza para pasar cadenas de caracteres a funciones. Las cadenas terminadas en nulo utilizan el primer método dado anteriormente para controlar el tamaño de un arreglo. Las cadenas son arreglos de caracteres. Cuando una cadena se pasa a una función, como strlen (), la función conoce que se ha llegado al final del arreglo cuando lee un valor de 0 en un elemento del arreglo. Las cadenas utilizan siempre un 0 para indicar que es el último elemento del arreglo de caracteres. Este 0 es el carácter nulo del código de caracteres ASCII. El siguiente ejemplo de una función que convierte los caracteres de sus argumentos a mayúsculas, muestra el paso de parámetros tipo cadena.

cadena 2.png
Modulo 2: Texto

La función convierte_mayus () recibe una cadena, un arreglo de caracteres cuyo último carácter es el nulo (0). El bucle termina cuando se alcance el fin de la cadena (nulo, condición false). La condición del operador ternario determina si el carácter es minúsculo, en cuyo caso resta a dicho carácter el intervalo que hay entre las minúsculas y las mayúsculas.

Modulo 2: Texto

CONCEPTO DE CADENA 


Una cadena (también llamada constante de cadena o literal de cadena) es un tipo de dato compuesto, un arreglo de caracteres (char), terminado por un carácter nulo ('\0'), NULL (figura 8.10). Un ejemplo es:

"ABC".

Cuando la cadena aparece dentro de un programa se verá como si se almacenaran cuatro elementos: 'A', 'B', 'C' y '\0'. En consecuencia, se considerará que la cadena "ABC" es un arreglo de cuatro elementos de tipo char. El valor real de esta cadena es la dirección de su primer carácter y su tipo es un apuntador a char. Aplicando el operador * a un apuntador a char se obtiene el carácter que forma su contenido; es posible también utilizar aritmética de apuntadores con cadenas:

cadena 3.png
Modulo 2: Texto
bottom of page