Anda di halaman 1dari 60

Programacin

Clase 3. Composicin de Estructuras


Prof. Gonzalo Mller
gmullerb@mail.com

Facultad de Ingeniera Universidad Central de Venezuela

Clase Anterior
Representacin de un algoritmo Pseudo Cdigo. Diagramas de Flujo. Diagramas de Rectangulares Estructurados. Estructura Secuencial. Estructura Selectiva: Sencilla Doble Estructura Repetitiva: Mientras Hacer Mientras Corrida en fro
Programacin Prof. Gonzalo Mller Clase 3 GM - 2

Estructura Compuesta
Es una combinacin de estructuras secuenciales, condicionales y repetitivas. Compuestas:
Condicional Sencilla + Secuenciales Condicional Doble + Secuenciales Mientras + Secuenciales Hacer Mientras + Secuenciales

Programacin Prof. Gonzalo Mller Clase 3 GM - 3

Estructura Selectiva
Estructura Condicional Sencilla: Se ejecutan cierta secuencia de instrucciones dependiendo de la condicin dada.
PC
Si (Condicin) { Paso 1 Paso n }
V

DF
Condicin
F V

DRE
Condicin

Paso 1 ... Paso n ...

Paso 1 Paso n

Programacin Prof. Gonzalo Mller Clase 3 GM - 4

Estructura Selectiva
Estructura Condicional Sencilla: Se ejecutan cierta secuencia de instrucciones dependiendo de la condicin dada.
PC
Si (Condicin) { Paso 1 Paso n }
V

DF
Condicin
F V

DRE
Condicin

Paso 1 ... Paso n ...

Paso 1 Paso n

Programacin Prof. Gonzalo Mller Clase 3 GM - 5

Estructura Selectiva
Estructura Condicional Doble: Se ejecutan alguna de dos secuencias de instrucciones dependiendo de la condicin dada.
PC
Si (Condicin) { Paso 1 Paso n } sino { Paso 1 Paso n }
V

DF
F V

DRE

Condicin

Condicin

Paso 1 Paso n

Paso 1 Paso n

Paso 1 ... Paso n

Paso 1 ... Paso n

Programacin Prof. Gonzalo Mller Clase 3 GM - 6

Estructura Selectiva
Ejemplo: Construir el DF, DRE y PC del algoritmo para obtener las races de una ecuacin cuadrtica.

Fase 1: Anlisis y Diseo: DES, DF o DRE

Programacin Prof. Gonzalo Mller Clase 3 GM - 7

Estructura Repetitiva
Estructura Repetitiva Hacer Mientras: Una secuencia de paso se repite en forma consecutiva mientras se cumpla una condicin dada.
PC
Hacer { Paso 1 Paso n } Mientras (Condicin)

DF
Paso 1 Paso n Condicin
F
Programacin Prof. Gonzalo Mller Clase 3 GM - 8

DRE

Paso 1 Paso n
V

Mientras (Condicin)

Estructura Repetitiva
Estructura Repetitiva Mientras: Una secuencia de paso se repite en forma consecutiva dependiendo de una condicin dada.
PC
Mientras (Condicin ) { Paso 1 Paso n }

DF
Condicin
V F

DRE

Mientras (Condicin) Paso 1 Paso n

Paso 1 Paso n

Programacin Prof. Gonzalo Mller Clase 3 GM - 9

Estructura Repetitiva
Ejemplo: Construir el DF, DRE y PC del algoritmo para presentar los primeros 4 nmeros enteros a partir de 100. Y realizar una corrida en fro.

Fase 1: Anlisis y Diseo: DES, DF o DRE


una sola variable

Programacin Prof. Gonzalo Mller Clase 3 GM - 10

Estructura Repetitiva
Ejemplo: Construir el DF, DRE y PC del algoritmo para presentar los primeros 4 nmeros enteros a partir de 100. Y realizar una corrida en fro.
Nmeros Escribir 100 Escribir 101 Escribir 102 Escribir 103 Fin

Programacin Prof. Gonzalo Mller Clase 3 GM - 11

