F
I
E
E
-
2
0
1
3
SENTENCIAS DE
CONTROL
Ing. José Antonio Poma G.
F
I
E
E
-
2
0
1
3 Estructuras selectivas
 Son estructuras de control que nos permiten
tomar decisiones lógicas.
 Consiste en evaluar una expresión, y con un
resultado obtenido realizar una determinada
acción.
 Las estructuras selectivas pueden ser de tres
tipos.
 Alternativa Simple – sentencia if
 Alternativa doble – if…else
 Alternativa multiple
Sentencia if anidadas
Sentencias switch
F
I
E
E
-
2
0
1
3 SENTENCIAS IF
sentencia condicional simple
 Se trata de una sentencia que, tras evaluar una
expresión lógica, ejecuta una serie de sentencias en
caso de que la expresión lógica sea verdadera. Su
sintaxis es
if(expresión lógica) {
sentencias
.
}
F
I
E
E
-
2
0
1
3 Ejemplo
if(nota>=5){
printf(“Aprobado”);
aprobados++;
}
Ilustración 1, Diagrama de actividad del if simple
F
I
E
E
-
2
0
1
3 sentencia condicional compuesta
F
I
E
E
-
2
0
1
3 sentencia condicional compuesta
 Es igual que la anterior, sólo que se añade un
apartado else que contiene instrucciones que
se ejecutarán si la expresión evaluada por el if
es falsa. Sintaxis:
if(expresión lógica){
sentencias
.
}
else {
sentencias
}
F
I
E
E
-
2
0
1
3 Ejemplo
if(nota>=5){
printf(“Aprobado”);
aprobados++;
}
else {
printf(“Suspensos”);
suspensos++;
}
F
I
E
E
-
2
0
1
3 Anidación
 Dentro de una sentencia if se puede colocar otra sentencia
if. A esto se le llama anidación y permite crear programas
donde se valoren expresiones complejas. Por ejemplo en
un programa donde se realice una determinada operación
dependiendo de los valores de una variable.
if (x==1) {
sentencias
…
}else {
if(x==2) {
sentencias
…
}else {
if(x==3) {
sentencias …
}
}
}
F
I
E
E
-
2
0
1
3 Anidación
 Si-sino-si anidada (if-else-if): cuando se anidan
instrucciones if, se debe tener en cuidado de se saber en
todo momento la else que coresponde con cada if.
F
I
E
E
-
2
0
1
3 if – else - if
 Si-sino-si (if-else-if): se utiliza la combinacion de
instrucciones if-else-if para realizar comparaciones
sucesivas multiples.
F
I
E
E
-
2
0
1
3
F
I
E
E
-
2
0
1
3 operador condicinal
El operador condicinal (?:) : la instrucción condicional ?
Proporciona una forma rápida de escribir una condición de
evaluacion. El operador se utiliza para sustituir una instrucción
if-else equivalente.
F
I
E
E
-
2
0
1
3 SENTENCIAS SWITCH
 Se trata de una sentencia que permite construir
alternativas múltiples. Pero que en el lenguaje C
está muy limitada. Sólo sirve para evaluar el
valor de una variable entera (o de carácter, char).
 Tras indicar la expresión entera que se evalúa, a
continuación se compara con cada valor
agrupado por una sentencia case. Cuando el
programa encuentra un case que encaja con el
valor de la expresión se ejecutan todos los case
siguientes.
 Por eso se utiliza la sentencias break para hacer
que el programa abandone el bloque switch.
Sintaxis:
F
I
E
E
-
2
0
1
3 SENTENCIAS SWITCH
switch(expresión entera){
case valor1:
sentencias
break; /*Para que programa salte fuera del switch de otro modo
atraviesa todos los demás case */
case valor2:
sentencias
...
default:
sentencias
}
F
I
E
E
-
2
0
1
3 SENTENCIAS SWITCH
switch (diasemana) {
case 1:
printf(”Lunes”);
break;
case 2:
printf(”Martes”);
break;
case 3:
printf(”Miércoles”);
break;
case 4:
printf(”Jueves”);
break;
case 5:
printf(”Viernes”);
break;
case 6:
printf(”Sábado”);
break;
case 7:
printf(”Domingo”);
break;
default:
std::cout<<”Error”;
}
F
I
E
E
-
2
0
1
3 Selección de casos (switch - case)
 Selección de casos (switch - case) : para la evaluación de
una variable o una expresión frente a varios valores, se
podrían utilizar instrucciones if-else-if anidadas o una
instrucción switch
F
I
E
E
-
2
0
1
3
F
I
E
E
-
2
0
1
3 Tarea
1. ¿Cuáles y cuántos son los números primos
comprendidos entre 1 y 1000?
2. Calcular el máximo de números positivos
introducidos por teclado, sabiendo que
metemos números hasta que
introduzcamos uno negativo. El negativo
no cuenta.
3. Determinar cuales son los múltiplos de 5
comprendidos entre 1 y N.
F
I
E
E
-
2
0
1
3 Solución
Algoritmo n_primos
Const
Primero=1
Limite=1000
Var
cont, i, j: entero
primo: boolean
Inicio
Cont  0
Desde i= primero hasta limite
primo  verdadero
j  2
mientras (i>j) y (primo =verdadero)
Si i mod j = 0
Entonces primo  falso
Sino j  j + 1
Fin si
Fin mientras
Si primo = verdadero
Entonces escribir i” “
Cont  cont + 1
Fin si
Fin desde
Escribir “Entre “primero” y “limite” hay “cont” nº primos”
Fin
F
I
E
E
-
2
0
1
3 Solución
Algoritmo maximo
Var
Num, max: entero
Inicio
Max  0
Escribir “Introduzca nº positivos y para acabar introduzca uno negativo”
Leer num
Mientras num >=0
Si num >max
Entonces max  num
Fin si
Leer num
Fin mientras
Escribir “El mayor número es” max
Fin
F
I
E
E
-
2
0
1
3 Solución
Algoritmo multiplos
Var
i: entero
Inicio
Desde i=1 hasta n
Si i mod 5 =0
Entonces escribir i
Fin si
Fin desde
Fin

