You are on page 1of 4

Objetivos

Tema 3
Estructuras de Control

Estudiar las estructuras bsicas de control (secuenciales,


condicionales y repetitivas)

Aprender a disear algoritmos utilizando el pseudocdigo


como notacin para describirlos

Conocer la sintaxis de las principales estructuras de


control en pseudocdigo

Reconocer la importancia de disear algoritmos como paso


previo a la resolucin de problemas mediante la
programacin

Resolver los primeros problemas a travs de tcnicas de


programacin bsicas

Tema 3. Estructuras de control

Tipos de estructuras de
control

Estructuras de control
1. Estructuras secuenciales

Estructuras secuenciales

1. Asignacin
2. Lectura / Entrada
3. Escritura / Salida

2. Estructuras condicionales

Bucle MIENTRAS
Bucle REPETIR-HASTA
Bucle PARA
Bucles infinitos y bucles anidados

Sentencias que permiten la repeticin de un grupo de acciones

Las acciones incluidas en un bucle se pueden repetir un


nmero fijo de veces o bien un nmero variable determinado
por la evaluacin de una expresin lgica (una condicin)

4. Algunos ejemplos
Tema 3. Estructuras de control

Tema 3. Estructuras de control

Estructuras secuenciales Asignacin

Sentencias que dependiendo de la evaluacin de una


expresin lgica (una condicin), se realiza una opcin u otra

Estructuras Repetitivas o Iterativas (Bucles o Ciclos)

3. Estructuras repetitiva

Sentencias que se realizan una a continuacin de otra en el


orden en el que estn escritas

Estructuras Condicionales

1. Simple
2. Anidadas
3. Mltiple
1.
2.
3.
4.

Ejemplos

Permite asignar un valor determinado a una variable


A
B
C
A
B
C
A

var exp

El valor de la variable var ser el resultado de evaluar la


expresin exp

El tipo de la variable implicada en la operacin de


asignacin debe ser compatible con el tipo del resultado de
evaluar la expresin

La asignacin es una operacin destructiva

Ejemplos:
a 3.0

menor_ej1 (ej1<ej2) AND (ej1<ej3)

b (2.0*c+4)/8

hipotenusa SQRT(cateto12+cateto22)

3
5
2
B
C
A*B
B

A=2
B=2
C = 10

A
B
C
A
B
C

30
10
7
A DIV C
A*3 DIV C+2
A DIV B DIV C

A=4
B=3
C=0

A
B
C
A
B
C

10
5*A
B*2
C MOD 3
C DIV 3
A+22

A=1
B = 33
C=5

A
B
C
A
B
C

13
15
12
(C-B) (B-A)
A
A*B

A=9
B=9
C = 81

A
B
C
A
B
C

8
A*(3-A)
A-B
B MOD A
-C-(B-A)
A*B

A=0
B = -8
C=0

c (d+2)<7
Tema 3. Estructuras de control

Tema 3. Estructuras de control

Estructuras secuenciales
Lectura/Entrada

Estructuras secuenciales
Escritura/Salida

Mediante la operacin de entrada se asigna a una variable un


valor dado desde el exterior

Mediante la operacin de salida se transfiere el valor de una


expresin a un dispositivo de salida

Se utiliza para mostrar al usuario los resultados obtenidos


Ejemplos:

LEER(var)

ESCRIBIR(exp)

Se utiliza para que el usuario pueda introducir los datos


requeridos por un algoritmo
El tipo de dato suministrado desde el exterior debe ser
compatible con el tipo de la variable var
Tras la operacin de lectura, la variable var contiene el valor
dado por el usuario a travs de un dispositivo de entrada

ESCRIBIR(hipotenusa)
ESCRIBIR(b+3)

LEER(cateto1)

Se suele utilizar tambin para mostrar mensajes


informativos al usuario que estarn delimitados por
comillas

Tambin es posible, combinar expresiones y cadenas de


caracteres encerradas entre comillas en una misma
operacin de salida siempre que se separen por comas

La operacin de lectura es destructiva


Es posible leer los valores de varias variables en una misma
operacin de entrada (separando con comas)

ESCRIBIR(Hola)

LEER(nota1, nota2)

es equivalente a las siguientes dos sentencias


LEER(nota1)
LEER(nota2)

ESCRIBIR(La media de las notas es ,media)


Tema 3. Estructuras de control

Tema 3. Estructuras de control

Estructura bsica de un
algoritmo
ALGORITMO nombre.
Descripcin
CONSTANTES
id_cte1 = valor1

id_cteN = valorN
VARIABLES
id_var1 : tipo1

id_varM : tipoM
1. [Inicio]