Estructura Repetitiva
Ejemplo: Construir el DF, DRE y PC del algoritmo para presentar los primeros 4 nmeros enteros a partir de 100. Y realizar una corrida en fro.
Nmeros Escribir 100 Escribir 101 Escribir 102 Escribir 103 Fin

Los primeros 100 nmeros ?

Programacin Prof. Gonzalo Mller Clase 3 GM - 12

Estructura Repetitiva
Ejemplo: Construir el DF, DRE y PC del algoritmo para presentar los primeros 4 nmeros enteros a partir de 100. Y realizar una corrida en fro. 2 DRE
1 DRE
Nmeros Escribir 100 Escribir 101 Escribir 102 Escribir 103 Fin Nmeros n = 100 Escribir n n=n+1 Escribir n n=n+1 Escribir n n=n+1 Escribir n Fin

Los primeros 100 nmeros ?


Programacin Prof. Gonzalo Mller Clase 3 GM - 13

Estructura Repetitiva
Ejemplo: Construir el DF, DRE y PC del algoritmo para presentar los primeros 4 nmeros enteros a partir de 100. Y realizar una corrida en fro. 2 DRE
1 DRE
Nmeros Escribir 100 Escribir 101 Escribir 102 Escribir 103 Fin Nmeros n = 100 Escribir n n=n+1 Escribir n n=n+1 Escribir n n=n+1 Escribir n Fin
Programacin Prof. Gonzalo Mller Clase 3 GM - 14

Estructura Repetitiva
Ejemplo: Construir el DF, DRE y PC del algoritmo para presentar los primeros 4 nmeros enteros a partir de 100. Y realizar una corrida en fro. 2 DRE
1 DRE
Nmeros Escribir 100 Escribir 101 Escribir 102 Escribir 103 Fin Nmeros n = 100 Escribir n n=n+1 Escribir n n=n+1 Escribir n n=n+1 Escribir n Fin
Programacin Prof. Gonzalo Mller Clase 3 GM - 15

3 DRE
Nmeros 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 nmeros enteros a partir de 100. Y realizar una corrida en fro. 2 DRE
1 DRE
Nmeros Escribir 100 Escribir 101 Escribir 102 Escribir 103 Fin Nmeros n = 100 Escribir n n=n+1 Escribir n n=n+1 Escribir n n=n+1 Escribir n Fin
Programacin Prof. Gonzalo Mller Clase 3 GM - 16

3 DRE
Nmeros n = 100 Escribir n n=n+1 Mientras (n < 104) Fin

Estructura Condicional Compuesta


Es una combinacin de estructuras condicionales sencillas y dobles. Compuestas: Sencillas + Dobles
Anidadas Cascadas

Programacin Prof. Gonzalo Mller Clase 3 GM - 17

Estructura Condicional Compuesta


Estructura Condicional Anidada:
PC
Si (Condicin 1) { Paso 1 Paso n } sino Si (Condicin 2) { Paso 1 Paso n }

DF

Condicin 1

Paso 1 Paso n

Condicin 2
V

Paso 1 Paso n

Programacin Prof. Gonzalo Mller Clase 3 GM - 18

Estructura Condicional Compuesta


DRE

Condicin 1 Paso 1 Paso n Condicin 2

Paso 1 Paso n

Programacin Prof. Gonzalo Mller Clase 3 GM - 19

Estructura Condicional Compuesta


Ejemplo: Construir un algoritmo para convertir un nmero dado: sume 2 si es negativo o reste 1 si es positivo.

Fase 1: Anlisis y Diseo: DES, DF o DRE


una sola variable

Programacin Prof. Gonzalo Mller Clase 3 GM - 20

Estructura Condicional Compuesta


Estructura Condicional en Cascada:
PC Si (Condicin 1) { Secuencia 1 } sino Si (Condicin 2) { Secuencia 1 } sino { Secuencia 1 } DF

Condicin 1
F

Secuencia 1

Condicin 2
F

Secuencia 1

Secuencia 1

Programacin Prof. Gonzalo Mller Clase 3 GM - 21

Estructura Condicional Compuesta


