Ut02 04OpExp

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

UT02-04

- Operadores y Expresiones
Operadores y Expresiones.
Operador :
Un operador es un símbolo que indica que debe ser llevada a cabo una operación especificada​ sobre un cierto número de operandos.
Ejemplos :
/ , - , etc ……
Expresión :
Una expresión es una combinación de constantes, variables o funciones, que es interpretada de acuerdo a las normas particulares de precedencia y asociación
para un lenguaje de programación en particular.
Como en matemáticas, la expresión resulta finalmente ser su valor evaluado, es decir, la expresión finalmente se sustituye por ese valor resultante.
En informática una expresión devuelve un valor que generalmente se utiliza.
Ejemplos de Expresiones :
( Base * Altura ) / 2
Salario * 1.10
“Hola” + “,” + " Buenos Días"

Clasificación de Operadores
En función del numero de Operandos :
Unario
+4
Binarios
i = i + 1;
Ternarios
a ? 7 : 1;
En función de su posición respecto de los operadores :
Prefijos
+4
Infijos
2 + 3
Postfijos
3++

Operadores Aritméticos
‘+’ , ‘-’ , ’*’ , ‘/’ , ‘%’
‘%’ Es el resto de la división entera.
Se puede utilizar para calcular múltiplos
10 % 3 será 1.
Ejercicio020402OperadoresAritmeticos
Hacer un pequeño programa para probar éstos operadores.

Operadores de Asignación
Los operadores de asignación permiten asignar un valor a una variable.
El operador de asignación por excelencia es el operador igual (=).
La forma general de las sentencias de asignación con este operador es:
variable = expression;
Ejemplo : i = 7; (Asigna 7 al valor de la variable i)
Asignación Múltiple
Ejemplo : valor = j = i = 7; (Asigna 7 al valor de la variable i, el valor de i a j y el de j a valor)
Java dispone de otros operadores de asignación.
Se trata de versiones abreviadas del operador (=) que realizan operaciones “acumulativas” sobre una variable
Son : ‘+=’ , ‘-=’ , ’*=’ , ‘/=’ , ‘%=’
Ejemplo : i += 7; (Suma 7 al valor de la variable i)

Ejemplo
int i = 5;
int j = 4;
System.out.printf("Valor : %d\n", i );
System.out.printf("Valor : %d\n", i + j );
System.out.printf("Valor : %d\n", i );
System.out.printf("Valor : %d\n", i += j );
System.out.printf("Valor : %d\n", i );
System.out.printf("Valor : %d\n", i % j );

Ejercicio020404OperadoresAsignacion :
Muestra con un programa ejemplo el uso de la asignación y de los operadores de asignación acumulativos.

Responder
Hacer en papel y responder el ejemplo.
¿Que se obtendría y porqué?

int i = 35;
int j = 3;
System.out.printf("Valor : %d\n", i );
System.out.printf("Valor : %d\n", i + j );
System.out.printf("Valor : %d\n", i );
System.out.printf("Valor : %d\n", i += j );
System.out.printf("Valor : %d\n", i );

Operadores Unarios
Los operadores más (+) y menos (-) unarios y prefijos sirven para mantener o cambiar el signo de una variable, constante o expresión numérica.
Su uso en Java es el estándar de estos operadores.

Operador instanceof
El operador instanceof permite saber si un objeto pertenece o no a una determinada clase.
Es un operador binario cuya forma general es :
objectName instanceof ClassName
y que devuelve true o false según el objeto pertenezca o no a la clase.

Operador Ternario condicional " ? : "


Este operador, tomado de C/C++, permite realizar bifurcaciones condicionales sencillas. Su forma general es la siguiente:
booleanExpression ? res1 : res2
Donde se evalúa booleanExpression y se devuelve res1 si el resultado es true y res2 si el resultado es false.
Es el único operador ternario (tres argumentos) de Java.
Como todo operador que devuelve un valor puede ser utilizado en una expresión.
Por ejemplo las sentencias:

//Ejemplo
x = 1;
y = 10;
z = true ? x+3 : y+8;
z = (x<y) ? x+3 : y+8;
System.out.println( "Valor de z : " + z );
//Hacer otra prueba también
System.out.println( "Valor de salida : " + ( (x<y) ? x+3 : y+8 ) );
System.out.printf( (x<y) ? "%X" : "%o" , 10 );
//Explicar

