Está en la página 1de 13

TEMA 5: ESTRUCTURAS DE SELECCIÓN

Estructuras de selección: nos permiten alterar el orden de ejecución y decidir qué ejecutar y
qué no.

1-SELECCIÓN SIMPLE:
*Permite elegir qué acción realizar en función de una condición.
*condición: puede ser el cumplimiento de un conjunto de operaciones (operadores lógicos).
*Estructura:
ANSI C:

if(exp_condicional){
bloque_instrucciones
}

* bloque_instrucciones no necesita ir tabulado (se recomienda sí).


*Ejemplo:

….
if (a > b){
printf(“El valor mas grande es %d”, a);
}
……

PYTHON:

if(exp_condicional):
bloque_instrucciones

* bloque_instrucciones obligatoriamente tabulado.


*Ejemplo:

….
if a > b:
print(f“El valor mas grande es {a}”)
……
2-SELECCIÓN COMPLEMENTARIA:

*Permite elegir entre dos acciones complementarias y excluyentes.


*En función del cumplimiento de una condición
* Estructura:
ANSI C:

if(exp_condicional){
bloque_instrucciones_1
}else{
bloque_instrucciones_2
}
*bloque_instrucciones_1 y bloque_instrucciones_2 no necesitan ir tabulados(recomendable).
*Ejemplo:
….
if (a > b){
print(“El valor mas grande es %d”, a);
}else{
print(“El valor mas grande es %d”, b);
}

PYTHON:

if (exp_condicional) :
bloque_instrucciones_1
else:
bloque_instrucciones_2

*bloque_instrucciones_1 y bloque_instrucciones_2 siempre tabulados


*Ejemplo:
….
if (a > b):
print(f“El valor mas grande es {a}”)
else:
print(f“El valor mas grande es {b}”)
3-ANIDAMIENTO:

Supongamos el siguiente problema:

*Resolver una ecuación de primer grado


ax+b=0

*Análisis de las soluciones:

1º- Si a distinto de 0 entonces x=-b/a

2º - Si a=0:
(a) b ≠0 entonces solución imposible.

(b) b=0 entonces “solución indeterminada”

DISEÑO 1
ANSI C:

#include <stdio.h>
main(){
float a,b;
printf(“Dame un número a y b:”);
scanf(“%f%f”,&a,&b);
if (a!=0) {
printf(“El resultado es: %f”,-b/a);
}
else {
if (b!=0) {
printf(“La solución es imposible”);
}
else {
printf(“La solución es indeterminada”);
}
}
}
PYTHON:

print("Dame un número a y b: “,end=“”);


numeros= input()
v=numeros.split()
a = float(v[0])
b = float(v[1])

if a!=0:
print("El resultado es ",-b/a);
else:
if b!=0:
print("La solución es imposible.");
else:
print("La solución es indeterminada");
DISEÑO 2
ANSI C:

#include <stdio.h>
main(){
float a,b;

printf("Deme un número a y b:");


scanf("%f%f",&a,&b);

if (a!=0){
printf("El resultado es: %f",-b/a);
}else{
if ((a==0) && (b!=0)){
printf("La solución es imposible.");
}else{
if ((a==0) && (b==0)){
printf("La solución es indeterminada.");
}
}
}
}
PYTHON:

print("Dame un numero a y b: ", end="");


numeros= input()
v=numeros.split()
a = int(v[0])
b = int(v[1])

if a!=0:
print("El resultado es:", -b/a);
else:
if ((a==0) and (b!=0)):
print("La solución es imposible.");
else:
if ((a==0) and (b==0)):
print("La solución es indeterminada.");
4-SELECCIÓN MÚLTIPLE:
*Permite realizar una operación u otra en un algoritmo en función del valor de una expresión.
*Estructura:

ANSI C: no lo vamos a ver


PYTHON:
*Podemos evaluar diferentes expresiones para cada rama del flujo e ejecución.
*En función del valor lógico del resultado se ejecuta un bloque de operaciones u otro.
*Solo se pueden usar resultados de la expresión de tipo boolean.
*Sintaxis:

if condición:
bloque_operaciones_1
elif condición:
bloque_operaciones_1
elif condición:

else: #caso por defecto
bloque_operaciones_default

*Ejemplo:
Se desea diseñar e implementar un programa en Python que lea desde teclado una calificación
alfabética A,B,C,D,E y las convierta en las numéricas 9,7,5,3,1 respectivamente.
IMPLEMENTACIÓN EN PYTHON:

print("Dame una calificación");


nota=input()

if nota=="A":
print("La nota es 9");
elif nota=="B":
print("La nota es 7");
elif nota=="B":
print("La nota es 5");
elif nota=="D":
print("La nota es 3");
elif nota=="E":
print("La nota es 1");
else:
print("Nota desconocida");

También podría gustarte