La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ESTRUCTURA DE DECISION LOGICA

Presentaciones similares


Presentación del tema: "ESTRUCTURA DE DECISION LOGICA"— Transcripción de la presentación:

1 ESTRUCTURA DE DECISION LOGICA

2 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.

3 REPASO CLASE ANTERIOR ALGORITMO PROBLEMA

4 REPASO CLASE ANTERIOR algoritmo (nombre_algoritmo) variables:
tipo_1: lista_variables_1 tipo_2: lista_variables_2 tipo_N: lista_variables_N constantes: lista_identificadores = valor INICIO sentencia_1 sentencia_2 sentencia_N FIN_INICIO fin(nombre_algoritmo) algoritmo(nombre_algoritmo) Declaración de variables INICIO instrucciones_programa FIN_INICIO fin(nombre_algoritmo)

5 REPASO CLASE ANTERIOR algoritmo (nombre_algoritmo) variables:
entero: num_estudiantes real: prom_grupo, estatura, peso alfanumérica: nombre, identificación entero: num_clases = 0 algoritmo (nombre_algoritmo) variables: tipo_1: lista_variables_1 tipo_2: lista_variables_2 tipo_N: lista_variables_N constantes: lista_identificadores = valor INICIO sentencia_1 sentencia_2 sentencia_N FIN_INICIO fin(nombre_algoritmo) 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 control FIN_INICIO

6 PSEUDOCODIGO algoritmo(nombre_algoritmo) Pseudocódigo
Declaración de variables INICIO instrucciones_programa FIN_INICIO fin(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++).

7 DIAGRAMAS DE FLUJO Diagramas 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.

8 EQUIVALENCIA PSEUDOCODIGO – DIAGRAMAS DE FLUJO (1)

9 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_verdadero SI_NO instrucciones_caso_falso FIN_SI

10 ESTRUCTURAS DE DECISION LOGICA
nota >=3.0 edad < 18 semestre == 1 (a<6)^(a>=0) estatura < 1.23 c = a*b/(b+1) m = m + 1 ESCRIBA(“Lo que sea”) LEA(a) c = (b*c)^2 + 1 SI (condicion) ENTONCES instrucciones_caso_verdadero SI_NO instrucciones_caso_falso FIN_SI

11 ESTRUCTURAS DE DECISION LOGICA
Las horas superiores a 35 se pagan … Si la nota es menos que 3.5 … 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). 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 …

12 ALGUNOS EJEMPLOS Escribir las sentencias SI apropiadas para cada uno de las siguientes condiciones: 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

13 ALGUNOS EJEMPLOS 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

14 ALGUNOS EJEMPLOS 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 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

15 TIPOS DE ESTRUCTURAS DE DECISION LOGICA
Alternativas en los problemas de decisión lógica Alternativa simple Alternativa doble Alternativa múltiple

16 ALTERNATIVA SIMPLE En los problemas de este tipo la implementación de la condición falsa no se realiza. SI (condición) ENTONCES instrucciones_caso_verdadero FIN_INICIO Ejemplos: 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. 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.

17 ALTERNATIVA SIMPLE 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. algoritmo(ejemplo1) variables: real: precio = 10000, descuento = 0 entero: edad INICIO ESCRIBA('Meta la edad') LEA(edad) SI(edad < 10) ENTONCES descuento = 0.25*precio FIN_SI precio = precio - descuento ESCRIBA('Como tiene ',edad,' años, le toca pagar $',precio) FIN_INICIO fin(ejemplo1) Archivo pseint: ejemplo1.

18 ALTERNATIVA SIMPLE 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. algoritmo (ejemplo2) variables: real: sal_base, sal_neto, subsidio = 0 alfanumerica: cedula constantes: MINIMO = INICIO ESCRIBA('Meta la cedula') LEA(cedula) ESCRIBA('Meta el salario base') LEA(sal_base) SI(sal_base < MINIMO) ENTONCES subsidio = 0.30*sal_base FIN_SI sal_neto = subsidio + sal_base ESCRIBA(cedula,' reciba ',sal_neto,' miserables pesos') FIN_INICIO fin(ejemplo2) Archivo pseint: ejemplo2.

19 ALTERNATIVA DOBLE En los problemas de este tipo la implementación de la condición falsa se realiza. SI (condicion) ENTONCES instrucciones_caso_verdadero SI_NO instrucciones_caso_falso FIN_INICIO Ejemplos: Hacer un algoritmo que diga si una persona es mayor de edad o no. Hacer un algoritmo que diga si una persona es hombre o mujer.

