expresiones lógicas prof. flor narciso departamento de computación escuela de ingeniería de...

Post on 24-Jan-2016

230 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Expresiones Lógicas

Prof. Flor NarcisoDepartamento de Computación

Escuela de Ingeniería de SistemasFacultad de Ingeniería

Universidad de Los Andes

Expresión Lógica

• El resultado de la evaluación de la expresión es un valor lógico (cierto o falso). Se construye mediante

– Operadores relacionales– Operadores lógicos

Operadores relacionales en C++

• Operan sobre operandos (constantes, variables, expresiones) de diferentes tipos (numéricos, caracteres) y evalúan a un valor de tipo lógico (cierto o falso).

Operación Operador

algebraico

Operador en

C++

Expresión en

C++Igualdad = == a == b

Desigualdad != a != bMenor < < a < b

Menor o igual < <= a <= bMayor > > a > b

Mayor o igual > >= a >= b

Operadores Relacionales en C++

a b a==b a!=b a < b a<= b a > b a >=b

2 3 falso cierto cierto cierto falso falso

44 -5 falso cierto falso falso cierto cierto

44 44 cierto falso falso cierto falso cierto

Ejemplos:

Precedencia de los Operadores Relacionales en C++

( ) Subexpresiones encerradas entre paréntesis se evalúan primero (mayor nivel de

precedencia).

< <= > >=

== != (menor nivel de precedencia)

La evaluación de las operadores con la misma prioridad se realiza de izquierda a derecha.

Observación!!!!!

• A = B asigna el valor de la variable B a la variable A

• A = = B compara el valor de la variable A con el valor de la variable B

• Una comparación produce un resultado CIERTO/FALSO

Expresiones Lógicas en C++

Ejemplos

(a + b) < cvotos > electoresa != (x*x + b*x + c)(alto - bajo) == 2(horas*3600) >= (minutos*60 + segundos)numero <= 2

Expresiones Lógicas: Ejemplo 1

Evaluar la siguiente expresión lógica:

x >= (y+z)R1 = y + zR2 = x >= R1 Resultado

Para los valores x = 3, y = 4, z = 1 se tiene

R1 = 4 + 1 = 5R2 = 3 >= 5 = falso Resultado

Expresiones Lógicas: Ejemplo 2

Evaluar la siguiente expresión lógica:

contador1 + 1 < contador2

R1 = contador1 + 1R2 = R1 < contador2 Resultado

Para los valores contador1 = 3, contador2 = 1 se tiene

R1 = 3 + 1 = 4R2 = 4 < 1 = falso Resultado

Expresiones Lógicas: Ejemplo 3

Evaluar la siguiente expresión lógica:

num % 4 == 0

R1 = num % 4R2 = R1 == 0 Resultado

Para el valor num = 7 se tiene

R1 = 7 % 4 = 3

R2 = 3 == 0 = falso Resultado

Expresiones Lógicas: Ejemplo 4Evaluar la siguiente expresión lógica:

(a + b - 1) < (x * y)R1 = a + bR2 = R1 - 1R3 = x * yR4 = R2 < R3 Resultado

Para los valores a = 31, b = -1, x = 3, y = 2 se tiene

R1 = 31 + (-1) = 30R2 = 30 - 1 = 29 R3 = 3 * 2 = 6R4 = 29 < 6 = falso Resultado

Operadores Lógicos en C++

Operan sobre operandos (constantes, variables, expresiones) de tipo lógico (cierto o falso) y evalúan a un valor de tipo lógico (cierto o falso).

Operación Operador

algebraico

Operador en

C++

Expresión en

C++Y-lógico && a && bO-lógico || a || bNegación ! !a

Operadores Lógicos en C++

a b a && b a || b !a

cierto cierto cierto cierto falso

cierto falso falso cierto falso

falso cierto falso cierto cierto

falso falso falso falso cierto

Ejemplo:

Expresiones Lógicas en C++

Ejemplos

!(p && q) || sp && q && s (a || b) && (c || d)a > 5 && !(b < c) || 3 <= d(op < min) || (op > max)(edad >= 18) && (edad <= 60)!encontrado

Precedencia de los Operadores Lógicos en C++

( ) Sub-expresiones encerradas entre paréntesis se evalúan primero (mayor nivel de

precedencia).

!

&&

|| (menor nivel de precedencia)

Precedencia y Asociatividad de Operadores

Operadores Asociatividad

( ) de izq. a der.

! ++ -- -(unario) de der. a izq.

* / % de izq. a der.

+ - (binario) de izq. a der.

< <= > >= de izq. a der.

== != de izq. a der.

&& de izq. a der.

|| de izq. a der.

Expresiones Lógicas: Ejemplo 1

Evaluar la siguiente expresión lógica

!(x < 5) && !(y >= 7)

R1 = x < 5R2 = y >= 7R3 = !R2R4 = !R1R5 = R4 && R3 Resultado

Expresiones Lógicas: Ejemplo 1

Evaluar la siguiente expresión lógica para x = 3 y y = 6

!(x < 5) && !(y >= 7)

R1 = 3 < 5 ciertoR2 = 6 >= 7 falsoR3 = !falso ciertoR4 = !cierto falsoR5 = cierto && falso = falso

