LÓGICA - DECISIONES Los valores lógicos: constantes, variables y expresiones lógicas, permiten controlar la ejecución de las sentencias de un programa.

Slides:



Advertisements
Presentaciones similares
Estructuras de control
Advertisements

Compiladores e intérpretes Análisis Sintáctico II
Programación de Computadores
ESTRUCTURA DE DECISION LOGICA
Estructuras de Decisión I IF - THEN - ELSE
Programación Básica con NQC Pedro F. Toledo – Patricio Castillo 18/08/2006.
Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones.
Elementos de Pascal Escribir un programa en Pascal que lea los valores de los catetos de un triángulo rectángulo y calcule y muestre la hipotenusa. program.
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Unidad 4. Estructuras de selección
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Módulo 5: Estructuras de Decisión y Bucles
FORTRAN 77 y Cómputo Científico
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Temas Operaciones básicas Operaciones Operadores Aritméticos
Estructuras de Control
Curso de Programación I Parte III
ESTRUCTURAS DE CONTROL SELECTIVA LUIS OCTAVIO BUSTAMANTE Docente Colegio de la UPB.
VISUAL BASIC CONSOLA Todas las ordenes o instrucciones se digitan dentro de sub Main() y End Sub ÁREA DE TRABAJO: Las aplicaciones de consola son aquellas.
4: Control de flujo Condicionales y bucles
MÓDULO DE PROCEDIMIENTOS Los módulos también pueden contener subrutinas y funciones → MÓDULO DE PROCEDIMIENTOS  PROCEDIMIENTOS → son compilados como parte.
Tema 6. Conceptos básicos de programación
Diseño descendente Diseño descendente, top-down, que consiste en dividir el problema en subproblemas más pequeños, que se pueden tratar de forma separada.
PSEUDOCÓDIGO. DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE REPRESENTACIÓN DE ALGORITMOS.
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
ESTRUCTURAS DE CONTROL
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
ESTRUCTURAS CONTROL SECUENCIAL
Sesión 6 Sentencias de Repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Trabajo Practico 2 Nombre: Indira Diana. Ejercicio numero 1 C C Numero = 0 Numero > 0 numero positivo nulo negativo F F Verdadero Ingresar un número cualquiera.
Brazos Bloque IF Permite que se ejecuten una serie de tareas si y sólo si una expresión lógica es verdadera. IF(logical_exp) then sentencia1 sentencia2.
Arrays (introducción)
Diseño de diagramación Diagrama: es una representación gráfica del flujo información de y el proceso de ejecución del programa. Plateo del problema en.
Capítulo 1 “Elementos de Programación”
Conversión cadena a número
SENTENCIAS DE CONTROL Ing. José Antonio Poma G..
Sentencias de selección
ESTRUCTURA DE DECISION LOGICA
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
ESTRUCTURA DE DATOS ESD-243
Informática Ingeniería en Electrónica y Automática Industrial
Ciclos (Loops, Repeticiones) Permiten ejecutar una secuencia de sentencias mas de una vez. Hay 2 tipos de loops:  WHILE repite la acción un número indefinido.
Resumen Fundamentos de Programación/ Programación I
Teoría – Alejandro Gonzalez
Unidad II: Fundamentos de Programación
VBA – Elementos del Lenguaje
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/08/2006.
Informática Tema5- Estructuras de Control en C:
PENSAMIENTO ANALÍTICO SISTÉMICO DAISY KATERINE RODRÍGUEZ DURÁN
Inicialización de arreglos de 2 variables INTEGER, DIMENSIÓN (4, 3) : : ini DO i=1, 4 DO j= 1,3 ini(i, j) = j END DO i=1123 i=2123 i=3123 i=4123 j=1j=2j=3.
COMPUTO III Ing. Jimmy Ojeda Arnica.