20 ALTERNATIVA DOBLE Hacer un algoritmo que diga si una persona es mayor de edad o no. algoritmo (ejemplo3) variables: entero: edad INICIO ESCRIBA('Digite la edad') LEA(edad) SI(edad >= 18) ENTONCES ESCRIBA('Usted es mayor de edad') SI_NO ESCRIBA('Usted es menor de edad') FIN_SI FIN_INICIO fin(ejemplo1) Archivo pseint: ejemplo3. Archivo pseudocódigo clase: ejemplo3.txt Problema: Que el usuario sea un tarado y meta una edad negativa

21 ALTERNATIVA DOBLE Hacer un algoritmo que diga si una persona es hombre o mujer. algoritmo (ejemplo2) variables: alfanumerica: sexo INICIO ESCRIBA('Digite F para mujer o M para hombre') LEA(sexo) SI(sexo == 'F' o sexo == 'f') ENTONCES ESCRIBA('Mujer') SI_NO ESCRIBA('Hombre') FIN_SI FIN_INICIO fin(ejemplo2) Archivo pseint: ejemplo4. Archivo pseudocódigo clase: ejemplo4.txt Problema: Que el usuario sea un tarado y meta una letra distinta a las solicitadas.

22 RECAPITULACION DEL PROBLEMA ANTERIOR
Niños, hasta ahora lo visto solo tenia si mucho 2 posibilidades, para manejar tanto tarado se tienen que tener en cuenta mas posibilidades tal y como lo veremos a continuación Oye chef, y que hacemos con tanto tarado que no sabe seguir las instrucciones de un programa Si chef, estoy confundido con tanto inepto

23 ALTERNATIVA MULTIPLE 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). SI (condicion_1) ENTONCES instrucciones_1 SI_NO SI (condicion_2) ENTONCES instrucciones_2 . . . SI (condicion_N) ENTONCES instrucciones_N FIN_SI

24 ALTERNATIVA MULTIPLE Ejemplos:
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

25 ALTERNATIVA MULTIPLE 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 Archivo pseint: ejemplo5. Archivo pseudocódigo clase: ejemplo5txt

26 ALTERNATIVA MULTIPLE Rango Nota nota >= 4.5 E
algoritmo (notas) variables: real: nota alfanumerica: letra INICIO ESCRIBA('Meta la nota') LEA(nota) SI ((nota>=0)AND(nota<=5)) ENTONCES SI (nota>=4.5) ENTONCES letra = 'E‘ ESCRIBA(nota,' igual a ',letra) SI_NO SI (nota>=4) ENTONCES letra = 'B+' SI (nota>=3.5) ENTONCES letra = 'B' SI (nota>=3) ENTONCES letra = 'B-' letra = 'I' FIN_SI ESCRIBA('ERROR: Nota no esta dentro del rango') FIN_INICIO fin(notas) ALTERNATIVA MULTIPLE 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

27 ALTERNATIVA MULTIPLE Rango Nota nota >= 4.5 E
B+ 3.5 <= nota < 4.0 B 3.0 <= nota < 3.5 B- nota < 3 I ALTERNATIVA MULTIPLE

28 ALTERNATIVA MULTIPLE 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. Archivo pseint: ejemplo6. Archivo pseudocódigo clase: ejemplo6.txt

29 ALTERNATIVA MULTIPLE algoritmo (sisben) variables: real: nota
alfanumerica: letra INICIO ESCRIBA('Digite la cedula') LEA(cedula) ESCRIBA('Digite el sexo (1 = mujer, 2 = hombre') LEA(sexo) ESCRIBA('Digite el numero de miembros del grupo familiar') LEA(n_integ) ESCRIBA('Digite el estrato') LEA(est) SI (est >= 3) ENTONCES ESCRIBA('señor con cedula ',cedula,' abrase pa la PM') SI_NO SI (sexo == 1) ENTONCES SI (n_integ >= 6) ENTONCES cupos = 6 cupos = n_integ FIN_SI SI (n_integ >= 5) ENTONCES cupos = 5 ESCRIBA('Señor con cedula ',cedula,' tiene derecho a: ',cupos, ' cupos') FIN_INICIO fin(sisben) ALTERNATIVA MULTIPLE

