Está en la página 1de 50

Apuntes programación. Ud2.

ÍNDICE:

EJERCICIOS NÚMEROS PARES E IMPARES: 2

EJERCICIOS NÚMERO MAYOR , MENOR O IGUALES: 3

EJERCICIOS NORMALES: 4

EJERCICIOS NÚMEROS POSITIVOS, NEGATIVOS O NULOS: 23

EJERCICIOS NÚMEROS PRIMOS: 25

EJERCICIOS DE MENÚ: 25

EJERCICIOS CON STRING: 28

EJERCICIOS CON POO: 30

EJERCICIOS EXAMEN ANTERIOR: 46

ESTRUCTURA POO: 49

CLASES PRIMERA MAYÚSCULA.

LÍNEA ERRÓNEA COMENTAR.

PSVM + TABULADOR public static void main(String[] args) {


SOUT + TABULADOR System.out.println("");

Booleano: Si o no/ True o false.


Char: Una letra y en comillas simples. char letra = ’a’;
Números sin decimales: (-45 , 493)
● byte.
● short.
● int.
● long.
Números con decimales : 999.99 se escribe (5, 2).
● float.
● double.
● bigint.

1
➔ EJERCICIOS NÚMEROS PARES E IMPARES:
Mostrar por consola los 20 primeros números impares en orden descendente usando el bucle for.
public class Estudiando {
public static void main(String[] args) {
for (int i = 19; i > 0; i--) {
System.out.println("valor: " + i);
i--;
}
}
}

Diseñar un programa Java que muestre el producto de los 10 primeros números impares.
public class Estudio {
public static void main(String[] args) {
long producto = 1;
for (int i = 1; i < 20; i += 2) {
producto = producto * i;
}
System.out.println("La multiplicación de los 10 primeros impares: " + producto);
}
}

Realiza un programa que lea un conjunto de enteros y luego imprima la suma de


los enteros pares e impares.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int numero;
String eleccion = "";
int sumaPar = 0;
int sumaImpar = 0;
do {
System.out.print("Introduce un número: ");
numero = sc.nextInt();
if (numero % 2 == 0) {
sumaPar += numero;
} else {
sumaImpar += numero;
}
System.out.print("Quieres continuar si/no? ");
eleccion = sc.next();
System.out.println(eleccion);
} while (eleccion.equals("si"));
System.out.println("Suma de números pares : " + sumaPar);
System.out.println("Suma de números impares : " + sumaImpar);
}
}

Calcular si un numero es positivo o negativo y si es par o impar.


import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
int numero;
Scanner teclado = new Scanner(System.in);
System.out.println("Introduce un numero");
numero = teclado.nextInt();
if(numero<0) {
System.out.println ("El numero "+numero+" es negativo\n");
}
2
else {
System.out.println ("El numero "+numero+" es positivo\n");
}
if(numero%2==0) {
System.out.println ("El numero "+numero+" es par\n");
}
else {
System.out.println ("El numero "+numero+" es impar\n");
}
}
}

➔ EJERCICIOS NÚMERO MAYOR , MENOR O IGUALES:


Crea dos variables de tipo entero a, b y c. Asígnales valores de 12, 8 y 4 respectivamente.
Crea un programa, utilizando las sentencias condicionales if/else que necesites, que
compare los valores de las tres variables y muestre por consola cuál de las tres es la
mayor. Después modifica los valores de las tres variables para comprobar que tu
programa siempre encuentra la mayor de las tres.
public class Estudiando {
public static void main(String[] args) {
int a = 12;
int b = 8;
int c = 4;

if (a > b && a > c) {


System.out.println("El número más grande es: " + a);
} else if (b > a && b > c) {
System.out.println("El número más grande es: " + b);
} else if (c > a && c > b) {
System.out.println("El número más grande es: " + c);
} else {
System.out.println("Los números son iguales.");
}
}
}

Modifica el programa anterior para tener en cuenta la igualdad en las variables a, b y c imprime por
pantalla un mensaje para indicarlo en ese caso. Después "juega" con los valores de las variables para
comprobar si tu programa es correcto.
public class Estudiando {
public static void main(String[] args) {
int a = 8, b = 6, c = 8;
if (a >= b) {
if (a == b) {
System.out.println("a y b tienen el mismo valor");
}if (a >= c) {
if (a == c) {
System.out.println("a y c tienen el mismo valor");
}
System.out.println("a es el mayor");
}else {
System.out.println("c es el mayor");
}
} else {
if (b >= c) {
if (b == c) {
System.out.println("b y c tienen el mismo valor");
}
System.out.println("b es el mayor");
} else {
3
System.out.println("c es el mayor");
}
}
}
}

Realizar un juego para adivinar un número. Para ello pedir un número N, y luego ir pidiendo números
indicando “mayor” o “menor” según sea mayor o menor con respecto a N. El proceso termina cuando
el usuario acierta.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
int n, num;
// n es el número que hay que acertar
// num guarda los números introducidos
Scanner sc = new Scanner(System.in);
System.out.print("Introduce N: ");
n = sc.nextInt();
System.out.print("Introduce número: ");
num = sc.nextInt();
while (num != n) // mientras no coincidan ambos números
{
if (num > n) {
System.out.println("menor");
} else {
System.out.println("mayor");
}
System.out.print("Introduce número: ");
num = sc.nextInt();
}
}
}

➔ EJERCICIOS NORMALES:
Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo Rueda
(que representa a una rueda de un vehículo). Crea un programa donde a través de condicionales if
realices las siguientes comprobaciones:
Si el diámetro es superior a 1.4 debe mostrarse por consola el mensaje “La rueda es para un vehículo
grande”. Si es menor o igual a 1.4 pero mayor que 0.8 debe mostrarse por consola el mensaje “La
rueda es para un vehículo mediano”. Si no se cumplen ninguna de las condiciones anteriores debe
mostrarse por pantalla el mensaje “La rueda es para un vehículo pequeño”.
Si el diámetro es superior a 1.4 con un grosor inferior a 0.4, ó si el diámetro es menor o igual a 1.4
pero mayor que 0.8, con un grosor inferior a 0.25, deberá mostrarse por consola el mensaje “El grosor
para esta rueda es inferior al recomendado”
Compila el código para comprobar que no presenta errores, crea un objeto, usa sus métodos y
comprueba que aparezcan correctamente los mensajes por consola.
public class Estudiando {
public static void main(String[] args) {
double diametro = 0;
double grosor = 0;
if (diametro > 1.4) {
System.out.println("La rueda es para un vehículo grande");
} else if (diametro > 0.8 && diametro <= 1.4) {
System.out.println("La rueda es para un vehículo mediano");
} else {
System.out.println("La rueda es para un vehículo pequeño");
}
if (diametro > 1.4 && grosor < 0.4 || diametro <= 1.4 && diametro > 0.8 && grosor < 0.25) {
System.out.println("El grosor para esta rueda es inferior al recomendado");
}
4
}
}

Considera que estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo
Motor (que representa el motor de una bomba para mover fluidos). Crea un programa donde a través
de un condicional switch hagas lo siguiente:
a) Si el tipo de motor es 0, mostrar un mensaje por consola indicando “No hay establecido un valor
definido para el tipo de bomba”.
b) Si el tipo de motor es 1, mostrar un mensaje por consola indicando “La bomba es una bomba de
agua”.
c) Si el tipo de motor es 2, mostrar un mensaje por consola indicando “La bomba es una bomba de
gasolina”. d) Si el tipo de motor es 3, mostrar un mensaje por consola indicando “La bomba es una
bomba de hormigón”. e) Si el tipo de motor es 4, mostrar un mensaje por consola indicando “La
bomba es una bomba de pasta alimenticia”.
f) Si no se cumple ninguno de los valores anteriores mostrar el mensaje “No existe un valor válido
para tipo de bomba”.
public class Estudiando {
public static void main(String[] args) {
int tipoBomba = 2;
switch (tipoBomba) {
case 0:
System.out.println("No hay establecido un valor definido para el tipo de bomba.");
break;
case 1:
System.out.println("La bomba es una bomba de agua.");
break;
case 2:
System.out.println("La bomba es una bomba de gasolina.");
break;
case 3:
System.out.println("La bomba es una bomba de hormigón.");
break;
case 4:
System.out.println("La bomba es una bomba de pasta alimenticia.");
break;
default:
System.out.println("No existe un valor válido para tipo de bomba.");
}
}
}

Dado como datos la matrícula de un alumno, el semestre en el que está inscrito, y promedio,
determine si el mismo es apto para pertenecer alguna de las profesiones que tiene la universidad. Si
el alumno es aceptado teniendo en cuenta las especificaciones que se listan abajo se debe imprimir
su matrícula, carrera y la palabra “Aceptado”.
Ingeniería Semestre > 6 y Promedio >= 8.8
Medicina Semestre >=6 y Promedio > 8.5
Licenciatura Semestre > 5 y Promedio >=8.3
Técnico Semestre >=3 y Promedio >=7.8
public class Estudiando {
public static void main(String[] args) {
//CASOS:Ingeniería:I; Medicina:M; Licenciatura:L; Técnico:T
char carrera = 'I';
int semestre = 6;
double promedio = 8.5;
switch (carrera) {
case 'I':
if (semestre > 6 && promedio >= 8.8) {
System.out.println("Matricula");
System.out.println("Tipo de Carrera: " + carrera);

5
System.out.println("Aceptado");
}else{
System.out.println("No aceptado");
}
break;
case 'M':
if (semestre >= 6 && promedio > 8.5) {
System.out.println("Matricula");
System.out.println("Tipo de Carrera: " + carrera);
System.out.println("Aceptado");
}else{
System.out.println("No aceptado");
}
break;
case 'L':
if (semestre > 5 && promedio >= 8.3) {
System.out.println("Matricula");
System.out.println("Tipo de Carrera: " + carrera);
System.out.println("Aceptado");
}else{
System.out.println("No aceptado");
}
break;
case 'T':
if (semestre >= 3 && promedio >= 7.8) {
System.out.println("Matricula");
System.out.println("Tipo de Carrera: " + carrera);
System.out.println("Aceptado");
}else{
System.out.println("No aceptado");
}
break;
default:
System.out.println("No existe la carrera introducida");
}
}
}

