ARREGLOS I - Instituto Politécnico Nacionalcoatl.cecyt9.ipn.mx/docs/poo/arreglos1.pdfLos arreglos...

Post on 18-Jan-2020

17 views 0 download

Transcript of ARREGLOS I - Instituto Politécnico Nacionalcoatl.cecyt9.ipn.mx/docs/poo/arreglos1.pdfLos arreglos...

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 sergioramirez23@yahoo.com.mx 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 sergioramirez23@yahoo.com.mx máximo a las 23:59 hr del día 5 de septiembre de 2014, con prueba de escritorio.