Вы находитесь на странице: 1из 28

Introduccin a la Programacin

Grado en Ingeniera Informtica

Teora - Curso 2010-2011


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:

Instruccin 1

Diagrama N-S:

Instruccin 1
Instruccin 2

Instruccin 2
Instruccin n

Instruccin n

Contenido 3.- Programacin estructurada

Pseudocdigo:

Instruccin 1
Instruccin 2
..
Instruccin n

3.2.-Estructura Secuencial
Ejemplo: Clculo de la suma y producto de dos nmeros
Diagrama de flujo:

Diagrama N-S:

Pseudocdigo:

inicio
Algoritmo suma
Leer A y B

SA+B
PA*B
Escribir S y P

Leer (A, B)
S A+ B
P A* B
Escribir (s, p)
Fin_algoritmo

fin

Contenido 3.- Programacin estructurada

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

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:

Condicin

Diagrama N-S:

Falsa

Pseudocdigo:

Condicin

Verdadera
Instrucciones

Instrucciones

Contenido 3.- Programacin estructurada

si <condicin> entonces
<instrucciones>
fin_si

3.3.1-Estructura Selectiva Simple


Ejemplo: Leer un nmero por teclado y comprobar si el nmero es mayor que
cero
Diagrama de flujo:

Diagrama N-S:

Pseudocdigo:

inicio
Algoritmo mayor_que_cero
Leer (numero)

Leer (numero)
Falsa

numero > 0

Numero > 0
Verdadera

Escribir (numero
mayor que cero)

V
Escribir (numero
mayor que cero)

Fin_algoritmo
fin

Contenido 3.- Programacin estructurada

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

3.3.2.-Estructura Selectiva Doble

Diagrama de flujo:

Verdadera

Condicin

Diagrama N-S:

Pseudocdigo:

Falsa
Condicin

v
InstruccionesA

InstruccionesB

InstruccionesA

F
InstruccionesB

Contenido 3.- Programacin estructurada

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

3.3.2.-Estructura Selectiva Doble


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

Diagrama N-S:

Pseudocdigo:

Algoritmo par_impar

Leer N

Leer (n)
Verdadera

N mod 2 = 0

Falsa

N mod 2 = 0
V

Escribir PAR

Escribir IMPAR
Escribir
(numero
PAR)

Escribir (numero
IMPAR)

fin

Fin_algoritmo

10

Contenido 3.- Programacin estructurada

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

3.3.3.-Estructura Selectiva Mltiple

Diagrama de flujo:

Expresin

11

Instruccin1

Instruccin 2

Contenido 3.- Programacin estructurada

n
Instruccin n

en_otro_caso
Instruccin x

3.3.3.-Estructura Selectiva Mltiple

Diagrama NS:

Expresin

12

Ins1

Ins 2

Otro_caso

Ins 3 .

Ins n

Contenido 3.- Programacin estructurada

Ins x

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

5
Escribir
VIERNES

6
Escribir
SABADO

7
Escribir
DOMINGO
Escribir
ERROR

fin

14

Contenido 3.- Programacin estructurada

en_otro_caso

3.3.3.-Estructura Selectiva Mltiple


Diagrama N-S:

da
1

Escribir
(lunes)

15

Escribir
(martes)

Escribir
(mircoles)

Escribir Escribir Escribir Escribir


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

Contenido 3.- Programacin estructurada

Otro_caso

Escribir
(da
incorrecto)

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:

17

Estructura Mientras

Estructura Repetir_hasta

Estructura Desde

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

mientras

Condicin

Verdadera
Instrucciones

18

Contenido 3.- Programacin estructurada

mientras (condicin) hacer


instruccin 1
instruccin 2
.
instruccin n
fin_mientras

3.4.1-Estructura Repetitiva Mientras


Ejemplo: Realizar el producto de dos nmeros mediante el operador suma
Diagrama de flujo:

Diagrama N-S:
Algoritmo producto_sumas

inicio
Leer a y b

leer a y b
cont  0
prod  0

cont 0
prod 0

Mientras

(cont<b)

cont < b
Escribir prod

V
prod prod + a
cont  cont + 1

19

Pseudocdigo:

fin

prod
 prod + a
cont  cont + 1

escribe prod
Fin_algoritmo

Contenido 3.- Programacin estructurada

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

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:

repetir

Pseudocdigo:

Instrucciones

Instrucciones

Condicin

20

Falsa
Hasta_que

Condicin

Contenido 3.- Programacin estructurada

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

3.4.2-Estructura Repetitiva Repetir


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

Diagrama N-S:

Pseudocdigo:

inicio

Algoritmo factorial
Leer num

leer num
fact 1
cont  1

fact  1
cont  1
Repetir fact
 fact*cont
cont  cont + 1

fact fact * cont


cont  cont + 1
Falsa

Hasta_que

(cont>num)

cont > num

escribe fact

Verdadera
Escribir fact

Fin_algoritmo

fin

21

Contenido 3.- Programacin estructurada

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

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

desde i Vi hasta Vf hacer

i > Vf
instrucciones
i i + 1
F
Instrucciones

22

Contenido 3.- Programacin estructurada

desde i  Vi hasta Vf hacer


instrucciones
fin_desde

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

23

Contenido 3.- Programacin estructurada

escribir suma

fin

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

27

b) CORRECTO

Contenido 3.- Programacin estructurada

c) INCORRECTO

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

Вам также может понравиться