DRE

Condicin 1 Paso 1 Paso n Condicin 2

Paso 1 Paso n

Paso 1 Paso n

Programacin Prof. Gonzalo Mller Clase 3 GM - 22

Estructura Condicional Compuesta


Ejemplo: Construir un algoritmo para convertir un nmero dado: sume 2 si es negativo, reste 1 si es positivo o asigne 10 si es 0.

Fase 1: Anlisis y Diseo: DES, DF o DRE


una sola variable

Programacin Prof. Gonzalo Mller Clase 3 GM - 23

Estructura Condicional Compuesta


Ejemplo: Construir el diagrama de flujo para obtener el mayor de 2 nmeros o indique si son iguales.

Fase 1: Anlisis y Diseo: DES, DF o DRE

Programacin Prof. Gonzalo Mller Clase 3 GM - 24

Estructura Repetitiva Anidada


Es una combinacin de estructuras repetitivas.
PC
Hacer { Hacer { Paso n } Mientras (Condicin1) } Mientras (Condicin2)
Programacin Prof. Gonzalo Mller Clase 3 GM - 25

DF

Paso 1 Paso n Condicin1


F V

Condicin2
F

Estructura Repetitiva Anidada


PC
Mientras (Condicin1) { Hacer { Paso n } Mientras (Condicin2) }
Programacin Prof. Gonzalo Mller Clase 3 GM - 26

DRE

Mientras (Condicin1) Paso 1 Paso n Mientras (Condicin2)

Estructura Repetitiva Anidada


Ejemplo: Construir un algoritmo que dado N escriba la siguiente secuencia:
1 1 1 2 2 3 3 N1 N1 N

Fase 1: Anlisis y Diseo: DES, DF o DRE


Programacin Prof. Gonzalo Mller Clase 3 GM - 27

Representacin de un algoritmo
Las lneas siempre debe ir del lado derecho.

DERECHA Repetitiva Hacer Mientras

DERECHA Condicional Sencilla Repetitiva Mientras

IZQUIERDA NICA EXCEPCIN Condicional Doble

LAS LNEAS DE FLUJO NO PUEDEN CRUZARSE


Programacin Prof. Gonzalo Mller Clase 3 GM - 28

Algoritmo Propio
Es aquel algoritmo caractersticas: que posee la siguientes

Tiene un punto de entrada. Tiene un slo punto de salida. Todos los posibles caminos llevan desde el punto de entrada al punto de salida. Termina tras un nmero finito de pasos. No tiene bucles infinitos.
Programacin Prof. Gonzalo Mller Clase 3 GM - 29

Algoritmo Propio
Es aquel algoritmo caractersticas: que posee la siguientes

Debe producir al menos una salida o efecto. No contiene sentencias muertas. No existen ambigedades.
Teorema de Bhm-Jacopini, 1966

Programacin Prof. Gonzalo Mller Clase 3 GM - 30

Algoritmo Propio
Puede ser diseo utilizando nicamente tres tipos de estructuras:
Secuencial Selectiva Repetitiva El PC y DRE facilitan el desarrollo de Algoritmos Propios.

Programacin Prof. Gonzalo Mller 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 librera k) Paso 2.1: Salir del lugar donde estamos. Paso 2.2: Dirigirnos a la librera 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
Programacin Prof. Gonzalo Mller Clase 3 GM - 32

Bucle infinito

Algoritmo Propio
Ejemplo: Este tampoco es un algoritmo propio: Paso 1: Hacer una lista de n libreras Paso 2: Hacer k = 1 Paso 3: Si ya visitamos todas las libreras (k > n), entonces: Paso 3.1: No es posible encontrar el libro, Detener Paso 4: Si no estamos en la librera k, entonces: Paso 4.1: Salir del lugar donde estamos. Paso 4.2: Dirigirnos a la librera 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
Programacin Prof. Gonzalo Mller 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 4 ac Variables 2a

Programacin Prof. Gonzalo Mller Clase 3 GM - 34