27 de marzo de 2010 Presentan: Díaz Orea Elizabeth Leal Alvarado Angelina.
Estructuras selectivas
Informática Prof. María Alejandra Quintero.  Operadores relacionales  Operadores lógicos  Expresiones lógicas  Estructuras de decisión simple  Estructuras.
Estructuras de Decisión
Lic. Carla Aguirre Montalvo
Programación de Computadores
Ada 2º Parte (variables, ámbitos, subrutinas, tipos abstractos de datos y excepciones)
REGLAS PARA ELABORAR SEUDOCODIGOS Y DIAGRAMA DE FLUJO
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
Estructuras de Decisión en Visual Basic 6.0
MC. J. D. Pope S. ITD Unidad II. Introducción a la programación 2.1 Ejemplo de programas 2.2 Identificadores, constantes y variables 2.3 Tipos de datos:
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Tema – 5 Construcciones condicionales Introducción En un programa es usual ejecutar unas instrucciones u otras en función de unas condiciones especificadas.
Introducción a la programación 2.1 Análisis de algoritmos computacionales 2.2 Tipos de datos definidos por el usuario 2.3Declaración de variables y constantes.
Este material ha sido desarrollado para alumnos que cursan la asignatura de Programación Básica impartida en el primer semestre en la Facultad de Ingeniería.
ESTRUCTURAS SELECTIVAS Elaborado por; Ing. Alberto Pérez.
Camilo Andrés Salazar González FORTRAN.  Estructura program circulo Real :: r, area write (*,*) 'Escribe el radio r:' read (*,*) r area = *r*r.
ALGORITMOS Asignatura: Informática. Algoritmos Conjunto de instrucciones ordenadas de forma lógica y precisa, con un inicio y fin que permite resolver.
Transcripción de la presentación:

LÓGICA - DECISIONES Los valores lógicos: constantes, variables y expresiones lógicas, permiten controlar la ejecución de las sentencias de un programa. Hay dos tipos de expresiones lógicas: las expresiones lógicas relacionales y las expresiones lógicas combinacionales. Las expresiones lógicas relacionales comparan los valores de dos expresiones aritméticas o dos expresiones de tipo carácter. Las expresiones lógicas combinacionales representan operaciones lógicas entre constantes, variables y otras expresiones lógicas.

Expresiones lógicas relacionales Las expresiones lógicas relacionales comparan los valores de dos expresiones aritméticas o dos expresiones de tipo carácter. La evaluación de una expresión lógica relacional produce un resultado de tipo lógico:.TRUE. o.FALSE. Sintaxis: operando1 OPERADOR_LÓGICO_RELACIONAL operando2 operando es una expresión, variable o constante aritmética o de tipo carácter. Operador LÓGICO relacional Significado F77F90/95.EQ.= Igual.NE./=Distinto.LT.<Menor que.LE.<=Menor o igual que.GT.>Mayor que.GE.>=Mayor o igual que Los operadores lógicos relacionales de Fortran 77 han sobrevivido y funcionan en los compiladores de Fortran 90/95. Por ello, es interesante que el programador los reconozca en los programas, sin embargo, es preferible que utilice la forma de Fortran 90 en sus programas nuevos, que es mucho más intuitiva.

Expresiones lógicas relacionales (ejemplos) Sea la sentencia de declaración de tipos: INTEGER :: I=3, J=5 OPERACIÓN RESULTADO 3 <= I.TRUE. J**2-1 >= 0.TRUE. I = = J.FALSE. I /= 10.TRUE. ‘ANA’ < ’PEPE’.TRUE. No son válidas las siguientes expresiones lógicas relacionales: <= 5 (falta operando 1) 8.44 /= 'XYZ' (no se pueden comparar reales con caracteres) I = 3(es una sentencia de asignación) No confundir el operador lógico relacional de igualdad con el operador de asignación.

Expresiones lógicas combinacionales Sintaxis: La evaluación de una expresión lógica combinacional produce un resultado de tipo lógico:.TRUE. o.FALSE. operando es una expresión relacional, variable lógica o constante lógica. Operando1 no existe cuando el operador lógico usado es unario. operando1 OPERADOR_LÓGICO_COMBINACIONAL operando2 Las expresiones lógicas combinacionales representan operaciones lógicas entre constantes, variables y otras expresiones lógicas. OperadorTIPOSIGNIFICADO.NOT.UnarioEs lo opuesto a operando2.AND.BinarioEs.true. si y sólo si operando1 y operando2 son.true..OR.BinarioEs.true. si uno de los dos operandos ES.true..EQV.BinarioEs.true. si y sólo si los dos operandos son.true. o los dos operandos son.false..NEQV.BinarioEs.true. si y sólo si los dos operandos tienen valores distintos

Expresiones lógicas combinacionales (ejemplos) Sea: LOGICAL:: L1=.TRUE., L2=.TRUE., L3=.FALSE. OPERACIÓN RESULTADO.NOT.L1.FALSE. L1.AND.L3.FALSE. L1.OR.L3.TRUE. L1.AND.L2.OR.L3.TRUE. No es válida la siguiente expresión: 4.AND.3 da error al compilar

