2expresionesaritmeticascsharp

Anuncio
12/30/11
Objetivos de la sesión
  Profundizar
en la forma en que se
construyen expresiones (fórmulas)
para hacer los cálculos que requiere
un programa para obtener los
resultados deseados.
Fundamentos de programación C#. R. Mtz.
Expresiones aritméticas…
 
 
 
 
Operandos unidos por operadores (+,-,*,/,%)…
Cada operador genera un resultado al aplicarse
sobre los operandos.
En expresiones compuestas, el orden en que
aplican los operadores está determinado por las
prioridades de los mismos, y por la forma en que
se colocan los paréntesis.
Los operadores aritméticos siempre se evalúan
de izquierda a derecha cuando tienen la misma
prioridad.
Fundamentos de programación C#. Román Mtz.
Fundamentos de programación C#. Román Mtz.
Operadores Aritméticos
Nivel
Operador
1
()
2
3
4
++, --,
+(unitario),
-(unitario)
*, /, %
+, -
5
=, +=, -=, *=, /=, %=
Fundamentos de programación C#. Román Mtz.
1
12/30/11
Ejemplo…
Tipos de división
  Convertir
  División
las siguientes fórmulas
algebráicas en expresiones en
lenguaje C# suponiendo que cada
letra es una variable…
1- x
(2+h) (1-f)
2b + y
3f
Los operadores para la
división
Fundamentos de programación C#. Román Mtz.
771.5
1543
14
03
10
0
771 (cociente)
2
  División
entera:
2
h2 - x
Fundamentos de programación C#. Román Mtz.
de punto flotante:
1543
14
03
1 (residuo)
Fundamentos de programación C#. Román Mtz.
Regla SEMANTICA de
ejecución de expresiones
Fundamentos de programación C#. Román Mtz.
2
12/30/11
Regla SEMANTICA para la
asignación
Operaciones especiales
 
 
Algunas operaciones matemáticas se
ejecutarán a través de funciones
predefinidas en la clase Math.
Ejemplos:
Para obtener la raíz cuadrada de un número:
Math.Sqrt(número)
  Para elevar un número a cierta potencia:
Math.Pow(número, potencia)
  Logaritmos, trigonométricas, etc.
 
Fundamentos de programación C#. Román Mtz.
Fundamentos de programación C#. Román Mtz.
Más sobre la asignación...
Fundamentos de programación C#. Román Mtz.
Fundamentos de programación C#. Román Mtz.
/ Ing. Jakeline Marcos
3
12/30/11
Ejercicios
Más sobre la asignación…
¿Qué valor toma cada una de las siguientes expresiones?
 
 
 
 
 
 
Fundamentos de programación C#. Román Mtz.
10 / 3 + 17 / 3 - 10
2 + 3 * (4 + 5)
19 / 2 * 5
10.0 / 3.0 + 10 / 3 + 10.0 / 3
3+5%4/2
(4 * 5 / 3+ 2.0) + (5 - 8.0) / 2
Fundamentos de programación C#. Román Mtz.
/ Ing. Jakeline Marcos
Utilizando la clase Math . . .
Encuentra la raíz cuadrada de: b2 - 4ac
El resultado déjalo en la variable d.
double a, b, c, d;
. . .
d = Math.Sqrt(b * b - 4.0 * a* c);
Fundamentos de programación C#. Román Mtz.
Casting
/ Ing. Jakeline Marcos
4
12/30/11
Casting (conversión de un tipo de dato a otro)
 
Cuando una expresión aritmética consiste de variables y
constantes del mismo tipo de datos, el resultado de la
expresión será del mismo tipo de datos.
 
Por ejemplo si el tipo de dato de a y b es entero, el
resultado de la siguiente expresión:
a * b + 23
también será entero.
 
PERO, cuando los tipos de datos son diferentes en una
expresión aritmética, se dice que tiene lugar una
conversión por casting.
Fundamentos de programación C#. Román Mtz.
/ Ing. Jakeline Marcos
Casting
 
 
 
 
Casting es un proceso que convierte un dato,
de un tipo de dato a otro.
Existen 2 tipos de casting: implícito y
explícito.
Una conversión implícita llamada promoción
numérica se aplica en los operandos de una
expresión aritmética.
Se dice promoción porque el operando es
convertido de una menor precisión a una mayor
precisión.
Fundamentos de programación C#. Román Mtz.
/ Ing. Jakeline Marcos
* El término Casting quiere decir
conversión del tipo de dato.
int(4.8)
tiene valor
double(5)
tiene valor
5.0
double(7/4)
tiene valor
1.0
double(7) / double(4)
tiene valor
1.75
Fundamentos de programación C#. Román Mtz.
/ Ing. Jakeline Marcos
4
Ejemplos:
Ejemplo
Valor
5+8
13
5/8
0
6.0 / 5.0
1.2
double (4 / 8)
0.0
double (4) / 8
0.5
Fundamentos de programación C#. Román Mtz.
/ Ing. Jakeline Marcos
5
12/30/11
Casting implícito
 
Casting implícito
El cast es realizado de manera implícita
(automática) cuando un tipo “menor” se
asigna a un tipo “mayor” (Promoción
numérica)
 
Por ejemplo:
double x;
int n = 5;
x = n;
Como n es un entero y x es double, el valor de n se tiene
que convertir a double antes de poder asignarse a x.
Ahora x tiene el valor 5.00 y n tiene el valor 5.
NOTA que el valor de la n permanece sin cambio, solo
se cambia el valor que se asigna.
Fundamentos de programación C#. Román Mtz.
/ Ing. Jakeline Marcos
Fundamentos de programación C#. Román Mtz.
/ Ing. Jakeline Marcos
Conversión por asignación:
Suponiendo que la variable x es entera:
X = 2 * (14343 / 2344)
  Asignará el resultado entero de la operación a x.
  PERO, si x no es int, se llevará a cabo una conversión implícita
por asignación.
  Las conversiones por asignación solamente ocurren si la variable
tiene más alta precisión que el valor de la expresión. Por ejemplo:
double number;
number = 25;
Sí se vale..........
Pero:
int n;
n = 234.56 NO se vale !!!
 
Fundamentos de programación C#. Román Mtz.
/ Ing. Jakeline Marcos
Casting explícito:
 
También se puede utilizar el casting explícito para convertir de un
tipo de datos a otro.
Para ello es necesario utilizar un operador de tipo cast. Por
ejemplo:
x / 3 en donde x es int  será truncado!!
Entonces utilizamos el cast explícito de la siguiente manera:
resultado = (float) x / 3;
Otro ejemplo:
resultado = a + (double) (x + y * z);
Fundamentos de programación C#. Román Mtz.
/ Ing. Jakeline Marcos
6
Descargar