Clase Programación 3

Share Embed Donate


Short Description

Descripción: Clase 3 de Programación, Prof. Gonzalo Müller [email protected], Facultad de Ingenier&a...

Description

Programación

Clase 3. Composición de Estructuras Prof. Gonzalo Müller [email protected]

Facultad de Ingeniería Universidad Central de Venezuela

Clase Anterior



   

Representación de un algoritmo  Pseudo Código.  Diagramas de Flujo.  Diagramas de Rectangulares Estructurados. Estructura Secuencial. Estructura Selectiva:  Sencilla  Doble Estructura Repetitiva:  Mientras  Hacer Mientras Corrida en frío Programación – Prof. Gonzalo Müller – Clase 3 – GM - 2

Estructura Compuesta Es una combinación de estructuras secuenciales, condicionales y repetitivas.  Compuestas: 

Condicional Sencilla + Secuenciales



Condicional Doble + Secuenciales



Mientras + Secuenciales



Hacer Mientras + Secuenciales

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 3

Estructura Selectiva

 Estructura Condicional Sencilla: Se ejecutan cierta secuencia de instrucciones dependiendo de la condición dada. PC

DF

DRE

Si (Condición) {

Condición Paso 1 … Paso n

}

V

F

V

Paso 1

Paso 1 Paso n

Condición

... Paso n

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 4

...

Estructura Selectiva

 Estructura Condicional Sencilla: Se ejecutan cierta secuencia de instrucciones dependiendo de la condición dada. PC

DF

DRE

Si (Condición) {

Condición Paso 1 … Paso n

}

V

F

V

Paso 1

Paso 1 Paso n

Condición

... Paso n

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 5

...

Estructura Selectiva



Estructura Condicional Doble: Se ejecutan alguna de dos secuencias de instrucciones dependiendo de la condición dada. PC Si (Condición) { Paso 1 … Paso n } sino { Paso 1’ … Paso n’ }

DF V

Condición

DRE F V

Paso 1 Paso n

Paso 1’ Paso n’

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 6

Condición

F

Paso 1

Paso 1’

...

...

Paso n

Paso n’

Estructura Selectiva Ejemplo: Construir el DF, DRE y PC del algoritmo para obtener las raíces de una ecuación cuadrática.

Fase 1: Análisis y Diseño: DES, DF o DRE

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 7

Estructura Repetitiva

 Estructura Repetitiva Hacer Mientras: Una secuencia

de paso se repite en forma consecutiva mientras se cumpla una condición dada.

PC

DF

Hacer { Paso 1 … Paso n }

Paso 1

Mientras (Condición)

DRE

Paso 1

Paso n

… Paso n

Condición

V

F Programación – Prof. Gonzalo Müller – Clase 3 – GM - 8

Mientras (Condición)

Estructura Repetitiva

 Estructura Repetitiva Mientras: Una secuencia de paso se repite en forma consecutiva dependiendo de una condición dada.

PC Mientras (Condición ) { Paso 1 … Paso n }

DF

DRE

Condición

F

V

Paso 1 Paso n

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 9

Mientras (Condición) Paso 1 … Paso n

Estructura Repetitiva Ejemplo: Construir el DF, DRE y PC del algoritmo para presentar los primeros 4 números enteros a partir de 100. Y realizar una corrida en frío.

Fase 1: Análisis y Diseño: DES, DF o DRE una sola variable

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 10

Estructura Repetitiva Ejemplo: Construir el DF, DRE y PC del algoritmo para presentar los primeros 4 números enteros a partir de 100. Y realizar una corrida en frío. Números Escribir 100 Escribir 101 Escribir 102 Escribir 103 Fin

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 11

Estructura Repetitiva Ejemplo: Construir el DF, DRE y PC del algoritmo para presentar los primeros 4 números enteros a partir de 100. Y realizar una corrida en frío. Números Escribir 100 Escribir 101 Escribir 102 Escribir 103 Fin

Los primeros 100 números ?

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 12

Estructura Repetitiva Ejemplo: Construir el DF, DRE y PC del algoritmo para presentar los primeros 4 números enteros a partir de 100. Y realizar una corrida en frío. 2º DRE 1º DRE

Números

Números

n = 100

Escribir 100

Escribir n

