Tabla de Contenido
1. Palabras Clave2. Introducción
3. Operadores y Operaciones Aritméticas
3.1 Operadores aritméticos
3.2 Operaciones aritméticas
4. Expresiones Aritméticas en Forma de Línea Recta
5. Paréntesis para la Agrupación de Expresiones
6. Regla de Precedencia de Operadores
7. Expresiones Algebraicas y Expresiones C#
7.1 Orden de evaluación de expresiones
8. Conclusiones
9. Literatura y Enlaces
1. Palabras Clave
- Asociatividad
- Expresión algebraica
- Operación aritmética
- Operador
2. Introducción
El lenguaje de programación C# cuenta con diferentes tipos de funciones (métodos, eventos, indexers, finalizers), además de operadores aritméticos que también son considerados funciones. En esta oportunidad se estudiará las operaciones permitidas por este tipo de función: adición, substracción, multiplicación, división y residuo. Asímismo, se estudiará la forma en que se deben escribir las expresiones algebraicas que representan operaciones aritméticas usando la sintaxis del lenguaje de programación C#.
3. Operadores y Operaciones Aritméticas
3.1 Operadores aritméticos
Los operadores aritméticos +, -, *, / y % están disponibles para todos los tipos de datos numéricos, excepto para los de 8 y 16 bits: byte, sbyte, short y ushort. La limitación se debe a que C# convierte de forma implícita los valores de las variables de estos cuatro tipos de datos numéricos a tipos de mayor capacidad (empezando por int (Int32)) (Albahari, 2012). Veámoslo con un ejemplo muy sencillo:
short x = 1, y = 1;
short z = x + y; // Error de compilación
En short z = x + y; se generá error de compilación debido a que los valores de las variables x e y serán convertidos de manera implícita a enteros de mayor capacidad de bits,es decir a int. Este último sí posee la capacidad para usar los operadores aritméticos.
En la Tabla 1 (Albahari, 2012) se presenta los operadores junto con ejemplos de expresiones algebraicas en el lenguaje de programación C#.
Tabla 1. Operadores Aritméticos en C# (Albahari, 2012). |
Los operadores de la Tabla 1 son todos operadores binarios, es decir que se requieren dos operandos (suma: sumandos, resta: minuendo, sustraendo, multiplicación: multiplicando, multiplicador; división: dividendo, divisor) para efectuar la operación correspondiente.
A diferencia de los operadores algebraicos, la aritmética en C# hace uso del símbolo asterisco * para representar la multiplicación: b * m. De manera análoga, el operador de residuo que, en álgebra se usa el término mod y en el lenguaje de programación C# el signo %.
3.2 Operaciones Aritméticas
3.2.1 Adición
El operador en C# para la suma es el mismo que el algebraico: +. En una expresión donde aparezcan varios operadores de suma la evaluación se realiza de izquierda a derecha.
Ejemplos:
- 4 + 7
- x + y
3.2.2 Substracción
En C# el operador utilizado para realizar la substracción de dos números (operación binaria) es el signo -. Al igual que la adición, su asociatividad es de izquierda a derecha.
Ejemplos:
- 4 - 7
- x - y
3.2.3 Multiplicación
El * (asterisco) es el operador utilizado para la multiplicación. Su asociatividad ocurre de izquierda a derecha.
Ejemplos:
- 4 * 7
- x * y
3.2.4 División
El operador para la división en C# es /. Su asociatividad es de izquierda a derecha. Hay que anotar que si los operadores son de tipo de dato entero, cualquier parte fraccionaria es descartada (i.e., truncada). No se realiza ningún proceso de redondeo. 7/4 es gual a 1, y la expresión 17/5 es igual a 3.
3.2.5 Residuo
El lenguaje de programación C# provee el operador de residuo, %, que produce el residuo después de llevarse a cabo la división de dos números. Por ejemplo la expresión 7%4 da como resultado 3, y 17 % 5 genera 2.
4. Expresiones Aritméticas en Forma en Línea
Las expresiones aritméticas en C# debe ser escritas en línea. Está forma facilita la entrada de los pasos que integran el algoritmo de los programas en el computador. Para particularizar, expresiones como “a dividido b” en C# deben ser escritas como a/b. Esto aplica para cualquier elemento definido por el programador: constante, variables, literales y cualquier otro operador que deba aparecer en una expresión.
Si quisiéramos entrar una expresión algebraica como la siguiente
no será posible debido a la naturaleza lineal de los editores de código fuente.
5. Paréntesis para la Agrupación de Expresiones
Los paréntesis en C# son usados para agrupar términos de expresiones de la misma manera que expresiones algebraicas. Por ejemplo, para multiplicar a por la suma de b+c en C# escribiríamos:
a * ( b + c )
En el caso que una expresión contenga paréntesis anidados como en
( ( a + b ) * c )
la expresión en el paréntesis más interno,como en el ejemplo anterior: a+b, se evalúa primero.
6. Reglas de Precedencia de Operadores
En la Tabla 2 se puede apreciar las reglas básicas de precedencia de operadores.
Tabla 2. Precedencia de Operadores en C# (Albaharia, 2012). |
7. Expresiones Algebraicas y Expresiones C#
Debido a que el compilador no es capaz de entender la forma tradicional de las expresiones algebraicas convencionales, el programador debe ser capaz de convertir una expresión algebraica a una expresión C#:
Ejemplos:
- Álgebra:
C#:
Para el caso anterior (expresión en C#) los paréntesis son necesarios, debido a que la división tiene mayor precedencia (o jerarquía) que la suma. Si se omitiera, las reglas de precedencia la expresión algebraica equivalente sería
7.1 Orden de evaluación de expresiones
El orden en que se evalúan las expresiones aritméticas en C# sigue las reglas de precedencia definidas en la Tabla 2. En el siguiente ejemplo se demuestra cómo se lleva a cabo la evaluación de una expresión
8. Conclusiones
Se ha entendido la precedencia y asociatividad de los operadores en una expresión aritmética. Se han presentado, además, ejemplos donde se evalúa una expresión aritmética siguiendo las reglas de precedencia para comprender mejor el concepto y aplicarlo en los programas escritos por un programador.
9. Literatura y Enlaces
[1] 8- and 16-Bit Integrals - http://my.safaribooksonline.com/book/programming/csharp/9781449335441/numeric-types/id2621968[2] C# 5.0 in a Nutshell by Joseph Albahari and Ben Albahari. Copyright 2012 Joseph Albahari and Ben Albahari, 978-1-449-32010-2.
V
No hay comentarios:
Publicar un comentario
Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.