Crear un programa Java para mostrar la "marca de texto" correspondiente a


una determinada "marca numérica", utilizando la siguiente equivalencia:
9,10 = Sobresaliente
7,8 = Notable
6 = Bien
5 = Aprobado
0-4 = Suspenso
import java.util.Scanner;
public class Estudiando {
public static void main (String [] args){
int nota;
Scanner sc = new Scanner(System.in);
System.out.println("Introduce una nota");
nota = sc.nextInt();
switch(nota){
case 0, 1, 2, 3, 4:
System.out.println("La nota es de suspenso");
break;
case 5:
System.out.println("La nota es de aprobado ");
break;
case 6:

6
System.out.println("La nota es de bien");
break;
case 7, 8:
System.out.println("La nota es de notable");
break;
case 9, 10:
System.out.println("La nota es de sobresaliente");
break;
default:
System.out.println("La nota introducida esta fuera de rango");
}
}
}

Evaluar los meses mediante una condicional múltiple switch que evalúe cada uno de
los meses por su número y extraiga por consola el nombre del mes que se está
evaluando.
import java.util.Scanner;
public class Estudiando {
public static void main (String [] args){
int mes;
Scanner sc = new Scanner(System.in);
System.out.println("Introduce un numero (del 1 al 12):");
mes = sc.nextInt();
switch(mes){
case 1:
System.out.println("El mes es enero");
break;
case 2:
System.out.println("El mes es febrero");
break;
case 3:
System.out.println("El mes es marzo");
break;
case 4:
System.out.println("El mes es abril");
break;
case 5:
System.out.println("El mes es mayo");
break;
case 6:
System.out.println("El mes es junio");
break;
case 7:
System.out.println("El mes es julio");
break;
case 8:
System.out.println("El mes es agosto");
break;
case 9:
System.out.println("El mes es septiembre");
break;
case 10:
System.out.println("El mes es octubre");
break;
case 11:
System.out.println("El mes es noviembre");
break;
case 12:
System.out.println("El mes es noviembre");

7
break;
default:
System.out.println("El numero introducido esta fuera del rango");
}
}
}

Construir un programa que visualice por pantalla todos los caracteres


correspondientes a letras minúsculas. Usar el bucle for.
public class Estudiando {
public static void main(String[] args) {
for (char c = 'a'; c <= 'z'; c++) {
System.out.println("El caracter es: " + c);
}
}
}

Construir un programa que calcule y visualice por pantalla el factorial de todos los
valores numéricos enteros entre 1 y 10.
public class Estudiando {
public static void main(String[] args) {
for (int n = 1; n <= 10; n++) {
int f = 1;
for (int i = 2; i <= n; i++) {
f *= i;
}
System.out.println("El factorial de " + n + " es: " + f + "\n");
}
}
}

Construir un programa que visualice por pantalla los parámetros o argumentos de la


línea de ejecución en orden inverso. Debe emplearse un bucle while.
public class Estudiando {
public static void main(String[] args) {
int i = args.length;
System.out.println(i);
while (i > 10) {
int j = args[i - 1].length();
while (j > 0){
System.out.print(args[i - 1].charAt(j - 1));
j--;
}
i--;
}
}
}

Crea una clase Java con un método main() que recoja un número del mes del usuario y muestre el
nombre del mes considerando los bisiestos.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int numeroDias = 0;
String nombreMes = "Desconocido";
System.out.print("Introduce el número de mes: ");
int mes = input.nextInt();
System.out.print("Introduce el año: ");
int anio = input.nextInt();

8
switch (mes) {
case 1:
nombreMes = "Enero";
numeroDias = 31;
break;
case 2:
nombreMes = "Febrero";
if ((anio % 400 == 0) || ((anio % 4 == 0) && (anio % 100 != 0))) {
numeroDias = 29;
} else {
numeroDias = 28;
}
break;
case 3:
nombreMes = "Marzo";
numeroDias = 31;
break;
case 4:
nombreMes = "Abril";
numeroDias = 30;
break;
case 5:
nombreMes = "Mayo";
numeroDias = 31;
break;
case 6:
nombreMes = "Junio";
numeroDias = 30;
break;
case 7:
nombreMes = "Julio";
numeroDias = 31;
break;
case 8:
nombreMes = "Agosto";
numeroDias = 31;
break;
case 9:
nombreMes = "Septiembre";
numeroDias = 30;
break;
case 10:
nombreMes = "Octubre";
numeroDias = 31;
break;
case 11:
nombreMes = "Noviembre";
numeroDias = 30;
break;
case 12:
nombreMes = "Diciembre";
numeroDias = 31;
}
System.out.println(nombreMes + " de " + anio + " tiene " + numeroDias + " días");
input.close();
}
}

9
Escribe un programa Java que solicite al usuario un solo carácter del alfabeto, mostrando
vocal o consonante, dependiendo de la entrada del usuario. Si la entrada del usuario no es
una letra (entre a y z o A y Z), o es una cadena de longitud> 1, imprime un mensaje de
error. Usar el método toLowerCase() al recoger el valor del usuario para convertir la letra a
minúsculas.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Ingresa un alfabeto: ");
String input = in.next().toLowerCase();
boolean mayuscula = input.charAt(0) >= 65 && input.charAt(0) <= 90;
boolean minuscula = input.charAt(0) >= 97 && input.charAt(0) <= 122;
boolean vocal = input.equals("a") || input.equals("e") || input.equals("i") ||
input.equals("o") || input.equals("u");
if (input.length() > 1) {
System.out.println("Error. No hay un caracter solo.");
} else if (!(mayuscula || minuscula)) {
System.out.println("Error. No hay una letra. Ingrese letra mayuscula o
minuscula.");
} else if (vocal) {
System.out.println("La letra introducida es vocal");
} else {
System.out.println("La letra introducida es consonante");
}
}
}

Escribe un programa que pida al usuario un número entero y luego muestre el


número con los dígitos invertidos. Por ejemplo, si la entrada es 12345, la salida
debería ser 54321.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int numero;
int invertido = 0;
System.out.print("Introduce el número: ");
numero = sc.nextInt();
int temporal = numero;
int resto = 0;
while (temporal > 0) {
resto = temporal % 10;
invertido = invertido * 10 + resto;
temporal /= 10;
}
System.out.println("El reverso del " + numero + " es " + invertido);
}
}

Escribe un bucle do-while que solicite al usuario dos números reales. Se


mostrará en consola la suma de los números. El bucle debe preguntarle al
usuario si desea volver a realizar la operación. Si es así, el ciclo debería
repetirse; de lo contrario debería terminar.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double numero1;
double numero2;

10
double suma = 0;
String eleccion = "";
do {
System.out.print("Introduce un numero:");
numero1 = sc.nextDouble();
System.out.print("Introduce un numero:");
numero2 = sc.nextDouble();
suma = numero1 + numero2;
System.out.print("Quieres continuar si/no? ");
eleccion = sc.nextLine();
System.out.println(eleccion);
} while (eleccion.equals("si"));
System.out.println("Suma de números: " + suma);
}
}

Realiza un programa en Java para hacer un patrón como un triángulo rectángulo


con un número que se repita en una fila. El patrón es el siguiente:
1
22
333
4444
55555
public class Estudiando {
public static void main(String[] args) {
int filas = 5;
for (int i = 1; i <= filas; ++i) {
for (int j = 1; j <= i; ++j) {
System.out.print(j + " ");
}
System.out.println();
}
}
}

Pedir una hora de la forma hora, minutos y segundos, y mostrar la hora en el segundo siguiente.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
int h, m, s; // hora, minutos y segundos
Scanner sc = new Scanner(System.in);
System.out.print("Introduzca hora: ");
h = sc.nextInt();
System.out.print("Introduzca minutos: ");
m = sc.nextInt();
System.out.print("Introduzca segundos: ");
s = sc.nextInt();
// incrementamos los segundos
s++;
// si los segundos superan 59, los reiniciamos a 0 e incrementamos los minutos
if (s >= 60) {
s = 0;
m++;
// si los minutos superan 59, los reiniciamos a 0 e incrementamos la hora
if (m >= 60) {
m = 0;
h++;
// si la hora supera 23, la reiniciamos a 0
if (h >= 24) {
h = 0;

11
}
}
}
System.out.println("Hora en segundo proximo: " + h + ":" + m + ":" + s);
}
}

