FUNDAMENTOS
DE
PROGRAMACIÓN
Arreglos
Universidad Iberoamericana
Antonio Cardeña
Agenda
1. Objetivos de la clase.
2. Arreglos.
3. Ejemplo de arreglos.
4. Arreglo bidimensional.
5. Ejemplo de arreglos bidimensionales.
6. Arreglos multidimensionales.
7. Sesión de preguntas.
2
Objetivos de la clase
Objetivos de la clase
• Conocer la definición y la forma en que se compone un arreglo.
• Identificar las aplicaciones de los arreglos dentro del desarrollo de software.
• Diferenciar entre los diferentes tipos de arreglos acorde a sus dimensiones.
• Aprender a implementar arreglos en el lenguaje C.
4
Arreglos
Definición
• En programación, es una estructura de datos fundamental que consiste en una tabla uni o multidimensional
en la que se guardan datos del mismo tipo y que es tratada por el programa como una unidad. Cualquier
dato puede ser referenciado indicando el nombre del arreglo y su posición en el mismo. La posición está
dada por un índice.
• Es un conjunto de localidades de memoria consecutivas en las que se puede almacenar información. Cada
ítem de un arreglo es llamado elemento.
• Una colección de datos cuyos elementos forman una secuencia ordenada se llama arreglo. Los elementos
de un arreglo pueden ser de cualquier tipo de datos, siempre y cuando todos ellos sean del mismo tipo.
6
Definición
• Dato estructurado, que almacena una colección de datos del mismo tipo.
• Tienen un tamaño, que es la cantidad de datos que almacena.
• Son entidades estáticas.
• Pueden ser de una, dos o más dimensiones.
Contenido: Valores Enteros
Memoria 5 2 10 -3 37
........ 0x100 0x101 0x102 0x103 0x104 0x105 0x106......
Índices 0 1 2 3 4
Arreglo 7
¿Para qué sirve un arreglo?
• Son útiles para procesar series de información del mismo tipo, por ejemplo, listas de números en las que,
además de hacer algún proceso en particular, resulta de interés o necesario conservar intacta la lista de
números completa, o en la que el proceso implica manipular varias veces un mismo elemento de la lista.
• Son particularmente útiles para el manejo y procesamiento de cadenas de texto.
8
¿Cómo se declara un arreglo?
• int arreglo[] = {1,2,3,4,5};
• char alfabeto[5] = {‘A’, ‘B’, ‘C’, ‘D’, ‘E’};
• double num[20];
9
Índices
• La forma de acceder a un elemento individual del arreglo es por medio de índices.
• Los índices describen la posición de un elemento dentro del arreglo.
10
Aclaraciones
• Se trata de estructuras estáticas: Desde el código fuente se especifica el tamaño que habrá de
tener un arreglo. Ese tamaño permanecerá inmutable todo el tiempo, sin importar si se utilizan o
no todos los elementos del arreglo.
• Es responsabilidad del programador verificar que se respeten los límites del arreglo. De no ser
así, cabe la posibilidad de que se “invadan” regiones de memoria que no fueron reservadas ni
para el arreglo ni para el programa.
11
Aclaraciones
• Cuando se manipula un elemento de un arreglo, dicho elemento conserva las características del
tipo de datos de definición del arreglo. Es decir, si se declara un arreglo del tipo int, cada
elemento debe ser tratado como un valor entero, sin importar si forma o no parte de un arreglo.
• No existe forma de copiar, leer o imprimir todos los valores de un arreglo en una sola instrucción.
Cualquier operación debe realizarse manipulando cada uno de los elementos del arreglo.
12
Ejemplo
Ejemplo
#include <stdio.h>
void arreglo(void);
int main(void)
{
arreglo();
return 0;
}
void arreglo (void)
{
int numero[5] = {0};
int suma;
numero[0] = 200;
numero[1] = 150;
numero[2] = 100;
numero[3] = -50;
numero[4] = 300;
suma = numero[0] + numero[1] + numero[2] + numero[3] + numero[4];
printf("Su suma es %d\n", suma);
}
14
Arreglo bidimensional
Bidimensionales
• Un arreglo bidimensional es en realidad una colección de arreglos unidimensionales.
• char nombres[5][40]={“pedro”, “pablo”, “luis”, “karina”, “lisa”};
//5 filas y columnas a lo mas de 40 caracteres.
• int coordenadas[2][2]={ {0,0},{1,1}};
//arreglo bidimensional de enteros
16
Bidimensionales
17
Ejemplo
Bidimensionales - Ejemplo
#include <stdio.h>
void califas(void);
int main(void)
{
califas();
return 0;
}
void califas(void)
{
int notas[2][10]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
printf("La nota del tercer alumno del grupo 1 es %d\n", notas[0][2]);
return;
}
19
Arreglo multidimensional
Arreglo multidimensional
• Es un arreglo que permite generar estructuras más complejas. El caso más común es el de las
matrices, que son representadas por medio de un arreglo de dos dimensiones.
• En el caso de las matrices o arreglos de dos dimensiones, se emplean dos índices para
“direccionar” un elemento dentro del arreglo.
• Los arreglos de más de dos dimensiones se usan igual que cualquier arreglo de una dimensión.
La única diferencia es que, para poder manipular algún valor del arreglo, hay que indicar tantos
índices como dimensiones tiene el arreglo.
21
¿Preguntas?