Switch.ppsx

  • 1.
  • 2.
    F I E E - 2 0 1 3 Estructuras selectivas Son estructuras de control que nos permiten tomar decisiones lógicas.  Consiste en evaluar una expresión, y con un resultado obtenido realizar una determinada acción.  Las estructuras selectivas pueden ser de tres tipos.  Alternativa Simple – sentencia if  Alternativa doble – if…else  Alternativa multiple Sentencia if anidadas Sentencias switch
  • 3.
    F I E E - 2 0 1 3 SENTENCIAS IF sentenciacondicional simple  Se trata de una sentencia que, tras evaluar una expresión lógica, ejecuta una serie de sentencias en caso de que la expresión lógica sea verdadera. Su sintaxis es if(expresión lógica) { sentencias . }
  • 4.
  • 5.
  • 6.
    F I E E - 2 0 1 3 sentencia condicionalcompuesta  Es igual que la anterior, sólo que se añade un apartado else que contiene instrucciones que se ejecutarán si la expresión evaluada por el if es falsa. Sintaxis: if(expresión lógica){ sentencias . } else { sentencias }
  • 7.
  • 8.
    F I E E - 2 0 1 3 Anidación  Dentrode una sentencia if se puede colocar otra sentencia if. A esto se le llama anidación y permite crear programas donde se valoren expresiones complejas. Por ejemplo en un programa donde se realice una determinada operación dependiendo de los valores de una variable. if (x==1) { sentencias … }else { if(x==2) { sentencias … }else { if(x==3) { sentencias … } } }
  • 9.
    F I E E - 2 0 1 3 Anidación  Si-sino-sianidada (if-else-if): cuando se anidan instrucciones if, se debe tener en cuidado de se saber en todo momento la else que coresponde con cada if.
  • 10.
    F I E E - 2 0 1 3 if –else - if  Si-sino-si (if-else-if): se utiliza la combinacion de instrucciones if-else-if para realizar comparaciones sucesivas multiples.
  • 11.
  • 12.
    F I E E - 2 0 1 3 operador condicinal Eloperador condicinal (?:) : la instrucción condicional ? Proporciona una forma rápida de escribir una condición de evaluacion. El operador se utiliza para sustituir una instrucción if-else equivalente.
  • 13.
    F I E E - 2 0 1 3 SENTENCIAS SWITCH Se trata de una sentencia que permite construir alternativas múltiples. Pero que en el lenguaje C está muy limitada. Sólo sirve para evaluar el valor de una variable entera (o de carácter, char).  Tras indicar la expresión entera que se evalúa, a continuación se compara con cada valor agrupado por una sentencia case. Cuando el programa encuentra un case que encaja con el valor de la expresión se ejecutan todos los case siguientes.  Por eso se utiliza la sentencias break para hacer que el programa abandone el bloque switch. Sintaxis:
  • 14.
    F I E E - 2 0 1 3 SENTENCIAS SWITCH switch(expresiónentera){ case valor1: sentencias break; /*Para que programa salte fuera del switch de otro modo atraviesa todos los demás case */ case valor2: sentencias ... default: sentencias }
  • 15.
    F I E E - 2 0 1 3 SENTENCIAS SWITCH switch(diasemana) { case 1: printf(”Lunes”); break; case 2: printf(”Martes”); break; case 3: printf(”Miércoles”); break; case 4: printf(”Jueves”); break; case 5: printf(”Viernes”); break; case 6: printf(”Sábado”); break; case 7: printf(”Domingo”); break; default: std::cout<<”Error”; }
  • 16.
    F I E E - 2 0 1 3 Selección decasos (switch - case)  Selección de casos (switch - case) : para la evaluación de una variable o una expresión frente a varios valores, se podrían utilizar instrucciones if-else-if anidadas o una instrucción switch
  • 17.
  • 18.
    F I E E - 2 0 1 3 Tarea 1. ¿Cuálesy cuántos son los números primos comprendidos entre 1 y 1000? 2. Calcular el máximo de números positivos introducidos por teclado, sabiendo que metemos números hasta que introduzcamos uno negativo. El negativo no cuenta. 3. Determinar cuales son los múltiplos de 5 comprendidos entre 1 y N.
  • 19.
    F I E E - 2 0 1 3 Solución Algoritmo n_primos Const Primero=1 Limite=1000 Var cont,i, j: entero primo: boolean Inicio Cont  0 Desde i= primero hasta limite primo  verdadero j  2 mientras (i>j) y (primo =verdadero) Si i mod j = 0 Entonces primo  falso Sino j  j + 1 Fin si Fin mientras Si primo = verdadero Entonces escribir i” “ Cont  cont + 1 Fin si Fin desde Escribir “Entre “primero” y “limite” hay “cont” nº primos” Fin
  • 20.
    F I E E - 2 0 1 3 Solución Algoritmo maximo Var Num,max: entero Inicio Max  0 Escribir “Introduzca nº positivos y para acabar introduzca uno negativo” Leer num Mientras num >=0 Si num >max Entonces max  num Fin si Leer num Fin mientras Escribir “El mayor número es” max Fin
  • 21.
    F I E E - 2 0 1 3 Solución Algoritmo multiplos Var i:entero Inicio Desde i=1 hasta n Si i mod 5 =0 Entonces escribir i Fin si Fin desde Fin