Está en la página 1de 32

PROGRAMACION DIGITAL MA713-I 88

SENTENCIAS DE
CONTROL DE FLUJO

Decisión y Bifurcación
Bucles
PROGRAMACION DIGITAL MA713-I 89

Decisión y Bifurcación
Modifican el flujo secuencial en la ejecución del
programa.
Se denominan Condicionales o Bifurcaciones y
permiten elegir entre dos o más opciones según
ciertas condiciones.

En las condiciones se utilizarán:


Operadores relacionales : >, <, >=, <=, ==, !=
Operadores lógicos : &&, ||, !
PROGRAMACION DIGITAL MA713-I 90

Decisión y Bifurcación

• Sentencia if
• Sentencia if .. else
• Sentencia if .. else múltiple
• Sentencia switch
PROGRAMACION DIGITAL MA713-I 91

Sentencia if

Permite ejecutar o no una sentencia simple o


compuesta según se cumpla o no una
determinada condición.
~
F
if(expresion) expresión
sentencia; V
sentencia

La sentencia compuesta
forma un bloque { … }
~
PROGRAMACION DIGITAL MA713-I 92

Sentencia if

Ejm:
~
F
20 nota10

V
contaconta+1

Esc
“Aprobado”

~
PROGRAMACION DIGITAL MA713-I 93

Sentencia if

Ejm:

if (nota<=20 && nota>=10)


{conta++;
printf(“Aprobado”);
}
PROGRAMACION DIGITAL MA713-I 94

Sentencia if … else

Permite realizar una bifurcación, ejecutando una


parte u otra del programa, según se cumpla o no
una determinada condición.
~
if(expresion) V F
expresión
sentencia1;
else
sentencia2; sentencia1 sentencia2

~
PROGRAMACION DIGITAL MA713-I 95

Sentencia if … else
Ejm:

~
V F
20nota0

Esc Esc
“Nota Válida” “Nota no Válida”

~
PROGRAMACION DIGITAL MA713-I 96

Sentencia if … else
Ejm:

if (nota>=0 && nota<=20)


printf(“Nota V%clida”,160);
else
printf(“Nota no V%clida”,160);
PROGRAMACION DIGITAL MA713-I 97

Sentencia if … else múltiple

Permite realizar una ramificación múltiple


bifurcación, ejecutando una parte u otra del
programa, según se cumpla una entre n
condiciones.
PROGRAMACION DIGITAL MA713-I 98

Sentencia if … else múltiple


if(expr1) ~
sent1; V F
expr1
else if(expr2)
sent2; sent1 V
expr2
F

else if(expr3)
sent2 V F
sent3; expr3
else if(…) …
… sent3 sentn
[else
sentn;]
~
PROGRAMACION DIGITAL MA713-I 99

Sentencia if … else múltiple


~
V F
10nota 20

Esc V F
“Aprobado” 6 nota <10

Esc V F
“Desaprobado” 0 nota <6

Esc Esc
“Reprobado” “Nota no Válida”

~
PROGRAMACION DIGITAL MA713-I 100

Sentencia if … else múltiple

Ejm:
if(nota>=10 && nota<=20)
printf(“Aprobado”);
else
if(nota>=6 && nota<10)
printf(“Desaprobado”);
else
if(nota>=0 && nota<6)
printf(“Reprobado”);
else
printf(“Nota no válida”);
PROGRAMACION DIGITAL MA713-I 101

Situación 1
Ingresar por teclado un carácter y decir si el
carácter es un símbolo, número (0….9) o una letra
(A….Z, a….z, no incluir ñ o Ñ ni acentuadas).

Entrada Salida
car “Es símbolo”
“Es número”
“Es letra”
PROGRAMACION DIGITAL MA713-I 102

Sentencia switch

Alternativa múltiple, permite seleccionar, por


medio de una expresión, un bloque de sentencias
a ejecutar entre n posibles.
El resultado de evaluar la expresión debe ser un
valor perteneciente a un tipo de dato finito y
ordenado, es decir, entero, lógico, carácter,
enumerado o subrango.
PROGRAMACION DIGITAL MA713-I 103

Sentencia switch
switch(expr) {
case cte1:
sent1; ~
break;
cte1 cte2 expr cten default
case cte2:
sent2;
break; sent1 sent2 … sentn sent

case cten:
sentn;
break; ~
[default:
sent;]
}
PROGRAMACION DIGITAL MA713-I 104