Precedencias lógicas-aritméticas Expresiones lógicas combinacionales Operador ( ).NOT..AND..OR..EQV.,.NEQV. Prioridad Mayor Menor Si una expresión lógica contiene dos o más operadores de la misma precedencia se siguen las siguientes reglas: Cuando tiene paréntesis anidados, éstos se evalúan desde el más interno hasta el más externo. Si hay varios operadores.EQV. y/o.NEQV. se evalúan de izquierda a derecha. Prioridad Mayor Menor Operador ** *, / +, -.GT.,.GE.,.LT.,.LE.,.EQ.,.NE..NOT..AND..OR..EQV.,.NEQV. Combinación de expresiones Operadores aritméticos Operadores lógicos relacionales Operadores lógicos combinacionales

Bloque IF (I) Permite que un bloque de sentencias (puede ser sólo una) sea ejecutado si y sólo si el valor de una expresión lógica es cierta. Si la expresión lógica es falsa se salta ese bloque de sentencias y se ejecuta la siguiente primera sentencia ejecutable. Sintaxis: IF (expresión lógica) THEN bloque de sentencias END IF ENDIF marca la terminación de la sentencia de bloque IF. El bloque de sentencias suele dentarse varios espacios para facilitar la lectura del bloque IF, aunque no es obligatorio hacerlo. La estructura del bloque IF puede ser más complicada. A veces, se quiere ejecutar diferentes bloques de sentencias dependiendo de que otras tantas condiciones sean ciertas. Por ejemplo: IF (expresión lógica 1) THEN bloque de sentencias 1 ELSE IF (expresión lógica 2) THEN bloque de sentencias 2 ELSE bloque de sentencias 3 END IF

Bloque IF (II) La forma general responde a la siguiente sintaxis: Cuando una expresión lógica es cierta se ejecuta el bloque de sentencias correspondiente y se salta a la primera sentencia ejecutable por debajo de END IF. Cuando todas las expresiones son falsas y el bloque IF incluye la cláusula ELSE se ejecuta su bloque de sentencias. Cuando el bloque IF no incluye la cláusula ELSE y ninguna de las expresiones lógicas sean ciertas no se ejecuta ninguno de los bloques de sentencias dados. IF (expresión lógica 1) THEN bloque de sentencias 1 [ELSE IF (expresión lógica 2) THEN bloque de sentencias 2]... [ELSE bloque de sentencias n] END IF

Bloque IF con nombre Es posible asignar un nombre a un bloque IF. La sintaxis general de un bloque IF con nombre es: Es recomendable usar nombres en los bloque IF largos y complicados. Por un lado, el programador estructura mejor los programas y, por otro, el compilador encuentra errores en su código de forma más precisa. [nombre:] IF (expresión lógica 1) THEN bloque de sentencias 1 [ELSE IF (expresión lógica 2) THEN [nombre] bloque de sentencias 2] … [ELSE [nombre] bloque de sentencias n] END IF [nombre] Además, los bloques IF pueden estar anidados. Dos bloques IF se dice que están anidados cuando uno de ellos se encuentra dentro de otro. En este caso, cada uno de los bloques IF requiere su propia sentencia ENDIF. Ejemplo [nombre_externo:] IF (expresión lógica 1) THEN bloque de sentencias 1 [nombre_interno:]IF (expresión lógica 2) THEN bloque de sentencias 2 END IF [nombre_interno] END IF [nombre_externo]

Ejemplo de bloque IF I (Valor absoluto) Leer n Escribir n n < 0 SI NO Principio Fin IF (expresión lógica 1) THEN bloque de sentencias END IF n = - n

Ejemplo de bloque IF II (Ecuación de 2º grado) Leer a, b y c Escribir r1 y r2 Escribir pr y pi Escribir r1 d = 0 SI NO Principio Fin d > 0 SI NO IF (expresión lógica 1) THEN bloque de sentencias 1 [ELSE IF (expresión lógica 2) THEN bloque de sentencias 2] … [ELSE bloque de sentencias n] END IF

Ejemplo de IF lógico I (Valor absoluto) Leer n Escribir n n < 0 SI NO Principio Fin IF (expresión lógica 1) sentencia n = - n