asignarían a z el valor 4, es decir x+3.


Podemos obtener el mismo valor aun sin ser almacenado en una variable z de uso temporal.
Ejercicio020406OperadorTernario: Probar este ejemplo y Ampliarlo.

Operadores Incrementales
Java dispone del operador incremento (++) y decremento (–).
El operador (++) incrementa en una unidad la variable a la que se aplica, mientras que (–) la reduce en una unidad.
Estos operadores se pueden utilizar de dos formas:
1. Prefijo. Precediendo a la variable o expresión ( por ejemplo: ++i ).
En este caso primero se incrementa la variable y luego se utiliza (ya incrementada) en la expresión en la que aparece.
2. Postfijo. Siguiendo a la variable o expresión ( por ejemplo: i++ ).
En este caso primero se utiliza la variable en la expresión (con el valor anterior) y luego se incrementa.
Ejercicio020410OperadoresIncrementales:
Probar el Ejemplo, verificar si es cierto y explicar :

PARA ESTE CODIGO


int i = 3;
System.out.printf( "Valor de i : %02d\n" , i );
System.out.printf( "Valor de i : %02d\n" , i++ );
System.out.printf( "Valor de i : %02d\n" , ++i );
LA SALIDA SERIA
Valor de i : 03
Valor de i : 03
Valor de i : 05

Ejercicio en Clase
Ejercicio 020420OperadoresReto :
Probar diferentes combinaciones de operadores y explicar.
Plantéale una sentencia que comprendas, pero compleja, a tu compañero sobre un papel y que él te explique su funcionamiento.
Verificar con un programa la sentencia.

Operadores Relacionales
Los operadores relacionales sirven para realizar comparaciones de igualdad, desigualdad y relación de menor o mayor.
El resultado de estos operadores es siempre un valor boolean (true o false) según se cumpla o no la relación considerada.
> , <, >= , <= , == , !=

Ejemplos :
int i = 7, j = 9 ;
System.out.println( "Prueba operadores Logicos : " + (i > j) );
System.out.println( "Prueba operadores Logicos : " + (i <= j) );
System.out.println( "Prueba operadores Logicos : " + (i != j) );
System.out.printf( "%2d es mayor que %d : es %b\n", i, j, (i > j) );

Ejercicio020430OperadoresRelacionales: Ampliar los Ejemplos.

Operadores lógicos
Los operadores lógicos se utilizan para construir expresiones lógicas, combinando valores lógicos (true y/o false) o los resultados de los operadores relacionales.
Tabla de Operadores Lógicos

Ejercicio 020435OperadoresLogicos

Ejemplos :
int i = 7, j = 9 ;
System.out.println( "Prueba operadores Logicos : " + ((i > j) && (j > 4)) );
System.out.println( "Prueba operadores Logicos : " + ((i <= j) || (3 < 2)) );
System.out.println( "Prueba operadores Logicos : " + ((i != j) && !( j !=i )) );
System.out.printf( "%2d es mayor que %d : es %b\n", i, j, (i > j) );

Operadores que actúan a nivel de bits
Existe un conjunto de operadores que actúan a nivel de bits.
Las operaciones de bits se utilizan con frecuencia para definir señales o flags.
flags son variables de tipo entero en las que cada uno de sus bits indican si una opción está activada o no.
Referencia : https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Operadores_de_bits
Tabla de Operadores a nivel de bit

La diferencia de los operdores de dos y tres simbolos ‘>’ es el mantenimiento del bit de signo en números negativos.

//Ejemplos :
int i = 7, j = 9 ;
System.out.println( "Prueba operadores a nivel de bits : " + (i >> 2) );
System.out.println( "Prueba operadores a nivel de bits : " + (j << 1) );
System.out.println( "Prueba operadores a nivel de bits : " + (i | j) );
System.out.println( "Prueba operadores a nivel de bits : " + (~i) );

Ejercicio020440OperadoresLogicosBits :
1. Probar los ejemplos anteriores y ampliar con más casos.
2. Calcular el valor de estas expresiones y explicar en la medida de lo posible :
| (5 + (~3+1) ) ; ~10 ; (~10+1) ; (~0) ; ( (1<<4) + (1<<3) + (1<<2) + (1<<1) + (1<<0) ) |
Obtencion del carácter " ~ "
ALT 126
AltGr 4
Altr Ñ

Operador de Concatenación de cadenas de caracteres (+) y otros valores.