Sentencia switch

~
3 4 lados 5 default

Escribir Escribir Escribir Escribir


“Triángulo” “Cuadrado” “Pentágono” “Otro”

~
PROGRAMACION DIGITAL MA713-I 105

Sentencia switch
Ejemplo:

switch(lados) {
case 3:
printf(“Triángulo”); break;
case 4:
printf(“Cuadrado”); break;
case 5:
printf(“Pentágono”); break;
default:
printf(“Otro”);
}
PROGRAMACION DIGITAL MA713-I 106

Bucles
Modifican el flujo secuencial en la ejecución del
programa.
Permiten repetir la ejecución de unos procesos un
determinado número de veces o hasta que se
cumpla una condición de tipo lógico.
PROGRAMACION DIGITAL MA713-I 107

Bucles

Sentencia while
Bucle con condición al inicio
Sentencia do .. while
Bucle con condición al final
Sentencia for
Bucle de repetición
PROGRAMACION DIGITAL MA713-I 108

Sentencia while

Permite ejecutar repetidamente una sentencia o


bloque de sentencias, mientras se cumpla una
determinada condición.
~
F
expresión
while (expresion)
V
sentencia;
sentencia

~
PROGRAMACION DIGITAL MA713-I 109

Ejemplo
Escribir un programa que permita ingresar
sucesivamente notas por teclado, verificando que
sean notas válidas.
El programa terminará cuando se ingrese una
nota no válida.
Dar como respuesta el promedio de las notas
ingresadas.
Entrada Salida
nota prom
PROGRAMACION DIGITAL MA713-I 110

Inicio

suma  0 
conta  0 prom  suma/conta
Leer Escribir
nota prom

F Fin
0 nota 20
V
suma  suma + nota

conta  conta + 1

Leer
nota


PROGRAMACION DIGITAL MA713-I 111

Sentencia do … while

Análoga a while, con la diferencia de que la


evaluación de la condición se realiza al final del
bucle, después de haber ejecutado al menos una
vez las sentencias. ~

do sentencia
sentencia;
while (expresion); V
expresión

F
~
PROGRAMACION DIGITAL MA713-I 112

Ejemplo
Realizar un programa que calcule el valor de ex
con un error menor a 10-4, dado que el valor del
exponencial para un valor de x se puede expresar
mediante la serie:

x2

x3

x4
2 !

3 !

4 !
e
1
x

.
.
.
x

     

Entrada Salida
x serie
PROGRAMACION DIGITAL MA713-I 113

Inicio

serie  0 
termino 1 Escribir
serie
conta  0
Fin
Leer
x

serie  serie + termino

conta  conta + 1

termino termino* x / conta

V
|termino| > 10-4

F

PROGRAMACION DIGITAL MA713-I 114

Sentencia for

Permite repetir una sentencia o bloque de


sentencias, mientras se cumple una determinada
condición.
PROGRAMACION DIGITAL MA713-I 115

Sentencia for
for(inicial; expr; increm)
sentencia;

~
Contador  inicio..fin , increm

sentencia

~
PROGRAMACION DIGITAL MA713-I 116

Ejemplo

Dados n números ingresados por teclado, escribir


un programa que permita determinar el mayor y el
menor de los n números.

Entrada Salida
n mayor
num menor
PROGRAMACION DIGITAL MA713-I 117

Inicio

Leer  
n,num

menor  num F
num > mayor
mayor  num
V
mayor  num
i  2 .. n

Leer
num
Escribir
F
num < menor mayor,menor

V Fin
menor  num

 
PROGRAMACION DIGITAL MA713-I 118

Situación Propuesta
Diseñe un programa que determine la cantidad de
cifras de un número natural y si sus cifras son o
no consecutivas de izquierda a derecha o de
derecha a izquierda.
Así por ejemplo:

1234 cifras consecutivas de izquierda a


derecha
765432 cifras consecutivas de derecha a
izquierda
82432 cifras no consecutivas
PROGRAMACION DIGITAL MA713-I 119

Situación 2

Entrada Salida
num ncifras
“cifras consecutivas de izquierda a
derecha”
“cifras consecutivas de derecha a
izquierda”
“cifras no consecutivas”

También podría gustarte