Está en la página 1de 25

METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencias de Control
• Sumario
– Introducción
– Sentencias simples
– Sentencias compuestas
– Sentencias condicionales
• Sentencia IF
• Sentencia CASE
– Sentencias repetitivas
• Sentencia FOR
• Sentencia WHILE
• Sentencia REPEAT

1
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Introducción (I)
• Sentencias: Definen instrucciones en un
lenguaje de programación del algoritmo a
resolver por el computador
– Simples
– Compuestas
– Condicional
– Repetitiva
• Flujo de control: Orden en que se ejecutan las
acciones del programas
• Alterar el flujo lineal del programa
• Construir sentencias que recojan flujos de
control de programas más complicados 2
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Introducción (II) inicio

program primero; Leer a

const
multiplicador = 8; Leer b
var
a, b, suma, resultado : integer;
begin suma = a + b
writeln('Introduzca el primer número');
readln(a);
writeln('Introduzca el segundo número'); suma
readln(b);
suma := a + b;
writeln('La suma es: ', suma); resultado =
resultado := multiplicador * suma; cte * suma
writeln('El numero buscado es: ',
resultado)
end. resultado

fin 3
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Introducción (III)
inicio

Leer número

¿número
Es par = 2?

¿número número =
= 1? número - 2

Es impar

fin

4
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencias Simples
• Sentencias read y write
• Sentencia de asignación :=
– Se usan para asignar valores a variables
• Llamadas a procedimientos y funciones
– Activa la ejecución de un subprograma.
• Sentencia goto <etiqueta>
– Transfiere el flujo de control a la sentencia precedida
por la etiqueta.
label Siguiente;
Siguiente:
i := i + 1;
if i < 10 then goto Siguiente;
. . .
5
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencias Compuestas
• Bloque de sentencias que se ejecutan en el
orden en que aparecen y que se tratan como
una sola
begin
sentencia_1;
sentencia_2;
: No es necesario ;
sentencia_n
end
• Todo programa comienza en la primera
sentencia begin, ejecuta cada sentencia
secuencialmente y detiene la ejecución
cuando encuentra la sentencia end final 6
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencias Condicionales
• Se altera el flujo de un programa según el
resultado de la evaluación de alguna condición
• Se utiliza para expresar en Pascal las
estructuras condicionales de los algoritmos

V Condición
F
Sentencia 1 Sentencia 2

7
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencia IF (I)
• Sintaxis:

if condición then
sentencia_1
else
sentencia_2

– La condición tiene que ser una expresión lógica


booleana
– Antes del else no puede haber ;

8
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencia IF (II)
• Ejemplo: Determinar si un número es par

program par; inicio


var
n, resto : integer; Leer
número
begin
writeln('Introduzca el número'); Sí ¿número
Es par mod 2 = 0?
readln(n);
resto := n mod 2; No

if resto = 0 then Es impar


writeln('El número es par')
else
writeln('El número es impar') fin
end.
9
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencia IF (III)
• Ejemplo: Visualizar un saludo dependiendo de
la hora del día
Buenos Sí
¿hora < 12?
if hora < 12 then días
No
write('Buenos días')
Sí Buenas
else if hora < 18 then ¿hora < 18?
tardes
write('Buenas tardes')
No
else
Buenas
write('Buenas noches') noches

10
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencia IF (IV)
• Ejemplo: Visualizar un saludo dependiendo de
la hora del día
Buenos Sí
¿hora < 12?
if hora < 12 then días
No
write('Buenos días')
Sí Buenas
else ¿hora < 18?
tardes
if hora < 18 then
No
write('Buenas tardes')
Buenas
else noches
write('Buenas noches')

11
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencia IF (V)
• Ejemplo: Intercambiar valores de variables que
no estén en orden creciente
if a > b then No
¿a > b?
begin

aux := b;
b := a; aux = b

a := aux
end b=a

a = aux

12
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencia CASE (I)


• Sirve para escoger una única alternativa entre
múltiples
case valor of
lista ctes_1: sentencia_1;
lista ctes_2: sentencia_2;
. . .
lista ctes_n: sentencia_n
else
sentencia_else
end { case }

– Tipo de datos de valor ha de ser simple: entero, char o enumerado

13
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencia CASE (II)