Pedir una nota numérica entera entre 0 y 10, y mostrar dicha nota de la forma: cero, uno, dos, tres...
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
int num;
Scanner sc = new Scanner(System.in);
System.out.print("Introduzca una nota numérica entre 0 y 10: ");
num=sc.nextInt();
switch(num){
case 0:
System.out.println("CERO");
break;
case 1:
System.out.println("UNO");
break;
case 2:
System.out.println("DOS");
break;
case 3:
System.out.println("TRES");
break;
case 4:
System.out.println("CUATRO");
break;
case 5:
System.out.println("CINCO");
break;
case 6:
System.out.println("SEIS");
break;
case 7:
System.out.println("SIETE");
break;
case 8:
System.out.println("OCHO");
break;
case 9:
System.out.println("NUEVE");
break;
case 10:
System.out.println("DIEZ");
break;
default:
System.out.println("Número no válido");
}
}
}

Mostrar por consola los 20 primeros números enteros en orden ascendente usando
los bucles while y for.
Por while:
public class Estudiando {
public static void main(String[] args) {

12
int i = 1;
while (i <= 20) {
System.out.println("valor: " + i);
i++;
}
}
}
Por for:
public class Estudiando {
public static void main(String[] args) {
for (int i = 1; i <= 20; i++) {
System.out.println("valor: " + i);
}
}
}

Escribir todos los números del 100 al 0 de 7 en 7.


public class Estudio {
public static void main(String[] args) {
for (int i = 100; i >=0; i-=7) {
System.out.println(i);
}
}
}

Pedir números hasta que se teclee un 0, mostrar la suma de todos los números
introducidos.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
int num = 0, suma = 0;
Scanner sc = new Scanner(System.in);
do {
System.out.print("Introduzca un número: ");
num = sc.nextInt();
suma = suma + num;
} while (num != 0);
System.out.println("La suma de todos los números es: " + suma);
}
}

Pide un número (que debe estar entre 0 y 10) y mostrar la tabla de multiplicar de dicho
número.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
int num = 0;
Scanner sc = new Scanner(System.in);
do {
System.out.print("Introduce número (de 0 a 10): ");
num = sc.nextInt();
} while (!(0 <= num && num <= 10));
System.out.println("\n\nTabla del " + num);
for (int i = 1; i <= 10; i++) {
System.out.println(num + " x " + i + " = " + num * i);
}
}
}

13
Una empresa que se dedica a la venta de pesticidas necesita un programa para gestionar
las facturas. En cada factura figura: el código del artículo, la cantidad vendida en litros y
el precio por litro.
Se pide de 5 facturas introducidas: Facturación total, cantidad en litros vendidos del
artículo 1 y cuantas facturas se emitieron de más de 600 €.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int codigo; // el código del artículo en cada factura
int litros; // la cantidad de litros en cada factura
float precio; // el precio por litro en cada factura
float importe_factura; // guardará el importe de la factura con la que estemos trabajando
float facturacion_total; // el importe de todas las facturas
int litros_cod1; // el total de litros vendidos del producto 1 en todas las facturas
facturacion_total = 0;
litros_cod1 = 0;
int mas_600 = 0;
for (int i = 1; i <= 5; i++) {
System.out.println("Factura nº " + i);
System.out.print("código de producto: ");
codigo = sc.nextInt();
System.out.print("cantidad (litros): ");
litros = sc.nextInt();
System.out.print("precio (litro): ");
precio = sc.nextFloat();
importe_factura = litros * precio;
facturacion_total += importe_factura;
if (codigo == 1) {
litros_cod1 += litros;
}
if (importe_factura >= 600) {
mas_600++;
}
}
System.out.println("\nResumen de ventas\n");
// facturación total
System.out.println("La facturación total es de: " + facturacion_total + "€");
}
}

Dadas 6 notas, escribir la cantidad de alumnos aprobados, compensados (=4) y


suspensos. 8.- Pedir un número N, introducir N sueldos, y mostrar el sueldo máximo.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
int nota, aprobados, suspensos, compensados;
Scanner sc = new Scanner(System.in);
aprobados = 0;
suspensos = 0;
compensados = 0;
for (int i = 1; i <= 6; i++) {
System.out.print("Introduzca nota entre 0 y 10: ");
nota = sc.nextInt();
if (nota == 4) {
compensados++;
} else if (nota >= 5) {
aprobados++;
} else {
suspensos++;

14
}
}
System.out.println("Aprobados: " + aprobados);
System.out.println("Suspensos: " + suspensos);
System.out.println("Condicionados: " + compensados);
}
}

Crear una aplicación que muestre un contador con 5 dígitos separados por guiones,
que muestre los números del 0-0-0-0-0 al 9-9-9-9-9, con la particularidad que cada vez
que aparezca un 3 lo sustituya por una E.
public class Ejercicio9 {
public static void main(String[] args) {
for (int i = 0; i <= 9; i++) {
for (int j = 0; j <= 9; j++) {
for (int k = 0; k <= 9; k++) {
for (int l = 0; l <= 9; l++) {
for (int m = 0; m <= 9; m++) {
if (i == 3) {
System.out.print("E");
} else {
System.out.print(i);
}
if (j == 3) {
System.out.print("E");
} else {
System.out.print(j);
}
if (k == 3) {
System.out.print("E");
} else {
System.out.print(k);
}
if (l == 3) {
System.out.print("E");
} else {
System.out.print(l);
}
if (m == 3) {
System.out.print("E");
} else {
System.out.print(m);
}
System.out.println(" ");
}
}
}
}
}
}
}

Realiza el programa Java que solicite el sueldo de un trabajador, le aplique un aumento del
15% si su sueldo es inferior a $1000 y 12% en caso contrario. Mostrar por consola el nuevo
sueldo del trabajador.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
float sue, nsue = 0;

15
System.out.print("ingrese sueldo: ");
sue = teclado.nextFloat();
if (sue != 1000) {
if (sue < 1000) {
nsue = (float) (sue * 1.15);
}
if (sue > 1000) {
nsue = (float) (sue * 1.12);
}
System.out.println("el sueldo final es: " + nsue);
}
if (sue == 1000) {
System.out.println("el sueldo final es: " + sue);
}
}
}

Dado como datos las calificaciones de 10 alumnos de la materia de fundamentos de


programación, realiza un programa Java que muestre el promedio general y el mejor
calificado.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int promedio = 10;
int notaMayor = 0;
double sumaNotas = 0;
int i;
float total = 0;
for (i = 0; i < 10; ++i) {
System.out.print("ingrese calificacion del alumno " + i + ": ");
promedio = sc.nextInt();
total = total + promedio;
}
System.out.println("promedio general es: " + total);
for (i = 10; i >= 0; --i) {
sumaNotas = sumaNotas + promedio;
if (promedio > notaMayor) {
notaMayor = promedio;
System.out.print("La nota mayor es: " + notaMayor + "\n");
}
}
}
}

Realizar un programa Java que indique el total a pagar en una factura de acuerdo a:
∙ 0 a 500€ 0% de descuento
∙ 501€ a 1000 5%
∙ 1001€ a 7000 11%
∙ 7001€ a 15000€ 18% ∙ 150001€ en
adelante 25%
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner teclado= new Scanner (System.in);
float importe,total = 0;
System.out.print("ingrese total factura: ");
importe=teclado.nextFloat();
if(importe<501)
total=importe;

16
if(importe>499 & importe<1000)
total= (float) (importe * 0.95);
if(importe>999 & importe<7001)
total=(float) (importe * 0.89);
if(importe>7000 & importe<15001)
total=(float)(importe * 0.82);
if(importe>15000)
total= (float) (importe * 0.75);
System.out.println("el total a pagar es: "+total);
}
}

Pedir 10 sueldos. Mostrar su suma y cuantos hay mayores de 1000€.


import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
int sueldo, suma, mayor_1000;
suma = 0;
mayor_1000 = 0;
Scanner teclado = new Scanner(System.in);
for (int i = 1; i < 10; i++) {
System.out.print("Escribe un sueldo: ");
sueldo = teclado.nextInt();
if (sueldo > 1000) {
mayor_1000++;
}
suma = suma + sueldo;
}
System.out.println("Mayores de 1000 hay: " + mayor_1000);
System.out.println("la suma es de: " + suma);
}
}

Dadas las edades y alturas de 5 alumnos, mostrar la edad y la estatura media, la


cantidad de alumnos mayores de 18 años, y la cantidad de alumnos que miden más de
1.75.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
int edad, media_edad, suma_edad, mayor_edad, mayor_175; //mayor_edad: mayores de 18 años
double altura, media_altura, suma_alt;
Scanner teclado = new Scanner(System.in);
mayor_edad = 0;
media_altura = 0;
mayor_175 = 0;
suma_edad = 0;
suma_alt = 0;
for (int i = 1; i < 5; i++) {
System.out.println("Alumno " + i);
System.out.print("Introduzca edad: ");
edad = teclado.nextInt();
System.out.print("Introduzca altura: ");
altura = teclado.nextInt();
if (edad > 18) {
mayor_edad++;
}
if (altura > 1.75) {
mayor_175++;
}
suma_edad = suma_edad + edad;

17
suma_alt = suma_alt + altura;
}
media_edad = suma_edad / 5;
media_altura = suma_alt / 5;
System.out.println("\n\nLa edad media es de: " + media_edad);
System.out.println("La altura media es de: " + media_altura);
System.out.println("Mayor de 18 años: " + mayor_edad);
System.out.println("Mayor de 1.75: " + mayor_175);
}
}

RETO NAVIDAD:

import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
int nCasos;
int dia, mes;
Scanner sc = new Scanner(System.in);
System.out.println("Introduce el nº de casos");
nCasos = sc.nextInt();
for (int i = 0; i < nCasos; i++)
{
System.out.println("Introduce el día:");
dia= sc.nextInt();
System.out.println("Introduce el mes:");
mes= sc.nextInt();
if (dia == 25 && mes == 12)
System.out.println("SI");
else
System.out.println("NO");
}
}
}

EJERCICIOS PROPIOS:

Programa que imprime las 10 tablas de multiplicar.


public class Estudiando {
public static void main(String[] args) {
int i, j, r;
for (i = 1; i <= 10; i++) {
for (j = 1; j <= 10; j++) {
r = i * j;
System.out.println(i + " x " + j + " = " + r);
}
System.out.println();
}
}
}

Programa que pide el precio de 5 boletos y muestra cuántos se vendieron de cada uno y el precio de
la compra.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
{
Scanner teclado = new Scanner(System.in);
int p1, p2, p3, p4, p5, ap1 = 0, ap2 = 0, ap3 = 0, ap4 = 0, ap5 = 0, clave, cant, recau = 0, pre = 0;
System.out.print("precio 1: ");

18
p1 = teclado.nextInt();
System.out.print("precio 2: ");
p2 = teclado.nextInt();
System.out.print("precio 3: ");
p3 = teclado.nextInt();
System.out.print("precio 4: ");
p4 = teclado.nextInt();
System.out.print("precio 5: ");
p5 = teclado.nextInt();
System.out.print("clave: ");
clave = teclado.nextInt();
System.out.print("cant: ");
cant = teclado.nextInt();
if (clave != -1 & cant != -1) {
switch (clave) {
case 1:
pre = p1 * cant;
ap1 += cant;
break;
case 2:
pre = p2 * cant;
ap2 += cant;
break;
case 3:
pre = p3 * cant;
ap3 += cant;
break;
case 4:
pre = p4 * cant;
ap4 += cant;
break;
case 5:
pre = p5 * cant;
ap5 += cant;
break;
}
System.out.print("\nclave del boleto: " + clave + "\nprecio: " + pre + "\ncantidad: " + cant);
recau = recau + pre;
System.out.print("\n\nclave: ");
clave = teclado.nextInt();
System.out.print("cant: ");
cant = teclado.nextInt();
}
System.out.println("\nvoletos vendidos tipo 1: " + ap1 + "\nvoletos vendidos tipo 2: " + ap2
+ "\nvoletos vendidos tipo 3: " + ap3 + "\nvoletos vendidos tipo 4: " + ap4
+ "\nvoletos vendidos tipo 5: " + ap5 + "\ntotal recaudado: " + recau);
}
}
}

Programa para elevar un numero a n potencia usando for.


import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int i = 1, tot = 0, num, ele;
System.out.print("numero a elevar: ");
num = teclado.nextInt();
System.out.print("elevar a la: ");
ele = teclado.nextInt();

19
tot = num;
for (i = 2; i <= ele; i++) {
tot *= num;
}
System.out.println("total= " + tot);
}
}

Programa para elevar un numero a n potencia usando while.


import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int i = 2, tot = 0, num, ele;
System.out.print("numero a elevar: ");
num = teclado.nextInt();
System.out.print("elevar a la: ");
ele = teclado.nextInt();
tot = (int) Math.pow(num, ele);
System.out.println("total= " + tot);
}
}

Programa que indica la cantidad de lluvias en la región norte, sur, centro, cada mes.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int arsu = 0, arno = 0, arce = 0, rno, rce, rsu, i, mersu = 999999, prorce, mes = 0;
for (i = 1; i <= 12; ++i) {
System.out.print("lluvia region NORTE mes " + i + ": ");
rno = teclado.nextInt();
System.out.print("lluvia region CENTRO mes " + i + ": ");
rce = teclado.nextInt();
System.out.print("lluvia región SUR mes " + i + ": ");
rsu = teclado.nextInt();
arno += rno;
arce += rce;
arsu += rsu;
if (rsu < mersu) {
mersu = rsu;
mes = i;
}
}
prorce = arce / 12;
System.out.println("\npromedio de la region CENTRO: " + prorce + "\n mes con menor lluvia reg.SUR: "
+ mes + "\n Registro del mes: " + mersu);
if (arno > arce) {
if (arno > arsu) {
System.out.println("la region con mayor lluvia es la Region NORTE");
} else {
System.out.println("la region con mayor lluvia es la Region SUR");
}
} else if (arce > arsu) {
System.out.println("la region con mayor lluvia es la Region CENTRO");
} else {
System.out.println("la region con mayor lluvia es la Region SUR");
}
}
}

20
Calcular el factorial de un numero pedido por teclado.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int fact = 1;
int num = 0;
System.out.println("Introduce numero");
num = teclado.nextInt();
for (int i = 1; i <= num; i++) {
fact *= i;
}
System.out.println("factorial es " + fact);
}
}

Muestra la serie de fibonacci hasta un número pedido por teclado.


import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num, anterior=0, actual=1, fibo=0;
System.out.println ("Introduce un numero");
num = sc.nextInt();
//Aqui visualizamos 0 e 1, para que comience la serie..
System.out.println ("0, ");
System.out.println ("1, ");
while(fibo<=num) {
fibo=(anterior+actual);
anterior=actual;
actual=fibo;
System.out.println (fibo+", ");
}
}
}

Pide por teclado el nombre, edad y salario y muestra el salario.


● Si es menor de 16 no tiene edad para trabajar.
● Entre 19 y 50 años el salario es un 5 por ciento más.
● Entre 51 y 60 años el salario es un 10 por ciento más.
● Si es mayor de 60 el salario es un 15 por ciento más.

import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
String nombre;
int edad;
float salario, salar;
System.out.println("introduce un nombre: ");
nombre = teclado.nextLine();
System.out.println();
System.out.println("introduce una edad: ");
edad = teclado.nextInt();
System.out.println();
System.out.println("introduce un salario: ");
salario = teclado.nextFloat();
System.out.println();
if (edad >= 16 && edad <= 18) {

21
salar = salario;
System.out.println(nombre + " con " + edad + " a\u00f1os cobra " + salario + " + 0% = " + salar);
} else if (edad >= 19 && edad <= 50) {
salar = salario + ((salario * 5) / 100);
System.out.println(nombre + " con " + edad + " a\u00f1os cobra " + salario + " + 5% = " + salar);
} else if (edad >= 51 && edad <= 60) {
salar = salario + ((salario * 10) / 100);
System.out.println(nombre + " con " + edad + " a\u00f1os cobra " + salario + " + 10% = " + salar);
} else if (edad > 60) {
salar = salario + ((salario * 15) / 100);
System.out.println(nombre + " con " + edad + " a\u00f1os cobra " + salario + " + 15% = " + salar);
} else if (edad < 16) {
System.out.println("No tienes edad para trabajar");
}
}
}

Declara dos variables numéricas (con el valor que desees), muestra por consola la suma, resta,
multiplicación, división y módulo (resto de la división).
public class Estudiando {
public static void main(String[] args) {
int num1 = 10;
int num2 = 5;
System.out.println("El resultado de la suma es " + (num1 + num2));
System.out.println("El resultado de la resta es " + (num1 - num2));
System.out.println("El resultado de la multiplicación es " + (num1 * num2));
System.out.println("El resultado de la división es " + (num1 / num2));
}
}

Lee un número por teclado e indica si es divisible entre 2 (resto = 0). Si no lo es, también debemos
indicarlo.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Introduce un numero");
int numero=sc.nextInt();
if (numero%2==0){
System.out.println("El numero "+numero+" es divisible entre 2");
}else{
System.out.println("El numero "+numero+" no es divisible entre 2");
}
}
}

Pasar carácter a número.


import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Introduce un caracter ASCII");
char caracter = sc.next().charAt(0);
int codigo = (int) caracter;
System.out.println(codigo);
}
}

Muestra los números del 1 al 100 (ambos incluidos). Usa un bucle while.
public class Estudiando {

22
public static void main(String[] args) {
int num=1;
while (num<=100){
num++;
}
}
}

Muestra los números del 1 al 100 (ambos incluidos). Usa un bucle for.
public class Estudiando{
public static void main(String[] args) {
for (int num=1;num<=100;num++){
System.out.println(num);
}
}
}
➔ EJERCICIOS NÚMEROS POSITIVOS, NEGATIVOS O NULOS:
Crear una variable, inicializar su valor y evaluar si es un número positivo, nulo o negativo. Escribir un
mensaje por consola informando al usuario de cada caso.
public class Estudiando {
public static void main(String[] args) {
int numero = 6;
if (numero > 0) {
System.out.println("El número: " + numero + " es positivo");
} else if (numero < 0) {
System.out.println("El número: " + numero + " es negativo");
} else {
System.out.println("El número:" + numero + " es nulo");
}
}
}

Pedir números hasta que se teclee uno negativo, y mostrar cuántos números se
han introducido.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
int num, contador;
// num guardará los números introducidos
// y contador se incrementará para llevar la cuenta de los números introducidos
System.out.print("Introduzca un número: ");
Scanner sc = new Scanner(System.in);
num=sc.nextInt();
contador=0; // al comienzo el número de números introducidos es 0
while(num>0) // mientras num sea positiva
{
contador =contador+1; // contador toma el valor que tuviera en este momento más
uno
// en definitiva: contador se incrementa en uno
System.out.print("Introduzca otro número: ");
num=sc.nextInt();
}
System.out.println("Se han introducido: " +contador + " números");
// sin tener en cuenta el último número negativo.
}
}

