Teoría Tema 3

28
Introducción a la Programación Grado en Ingeniería Informática Teoría - Curso 2010-2011 Contenido 3 – Programación Estructurada

Transcript of Teoría Tema 3

Introducción a la ProgramaciónGrado en Ingeniería Informática

Teoría - Curso 2010-2011

Contenido 3 – Programación Estructurada

Contenido 3.- Programación Estructurada

3.1 Características de la Programación Estructurada3.2 Estructura Secuencial3.3 Estructura Selectiva

3.3.1 Simple3.3.2 Doble3.3.3 Múltiple

2

3.3.3 Múltiple3.4 Estructuras Repetitivas

3.4.1 Mientras3.4.2 Repetir3.4.3 Desde

3.5 Estructuras anidadas3.6 Ejercicios propuestos

Contenido 3.- Programación estructurada

3.1.-Características de la Programación Estructurada

Características de la Programación Estructurada:

� La programación estructurada es el conjunto de técnicas que incorporan:

– Recursos abstractos

3

– Recursos abstractos

– Diseño descendente

– Estructuras básicas:

– Secuenciales.

– Selectivas.

– Repetitivas.

Contenido 3.- Programación estructurada

3.2.-Estructura Secuencial

Diagrama de flujo:

Instrucción 1 Instrucción 1

Diagrama N-S:

Instrucción 1

Pseudocódigo:

4

Instrucción 2

Instrucción n

Instrucción 2

Instrucción n

Instrucción 1Instrucción 2

…..Instrucción n

Contenido 3.- Programación estructurada

3.2.-Estructura Secuencial

Diagrama de flujo:

Algoritmo suma

Leer (A, B)

Diagrama N-S:

Algoritmo suma_productovarentero : A, B, S, P

Pseudocódigo:

Ejemplo: Cálculo de la suma y producto de dos números

inicio

Leer A y B

5

Leer (A, B)

S�A+ B

P�A* B

Escribir (s, p)

Fin_algoritmo

entero : A, B, S, Pinicio

leer (A, B)S� A+ BP� A* Bescribir (S, P)

fin_algoritmo

S � A + B

P � A * B

Escribir S y P

fin

Contenido 3.- Programación estructurada

3.3.-Estructura Selectiva

El conjunto de instrucciones se ejecutan o no en función de una determinada condición.

Tipos:

– Simple

6

– Simple

– Doble

– Múltiple

Contenido 3.- Programación estructurada

3.3.1-Estructura Selectiva Simple

Diagrama de flujo: Diagrama N-S:

si <condición> entonces

Pseudocódigo:

Condición Falsa

FCondición

v

7

si <condición> entonces<instrucciones>

fin_siInstrucciones

VerdaderaF

Instrucciones

v

Contenido 3.- Programación estructurada

3.3.1-Estructura Selectiva Simple

Diagrama de flujo:

Algoritmo mayor_que_cero

Leer (numero)

Diagrama N-S:

Algoritmo mayor_que_cerovar

Pseudocódigo:

Ejemplo: Leer un número por teclado y comprobar si el número es mayor que cero

inicio

Leer (numero)

8

Leer (numero)

V F

Fin_algoritmo

varentero: numero

inicioleer (numero)si (numero >0) entonces

escribir (“ número mayor que cero”)

fin_sifin_algoritmo

Verdadera

numero > 0

Escribir (numero mayor que cero)

Falsa

fin

Numero > 0

Escribir (“numero mayor que cero”)

Contenido 3.- Programación estructurada

3.3.2.-Estructura Selectiva Doble

Diagrama de flujo: Diagrama N-S:

si <condición> entonces<instrucciones A>

Pseudocódigo:

v

CondiciónVerdadera Falsa

FCondición

9

si_no<instrucciones B>

fin_si

v

InstruccionesA InstruccionesB

F

InstruccionesA InstruccionesB

Contenido 3.- Programación estructurada

3.3.2.-Estructura Selectiva Doble

Diagrama de flujo:

Algoritmo par_impar

Leer (n)

Diagrama N-S:

Algoritmo par_imparvar

entero: n

Pseudocódigo:

Ejemplo: Algoritmo que compruebe si un número introducido por teclado es par o impar

Leer N

inicio

10

Leer (n)

V F

Fin_algoritmo

entero: ninicioleer (n)si (n mod 2 =0) entonces

escribir(“PAR”)si_no

escribir(“IMPAR”)fin_si

fin_algoritmo

N mod 2 = 0

Escribir (“numero PAR”)

Escribir (“numero IMPAR”)

Escribir PAR

Verdadera Falsa

Escribir IMPAR

