Ejercicios de Programación Java: Métodos, Arrays y Lógica Condicional
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 9,46 KB
Ejercicios de Programación Java con Métodos
A continuación, se presentan tres ejercicios de programación en Java, cada uno enfocado en el uso de métodos, estructuras de control y manejo de entrada/salida. Se han corregido errores ortográficos, gramaticales y de sintaxis en el código, además de mejorar la legibilidad y añadir comentarios explicativos.
Ejercicio 1: Arreglo Bidimensional y Conteo de Impares
Descripción del Problema:
Escriba un programa que solicite dos números por teclado, entre 1 y 10. Estos números representarán el número de filas y columnas, respectivamente, para crear un arreglo bidimensional (matriz). El arreglo bidimensional debe contener números aleatorios entre 100 y 500.
El programa debe llamar a un método, enviando como parámetro el arreglo bidimensional. Este método calculará la cantidad de números impares presentes en el arreglo y retornará este valor. Finalmente, el resultado debe ser visualizado en el bloque main().
Código Java:
import java.io.*;
public class ArregloBi1 {
public static void main(String[] args) throws Exception {
BufferedReader dato = new BufferedReader(new InputStreamReader(System.in));
int a, b, f, c, x;
// Solicitar y validar el número de filas (entre 1 y 10)
do {
System.out.print("Ingrese número de filas (entre 1 y 10): ");
a = Integer.parseInt(dato.readLine());
} while (a < 1 || a > 10);
// Solicitar y validar el número de columnas (entre 1 y 10)
do {
System.out.print("Ingrese número de columnas (entre 1 y 10): ");
b = Integer.parseInt(dato.readLine());
} while (b < 1 || b > 10);
// Crea un arreglo bidimensional con 'a' filas y 'b' columnas.
int[][] tabla = new int[a][b];
System.out.print("\nArreglo bidimensional de " + a + " filas y " + b + " columnas:");
// Ciclo que itera sobre las filas para llenar el arreglo con números aleatorios
for (f = 0; f < a; f++) {
System.out.print("\n");
// Ciclo que itera sobre las columnas
for (c = 0; c < b; c++) {
tabla[f][c] = (int) (Math.random() * 401) + 100; // Números aleatorios entre 100 y 500
System.out.print("\t" + tabla[f][c]);
}
}
// Llama al método 'metodo1' y envía como parámetro el arreglo bidimensional
x = metodo1(tabla, a, b);
System.out.print("\nLa cantidad de números impares en el arreglo bidimensional es: " + x);
} // Cierre del main
// Método para calcular la cantidad de números impares en un arreglo bidimensional
public static int metodo1(int[][] tabla, int a, int b) {
int f, c, cont = 0;
for (f = 0; f < a; f++) { // Ciclo que itera sobre las filas
for (c = 0; c < b; c++) { // Ciclo que itera sobre las columnas
if (tabla[f][c] % 2 != 0) { // Si el número es impar
cont++;
}
}
}
return cont;
} // Cierre del metodo1
} // Cierre de la clase
Ejercicio 2: Operaciones con Números (Cubo y Factorial)
Descripción del Problema:
Escriba una implementación Java que utilice métodos para procesar un número ingresado por teclado. El número debe encontrarse en el intervalo [-66, 166] y su ingreso debe ser validado.
- Si el número ingresado es impar negativo, llame a un método
impar_negativo()y envíe como parámetro el número. Este método debe calcular el cubo del parámetro recibido y retornar el resultado. El dato retornado debe ser visualizado en el bloquemain(). - Si el número ingresado es positivo par, llame a un método
par_positivo()y envíe como parámetro el número. Este método debe calcular el factorial del parámetro menos 1 (num - 1) y retornar el resultado. El dato retornado debe ser visualizado en el bloquemain().
Código Java:
import java.io.*;
public class Ejercicio2 {
public static void main(String[] args) throws IOException {
BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));
int num;
double p;
// Solicitar y validar el número (entre -66 y 166)
do {
System.out.print("\nIngrese un número entre -66 y 166: ");
num = Integer.parseInt(entrada.readLine());
} while (num < -66 || num > 166);
// Si el número es impar negativo
if (num % 2 != 0 && num < 0) {
p = impar_negativo(num);
System.out.print("\nEl cubo del número impar negativo es: " + p);
}
// Si el número es positivo par
if (num % 2 == 0 && num > 0) {
p = par_positivo(num);
System.out.print("\nEl factorial de (número - 1) para el número par positivo es: " + p);
}
}
// Método para calcular el cubo de un número
public static double impar_negativo(int num) {
double k;
k = Math.pow(num, 3);
return k;
}
// Método para calcular el factorial de (num - 1)
public static double par_positivo(int num) {
int i;
double fact = 1; // Usar double para el factorial para evitar desbordamiento con números grandes
// Calcular factorial de (num - 1)
for (i = 1; i <= (num - 1); i++) {
fact = i * fact;
}
return fact;
}
}
Ejercicio 3: Pares en Intervalo y Promedio
Descripción del Problema:
Escriba una implementación Java que utilice métodos. Se solicitarán por teclado dos números, a y b, que deben estar entre 100 y 1500. El ingreso de ambos números debe ser validado.
- Si
aes menor queb, llame a un método y envíe como parámetro las variablesayb. Este método debe imprimir los números pares que se encuentran entreayb(inclusive). Si no hay números pares en el intervalo, el método debe retornar 0. En el bloquemain(), a través de un mensaje, indique el significado del dato retornado (es decir, la cantidad de pares encontrados). - Si
aes mayor queb, llame a otro método y envíe los númerosayb. Este método debe calcular el promedio entre todos los números del intervalo (desdebhastaa, inclusive) y retornar el resultado. En el bloquemain(), a través de un mensaje, indique el significado del dato retornado.
Código Java:
import java.io.*;
public class Ejercicio3 {
public static void main(String[] args) throws IOException {
BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));
int a, b, resultado;
// Solicitar y validar el primer número 'a' (entre 100 y 1500)
do {
System.out.print("\nIngrese el primer número (entre 100 y 1500): ");
a = Integer.parseInt(entrada.readLine());
} while (a < 100 || a > 1500);
// Solicitar y validar el segundo número 'b' (entre 100 y 1500)
do {
System.out.print("Ingrese el segundo número (entre 100 y 1500): ");
b = Integer.parseInt(entrada.readLine());
} while (b < 100 || b > 1500);
// Condición: 'a' es menor que 'b'
if (a < b) {
resultado = pares(a, b);
if (resultado == 0) {
System.out.print("\nNo se encontraron números pares en el intervalo entre " + a + " y " + b + ".");
} else {
System.out.print("\nSe encontraron " + resultado + " números pares en el intervalo entre " + a + " y " + b + ".");
}
}
// Condición: 'a' es mayor que 'b'
if (a > b) {
resultado = promedio(a, b);
System.out.print("\nEl promedio de los números en el intervalo entre " + b + " y " + a + " es: " + resultado);
}
// Nota: Si a == b, ninguna de las condiciones se cumple y el programa termina sin realizar operaciones.
}
// Método para imprimir y contar números pares en un intervalo
public static int pares(int a, int b) {
int i, cont = 0;
System.out.print("\nNúmeros pares entre " + a + " y " + b + ": ");
for (i = a; i <= b; i++) {
if (i % 2 == 0) {
System.out.print(i + " ");
cont++;
}
}
if (cont == 0) {
return 0; // No hay pares
} else {
return cont; // Retorna la cantidad de pares encontrados
}
}
// Método para calcular el promedio de números en un intervalo
public static int promedio(int a, int b) {
int i, cont = 0, suma = 0;
// El bucle debe ir desde el menor número (b) hasta el mayor (a)
for (i = b; i <= a; i++) {
suma = suma + i;
cont++;
}
if (cont == 0) { // Evitar división por cero si el intervalo es inválido (aunque las condiciones lo previenen)
return 0;
}
int promedio = (suma / cont);
return promedio;
}
}