29
ESTRUCTURA DE DECISION LOGICA

ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

Embed Size (px)

Citation preview

Page 1: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

ESTRUCTURA DE DECISION LOGICA

Page 2: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

MENU DEL DIA• Repaso clase anterior.• Ejemplos de repaso.• Pseudocódigo.• Diagramas de flujo.• Equivalencia entre

Pseudocódigo-diagramas de flujo.

• Estructuras de decisión lógica.

• Ejercicios de repaso.• Estructura CASO.

Page 3: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

REPASO CLASE ANTERIOR

PROBLEMA ALGORITMO

Page 4: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

REPASO CLASE ANTERIOR

algoritmo(nombre_algoritmo)Declaración de variablesINICIO instrucciones_programaFIN_INICIOfin(nombre_algoritmo)

algoritmo (nombre_algoritmo)variables: tipo_1: lista_variables_1 tipo_2: lista_variables_2 . . . tipo_N: lista_variables_Nconstantes: lista_identificadores = valor

INICIO sentencia_1 sentencia_2 . . . sentencia_NFIN_INICIOfin(nombre_algoritmo)

Page 5: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

REPASO CLASE ANTERIORalgoritmo (nombre_algoritmo)variables: tipo_1: lista_variables_1 tipo_2: lista_variables_2 . . . tipo_N: lista_variables_Nconstantes: lista_identificadores = valorINICIO sentencia_1 sentencia_2 . . . sentencia_NFIN_INICIOfin(nombre_algoritmo)

variables: entero: num_estudiantes real: prom_grupo, estatura, peso alfanumérica: nombre, identificación entero: num_clases = 0

constantes: PI = 3.14 TAMAÑO = 46 IVA = 0.16 asterisco = ‘*’ mensaje = “que hay de nuevo viejo”

INICIO instrucciones de asignación instrucciones de entrada (LEA) instrucciones de salida (ESCRIBA) Estructuras de controlFIN_INICIO

Page 6: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

PSEUDOCODIGO

algoritmo(nombre_algoritmo)Declaración de variablesINICIO instrucciones_programaFIN_INICIOfin(nombre_algoritmo)

Pseudocódigo Es un lenguaje de especificación (descripción) de algoritmos . Se considera un primer borrador dado que el pseudocódigo tiene que traducirse posteriormente a un lenguaje de programación.

Ventajas:• Se enfoca en la lógica del programa y no en las reglas de un lenguaje especifico.• Se puede traducir fácilmente a lenguajes estructurados (Pascal, C, C++).

Page 7: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

DIAGRAMAS DE FLUJODiagramas de flujo (flowchart):Es un diagrama que utiliza unos símbolos (cajas) estándar representando los pasos del algoritmo por medio de dichas cajas unidas por flechas (líneas de flujo), las cuales indican la secuencia que se debe ejecutar.

Page 8: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

EQUIVALENCIA PSEUDOCODIGO – DIAGRAMAS DE FLUJO (1)

Page 9: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

ESTRUCTURAS DE DECISION LOGICA

Estas estructuras se usan para la toma de decisiones lógicas.

Son usadas para elegir entre diferentes alternativas de acción.

SI (condicion) ENTONCES instrucciones_caso_verdaderoSI_NO instrucciones_caso_falsoFIN_SI

Page 10: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

ESTRUCTURAS DE DECISION LOGICA

SI (condicion) ENTONCES instrucciones_caso_verdaderoSI_NO instrucciones_caso_falsoFIN_SI

nota >=3.0edad < 18semestre == 1(a<6)^(a>=0)estatura < 1.23

c = a*b/(b+1)m = m + 1ESCRIBA(“Lo que sea”)LEA(a)c = (b*c)^2 + 1

Page 11: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

ESTRUCTURAS DE DECISION LOGICA

Palabras claves que impliquen la toma de decisiones lógicas:• tal cosa mayor que otra• menor que, inferior a• entre tal y tal cosa • sobre tal cosa• Información relacionada con rangos de valores (tablas).

Las horas superiores a 35 se pagan …

Si la nota es menos que 3.5 …

Si el numero de mesas compradas esta entre 30 y 40 el decuento …

Si la cantidad de costales comprada excede los 16 …

Si la cantidad de costales comprada excede los 16 …

Page 12: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

ALGUNOS EJEMPLOSEscribir las sentencias SI apropiadas para cada uno de las siguientes condiciones:

1. Si un ángulo es igual a 90°, imprimir el mensaje “El ángulo es recto” sino imprimir el mensaje “El ángulo no recto”.

SI (angulo == 90) ENTONCES ESCRIBA(‘El angulo es recto’)SI_NO ESCRIBA(‘El angulo no es recto’)FIN_SI

Page 13: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