Asignacin
Establece un valor para una variable: Un valor constante. El valor de otra variable. Resultado de una expresin aritmtica o lgica. Se utiliza el operador asignacin = para la asignacin: Variable = Valor
Siempre a la izquierda

Programacin Prof. Gonzalo Mller Clase 3 GM - 35

Asignacin
Ejemplo: A = 24 A=B Correcto Correcto (Asigna el valor de B a A)

A = (B + 1)/2 Correcto 24 = A B=A Incorrecto Correcto (Asigna el valor de A a B)

(B + 1)/2 = A Incorrecto
Programacin Prof. Gonzalo Mller Clase 3 GM - 36

Usos de las Variables


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

Programacin Prof. Gonzalo Mller 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 accin. Son variables enteras. Generalmente se utiliza en estructuras repetitivas. Ejemplo: Nmero de estudiantes que retiran un bandeja en el comedor universitario. Nmero de nmeros enteros pares encontrados. Nmero de intersecciones entre curvas convexas.
Programacin Prof. Gonzalo Mller Clase 3 GM - 38

Usos de las Variables


El uso de los contadores consta de dos operaciones: Inicializacin: 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

Programacin Prof. Gonzalo Mller 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 caloras consumidas en un da. Cantidad de dinero ahorrado en un mes. Cantidad de puntos acumulados en la materia de programacin.

Programacin Prof. Gonzalo Mller Clase 3 GM - 40

Usos de las Variables


El uso de los acumuladores consta de dos operaciones: Inicializacin: se le asigna un valor inicial a la variable. Variable = Valor Inicial
Usualmente al comienzo del proceso.

Programacin Prof. Gonzalo Mller Clase 3 GM - 41

Usos de las Variables


Acumulacin: Dadas las condiciones necesarias se la variable se aumenta o disminuye un valor variable. Variable = Variable Variable2 Variable = Variable * Variable2

Programacin Prof. Gonzalo Mller Clase 3 GM - 42

Usos de las Variables


Ejemplo: La cantidad de bandejas utilizadas en el comedor:

Programacin Prof. Gonzalo Mller Clase 3 GM - 43

Usos de las Variables


Ejemplo: La cantidad de bandejas utilizadas en el comedor: Variable bandeja

Programacin Prof. Gonzalo Mller 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

Programacin Prof. Gonzalo Mller 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

Programacin Prof. Gonzalo Mller Clase 3 GM - 46

Usos de las Variables


Ejemplo: La cantidad de bandejas utilizadas en el comedor: Variable bandeja
Contador Inicializacin

Inicialmente se han utilizado 0 bandejas: bandeja = 0 A medida que los usuarios toman una bandeja incrementamos el valor de bandeja. bandeja = bandeja + 1
Conteo

Programacin Prof. Gonzalo Mller Clase 3 GM - 47

Usos de las Variables


Generalmente se utilizan en estructuras repetitivas:
Inicializacin Conteo o Acumulacin Mientras (Condicin)
Variable = Variable Constante
Variable = Variable Variable2 Variable = Variable * Variable2

Variable = Valor Inicial

Establece la parada del bucle cuando: Se satisface una condicin dada Se ha alcanzado el valor deseado para el Contador o Acumulador
Programacin Prof. Gonzalo Mller Clase 3 GM - 48

Usos de las Variables


Generalmente se utilizan en estructuras repetitivas:
Inicializacin Conteo o Acumulacin Mientras (Condicin)
Variable = Valor Inicial
Nuevo Valor Viejo Valor

Variable = Variable Constante


Variable = Variable Variable2 Variable = Variable * Variable2 Nuevo Valor Viejo Valor

Establece la parada del bucle cuando: Se satisface una condicin dada Se ha alcanzado el valor deseado para el Contador o Acumulador
Programacin Prof. Gonzalo Mller Clase 3 GM - 49

Usos de las Variables


Generalmente se utilizan en estructuras repetitivas:
Inicializacin Conteo o Acumulacin Mientras (Condicin) Variable = Valor Inicial Variable = Variable Variable2 Mientras (Condicin)

Se satisface una condicin dada


Programacin Prof. Gonzalo Mller Clase 3 GM - 50