Escribir 101

n=n+1

Escribir 102

Escribir n

Escribir 103

n=n+1

Fin

Escribir n n=n+1 Escribir n Fin

Los primeros 100 números ? Programación – Prof. Gonzalo Müller – Clase 3 – GM - 13

Estructura Repetitiva Ejemplo: Construir el DF, DRE y PC del algoritmo para presentar los primeros 4 números enteros a partir de 100. Y realizar una corrida en frío. 2º DRE 1º DRE

Números

Números

n = 100

Escribir 100

Escribir n

Escribir 101

n=n+1

Escribir 102

Escribir n

Escribir 103

n=n+1

Fin

Escribir n n=n+1 Escribir n Fin Programación – Prof. Gonzalo Müller – Clase 3 – GM - 14

Estructura Repetitiva Ejemplo: Construir el DF, DRE y PC del algoritmo para presentar los primeros 4 números enteros a partir de 100. Y realizar una corrida en frío. 2º DRE 1º DRE

Números

Números

n = 100

Escribir 100

Escribir n

Escribir 101

n=n+1

Escribir 102

Escribir n

Escribir 103

n=n+1

Fin

Escribir n n=n+1 Escribir n Fin Programación – Prof. Gonzalo Müller – Clase 3 – GM - 15

3º DRE Números n = 100 Escribir n n=n+1 Mientras ( Fin

)

Estructura Repetitiva Ejemplo: Construir el DF, DRE y PC del algoritmo para presentar los primeros 4 números enteros a partir de 100. Y realizar una corrida en frío. 2º DRE 1º DRE

Números

Números

n = 100

Escribir 100

Escribir n

Escribir 101

n=n+1

Escribir 102

Escribir n

Escribir 103

n=n+1

Fin

Escribir n

Mientras (n < 104)

n=n+1

Fin

Escribir n Fin Programación – Prof. Gonzalo Müller – Clase 3 – GM - 16

3º DRE Números n = 100 Escribir n n=n+1

Estructura Condicional Compuesta Es una combinación de estructuras condicionales sencillas y dobles.  Compuestas: Sencillas + Dobles 

Anidadas



Cascadas

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 17

Estructura Condicional Compuesta

 Estructura Condicional Anidada: PC Si (Condición 1) { Paso 1 … Paso n } sino Si (Condición 2) { Paso 1’ … Paso n’ }

DF

V

Condición 1

Paso 1 Paso n

F

Condición 2 V

Paso 1’ Paso n’

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 18

F

Estructura Condicional Compuesta DRE

Condición 1

V

Paso 1

V

Condición 2



Paso 1’

Paso n

… Paso n’

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 19

F

F

Estructura Condicional Compuesta Ejemplo: Construir un algoritmo para convertir un número dado: sume 2 si es negativo o reste 1 si es positivo.

Fase 1: Análisis y Diseño: DES, DF o DRE una sola variable

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 20

Estructura Condicional Compuesta



Estructura Condicional en Cascada: PC Si (Condición 1) { Secuencia 1 } sino Si (Condición 2) { Secuencia 1’ } sino { Secuencia 1’’ }

DF

Condición 1

V

Secuencia 1

F

Condición 2 F

Secuencia 1’’

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 21

V

Secuencia 1’

Estructura Condicional Compuesta DRE

Condición 1

V

Paso 1

V

F

Condición 2

F



Paso 1’

Paso 1’’

Paso n





Paso n’

Paso n’’

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 22

Estructura Condicional Compuesta Ejemplo: Construir un algoritmo para convertir un número dado: sume 2 si es negativo, reste 1 si es positivo o asigne 10 si es 0.

Fase 1: Análisis y Diseño: DES, DF o DRE una sola variable

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 23

Estructura Condicional Compuesta Ejemplo: Construir el diagrama de flujo para obtener el mayor de 2 números o indique si son iguales.

Fase 1: Análisis y Diseño: DES, DF o DRE

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 24

Estructura Repetitiva Anidada Es una combinación de estructuras repetitivas. PC

DF

Hacer { Hacer

Paso 1

{ …

Paso n

Paso n Condición1

} Mientras (Condición1) } Mientras (Condición2)

F

Condición2 F

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 25

V

V

Estructura Repetitiva Anidada PC