30 ALTERNATIVA MULTIPLE ... SI (est >= 3) ENTONCES
ESCRIBA('señor con cedula ',cedula,' abrase pa la PM') SI_NO SI (sexo == 1) ENTONCES SI (n_integ >= 6) ENTONCES cupos = 6 cupos = n_integ FIN_SI SI (n_integ >= 5) ENTONCES cupos = 5 ESCRIBA('Señor con cedula ',cedula,' tiene derecho a: ',cupos, ' cupos') ALTERNATIVA MULTIPLE

31 ALTERNATIVA MULTIPLE

32 MEJORANDO LOS PROGRAMAS QUE SE JODIAN POR CULPA DE LOS TARADOS
Haciendo uso de la alternativa múltiple es posible solucionar el problema de los programas anteriormente mostrados y hacerlos a prueba de tarados. Mirar los ejemplos 7 y 8 codificados en pseint. Acá va la salida cuando un tarado de la mierda se equivoca.

33 SOBRE LOS PROBLEMAS CON ALTERNATIVA MULTIPLE
La solución anidando condicionales no es la única, existen otras maneras, no olvidar ante todo que lo importante es la lógica y la idea es que el programa funcione bien. Todos los caminos conducen a Roma. Archivo pseint: ejemplo9.

34 SOBRE LOS PROBLEMAS CON ALTERNATIVA MULTIPLE
Archivo pseint: ejemplo5. Archivo pseint: ejemplo9. Si nota>=4.5 Entonces Escribir "Nota: E"; Sino Si nota>=4.0 Entonces Escribir "Nota: B+"; Si nota>=3.5 Entonces Escribir "Nota: B"; Si nota>=3.0 Entonces Escribir "Nota: B-"; Escribir "Nota: I"; FinSi Si nota>=4.5 Entonces Escribir "Nota: E"; FinSi Si nota>=4.0 Y nota < 4.5 Entonces Escribir "Nota: B+"; Si nota>=3.5 Y nota < 4.0 Entonces Escribir "Nota: B"; Si nota>=3.0 Y nota < 3.5 Entonces Escribir "Nota: B-"; Si nota < 3.0 Entonces Escribir "Nota: I";

35 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. valor_1 otros selector valor_2 valor_3 valor_n ... instrucciones_1 instrucciones_2 instrucciones_3 instrucciones_n instruc_otros

36 ESTRUCTURA CASO Pseudocódigo CASOS DE selector CASO valor_1:
instrucciones_1 CASO valor_2: instrucciones_2 CASO valor_3: instrucciones_3 . . . CASO valor_n: instrucciones_n OTROS_CASOS: instrucciones_otros FIN_CASOS SEGÚN_SEA selector HACER CASO valor_1: instrucciones_1 CASO valor_2: instrucciones_2 CASO valor_3: instrucciones_3 . . . CASO valor_n: instrucciones_n OTROS: instrucciones_otros FIN_CASOS

37 ESTRUCTURA CASO Software empleado

38 ESTRUCTURA CASO Ejemplos:
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_CASOS FIN_INICIO fin(dias) CASOS DE selector CASO valor_1: instrucciones_1 CASO valor_2: instrucciones_2 CASO valor_3: instrucciones_3 . . . CASO valor_n: instrucciones_n OTROS_CASOS: instrucciones_otros FIN_CASOS

39 ESTRUCTURA CASO Ejemplos:
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 CASO ‘C’: nota = 6 CASO ‘D’: nota = 7 OTROS CASOS : ESCRIBA(‘ERROR !!!’) FIN_CASOS FIN_INICIO fin(calificaciones) CASOS DE selector CASO valor_1: instrucciones_1 CASO valor_2: instrucciones_2 CASO valor_3: instrucciones_3 . . . CASO valor_n: instrucciones_n OTROS_CASOS: instrucciones_otros FIN_CASOS

40 ESTRUCTURA CASO 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. Solucion: ejemplo10. (Archivo pseint). 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. Solucion: ejemplo11. (Archivo pseint).

41 BIBLIOGRAFIA

42 BIBLIOGRAFIA Titulo: Lógica de Programación. Autor: Efraín M. Oviedo.
Editorial: ECOE Ediciones. Fecha de publicación: 11/20/2008 ISBN:  OLC: Titulo: Fundamentos de Programación. Autor: Luis Joyanes Aguilar. Editorial: Mac Graw Hill. Fecha de publicación: 27/05/2008 ISBN:  OLC:

43


Descargar ppt "ESTRUCTURA DE DECISION LOGICA"

Presentaciones similares


Anuncios Google