You are on page 1of 22

Operaciones matemáticas

Las categorías de los tipos, de mayor a menor, son:


double, float, long, int, short, char.

Operadores aritméticos unitarios


Al efectuar operaciones con ciertos tipos de datos el
lenguaje asume ciertas condiciones, por ejemplo si
tenemos 2 sumandos de tipo byte el resultado es
asumido como entero, si lo declaramos como byte el
interprete Java nos dará un error de incompatibili-
dad de tipos pues el rango del tipo byte es tan
pequeño que fácilmente podría desbordarse.
Otro ejemplo es que al realizar operaciones entre
datos enteros el resultado es asumido como entero
a pesar de que pudiera estar asignado a una variable
de punto flotante

Si deseamos que
las operaciones
de punto flotante se
efectúen correcta-
mente los operandos
deben ser flotantes.
Ejercicio
Agregar a su proyecto “Introduccion” un paquete
llamado “Practica3” con una clase llamada
Operadores, en la cual inserte el código necesario
para realizar las 5 operaciones con números enteros
mostrando el resultado de las mismas (suma, resta,
multiplicacion, ++ y --)
Así mismo efectuar 2 operaciones con números de
tipo float (división y residuo).
Operadores relacionales
Se usan en expresiones de tipo lógico. Su fin es comparar
dos variables dependiendo de lo que necesitemos
controlar, son utilizados en las estructuras de control.
Operadores lógicos
Se usan en expresiones de tipo lógico, en conjunto
con los operadores de relación, y para formar
expresiones lógicas más complejas.
En Java la operaciones lógicas y relacionales
devuelven valores verdaderos (true) o falsos (false)
por lo que son perfectamente asignables a variables
de tipo boolean u objetos de tipo Boolean.
Cuando realizamos operaciones de igualdad o
desigualdad con objetos no siempre van a funcionar
correctamente, por ejemplo si comparamos igualdad
entre objetos de tipo String es muy probable que el
resultado sea correcto sin embargo no es la forma
correcta de trabajar con los operadores, la clase
String incluye métodos específicos para comparar
cadenas.
Ejercicio
Agregue a su clase operadores 3 variables enteras
llamadas op1, op2 y op3, con valores 1,2 y 3
respectivamente, para cada operador lógico genere
las comparaciones que muestren en pantalla con
mensajes orientados al usuario las comparaciones
siguientes:
op1 > op2, op1 < op3, op1+op2 == op3,
op1+op2 != op3, !(op1+op2) <=op3, op2>op3,
op3 <= op2, (op3-op2 == op1) && (op1 <= op3),
(op2-op1 != op1) || !(op3<op2+op2)
Operadores de asignación abreviada

Operador cast
Dado que Java sólo permite almacenar valores del mismo tipo de la
variable, existen ocasiones en las que se requiere transformar el valor de
una variable antes de que sea asignado a otra, evitando la violación de
tipos.
Para realizar la conversión de tipo, se debe usar el operador cast, del tipo
al que se desea convertir.
Ejemplo: double PI = 3.1415926;
int i;
i = (int) x;
1. ()
2. !
3. * / %
4. + -
5. < <= > >=
6. == !=
7. &&
8. ||
Dados los siguientes valores iniciales para las variables:
x = 2; y = 6; z = 9; r = 100; s = 10; a = 15; b = 3;
¿Cuáles son los valores correctos en cada expresión?
» a) x += 10;
12 10 11
» b) s *= b;
9 13 30
» c) r /= 0;
infinito 1 error
» d) y += x + 10;
8 12 18
» e) z -= a*b;
-36 -18 36
Usar expresiones equivalentes para las siguientes, usando operadores
mixtos.

» a) x = 10 + x - y;
x += 10-y; x -= y+10; x += 10+y;

» b) r = 100*r;
r *= 100*r; r *= 100; r += 100;

» c) y = y/(10+x);
y /= 10*x ; y /= 10 + y/x; y /= 10+x;

» d) z = 3 * x + 6;
z *= x + 6; z *= 3 + 6; no es posible
Evaluar las siguientes expresiones. Siendo:
x = 10; y = 20; z = 30;
» a) z = x - y, t = z - y;
z=-10, t=-30 t=10 z=30, t=-30

» b) (x < 10) && (y > 15)


1 0

» c) (x <= z) || (z <= y)
1 0

» d) !(x+y < z)
1 0

» e) (x+y != z) && (1/(z-x-y) != 1)


1 0 error
La clase Scanner
Para poder leer entradas de datos desde teclado Java
nos brinda la clase Scanner la cual puede recibir sus
entradas a partir de la clase derivada in de la clase
System.
Para inicializar un objeto de tipo Scanner con una
entrada desde System.in debemos pasarlo como
parámetro de entrada al constructor de la clase
mediante la sentencia new, la cual crea un objeto
permitiéndonos pasar argumentos de entrada
alguno de sus constructores.
La clase Scanner
La clase Scanner no forma parte del lenguaje por
defecto de Java por lo que debe ser importado desde
la librería que la contiene, para poder conocer de
qué librería se trata podemos escribir la palabra
Scanner y NetBeans nos indicará la librería que la
incluye
La clase Scanner
Como podemos observar se trata del paquete
java.util.Scanner, NetBeans nos brinda la facilidad de
que dando clic en la adición sugerida nos incluye el
código para importar la librería en cuestión, si no
contásemos con esta facilidad entonces tendríamos
que teclear la línea de inclusión de la librería
import java.util.Scanner;
Con lo cual adquirimos el código correspondiente a la
clase deseada.
La clase Scanner
Una vez que contamos con la definición de la clase
podemos usarla para ingresar entradas, esta clase
cuanta con diversos métodos y el uso de cada uno de
ellos dependerá del tipo de entrada que deseamos
leer, la característica que comparten los métodos es
que comienzan con la palabra next y un tipo de dato
co-relacionado.
La clase Scanner
La clase Scanner
Una vez declarado el objeto Scanner podemos usarlo
para obtener las entradas desde teclado con sus
diversos métodos y asignarle esos valores a variables
compatibles con el tipo recibido
Ejemplo
La clase Scanner
La clase Scanner al leer datos de tipo numérico
procesa solamente los números y deja en el buffer
de entrada el <ENTER> (carácter ´\0´) con el que
concluyó la entrada desde teclado, el “arrastrar” este
carácter puede hacer que lecturas subsecuentes de
cadenas o caracteres no sean procesadas sino sean
interpretadas como vacías.
Una forma sencilla de resolver eso es agregar una
lectura vacía de un método nextLine() justo después
de cada lectura de algún dato numérico.
Ejercicio
Agregue a la clase Operadores la funcionalidad para
solicitar que el usuario ingrese los operadores op1 al
op3.
Adicionalmente registre la entrada de una cadena de
texto la cual se mostrará en pantalla.

You might also like