DRE

Mientras (Condición1) { Hacer { … Paso n } Mientras (Condición2)

Mientras (Condición1) Paso 1 … Paso n Mientras (Condición2)

} Programación – Prof. Gonzalo Müller – Clase 3 – GM - 26

Estructura Repetitiva Anidada Ejemplo: Construir un algoritmo que dado N escriba la siguiente secuencia: 1

2

3



N–1

1

2

3



N–1

N

… 1

Fase 1: Análisis y Diseño: DES, DF o DRE Programación – Prof. Gonzalo Müller – Clase 3 – GM - 27

Representación de un algoritmo  Las líneas siempre debe ir del lado derecho.







DERECHA • Condicional Sencilla

DERECHA • Repetitiva Hacer Mientras

• Repetitiva Mientras

IZQUIERDA ÚNICA EXCEPCIÓN • Condicional Doble

LAS LÍNEAS DE FLUJO NO PUEDEN CRUZARSE Programación – Prof. Gonzalo Müller – Clase 3 – GM - 28

Algoritmo Propio Es aquel algoritmo características:

que

posee

la

siguientes

 Tiene un punto de entrada.  Tiene un sólo punto de salida.  Todos los posibles caminos llevan desde el punto de entrada al punto de salida.  Termina tras un número finito de pasos.  No tiene bucles infinitos. Programación – Prof. Gonzalo Müller – Clase 3 – GM - 29

Algoritmo Propio Es aquel algoritmo características:

que

posee

la

siguientes

 Debe producir al menos una salida o efecto.  No contiene sentencias muertas.  No existen ambigüedades. Teorema de Böhm-Jacopini, 1966

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 30

Algoritmo Propio  Puede ser diseño utilizando únicamente tres tipos de estructuras: 

Secuencial



Selectiva



Repetitiva



El PC y DRE facilitan el desarrollo de Algoritmos Propios.

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 31

Algoritmo Propio Ejemplo: El siguiente no es un algoritmo propio: Paso 1: Hacer k = 1 Paso 2: Si (no estamos en la librería k) Paso 2.1: Salir del lugar donde estamos. Paso 2.2: Dirigirnos a la librería k. Paso 3: Solicitar el libro Paso 4: Si (no lo tiene) Paso 4.1: Hacer k = k + 1 Paso 4.2: Ir al Paso 2 Paso 5: Cancelar el libro, Detener Programación – Prof. Gonzalo Müller – Clase 3 – GM - 32

Bucle infinito

Algoritmo Propio Ejemplo: Este tampoco es un algoritmo propio: Paso 1: Hacer una lista de n librerías Paso 2: Hacer k = 1 Paso 3: Si ya visitamos todas las librerías (k > n), entonces: Paso 3.1: No es posible encontrar el libro, Detener Paso 4: Si no estamos en la librería k, entonces: Paso 4.1: Salir del lugar donde estamos. Paso 4.2: Dirigirnos a la librería k. Paso 5: Solicitar el libro Puntos de salida Paso 6: Si no lo tiene, entonces: Paso 6.1: Hacer k = k + 1 Paso 6.2: Ir al Paso 3 Paso 7: Cancelar el libro, Detener Programación – Prof. Gonzalo Müller – Clase 3 – GM - 33

Constantes y Variables

 Constantes: Tienen un valor fijo a lo largo del algoritmo.

 Variables: Pueden tomar diferentes valores a lo largo del algoritmo. Ejemplo 3.6: Constantes

x =

−b ±

2

b − 4 ac Variables 2a

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 34

Asignación Establece un valor para una variable:  Un valor constante.  El valor de otra variable.  Resultado de una expresión aritmética o lógica.  Se utiliza el operador asignación = para la asignación: Variable = Valor Siempre a la izquierda

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 35

Asignación Ejemplo: A = 24

← Correcto

A=B

← Correcto (Asigna el valor de B a A)

A = (B + 1)/2 ← Correcto 24 = A

← Incorrecto

B=A

← Correcto (Asigna el valor de A a B)

(B + 1)/2 = A ← Incorrecto Programación – Prof. Gonzalo Müller – Clase 3 – GM - 36

Usos de las Variables

 Entre los usos más comunes de las que se utilizan en un algoritmo se encuentran:  Contadores.  Acumuladores.

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 37

