Anda di halaman 1dari 28

Introduccin a la Programacin Grado en Ingeniera Informtica

Teora - Curso 2011-2012


Contenido 3 Programacin Estructurada

Contenido 3.- Programacin Estructurada

3.1 Caractersticas de la Programacin Estructurada 3.2 Estructura Secuencial 3.3 Estructura Selectiva 3.3.1 Simple 3.3.2 Doble 3.3.3 Mltiple 3.4 Estructuras Repetitivas 3.4.1 Mientras 3.4.2 Repetir 3.4.3 Desde 3.5 Estructuras anidadas 3.6 Ejercicios propuestos

Contenido 3.- Programacin estructurada

3.1.-Caractersticas de la Programacin Estructurada Caractersticas de la Programacin Estructurada:

La programacin estructurada es el conjunto de tcnicas que incorporan:


Recursos abstractos Diseo descendente Estructuras bsicas:


Secuenciales. Selectivas. Repetitivas.

Contenido 3.- Programacin estructurada

3.2.-Estructura Secuencial

Diagrama de flujo:

Diagrama N-S:

Pseudocdigo:

Instruccin 1

Instruccin 1 Instruccin 2

Instruccin 2 Instruccin n

Instruccin n

Instruccin 1 Instruccin 2 .. Instruccin n

Contenido 3.- Programacin estructurada

3.2.-Estructura Secuencial
Ejemplo: Clculo de la suma y producto de dos nmeros
Diagrama de flujo:
inicio Algoritmo suma Leer A y B SA+B PA*B Escribir S y P fin Leer (A, B) S A+ B P A* B Escribir (s, p) Fin_algoritmo

Diagrama N-S:

Pseudocdigo:

Algoritmo suma_producto var entero : A, B, S, P inicio leer (A, B) S A+ B P A* B escribir (S, P) fin_algoritmo

Contenido 3.- Programacin estructurada

3.3.-Estructura Selectiva El conjunto de instrucciones se ejecutan o no en funcin de una determinada condicin. Tipos:

Simple Doble Mltiple

Contenido 3.- Programacin estructurada

3.3.1-Estructura Selectiva Simple

Diagrama de flujo:

Diagrama N-S:

Pseudocdigo:

Condicin

Falsa

Condicin

v
Instrucciones

Verdadera Instrucciones

si <condicin> entonces <instrucciones> fin_si

Contenido 3.- Programacin estructurada

3.3.1-Estructura Selectiva Simple


Ejemplo: Leer un nmero por teclado y comprobar si el nmero es mayor que cero Diagrama de flujo:
inicio Algoritmo mayor_que_cero
Leer (numero)

Diagrama N-S:

Pseudocdigo:

Leer (numero)
numero > 0 Falsa

Numero > 0
Verdadera

V
Escribir (numero mayor que cero)

Escribir (numero mayor que cero)

Algoritmo mayor_que_cero var entero: numero inicio leer(numero) si (numero >0) entonces escribir( nmero mayor que cero) fin_si fin_algoritmo

Fin_algoritmo
fin

Contenido 3.- Programacin estructurada

3.3.2.-Estructura Selectiva Doble

Diagrama de flujo:

Diagrama N-S:

Pseudocdigo:

Verdadera

Condicin

Falsa
Condicin

v
InstruccionesA InstruccionesB InstruccionesA

F
InstruccionesB

si <condicin> entonces <instrucciones A> si_no <instrucciones B> fin_si

Contenido 3.- Programacin estructurada

3.3.2.-Estructura Selectiva Doble


Ejemplo: Algoritmo que compruebe si un nmero introducido por teclado es par o impar Diagrama de flujo:
inicio Leer N

Diagrama N-S:

Pseudocdigo:

Algoritmo par_impar Leer (n) Algoritmo par_impar var entero: n inicio leer (n) si (n mod 2 =0) entonces escribir(PAR) si_no escribir(IMPAR) fin_si fin_algoritmo

Verdadera

N mod 2 = 0

Falsa

N mod 2 = 0 V F
Escribir (numero IMPAR)