¡PRECAUCIÓN! TÉNGASE MUCHO CUIDADO AL REALIZAR COMPROBACIONES EN UN IF CON VARIABLES REALES: POR ERROR DE REDONDEO PUEDE TENER RESULTADOS INCORRECTOS. USAR SIEMPRE VARIABLES ENTERAS

Bloque SELECT CASE El bloque SELECT CASE aparece en Fortran 90/95 como otra forma de controlar, junto con el bloque IF, la ejecución de determinados bloques de sentencias. Su sintaxis general es: El bloque SELECT CASE ejecuta un bloque determinado de sentencias cuando el valor de la expresión caso coincide o pertenece al rango dado de su correspondiente selector de caso. [nombre:] SELECT CASE (expresión caso) CASE (selector de caso 1) [nombre] bloque de sentencias 1 [CASE (selector de caso 2) [nombre] bloque de sentencias 2] … [CASE DEFAULT [nombre] bloque de sentencias n] END SELECT [nombre] Opcionalmente puede existir un CASE DEFAULT en un bloque SELECT CASE. El bloque de sentencias de este caso por defecto se ejecuta cuando el valor de la expresión caso no coincide con ningún selector de caso. expresión caso es una expresión entera, lógica o de caracteres. Selector de caso es una lista de uno o más valores posibles del mismo tipo que la expresión caso. Cada selector de caso debe ser mutuamente excluyente. Los valores pueden escribirse como: valor valormin: valormax : valormax valormin: o una combinación de estas formas separadas por comas. Es recomendable poner nombre a un bloque SELECT CASE cuando sea largo y complicado

Bloque SELECT CASE (Ejemplo) Leer a, b y oper Escribir c '+' Principio Fin oper = c = a + b c = a - b '-' '*''*' c = a * b '/' otro caso SI c = a / b NO Fin 2 Escribir no vale Fin 1 Escribir imposible

Bloque SELECT CASE (Otros ejemplos) INTEGER :: valor parimpar: SELECT CASE (valor) CASE (1, 3, 5, 7, 9) WRITE (*,*) ‘el valor es impar’ CASE (2, 4, 6, 8, 10) WRITE (*,*) ‘el valor es par’ CASE (11:) WRITE (*,*) ‘el valor es demasiado grande’ CASE DEFAULT WRITE (*,*) ‘el valor es negativo o cero’ END SELECT parimpar INTEGER :: temp friocalor: SELECT CASE (temp) CASE (:-1) WRITE (*,*) ‘Por debajo de 0 Celsius’ CASE (0) WRITE (*,*) ‘Está helando’ CASE (1:10) WRITE (*,*) ‘Hace frío’ CASE (11:20) WRITE (*,*) ‘Templado’ CASE (21:) WRITE (*,*) ‘Hace calor’ END SELECT friocalor Determinar si un número entero entre 1 y 10 es par o impar y visualizar un mensaje adecuado. Visualizar un mensaje de acuerdo con el valor de la temperatura dada.

Ejercicio resuelto nº 1 Pedir un número real por teclado y escribir si es positivo o no Leer num num > 0 SI NO Principio Fin Escribir POSITIVO Escribir NEGATIVO o CERO

Ejercicio resuelto nº 2 Pedir un número real por teclado y escribir si es positivo, negativo o cero. num > 0 SI NO Principio Fin Escribir POSITIVO Escribir NEGATIVO num < 0 SI NO Escribir CERO Leer num

Ejercicio resuelto nº 4 Resolver una ecuación de 2º grado con A, B y C cualquier valor. d = 0 SI NO Principio Fin SI NO Leer a, b y c d > 0 Escribir r1 y r2 Escribir pr y pi Escribir r1 a 0 SI NO b 0 SI c 0 SI NO Escribir r Escribir INDET. Escribir IMPOS. NO

Ejercicio resuelto nº 5 Dada una calificación numérica obtener la correspondiente alfabética según la siguiente clasificación: 0  Nota < 5 Suspenso 5  Nota < 7 Aprobado 7  Nota < 9 Notable 9  Nota < 10 Sobresaliente Nota = 10Matricula de Honor NO Principio Fin Leer nota nota < 5 SI NOSI Escribir Susp. NO nota < 7 nota < 9 nota < 10 Escribir Aprob. Escribir Notab. SI Escribir Sobres. NO Escribir Mat. H.