Usos de las Variables

 Contadores: Son variables cuyo valor se aumenta o disminuye un valor constante cada vez que se produce un determinado suceso o acción.  Son variables enteras.  Generalmente se utiliza en estructuras repetitivas. Ejemplo:  Número de estudiantes que retiran un bandeja en el comedor universitario.  Número de números enteros pares encontrados.  Número de intersecciones entre curvas convexas. Programación – Prof. Gonzalo Müller – Clase 3 – GM - 38

Usos de las Variables

 El uso de los contadores consta de dos operaciones:  Inicialización: se le asigna un valor inicial a la variable. Variable = Valor Inicial 

Usualmente antes del bucle.

 Conteo: Dadas las condiciones necesarias la variable se aumenta o disminuye un valor constante. Variable = Variable ± Constante

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 39

Usos de las Variables

 Acumuladores: Son variables cuyo valor se aumenta o disminuye un valor determinado continuamente a lo largo de un proceso dado. Ejemplo:  Cantidad de calorías consumidas en un día.  Cantidad de dinero ahorrado en un mes.  Cantidad de puntos acumulados en la materia de programación.

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 40

Usos de las Variables

 El uso de los acumuladores consta de dos operaciones:  Inicialización: se le asigna un valor inicial a la variable. Variable = Valor Inicial 

Usualmente al comienzo del proceso.

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 41

Usos de las Variables  Acumulación: Dadas las condiciones necesarias se la variable se aumenta o disminuye un valor variable. Variable = Variable ± Variable2 Variable = Variable * Variable2

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 42

Usos de las Variables Ejemplo: La cantidad de bandejas utilizadas en el comedor:

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 43

Usos de las Variables Ejemplo: La cantidad de bandejas utilizadas en el comedor: Variable → bandeja

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 44

Usos de las Variables Ejemplo: La cantidad de bandejas utilizadas en el comedor: Variable → bandeja Inicialmente se han utilizado 0 bandejas: bandeja = 0

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 45

Usos de las Variables Ejemplo: La cantidad de bandejas utilizadas en el comedor: Variable → bandeja Inicialmente se han utilizado 0 bandejas: bandeja = 0 A medida que los usuarios toman una bandeja incrementamos el valor de bandeja. bandeja = bandeja + 1

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 46

Usos de las Variables Ejemplo: La cantidad de bandejas utilizadas en el comedor: Variable → bandeja

Contador

Inicialmente se han utilizado 0 bandejas: bandeja = 0

Inicialización

A medida que los usuarios toman una bandeja incrementamos el valor de bandeja. bandeja = bandeja + 1

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 47

Conteo

Usos de las Variables

 Generalmente se utilizan en estructuras repetitivas: Inicialización

Variable = Valor Inicial

… … Conteo o Acumulación Mientras (Condición)

Variable = Variable ± Constante ó Variable = Variable ± Variable2 Variable = Variable * Variable2

Establece la parada del bucle cuando: • Se satisface una condición dada • Se ha alcanzado el valor deseado para el Contador o Acumulador Programación – Prof. Gonzalo Müller – Clase 3 – GM - 48

Usos de las Variables

 Generalmente se utilizan en estructuras repetitivas: Inicialización

Variable = Valor Inicial



Nuevo Valor



Variable = Variable ± Constante ó

Conteo o Acumulación Mientras (Condición)

Viejo Valor

Variable = Variable ± Variable2 Variable = Variable * Variable2 Nuevo Valor

Viejo Valor

Establece la parada del bucle cuando: • Se satisface una condición dada • Se ha alcanzado el valor deseado para el Contador o Acumulador Programación – Prof. Gonzalo Müller – Clase 3 – GM - 49

Usos de las Variables

 Generalmente se utilizan en estructuras repetitivas: Inicialización

Variable = Valor Inicial









Conteo o Acumulación

Variable = Variable ± Variable2

Mientras (Condición)

Mientras (Condición)

Se satisface una condición dada Programación – Prof. Gonzalo Müller – Clase 3 – GM - 50

Usos de las Variables

 Generalmente se utilizan en estructuras repetitivas: Inicialización

Variable = Valor Inicial









Conteo o Acumulación

Variable = Variable ± Constante