Escribir PAR

Escribir IMPAR
Escribir (numero PAR)

fin

Fin_algoritmo

10

Contenido 3.- Programacin estructurada

3.3.3.-Estructura Selectiva Mltiple

Diagrama de flujo:

Expresin

1 Instruccin1

2 Instruccin 2

n Instruccin n

en_otro_caso Instruccin x

11

Contenido 3.- Programacin estructurada

3.3.3.-Estructura Selectiva Mltiple

Diagrama NS:

Expresin 1 2 3 n Otro_caso

Ins1

Ins 2

Ins 3 .

Ins n

Ins x

12

Contenido 3.- Programacin estructurada

3.3.3.-Estructura Selectiva Mltiple

Pseudocdigo:

segun_sea (expresin) hacer 1: instruccin/es 1 2: instruccin/es 2 3: instruccin/es 3 .. n: instruccin/es n en_otro_caso: instruccin/es x fin_segun

13

Contenido 3.- Programacin estructurada

3.3.3.-Estructura Selectiva Mltiple


Ejemplo: Se desea disear un algoritmo que escriba los nombres de los das
de la semana en funcin del valor de una variable dia introducida por teclado, que representa su posicin dentro de la semana.
inicio Leer dia

dia

1
Escribir LUNES

2
Escribir MARTES

3
Escribir MIERCOLES

4
Escribir JUEVES Escribir VIERNES

5
Escribir SABADO

7
Escribir DOMINGO Escribir ERROR

en_otro_caso

fin

14

Contenido 3.- Programacin estructurada

3.3.3.-Estructura Selectiva Mltiple


Diagrama N-S:

da 1 2 3 4 5 6 7 Otro_caso

Escribir (lunes)

Escribir (martes)

Escribir (mircoles)

Escribir Escribir Escribir Escribir (jueves) (viernes) (sbado) (doming o)

Escribir (da incorrecto)

15

Contenido 3.- Programacin estructurada

3.3.3.-Estructura Selectiva Mltiple


Pseudocdigo:
Algoritmo Nombre_dias var entero: dia inicio leer(dia) segun_sea (dia) hacer 1: escribir(LUNES) 2: escribir(MARTES) 3: escribir(MIERCOLES) 4: escribir(JUEVES) 5: escribir(VIERNES) 6: escribir(SABADO) 7: escribir(DOMINGO) en_otro_caso escribir(Da incorrecto) fin_segun fin_algoritmo
16

Contenido 3.- Programacin estructurada

3.4.-Estructuras Repetitivas
Permiten repetir una o varias instrucciones varias veces en funcin de la evaluacin de una determinada condicin. A estas estructuras se les denomina bucles, y se llama iteracin a cada repeticin de la ejecucin de la secuencia de instrucciones que forman el llamado cuerpo del bucle.

Tipos:

Estructura Mientras Estructura Repetir_hasta Estructura Desde

17

Contenido 3.- Programacin estructurada

3.4.1.-Estructura Repetitiva Mientras


En la estructura repetitiva mientras el conjunto de instrucciones que forman el cuerpo del bucle se repite mientras la condicin se evale como verdadera. La condicin se encuentra al principio del bucle
Diagrama de flujo: Diagrama N-S: Pseudocdigo:

Falsa Condicin Verdadera Instrucciones mientras Condicin

mientras (condicin) hacer instruccin 1 instruccin 2 . instruccin n fin_mientras

18

Contenido 3.- Programacin estructurada

3.4.1-Estructura Repetitiva Mientras


Ejemplo: Realizar el producto de dos nmeros mediante el operador suma Diagrama de flujo:
inicio Leer a y b cont 0 prod 0 F cont < b V prod prod + a cont cont + 1 Escribir prod fin prod prod + a cont cont + 1

Diagrama N-S:
Algoritmo producto_sumas

Pseudocdigo:

leer a y b cont 0 prod 0 Mientras (cont<b)

escribe prod Fin_algoritmo

Algoritmo producto _sumas var entero : a,b, cont, prod inicio leer(a, b) cont 0 prod 0 mientras (cont < B) hacer prod prod + A cont cont + 1 fin_mientras escribir (prod) fin_algoritmo