Pedir 10 números. Mostrar la media de los números positivos, la media de los


números negativos y la cantidad de ceros.
import java.util.Scanner;
23
public class Estudiando {
public static void main(String[] args) {
int num;
int cont_ceros; // el contador de ceros
int cont_pos; // contador de positivos
int cont_neg; // contador de negativos
int suma_pos, suma_neg; // suma de los números positivos y negativos
float media_pos, media_neg;
Scanner teclado = new Scanner(System.in);
cont_ceros = 0;
cont_pos = 0;
cont_neg = 0;
suma_pos = 0;
suma_neg = 0;
for (int i = 1; i <= 10; i++) {
System.out.print("Introduce número: ");
num = teclado.nextInt();
if (num == 0) {
cont_ceros++;
} else {
if (num > 0) {
cont_pos++;
suma_pos += num;
} else {
cont_neg++;
suma_neg += num;
}
}
}
// tratamos los ceros
System.out.println("El número de ceros introducidos es de: " + cont_ceros);
//Tratamos los positivos
if (cont_pos == 0) {
System.out.println("No se puede hacer la media de los positivos");
} else {
media_pos = (float) suma_pos / cont_pos;
System.out.println("Media de los positivos: " + media_pos);
}
// tratamos los negativos
if (cont_pos == 0) {
System.out.println("No se puede hacer la media de los negativos");
} else {
media_neg = (float) suma_neg / cont_neg;
System.out.println("Media de los negativos: " + media_neg);
}
}
}

Calcular si un numero es positivo o negativo y si es par o impar.


import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
int numero;
Scanner teclado = new Scanner(System.in);
System.out.println("Introduce un numero");
numero = teclado.nextInt();
if(numero<0) {
System.out.println ("El numero "+numero+" es negativo\n");
}
else {

24
System.out.println ("El numero "+numero+" es positivo\n");
}
if(numero%2==0) {
System.out.println ("El numero "+numero+" es par\n");
}
else {
System.out.println ("El numero "+numero+" es impar\n");
}
}
}

➔ EJERCICIOS NÚMEROS PRIMOS:


Raiz numero primo.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Introduce un numero");
int numero = sc.nextInt();
if (numero <= 1) {
System.out.println("El numero " + numero + " no es primo");
} else {
int raiz = (int) Math.sqrt(numero);
int contador = 0;
for (int i = raiz; i > 1; i--) {
if (numero % i == 0) {
contador++;
}
}
if (contador < 1) {
System.out.println("El numero " + numero + " es primo");
} else {
System.out.println("El numero " + numero + " no es primo");
}
}
}

➔ EJERCICIOS DE MENÚ:
Considerar una variable entera con nombre opción que atiende al cálculo de las áreas de
determinadas figuras geométricas de acuerdo al siguiente orden: 1.-Area del cuadrado; 2.-Area del
triángulo 3.- Área del círculo. Realiza un programa que use la condicional switch.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int opcion;
System.out.println("Menu de opciones");
System.out.println("------------------------");
System.out.println("1.Calcular el área de un cuadrado");
System.out.println("2. Calcular el area de un Triangulo");
System.out.println("3. Calcular el area de un Circulo");
System.out.println("4. finalizar");
System.out.print("Elija la opcion:");
opcion = entrada.nextInt();
switch (opcion) {
case 1:
System.out.println("Ha seleccionado calcular el area de un cuadrado...");
int base;
int altura;
double areaCuadrado;
25
System.out.println("Cual es la base del cuadrado");
base = entrada.nextInt();
System.out.println("Cual es la altura del cuadrado");
altura = entrada.nextInt();
areaCuadrado = base * altura;
System.out.printf("El area del cuadrado es %f\n", areaCuadrado);
break;
case 2:
System.out.println("Ha seleccionado calcular el area de un triangulo...");
int lado1;
int lado2;
int lado3;
double areaTriangulo;
System.out.print("Dame el lado1");
lado1 = entrada.nextInt();
System.out.print("Dame el lado2");
lado2 = entrada.nextInt();
System.out.print("Dame el lado3");
lado3 = entrada.nextInt();
areaTriangulo = (lado1 * lado2) / 2;
System.out.printf("El area del triangulo es %f\n", areaTriangulo);
break;
case 3:
System.out.println("Ha seleccionado calcular el area de un circulo...");
int radioCirculo;
double areaCirculo;
System.out.print("Cual es el radio del circulo?");
radioCirculo = entrada.nextInt();
areaCirculo = 3.1416 * (radioCirculo * radioCirculo);
System.out.printf("El area del circulo es %f\n", areaCirculo);
break;
default:
System.out.println("Ha seleccionado terminar");
}
}
}

Se quiere escribir un programa que muestre en la pantalla un menú con 4 opciones:


∙ Visualizar los números enteros del 1 al 10.
∙ Visualizar la tabla de multiplicar del número 8.
∙ Visualizar las primeras diez potencias del número 2 (del 21 al 210).
∙ Salir.
Seguidamente, el programa debe solicitar por teclado al usuario que introduzca la
opción deseada y ejecutarla. De tal forma que, por pantalla se podrá debera mostrar
el resultado de la opción elegida. Por ejemplo, para la opción 1 la salida sería: 1 2 3 4
5 6 7 8 9 10.
OPCIÓN 1:
import java.util.Scanner;
public class Estudio {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int opcion;
boolean salir = false;
while (!salir){
System.out.println(">>> MENÚ DE OPCIONES <<<");
System.out.println("1.Visualizar los números enteros del 1 al 10.");
System.out.println("2.Visualizar la tabla de multiplicar del número 8.");
System.out.println("3.Visualizar las primeras diez potencias del número 2 (del 21 al 210).");
System.out.println("4.Salir.");
System.out.println("Escribe una de las opciones: ");

26
opcion = sc.nextInt();
switch(opcion){
case 1:
System.out.println("Has seleccionado la opcion 1:");
int n;
for(n=1; n <= 10; n++)
System.out.print(n);
System.out.print("\n");
break;
case 2:
System.out.println("Has seleccionado la opcion 2:");
int num = 8;
double multi;
for(int a=1; a<=10; a++){
multi = num*a;
System.out.println("Tabla del 8: " + (int)multi);
}
break;
case 3:
System.out.println("Has seleccionado la opcion 3:");
int contador;
for(contador = 1; contador <= 10; contador++)
System.out.println((int)Math.pow(2, contador));
break;
case 4:
salir=true;
break;
default:
System.out.println("Las opciones son entre 1 y 4:");
}
}
System.out.println("Fin del menu.");
}
}

Opción 2:
public class Estudio {
public static void main(String[] args)
{
char opcion;
int numero, contador, resultado;
Scanner teclado = new Scanner(System.in);
do
{
System.out.println(">>> MENÚ DE OPCIONES <<<");
System.out.println("1. Números del 1 al 10.");
System.out.println("2. Tabla de multiplicar del 8.");
System.out.println("3. Primeras diez potencias de 2.");
System.out.println("4. Salir.");
do
{
System.out.printf("\nIntroduzca opción (1-4): ");
opcion = teclado.next().charAt(0);
}
while(opcion < '1' || opcion > '4');

System.out.printf("\n");

switch(opcion)
{

27
case '1': for(numero = 1; numero <= 10; numero++)
System.out.println(numero);
break;
case '2': for(contador = 1; contador <= 10; contador++)
{
resultado = contador * 8;
System.out.println(resultado);
}
break;
case '3': for(contador = 1; contador <= 10; contador++)
System.out.println(Math.pow(2, contador));
}
}
while(opcion != '4');
}

➔ EJERCICIOS CON STRING:


Un programa java para comparar dos cadenas carácter a carácter, ignorando las
diferencias entre mayúsculas y minúsculas usando el método compareToIgnoreCase() de
String.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
String cadena1 = "elefante";
String cadena2 = "raton";
System.out.println("Comparacion:" + cadena1.compareToIgnoreCase(cadena2));
}
}
Realiza un programa Java para convertir todos los caracteres de una cadena a mayúsculas.
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
String cadena1 = "elefante";
char letra = cadena1.charAt(3);
System.out.println(letra);
System.out.println("Convertir a mayuscula mi cadena:" + cadena1.toUpperCase());
}
}

Realiza un programa Java para concatenar una cadena dada al final de otra cadena.
Opcion1:
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
String palabra1 = "hola";
String palabra2 = "que tal";
String palabra3 = palabra1.concat(" ").concat(palabra2);
System.out.println(palabra3);
}
}
Opcion2:
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
String palabra1="hola";
String palabra2=" que tal";
String palabra3= palabra1.concat(palabra2);
System.out.println(palabra1 + palabra2);
}
}

28
Escribe un programa para revertir los caracteres de una cadena (Ejemplo: “Programa
uno” su salida será “onu amargorP”).
Opcion1:
public class Estudiando {
public static void main(String[] args){
String cadena= "Programa uno";
String cadenaInvertida= "";
for (int i = cadena.length()-1;i>=0;i--){
cadenaInvertida+= cadena.charAt(i);
}
System.out.println("cadena invertida = " + cadenaInvertida);
}
}