Sentencias

Estructuras condicionales

ALGORITMO triangulo. Calcula la hipotenusa de


un tringulo rectngulo tomando como entrada el
valor de los dos catetos
VARIABLES
cat1, cat2 : REAL
hipotenusa : REAL
1. [Entrada de datos]
ESCRIBIR(Introduzca valor de cateto 1: )
LEER(cat1)
ESCRIBIR(Introduzca valor de cateto 2: )
LEER(cat2)
2. [Clculo de la hipotenusa]
hipotenusa SQRT(cat1*cat1+cat2*cat2)
3. [Mostrar el resultado]
ESCRIBIR(La hipotenusa es , hipotenusa)
4. [Fin]

En una estructura condicional se evala una expresin lgica y


dependiendo del resultado se ejecutan unas sentencias u otras

SI condicin ENTONCES
Sentencias en caso de verdad
SINO
Sentencias en caso de falso
FIN_SI

Tema 3. Estructuras de control

SI condicin ENTONCES
Sentencias en caso de verdad
FIN_SI

Falso

SI (a<b) ENTONCES
Mayor a
Mayor b
ESCRIBIR(El valor mayor es b=,b)
SINO
ESCRIBIR(a)
Mayor a
ESCRIBIR(El valor mayor es a=,a)
FIN_SI

SI-ENTONCES
SI (longitud<=0) ENTONCES
ESCRIBIR(Imposible hacer el
clculo. La longitud debe ser un
nmero positivo)
FIN_SI
Tema 3. Estructuras de control

Longitud<=0
Falso

a<b

Condicin

Verdad
Sentencias
caso verdad

Falso

Sentencias
caso verdad

Tema 3. Estructuras de control

Estructuras condicionales
SI-ENTONCES-SINO

Falso
Sentencias
caso falso

Si la condicin resulta verdadera slo se realizan las operaciones


correspondientes al ENTONCES y si la condicin resulta falsa slo
se realizan las del SINO. En ningn caso se ejecutarn ambos
grupos de sentencias
Verdad
Condicin
La parte SINO es opcional

F. [Fin]

10

Condiciones

Verdad

Mayor b

Una condicin o expresin booleana puede ser:

Una variable booleana

Una expresin aritmtica seguida de un operador relacional,


seguido de otra expresin aritmtica

Una expresin booleana, seguida de un operador booleano,


seguido de una expresin booleana

TEST T
ESCRIBIR(b)

TEST 3<5

TEST A AND NOT B OR C

Verdad

ESCRIBIR(Imposible
hacer el clculo)

11

Se pueden utilizar condiciones tan complejas como se


quiera siempre que estn bien formadas

Tema 3. Estructuras de control

12

Estructuras condicionales
anidadas

Estructuras condicionales
mltiples

Se pueden anidar varias sentencias


condicionales para formar condiciones complejas
SI COND1 ENTONCES
SI COND2 ENTONCES
SENT1
SINO
SENT2
FIN_SI
SINO
SI COND3 ENTONCES
SENT3
SINO
SENT4
FIN_SI
FIN_SI

Encontrar el mayor de 3 nmeros

13

S2

Bucles controlados por contador

Falso

Bucles controlados por condicin

Verdad

Sentencias

15

Cuerpo del bucle

hasta que la condicin sea

Cuerpo del
Bucle

Falso

Tema 3. Estructuras de control

16

La condicin de terminacin nunca se cumple


Debe haber alguna sentencia dentro del cuerpo
del bucle que haga que el valor de la condicin
que controla el bucle vare

Condicin

i1
MIENTRAS (i>0) HACER
i i+1
i i-1
FIN_MIENTRAS
ESCRIBIR(El valor de i es ,i)

Verdad

verdadera (es decir, mientras la


condicin sea falsa)

Tema 3. Estructuras de control

Bucles infinitos

REPETIR

HASTA condicin

Sc

Cuerpo del
Bucle

Bucle REPETIR-HASTA

El cuerpo del bucle se repite

Sn

Condicin

Bucle MIENTRAS
Bucle REPETIR-HASTA
Bucle PARA

Tema 3. Estructuras de control

var=valor_n

14

Estructuras repetitivas

MIENTRAS condicin HACER


Sentencias del bucle (cuerpo del bucle)
FIN_MIENTRAS
El cuerpo del bucle se repite mientras la condicin sea
verdadera

El nmero de veces que se ejecuta el bucle depende de una


condicin

S1

Bucle MIENTRAS

El cuerpo del bucle se repite un nmero fijo de iteraciones


dependiendo de una variable de control

var=valor_2

var=valor_1

