logica condicionales
TRANSCRIPT
Estructuras Condicionales
Grupo 248Docente: Ma. Eugenia Morales M.
Institución Universitaria de EnvigadoFacultad de Ingenierías
Representación
Funcionamiento Estructuras SimplesEstructuras Dobles
Estructuras AnidadasSelección Múltiple
Estructura de Decisión Lógica
Permite hacer preguntas, realizar comparaciones y tomar una decisiones, de manera flexible, teniendo en cuenta las posibles alternativas que se puedan presentar en un momento dado.
Representación de estructuras de Decisión (condicionales):
Las estructuras de decisión pueden ser:
◦ Simples
◦ Dobles o compuestas
◦ Anidadas y/o en Cascada
◦ Múltiples (Selección múltiple)
Condicionales
Es necesario tener en cuenta que:
◦ La condición debe cumplir con las normas de uso de los operadores (operando OPERADOR operando) por ejemplo: (a > b)
((a <> b) && (a <> c))
(x <= 10)
((x + y) < N)
((z == y) || (y == x))
◦ Las instrucciones deben ir indentadas (con sangría izquierda).
◦ Siempre se debe cerrar el condicional.
Condicional simple
Se evalúa una condición y sólo se tiene en cuenta la respuesta afirmativa:
Si (condición) Ent
Instrucciones;
Fin_si
Ejemplo con condicional simple:
Realizar una función que permita obtener el valor absoluto de un número.
//Declaración de la función:Int f_absoluto (int);
//Programa Principal e Invocación:Main ()Inicio
Int num = 0;Esc “Ingrese número: “;Lea num;Esc “El valor absoluto de: “, num, “ es: “,
f_absoluto (num);//Definición de la Función absoluto:Int f_absoluto ()Inicio
Si (num < 0) Entnum = num (-1);
Fin_siRetorne (num );
Fin
Condicional doble o compuesto
Se evalúa una condición la cual tiene dos opciones de respuesta (positiva y negativa):
Si (condición) Ent
Instrucciones;
Sino
Instrucciones;
Fin_si◦ Siempre se cierra el condicional después delSino.
Ejemplo con condicional doble:
Leer la edad de una persona e imprima si puede votar o no.
//Declaración de subprogramas:char Sub_voto (int);
//Programa Principal e Invocación:Main ()Inicio
int ed = 0;char rpta = „ „;rpta = Sub_voto (ed);Si ((rpta == „s‟) || (rpta == „S‟)) EntEsc “Puede votar”;
Fin
//Definición de los subprogramas:
char Sub_voto (int ed)Inicio
char res = „ „;Si (ed < 18) Ent
res = „n‟;Sino
res = „s‟;Fin_siRetorne (res);
Fin
Condicional anidado y/o en cascada:
En este caso, se evalúan n condiciones dentro deun mismo esquema, cada respuesta puede tener asu vez un condicional simple, uno doble u otroanidado:
Si (condición) Ent
Si (condición) Ent
Instrucciones;
Sino
Instrucciones;
Fin_si
Fin_si
Si (condición) EntSi (condición) Ent
Instrucciones;Sino
Si (condición) EntInstrucciones;
SinoInstrucciones;
Fin_siFin_si
SinoInstrucciones;
Fin_si
Ejemplo con condicionales anidados:
Deducir si un número leído desde elteclado es positivo, negativo o igual a 0.
//Declaración de subprogramas:Int Sub_num ( );
//Programa Principal e Invocación:main ()Inicio
Int op = 0;op = Sub_num ();Si ((op == 1) Ent
Esc “el número es positivo”;sino
Si (op == 2) EntEsc “el número es cero”;sino
Esc “El número es negativo”;Fin-si
Fin-siFin
//Definición de los subprogramas:Int Sub_num ()Inicio
int x, y = 0;
Si (x > 0) Enty = 1;Sino
Si (x == 0) Enty = 2;sino
Si (x < 0) Enty = 3;
fin-sifin-si
fin-siRetorne (y);Fin
Condicional múltiple
En este caso, se evalúa una expresión que podrátomar n valores distintos, según la elección serealizarán las instrucciones correspondientes;cuando una opción es elegida las demás sondescartadas:
En caso (condición):
Caso 1: Instrucciones;
Caso 2: Instrucciones;
…
Caso n: Instrucciones;
En otro caso: Instrucciones;
Fin_caso
Ejemplo con Condicional múltiple
De acuerdo a un número entre 1 y 7, mostrar eldía de la semana al cual corresponde:
//Declaración de subprogramas:void Sub_sna (int );
//Programa Principal e Invocación:main ()Inicio
Int dia = 0;Esc “Ingrese un número del 1 al 7: “;Lea dia;Llamar Sub_sna (dia);
Fin
//Definición de los subprogramas:void Sub_sna (int dia)Inicio
En caso (día):Caso 1: Esc “Domingo”;Caso 2: Esc “Lunes”;Caso 3: Esc “Martes”;Caso 4: Esc “Miércoles;Caso 5: Esc “Jueves”;Caso 6: Esc “Viernes”;Caso 7: Esc “Sábado”;En otro caso:
Esc “Error”;Fin_caso
Fin
Taller
1. Leer un número y mostrar si es par o impar.
2. Leer un número y mostrar si es par o impar y en ambos casos múltiplo de 5 de locontrario muestre un mensaje "No cumple condición".
3. Leer un carácter e indicar si es alfabético o numérico.
4. Se tiene la nota de un estudiante imprimir si ganó o perdió el examen.
5. Se tiene la nota promedio de un estudiante en la asignatura, mostrar si gana, pierdeo habilita (nota > 2.6)
6. Leer tres números cualquiera e imprimir cuál es el mayor.
7. Elaborar un programa que lea código, nombre y salario básico (SB) de un empleado.Sí, el empleado gana el SMLV darle subsidio de transporte y un subsidio dealimentación del 20% de su SB. Sí gana más del mínimo darle un subsidio del 10%de su SB. Imprimir el código, el nombre y el salario Neto.
8. Se tiene las notas del examen parcial, final y el seguimiento de un estudiante.Calcular la nota definitiva, teniendo en cuenta que el seguimiento 60% y cadaexamen un 20%. Mostrar si ganó, perdió o habilita (nota >2.6 y nota < 3.0)
9. Leer el SB y NHT de un empleado. Averiguar si tiene derecho al subsidio detransporte (SB <= $566.700) y calcularle el Salario Neto.
10. Se tiene el nombre de un vendedor, el valor de la venta y el código del producto. Lacomisión de este vendedor se le liquida de acuerdo al código del producto quevende: si el código del producto es 1 la comisión es del 10% sobre el valor de susventas; si el código del producto es 2 la comisión es del 15% sobre el valor de susventas; si el código del producto es 3 la comisión es del 20% sobre el valor de susventas. Imprima el nombre del vendedor y su comisión.