expresiones lógicas y operadores sobre .evaluar cada una de las siguientes expresiones a) ......

Download Expresiones Lógicas y Operadores sobre .Evaluar cada una de las siguientes expresiones a) ... Indique

Post on 10-Nov-2018

212 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • 14/04/05 Programacin Digital I 1

    Expresiones Lgicas y Operadores sobre Bits

    Andrs ArciaDepartamento de ComputacinEscuela de Ingeniera de SistemasFacultad de IngenieraUniversidad de Los Andes

  • Programacin Digital I 214/04/05

    Expresin LgicaEl resultado de la evaluacin de la expresin es un valor lgico (cierto o falso). Se construye mediante

    Operadores relacionalesOperadores lgicos

  • Programacin Digital I 314/04/05

    Operadores relacionalesOperan sobre operandos (constantes, variables, expresiones) de diferentes tipos (numricos, caracteres) y dan como resultado un valor de tipo lgico (cierto o falso; 1 o 0).

    Operacin Operador Alg. Op. C Exp. CIgualdad = == a==bDesigualdad != a!=bMenor < < aa b

    Mayor Igual >= >=a b

    Recuerde que en lenguaje C es muy facil confundir el operador de asignacin = (igual) con el de comparacin == (igual igual)

  • Programacin Digital I 414/04/05

    Operadores Relacionales

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

    2 3 falso cierto cierto cierto falso falso

    a d falso cierto cierto cierto falso falso

    44 44 cierto falso falso cierto falso cierto

    Ejemplos:

  • Programacin Digital I 514/04/05

    Precedencia de los Operadores Relacionales

    ( ) Subexpresiones encerradas entre parntesis se evalan primero (mayor nivel de

    precedencia).=

    ==, != (menor nivel de precedencia)

    La evaluacin de las operadores con la misma prioridad se realiza de izquierda a derecha.

  • Programacin Digital I 614/04/05

    ObservacinA = 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 comparacin produce un resultado CIERTO/FALSO. En C++ el valor falso corresponde a 0 (cero). Las formas de representar el cero o la falsedad son:

    Como valor entero. int value = 0;Como caracter. char false_value = \0;Como palabra reservada. bool t = false;

  • Programacin Digital I 714/04/05

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

  • Programacin Digital I 814/04/05

    Expresiones Lgicas: Ejemplo 1Evaluar la siguiente expresin lgica:

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

    Para los valores x = 3, y = 4, z = 1 se tieneR1 = 4 + 1 = 5R2 = 3 >= 5 = falso Resultado

  • Programacin Digital I 914/04/05

    Expresiones Lgicas: Ejemplo 2Evaluar la siguiente expresin lgica:

    contador1 + 1 < contador2R1 = contador1 + 1R2 = R1 < contador2 Resultado

    Para los valores contador1 = 3, contador2 = 1 se tieneR1 = 3 + 1 = 4R2 = 4 < 1 = falso Resultado

  • Programacin Digital I 1014/04/05

    Expresiones Lgicas: Ejemplo 3Evaluar la siguiente expresin lgica:

    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

  • Programacin Digital I 1114/04/05

    Expresiones Lgicas: Ejemplo 4Evaluar la siguiente expresin lgica:

    (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

  • Programacin Digital I 1214/04/05

    Operan sobre operandos (constantes, variables, expresiones) de tipo lgico (cierto o falso) y evalan a un valor de tipo lgico (cierto o falso).

    Operacin Op. Algebraico Op. C Exp. Cy lgico && a && bo lgico || a || bNegacin ! !a

    Operadores Lgicos

  • Programacin Digital I 1314/04/05

    Operadores Lgicos

    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

    Tabla de la Verdad:

  • Programacin Digital I 1414/04/05

    Expresiones Lgicas Ejemplos!(p && q) || sp && q && s (a || b) && (c || d)a > 5 && !(b < c) || 3 max)(edad >= 18) && (edad

  • Programacin Digital I 1514/04/05

    Precedencia de los Operadores Lgicos

    ( ) Sub-expresiones encerradas entre parntesis se evalan primero (mayor nivel de

    precedencia).!

    &&|| (menor nivel de precedencia)

  • Programacin Digital I 1614/04/05

    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.

  • Programacin Digital I 1714/04/05

    Expresiones Lgicas: Ejemplo 1

    Evaluar la siguiente expresin lgica!(x < 5) && !(y >= 7)

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

  • Programacin Digital I 1814/04/05

    Expresiones Lgicas: Ejemplo 1

    Evaluar la siguiente expresin lgica para x = 3 y y = 6

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

  • Programacin Digital I 1914/04/05

    Expresiones Lgicas: Ejemplo 2

    Evaluar la siguiente expresin lgica!((i > 4) || (j 4R2 = j

  • Programacin Digital I 2014/04/05

    Expresiones Lgicas: Ejemplo 2

    Evaluar la siguiente expresin lgica para i = 22 y j = 3

    !((i > 4) || (j 4 ciertoR2 = 3

  • Programacin Digital I 2114/04/05

    Expresiones Lgicas: Ejemplo 3

    Evaluar la siguiente expresin lgica

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

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

  • Programacin Digital I 2214/04/05

    Expresiones Lgicas: Ejemplo 3

    Evaluar la siguiente expresin lgica 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 = !falso = ciertoR4 = 8 != 0 = ciertoR5 = 12 - 8 = 4 R6 = 4 >= 19 = falso

  • Programacin Digital I 2314/04/05

    ResumenTipos de datos

    Tipo Notacin en CEntero int - long long long char short unsigned Real float double long double Caracter char

  • Programacin Digital I 2414/04/05

    Tipo CaracterEste tipo es capaz de almacenar un carcter del conjunto definido por el lenguaje. Casi universalmente un tipo char tiene 8 bits, y en consecuencia puede almacenar 256 tipos de caracteres diferentes. Tipicamente el conjunto de caracteres es una variante del conjutno ISO-646; por ejemplo el conjunto ASCII.A == 65, B == 66, , Z == 90, a == 97

    Cuales caracteres estn entre [91, 96]?

  • Programacin Digital I 2514/04/05

    Tipos NumricosEl tipo entero viene de tres maneras:

    int (plano), signed int (con signo) y unsigned int (sin signo).Y de tres tamaos:

    short int (corto), int (plano), long int (largo) y long long (mas largo)

    Literales:base decimal: 0 2 63base octal: 00 02 077base hexad.: 0x0 0x2 0x3f

    Adems se pueden aadir sufijos para escribir explicitamente literales sin signo: U largos: L. Ejemplo: 4u, 3L.

  • Programacin Digital I 2614/04/05

    Tipos NumricosPunto Flotante:

    Por omisin los punto flotante son del tipo double. 1.23 .23 0.23 1. 1.0 1.2e10 1.12e-15

    (Note que no existen espacios dentro de cada nmero, por ejemplo, 1.12 e 15 no es vlido).

    Si se quiere escribir un punto flotante del tipo float:

    3.14159265f 2.997925F

  • Programacin Digital I 2714/04/05

    ResumenDefinicin y declaracin de constantes

    Notacin algortmica Notacin 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;

  • Programacin Digital I 2814/04/05

    ResumenDeclaracin de variables

    Notacin Algortmica Notacin en C++

    lista_de_variables: tipo_de_dato

    tipo_de_dato lista_de_variables;

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

    x: real x = 2.34

    float x = 2.34;

  • Programacin Digital I 2914/04/05

    ResumenHay distintas maneras de observar la salida de una variable de tipo entero:

    Int i=425;

    printf(%d %o %x %X,i,i,i,i);

    salida:

    425 651 1a9 1A9

  • Programacin Digital I 3014/04/05

    ResumenTipo EnteroModificadores d, i o, u, x, X hh signed char unsigned char h short unsigned short l (ele) long unsigned long ll (ele ele) long long unsigned long long Tipo DecimalModificador a, A, e, E, f, F L long double

  • Programacin Digital I 3114/04/05

    ResumenPara el tipo decimal:eE: El argumento double es redondeado y convertido al formanto [-]d.ddde+-dd.fF: El argumento double es redondeado y convertido a la notacin decimal [-]ddd.dddaA: El argumento double es covertido a la notacin hexadecimal: [-]0xh.hhhp[+-]d. La p se usa para separar la mantiza del exponente.

  • Programacin Digital I 3214/04/05

    ResumenTambien para observar un tipo decimal:

    float f=12.234;

    printf(%7.2f %7.2e\n,f,f);

    12.23 1.223e+01

  • Programacin Digital I 3314/04/05

    Operadores sobre Bi