ALGUNOS EJEMPLOS2. Si la temperatura es superior a 100 °C visualizar el mensaje: “Por encima del punto de

ebullición del agua” sino visualizar el mensaje “Por debajo del punto de ebullición del agua”.

SI (temp > 100) ENTONCES ESCRIBA(‘Por encima del punto de ebullicion del agua’)SI_NO ESCRIBA(‘Por debajo del punto de ebullicion del agua’)FIN_INICIO

Page 14: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

ALGUNOS EJEMPLOS3. Si X mayor que Y, y Z menor que 20 leer un valor para P.

SI ((X > Y)AND(Z>20)) ENTONCES LEA(P)FIN_SI

4. Si la distancia es mayor que 20 y menos que 35, leer un valor para tiempo.

SI ((distancia > 20)AND(distancia < 35)) ENTONCES LEA(tiempo)FIN_SI

Page 15: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

TIPOS DE ESTRUCTURAS DE DECISION LOGICA

Page 16: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

ALTERNATIVA SIMPLE

SI (condición) ENTONCES instrucciones_caso_verdaderoFIN_INICIO

En los problemas de este tipo la implementación de la condición falsa no se realiza .

Ejemplos:1.Las boleta de entrada a un circo vale $10000 por persona; sin embargo, si la edad de la persona es menor de 10 años se le da un descuento del 25% en el valor de la boleta. Realizar un algoritmo que despliegue el precio de la boleta según la edad.2.En una empresa le dan a los empleados un subsidio de transporte si el sueldo base de estos es menor que el salario mínimo, este subsidio es el 30% del sueldo base. Hacer un algoritmo que calcule el salario neto de un empleado (sueldo base mas prestaciones si el empleado tiene derecho a estas). Los datos de entrada son la cedula y el sueldo base.

Page 17: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

ALTERNATIVA DOBLEEn los problemas de este tipo la implementación de la condición falsa se realiza .

Ejemplos:1.Hacer un algoritmo que diga si una persona es mayor de edad o no.2.Hacer un algoritmo que diga si una persona es hombre o mujer.

SI (condicion) ENTONCES instrucciones_caso_verdaderoSI_NO instrucciones_caso_falsoFIN_INICIO

Page 18: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

ALTERNATIVA MULTIPLE

SI (condicion_1) ENTONCES instrucciones_1SI_NO SI (condicion_2) ENTONCES instrucciones_2 SI_NO . . . SI (condicion_N) ENTONCES instrucciones_N SI_NO . . . FIN_SI . . . FIN_SI FIN_SI

Alternativa múltiple (las condiciones pueden tomar mas de dos valores (rango) de modo que para la implementación de una condición se hace necesario anidar estructuras de decisión lógica).

Page 19: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

ALTERNATIVA MULTIPLEEjemplos:1.Se tiene la siguiente tabla en la cual se muestra el equivalente entre números y letras para la calificación en notas en una guardería. Realizar un algoritmo que entregue la letra equivalente cuando su ingresa una nota numérica.

Rango Nota

nota >= 4.5 E

4.0 <= nota < 4.5 B+

3.5 <= nota < 4.0 B

3.0 <= nota < 3.5 B-

nota < 3 I

Page 20: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

ALTERNATIVA MULTIPLE2. En la oficina del SISBEN están asegurando a la

población mas desamparada. Para evitar fraudes tienen un sistema de encuesta el cual solicita los siguientes datos: Cedula, sexo, estrato socio-económico y numero de integrantes del grupo familiar. En dicha encuesta, el sistema valida el sexo y el estrato socio-económico de tal manera que si el estrato es mayor o igual que 3 se rechaza la petición de afiliación notificando al encuestado dicho rechazo a la afiliación. Si el estrato es menor que 3, permite la afiliación del encuestado y de un numero de miembros que depende del sexo de este de tal forma que si es mujer es posible la afiliación de 5 miembros mas y si es hombre solo permite la afiliación de 4 miembros, esto siempre y cuando el numero de integrantes del grupo familiar sea mayor que esta cifra. En caso de aceptación el algoritmo debe imprimir la cedula del beneficiado y el numero total de cupos (incluyendo el suyo) a los cuales tiene derecho.

Page 21: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

ESTRUCTURA CASO• Esta es una estructura adicional para problemas que impliquen toma de decisiones.• Útil en la implementación de soluciones a problemas de alternativas múltiples

(solución a problemas de anidamiento).• En este tipo de estructura permite evaluar una expresión (selector) la cual puede

tomar n valores distintos (1, 2, 3, 4, …, n). A cada uno de los posibles valores que puede tomar el selector se asocian un conjunto de operaciones, de las cuales se ejecutaran las asociadas a el valor elegido para dicho selector.

selectorvalor_1

valor_2 valor_3

