Ejercicios Básicos Java L
Ejercicios Básicos Java L
Ejercicios Básicos Java L
1. Programa Java que lea dos nmeros enteros por teclado y los muestre por pantalla.
import java.util.*;
//declaracin de variables
//mostrar resultado
Programa que lea una cantidad de grados centgrados y la pase a grados Fahrenheit.
F = 32 + ( 9 * C / 5)
import java.util.*;
gradosC = sc.nextDouble();
Ejercicio 5. Programa que lee por teclado el valor del radio de una circunferencia y calcula y muestra por
pantalla la longitud y el rea de la circunferencia.
import java.util.*;
radio = sc.nextDouble();
Ejercicio 6. Programa que pase una velocidad en Km/h a m/s. La velocidad se lee por teclado.
import java.util.*;
double velocidad;
velocidad = sc.nextDouble();
Ejercicio 7. Programa lea la longitud de los catetos de un tringulo rectngulo y calcule la longitud de la
hipotenusa segn el teorema de Pitgoras.
import java.util.*;
cateto1 = sc.nextDouble();
cateto2 = sc.nextDouble();
Ejercicio 8:
Programa que tome como dato de entrada un nmero que corresponde a la longitud del radio una
esfera y nos calcula y escribe el volumen de la esfera que se corresponden con dicho radio.
v = (4/3)*PI*r^3
/*
*/
import java.util.*;
radio = sc.nextDouble();
Programa Java que calcule el rea de un tringulo en funcin de las longitudes de sus lados (a, b, c),
segn la siguiente frmula:
Area = RaizCuadrada(p*(p-a)*(p-b)*(p-c))
donde p = (a+b+c)/2
/*
* Programa que calcule el rea de un tringulo en funcin de las longitudes de sus lados (a, b, c)
*/
import java.util.*;
double a,b,c,p;
a = sc.nextDouble();
b = sc.nextDouble();
c = sc.nextDouble();
p = (a+b+c)/2;
}
Programa Java que lea un nmero entero de 3 cifras y muestre por separado las cifras del nmero.
/*
* Programa que lea un nmero de 3 cifras y muestre por pantalla las cifras del nmero
*/
import java.util.*;
int N;
Recuerda que la divisin entre enteros da como resultado la parte entera de la divisin (sin decimales).
Si por ejemplo N = 123 la operacin N/10 da como resultado 12 y no 12.3
Programa que lea un nmero entero N de 5 cifras y muestre sus cifras igual que en el ejemplo.
12
123
1234
12345
/*
*1
* 12
* 123
* 1234
* 12345
*/
import java.util.*;
int N;
System.out.println(N/10000);
System.out.println(N/1000);
System.out.println(N/100);
System.out.println(N/10);
System.out.println(N);
Programa Java que lea un nmero entero N de 5 cifras y muestre sus cifras igual que en el ejemplo.
45
345
2345
12345
/*
*5
* 45
* 345
* 2345
* 12345
*/
import java.util.*;
int N;
System.out.println(N%10);
System.out.printf("%02d %n",N%100);
System.out.printf("%03d %n",N%1000);
System.out.printf("%04d %n",N%10000);
System.out.printf("%05d %n",N);
Programa que pida por teclado la fecha de nacimiento de una persona (dia, mes, ao) y calcule su
nmero de la suerte.
Por ejemplo:
Nmero de la suerte: 28
/*
*/
import java.util.*;
public class Secuenciales2_13 {
int dia, mes, ao, suerte, suma, cifra1, cifra2, cifra3, cifra4;
System.out.print("da: ");
dia = sc.nextInt();
System.out.print("mes: ");
mes = sc.nextInt();
System.out.print("ao: ");
ao = sc.nextInt();
1. Programa Java que lea un nmero entero por teclado y calcule si es par o impar.
Podemos saber si un nmero es par si el resto de dividir el nmero entre 2 es igual a cero. En caso
contrario el nmero es impar
El operador Java que calcula el resto de la divisin entre dos nmeros enteros o no es el operador %
import java.util.*;
int N;
System.out.print("Introduzca Nmero entero: ");
N = sc.nextInt();
if(N%2==0)
System.out.println("Par");
else
System.out.println("Impar");
Podemos comprobar si un nmero entero es mltiplo de 10 si al dividirlo por 10 es resto de esta divisin
es cero.
import java.util.*;
int N;
N = sc.nextInt();
if(N%10==0)
else
3. Programa que lea un carcter por teclado y compruebe si es una letra mayscula
/* condicional1_3
* Programa que lea un carcter por teclado y compruebe si es una letra mayscula
*/
import java.io.*;
import java.util.*;
public class condicional1_3 {
else
Forma alternativa de comprobar si un carcter es una letra mayscula sin utilizar el mtodo
isUpperCase, en este caso comparando directamente con los caracteres A y Z
else
/*
* si son iguales.
*/
import java.io.*;
if(car1 == car2)
System.out.println("Son iguales");
else
Una forma alternativa de hacer este programa es creando dos objetos Character a partir de los
caracteres que se han ledo y compararlos utilizando el mtodo equals
import java.io.*;
System.out.println("Son iguales");
else
}
Ejercicio 5: Programa java que lea dos caracteres por teclado y compruebe si los dos son letras
minsculas
* Programa que lea dos caracteres y compruebe si los dos son letras minsculas
*/
import java.io.*;
if(Character.isLowerCase(car2))
else
else{
if(Character.isLowerCase(car2))
else
}
Una forma alternativa de resolver este ejercicio es comparando directamente las dos variables con las
letras minsculas
else
else{
else
Ejercicio 6: Programa java que lea un carcter por teclado y compruebe si es un dgito numrico (cifra
entre 0 y 9).
/*
*/
import java.io.*;
char car1;
System.out.println("Es un nmero");
else
System.out.println("No es un nmero");
el carcter 9.
System.out.println("Es un nmero");
else
System.out.println("No es un nmero")
Ejercicio 7: Programa que lea dos nmeros por teclado y muestre el resultado de la divisin del primer
nmero por el segundo. Se debe comprobar que el divisor no puede ser cero.
/*
*/
import java.util.*;
dividendo = sc.nextDouble();
divisor = sc.nextDouble();
if(divisor==0)
else{
System.out.println(dividendo + " / " + divisor + " = " + dividendo/divisor);
El programa lee por teclado tres nmeros enteros y calcula y muestra el mayor de los tres.
/*
*/
import java.util.*;
n1 = sc.nextInt();
n2 = sc.nextInt();
n3 = sc.nextInt();
if(n1>n3)
else
else if(n2>n3)
else
System.out.println("el mayor es: " + n3);
Ejercicio 9:
Programa que lea por teclado tres nmeros enteros H, M, S correspondientes a hora, minutos y
segundos respectivamente, y comprueba si la hora que indican es una hora vlida.
Supondremos que se leemos una hora en modo 24 Horas, es decir, el valor vlido para las horas ser
mayor o igual que cero y menor que 24.
El valor vlido para los minutos y segundos estar comprendido entre 0 y 59 ambos incluidos
/*
* Programa java que lea tres nmeros enteros H, M, S que contienen hora, minutos y
*/
import java.util.*;
int H,M,S;
H = sc.nextInt();
M = sc.nextInt();
S = sc.nextInt();
if(H>=0 && H<24 && M>=0 && M<60 && S>=0 && S<60)
System.out.println("Hora correcta");
else
System.out.println("Hora incorrecta");
Esta condicin da como resultado true cuando la hora es mayor o igual a 0 y menor que 24, los minutos
son mayores o iguales a 0 y menores que 60 y los segundos son mayores 0 iguales a cero y menores a
60.
Ejercicio 10:
Programa que lea una variable entera mes y compruebe si el valor corresponde a un mes de 30 das, de
31 o de 28. Supondremos que febrero tiene 28 das. Se mostrar adems el nombre del mes. Se debe
comprobar que el valor introducido est comprendido entre 1 y 12.
/*
* Programa java que lea una variable entera mes y compruebe si el valor corresponde
* comprendido entre 1 y 12
*/
import java.util.*;
int mes;
mes = sc.nextInt();
if(mes < 1 || mes > 12) //se comprueba que el valor del mes es correcto
System.out.println("Mes incorrecto");
case 1: System.out.print("Enero");
break;
case 2: System.out.print("Febrero");
break;
case 3: System.out.print("Marzo");
break;
case 4: System.out.print("Abril");
break;
case 5: System.out.print("Mayo");
break;
case 6: System.out.print("Junio");
break;
case 7: System.out.print("Julio");
break;
case 8: System.out.print("Agosto");
break;
case 9: System.out.print("Septiembre");
break;
break;
break;
break;
else if(mes == 2)
else
}
Ejercicios Bsicos con Estructura Iterativa o Repetitiva
Relacin N 1: Ejercicios 1, 2, 3, 4, 5 y 6
Se trata de mostrar los nmeros desde el 1 hasta el 100 utilizando las instrucciones repetitivas while, do
while y for.
1. Ejemplo de uso de while: Programa Java que muestre los nmeros del 1 al 100 utilizando la
instruccin while.
/*
*/
int i=1;
while(i<=100) {
System.out.println(i);
i++;
2. Ejemplo de uso de do-while. Programa Java que muestre los nmeros del 1 al 100 utilizando la
instruccin do..while.
/*
*/
int i = 1;
System.out.println(i);
i++;
}while(i<=100);
3. Ejemplo de uso de for. Programa Java que muestre los nmeros del 1 al 100 utilizando la instruccin
for.
/*
*/
for(int i = 1; i<=100;i++)
System.out.println(i);
4. Ejemplo de uso de while. Programa Java que muestre los nmeros del 100 al 1 utilizando la
instruccin while.
/*
*/
int i=100;
while(i>=1)
{
System.out.println(i);
i--;
5. Ejemplo de uso de do-while. Programa Java que muestre los nmeros del 100 al 1 utilizando la
instruccin do..while.
/*
*/
int i = 100;
do{
System.out.println(i);
i--;
}while(i>=1);
6. Ejemplo de for. Programa Java que muestre los nmeros del 100 al 1 utilizando la instruccin for.
/*
*/
for(int i=100;i>=1;i--)
System.out.println(i);
}
Ejercicios Generales
En esta entrada vamos a explicar dos mtodos para realizar el intercambio de valores entre dos
variables.
El primer mtodo de intercambio utiliza una variable auxiliar y el segundo mtodo realiza el intercambio
de valores sin utilizar variable auxiliar.
Programa para intercambiar el valor de dos variables. Los valores iniciales se leen por teclado.
Por ejemplo, suponiendo que las variables se llaman A y B, si A contiene 3 y B contiene 5, despus del
intercambio A contendr 5 y B 3.
En este ejemplo, para intercambiar el valor entre dos variables utilizaremos una avariable auxiliar donde
guardar el valor de una de ellas. Despus veremos la forma de hacerlo sin usar una variable auxiliar para
el intercambio.
AUX = A;
A = B;
B = AUX;
Programa completo:
/*
* numricas A y B e
*/
import java.util.*;
int A, B, AUX;
A = sc.nextInt();
AUX = A;
A = B;
B = AUX;
Tambin se puede intercambiar el valor de dos variables sin utilizar una variable auxiliar.
A = A + B;
B = A - B;
A = A - B;
Si por ejemplo A = 5 y B = 3
A=5+3=8
B=8-3=5
A=8-5=3
Programa completo:
/*
*/
import java.util.*;
int A, B, AUX;
System.out.print("Introduzca valor de A: ");
A = sc.nextInt();
B = sc.nextInt();
A = A + B;
B = A - B;
A = A - B;
/**
* de decimal a binario
*/
double binario;
do{
numero = sc.nextInt();
}while(numero<0);
exp=0;
binario=0;
while(numero!=0){
digito = numero % 2;
exp++;
numero = numero/2;
/*
*/
import java.util.Scanner;
int exponente;
boolean esBinario;
do {
numero = sc.nextLong();
esBinario = true;
aux = numero;
while (aux != 0) {
exponente = 0;
while (numero != 0) {
exponente++;
}
Convertir a nmeros romanos en Java
import java.util.Scanner;
int N;
do {
N = sc.nextInt();
//millar
//centenas
if (centenas == 9) {
} else if (centenas == 4) {
} else {
//decenas
if (decenas == 9) {
} else if (decenas == 4) {
} else {
//unidades
if (unidades == 9) {
} else if (unidades == 4) {
} else {
return romano;
}
Ejercicios con Arrays
Programa Java que lea por teclado 10 nmeros enteros y los guarde en un array. A continuacin calcula
y muestra por separado la media de los valores positivos y la de los valores negativos.
/*
* Programa que lea por teclado 10 nmeros enteros y los guarde en un array.
* A continuacin calcula y muestra la media de los valores positivos y la de los valores negativos.
*/
import java.util.*;
int i;
int[] numeros = new int[10]; //array que contendr los nmeros ledos por teclado
numeros[i]=sc.nextInt();
// y los negativos
sumaPos += numeros[i];
pos++;
sumaNeg += numeros[i];
neg++;
if (pos != 0) {
} else {
if (neg != 0) {
} else {
2. Programa Java que lea 10 nmeros enteros por teclado y los guarde en un array. Calcula y muestra la
media de los nmeros que estn en las posiciones pares del array.
/*
*/
import java.util.*;
int i;
numeros[i] = sc.nextInt();
3. Programa que lee por teclado la nota de los alumnos de una clase y calcula la nota media del grupo.
Tambin muestra los alumnos con notas superiores a la media. El nmero de alumnos se lee por
teclado.
Este programa utiliza un array de elementos de tipo double que contendr las notas de los alumnos.
El tamao del array ser el nmero de alumnos de la clase, por lo tanto primero se pedir por teclado el
nmero de alumnos y a continuacin se crear el array.
Se realizan 3 recorridos sobre el array, el primero para asignar a cada elemento las notas introducidas
por teclado, el segundo para sumarlas y calcular la media y el tercero para mostrar los alumnos con
notas superiores a la media.
import java.util.*;
int numAlum, i;
do {
numAlum = sc.nextInt();
notas[i] = sc.nextDouble();
// Calcular la media
// Mostrar la media
}
}
4. Programa que crea un array de 20 elementos llamado Pares y guarde los 20 primeros nmeros pares.
Mostrar por pantalla el contenido del array creado.
/*
* nmeros pares.
*/
import java.util.*;
int i, cont = 2;
pares[i] = cont;
cont += 2;
//Mostrar el array
System.out.println(pares[i]);
}
5. Programa Java que guarda en un array 10 nmeros enteros que se leen por teclado. A continuacin se
recorre el array y calcula cuntos nmeros son positivos, cuntos negativos y cuntos ceros.
import java.util.*;
int i;
numeros[i] = sc.nextInt();
if (numeros[i] > 0) {
pos++;
neg++;
} else {
cero++;
//mostrar resultados
6. Programa Java que llene un array con 10 nmeros enteros que se leen por teclado. A continuacin
calcula y muestra la media de los valores positivos y la de los valores negativos del array.
/*
* Leer 10 nmeros enteros y mostrar la media de los valores positivos y la de los valores negativos.
*/
import java.util.*;
int i;
numeros[i]=sc.nextInt();
sumaPos += numeros[i];
pos++;
sumaNeg += numeros[i];
neg++;
//mostrar resultados
if (pos != 0) {
} else {
if (neg != 0) {
} else {
7. Programa Java para leer la altura de N personas y calcular la altura media. Calcular cuntas personas
tienen una altura superior a la media y cuntas tienen una altura inferior a la media. El valor de N se
pide por teclado y debe ser entero positivo.
/*
*/
import java.util.*;
int i, N;
int contMas = 0, contMenos = 0;
double media = 0;
do{
N = sc.nextInt();
}while(N<=0);
//Leer alturas
alto[i] = sc.nextDouble();
media = media + alto[i]; //se suma la estatura leda para calcular la media
//Calcular la media
media = media / N;
contMas++;
contMenos++;
//Mostrar resultados
Al mismo tiempo que leemos los datos de los empleados iremos comprobando cul es el que tiene el
mayor sueldo. Para ello tomamos el sueldo del primer empleado que se lee como mayor sueldo y
despus vamos comprobando el resto de sueldos. Cuando encontramos alguno mayor que el mayor
actual este sueldo se convierte en el nuevo mayor.
En general para calcular el mayor de una serie de nmeros tomamos el primero como mayor y despus
comparamos el resto de nmeros.
import java.util.*;
String nombreMayor;
double mayorSueldo;
int i = 0;
empleados[i] = sc.nextLine();
System.out.print("Sueldo: ");
sueldos[i] = sc.nextDouble();
mayorSueldo = sueldos[i];
nombreMayor = empleados[i];
empleados[i] = sc.nextLine();
System.out.print("Sueldo: ");
sueldos[i] = sc.nextDouble();
mayorSueldo = sueldos[i];
nombreMayor = empleados[i];
//mostrar resultados
En esta entrada vamos a escribir un mtodo Java que llene un array de enteros con nmeros aleatorios.
Los nmeros aleatorios debern estar comprendidos entre dos lmites (desde, hasta) ambos incluidos.
El mtodo recibe como parmetros los valores desde, hasta y el tamao del array.
Para obtener nmeros enteros aleatorios usaremos el mtodo nextInt() de la clase Random.
Para que los nmeros aleatorios obtenidos estn dentro de los limites utilizaremos el mtodo nextInt()
de la siguiente frma: nextInt(hasta - desde + 1) + desde
return numeros;
En este caso cada vez que se obtiene un nmero aleatorio se debe comprobar si ya est en el array.
Para hacer este trabajo vamos a escribir un mtodo llamado comprobarSiContiene. A este mtodo se le
enva el array, la posicin del elemento actual y el nmero aleatorio a insertar y devuelve true si el
nmero ya existe en el array. En ese caso se vuelve a sacar otro nmero aleatorio.
int n;
do {
numeros[i] = n;
return numeros;
if (numeros[i] == valor) {
return true;
return false;
}
Esta sera la solucin para aquellos que estn empezando a programar. Pero en este caso nos podemos
ahorrar trabajo utilizando la API de Java. En concreto utilizando un ArrayList y el mtodo shuffle de
Collections.
La idea es llenar un ArrayList con todos los nmeros comprendidos entre los lmites desde/hasta. A
continuacin se llama al mtodo shuffle para desordenarlos y despus se pasan al array de enteros los
tam primeros elementos, donde tam es el tamao del array a devolver.
array.add(i);
Collections.shuffle(array);
numeros[i]=array.get(i);
return numeros;
Mtodo mostrarResultados(): muestra por pantalla todas las alturas y calcula y muestra el nmero de
alumnos con altura superior e inferior a la media. Recibe como parmetros el ArrayList con las alturas de
todos los alumnos y la media calculada anteriormente.
Solucin:
import java.util.ArrayList;
import java.util.Scanner;
int N;
double media;
//obtenemos el nmero de alumnos de la clase
N = numeroAlumnos();
leerAlturas(altura, N);
//calculamos la media
media = calcularMedia(altura);
mostrarResultados(altura, media);
int n;
do {
n = sc.nextInt();
return n;
//Pide por teclado la altura de todos los alumnos y las guarda en el ArrayList
int i;
double alto;
do {
alto = sc.nextDouble();
double media = 0;
for (Double d : a) {
media = media + d;
System.out.println(a);
for (Double d : a) {
if (d > media)
superior++;
inferior++;
}
Leer nmeros por teclado hasta introducir -99. Calcular la suma, la media y cuntos son mayores que la
media.
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
int n;
n = sc.nextInt();
while (n != -99) {
valores.add(n);
n = sc.nextInt();
return valores;
double suma = 0;
Iterator it = valores.iterator();
while (it.hasNext()) {
return suma;
int cont = 0;
System.out.println(valores);
if (i > media) {
cont++;
import java.util.ArrayList;
import java.util.Scanner;
ArrayList<Integer> A = leerArray();
mostrar(A);
desplazarDerecha(A);
mostrar(A);
desplazarDerecha2(A);
mostrar(A);
int N;
do {
N = sc.nextInt();
numeros.add(sc.nextInt());
return numeros;
int i;
int aux = a.get(a.size() - 1); //guardar el ltimo elemento en una variable
a.add(0,aux);
a.remove(a.size()-1);
System.out.println(a);