• Ejemplo: cálculo de la longitud del mes
program long_mes;
type
mes = (ene, feb, mar, abr, may, jun
jul, ago, sep, oct, nov, dic);
agno = 1900..2050;
longmes = 28..31;
var
yy : agno;
mm : mes;
long : longmes;
...

14
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencia CASE (III)

case mm of
ene, mar, may, jul, ago, oct, dic :
long := 31;
abr, jun, sep, nov :
long := 30;
feb :
if (yy mod 4 = 0) and (yy mod 100 <> 0) then
long := 29
else
long := 28
end { case }

15
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencias Repetitivas
• Bucle: Repetición de una serie de sentencias
• Conocemos el número exacto de veces que se
repite la sentencia: for ... do
• No conocemos el número de veces que se
repite la sentencia, sino que:
– Se repite siempre que una determinada condición
sea verdadera:
• while ... do
– La sentencia se ejecuta una vez y se repetirá
siempre que no se verifique una condición:
• repeat ... until

16
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencia FOR (I)


• Sintaxis:

for variable := expresión_inicial to


expresión_final do
sentencia

for variable := expresión_inicial downto


expresión_final do
sentencia

17
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencia FOR (II)


• Funcionamiento
– Cuando entramos en el bucle se asigna el valor de
la expresión inicial a la variable (contador)
– Se ejecuta la sentencia del interior
– Se incrementa (decrementa con downto) en uno el
valor de la variable contador
– Se comprueba si el valor del contador es menor
(mayor en downto) que el valor de expresión final,
en ese caso se repite el proceso. En caso contrario
se sale del bucle
– La variable contador ha de ser de tipo entero
– Es ilegal y no aconsejable modificar expresión inicial
o expresión final o la variable de control en el bucle
18
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencia FOR (III)


• Ejemplo: suma de los números desde 1 hasta
uno dado suma = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + ...

program suma_numeros;
3+ 3 + 4 + 5 + 6 + 7 + 8 + ...
var
i, n, suma : integer;
begin 6+ 4 + 5 + 6 + 7 + 8 +...
writeln('Introduce el nº de
términos a sumar:'); 10 + 5 + 6 + 7 +8 + ...
readln(n);
suma := 0;
for i := 1 to n do
suma := suma + i;
writeln('La suma es:', suma)
end.
19
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencia WHILE (I)


• Sintaxis:

while condición do Falsa


condición
sentencia
Verdadera

sentencia

20
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencia WHILE (II)


• Funcionamiento:
– Se evalúa la condición:
• Si es verdadera se ejecuta la sentencia y vuelve al
comienzo
• Si es falsa salta a la siguiente sentencia a
continuación del while
– En el cuerpo del while debe haber una sentencia que
modifique alguna variable de la condición, sino
entraríamos en un BUCLE INFINITO
– Puede darse el caso no se llegue a ejecutar la sentencia

21
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencia WHILE (III)


• Ejemplo: cálculo del factorial de un número
program factorial;
var
valor, n, factorial : integer;
begin
writeln('Introduzca un número');
readln(n);
valor := n;
factorial := 1;
while n > 0 do
begin
factorial := factorial * n;
n := n - 1
end;
writeln('El factorial es: ', factorial)
end. 22
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencia REPEAT (I)


• Sintaxis:

repeat
sentencia
sentencia
until condición
Falsa
condición

Verdadera

23
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencia REPEAT (II)


• Funcionamiento:
– Se ejecuta la sentencia del bucle
– Se evalúa la condición:
• Si es falsa, se vuelve a ejecutar la sentencia
• Si es verdadera salta a la siguiente sentencia a
continuación del until
– En el cuerpo del repeat debe haber una sentencia
que modifique alguna variable de la condición, si no
entraríamos en un BUCLE INFINITO
– Siempre se ejecutan al menos una vez la sentencia
del bucle
– Admite varias sentencias sin necesidad de begin-
end
24
Tema 4: Sentencias de Control
METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I

Sentencia REPEAT (III)


• Ejemplo: cálculo de la suma del 1 al 100
program ejemplo_repeat;
const
nmax = 100;
var
n, suma : integer;
begin
writeln('El nº de términos a sumar es ', nmax);
suma := 0;
n := 1;
repeat
suma := suma + n;
n := n + 1
until n = nmax + 1;
writeln('La suma es: ', suma) 25
end. Tema 4: Sentencias de Control

También podría gustarte