Acciones para
otros valores
de var

Tema 3. Estructuras de control

mbito o Cuerpo del Bucle: sentencias que se repiten


durante la ejecucin del bucle
Tipos de bucles:

var=?

CASO num
1: ESCRIBIR(El nmero es 1)
2: ESCRIBIR(El nmero es 2)
3,4: ESCRIBIR(El nmero es 3 o 4)
EN OTRO CASO ESCRIBIR(Entrada no vlida)
FIN_CASO

Estructuras repetitivas

La sentencia multicondicional CASO se puede ver como un


estructura condicional simple, pero en lugar de haber dos
alternativas, ahora hay mltiples alternativas
CASO var
Valor_1: S1
Valor_2: S2

Valor_n: Sn
EN OTRO CASO Sc
FIN_CASO

SI (a<b) ENTONCES
SI (b<c) ENTONCES
Mayor c
SINO
Mayor b
FIN_SI
SINO
SI (a<c) ENTONCES
Mayor c
SINO
Mayor a
FIN_SI
FIN_SI

Tema 3. Estructuras de control

Sentencias

17

Tema 3. Estructuras de control

18

Bucles anidados

Bucle PARA

El cuerpo de un bucle puede incluir cualquier tipo de


sentencias, incluidas otras sentencias repetitivas
La estructura interna debe estar completamente dentro de
la estructura externa, no pudiendo existir solapamientos

PARA var=inicio HASTA fin HACER


Cuerpo del bucle
var <- inicio
FIN_PARA

Correctos

Incorrecto

El cuerpo del bucle se repite un


nmero fijo de iteraciones
Variable de control

Tema 3. Estructuras de control

19

Equivalencia PARA - MIENTRAS

var inicio
MIENTRAS (var<=fin) HACER
Sentencias
var var + 1
FIN_MIENTRAS
21

Validacin de datos de
entrada

Verdad
var<=fin

Cuerpo del
Bucle

var <- var+1

Sentencias

Tema 3. Estructuras de control

20

Ejemplo: Factorial

Tema 3. Estructuras de control

22

Fin de ejecucin controlada


por el usuario

ALGORITMO validacion_mientras.
ALGORITMO validacion_repetir.
VARIABLES
VARIABLES
nota: REAL
nota: REAL
1. [Entrada de datos]
1. [Entrada de datos]
ESCRIBIR(Introduzca la nota: )
REPETIR
LEER(nota)
ESCRIBIR(Introduzca la nota: )
MIENTRAS (nota<0.0) OR (nota >10.0)
LEER(nota)
HACER
HASTA (nota>=0.0) AND
ESCRIBIR(La nota debe ser un n real
(nota<=10.0)
entre 0 y 10. Intntelo de nuevo: )
2. [Salida de datos]
LEER(nota)
ESCRIBIR(La nota es , nota)
FIN_MIENTRAS
3. [Fin]
2. [Salida de datos]
ESCRIBIR(La nota es , nota)
3. [Fin]

Tema 3. Estructuras de control

Falso

ALGORITMO factorial_mientras.
ALGORITMO factorial_para.
VARIABLES
VARIABLES
N, i, fact: ENTERO
N, i, fact: ENTERO
1. [Entrada del nmero N]
1. [Entrada del nmero N]
LEER(N)
LEER(N)
2. [Calcular el factorial]
2. [Calcular el factorial]
fact 1
fact 1
i1
PARA i=1 HASTA N HACER
MIENTRAS (i<=N) HACER
fact fact * i
fact fact * i
FIN_PARA
ii+1
3. [Mostrar el resultado]
FIN_MIENTRAS
ESCRIBIR(Factorial de ,N, es ,fact)
3. [Mostrar el resultado]
4. [Fin]
ESCRIBIR(Factorial de ,N, es ,fact)
4. [Fin]

PARA var=inicio HASTA fin HACER


Sentencias
FIN_PARA

Tema 3. Estructuras de control

Controla el nmero de iteraciones


Se le asignan automticamente valores
sucesivos
Al comienzo del bucle se debe
especificar su valor inicial y su valor
final
Debe ser de tipo entero, carcter o
enumerado y su valor NO puede ser
modificado dentro del bucle
Cuando el bucle termina, su valor es
indeterminado

23

ALGORITMO repeticion.
VARIABLES
respuesta: CARACTER
1. [Inicio]
REPETIR
Desarrollo del algoritmo
ESCRIBIR(Desea volver a ejecutar el programa (S/N)? )
LEER(respuesta)
HASTA (respuesta=N) OR (respuesta=n)
F. [Fin]

Tema 3. Estructuras de control

24

You might also like