Computadoras y Programación · ENES Juriquilla · UNAM
Sesión 7 · Computadoras y Programación
Guardar un dato
es fácil. ¿Quinientos?
Arreglos y cadenas: muchas casillas, un solo nombre.
Con lo que ya sabes
Guardar 500 calificaciones
nota1 ← 9nota2 ← 8nota3 ← 10nota4 ← 7nota5 ← 6… 494 variables más …nota500 ← 8
Técnicamente funciona. Humanamente, no.
¿Y si una sola variable
tuviera varias casillas?
Arreglo
Un arreglo es una variable
con muchas casillas.
un nombre: notas
mismo tipo: números
tamaño fijo: 5
Índice
Se cuenta desde cero.
5 casillas, índices del 0 al 4.
El índice no es el lugar: es cuántas casillas te saltas desde la primera.
Declarar y usar
Arreglo notas[5]notas[0] ← 9notas[1] ← 8notas[2] ← 10notas[3] ← 7notas[4] ← 6ESCRIBIR notas[2]
Para que el usuario la llene: LEER notas[3].
Acceso por índice
notas[3] = 7
notas[0] = 9
notas[4] = 6
El número entre corchetes es la llave de la casilla.
Fuera de rango
¿Y la casilla 5?
No existe. El arreglo tiene 5 casillas: de la 0 a la 4.
En C no hay aviso: se lee basura o se rompe el programa.
Arreglo + PARA
PARA i DESDE 0 HASTA 4 HACER
ESCRIBIR notas[i]
FIN PARA
i empieza en 0
i termina en 4 (n − 1)
notas[i] cambia de casilla
HASTA 4, no HASTA 5: la última casilla es la 4.
Paso a paso · el diagrama corre
Sí, vuelve
ESCRIBIR notas[i]
i ← i + 1
notas[0] = 9
notas[1] = 8
notas[2] = 10
notas[3] = 7
notas[4] = 6
Pantalla981076
Ejemplo resuelto 1 · suma y promedio
suma ← 0
PARA i DESDE 0 HASTA 4 HACER
suma ← suma + notas[i]
FIN PARA
promedio ← suma / 5
ESCRIBIR promedio
suma ← 0 + 9 = 9
suma ← 9 + 8 = 17
suma ← 17 + 10 = 27
suma ← 27 + 7 = 34
suma ← 34 + 6 = 40
promedio = 40 / 5 = 8
Ejemplo resuelto 2 · buscar el mayor
mayor ← notas[0]
PARA i DESDE 1 HASTA 4 HACER
SI notas[i] > mayor ENTONCES
mayor ← notas[i]
FIN SI
FIN PARA
ESCRIBIR mayor
mayor ← notas[0] = 9
8 > 9 ? no · mayor = 9
10 > 9 ? sí · mayor = 10
7 > 10 ? no · mayor = 10
6 > 10 ? no · mayor = 10
El mayor es 10
¿Siempre un arreglo?
Estos dos no lo necesitan. Este sí.
No necesita arreglo
Imprimir del 1 al 20.
Cada número se usa y se suelta.
No necesita arreglo
Sumar hasta que escriban 0.
Solo importa el acumulado.
Sí necesita arreglo
¿Cuántas notas superan el promedio?
Primero las tienes todas; luego vuelves a cada una.
La pregunta: ¿voy a volver a mirar este dato?
Caracteres
Un carácter es un valor.
Una letra, un dígito o un símbolo — entre comillas simples.
Por dentro es un número: 'A' → 65 (ASCII).
Cadenas
Una cadena es un arreglo de caracteres.
'HOLA' = 4 letras + 1 cierre
palabra[2] → 'L'
Adelanto de C: char palabra[] = "HOLA"; ocupa 5 casillas.
Dos dimensiones
Una matriz es un arreglo de arreglos.
Arreglo tabla[3][4]
tabla[1][2] ← 5
Primero la fila, luego la columna. Las dos se cuentan desde 0.
Del aula al trabajo
Una imagen
es una matriz.
En mi trabajo con modelos de clasificación y segmentación de imágenes oftalmológicas, cada imagen entra al programa así: una tabla de números (una por canal de color) con filas y columnas.
Ilustración abstracta, no es un estudio real.
Gracias
Walter Rosales
CEO & Co-Founder, iGalenus
walter.rosales@igalenus.com
@walterr_rosales
walter-rosales.com