Usos de las Variables


Generalmente se utilizan en estructuras repetitivas:
Inicializacin Conteo o Acumulacin Mientras (Condicin) Variable = Valor Inicial Variable = Variable Constante Mientras (Variable ? Valor)

Se ha alcanzado el valor deseado para el Contador o Acumulador


Programacin Prof. Gonzalo Mller Clase 3 GM - 51

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

Programacin Prof. Gonzalo Mller Clase 3 GM - 52

Variables
Ejemplo: Desarrollar un algoritmo para calcular la media armnica de n nmeros positivos.

Fase 1: Anlisis y Diseo: DES, DF o DRE y LV Identificar contadores y acumuladores.

Programacin Prof. Gonzalo Mller Clase 3 GM - 53

Variables
Ejemplo: Desarrollar un algoritmo para calcular la media armnica de n nmeros positivos.

Fase 1: Anlisis y Diseo: DES, DF o DRE y LV Identificar contadores y acumuladores.


Teora Asociada: Leyendo N
Programacin Prof. Gonzalo Mller Clase 3 GM - 54

media armnica: n/[1/x1+1/x2+

+1/xn]

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: Anlisis y Diseo: DES, DF, DRE y LV. Sealar en DF o DRE: Estructuras Bsicas de Programacin. Realizar una corrida en fro.
Programacin Prof. Gonzalo Mller Clase 3 GM - 55

Ejercicio
3.2 Para cada uno de los siguientes problemas: a) Restar el mayor del menor de 2 nmeros b) Sumar 2 nmeros si son iguales y de lo contrario, reste el mayor del menor. c) Dividir 2 nmeros (0?), el menor entre el mayor. Fase 1: Anlisis y Diseo: DES, DF, DRE y LV. Sealar en DF o DRE: Estructuras, Contadores, Acumuladores, Inicializacin, Conteo y Acumulacin. Realizar una corrida en fro.
Programacin Prof. Gonzalo Mller Clase 3 GM - 56

Ejercicio
3.2 Para cada uno de los siguientes problemas: d) Presentar la secuencia de los N nmeros enteros que preceden al 100: 100, 99, 98, 97, ... e) Leer y escribir nmeros hasta que el ledo sea mayor que 5. f) Disminuir un nmero de 2 en 2 hasta que este sea negativo, presentado la secuencia en la salida. Fase 1: Anlisis y Diseo: DES, DF, DRE y LV. Sealar en DF o DRE: Estructuras, Contadores, Acumuladores, Inicializacin, Conteo y Acumulacin. Realizar una corrida en fro.
Programacin Prof. Gonzalo Mller Clase 3 GM - 57

Ejercicio
3.2 Para cada uno de los siguientes problemas: g) Dados 2 nmeros presentar la secuencia de nmeros entre el 1 nmero y el 2 nmero. h) Sumar nmeros hasta que los ltimos dos nmeros ledos sean negativos. Fase 1: Anlisis y Diseo: DES, DF, DRE y LV. Sealar en DF o DRE: Estructuras, Contadores, Acumuladores, Inicializacin, Conteo y Acumulacin Realizar una corrida en fro.
Programacin Prof. Gonzalo Mller 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 nmeros dados. b) Hallar el producto de los negativos y el producto de los positivos de un conjunto de nmeros dados. Fase 1: Anlisis y Diseo: DES, DF, DRE y LV. Sealar en DF o DRE: Estructuras, Contadores, Acumuladores, Inicializacin, Conteo y Acumulacin Realizar una corrida en fro.
Programacin Prof. Gonzalo Mller Clase 3 GM - 59

Resumen
Combinacin de Estructuras: Condicionales + Secuenciales, Repetitivas + Secuenciales, Condicional Compuestas: Anidadas y Cascadas, Estructura Repetitiva Anidadas. Algoritmos Propios. Constantes y Variables. Asignacin: =. Usos de las Variables: Contadores y Acumuladores. Lista de Variables.
Programacin Prof. Gonzalo Mller Clase 3 GM - 60

Anda mungkin juga menyukai