presentación expresiones y operadores lui

11
Expresiones y operadores Luis Fernando Gómez Casillas

Upload: luis-blink

Post on 19-Jul-2015

104 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Presentación expresiones y operadores lui

Expresiones y operadoresLuis Fernando Gómez Casillas

Page 2: Presentación expresiones y operadores lui

Que es expresion

• Una expresión es una combinación de operadores y

operandos de cuya evaluación se obtiene un valor.

Los operandos pueden ser nombres que denoten

objetos variables o constantes, funciones, literales

de cualquier tipo adecuado de acuerdo con los

operadores u otras expresiones más simples. La

evaluación de una expresión da lugar a un valor de

algún tipo, una expresión se dice que es del tipo de

su resultado. Ejemplos de expresiones:

Page 3: Presentación expresiones y operadores lui

Ejemplos de expresion

• a + 5*b(a >= 0) and ((b+5) > 10)a-a * 2 + b-b +

sqrt(b**2 - 4*a*c) length(s) > 0

Page 4: Presentación expresiones y operadores lui

Que es un operador

• Ada agrupa los operadores en 6 categorías, de

menor a mayor precedencia. Los operadores

binarios se usan en formato infijo

(<operando_izquierdo> <operador>

<operando_derecho>), como en "a + b". Los

operadores unarios se usan en formato prefijo

(<operador> <operando> ), como en "-5".

Page 5: Presentación expresiones y operadores lui

Operadores logicos

• Están predefinidos para cualquier tipo, T, que

designe un booleano, modular o un array

monodimensional de componentes booleanos:

• function "and"(Left, Right : T) return Tfunction

"or" (Left, Right : T) return Tfunction "xor"(Left,

Right : T) return T

Page 6: Presentación expresiones y operadores lui

Operadores relacionales

• Los operadores de igualdad están predefinidos para

todos los tipos no limitados. Sea T un tipo con estas

características:

• function "=" (Left, Right : T) return

Booleanfunction "/="(Left, Right : T) return

Boolean

Page 7: Presentación expresiones y operadores lui

Operadores binarios de

adicion

• Los operadores de adición predefinidos para

cualquier tipo numérico, T, son:

• function "+"(Left, Right : T) return T function "–

"(Left, Right : T) return T

Page 8: Presentación expresiones y operadores lui

Operadores unarios de

adicion

• Los operadores unarios de adición predefinidos

para cualquier tipo númerico, T, son la identidad y la

negación:

• function "+"(Right : T) return T function "–"(Right

: T) return T

• Ejemplo de uso en expresiones (sean A y B de tipo

T):

• B := -A;

Page 9: Presentación expresiones y operadores lui

Operadores multiplicativos

• Los operadores de multiplicación y división están predefinidos entre diversas combinaciones de enteros y reales:

• function "*" (Left, Right : T) return T function "/" (Left, Right : T) return T function "*"(Left : T; Right : Integer) return T function "*"(Left : Integer; Right : T) return T function"/"(Left : T; Right : Integer) return Tfunction "*"(Left, Right : root_real) return root_real function "/"(Left, Right : root_real) return root_real function "*"(Left : root_real; Right : root_integer) return root_realfunction "*"(Left : root_integer; Right : root_real) return root_real function "/"(Left : root_real; Right : root_integer) return root_realfunction "*"(Left, Right : universal_fixed) return universal_fixed function "/"(Left, Right: universal_fixed) return universal_fixed

Page 10: Presentación expresiones y operadores lui

Operadores de máxima

prioridad

• Los operadores de máxima prioridad son: el operador de cálculo del valor absoluto, definido para cualquier tipo numérico, T1, el operador de negación lógica, definido para cualquier tipo booleano, modular o arraymonodimensional de componentes booleanos, T 2, y el operador de exponenciación, definido para cualquier tipo entero, T3, o para cualquier tipo real en coma flotante, T4. Cada uno, de acuerdo con las siguientes especificaciones:

• function "abs"(Right : T) return Tfunction "not"(Right : T) return Tfunction "**"(Left : T; Right : Natural) returnTfunction "**"(Left : T; Right : Integer'Base) return T

Page 11: Presentación expresiones y operadores lui

Sobrecarga de operadores

• Ada permite que el programador sobrecargue los

operadores del lenguaje, esto es, que pueda

redefinirlos dándoles nuevos significados. Para

sobrecargar un operador, simplemente hay que

definir una función cuyo nombre sea el operador

entre comillas y que tenga los parámetros

adecuados. Por ejemplo, dado el siguiente tipo:

• type Complejo is record PReal, PImag:

float;end record;