Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++...

26
Programación III Clase #03 Operadores

Transcript of Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++...

Page 1: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Programación III

Clase #03

Operadores

Page 2: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Expresiones

• Es cualquier cosa que retorne un valor.

• En C++ CASI todo son expresiones.

• Ejemplo:– 5– 3 + 2

• Las expresiones se pueden formar por medio de operadores…

Page 3: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Objetos

• En C++ un objeto es:– Cualquier cosa que ocupe un lugar en

memoria.

Page 4: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Operadores (Precedencia 1)

• Resolución de Ámbito, classname::member

• Global ::name

Page 5: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Operadores (Precedencia 2)

• Selección de Miembros: object.member pointer->member

• Subíndice pointer[expr]

• Llamado a función expr(expr_list)

• Post Increment lvalue++

• Post Decrement lvalue++

Page 6: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Operadores (Precedencia 3)

• Tamaño de Objeto: sizeof expr• Tamaño de Tipo: sizeof(type)• Pre Incremento: ++lvalue• Pre Decremento: --lvalue• Complemento: ~expr• NOT: !expr• Más Unario: +expr• Menos Unario: -expr• Dirección de: &expr• Dereferencia: *expr• Reserva de Memoria: new type(expr_list)• Borrado de Memoria: delete pointer delete[] pointer

Page 7: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Operadores (Precedencia 4)

• Multiplicar: expr * expr

• Dividir: expr / expr

• Módulo: expr % expr

Page 8: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Operadores (Precedencia 5)

• Suma: expr + expr

• Resta: expr - expr

Page 9: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Operadores (Precedencia 6)

• Shift Right: expr >> expr

• Shift Left: expr << expr

Page 10: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Operadores (Precedencia 7)

• Menor que: expr < expr

• Menor o igual que: expr <= expr

• Mayor que: expr > expr

• Mayor o igual que: expr >= expr

Page 11: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Operadores (Precedencia 8)

• Igual: expr == expr

• Diferente: expr != expr

Page 12: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Operadores (Precedencia 9)

• Bitwise AND: expr & expr• Bitwise XOR: expr ^ expr• Bitwise OR: expr | expr• AND Lógico: expr && expr• OR Lógico: expr || expr• Expresión condicional: expr ?expr: expr

• (En esta diapositiva, cada operador tiene diferente precedencia)

Page 13: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Operadores (Precedencia 10)

• Asignación Simple: lvalue = expr• Otros Operadores de Asignación:

– lvalue *= expr– lvalue /= expr– lvalue %= expr– lvalue += expr– lvalue -= expr– lvalue <<= expr lvalue>>=expr– lvalue &= expr lvalue |= expr

lvalue^=expr

Page 14: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Operadores Aritméticos

• + Suma• - Resta• * Multiplicación• / División• % Módulo• + (Unario)• - (Unario)• ++, -- Incremento y Decremento, Unarios

en versiones postfija, y prefija

Page 15: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Ejemplos

int a = 5, b;

b = -a;

int a = 4, b;

b = a++;

int a = 4, b;

b = ++a;

a 5

b 4

a 5

b 5

Page 16: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

¿Verdadero / Falso?

• En C++ Falso es:– la constante false– 0

• En C++ Verdadero es:– la constante true– Cualquier valor que NO sea 0– 1, -1.1545, 50000, ‘A’, etc.

Page 17: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Operadores Relacionales

• == Igualdad

• != Diferencia

• < Menor que

• <= Menor igual que

• > Mayor que

• >= Mayor igual que

Page 18: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Ejemplo

int a= 9, b =9, c=1, x;

x = a==b;

x = a==c;

x = a>=b;

Page 19: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Operadores Lógicos

• ! Not

• && And

• || Or

• En C++ los valores lógicos son enteros, Falso es representado por 0, y verdadero es NO 0.

Page 20: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Ejemplo

int a= 9, b =9, c=1, x;

x = (a==b) && (c>0);

x = !((a==b) && (c>0));

x = (a>=b) || (c<100);

Page 21: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Operadores de Asignación

• = Asignación

• += Sume y Asigne (a+=2 a = a + 2)

• -= Reste y Asigne (a-=2 a = a - 2)

• *= Mult. y Asigne (a*=2 a = a * 2)

• /= Div. y Asigne (a/=2 a = a / 2)

• %= Mod. y Asigne (a%=2 a = a % 2)

Page 22: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Ejemplo

int a, b, c, d, e;

a = b = c = d = e = 13;

/*

Todas estas variables quedan con valor 13

*/

Page 23: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Operadores Bitwise

• >> Shift Left

• << Shift Right

• & Bitwise And

• | Bitwise Or

• ^ Bitwise Xor

• ~ Complemento

• <<=, >>=, &=, |=, ^= También

Page 24: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Operador Ternario

• expr1 ? expr2 : expr3• Este operador hace lo siguiente:

– Si la expr1 es verdadera, la expresión total devuelve el valor contenido en expr2

– Si la expr1 es falsa, la expresión total devuelve el valor contenido en expre3

• x = 3 >= 3 ? 5 : 1– Se asignaría 5, dado que expr1 (3>=3) es verdadera.

Page 25: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Otros Operadores (1)

• Memoria Dinámica:– new, delete

• Clases– :: Operador de Resolución de Acceso

• Estructuras– ., -> Operadores de Acceso de Campos

• Apuntadores– * A lo que apunta…– & Operador de dereferencia, la dirección de…

Page 26: Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.

Otros Operadores (2)

• sizeof(obj) Retorna el tamaño en bytes de obj

• sizeof(type) Retorna el tamaño en bytes del type

• [] Operador de subíndice