Como continuación del artículo "Domina Java: 20 Ejercicios Resueltos para Impulsar tus Habilidades de Programación. Universidad. (Parte 1)", aqui publico la Parte 2 del artículo que no es más que una continuación con otros 20 ejercicios prácticos para que pongais en juego lo aprendido en la universidad o vuestros cursos de programación de Java.
Ejercicio 21: Programa Java de búsqueda lineal
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int[] numbers = {4,2,7,1,8,3,6};
int flag = 0;
System.out.println("Enter the number to be found out: ");
Scanner sc = new Scanner(System.in);
int x = Integer.parseInt(sc.nextLine());
for(int i=0;i<numbers.length;i++){
if (x==numbers[i]){
System.out.println("Successful search, the element is found at position "+ i);
flag = 1;
break;
}
}
if(flag==0){
System.out.println("Oops! Search unsuccessful");
}
}
}
Ejercicio 22: Programa Java de búsqueda binaria
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int[] numbers = {1,4,6,7,12,17,25}; //binary search requires sorted numbers
System.out.println("Enter the number to be found out: ");
Scanner sc = new Scanner(System.in);
int x = Integer.parseInt(sc.nextLine());
int result = binarySearch(numbers, 0, numbers.length-1, x);
if (result != -1)
System.out.println("Search successful, element found at position "+result);
else
System.out.println("The given element is not present in the array");
}
public static int binarySearch(int[] numbers,int low,int high,int x){
if (high >= low){
int mid = low + (high - low)/2;
if (numbers[mid] == x)
return mid;
else if (numbers[mid] > x)
return binarySearch(numbers, low, mid-1, x);
else
return binarySearch(numbers, mid+1, high, x);
}else{
return -1;
}
}
}
Ejercicio 23: Programa Java para encontrar el número de números impares en una matriz
class Main {
public static void main(String[] args) {
int[] numbers = {8,3,1,6,2,4,5,9};
int count = 0;
for(int i=0;i<numbers.length;i++){
if(numbers[i]%2!=0)
count++;
}
System.out.println("The number of odd numbers in the list are: "+count);
}
}
Ejercicio 24: Programa Java para encontrar el mayor número de una matriz sin utilizar funciones incorporadas
class Main {
public static void main(String[] args) {
int[] numbers = {3,8,1,7,2,9,5,4};
int largest = numbers[0];
int position = 0;
for(int i=0;i<numbers.length;i++){
if(numbers[i]>largest){
largest = numbers[i];
position = i;
}
}
System.out.println("The largest element is "+largest+" which is found at position "+position);
}
}
Ejercicio 25: Programa Java para insertar un número en cualquier posición de una matriz
import java.util.Scanner;
import java.util.Arrays;
class Main {
public static void main(String[] args) {
int[] numbers = {3,4,1,9,6,2,8};
System.out.println(Arrays.toString(numbers));
System.out.println("Enter the number to be inserted: ");
Scanner sc = new Scanner(System.in);
int x = Integer.parseInt(sc.nextLine());
System.out.println("Enter the position: ");
int y = Integer.parseInt(sc.nextLine());
for(int i=numbers.length-1;i>y;i--){
numbers[i] = numbers[i-1];
}
numbers[y] = x;
System.out.println(Arrays.toString(numbers));
}
}
Ejercicio 26: Programa Java para borrar un elemento de un array por índice
import java.util.Scanner;
import java.util.Arrays;
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<Integer>(5);
numbers.add(3);
numbers.add(7);
numbers.add(1);
numbers.add(4);
System.out.println(numbers);
System.out.println("Enter the position of the element to be deleted: ");
Scanner sc = new Scanner(System.in);
int x = Integer.parseInt(sc.nextLine());
numbers.remove(x);
System.out.println(numbers);
}
}
Ejercicio 27: Programa Java para comprobar si una cadena es un palíndromo o no
import java.util.Scanner;
class Main {
public static void main(String[] args) {
String a, b = "";
Scanner s = new Scanner(System.in);
System.out.print("Enter the string you want to check: ");
a = s.nextLine();
int n = a.length();
for(int i = n - 1; i >= 0; i--){
b = b + a.charAt(i);
}
if(a.equalsIgnoreCase(b)){
System.out.println("The string is a palindrome.");
}else{
System.out.println("The string is not a palindrome.");
}
}
}
Ejercicio 28: Programa Java para la suma de matrices
class Main {
public static void main(String[] args) {
//creating two matrices
int a[][]={{8,5,1},{9,3,2},{4,6,3}};
int b[][]={{8,5,3},{9,5,7},{9,4,1}};
//matrix to store the sum of two matrices
int c[][]=new int[3][3]; //3 rows and 3 columns
//adding 2 matrices
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
c[i][j]=a[i][j]+b[i][j];
System.out.print(c[i][j]+" ");
}
System.out.print("\n");
}
}
}
Ejercicio 29: Programa Java para la multiplicación de matrices
class Main {
public static void main(String[] args) {
//creating two matrices
int a[][]={{8,5,1},{9,3,2},{4,6,3}};
int b[][]={{8,5,3},{9,5,7},{9,4,1}};
//matrix to store the product of two matrices
int c[][]=new int[3][3];
//multiplying 2 matrices
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
c[i][j]=0;
for(int k=0;k<3;k++){
c[i][j]+=a[i][k]*b[k][j];
}
System.out.print(c[i][j]+" ");
}
System.out.print("\n");
}
}
}
Ejercicio 30: Programa Java para comprobar el año bisiesto
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter the year you want to check: ");
int year = Integer.parseInt(sc.nextLine());
boolean leap = false;
// if the year is divided by 4
if (year % 4 == 0) {
// if the year is century
if (year % 100 == 0) {
// if year is divided by 400, then it is a leap year
if (year % 400 == 0)
leap = true;
else
leap = false;
}
// if the year is not century
else
leap = true;
}
else
leap = false;
if (leap)
System.out.println(year + " is a leap year.");
else
System.out.println(year + " is not a leap year.");
}
}
Ejercicio 31: Programa Java para hallar el enésimo término de una serie de Fibonacci mediante recursión
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner cs=new Scanner(System.in);
int n;
System.out.print("Enter the position(N): ");
n=cs.nextInt();
System.out.print("Nth Fibonacci Number is: "+NthFibonacciNumber(n));
}
static int NthFibonacciNumber(int n){
if(n==1)
return 0;
else if(n==2)
return 1;
else
return NthFibonacciNumber(n-1)+NthFibonacciNumber(n-2);
}
}
Ejercicio 32: Programa Java para imprimir series Fibonacci usando iteración
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int n1=0,n2=1;
Scanner cs=new Scanner(System.in);
System.out.print("Enter the number of terms in the sequence: ");
int count = cs.nextInt();
int n3,i;
System.out.print(n1+" "+n2);//printing 0 and 1
//printing from 2 because 0 and 1 are already printed
for(i=2;i<count;++i){
n3=n1+n2;
System.out.print(" "+n3);
n1=n2;
n2=n3;
}
}
}
Ejercicio 33: Programa Java para implementar una calculadora que realice operaciones básicas
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int firstNumber, secondNumber, opt, add, sub, mul;
double div;
Scanner s = new Scanner(System.in);
System.out.print("Enter first number: ");
firstNumber = s.nextInt();
System.out.print("Enter second number: ");
secondNumber = s.nextInt();
while(true){
System.out.println("Enter 1 for addition");
System.out.println("Enter 2 for subtraction");
System.out.println("Enter 3 for multiplication");
System.out.println("Enter 4 for division");
System.out.println("Enter 5 to Exit");
int option = s.nextInt();
switch(option){
case 1:
add = firstNumber + secondNumber;
System.out.println("Result:"+add);
break;
case 2:
sub = firstNumber - secondNumber;
System.out.println("Result:"+sub);
break;
case 3:
mul = firstNumber * secondNumber;
System.out.println("Result:"+mul);
break;
case 4:
div = (double)firstNumber / secondNumber;
System.out.println("Result:"+div);
break;
case 5:
System.exit(0);
}
}
}
}
Ejercicio 34: Programa Java para encontrar tu peso en Marte
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("How many pounds (lbs) do you weigh? ") ;
float weight = input.nextFloat();
// computing the weight on mars
double weightOnMars = (weight * .38);
// displaying results with 4 decimal places
System.out.println("Your weight is "+String.format("%.4f",weightOnMars)+" lbs on Mars");
System.out.println("Converting the variable into integer");
int weightOnMarsInt = (int)weightOnMars;
System.out.println(weightOnMarsInt);
System.out.println("Converting the variable into char");
char weightOnMarsChar = (char)weightOnMars;
System.out.println(weightOnMarsChar);
System.out.println("Converting the variable into Int and doing an operation on it");
int newIntVariable = weightOnMarsChar * 2;
System.out.println(newIntVariable);
}
}
Ejercicio 35: Programa Java para comprobar si el número aleatorio generado es par o impar
import java.util.Random;
class Main {
public static void main(String[] args) {
int min = 1;
int max = 100;
//Generating a random number
Random r = new Random();
int randomNumber = min + r.nextInt(max);
System.out.println("Generated random number is: "+randomNumber);
//Checking whether the number is odd or even
if(randomNumber%2==0){
System.out.println("The generated random number is even.");
}else{
System.out.println("The generated random number is odd.");
}
}
}
Ejercicio 36: Programa Java para calcular el número de contenedores necesarios
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("How many Lego bricks do we have? Choose an odd number between 50 and 100: ");
int amountOfBricks = Integer.parseInt(sc.nextLine());
System.out.println("How many Lego blocks fit in one container? Choose an even number between 5 and 10: ");
int containerCapacity = Integer.parseInt(sc.nextLine());
int noOfFullContainers = amountOfBricks/containerCapacity;
int noOfTotalContainers;
int noOfBlocksInNotFullContainers = amountOfBricks%containerCapacity;
if(noOfBlocksInNotFullContainers!=0){
noOfTotalContainers = noOfFullContainers + 1;
}else{
noOfTotalContainers = noOfFullContainers;
}
System.out.println("No of full containers we have: "+noOfFullContainers);
System.out.println("No of total containers we have: "+noOfTotalContainers);
System.out.println("No of blocks in the container that is not completely full: "+noOfBlocksInNotFullContainers);
}
}
Ejercicio 37: Programa Java para calcular impuestos
import java.math.BigDecimal;
class Main {
public static void main(String[] args) {
double netValue = 9.99;
double VAT = 23.0;
//calculating grossValue
double grossValue = netValue + (VAT*netValue/100);
System.out.println("The gross value is: "+grossValue);
// multiplying the value by 10000
double grossValue10000 = grossValue * 10000;
System.out.println("The gross value for 10000 units is: "+grossValue10000);
// calculating price excluding VAT 23%
double excludingVAT = grossValue10000 - (VAT*grossValue10000/100);
System.out.println("The value for 10000 units excluding VAT is: "+excludingVAT);
// doing the same operations using BigDecimal instead of double
System.out.println("\n----Using BigDecimal instead of double----\n");
BigDecimal netValue_big = new BigDecimal("9.99");
BigDecimal VAT_big = new BigDecimal("23.0");
BigDecimal HUNDRED = new BigDecimal("100");
BigDecimal TenThousand = new BigDecimal("10000");
//calculating grossValue
BigDecimal grossValue_big = netValue_big.add(VAT_big.multiply(netValue_big.divide(HUNDRED)));
System.out.println("The gross value is: "+grossValue_big);
// multiplying the value by 10000
BigDecimal grossValue10000_big = grossValue_big.multiply(TenThousand);
System.out.println("The gross value for 10000 units is: "+grossValue10000_big);
// calculating price excluding VAT 23%
BigDecimal excludingVAT_big = grossValue10000_big.subtract(VAT_big.multiply(grossValue10000_big.divide(HUNDRED)));
System.out.println("The value for 10000 units excluding VAT is: "+excludingVAT_big);
System.out.println("\nThe accuracy is higher when we use BigDecimal instead of double");
}
}
Ejercicio 38: Calcular el IMC con Java
import java.util.Scanner;
class Main {
public static void main(String[] args) {
float height, weight, bmi;
Scanner s = new Scanner(System.in);
System.out.println("Enter the height (in inches): ");
height = s.nextFloat();
System.out.println("Enter the weight (in pounds): ");
weight = s.nextFloat();
bmi = (float)(weight / Math.pow(height, 2) * 703);
System.out.println("The BMI is: "+bmi);
if(bmi<16.00)
System.out.println("starvation");
else if(bmi>=16.00 && bmi <= 16.99)
System.out.println("emaciation");
else if(bmi>=17.00 && bmi <= 18.49)
System.out.println("underweight");
else if(bmi>=18.50 && bmi<=22.99)
System.out.println("normal, low range");
else if(bmi>=23.00 && bmi<=24.99)
System.out.println("normal, high range");
else if(bmi>=25.00 && bmi<=27.49)
System.out.println("overweight, low range");
else if(bmi>=27.50 && bmi<=29.99)
System.out.println("overweight, high range");
else if(bmi>=30.00 && bmi<=34.9)
System.out.println("1st degree obesity");
else if(bmi>=35.00 && bmi<=39.90)
System.out.println("2nd degree obesity");
else
System.out.println("3rd degree obesity");
}
}
Ejercicio 39: Programa Java para hallar la suma de números pares
class Main {
public static void main(String[] args) {
int sum=0;
for(int i=1;i<=100;i++){
if(i%2==0){
sum = sum + i;
}
}
System.out.println("The sum of even numbers from 1-100 is: "+sum);
}
}
Ejercicio 40: Programa Java para encontrar los números más grandes y más pequeños a partir de números aleatorios
import java.util.Random;
class Main {
public static void main(String[] args) {
int min = 1, max=100;
int largest=0;
int smallest=100;
int i = 1;
while(i<=10){
//Generating a random number
Random r = new Random();
int randomNumber = min + r.nextInt(max);
System.out.println("Generated random number is: "+randomNumber);
if(randomNumber>largest){
largest = randomNumber;
}
if(randomNumber<smallest){
smallest = randomNumber;
}
i++;
}
System.out.println("\n");
System.out.println("The smallest number is: "+smallest);
System.out.println("The largest number is: "+largest);
}
}