Expresiones Lógicas: Ejemplo 2

Evaluar la siguiente expresión lógica

!((i > 4) || (j <= 6))R1 = i > 4R2 = j <= 6R3 = R1 || R2R4 = !R3 Resultado

Expresiones Lógicas: Ejemplo 2

Evaluar la siguiente expresión lógica para i = 22 y j = 3

!((i > 4) || (j <= 6))

R1 = 22 > 4 ciertoR2 = 3 <= 6 ciertoR3 = cierto || cierto ciertoR4 = !cierto falso

Expresiones Lógicas: Ejemplo 3

Evaluar la siguiente expresión lógica

!(a + b == c) || (c != 0) && (b - c > = 19)

R1 = a + b R7 = R3 && R5R2 = R1 == c R8 = R6 || R7 ResultadoR3 = c != 0R4 = b - c R5 = R5 >= 19R6 = !R2

Expresiones Lógicas: Ejemplo 3

Evaluar la siguiente expresión lógica para a = 34, b = 12 y c = 8

!(a + b == c) || (c != 0) && (b - c > = 19)

R1 = 34 + 12 = 46 R7 = cierto && falso = falsoR2 = 46 == 8 = falso R8 = cierto || falso = ciertoR3 = 8 != 0 = ciertoR4 = 12 - 8 = 4 R5 = 4 >= 19 = falsoR6 = !falso = cierto

Resumen

• Tipos de datos

Tipo Notación en C++Entero int / long / unsigned

Real float / double

Caracter char

Lógico enum logico {falso, cierto}

Resumen

• Definición y declaración de constantes

Notación algorítmica Notación en C++

nombre: valor_constante #define identificador valor

PI: 3.14159 #define PI 3.14159

const tipo_de_dato identificador= valor

const float PI = 3.14159

Resumen

• Declaración de variables

Notación Algorítmica Notación en C++

lista_de_variables: tipo_de_dato tipo_de_dato lista_de_variables;

a, b, c : entero int a, b, c;

x: realx = 2.34

float x = 2.34;

Resumen• Sentencias de entrada/salida

Notación Algorítmica Notación en C++

Leer (lista_de_variables) cin >> var1 >> var 2 >> … >> varn;

Leer(a, b, c) cin >> a >> b >> c;

Escribir (mensajes y/o variables) cout << mensaje << var 1 <<… << mensaje << varn << endl;

Escribir (“El resultado es”, resulta) cout << “El resultado es” << resulta;

Resumen

• Asignación

Notación algorítmica Notación en C++

variable expresión

variable = expresión

identificador = valor;

A 5 ó A = 5 A = 5;

x (y + 1)/2 ó x = (y + 1)/2 x (y + 1)/2;x x + 2 ó x = x + 2 x += 2;

y y – z ó y = y – z y -= z;

m m 5 ó m = m 5 m *= 5;

a a / (b + 1) ó a = a / (b + 1) a /= (b + 1);

a a mod b ó a = a % b a %= b;

Ejercicios

Evaluar cada una de las siguientes expresiones

a) (-b + (b * b - 4 * a * c)) / (2 * a) <= 25

b) (x >= MINIMO) && (x <= MAXIMO)

c) (contador < MAXIMO) && !encontrado

d) (mes1 < mes2) || (mes1 == mes2) && (anyo1 <= anyo2)

e) anyo%4 == 0 && anyo % 100 != 0 || anyo%400 == 0f) (A - 1) < B || A != (B - C) || A >= C

Ejercicios

• Cuáles de los siguientes identificadores no son válidos. Justifique su respuesta.

a) S_neto b) 1Ac) NotaDefinitiva d) _definitivae) masculino_o_femeninof) contador2g) masculino*femeninoh) reali) float

Ejercicios

• Defina las siguientes constantes:

a) Una constante entera EOF con valor -1.b) una constante entera MAXIMO con valor 256.c) Dos constantes enteras CIERTO y FALSO con valores 1

y 0,respectivamente.d) Una constante real EPSILON con valor 0.0001.

Ejercicios

• Declare las siguientes variables:

a) Dos variables carácter car1 y car2 con valores iniciales ’A’ y ’B’ respectivamente.

b) Dos variables enteras i, j.c) Una variable real x.d) Una variable bandera de tipo lógico con valor inicial

cierto.

Ejercicios

• Suponiendo declaradas y asignadas las variablesint i=8, j=5;double x=0.005, y=-0.01;

Indique los valores de las siguientes expresiones:a) (3 *i -2 *j)%(2 *i -j)b) 2 *((i /5)+(4 *(j -3))%(i +j -2))c) -(i + j)/2d) i++;e) j--;f) (x >y)&&(i >0)||(j <5)g) (x >y)||(i >0)&&(j <5)

Ejercicios• Dadas las siguientes definiciones de constantes

#define MIN 1#define MAX 5#define NUM1 5#define NUM2 8#define NUM3 -1

y la siguiente declaración de variableint num;

Escriba las expresiones lógicas que sean verdaderas sia) El valor de num se encuentra en el rango definido por

las constantes MINIMO y MAXIMO.b) El valor de num es uno de los tres valores constantes

NUM1, NUM2 o NUM3.

top related