ARREGLOS I
• Razón de ser
• Computadora
• Programa
• Programador
• Análisis y solución de problemas (Metodología)
• Algoritmo
• Diagrama de flujo
Investigaron y estudiaron (¡comprendieron!)
• Clasificación de las computadoras
• Funciones de la memoria principal
• Unidades de medida de memoria
• Representación de textos, valores numéricos, imágenes y sonidos
• Clasificación del software (de sistema y de aplicación)
• Tipos lenguajes de programación (máquina, bajo nivel y alto nivel)
• Compiladores e intérpretes
• Paradigmas de programación
• Tipos de algoritmos
Evaluación del primer corte (que es el 30% de la evaluación total)
50 % examen
50 % tareas y actividades en clase
• Razón de ser
• Computadora
• Programa
• Programador
• Análisis y solución de problemas (Metodología)
• Algoritmo
• Diagrama de flujo
Herramientas (programación estructurada):
Fundamentos algebraicosEstructuras de controlTipos de datos “simples”
Tipos “estructurados” (arreglos, listas, árboles, etc..)
Tipos simples (primitivos): char, integer, float, boolean Elemental
Tipos de Datos Estructurados
Surge la necesidad de almacenar “algo” más elaborado (datos estructurados): palabras, fechas, directorios telefónicos…
Simples o Primitivos(bajo nivel)
Estructurados (alto nivel)
Estructura de datos (ED).- colección caracterizada por su organización y operaciones definidas en la misma.
ED estáticas.- si el tamaño que ocupa en memoria se define antes de la
ejecución del programa y no se puede modificar durante dicha ejecución (arreglos, registros, archivos, etc).
ED dinámicas.- no tienen las restricciones por el espacio en memoria que poseen las estáticas (listas, pilas, colas, árboles, grafos).
Simples v.s. Estructurados
En el tipo de dato simple cada variable representa un elemento, mientras que en el tipo estructurado un identificador (nombre) puede representar múltiples datos individuales , pudiendo cada uno de éstos ser referenciado individualmente.
Arreglo:= Conjunto finito y ordenado de elemento homogéneos.
(Almacena datos del mismo tipo)
(Los datos pueden ser seleccionados individualmente por medio de índices)
Los arreglos pueden ser unidimensionales (vectores) o multidimensionales (matrices), siendo el unidimensional el más simple.
Notación:
a1, a2, . . ., ai, …, an representación matemática de un arreglo unidimensional de n elementos llamado “a”
a[0], a[1] , … , a[i], … , a[n-1] representación en programación de un arreglo unidimensional de n elementos llamado “a” (en general el primer elemento inicia con el índice cero).
El número de elementos del arreglo se denomina rango.
Ejemplo de arreglo llamado Alumnos, con rango de 30 elementos:
1 Hugo
2 Paco
3 Luis
.. ..
i Martín
.. ..
30 Graciela
Consideremos al arreglo X de 8 elementos:
0 14.0
1 12.0
2 8.0
3 7.0
4 6.41
5 5.23
6 6.15
7 7.25
Algunas instrucciones que manipulan al vector X son:
Despliega (X[0])X [4] 45intSuma X[1] + X[3]intSuma intSuma + X[3]X [5] X [5] + 3.5X [6] X [1] + X [2]
Los índices pueden ser enteros, variables o expresiones enteras. Por lo tanto, si i 4,
X [i + 1] representa
X [i -2] representa
X [i + 3] representa
0 14.0
1 12.0
2 8.0
3 7.0
4 6.41
5 5.23
6 6.15
7 7.25
Los índices pueden ser enteros, variables o expresiones enteras. Por lo tanto, si i 4,
X [i + 1] representa 5.23
X [i -2] representa 8.0
X [i + 3] representa 7.25
0 14.0
1 12.0
2 8.0
3 7.0
4 6.41
5 5.23
6 6.15
7 7.25
Operaciones que se pueden realizar con arreglos son:
• Asignación
• Lectura/escritura
• Recorrido (acceso secuencial)
• Actualizar
• Búsqueda
• Ordenación *
Notación (de acuerdo al texto)
tipo
array [lim inf .. lim sup] de <tipo> : nombre_arreglo
Ejemplos:
tipo
array [0 .. 9] de integer : intEdades (arreglo de 10 elementosenteros llamado “intEdades”)
tipo
array [0 .. 49] de float : fltCalificaciones (arreglo de 50 elementos flotantes llamado “fltCalificaciones”)
Asignación
tipo
array [0 .. 4] de integer : intA
intA [4] 29 (asigna el valor de 29 al elemento 5 del arreglo intA)
intA [5] 29 (?)
Asignación / Recorrido
• Se pueden asignar valores a cada elemento del arreglo empleando estructuras repetitivas o incluso de selección:
intI = 0
Haz
intA [intI] 8
intI intI +1
mientras intI <= 4
Lectura/escritura
Leer (intA [3] ) , leer el elemento intA [3] del arreglo intA
Actualización Es la combinación de recorrido con asignación sobre valores previos.
intI = 0
Haz
intA [intI] intI
intI intI +1
mientras intI <= 4
intI = 0
Haz
intA [intI] 8
intI intI +1
mientras intI <= 4
Búsqueda.-Consiste en investigar la existencia de cierto elemento dentro de la colección.intI 0
boolBandera falso
Haz
intA [intI] intI
intI intI +1
mientras intI <= 4
Haz
si (intA [intI] == 3)
entonces Despliega “El 3 está en la posición ”+ intI + ” del arreglo ”
boolBandera verdadero
intI intI +1
mientras intI <= 4
si (boolBandera == falso)
entonces Despliega “El 3 no está en el arreglo ”
Ejercicios empleando arreglos unidimensionales (1):
1.- Inicializar los elementos de dos arreglos de enteros intA e intB de rango 50 convalores secuenciales. Sumar los correspondientes elementos de cada arreglo yalmacenar los resultado en los correspondientes elementos del vector intSuma.
2.- Leer 50 datos enteros proporcionados por el usuario. Determinar y desplegar: Lasuma, el promedio, el mayor , el menor de dichos datos.
3.- Aplicación a la física.- inicializar dos vectores (fltA y fltB) de rango 3 con datosflotantes dados por el usuario. Calcular y desplegar: (a) El vector fltSuma, (b) el vectorfltResta (fltA - fltB), (c) el producto punto entre fltA y fltB, y (d) el vector fltC, siendofltC el producto vectorial fltA X fltB.
Enviar individualmente a [email protected] máximo a las 23:59 hr deldía 2 de septiembre de 2014, con prueba de escritorio.
Ejercicios empleando arreglos unidimensionales (2):
Modelar la entrada de una frase dada por el usuario (el usuario proporciona el rango de dicha frase) como un arreglo de caracteres (ejemplo: “CECyT 9 Juan de Dios Bátiz” se modela como un arreglo de 26 caracteres contando espacios) y determinar.-
1.- Si la frase es un palíndromo (Anita lava la tina).
2.- Número de veces que aparece cada letra (sin distinguir mayúsculas de minúsculas) del alfabeto en la frase.
Enviar individualmente a [email protected] máximo a las 23:59 hr del día 5 de septiembre de 2014, con prueba de escritorio.