El operador más (+) se utiliza también para concatenar cadenas de caracteres.
Por ejemplo, para escribir una cantidad con un rótulo y unas unidades puede utilizarse la sentencia:

//Ejemplo de uso del Operador Concatenación.


int edad = 20;
System.out.println("Pepe Pérez" + " tiene " + edad + " años");

También se puede usar el operador += en cadenas, como por ejemplo :

//Ejemplos :
String cadena = "Buenos ";
cadena += "días";
System.out.println(cadena);

Ejercicio 020450OperadorConcatenacion: Probar y ampliar los ejemplos anteriores.

Precedencia de Operadores
El orden en que se realizan las operaciones es fundamental para determinar el resultado de una expresión.
El valor de 2 + 3 * 4 depende de qué operación (la división o el producto) se realice primero.
(2 + 3) * 4 = 20
2 + (3 * 4) = 14
USAR PARENTESIS
La siguiente lista muestra el orden en que se ejecutan los distintos operadores en un sentencia, de mayor a menor precedencia:

Precedencia de Operadores

Ejercicio 020455PruebasPrecedencia : Probar, explicar y ampliar.


//Ejemplos de Sentencias y Expresiones.
int i = 10 , j = 7, k = 2; //Declaración de variables.
i = ++i + 1;
j = j / (k+1);
k = 1 + i * j - k;
System.out.println("i = " + i);
System.out.println("j = " + j);
System.out.println("k = " + k);

Sentencias y Expresiones
Una Expresión es un conjunto de diferentes valores (Operandos) unidos por operadores.
Más formal : En programación, una expresión es una combinación de constantes, variables o funciones, que es interpretada de acuerdo a las normas particulares de
precedencia y asociación para un lenguaje de programación en particular.
Como en matemáticas, la expresión resulta ser su valor evaluado, es decir, la expresión se termina sustituyendo por su valor.
Son secuencias correctas de órdenes que se le dan al computador para que realice una tarea determinada.
Una Sentencia es una expresión que acaba en punto y coma (;).
Se permite incluir varias sentencias en una línea, aunque lo habitual es utilizar una línea para cada sentencia.
Ejemplos de Sentencias y Expresiones:
Ejercicio 020460SentenciasExpresiones : Probar y ampliar.

//Ejemplos de Sentencias y Expresiones.


int edad = 20, i = 110 , j = 7, k = 0; //Declaración de variables.
i = i++ + 1; //Operación de incremento : Explicar.
j = j / (++k+1);
j = j>i ? j : i; // j = ( (j>i) ? j : i); //asi evitamos problemas de precedencia.
System.out.println("Pepe Pérez" + " tiene " + edad + " años");
System.out.printf("Valor de i : %04d y de j : %04d\n", i , j );
System.out.println("Valor de la Expresión :" + ( (j<<3) + edad - (i = (j>>2)) ) );
System.out.printf("Valor de i : %04d y de j : %04d después de la expresión\n", i , j );

j << 3 no modifica el valor de j, sólo lo utiliza.


i = (j >> 2 ) modifica el valor (contenido en memoria) de i, pero no el de j.

Ejercicio
Ejercicio 020470EjemplosExpresiones : Probar y explicar con cometarios diversos ejemplos de expresiones de todos los diferenctes tipos estudiados y explicar en la
visualización de pantalla el resultado de la expresion.

//Ejemplo de Salida del Programa.


Salida del Ejericcio 02 04 70 Ejemplos Expresiones
Expresiones Aritmeticas :
Si hacemos que las variables i y j valgan :
i = 4; j = 7;
i + ++j -> 12 dado que el incremento de j es prefijo.
i++ + j -> 11 dado que el incremento de i es postfijo.
j / i -> 2 dado que es una division entera.
....
....
...
Expresiones Lógicas usando i y j :
i > j -> false
(i < j) || (i > (j/i)) -> ....
.....
....
Expresiones con Operadores sobre bits
~i + j -> ....
j >> 2 -> ....
....
Expresiones .....
....
....
....

Retorno
Unidad 02. Identificación de Elementos
Indice General de la Asignatura. Vuelta al Indice General de Apuntes de Asignaturas.

UT02-04 - Operadores y Expresiones - Andrés Ramos González - IES Alonso de Avellaneda

Este obra está bajo una licencia: Creative Commons Reconocimiento-CompartirIgual 3.0

También podría gustarte