fin

N mod 2 = 0

Contenido 3.- Programación estructurada

3.3.3.-Estructura Selectiva Múltiple

Diagrama de flujo:

Expresión

11

Instrucción1 Instrucción 2 Instrucción n Instrucción x

Expresión

1 2 n en_otro_caso

Contenido 3.- Programación estructurada

3.3.3.-Estructura Selectiva Múltiple

Diagrama NS:

Expresión

12

1 2 3 …… n

Ins1 Ins 2 Ins 3 …. Ins n Ins x

Expresión

Otro_caso

Contenido 3.- Programación estructurada

3.3.3.-Estructura Selectiva Múltiple

Pseudocódigo:

segun_sea (expresión) hacer1: instrucción/es 1

13

1: instrucción/es 12: instrucción/es 23: instrucción/es 3…..n: instrucción/es nen_otro_caso : instrucción/es x

fin_segun

Contenido 3.- Programación estructurada

3.3.3.-Estructura Selectiva Múltiple

Ejemplo: Se desea diseñar un algoritmo que escriba los nombres de los días

de la semana en función del valor de una variable dia introducida por teclado, que representa su posición dentro de la semana.

Leer dia

inicio

14

EscribirLUNES

dia

EscribirMARTES

EscribirMIERCOLES

EscribirJUEVES

EscribirVIERNES

EscribirSABADO

EscribirDOMINGO

fin

1 2 3 4 5 6 7

EscribirERROR

en_otro_caso

Contenido 3.- Programación estructurada

3.3.3.-Estructura Selectiva Múltiple

día

Diagrama N-S:

15

1 2 3 4 5 6 7 Otro_caso

Escribir(lunes)

Escribir(martes)

Escribir(miércoles)

Escribir(jueves)

Escribir(viernes)

Escribir(sábado)

Escribir(domingo)

Escribir(día incorrecto)

Contenido 3.- Programación estructurada

3.3.3.-Estructura Selectiva Múltiple

Pseudocódigo:

Algoritmo Nombre_diasvar

entero: diainicio

leer (dia)segun_sea (dia) hacer

16

segun_sea (dia) hacer1: escribir (“LUNES”)2: escribir (“MARTES”)3: escribir (“MIERCOLES”)4: escribir (“JUEVES”)5: escribir (“VIERNES”)6: escribir (“SABADO”)7: escribir (“DOMINGO”)en_otro_caso

escribir (“Día incorrecto”)fin_segun

fin_algoritmo

Contenido 3.- Programación estructurada

3.4.-Estructuras Repetitivas

Permiten repetir una o varias instrucciones varias veces en función de la evaluación de una determinada condición. A estas estructuras se les denomina bucles, y se llama iteración a cada repetición de la ejecución de la secuencia de instrucciones que forman el llamado cuerpo del bucle.

17

Tipos:

� Estructura Mientras

� Estructura Repetir_hasta

� Estructura Desde

Contenido 3.- Programación estructurada

3.4.1.-Estructura Repetitiva Mientras

Diagrama de flujo: Diagrama N-S: Pseudocódigo:

En la estructura repetitiva mientras el conjunto de instrucciones que forman el cuerpo del bucle se repite mientras la condición se evalúe como verdadera. La condición se encuentra al principio del bucle

18

mientras (condición) hacerinstrucción 1instrucción 2…….instrucción n

fin_mientras

Contenido 3.- Programación estructurada

Condición

Instrucciones

Falsa

Verdadera

Condiciónmientras

3.4.1-Estructura Repetitiva Mientras

Diagrama de flujo:

Algoritmo producto_sumas

leer a y b

Diagrama N-S:

Algoritmo producto _sumasvar

entero : a,b, cont, prodinicio

Pseudocódigo:

Ejemplo: Realizar el producto de dos números mediante el operador suma

inicio

Leer a y b

19

cont ���� 0prod ���� 0

Mientras (cont<b)

prod ���� prod + acont ���� cont + 1

escribe prod

Fin_algoritmo

inicioleer (a, b)cont� 0prod� 0mientras (cont < B) hacer

prod� prod + Acont � cont + 1

fin_mientrasescribir (prod)

fin_algoritmo

Contenido 3.- Programación estructurada

cont < b

prod� prod + a

F

cont� 0prod� 0

cont � cont + 1

fin

Escribir prodV

3.4.2.-Estructura Repetitiva Repetir

Diagrama de flujo: Diagrama N-S: Pseudocódigo:

En la estructura repetir , la condición se encuentra al final del bucle, y el conjunto de instrucciones que forman el cuerpo del mismo se ejecuta hasta que se cumpla una determinada condición.