...instrucciones_1 instrucciones_2 instrucciones_3 instrucciones_n

valor_n

instruc_otros

otros

Page 22: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

ESTRUCTURA CASO

CASOS DE selector CASO valor_1: instrucciones_1CASO valor_2: instrucciones_2CASO valor_3: instrucciones_3. . .CASO valor_n: instrucciones_nOTROS_CASOS: instrucciones_otrosFIN_CASOS

SEGÚN_SEA selector HACER CASO valor_1: instrucciones_1CASO valor_2: instrucciones_2CASO valor_3: instrucciones_3. . .CASO valor_n: instrucciones_nOTROS: instrucciones_otrosFIN_CASOS

• Pseudocódigo

Page 23: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

ESTRUCTURA CASO• Software empleado

Page 24: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

ESTRUCTURA CASOEjemplos:1.Se desea diseñar un algoritmo que escriba los nombres de los días de la semana en función del valor de una variable día introducida por teclado.

algoritmo (dias)variables: entero: dia INICIO ESCRIBA(‘Meta el dia’) LEA(dia) CASOS DE dia CASO 1: ESCRIBA(‘Lunes’) CASO 2: ESCRIBA(‘Martes’) CASO 3: ESCRIBA(‘Miércoles’) CASO 4: ESCRIBA(‘Jueves’) CASO 5: ESCRIBA(‘Viernes’) CASO 6: ESCRIBA(‘Sábado’) CASO 7: ESCRIBA(‘Domingo’) OTROS CASOS : ESCRIBA(‘ERROR !!!’) FIN_CASOSFIN_INICIOfin(dias)

CASOS DE selector CASO valor_1: instrucciones_1CASO valor_2: instrucciones_2CASO valor_3: instrucciones_3. . .CASO valor_n: instrucciones_nOTROS_CASOS: instrucciones_otrosFIN_CASOS

Page 25: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

ESTRUCTURA CASOEjemplos:2.Se desea convertir las calificaciones alfabéticas A,B, C y D a calificaciones numéricas 4, 5, 6 y 7 respectivamente.

algoritmo (calificaciones)variables: entero: nota alfanumerico: letra INICIO ESCRIBA(‘Meta la letra’) LEA(letra) CASOS DE letra CASO ‘A’: nota = 4 ESCRIBA(‘Su nota es’, nota) CASO ‘B’: nota = 5 ESCRIBA(‘Su nota es’, nota) CASO ‘C’: nota = 6 ESCRIBA(‘Su nota es’, nota) CASO ‘D’: nota = 7 ESCRIBA(‘Su nota es’, nota) OTROS CASOS : ESCRIBA(‘ERROR !!!’) FIN_CASOSFIN_INICIOfin(calificaciones)

CASOS DE selector CASO valor_1: instrucciones_1CASO valor_2: instrucciones_2CASO valor_3: instrucciones_3. . .CASO valor_n: instrucciones_nOTROS_CASOS: instrucciones_otrosFIN_CASOS

Page 26: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

ESTRUCTURA CASO3. Están haciendo recolección de bachilleres para pagar servicio militar para lo

cual una vez termina el bachillerato un bachiller se tiene que presentar al sorteo y sacar una balota, hay tres posibles balotas, estas son: • Roja: Le toca pagar servicio inmediatamente.• Amarilla: Servicio militar aplazado.• Verde: Se salva.Hacer un algoritmo que simule esta situación.

4. Una empresa tiene cuatro escalas de salario numeradas consecutivamente del 1 al 4, además, tiene un programa de incentivos de acuerdo a la categoría y si el numero de unidades producidas es mayor que 50. Si esta en la categoría 1 se le da un incremento de sueldo equivalente al 5% de su salario, si esta en la 2 al 7%, si esta en la 3 al 10% y en la 4 al 15%; esto por cada empleado.

Se tiene la siguiente información: Nombres, salario mensual, categoría y numero de unidades producidas.

Hacer una algoritmo que determine el total devengado por cada empleado.

Page 27: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

BIBLIOGRAFIA

Page 28: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas

BIBLIOGRAFIA

Titulo: Lógica de Programación.Autor: Efraín M. Oviedo.Editorial: ECOE Ediciones.Fecha de publicación: 11/20/2008ISBN: 9586483088.OLC: http://ingenieria.udea.edu.co/~eoviedo/

Titulo: Fundamentos de Programación. Autor: Luis Joyanes Aguilar.Editorial: Mac Graw Hill.Fecha de publicación: 27/05/2008ISBN: 8448161114OLC: http://www.mhe.es/joyanes

Page 29: ESTRUCTURA DE DECISION LOGICA. MENU DEL DIA Repaso clase anterior. Ejemplos de repaso. Pseudocódigo. Diagramas de flujo. Equivalencia entre Pseudocódigo-diagramas