Mientras (Condición)

Mientras (Variable ? Valor)

Se ha alcanzado el valor deseado para el Contador o Acumulador Programación – Prof. Gonzalo Müller – Clase 3 – GM - 51

Variables

 Lista de Variables: Una vez desarrollado el algoritmo es útil para la posterior implementación en el lenguaje construir una lista con todas las variables utilizadas en el algoritmo. Variable

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 52

Variables Ejemplo: Desarrollar un algoritmo para calcular la media armónica de n números positivos.

Fase 1: Análisis y Diseño: DES, DF o DRE y LV Identificar contadores y acumuladores.

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 53

Variables Ejemplo: Desarrollar un algoritmo para calcular la media armónica de n números positivos.

Fase 1: Análisis y Diseño: DES, DF o DRE y LV Identificar contadores y acumuladores. Teoría Asociada:

Leyendo N

media armónica: n/[1/x1+1/x2+···+1/xn] Programación – Prof. Gonzalo Müller – Clase 3 – GM - 54

Sin leer N

Ejercicio 3.1 Para cada uno de los siguientes problemas: a) Comer una hamburguesa. b) Leer un libro. c) Bajar de peso. e) Elaborar un emparedado. f) Comer en el comedor universitario. g) Comprar el Libro 6 de Harry Potter. Fase 1: Análisis y Diseño: DES, DF, DRE y LV. Señalar en DF o DRE: Estructuras Básicas de Programación. Realizar una corrida en frío. Programación – Prof. Gonzalo Müller – Clase 3 – GM - 55

Ejercicio 3.2 Para cada uno de los siguientes problemas: a) Restar el mayor del menor de 2 números b) Sumar 2 números si son iguales y de lo contrario, reste el mayor del menor. c) Dividir 2 números (0?), el menor entre el mayor. Fase 1: Análisis y Diseño: DES, DF, DRE y LV. Señalar en DF o DRE: Estructuras, Contadores, Acumuladores, Inicialización, Conteo y Acumulación. Realizar una corrida en frío. Programación – Prof. Gonzalo Müller – Clase 3 – GM - 56

Ejercicio 3.2 Para cada uno de los siguientes problemas: d) Presentar la secuencia de los N números enteros que preceden al 100: 100, 99, 98, 97, ... e) Leer y escribir números hasta que el leído sea mayor que 5. f) Disminuir un número de 2 en 2 hasta que este sea negativo, presentado la secuencia en la salida. Fase 1: Análisis y Diseño: DES, DF, DRE y LV. Señalar en DF o DRE: Estructuras, Contadores, Acumuladores, Inicialización, Conteo y Acumulación. Realizar una corrida en frío.

Programación – Prof. Gonzalo Müller – Clase 3 – GM - 57

Ejercicio 3.2 Para cada uno de los siguientes problemas: g) Dados 2 números presentar la secuencia de números entre el 1º número y el 2º número. h) Sumar números hasta que los últimos dos números leídos sean negativos. Fase 1: Análisis y Diseño: DES, DF, DRE y LV. Señalar en DF o DRE: Estructuras, Contadores, Acumuladores, Inicialización, Conteo y Acumulación Realizar una corrida en frío. Programación – Prof. Gonzalo Müller – Clase 3 – GM - 58

Ejercicio 3.3 Para cada uno de los siguientes problemas: a) Promediar los negativos y promediar los no negativos de un conjunto de números dados. b) Hallar el producto de los negativos y el producto de los positivos de un conjunto de números dados. Fase 1: Análisis y Diseño: DES, DF, DRE y LV. Señalar en DF o DRE: Estructuras, Contadores, Acumuladores, Inicialización, Conteo y Acumulación Realizar una corrida en frío. Programación – Prof. Gonzalo Müller – Clase 3 – GM - 59

Resumen

 Combinación de Estructuras: Condicionales +

Secuenciales, Repetitivas + Secuenciales, Condicional Compuestas: Anidadas y Cascadas, Estructura Repetitiva Anidadas.  Algoritmos Propios.  Constantes y Variables.  Asignación: =.  Usos de las Variables:  Contadores y Acumuladores.  Lista de Variables. Programación – Prof. Gonzalo Müller – Clase 3 – GM - 60

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF