UNIVERSIDAD PRIVADA ANTENOR ORREGO
INGENIERÍA DE SISTEMAS E INTELIGENCIA ARTIFICIAL
INGENIERÍA DE COMPUTACIÓN Y SISTEMAS
ALGORITMIA Y PROGRAMACIÓN
WALTER LAZO AGUIRRE
ALGORITMOS SELECTIVOS O CONDICIONALES
ALGORITMOS SELECTIVOS O CONDICIONALES
Estructuras de Control Básicas Utilizadas en Programación
La solución a todo problema se puede plantear en base a 3 tipos de instrucciones,
independientemente del tipo de problema. Estos tipos de instrucciones se denominan
Estructuras Básicas de Control y son las siguientes:
a) Proceso o Secuencia
b) Decisión o Selección
c) Iteración o Repetición
Decisión o Selección
Ocurre cuando una o más acciones se pueden llevar a cabo, dependiendo del valor de
una condición específica.
En este caso, se evalúa una condición. Si la condición es verdad se ejecutan una o más
instrucciones. En caso contrario (la condición es falsa) se ejecutan otras instrucciones o
no se hace nada.
Cuando se evalúa una condición (para tomar una decisión) se admiten sólo dos posibles
respuestas: SI o NO o sus equivalentes VERDADERO o FALSO (V/F).
La Decisión o Selección también se denomina estructura selectiva o condicional.
Cuando se elaboran algoritmos utilizando esta estructura, se denominan algoritmos
selectivos o condicionales.
Representación en N-S
Condición
V
InstrV1
InstrF1
F
InstrV2
InstrF2
...........
............
...........
...........
Interpretación
Representación en Java
Se evalúa la condición.
Luego:
SI Condición es VERDAD
Ejecutar InstrV1
InstrV2
............
SINO (Condición es Falsa)
Ejecutar InstrF1
InstrF2
. ............
if( Condición )
{ InstrV1;
InstrV2;
............
............
}
else{ InstrF1;
InstrF2;
.............
}
Para establecer una condición se utilizan operadores relacionales:
Operador
Mayor
Mayor o igual
Menor
Menor o igual
Igual
Diferente
Representación
en N-S
>
≥
<
≤
=
≠
Representación
en Java
>
>=
<
<=
==
!=
1
UNIVERSIDAD PRIVADA ANTENOR ORREGO
INGENIERÍA DE SISTEMAS E INTELIGENCIA ARTIFICIAL
INGENIERÍA DE COMPUTACIÓN Y SISTEMAS
ALGORITMIA Y PROGRAMACIÓN
WALTER LAZO AGUIRRE
ALGORITMOS SELECTIVOS O CONDICIONALES
Una condición puede ser una condición simple o una condición compuesta.
•
•
Condición simple: Formada por una sola pregunta
Ejemplos:
V
nota<11
F
if ( nota <11)
{
}
else{
}
V
N≠M
F
if ( N !=M )
{
}
else{
}
V
edad≥18
F
if (edad >=18)
{
}
else{
}
Condición Compuesta: Formada por dos o más condiciones simples.
En este caso las condiciones simples se conectan usando operadores lógicos.
Básicamente se utilizan los operadores AND y OR
Operador
Representación
en N-S
AND
OR
Λ
Representación
en Java
&&
||
V
Para el uso de estor operadores hay que tener en cuenta que ocurre cuando se tiene 2
condiciones y se utiliza el operador AND o que ocurre cuando se utiliza el operador OR.
Para esto usamos las tablas de verdad, y esto es extensible para 3 o más condiciones.
AND
Condición2
Condición2
V
F
Condición1
V
V
F
Condición1
F
F
F
Si condición1 es VERDAD Y
condición2 es VERDAD
entonces todo es VERDAD,
en cualquier otro caso,
todo es FALSO.
2
UNIVERSIDAD PRIVADA ANTENOR ORREGO
INGENIERÍA DE SISTEMAS E INTELIGENCIA ARTIFICIAL
INGENIERÍA DE COMPUTACIÓN Y SISTEMAS
ALGORITMIA Y PROGRAMACIÓN
OR
Condición2
Condición2
V
F
Condición1
V
V
V
Condición1
F
V
F
WALTER LAZO AGUIRRE
ALGORITMOS SELECTIVOS O CONDICIONALES
Si condición1 es FALSA y
condición2 es FALSA
entonces todo es FALSO,
en cualquier otro caso,
todo es VERDAD.
Ejemplos de condiciones compuestas:
if (nota>=0 && nota<=20)
{
}
else
{
}
if (sexo==’M’ || sexo==’F’)
{
}
else
{
}
if (nota>=0 && nota<=20 && ed>=0)
{
}
else
{
}
if ((sexo==’M’ || sexo==’F’)&&(ed>=0))
{
}
else
{
}
3
UNIVERSIDAD PRIVADA ANTENOR ORREGO
INGENIERÍA DE SISTEMAS E INTELIGENCIA ARTIFICIAL
INGENIERÍA DE COMPUTACIÓN Y SISTEMAS
ALGORITMIA Y PROGRAMACIÓN
WALTER LAZO AGUIRRE
ALGORITMOS SELECTIVOS O CONDICIONALES
Ejemplos:
1.-Leer un número N e indicar si, “es positivo” o “No es positivo”
Análisis: EFD
N
PROCESO
mensaje
Diseño de Algoritmo
Solución1
Solución 2
2.-Leer 2 números N1, N2 e indicar si, “Son iguales“ o “Son diferentes”
Análisis: EFD
N1 , N2
PROCESO
mensaje
Diseño de Algoritmo
Solución1
Solución 2
4
UNIVERSIDAD PRIVADA ANTENOR ORREGO
INGENIERÍA DE SISTEMAS E INTELIGENCIA ARTIFICIAL
INGENIERÍA DE COMPUTACIÓN Y SISTEMAS
ALGORITMIA Y PROGRAMACIÓN
WALTER LAZO AGUIRRE
ALGORITMOS SELECTIVOS O CONDICIONALES
3.-Ingresar un número N e indicar si,”Es positivo” o “Es negativo”
Análisis: EFD
N
PROCESO
mensaje
Diseño de Algoritmo
Solución 1: Incorrecta
Solución 2: Correcta
Se debe tener en cuenta que un número puede ser positivo, negativo o cero.
El cero, no es positivo ni negativo, es CERO.
4.-Ingresar 2 números N1, N2 e indicar cual es el mayor y cual es el menor.
Análisis: EFD
N1 , N2
PROCESO
mensaje
Diseño de Algoritmo
Solución 1: Incorrecta
Solución 2: Correcta
Se debe tener en cuenta que podría ser que los número sean iguales, por lo tanto no
habría ni mayor ni menor.
5
UNIVERSIDAD PRIVADA ANTENOR ORREGO
INGENIERÍA DE SISTEMAS E INTELIGENCIA ARTIFICIAL
INGENIERÍA DE COMPUTACIÓN Y SISTEMAS
ALGORITMIA Y PROGRAMACIÓN
WALTER LAZO AGUIRRE
ALGORITMOS SELECTIVOS O CONDICIONALES
5.-Ingresar la edad de un alumno e indicar si, es “Mayor de edad” o “Menor de edad”
Análisis: EFD
ed
PROCESO
mensaje
Diseño de Algoritmo
Solución 1: Incompleta
Es una solución
incompleta porque no
se verifica si la edad
ingresada es correcta.
Por ejemplo: Si se lee
ed = -15, la respuesta
sería es “menor de
edad”, pero -15 no es
una edad válida
6.-Ingresar la nota de un alumno e indicar si, es “Aprobado” o “Desaprobado”
Análisis: EFD
nota
PROCESO
mensaje
Diseño de Algoritmo
Solución 1: Incompleta
Es una solución
incompleta porque no
se verifica si la nota
ingresada es correcta.
Por ejemplo: Si se lee
nota = -15, la
respuesta sería, “Es
desaprobado”, pero
-15 no es una nota
válida
6
UNIVERSIDAD PRIVADA ANTENOR ORREGO
INGENIERÍA DE SISTEMAS E INTELIGENCIA ARTIFICIAL
INGENIERÍA DE COMPUTACIÓN Y SISTEMAS
ALGORITMIA Y PROGRAMACIÓN
WALTER LAZO AGUIRRE
ALGORITMOS SELECTIVOS O CONDICIONALES
7.-Ingresar el sexo de un alumno e indicar si, es “Masculino” o “Femenino”
Análisis: EFD
sexo
PROCESO
mensaje
Diseño de Algoritmo
Solución 1: Incompleta
Es una solución
incompleta porque no
se verifica si el sexo
ingresado es correcto.
Por ejemplo: Si se lee
sexo = X, la
respuesta sería, “Sexo
Femenino”, pero X
no es un sexo válido.
8.-Ingresar la estatura de un alumno e indicar si, es “Mayor o igual que 1.70” o “Menor
que 1.70”
Análisis: EFD
Estatura
PROCESO
mensaje
Diseño de Algoritmo
Solución 1: Incompleta
Es una solución
incompleta porque no
se verifica si la
Estatura ingresada es
correcta.
Por ejemplo: Si se lee
Estatura = -1.50, la
respuesta sería,
“Estatura menor que
1.70”, pero -1.50 no
es una estatura válida
7
UNIVERSIDAD PRIVADA ANTENOR ORREGO
INGENIERÍA DE SISTEMAS E INTELIGENCIA ARTIFICIAL
INGENIERÍA DE COMPUTACIÓN Y SISTEMAS
ALGORITMIA Y PROGRAMACIÓN
WALTER LAZO AGUIRRE
ALGORITMOS SELECTIVOS O CONDICIONALES
Validación de datos:
Cuando se dice “leer datos”, el usuario del programa puede ingresar cualquier valor
incluso valores erróneos.
El programador es responsable de incluir las instrucciones necesarias para que no se
permita trabajar con datos incorrectos, es decir debe incluir instrucciones que permitan
validar los datos ingresados.
Validar datos, es el proceso de verificar que, los datos con los cuales se trabaja, sean
valores correctos.
Para determinar si un valor es correcto o incorrecto, solo se requiere un poco de sentido
común. Veamos los siguientes ejemplos
Variable
Edad
Estatura
Precio
Cantidad
Peso
Temperatura
absoluta
Nota
Sexo
Valores correctos
Condición que deben
cumplir los datos
La edad debe ser positiva
Edad > 0
La estatura debe ser positiva
Estatura > 0
Los precios son positivos
Precio > 0
Toda cantidad es positiva
Cantidad > 0
El peso en positivo
Peso > 0
La temperatura absoluta puede ser cero Temp ≥ 0
o positiva
La nota en nuestro país es: de 0 a 20
Nota ≥ 0 y Nota≤ 20
Oficialmente se acepta:
Sexo=’M’ o Sexo =’F’
‘M’= Masculino o ‘F’ =Femenino
Ejemplos:
9.-Ingresar la edad de un alumno e indicar si, es “Mayor de edad” o “Menor de edad”
Análisis: EFD
ed
PROCESO
mensaje
Diseño de Algoritmo:
Solución completa: Se incluye validación de datos
Validación de edad:
Si la edad leída es
mayor que cero, se
continúa con
el
programa, sino, se
escribe un mensaje
de error y se termina.
8
UNIVERSIDAD PRIVADA ANTENOR ORREGO
INGENIERÍA DE SISTEMAS E INTELIGENCIA ARTIFICIAL
INGENIERÍA DE COMPUTACIÓN Y SISTEMAS
ALGORITMIA Y PROGRAMACIÓN
WALTER LAZO AGUIRRE
ALGORITMOS SELECTIVOS O CONDICIONALES
Opcionalmente si se desea, se puede considerar un límite superior para datos como
edad, estatura, peso, etc. Pero nunca pueden ser valores negativos o cero.
Diseño de Algoritmo
Solución completa: Se incluye validación de datos con límite superior para la edad.
Validación de edad:
Si la edad leída es
mayor que cero y
menor o igual que
110, se continúa con
el programa, sino, se
escribe un mensaje
de error y se termina.
10.-Ingresar la nota de un alumno e indicar si, es “Aprobado” o “Desaprobado”
Análisis: EFD
nota
PROCESO
mensaje
Diseño de Algoritmo:
Solución completa: Se incluye validación de datos
Validación de nota
Si la nota leída es
mayor o igual que
cero y menor o igual
que 20, se continúa
con el programa,
sino, se escribe un
mensaje de error y se
termina.
9
UNIVERSIDAD PRIVADA ANTENOR ORREGO
INGENIERÍA DE SISTEMAS E INTELIGENCIA ARTIFICIAL
INGENIERÍA DE COMPUTACIÓN Y SISTEMAS
ALGORITMIA Y PROGRAMACIÓN
WALTER LAZO AGUIRRE
ALGORITMOS SELECTIVOS O CONDICIONALES
11.-Ingresar el sexo de un alumno e indicar si, es “Masculino” o “Femenino”
Análisis: EFD
sexo
PROCESO
mensaje
Diseño de Algoritmo
Solución completa : se incluye validación de datos
Validación de sexo
Si el sexo leído es
‘M’ de masculino o
‘F’ de femenino, se
continúa con
el
programa, sino, se
escribe un mensaje
de error y se termina.
12.-Ingresar la estatura de un alumno e indicar si, es “Mayor o igual que 1.70” o
“Menor que 1.70”
Análisis: EFD
Estatura
PROCESO
mensaje
Diseño de Algoritmo
Solución completa: se incluye validación de datos
Validación
de
Estatura
Si la Estatura leída
es mayor que cero,
se continúa con el
programa, sino, se
escribe un mensaje
de error y se
termina.
10