Ejercicios Java:
Ejercicio 1.3: Tipos de datos (*)
¿A qué tipo pertenecen los siguientes datos?
a) 0 =>(entero) byte, short, int
b) -90.234 =>(decimal o real) float, double
c) -90 => (entero) byte, short, int
d) -90.0 => (decimal o real) float, double
e) ‘A’ => (caracter) char
f)“Casablanca” => (cadena) String
g) false => (boleano o logico) boolean
h) “false” => (cadena) String
i) “-90” => (cadena) String
Ejercicio 1.4: Indentificadores de variable
¿Cuáles de los siguientes identificadores de variable no son correctos y porqué?
a) XYZ => Bien
b) 56vertice => Mal (pq. empieza p. un número)
c)año&actual => Mal (pq. tiene &) [java actual permite ñ]
d) _xyz => Mal (pq. empieza p. _)
e) indice28 => Bien
f) año_actual => Bien [java actual permite ñ]
g) ‘valor’ => Mal (pq. tiene comillas)
h) año => Bien [java actual permite ñ]
i) zzz => Bien
Ejercicio 1.5: Calcular expresiones (*)
Calcula el valor de estas expresiones, sabiendo que a = 2, b = 5 y c = 8:
a) 4 / 2 * 3 / 6 + 6 / 2 / 1 /4 * 2 => 2,5
b) (7 * (10 – 5) % 3) * 4 + 9 => 17
c) 3 * a – 4 * b /[Link](c, 2) => 5,68
d) 7 % 5 % 3 => 2
e) b * a – [Link](b, 2* 4 / c) => 5
f) [Link]([Link](b,2)) => 5
g) (((b + c) / 2 * a + 10) *3 * b) - 6 => 339
h) [Link](b*b) => 5
i) 7 / 2 => 3.5 // float x = 7.0/2.0 => float x=(float) 7/2; => 3.5
j) [Link](81.4) + [Link](81.6) => 163
k) 7 % 2 => 1
l) [Link]([Link](c)) > [Link](-(a^2)) => false
m) 0 % 5 => 0
n) 7 * 10 - 50 % 3 * 4 + 9 => 71
Ejercicio 1.6: Convertir expresiones (*)
Convierte estas expresiones algebraicas a su notación informática en lenguaje Java:
a) (m / n) + p
b) m+(n/(p-q))+p
c) (x+y) / (a-b)
d) 2+([Link](x) + [Link](x)) / [Link](x)
e) (m+n/p) / (q-r/s)
f) (-b + [Link](b*b-4*a*c))/(2*a) => (-b + [Link]([Link](b,2)-4*a*c))/(2*a)
(-b -[Link](b*b-4*a*c))/(2*a) => (-b - [Link]([Link](b,2)-4*a*c))/(2*a)
Ejercicio 1.7: Asignaciones sospechosas (*)
Se tienen las siguientes variables: a y b de tipo entero; c y d de tipo real; e y f
de tipo carácter; y g de tipo lógico. Señala cuáles de las siguientes
asignaciones no son válidas y por qué:
int a,b
double c,d
char e,f
boolean g
a) a = 20; => Correcto
b) b = 5500; => Correcto
c) e = ‘f’; => Correcto
d) g = true; => Correcto
f) b = 12; => Correcto
g) c = 0; => Correcto, pero problemático: se intenta asignar un entero a un real
(funcionará por conversión implícita)[todos los enteros son reales “decimal”]
h) e = f; => Correcto
i) g ="false"; => Incorrecto: se intenta asignar un String a un boolean
j) f = ‘0’; => Correcto
k) d = c; => Correcto
l) a = 12.56; => Incorrecto: se intenta asignar un real a un entero.
m) f = g; => Incorrecto: se intenta asignar un boolean a un carácter.
Ejercicio 1.8: Asignaciones liosas (*)
¿Cuál es la salida por pantalla de cada una de estas secuencias de
asignaciones?
A)
int a, b, c;
a = 3;
b = 4;
c = a + 2 * b; // 11
c = c + b; // 15
b = c – a; // 12
a = b * c; // 180
[Link](a + b + c);
//=> a = 180, b = 12, c = 15. En la pantalla aparecerá el número 207
B)
double x;
x = 2.0;
x = [Link]((x + x), 2); // 16.0
x = [Link](x + [Link](x) + 5); // 25.0
[Link](x);
//=> x = 5. En la pantalla aparecerá 5.0
C)
int x, y;
boolean z;
x = 5;
y = x – 2; // 3
x = y * y + 1; // 10
z = (x > (y + 5)); // true
[Link]("x vale " + x + ", y vale " + y + " y z vale " + z);
//=> x = 10, y = 3, z = verdadero. En la pantalla aparecerá: “x vale 10, y vale 3 y z vale
true”
D)
int a, b;
a = 10;
b = 5;
a = b; // 5
b = a; // 5
[Link](a + b);
//=> a = 5, b = 5. En la pantalla aparecerá 10.
Ejercicio 1.9: Intercambio de valores (*)
Se tienen dos variables, a y b. Escribe las asignaciones necesarias para
intercambiar sus valores, sean cuales sean.
package programa;
public class Programa {
public static void main(String[] args) {
int a, b, aux;
// Asignamos un valor inicial (cualquiera) a las variables a y b
a = 1;
b = 2;
// Intercambiamos los valores con ayuda de la variable auxiliar
aux = a; // 1
a = b; // 2
b = aux; // 1
// Comprobamos que todo ha ido bien mostrando el valor de a y b
[Link]("a = " + a + ", b = " + b); // a(2),b(1)
}
Ejercicio 1.10: Intercambio de valores a tres bandas (*)
Se tienen tres variables, a, b y c. Escribe las asignaciones necesarias para
intercambiar sus valores, sean cuales sean, de manera que:
b tome el valor de a
c tome el valor de b
a tome el valor de c
package programa;
public class Programa {
public static void main(String[] args) {
int a, b, c, aux;
// Asignamos un valor inicial (cualquiera) a las variables
a = 1;
b = 2;
c = 3;
// Intercambiamos sus valores con ayuda de la variable aux
aux = a; // 1 // aux=b; // 2
a = c; // 3 // b=a; // 1
c = b; // 2 // a=c; // 3
b = aux; // 1 // c=aux; // 2
// Comprobamos que todo ha ido bien mostrando los valores
[Link]("a = " + a + ", b = " + b + ", c = " + c); // a(3),b(1),c(2)
Ejercicio 1.11: Solicitar 2 numeros distintos por teclado y mostrar cual de ellos es
mayor:
package programa;
import [Link];
public class Programa {
//static Scanner teclado=new Scanner([Link]);
public static void main(String[] args) {
Scanner teclado=new Scanner([Link]);
int num1,num2;
[Link]("Ingrese el 1º numero : ");
num1=[Link]();
[Link]("Ingrese el 2º numero : ");
num2=[Link]();
// idem if-else if-else
if(num1>num2){
[Link]("El 1º numero es mayor: "+num1);
}
if(num2>num1){
[Link]("El 2º numero es mayor: "+num2);
}
if(num1>num2){
[Link]("Los 2 numeros son iguales");
}
}
Ejercicio 1.12: Diseñar una aplicacion o programa q. pida al usuario un numero e
indique si es par o impar.
package programa;
import [Link];
public class Programa {
public static void main(String[] args) {
Scanner entrada = new Scanner([Link]);
int num;
[Link]("Ingresa un numero: ");
num = [Link]();
if(num % 2 == 0){ // idem if(0 == num % 2){
[Link](num+" es un número par.");
}else{
[Link](num+" es un número impar.");
}
}
Ejercicio 1.13: Pedir 2 numeros y mostrarlo ordenados de forma creciente (de < a
>).
package programa;
import [Link];
public class Programa {
public static void main(String[] args) {
Scanner entrada=new Scanner([Link]);
int num1,num2;
[Link]("Introduce el 1º numero: ");
num1=[Link](); // int num1=[Link]();
[Link]("Introduce el 2º numero: ");
num2=[Link](); // int num2=[Link]();
if(num1>num2){ // num1 >
[Link]("Orden en creciente: "+num2+" - "+num1);
}else if(num2>num1){ // num2 >
[Link]("Orden en creciente: "+num1+" - "+num2);
}else{
[Link]("Son iguales.");
}
// Otra forma de hacerlo
//int num1,num2,mayor,menor;
//mayor = num1 > num2 ? num1 : num2;
//menor = num1 < num2 ? num1 : num2;
//[Link]("Orden en creciente: "menor+ "-" + mayor);
}
Ejercicio 1.14: Pedir una nota de 0 a 10 y mostrarla de la siguiente forma:
0 a 4 insuficiente
5 suficiente
6 bien
7 u 8 notable
9 u 10 sobresaliente
package programa;
import [Link];
public class Programa {
public static void main(String[] args) {
Scanner entrada=new Scanner([Link]);
int nota;
[Link]("Introduce una nota: ");
nota=[Link]();;
switch(nota){
case 0:
case 1:
case 2:
case 3:
case 4:
[Link]("INSUFICIENTE"); // de o a 4
break;
case 5:
[Link]("SUFICIENTE"); // 5
break;
case 6:
[Link]("BIEN"); // 6
break;
case 7:
case 8:
[Link]("NOTABLE"); // de 7 a 8
break;
case 9:
case 10:
[Link]("SOBRESALIENTE"); // de 9 a 10
break;
default:
[Link]("La nota debe ser de 0 a 10.");
break;
}
}