20

repetirinstrucción 1instrucción 2…….instrucción n

hasta_que (condición)

Contenido 3.- Programación estructurada

Condición

repetir

CondiciónFalsa

Instrucciones

Hasta_que

Instrucciones

3.4.2-Estructura Repetitiva Repetir

Diagrama de flujo:

Algoritmo factorial

leer num

fact ���� 1

Diagrama N-S:

Algoritmo factorialvar

entero: cont, numreal: fact

Pseudocódigo:

Ejemplo: Realiza el algoritmo necesario para calcular el factorial de un número

fact� 1

inicio

Leer num

21

fact ���� 1cont ���� 1

Repetir fact ���� fact*contcont ���� cont + 1

Hasta_que (cont>num)

escribe fact

Fin_algoritmo

real: factinicio

leer (num)fact� 1cont � 1repetir

fact � fact * contcont � cont + 1

hasta_que ( cont > num)escribir (“factorial”, fact)

fin_algoritmo

Contenido 3.- Programación estructurada

cont > num

fact� 1cont � 1

Falsa

Verdadera

fact� fact * contcont � cont + 1

Escribir fact

fin

3.4.3.-Estructura Repetitiva Desde

Diagrama de flujo: Diagrama N-S: Pseudocódigo:

La estructura desde ejecuta las acciones del cuerpo del bucle un número determinado de veces, controlando de modo automático las iteraciones.

22

desde i ���� Vi hasta Vf hacerinstrucciones

fin_desde

Contenido 3.- Programación estructurada

desde i� Vi hasta Vf hacer

instrucciones

Instrucciones

i > Vf

i� Vi

i� i + 1

V

F

3.4.3-Estructura Repetitiva Desde

Diagrama de flujo:

Ejemplo: Cálculo de la suma de los números enteros comprendidos entre 1 y 100.

suma � 0

inicio

23 Contenido 3.- Programación estructurada

suma� suma + i

i > 100

i� 1

i � i + 1

Verdadera

fin

escribir sumaFalsa

3.4.3-Estructura Repetitiva Desde

Algoritmo suma_cien

suma � 0

desde i ���� 1 hasta 100

Diagrama N-S:

Ejemplo: Cálculo de la suma de los números enteros comprendidos entre 1 y 100.

24

desde i ���� 1 hasta 100

suma ���� suma + i

escribe suma

Fin_algoritmo

Contenido 3.- Programación estructurada

3.4.3-Estructura Repetitiva Desde

Algoritmo suma_cienvar

entero: suma, i

Pseudocódigo:

Ejemplo: Cálculo de la suma de los números enteros comprendidos entre 1 y 100.

25

entero: suma, iiniciosuma � 0desde i ���� 1 hasta 100 hacer

suma � suma + ifin_desde

fin_algoritmo

Contenido 3.- Programación estructurada

3.4.-Estructuras Repetitivas

Sustitución de unas estructuras por otras:

� Podemos sustituir siempre una estructura desde por una estructura repeti r o por una estructura mientras .

� Una estructura repetir o mientras , sin embargo, se puede sustituir por una estructura desde sólo cuándo se conoce de antemano el número de veces que van a ejecutarse las acciones del bucle.

26

� Una estructura mientras puede sustituirse por una estructura repetir cuando no altere el resultado el hecho de que las acciones del bucle se ejecuten al menos una vez.

� Una estructura repetir siempre puede sustituirse por una estructura mientras.En el peor de los casos, también habría que escribir el conjunto de instrucciones del bucle antes del mismo, para que se ejecuten siempre al menos una vez.

� Estas afirmaciones pueden variar en función de cómo estén definidas las diferentes estructuras en cada lenguaje de programación.

Contenido 3.- Programación estructurada

3.5.-Estructuras Anidadas

Tanto las estructuras selectivas como las estructuras repetitivas se pueden

anidar, es decir, estar contenidas unas dentro de otras.

a) CORRECTO b) CORRECTO c) INCORRECTO

27 Contenido 3.- Programación estructurada

3.5.-Estructuras Anidadas

Ejemplo: escribe todos los números primos entre 2 y 1000.Algoritmo primosvar

lógico: encontradoentero : i, divisor

iniciodesde i� 2 hasta i �100 hacer

encontrado � falso

28

divisor � 2mientras (divisor ≤ sqrt(i) and encontrado = falso) hacer

si (i mod divisor = 0) entoncesencontrado � verdaderofin_sidivisor � divisor + 1

fin_mientrassi (encontrado = falso) entonces

escribir (i)fin_desde

fin_algoritmo

Contenido 3.- Programación estructurada