Upload
jose-manuel-gonzalez-padilla
View
672
Download
1
Tags:
Embed Size (px)
Citation preview
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 1
Datos Numéricos
Datos Numéricos
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 2
Expresiones Aritméticas
• Una expresión en la cual están involucrados valores numéricos como
24 + 34
• Se denomina expresión aritmética. Porque está compuesta de operadores aritméticos y operandos
• Un operador aritmético como el signo + , determina un cálculo numérico
• Los operandos son los elementos que intervienen en el cálculo
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 3
Operadores Aritméticos
• La siguiente tabla muestra los operadores aritméticos usados en un lenguaje de programación moderno como C++ o java.
Ésta es la división entera donde la parte fraccional se trunca
Ésta es la división entera donde la parte fraccional se trunca
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 4
División Entera
• En una división (/) :
• Cuando ambos operandos son enteros, el resultado es un entero.
• Es decir cualquier parte fraccional se trunca. No hay redondeo.
• A esta división se le denomina división entera
• Cuando uno de los dos operandos es real, el resultado es un número real
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 5
División Entera
• Ejemplos de división:
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 6
División Entera
• El operador módulo %, devuelve el residuo de una división.
• Aunque los números reales se pueden usar con este operador, es mas frecuente usarlo únicamente con números enteros
• Ejemplos:
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 7
División Módulo o Residuo
• Por ejemplo
x % y = 0
• Cuando y divide a x perfectamente:
• Ejemplo:
15 % 5 = 0
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 8
Expresiones Aritméticas
• Operando: En una expresión aritmética puede ser una constante, una variable, una llamada a una función u otra expresión aritmética, posiblemente entre paréntesis.
• Ejemplos:
x + 4
• El operador + (suma ), se dice que es un operador binario porque actúa sobre dos operandos
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 9
Expresiones Aritméticas
• Los operadores + y – pueden ser unarios y binarios.
• Ejemplos:
-x + 4
• El operador - (resta), se dice que es un operador unario porque actúa sobre un operando
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 10
Precedence Rules
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 11
Expresiones Aritméticas
• Sub expresión: En la expresión:
x + 3 * y
• El operador de adición actúa sobre los operandos x y 3 * y:
• El operando derecho de la suma es por si misma una expresión.
• A menudo a una expresión anidada se le conoce como sub expresión
• La sub expresión 3 * y tiene a su vez como operandos al 3 y a ‘y’
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 12
Sub Expresión
• La sub expresión 3 * y tiene a su vez como operandos al 3 y a y:
x + 3 * y
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 13
Reglas de Precedencia
• Reglas de Precedencia: Cuando dos o mas operadores están presentes en una expresión, el orden de evaluación se realiza de acuerdo a las Reglas de precedencia.
• Por ejemplo la multiplicación tiene mayor precedencia que la suma.
• En el ejemplo anterior, la operación de multiplicación es evaluada primero, y la suma se realiza después
x + 3 * y
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 14
Reglas de Precedencia
• La siguiente tabla muestra las reglas de precedencia para los operadores aritméticos
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 15
Expresiones Aritméticas
• Evaluate the following expressions.•
a. 3 + 5 / 7
b. 3 * 3 + 3 % 2
c. 3 + 2 / 5 + -2 * 4
d. 2 * (1 + -(3/4) / 2) * (2 - 6 % 3)
What is the data type of the result of the following expressions?
a. (3 + 5) / 7
b. (3 + 5) / (float) 7
c. (float) ( (3 + 5) / 7 )
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 16
Reglas de Precedencia
• Ejemplo:
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 17
Conversión de tipos de datos
• Cuando una expresión aritmética consta de variables y constantes del mismo tipo de datos, entonces el resultado será del mismo tipo de datos
• Por ejemplo,
• Si el tipo de datos de a y b son enteros, entonces el resultado de la expresión:
a * b + 23
Será entero.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 18
Conversión de tipo de datos (typecasting)
• Una expresión mixta es una expresión aritmética que contiene variables y constantes del diferente tipo de datos
• En una expresión mixta, se lleva a cabo una conversión
de tipos
• La conversión de tipos es un proceso que convierte un valor de un tipo de datos en otro tipo de datos
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 19
Conversión de tipo de datos (typecasting)
• Dentro de una expresión, se presentan tres clases de conversión de tipos:
– Implícita
– Explícita
– Por asignación
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 20
Conversión de tipo de datos (typecasting)
• Promoción Numérica:
• La conversión implícita, también llamada promoción numérica es aplicada a los operandos de un operador aritmético
• La promoción se basa en las reglas de la tabla 3.4
• Esta conversión se llama promoción debido a que el operando es convertido de una precisión menor a una mayor
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 21
Conversión de tipo de datos (typecasting)
• Promoción Numérica:
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 22
Conversión de tipo de datos (typecasting)
Conversión explicita:
• En lugar de confiar en la conversión implícita, es posible usar la conversión explicita para convertir un operando de un tipo de datos a otro.
• La conversión explicita se aplica a un operando por medio del operador de conversión de tipos
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 23
Conversión de tipo de datos (typecasting)
Conversión explicita:
• Ejemplo: Para convertir la variable entera x en la expresión:
x / 3
• a flotante, de tal forma que el resultado no se trunque , aplicamos el operador de conversión de tipos (float) a la expresión:
(float) x / 3
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 24
Conversión de tipo de datos (typecasting)
Conversión explicita:
• La sintaxis es:
( <tipo de datos> ) <expresión>;
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 25
Conversión de tipo de datos (typecasting)
Conversión explicita:
• Propiedades del Operador de Conversión de tipos:
– Es Unario
– Tiene Mayor precedencia que cualquier operador binario
– Se debe usar el paréntesis para convertir una sub expresión
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 26
Conversión de tipos de datos (typecasting)
• Conversión por asignación:
• Si asumimos que la variable x es entera, entonces el estatuto de asignación:
x = 2 * (14343 / 2344);
• Asignará el resultado de tipo entero obtenido de la expresión en la variable x.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 27
Conversión de tipo de datos (typecasting)
• Conversión por asignación:
• Sin embargo, si el tipo de datos de x no es entero
• Una conversión implícita ocurrirá de tal forma que el tipo de datos de la expresión se convierta al mismo tipo de datos que el de la variable.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 28
Conversión de tipo de datos (typecasting)
Conversión por asignación:
• La conversión por asignación es otra variante de la
conversión implícita que ocurre solamente que se cumplan las dos condiciones:
– Que el tipo de datos de la variable y el de la expresión sean diferentes
– Que el tipo de datos de la variable sea de mayor precisión que el de la expresión
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 29
Conversión de tipo de datos (typecasting)
• Conversión por asignación:
• Por ejemplo:
double number;
number = 25;
• es válido, pero:
int number;
number = 234.56; //Error
no lo es.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 30
Conversión de tipo de datos (typecasting)
• Ejemplo:
• Un entero largo tiene mas dígitos que el tipo float puede representar
• Un entero largo tal como: 123456789 tiene mas dígitos que los que el tipo float puede representar
int n = 123456789;
float f = n; // f is 1.23456792E8
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 31
Estatuto de asignación
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 32
Estatuto de asignación
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 33
Expresiones Aritméticas
• Tarea• Evaluate the following expressions.•
a. 3 + 5 / 7
b. 3 * 3 + 3 % 2
c. 3 + 2 / 5 + -2 * 4
d. 2 * (1 + -(3/4) / 2) * (2 - 6 % 3)
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 34
Expresiones Aritméticas
3. Which of the following expressions is equivalent to -b(c +34)/2a?
a. -b * (c + 34) / 2 * a
b. -b * (c + 34) / (2 * a)
c. -b * c + 34 / (2 * a)
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 35
Funciones Matemáticas
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 36
Funciones Matemáticas
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 37
Funciones Matemáticas
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 38
Funciones Matemáticas
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 39
Constantes
• Durante la ejecución de un programa, a una variable se le puede asignar diferentes valores
• Existen casos en los que es conveniente asegurarnos de que el valor asignado a una localidad de memoria no cambie
• En otras palabras queremos que el valor asignado se mantenga fijo. Pare esto, requerimos usar una constante
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 40
Constantes
• Una constante en el lenguaje C se declara d la siguiente forma:
# define FARADAY_CONSTANT 23060
# define PI 3.14159
• La constante PI es llamada constante nombrada o constante simbólica
• Nos referiremos a constantes simbólicas con identificadores tales como PI
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 41
Constantes
• El segundo tipo de constante es llamada constante literal y nos referiremos a ella por su valor actual
• Por ejemplo, el siguiente estatuto contiene tres constantes literales.
# define PI 3.14159
area = 2 * PI * 345.79 ;
Constantes Literales
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 42
Constantes
• Para la constante literal 2, el tipo de datos se asigna de manera automática a int
• ¿Como especificamos una constante literal de tipo long ?
• Ponemos al final la letra L o l
2L * PI * 345.79
• ¿ y acerca de la constante 345.79?
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 43
Constantes
• Dado que la constante contiene un punto decimal, su tipo de datos puede ser solamente float o double.
• ¿Pero cual?
• La respuesta es double
• Para designar una constante literal de tipo float debemos agregarle una letra F o f al final
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 44
Constantes
• Por ejemplo:
2 * PI * 345.79F
• Para representar una constante literal double, es opcional agregar una d o D al final
• Las siguientes dos constantes son equivalentes
2 * PI * 345.79 is equivalent to 2 * PI * 345.79D
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 45
Constantes
• Es posible representar constantes literales usando la notación científica. Por ejemplo:
• El cual en C o Java puede ser representado por:
<number> E <exponent>
• Donde <number> es una constante literal que puede o no contener un número decimal
• La E puede ser mayúscula o minúscula
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 46
Constantes
• La expresión entera puede terminar con el sufijo f, F, d, o D
• <exponent> es un entero con o sin signo
• <number> por si mismo no puede tener el sufijo con los símbolos f, F, d, o D.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 47
Constantes
• Ejemplos:
12.40e+209
23E33
29.0098e–102
234e+5D
-4.45e2
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 48
Tarea Lunes 23 de Marzo
1. Suppose we have the following declarations:
int i = 3, j = 4, k = 5;
float x = 34.5f, y = 12.25f;
Determine the value for each of the following expressions, or explain why it is not a valid expression.
a. ) (x + 1.5) / (250.0 * (i / j))
b. ) x + 1.5 / 250.0 * i / j
c.) -x * -y * (i + j) / k
d. ) (i / 5) * y
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 49
Tarea Lunes 23 de Marzo
1. Suppose we have the following declarations:
int i = 3, j = 4, k = 5;
float x = 34.5f, y = 12.25f;
e.) min(i, min(j,k))
f.) exp(3, 2)
g.) y % x
h.) pow(3, 2)
i.) (int) y % k
j.) i / 5 * y
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 50
Tarea Lunes 23 de Marzo• 2. Suppose we have the following declarations:
int m, n, i = 3, j = 4, k = 5;
float v, w, x = 34.5f, y = 12.25f;
Determine the value assigned to the variable in each of the following assignment statements, or explain why it is not a valid assignment.
a. ) w = pow(3, pow(i, j) );
b.) v = x / i;
c.) w = ceil (y) % k;
d. ) n = (int) x / y * i / 2;
e.) x = sqrt (i*i - 4*j*k);
f.) m = n + i * j;
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 51
Tarea Lunes 23 de Marzo
2. Suppose we have the following declarations:
int m, n, i = 3, j = 4, k = 5;
float v, w, x = 34.5f, y = 12.25f;
g.) n = k /(j * i) * x + y;
h.) i = i + 1;
i.) w = float(x + i);
j.) x = x / i / y / j;
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4th Ed Chapter 3 - 52
Tarea Lunes 23 de Marzo