07 - Arreglos Unidimensionales
Objetivos
Representar colecciones de datos homogéneos con arreglos y recorrerlas con control correcto de límites.
- Comprender qué problema resuelve un arreglo unidimensional
- Declarar e inicializar arreglos en C
- Acceder a los elementos mediante índices
- Recorrer y procesar arreglos con
for - Evitar errores de límites, inicialización e interpretación del índice
Contenidos
Qué es un arreglo
- Definición: colección de elementos del mismo tipo almacenados en posiciones consecutivas
- Ventaja: agrupar muchos valores bajo un mismo nombre
- Modelo mental: cada posición se identifica por un índice
Declaración e inicialización
- Forma general:
tipo nombre[tamano]; - Opciones frecuentes: declarar tamaño explícito o inicializar con una lista de valores
- Criterio del curso: decidir el tamaño del arreglo antes de empezar a procesarlo
Índices como desplazamiento
- Idea clave: los índices empiezan en
0 - Rango válido: de
0atamano - 1 - Lectura correcta: el índice indica posición dentro de la colección, no numeración humana
Acceso y recorrido
- Acceso puntual: leer y modificar
arreglo[indice] - Patrón típico: recorrer con
forusando límites consistentes con el tamaño - Procesamientos frecuentes: carga, suma, promedio, búsqueda de máximo o mínimo, conteo
Errores frecuentes
- Fuera de rango: acceder a posiciones inválidas
- Sin inicializar: usar valores que nunca fueron cargados
- Confusión común: mezclar índice, posición mostrada al usuario y valor almacenado
Material de Clase
Presentaciones
- 📊 Arreglos
Práctico
Ver ejercicios
Ejercicio 1
Enunciado: Escribir un programa que lea 8 números enteros en un arreglo e imprima los elementos en orden inverso, sin usar un segundo arreglo.
Ejemplo: Si el arreglo contiene 1, 2, 3, 4, 5, 6, 7, 8, el programa debe imprimir 8, 7, 6, 5, 4, 3, 2, 1.
Ejercicio 2
Enunciado: Escribir un programa que llene un arreglo de 10 enteros con valores ingresados por el usuario, luego lea un valor a buscar e informe en qué posición (índice) se encuentra por primera vez. Si el valor no está en el arreglo, imprimir “No encontrado”.
Ejercicio 3
Enunciado: Escribir un programa que lea 10 números enteros en un arreglo e imprima cuántos son positivos, cuántos negativos y cuántos son cero.
Ejercicio 4
Enunciado: Escribir un programa que llene un arreglo de 8 enteros con valores ingresados por el usuario, encuentre los índices del elemento mayor y del menor, los intercambie y luego imprima el arreglo resultante.
Ejemplo: Si el arreglo contiene 6, 2, 9, 4, 5, 4, 3, 1, el programa debe imprimir 6, 2, 1, 4, 5, 4, 3, 9. El 2 y el 9 fueron intercambiados.
Ejercicio 5
Enunciado: Escribir un programa que llene un arreglo de 6 enteros, lo imprima, luego desplace todos los elementos una posición a la derecha (el último pasa a ser el primero) y lo imprima nuevamente.
Ejemplo: Si el arreglo contiene 1, 2, 3, 4, 5, 6, el programa debe imprimir 1, 2, 3, 4, 5, 6 y luego 6, 1, 2, 3, 4, 5.
Ejercicio 6
Enunciado: Escribir un programa que lea 10 notas enteras (entre 0 y 100) y cuente cuántas caen en cada uno de estos rangos: 0–24, 25–49, 50–74 y 75–100. Imprimir el conteo de cada rango. Usar un arreglo de 4 enteros para almacenar los conteos.
Ejercicio 7
Enunciado: Escribir un programa que llene un arreglo de 10 enteros con valores ingresados por el usuario, luego lea un número y cuente cuántas veces aparece en el arreglo. Imprimir el resultado.
Ejemplo: Si el arreglo contiene 3, 2, 3, 4, 5, 6, 7, 3, 8, 9 y el usuario ingresa 3, el programa debe imprimir 3.
Ejercicio 8
Enunciado: Escribir un programa que llene un arreglo de 6 enteros con valores ingresados por el usuario y determine si el arreglo es capicúa (es igual leído de izquierda a derecha que de derecha a izquierda). Imprimir “Es capicúa” o “No es capicúa”.
Ejemplo: Si el usuario ingresa 1, 2, 3, 2, 1, el programa debe imprimir “Es capicúa”.
Ejemplo: Si el usuario ingresa 1, 2, 3, 4, 5, el programa debe imprimir “No es capicúa”.
Recursos
Para Practicar
Bibliografía
- “El lenguaje de programación C” - Kernighan & Ritchie (Capítulo 5)
- “Cómo programar en C/C++” - Deitel & Deitel