Opcion2:
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("Introduce una cadena: ");
String cadena= sc.nextLine();
String cadenaInvertida= "";
for (int i = cadena.length()-1;i>=0;i--){
cadenaInvertida+= cadena.charAt(i);
}
System.out.println("cadena antigua = " + cadena);
System.out.println("cadena invertida = " + cadenaInvertida);
sc.close();
}
}
Escribe un programa Java para leer una cadena y devolver verdadero si termina en "ba".
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {
System.out.println("Introduce una cadena: ");
Scanner sc = new Scanner(System.in);
String frase = sc.nextLine();
int longitud = frase.length();
if (longitud>=2)
{
//Extraemos parte de la cadena que necesitamos
String finalFrase = frase.substring(longitud-2, longitud);
if (finalFrase.equalsIgnoreCase("ba"))
System.out.println("VERDADERO");
else
System.out.println("FALSO");
}
else
{
System.out.println("La cadena no tiene dos caracteres");
}
}
}

Escribe un programa Java para leer dos cadenas, concatenarlas y mostrar el resultado en la consola.
Si las cadenas tienen longitudes diferentes, omite los caracteres desde el comienzo de la cadena más
larga y haga que tengan la misma longitud antes de unirlas. NO CORRECTO
import java.util.Scanner;
public class Estudiando {
public static void main(String[] args) {

29
Scanner sc = new Scanner(System.in);
String Cadena = "Hola";
String Cadena2 = " que tal";
System.out.println("Cadena de Texto: " + Cadena + Cadena2);
System.out.println("Tamaño de la cadena: " + Cadena.length() + Cadena2.length() + " caracteres");
}
}

➔ EJERCICIOS CON POO:


