Ejercicios de programación en Java: métodos
Veamos algunos ejercicios de programación que deberíamos resolver en Java utilizando métodos, a parte del método main.
¿Es año bisiesto? Desarrolla un programa en Java que pida la entrada de un año e indique si se trata de un año bisiesto o no. Haz que el calculo se realice en un método distinto al main. Un año es bisiesto si es múltiplo de 4 y no lo es de 100, excepto los múltiplos de 400 que también son bisiestos.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import java.util.*; public class Bisiesto { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int year; System.out.print("Introduce año: "); year = sc.nextInt(); if(esBisiesto(year)) //llamada al método System.out.println("Bisiesto"); else System.out.println("No es bisiesto"); } /** * método que calcula si un año es o no bisiesto */ public static boolean esBisiesto(int a){ if(a%4==0 && a%100!=0 || a%400==0) return true; else return false; } } |
Precio del parking. Crea un programa en Java que calcule el coste del estacionamiento en un parking de modo que las 3 primeras horas se cobran a 2,50 euros y las siguientes a 1,30 hasta llegar a un tope de 28 euros para 24 horas. Si permanece aparcado más de un día se cobrarían 28 euros al día y 1,30 las horas siguientes. Se da por hecho que el usuario introducirá un número entero de horas y debe obtener el precio. Utilizar métodos.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
import java.util.Scanner; class Parking{ public static void main(String[] args){ int num_horas; double precio_total; Scanner scan = new Scanner(System.in); System.out.println("Introduzca numero de horas"); num_horas = scan.nextInt(); precio_total = calculaprecio(num_horas); System.out.println("Total: " + precio_total); } /** * Método que calcula el precio del parking */ public static double calculaprecio(int horas){ double precio, precio_resto; int dias, resto_horas; if (horas<=24){ if (horas <= 3){ precio = horas * 2.5; } else{ precio = (3 * 2.5) + ((horas-3) * 1.3); if (precio>28){ precio = 28; } } } else{ dias = horas/24; resto_horas = horas%24; precio_resto = resto_horas * 1.3; if (precio_resto > 28){ precio_resto = 28; } precio = dias * 28 + precio_resto; } return precio; } } |
Desplaza arrays. Desarrolla un programa que desplace los elementos de un array generado aleatoriamente el número de posiciones a la derecha que indique el usuario. Los elementos que salgan por la derecha del array se irán colocando de nuevo por la izquierda. Introduce un método que genere el array y otro que realice el desplazamiento. Debe imprimir el array antes y después de desplazarlo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
import java.util.Scanner; class DesplazaArrayN{ public static void main(String[] args){ int i, talla, v1[]; Scanner scan = new Scanner(System.in); System.out.println("Introduzca el tamaño del vector a crear"); talla = scan.nextInt(); // Llamamos a creaVectorAleatorio v1 = creaVectorAleatorio(talla); // Lo imprimimos System.out.println("Vector original"); for (i=0; i<talla; i++){ System.out.print (v1[i]+ " "); } System.out.println(); System.out.println("¿Cuántas posiciones desea desplazar?"); int npos = scan.nextInt(); // Llamamos a desplaza for (i=1; i<=npos; i++){ desplaza(v1); } // Volvemos a imprimir System.out.println("Vector desplazado"); for (i=0; i<talla; i++){ System.out.print (v1[i]+ " "); } System.out.println(); } /* * Método que crea un vector de números aleatorios * de un tamaño dado */ public static int[] creaVectorAleatorio(int size){ int vector[] = new int[size]; for (int i = 0; i<size; i++){ vector[i] = (int)(Math.random() * 100); } return vector; } /* * Método que desplaza los elementos de un vector * una posición a la derecha */ public static void desplaza(int vector[]){ int size = vector.length; int aux = vector[size-1]; for (int i=size-1; i>=1; i--){ vector[i] = vector[i-1]; } vector[0] = aux; } } |
Suma de matrices. Crea un programa que lleve a cabo la suma de matrices de dos dimensiones dadas por el usuario, de modo que la primera sea generada de forma aleatoria por el programa con números positivos de entre 0 y 99. La segunda será introducida número a número por el usuario. El programa mostrará las dos matrices, realizará la suma y mostrará la solución. Desarrolla un método para imprimir una matriz, otro para generar la matriz aleatoria, otro para leer la matriz de teclado y otro que realice la suma.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
import java.util.Scanner; class SumaMatrices{ public static void main(String[] args){ int matriz1[][], matriz2[][], matrizsuma[][]; int filas, columnas; Scanner scan = new Scanner(System.in); System.out.println("Introduzca el numero de filas y columnas"); filas = scan.nextInt(); columnas = scan.nextInt(); matriz1=aleatoria(filas, columnas); imprimeMatriz(matriz1); matriz2=leida(filas, columnas); matrizsuma=sumaMatrices(matriz1, matriz2); imprimeMatriz(matrizsuma); } public static int[][]aleatoria(int filas, int columnas){ int matriz[][] = new int[filas][columnas]; for (int i=0; i<filas; i++){ for (int j=0; j<columnas; j++){ matriz[i][j]=(int)(Math.random()*100); } } return matriz; } public static int[][]leida(int filas, int columnas){ Scanner scan = new Scanner(System.in); System.out.println("Introduce elementos para la matriz"); int matriz[][] = new int[filas][columnas]; for (int i=0; i<filas; i++){ System.out.println("Fila " + i); for (int j=0; j<columnas; j++){ matriz[i][j]=scan.nextInt(); } } return matriz; } public static void imprimeMatriz(int matriz[][]){ int filas = matriz.length; int columnas = matriz[0].length; for (int i=0; i<filas; i++){ for (int j=0; j<columnas; j++){ System.out.print(matriz[i][j] + " "); } System.out.println(); } } public static int[][] sumaMatrices(int m1[][], int m2[][]){ int filas = m1.length; int columnas = m1[0].length; int suma[][] = new int[filas][columnas]; for (int i=0; i<filas; i++){ for (int j=0; j<columnas; j++){ suma[i][j] = m1[i][j] + m2[i][j]; } } return suma; } } |
Deja un comentario