19

Contenido 3.- Programacin estructurada

3.4.2.-Estructura Repetitiva Repetir


En la estructura repetir, la condicin 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 condicin.
Diagrama de flujo: Diagrama N-S: Pseudocdigo:

repetir Instrucciones

Instrucciones

repetir instruccin 1 instruccin 2 . instruccin n hasta_que (condicin)

Condicin

Falsa Hasta_que Condicin

20

Contenido 3.- Programacin estructurada

3.4.2-Estructura Repetitiva Repetir


Ejemplo: Realiza el algoritmo necesario para calcular el factorial de un nmero Diagrama de flujo:
inicio

Diagrama N-S:
Algoritmo factorial

Pseudocdigo:
Algoritmo factorial var entero: cont, num real: fact inicio leer (num) fact 1 cont 1 repetir fact fact * cont cont cont + 1 hasta_que (cont > num) escribir (factorial, fact) fin_algoritmo

Leer num

leer num
fact 1 cont 1 fact fact * cont cont cont + 1 Falsa cont > num Verdadera Escribir fact fin

fact 1 cont 1
Repetir fact fact*cont cont cont + 1 Hasta_que (cont>num)

escribe fact Fin_algoritmo

21

Contenido 3.- Programacin estructurada

3.4.3.-Estructura Repetitiva Desde


La estructura desde ejecuta las acciones del cuerpo del bucle un nmero determinado de veces, controlando de modo automtico las iteraciones.
Diagrama de flujo: Diagrama N-S: Pseudocdigo:

i Vi V i > Vf instrucciones i i + 1 F Instrucciones desde i Vi hasta Vf hacer

desde i Vi hasta Vf hacer instrucciones fin_desde

22

Contenido 3.- Programacin estructurada

3.4.3-Estructura Repetitiva Desde


Ejemplo: Clculo de la suma de los nmeros enteros comprendidos entre 1 y 100.

Diagrama de flujo:

inicio

suma 0

i 1 Verdadera i > 100 ii+1 Falsa suma suma + i escribir suma

fin

23

Contenido 3.- Programacin estructurada

3.4.3-Estructura Repetitiva Desde


Ejemplo: Clculo de la suma de los nmeros enteros comprendidos entre 1 y 100. Diagrama N-S:
Algoritmo suma_cien suma 0
desde i 1 hasta 100 suma suma + i

escribe suma Fin_algoritmo

24

Contenido 3.- Programacin estructurada

3.4.3-Estructura Repetitiva Desde


Ejemplo: Clculo de la suma de los nmeros enteros comprendidos entre 1 y 100. Pseudocdigo:

Algoritmo suma_cien var entero: suma, i inicio suma 0 desde i 1 hasta 100 hacer suma suma + i fin_desde fin_algoritmo

25

Contenido 3.- Programacin estructurada

3.4.-Estructuras Repetitivas
Sustitucin de unas estructuras por otras:

Podemos sustituir siempre una estructura desde por una estructura repetir o por una estructura mientras.

Una estructura repetir o mientras, sin embargo, se puede sustituir por una estructura desde slo cundo se conoce de antemano el nmero de veces que van a ejecutarse las acciones del bucle.

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, tambin habra 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 funcin de cmo estn definidas las diferentes estructuras en cada lenguaje de programacin.

26

Contenido 3.- Programacin 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.- Programacin estructurada

3.5.-Estructuras Anidadas
Ejemplo: escribe todos los nmeros primos entre 2 y 1000.
Algoritmo primos var lgico: encontrado entero : i, divisor inicio desde i 2 hasta i 100 hacer encontrado falso divisor 2 mientras (divisor sqrt(i) and encontrado = falso) hacer si (i mod divisor = 0) entonces encontrado verdadero fin_si divisor divisor + 1 fin_mientras si (encontrado = falso) entonces escribir (i) fin_desde fin_algoritmo 28

Contenido 3.- Programacin estructurada

Anda mungkin juga menyukai