Crea una clase llamada Libro que guarde la información de cada uno de los libros de una biblioteca.
La clase debe guardar el título del libro, autor, número de ejemplares del libro y número de ejemplares
prestados. La clase contendrá los siguientes métodos: Constructor por defecto. Constructor con
parámetros. Métodos Setters/getters Método préstamo que incremente el atributo correspondiente
cada vez que se realice un préstamo del libro. No se podrán prestar libros de los que no queden
ejemplares disponibles para prestar. Devuelve true si se ha podido realizar la operación y false en
caso contrario. Método devolución que decremente el atributo correspondiente cuando se produzca la
devolución de un libro. No se podrán devolver libros que no se hayan prestado. Devuelve true si se ha
podido realizar la operación y false en caso contrario. Método toString para mostrar los datos de los
libros. Este método se heredada de Object y lo debemos modificar (override) para adaptarlo a la clase
Libro. Escribe un programa para probar el funcionamiento de la clase Libro.
public class Libro {
private String titulo;
private String autor;
private int ejemplares;
private int prestados;

//constructor por defecto


public Libro() {
}

//constructor con parámetros


public Libro(String titulo, String autor, int ejemplares, int prestados) {
this.titulo = titulo;
this.autor = autor;
this.ejemplares = ejemplares;
this.prestados = prestados;
}

//getters y setters
public String getAutor() {
return autor;
}

public void setAutor(String autor) {


this.autor = autor;
}

public int getEjemplares() {


return ejemplares;
}

public void setEjemplares(int ejemplares) {


this.ejemplares = ejemplares;
}
30
public int getPrestados() {
return prestados;
}

public void setPrestados(int prestados) {


this.prestados = prestados;
}

public String getTitulo() {


return titulo;
}

public void setTitulo(String titulo) {


this.titulo = titulo;
}

//método para realizar el prestamo de un libro


public boolean prestamo() {
boolean prestado = true;
if (prestados < ejemplares) {
prestados++;
} else {
prestado = false;
}
return prestado;
}

//método para realizar la devolución de un libro


public boolean devolucion() {
boolean devuelto = true;
if (prestados == 0) {
devuelto = false;
} else {
prestados--;
}
return devuelto;
}

//método toString sobrescrito para mostrar los datos de la clase Libro


@Override
public String toString() {
return "titulo: " + titulo + "\nautor: " + autor
+ "\nejemplares: " + ejemplares + "\nprestados: " + prestados;
}

Escribe una clase Cuenta para representar una cuenta bancaria. Los datos de la cuenta son: nombre
del cliente (String), número de cuenta (String), tipo de interés (double) y saldo (double). La clase
contendrá los siguientes métodos: Constructor por defecto Constructor con todos los parámetros
Constructor copia. Métodos setters/getters para asignar y obtener los datos de la cuenta. Métodos
31
ingreso y reintegro. Un ingreso consiste en aumentar el saldo en la cantidad que se indique. Esa
cantidad no puede ser negativa. Un reintegro consiste en disminuir el saldo en una cantidad pero
antes se debe comprobar que hay saldo suficiente. La cantidad no puede ser negativa. Los métodos
ingreso y reintegro devuelven true si la operación se ha podido realizar o false en caso contrario.
Método transferencia que permita pasar dinero de una cuenta a otra siempre que en la cuenta de
origen haya dinero suficiente para poder hacerla. Ejemplo de uso del método transferencia:
cuentaOrigen.transferencia(cuentaDestino, importe); que indica que queremos hacer una
transferencia desde cuentaOrigen a cuentaDestino del importe indicado.
public class Cuenta {
private String nombre;
private String numeroCuenta;
private double tipoInteres;
private double saldo;

//Constructor por defecto


public Cuenta() {
}

//Constructor con parámetros


public Cuenta(String nombre, String numeroCuenta, double tipoInteres, double saldo) {
this.nombre = nombre;
this.numeroCuenta = numeroCuenta;
this.tipoInteres = tipoInteres;
this.saldo = saldo;
}

//Constructor copia
public Cuenta(final Cuenta c) {
nombre = c.nombre;
numeroCuenta = c.numeroCuenta;
tipoInteres = c.tipoInteres;
saldo = c.saldo;
}

//getters y setters
public void setNombre(String s) {
nombre = s;
}

public void setNumeroCuenta(String s) {


numeroCuenta = s;
}

public void setTipoInteres(double n) {


tipoInteres = n;
}

public void setSaldo(double n) {


saldo = n;
}

public String getNombre() {


return nombre;
32
}

public String getNumeroCuenta() {


return numeroCuenta;
}

public double getTipoInteres() {


return tipoInteres;
}

public double getSaldo() {


return saldo;
}

//método ingreso
public boolean ingreso(double n) {
boolean ingresoCorrecto = true;
if (n < 0) {
ingresoCorrecto = false;
} else {
saldo = saldo + n;
}
return ingresoCorrecto;
}

//método reintegro
public boolean reintegro(double n) {
boolean reintegroCorrecto = true;
if (n < 0) {
reintegroCorrecto = false;
} else if (saldo >= n) {
saldo -= n;
} else {
reintegroCorrecto = false;
}
return reintegroCorrecto;
}

Crea una clase llamada Contador que contenga un único atributo entero llamado cont. La clase tendrá
los siguientes constructores: Curso 2020-2021 PROGRAMACIÓN 1º DAMT POO_Hoja 1 2 Constructor
por defecto Constructor con parámetros para inicializar el contador con un valor no negativo. Si el
valor inicial que se recibe es negativo el contador tomará el valor cero como valor inicial. Constructor
copia. Además de los métodos getter y setter, la clase contendrá los métodos: incrementar:
incrementa el contador en una unidad. decrementar: decrementa el contador en una unidad. El
contador nunca podrá tener un valor negativo. Si al decrementar se alcanza un valor negativo el
contador toma el valor cero. Una vez creada la clase, escribe un método main para probar la clase.
public class Contador {
private int cont;

33
//constructor por defecto
public Contador() {
}

//constructor con parámetros


public Contador(int cont) {
if (cont < 0) {
this.cont = 0;
} else {
this.cont = cont;
}
}

//constructor copia
public Contador(final Contador c) {
cont = c.cont;
}

//getter
public int getCont() {
return cont;
}

//setter
public void setCont(int cont) {
if (cont < 0) {
this.cont = 0;
} else {
this.cont = cont;
}
}

//método incrementar contador


public void incrementar() {
cont++;
}

//método decrementar contador


public void decrementar() {
cont--;
if (cont < 0) {
cont = 0;
}
}

Crear una clase Temperatura que convierta grados Celsius a Farenheit y viceversa. Para ello crear los
métodos: double celsiusToFarenheit (double) double farenheitToCelsius (double) sabiendo que F =
C*1.8 + 32
public class Temperatura {
34
public Temperatura()
{

public double celsiusToFarenheit(double grados)


{
double resultado= grados*1.8 + 32;

return resultado;
}

public double farenheitToCelsius(double grados)


{
double resultado=0;
resultado = (grados - 32)/1.8;

return resultado;
}

public static void main(String[] args) {


Temperatura temp = new Temperatura();
double op1= temp.celsiusToFarenheit(38);

System.out.println("Conversión en Farenheit: " + op1);

double op2 = temp.farenheitToCelsius(200);


System.out.println("Conversión en Celsius: " + op2);

Construir una clase Coche con un atributo velocidad de tipo entero. Elabora los métodos siguientes:
int getVelocidad devuelve la velocidad actual void acelera (int kms) aumenta la velocidad en kms
pasado como parámetro. void frena (int kms) disminuye la velocidad en kms pasado como
parámetro.
public class Coche {

private int velocidad;


public Coche()
{
velocidad=60;
}
public void setVelocidad(int vel)
{
this.velocidad= vel;
}
public int getVelocidad()
{
return this.velocidad;
35
}

public void acelera (int kms)


{
this.velocidad += kms;
}

public void frena (int kms)


{
this.velocidad -= kms;
}

Implementar la clase Consumo, que forma parte de la centralita electrónica de un coche con los
siguientes atributos: kms recorridos, litros consumidos, velocidad media y precio de la gasolina. Se
deben implementar los siguientes métodos: getTiempo: indicará el tiempo empleado en realizar el
viaje. consumoMedio: consumo medio del vehículo (en litros cada 100Km). consumoEuros: consumo
medio del vehículo (en euros cada 100km).
public class Consumo {

private double kms;


private double litros;
private double velocidadM;
private double precioL;

public Consumo() {
kms = 200.70;
litros = 50;
velocidadM= 85;
precioL =1.15;

public Consumo(double kms, double litros, double velocidadM, double precioL) {


this.kms = kms;
this.litros = litros;
this.velocidadM = velocidadM;
this.precioL = precioL;
}

public double getKms() {


return kms;
}

public void setKms(double kms) {


this.kms = kms;
}

public double getLitros() {


return litros;
}

36
public void setLitros(double litros) {
this.litros = litros;
}

public double getVelocidadM() {


return velocidadM;
}

public void setVelocidadM(double velocidadM) {


this.velocidadM = velocidadM;
}

public double getPrecioL() {


return precioL;
}

public void setPrecioL(double precioL) {


this.precioL = precioL;
}

public double getTiempo ()


{
double tiempo = this.kms/this.velocidadM;
return tiempo;
}
public double consumoMedio ()
{
//En litros cada 100 Kms
double litrosT = this.litros* 100/this.kms;
return litrosT;

public double consumoEuros ()


{
return this.consumoMedio()*precioL;
}

public static void main(String[] args) {


Consumo cons1 = new Consumo();
double tiempo = cons1.getTiempo();
System.out.println("Tiempo es: " + tiempo );

double consumoM= cons1.consumoMedio();


System.out.println("Consumo medio es: " + consumoM );

double consumoEuros= cons1.consumoEuros();


System.out.println("Consumo euros es: " + consumoEuros );
}

37
Crear una clase llamada Maquina que simula una máquina expendedora de euros, cuyos atributos
número de elementos de tipo entero son las monedas a introducir, numeroHuecos y capacidad, de
tipos short y float, indican el número de huecos y la capacidad de la máquina respectivamente así
como el atributo caja de tipo float, que indica el dinero total que tiene la máquina en ese momento.
Realizar los métodos siguientes: hayHuecos(): devuelve un booleano que indica si hay huecos.
hayCapacidad(): devuelve un booleano que devuelve verdadero si hay capacidad. meterContenedor()
y sacarContenedor() que disminuyen o aumentan el número de huecos de la máquina.
meterElemento() y sacarElemento () que aumentan o disminuyen el número de elementos (monedas)
de la máquina.
public class Maquina {

private int numElementos;


private short numeroHuecos;
private float capacidad;
private float caja;

public Maquina() {

this.numElementos=25;
this.numeroHuecos= 25;
this.capacidad= 45.5f;
this.caja= 2050.50f;

public Maquina(int numElementos, short numeroHuecos, float capacidad, float caja) {


this.numElementos = numElementos;
this.numeroHuecos = numeroHuecos;
this.capacidad = capacidad;
this.caja = caja;
}

public int getNumElementos() {


return numElementos;
}

public void setNumElementos(int numElementos) {


this.numElementos = numElementos;
}

public short getNumeroHuecos() {


return numeroHuecos;
}

public void setNumeroHuecos(short numeroHuecos) {


this.numeroHuecos = numeroHuecos;
}

public float getCapacidad() {


return capacidad;
}

public void setCapacidad(float capacidad) {


38
this.capacidad = capacidad;
}

public float getCaja() {


return caja;
}

public void setCaja(float caja) {


this.caja = caja;
}

public boolean hayHuecos() {


boolean hay = false;

if (this.numeroHuecos > 0) {
hay = true;
}
return hay;
}

public boolean hayCapacidad() {


boolean hay = false;

if (this.capacidad > 0)
hay = true;

return hay;
}

public void meterContenedor() {


this.numeroHuecos--;
}
public void sacarContenedor() {
this.numeroHuecos++;
}
public void meterElemento()
{
this.numElementos++;
}
public void sacarElemento()
{
this.numElementos--;
}

public static void main(String[] args) {


Maquina maq = new Maquina();
boolean huecos = maq.hayHuecos();
System.out.println("Existen huecos? " + huecos);
boolean capacidad = maq.hayCapacidad();
System.out.println("Existe capacidad? " + capacidad);

System.out.println("Huecos antes :" + maq.getNumeroHuecos());


maq.meterContenedor();
39
System.out.println("Huecos despues :" + maq.getNumeroHuecos());
}
}
Realizar el control de una votación en la que se puede presentar un número cualquiera de candidatos.
En cada momento se puede votar a cualquier candidato y se pueden pedir los siguientes datos:
Nombre de un candidato concreto, edad y el número de votos que lleva hasta el momento. Nombre
del candidato más votado hasta el momento y número de votos que lleva conseguidos como atributos
estáticos. Desarrollaremos los métodos: buscaMejorCandidato(int edadMinima) que pasando como
parámetro la edad mínima para ser representante, mira si su edad es superior a la mínima y si el
número de votos es mayor de 100, devolviendo verdadero si se cumplen las dos condiciones y falso
en caso contrario. costeCampaña(double costePublicidad, double costesVarios) que recibe como
parámetro los costes totales de toda la campaña y devuelve el coste total suponiendo que por cada
voto se deben restar 100€ al bloque costesVarios; además si la edad de cada candidato es mayor de
50 años se restan 20€ al coste total. Curso 2020-2021 PROGRAMACIÓN 1º DAMT POO_Hoja 2 3
public class Votacion {
private String nombre;
private int edad;
private int numeroVotos;
private static String nombreMV;
private static int votosMV;

public Votacion() {
this.nombre="María López";
this.edad=40;
this.numeroVotos=100;
}

public Votacion(String nombre, int edad, int numeroVotos) {


this.nombre = nombre;
this.edad = edad;
this.numeroVotos = numeroVotos;
}

public String getNombre() {


return nombre;
}

public void setNombre(String nombre) {


this.nombre = nombre;
}

public int getEdad() {


return edad;
}

public void setEdad(int edad) {


this.edad = edad;
}

public int getNumeroVotos() {


return numeroVotos;
}

40
public void setNumeroVotos(int numeroVotos) {
this.numeroVotos = numeroVotos;
}

public static String getNombreMV() {


return nombreMV;
}

public static void setNombreMV(String nombreMV) {


Votacion.nombreMV = nombreMV;
}

public static int getVotosMV() {


return votosMV;
}

public static void setVotosMV(int votosMV) {


Votacion.votosMV = votosMV;
}

/*
• buscaMejorCandidato(int edadMinima) que pasando como parámetro la edad mínima para ser
representante, mira si su edad es superior a la mínima
y si el número de votos es mayor de 100, devolviendo verdadero si se
cumplen las dos condiciones y falso en caso contrario.
• costeCampaña(double costePublicidad, double costesVarios) que recibe como parámetro
los costes totales de toda la campaña y devuelve el coste total suponiendo que por cada voto
se deben restar 100€ al bloque costesVarios; además si la edad de cada candidato
es mayor de 50 años se restan 20€ al coste total.

*/
public boolean buscaMejorCandidato(int edadMinima)
{
boolean ok = false;
if (this.numeroVotos>100 && this.edad>edadMinima)
ok = true;

return ok;
}

public double costeCampaña(double costePublicidad, double costesVarios)


{
for (int i=0;i<this.numeroVotos; i++)
{
costesVarios -=100;
}
double total = costesVarios + costePublicidad;
if (this.edad>50)
total -=20;
return total;
}
}
41
Crear una Clase Fecha en Java. La clase tendrá tres atributos privados dia, mes y año de tipo int. La
clase contendrá los siguientes métodos: Constructor por defecto. Constructor con tres parámetros
para crear objetos con valores iniciales. Métodos set y get para asignar y obtener los valores de los
atributos de la clase. Método fechaCorrecta() que comprueba si la fecha es correcta. Devuelve un valor
de tipo boolean indicando si la fecha es correcta o no. Este método a su vez utilizará un método
privado de la clase llamado esBisiesto que calcula si el año es o no bisiesto. El método esBisiesto
devuelve true si el año es bisiesto y false si no lo es. Método diaSiguiente() que cambia la fecha actual
por la del día siguiente. El objeto de la clase Fecha al que se le aplique este método deberá quedar
siempre en un estado consistente, es decir, la nueva fecha deberá ser correcta. Modificar el método
toString() heredado de Object para mostrar las fechas de la forma ddmm-aaaa. El día y el mes se
deben mostrar con dos cifras. Si el dia o el mes tienen solo una cifra se escribirá un cero delante. Por
ejemplo si la fecha es dia=1, mes=6, año= 2015 la fecha que se mostrará será: 01-06-2015 Escribe un
programa para probar la clase Fecha. El método diaSiguiete() pruébalo dentro de un bucle que
imprima la fecha durante cada iteración del bucle.
public class Fecha {

private int dia;


private int mes;
private int año;

//Constructor por defecto


public Fecha() {
}

//Constructor con parámetros


public Fecha(int dia, int mes, int año) {
this.dia = dia;
this.mes = mes;
this.año = año;
}

//setters y getters
public void setDia(int d) {
dia = d;
}
public void setMes(int m) {
mes = m;
}
public void setAño(int a) {
año = a;
}
public int getDia() {
return dia;
}
public int getMes() {
return mes;
}
public int getAño() {
return año;
}

//Método para comprobar si la fecha es correcta


public boolean fechaCorrecta() {
42
boolean diaCorrecto, mesCorrecto, añoCorrecto;
añoCorrecto = año > 0;
mesCorrecto = mes >= 1 && mes <= 12;
switch (mes) {
case 2:
if (esBisiesto()) {
diaCorrecto = dia >= 1 && dia <= 29;
} else {
diaCorrecto = dia >= 1 && dia <= 28;
}
break;
case 4:
case 6:
case 9:
case 11:
diaCorrecto = dia >= 1 && dia <= 30;
break;
default:
diaCorrecto = dia >= 1 && dia <= 31;
}
return diaCorrecto && mesCorrecto && añoCorrecto;
}

//Método privado para comprobar si el año es bisiesto


//Este método lo utiliza el método fechaCorrecta
private boolean esBisiesto() {
return (año % 4 == 0 && año % 100 != 0 || año % 400 == 0);
}

//Método que modifica la fecha cambiándola por la del día siguiente


public void diaSiguiente() {
dia++;
if (!fechaCorrecta()) {
dia = 1;
mes++;
if (!fechaCorrecta()) {
mes = 1;
año++;
}

}
}

@Override
public String toString() {
String ok="";

return ok;
}
}

43
Realiza una clase llamada Trabajador que posee un código alfanumérico que lo identifica en el trabajo,
el nombre y apellido, la edad, la categoría y la condición definidos como char. Esta clase tendrá el
constructor por defecto y con todos los atributos de la clase, los modificadores y selectores así como
el toString() usando StringBuilder . Desarrolla los métodos siguientes: *método sueldoBruto() que
devuelve el sueldo bruto, que se definirá en función de la categoría (valores posibles S y A) y la
condición (valores posibles C, E y S) de modo siguiente: Si la categoría es S Si la condición es C el
sueldo base son 2000€, si es E el sueldo base es 2500€ y si es S el sueldo base son 1800€. Si la
categoría es A Si la condición es C el sueldo base son 2200€, si es E el sueldo base es 2700€ y si es S
el sueldo base son 1900€. * método acabaenA() que revisa si el nombre del trabajador tiene más de 4
caracteres de longitud y acaba en a, devolviendo verdadero si ese caso, o bien, falso si no cumple las
condiciones. *método buscaTrabajador(edad) que recibe como parámetros la edad mínima y una
categoría y debe devolver una cadena si se cumplen las condiciones: Si su edad es inferior a la edad
pasada como parámetro y su categoría es “S” devolverá “SA”. Si la edad es superior o igual a la
recibida como parámetro y la categoría es “A” entonces devuelve “MA”. En cualquier otro caso
devuelve “NA”. Realiza la clase PruebasTrabajador para probar todos los métodos creando al menos
dos objetos de esta clase, uno con el constructor por defecto y otro con el constructor con
parámetros.
* Realiza una clase llamada Trabajador que posee un código alfanumérico que
* lo identifica en el trabajo, el nombre y apellido, la edad, la categoría y la
* condición definidos como char.
Esta clase tendrá el constructor por defecto y con todos los atributos de la clase, los
modificadores y selectores así como el toString() usando StringBuilder
*/
public class Trabajador {
private String codigo;
private String nombre;
private String apellido;
private int edad;
private char categoria, condicion;

public Trabajador() {
this.codigo="12";
this.nombre="María";
this.apellido = "Perez";
this.edad=25;
this.categoria='S';
this.condicion='C';

public Trabajador( String codigo, String nombre,String apellido,int edad,char categoria, char condicion)
{
this.codigo=codigo;
this.nombre=nombre;
this.apellido = apellido;
this.edad=edad;
this.categoria=categoria;
this.condicion=condicion;
}
/**
* el sueldo bruto se definirá en función de la categoría (valores posibles S y A)
* y la condición (valores posibles C, E y S)
* @return devuelve el sueldo bruto.
44
*/

public double sueldoBruto()


{
double resultado=0;

switch(this.categoria)
{
case 'S':
switch(this.condicion)
{
case 'C': resultado=2000;
break;
case 'E': resultado=2500;
break;
case 'S':resultado=1800;
break;
default:System.out.println("Condición incorrecta.");
}
break;
case 'A':
switch(this.condicion)
{
case 'C': resultado=2200;
break;
case 'E': resultado=2700;
break;
case 'S':resultado=1900;
break;
default:System.out.println("Condición incorrecta.");
}
break;
default: System.out.println("Categoria incorrecta.");
}
return resultado;
}

/**
* revisa si el nombre del trabajador tiene más de 4 caracteres de
longitud y acaba en a
* @return
*/
public boolean acabaenA()
{
if (this.nombre.length()>4 && (this.nombre.endsWith("a") || this.nombre.endsWith("A")))
return true;
else
return false;
}

/**
* método buscaTrabajador(edad) que recibe como parámetros la edad mínima y una categoría
* y debe devolver una cadena si se cumplen las condiciones:
45
Si su edad es inferior a la edad pasada como parámetro y su categoría es “S”
devolverá “SA”.
Si la edad es superior o igual a la recibida como parámetro y la categoría es “A”
entonces devuelve “MA”.
En cualquier otro caso devuelve “NA”.
* @param edad
* @return
*/
public String buscaTrabajador (int edad)
{
String cadena="";
if (this.edad<edad && this.categoria=='S')
cadena="SA";
else if(this.edad>edad && this.categoria=='A')
cadena= "MA";
else
cadena="NA";

return cadena;

}
public static void main(String[] args) {
Trabajador trabajador = new Trabajador();
Trabajador trabajador2 = new Trabajador ("codigo","nombre","apellido",30,'S', 'C');
double sueldo = trabajador2.sueldoBruto();

System.out.println("Resultado sueldo " + sueldo);

➔ EJERCICIOS EXAMEN ANTERIOR:


EJER 1- hyperpar y cuadrado de un número.
public class Ejer1 {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner teclado=new Scanner(System.in);
int num=0;
do{
System.out.println("Introduce un numero entre 10 y 30: ");
num=teclado.nextInt();
}while(num<10 || num>30);

int cuadrado=(int)Math.pow(num,2);

System.out.println("El cuadrado del numero "+num+" es "+cuadrado);

boolean hyperpar=true;
46
while(cuadrado>0){
int cifra=cuadrado%10;
cuadrado=cuadrado/10;

if(cifra%2!=0){
hyperpar=false;
}
}
if(hyperpar==true){
System.out.println("El cuadrado es hyperpar");
}else{
System.out.println("El cuadrado no es hyperpar");
}

EJER 2 - MENU, AREAS


public class Ejer2 {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner teclado=new Scanner(System.in);
int x,y,alto,ancho;
int opc=0;
System.out.println("Introduce la coordenada (x,y): ");
x=teclado.nextInt();
y=teclado.nextInt();
System.out.println("Introduce el alto: ");
alto=teclado.nextInt();
System.out.println("Introduce el ancho: ");
ancho=teclado.nextInt();
if(alto<=0 ||ancho<=0){
System.out.println("No se puede continuar, datos erroneos");
}else{
do{
System.out.println("Menu");
System.out.println("1.- Calcular el area");
System.out.println("2.- Calcular la longitud de la diagonal");
System.out.println("3.- Devolver el punto opuesto");
System.out.println("4.- Salir");
System.out.println("Introduce opción: ");
opc=teclado.nextInt();
switch(opc){
case 1:
System.out.println("El area es: "+(alto*ancho));
if (alto==ancho)
System.out.println("Es un cuadrado");
break;
47
case 2:
System.out.println("La longitud es "+Math.sqrt(Math.pow(ancho, 2)+Math.pow(alto, 2)));
break;
case 3:
System.out.println("La coordenada opuesta es: ("+(x+ancho)+","+(y+alto)+")");
break;
default:
}

}while(opc!=4);
}
}

EJER 3 - CUAL ES MAYOR A, B comparando con M


public class Ejer3 {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int A, B, m;
Scanner teclado = new Scanner(System.in);
do {
System.out.println("Introduce A: ");
A = teclado.nextInt();
} while (A <= 0);
do {
System.out.println("Introduce B: ");
B = teclado.nextInt();
} while (B <= 0);
do {
System.out.println("Introduce m: ");
m = teclado.nextInt();
} while (m <= 0);

System.out.println("La serie es: ");


if (A<B)
{
for (int i=A;i<=B; i+=m)
{
System.out.println(i);
}
}else{
for (int i=B;i<=A; i+=m)
{
System.out.println(i);
}
}
}
}

48
ESTRUCTURA POO:

49
STRING:
- TÍTULO
- AUTOR
- NOMBRE
- NÚMERO CUENTA
- CÓDIGO
- APELLIDO

DOUBLE:
- TIPO INTERES
- SALDO
- KMS
- LITROS
- VELOCIDAD METROS
- PRECIO LITRO
-
INT:
- EDAD
- AÑO
- MES
- DIA
- NÚMERO VOTOS
- NÚMERO ELEMENTOS
- VELOCIDAD
- PRESTADOS
- EJEMPLARES

FLOAT:
- CAPACIDAD
- CAJA

CHAR:
- CATEGORÍA
- CONDICIÓN

SHORT:
- NÚMERO HUECOS

50

También podría gustarte