que es un Algoritmo


jueves, 15 de octubre de 2015

Operadores



¡Operador?

Que es un operador: es un elemento de programa que se aplica a uno o varios operandos en una expresión o
instrucción. 
Los operadores que toman un operando, como el operador de incremento (++) o new, se conocen como operadores unarios. Los operadores que toman dos operandos, como los operadores aritméticos (+,-,*,/) se conocen como operadores binarios. Un operador, el operador condicional (?:), toma tres operandos y es el único operador ternario de C#.
La instrucción de C# siguiente contiene un solo operador unario y un único operando. El operador de incremento, ++, modifica el valor del operando y.
y++;


La instrucción de C# siguiente contiene dos operadores binarios, cada uno con dos operandos. El operador de asignaciones, =, tiene la variable de entero y y la expresión 2 + 3 como operandos. La propia expresión 2 + 3 está compuesta del operador de suma y dos operandos, 2 y 3.
y = 2 + 3;

Operadores, evaluación y prioridad de operadores 


Un operando puede ser una expresión válida que se compone de código de una longitud indeterminada y puede incluir un número cualquiera de subexpresiones. En una expresión que contiene varios operadores, el orden de aplicación de estos viene determinado por la prioridad de operador, la asociatividad y los paréntesis.
Cada operador tiene una prioridad definida. En una expresión que contiene varios operadores con distintos niveles de prioridad, la prioridad de los operadores determina el orden en que estos se evalúan. Por ejemplo, la instrucción siguiente asigna 3 a n1.
n1 = 11 - 2 * 4;
La multiplicación se ejecuta en primer lugar porque tiene prioridad sobre la resta.
En la tabla siguiente se separan los operadores en categorías en función del tipo de operación que realizan. Las categorías se muestran en orden de prioridad.
Operadores principales
Expresión
Descripción
x.y
x?.y
Acceso a miembros
Acceso a miembros condicional
f(x)
Invocación de método y delegado
a[x]
a?[x]
Acceso a matriz e indizador
Acceso a matriz e indizador condicional
x++
Postincremento
x--
Postdecremento
new T(...)
Creación de objetos y delegados
new T(...){...}
Creación de objetos con inicializador. Consulte Inicializadores de objeto y de colección (Guía de programación de C#).
new {...}
Inicializador de objeto anónimo. Consulte Tipos anónimos (Guía de programación de C#).
new T[...]
Creación de matriz. Consulte Matrices (Guía de programación de C#).
typeof(T)
Obtener el objeto System.Type para T
Evaluar expresión en contexto comprobado
Evaluar expresión en contexto no comprobado
default (T)
Obtener valor predeterminado de tipo T
Función anónima (método anónimo)
Operadores unarios
Expresión
Descripción
+x
Identidad
-x
Negación
!x
Negación lógica
~x
Negación bit a bit
++x
Preincremento
--x
Predecremento
(T)x
Convertir x explícitamente en tipo T
Operadores multiplicativos
Expresión
Descripción
*
Multiplicación
/
División
%
Resto
Operadores de suma
Expresión
Descripción
+ y
Suma, concatenación de cadenas, combinación de delegados
- y
Resta, eliminación de delegados
Operadores de desplazamiento
Expresión
Descripción
<< y
Desplazamiento a la izquierda
>> y
Desplazamiento a la derecha
Operadores relacionales y de tipo
Expresión
Descripción
< y
Menor que
> y
Mayor que
<= y
Menor o igual que
>= y
Mayor o igual que
is T
Devuelve true si x es T; de lo contrario, false
as T
Devuelve x escrito como T, o NULL si x no es T
Operadores de igualdad
Expresión
Descripción
== y
Igual
!= y
No igual
Operadores lógicos, condicionales y NULL
Categoría
Expresión
Descripción
AND lógico
& y
AND bit a bit entero, AND lógico booleano
XOR lógico
^ y
XOR bit a bit entero, XOR lógico booleano
OR lógico
| s
OR bit a bit entero, OR lógico booleano
AND condicional
&& y
Evalúa y solo si x es true
OR condicional
|| y
Evalúa y solo si x es false
Uso combinado de NULL
?? y
Se evalúa como y si x es NULL; de lo contrario, se evalúa como x
Condicional
?: y : z
Se evalúa como y si x es true y como z si x es false
Operadores de asignación y anónimos
Expresión
Descripción
=
Asignación
x op= y
Asignación compuesta. Admite estos operadores: +=-=*=/=%=&=|=!=<<=>>=
(T x) => y
Función anónima (expresión lambda)

Asociatividad 


Cuando dos o más operadores con la misma prioridad están presentes en una expresión, se evalúan según su asociatividad. Los operadores asociativos a la izquierda se evalúan, por orden, de izquierda a derecha. Por ejemplo, x * y / z se evalúa como (x * y) / z. Los operadores asociativos a la derecha se evalúan, por orden, de derecha a izquierda. Por ejemplo, el operador de asignación es asociativo a la derecha. De lo contrario, el código siguiente produciría un error.
int a, b, c;
c = 1;
// The following two lines are equivalent.
a = b = c;
a = (b = c);

// The following line, which forces left associativity, causes an error.
//(a = b) = c;
Otro ejemplo sería el operador ternario (?:), que es asociativo a la derecha. La mayoría de los operadores binarios son asociativos a la izquierda.
Independientemente de que los operadores de una expresión sean asociativos a la izquierda o a la derecha, los operandos de cada expresión se evalúan primero, de izquierda a derecha. En los siguientes ejemplos se muestra el orden de evaluación de los operadores y los operandos.
Instrucción
Orden de evaluación
a = b
a, b, =
a = b + c
a, b, c, +, =
a = b + c * d
a, b, c, d, *, +, =
a = b * c + d
a, b, c, *, d, +, =
a = b - c + d
a, b, c, -, d, +, =
a += b -= c
a, b, c, -=, +=

Agregar paréntesis 


Se puede cambiar el orden impuesto por la prioridad de operador y la asociatividad mediante el uso de paréntesis. Por ejemplo, 2 + 3 * 2 suele evaluarse como 8, porque los operadores de multiplicación tienen prioridad sobre los operadores de suma. Sin embargo, si se escribe la expresión como (2 + 3) * 2, la suma se evalúa antes que la multiplicación y el resultado es 10. En los siguientes ejemplos se muestra el orden de evaluación en las expresiones entre paréntesis. Como en ejemplos anteriores, los operandos se evalúan antes de aplicarse el operador.
Instrucción
Orden de evaluación
a = (b + c) * d
a, b, c, +, d, *, =
a = b - (c + d)
a, b, c, d, +, -, =
a = (b + c) * (d - e)
a, b, c, +, d, e, -, *, =

Sobrecarga de operadores 


Se puede cambiar el comportamiento de los operadores para las clases y structs personalizados. Este proceso se conoce comosobrecarga de operadores. Para obtener más información, vea Operadores sobrecargables (Guía de programación de C#).

1 comentario:

  1. The best live dealer casinos in India
    The best live dealer casinos in 룰렛 확률 India · max88 Bodog. Bodog 메이저 토토 사이트 is a reliable and secure betting 호날두 주니어 software that provides safe and fair betting 헬로우 블랙 잭 software. · Microgaming is

    ResponderBorrar