Programación Java: Ejercicios Resueltos
Ejercicios Básicos iniciales para principiantes
Java - Ejercicios básicos resueltos es una recopilación de ejercicios sobre los conceptos básicos del lenguaje java: Declaración de variables, literales, tipos de datos, operadores, crear expresiones algebraicas correctas, etc.
El libro es una ampliación de los ejercicios que aparecen en este blog.
El contenido del libro es una recopilación de ejercicios realizados en mis clases de Programación en Java en los ciclos formativos de grado superior Desarrollo de aplicaciones web y Desarrollo de aplicaciones multiplataforma.
En el libro podrás encontrar ejercicios resueltos sobre:
- Declaración de variables
- Identificadores válidos o no válidos
- Literales numéricos, indicando si son válidos o no válidos. Si son válidos determinar su tipo y sistema de numeración empleado
- Literales de tipo carácter válidos y no válidos
- Literales de tipo String válidos y no válidos
- Operadores aritméticos con variables de tipo int
- Operadores aritméticos con variables de tipo double
- Operadores aritméticos con variables de tipo char
- Operadores de tipo lógico
- Operadores incremento ++ y decremento --
- Operador condicional ? :
- Operadores de asignación simples y compuestos
- Convertir expresiones algebraicas en expresiones algorítmicas
- Convertir expresiones algorítmicas en expresiones algebraicas
- Determinar el tipo del resultado de una operación aritmética
- Escribir expresiones algorítmicas
- Escribir expresiones algorítmicas de asignación
Las soluciones de los ejercicios incluyen una explicación detallada sobre cómo se ha resuelto.
13. Ejercicios para practicar la salida de datos por pantalla: System.out.print y System.out.println - I
14. Ejercicios para practicar la salida de datos por pantalla: System.out.print y System.out.println - II
15. Ejercicios con el operador condicional ( ? : ) - I
16. Ejercicios con el operador condicional ( ? : ) - II
17. Ejercicios sobre expresiones algorítmicas
15. Ejercicios con el operador condicional ( ? : ) - I
16. Ejercicios con el operador condicional ( ? : ) - II
17. Ejercicios sobre expresiones algorítmicas
Ejercicios Básicos con Estructura Secuencial
7. Programa lea la longitud de los catetos de un triángulo rectángulo y calcule la longitud de la hipotenusa según el teorema de Pitágoras.
8. Programa que calcula el volumen de una esfera.
9. Programa que calcula el área de un triángulo a partir de la longitud de sus lados.
10. Programa que lee un número de 3 cifras y muestra sus cifras por separado.
11. Programa que lea un número entero N de 5 cifras y muestre sus cifras desde el principio como en el ejemplo.
12. Programa que lea un número entero N de 5 cifras y muestre sus cifras desde el final igual que en el ejemplo.
13. Programa que calcula el número de la suerte de una persona a partir de su fecha de nacimiento.
8. Programa que calcula el volumen de una esfera.
9. Programa que calcula el área de un triángulo a partir de la longitud de sus lados.
10. Programa que lee un número de 3 cifras y muestra sus cifras por separado.
11. Programa que lea un número entero N de 5 cifras y muestre sus cifras desde el principio como en el ejemplo.
12. Programa que lea un número entero N de 5 cifras y muestre sus cifras desde el final igual que en el ejemplo.
13. Programa que calcula el número de la suerte de una persona a partir de su fecha de nacimiento.
Ejercicios Básicos con Estructura Condicional
10. Programa que lea dos caracteres por teclado y compruebe si son iguales.
11. Programa que lea dos caracteres y compruebe si son dos letras minúsculas.
12. Programa que lea un carácter y compruebe si es un número (Carácter entre '0' y '9').
11. Programa que lea dos caracteres y compruebe si son dos letras minúsculas.
12. Programa que lea un carácter y compruebe si es un número (Carácter entre '0' y '9').
14. Programa para comprobar si un número de tres cifras es capicúa.
15. Programa que lea dos números por teclado y muestre el resultado de la división del primero por el segundo. Se debe comprobar que el divisor no puede ser cero.
15. Programa que lea dos números por teclado y muestre el resultado de la división del primero por el segundo. Se debe comprobar que el divisor no puede ser cero.
17. Calcular el mayor de tres números enteros en Java.
18. Programa que lea tres números enteros H, M, S que contienen hora, minutos y segundos respectivamente, y comprueba si la hora que indican es una hora válida.
19. Programa que lea una variable entera mes y compruebe si el valor corresponde a un mes de 30, 31 o 28 días. Se mostrará además el nombre del mes. Se debe comprobar que el valor introducido esté comprendido entre 1 y 12.
18. Programa que lea tres números enteros H, M, S que contienen hora, minutos y segundos respectivamente, y comprueba si la hora que indican es una hora válida.
19. Programa que lea una variable entera mes y compruebe si el valor corresponde a un mes de 30, 31 o 28 días. Se mostrará además el nombre del mes. Se debe comprobar que el valor introducido esté comprendido entre 1 y 12.
Ejercicios Básicos con Estructura Iterativa o Repetitiva
Ejercicios Generales
5. Leer números y contar cuántos acaban en 2.
6. Comprobar si un número es perfecto.
7. Comprobar si dos números son amigos.
8. Mostrar los N primeros términos de la serie de Fibonacci
9. Pasar de decimal a binario
10. Pasar de binario a decimal
11. Convertir a Números Romanos
12. Cifrado Cesar para codificar y decodificar un texto
13. Comprobar si un número entero es capicúa
14. Calcular la nota media, nota mayor y nota menor de una serie de alumnos.
6. Comprobar si un número es perfecto.
7. Comprobar si dos números son amigos.
8. Mostrar los N primeros términos de la serie de Fibonacci
9. Pasar de decimal a binario
10. Pasar de binario a decimal
11. Convertir a Números Romanos
12. Cifrado Cesar para codificar y decodificar un texto
13. Comprobar si un número entero es capicúa
14. Calcular la nota media, nota mayor y nota menor de una serie de alumnos.
Ejercicios de bucles anidados
1. Mostrar los números perfectos entre 1 y 1000.
2. Leer un número N y calcular el factorial de los números desde 0 hasta N.
3. Leer un número N y calcular la suma de los factoriales de los números desde 0 hasta N.
4. Programa que muestre en lineas separadas lo siguiente: ZYWXVUTSRQPONMLKJIHGFEDCBA, YWXVUTSRQPONMLKJIHGFEDCBA, WXVUTSRQPONMLKJIHGFEDCBA, ...., DCBA, CBA, BA, A.
5. Mostrar un contador de 5 dígitos. En lugar del dígito 3 se debe mostrar E
6. Mostrar los números primos desde 2 hasta N
Ejercicios para realizar trazas de código
Ejercicios con Arrays
Ejercicios con ArrayList
Ejercicios sobre cadenas de caracteres
Ejercicios sobre Recursividad
Ejercicios sobre ficheros y directorios. Clase File
Ejercicios sobre ficheros de texto



Excelente blog,a programar en Java.
ResponderEliminarayuda.............un numero pentagonal esta definido como n(3n-1)/2 para n=1,2,3... y los primeros numeros pentagonales son 1,5,12,22,... escribe un programa que muestre los primeros numeros pentagonales con el siguiente encabezado public static int getNumPentagonal(int n)
ResponderEliminarClaro este ejercicio es de funciones + ciclos + fórmula matemática.
EliminarIDEA
Un número pentagonal se calcula con:
P(n)=
2
n(3n−1)
Ejemplo:
n = 1 → 1
n = 2 → 5
n = 3 → 12
n = 4 → 22
LO QUE TE PIDEN
Crear método:
public static int getNumPentagonal(int n)
Mostrar los primeros números pentagonales
CÓDIGO EN JAVA
import java.util.Scanner;
public class NumerosPentagonales {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Cuantos numeros pentagonales desea ver?: ");
int cantidad = sc.nextInt();
System.out.println("\nNumeros pentagonales:");
for (int i = 1; i <= cantidad; i++) {
System.out.print(getNumPentagonal(i) + " ");
}
sc.close();
}
// METODO PEDIDO
public static int getNumPentagonal(int n) {
return (n * (3 * n - 1)) / 2;
}
}
EXPLICACIÓN SIMPLE
✔ getNumPentagonal(n) aplica la fórmula
✔ for imprime desde 1 hasta n
✔ cada iteración genera un número pentagonal
EJEMPLO
Entrada:
5
Salida:
Numeros pentagonales:
1 5 12 22 35
Hola, he programado en Java y la verdad es un lenguaje súper padre, principalmente porque es prácticamente la base de todo, sabiendo ya programar en Java, es muchísimo muy fácil que alguien o alguna empresa te contrate diciendo que programas en Java.
ResponderEliminarObviamente, tienes que programar en muchos otros lenguajes para que sea facilísimo conseguir trabajo, pero una vez aprendiendo Java, programar se te hará la cosa más sencilla. Para ti que estas leyendo esto, te deseo suerte y espero que sigas siendo un excelente programador o desarrollador.
gracias, estoy justamente en eso
Eliminar¡Mil gracias!
ResponderEliminarMe están viniendo genial estos ejercicios, estoy aprendiendo mucho más rápido y de forma más sólida desde que uso tu blog para complementar los apuntes. En serio, gran trabajo compañero :)
Una buena paguina sobre que da los ejemplos explica de unas buenas bases de programacion en Java para fundamentar las raizes que se tiene ya con Java felizidades sigue asi
ResponderEliminarHola un favor me pueden ayudar con un ejercicio
ResponderEliminar2. Elabore un programa en JAVA, que permita sumar los n primeros términos de la siguiente serie
S = 51 + 71 – 112 – 133 + 175 + 198 – 2313 – 2921 + 3134 + 3355 – ...
Sí este tipo de ejercicio suele ser de serie con patrón de términos + suma de n elementos.
EliminarPero primero hay algo importante: la serie que te dieron es un poco “rara” escrita así:
S = 51 + 71 – 112 – 133 + 175 + 198 – 2313 – 2921 + 3134 + 3355 – ...
- Lo más probable (por ejercicios de este tipo) es que represente dos números unidos, por ejemplo:
5/1 → 5/1? o 5¹?
7/1 → 7¹?
11², 13³, etc.
Pero en programación normalmente se interpreta como números enteros dados en un arreglo de la serie y solo se suman con signo alternado.
INTERPRETACIÓN MÁS USADA EN EXÁMENES
Se toma la serie como una lista de términos:
51, 71, -112, -133, 175, 198, -2313, -2921, 3134, 3355, ...
Y se pide:
-> sumar los n primeros términos
CÓDIGO EN JAVA
import java.util.Scanner;
public class SerieSuma {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// Serie base (puedes ampliarla si el profe quiere más n)
int[] serie = {
51, 71, -112, -133, 175, 198, -2313, -2921, 3134, 3355
};
System.out.print("Ingrese n (max 10): ");
int n = sc.nextInt();
int suma = 0;
if (n > serie.length) {
System.out.println("Error: n excede el tamaño de la serie.");
} else {
for (int i = 0; i < n; i++) {
suma += serie[i];
}
System.out.println("\nSuma de los " + n + " primeros terminos: " + suma);
}
sc.close();
}
}
EXPLICACIÓN SIMPLE
✔ La serie se guarda en un arreglo
✔ El usuario elige cuántos términos sumar (n)
✔ Se suman solo los primeros n valores
EJEMPLO
Entrada:
n = 5
Cálculo:
51 + 71 - 112 - 133 + 175 = 52
Salida:
Suma de los 5 primeros terminos: 52
IMPORTANTE
Si tu profesor quiere que la serie se genere con fórmula, necesito que me confirmes cómo se forma exactamente (porque el enunciado está ambiguo).
Hacer un programa para ingresar el nombre de un archivo de Texto y luego un carácter y muestre todas las posiciones dentro del archivo en las que se encuentra.
ResponderEliminarClaro este ejercicio es de manejo de archivos + búsqueda de caracteres en Java.
EliminarIDEA
Pedir el nombre del archivo (ej: texto.txt)
Leer el archivo carácter por carácter
Pedir un carácter a buscar
Mostrar todas las posiciones donde aparece
IMPORTANTE
Usamos FileReader
Contamos posiciones desde 0
Hay que manejar excepción IOException
CÓDIGO EN JAVA
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class BuscarCaracterArchivo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese el nombre del archivo: ");
String nombreArchivo = sc.nextLine();
System.out.print("Ingrese el caracter a buscar: ");
char buscar = sc.next().charAt(0);
try {
FileReader fr = new FileReader(nombreArchivo);
int c;
int posicion = 0;
boolean encontrado = false;
System.out.println("\nPosiciones donde aparece '" + buscar + "':");
while ((c = fr.read()) != -1) {
if ((char) c == buscar) {
System.out.println("Posicion: " + posicion);
encontrado = true;
}
posicion++;
}
if (!encontrado) {
System.out.println("El caracter no se encontro en el archivo.");
}
fr.close();
} catch (IOException e) {
System.out.println("Error al leer el archivo: " + e.getMessage());
}
sc.close();
}
}
EXPLICACIÓN SIMPLE
✔ FileReader → lee el archivo carácter por carácter
✔ posicion++ → cuenta cada carácter leído
✔ si coincide → se imprime la posición
✔ -1 → fin del archivo
EJEMPLO
Archivo (texto.txt)
hola mundo
Entrada:
Caracter: o
Salida:
Posiciones donde aparece 'o':
1
8
ayudenmee profa
ResponderEliminarSe tiene un circuito en serie:, se requiere saber la potencia de dicho circuito.
Para ello se ingresa el voltaje y las resistencias
Para obtener el valor total de las resistencias debe de generarse la función
hallartotalresistencia(cantidad) donde se pasará un parámetro entero, de
acuerdo a la cantidad debe de ir sumando el valor de las resistencias.
Luego obtener la corriente para poder hallar la potencia.
Recordando P=VxI I=V/R
import java.util.Scanner;
Eliminarpublic class Circuito{
public static void main(String[] args) {
double corriente=0;
double potencia=0;
Scanner sc = new Scanner(System.in);
System.out.println("Introduce la cantidad de resistencias");
double resistencias=sc.nextDouble();
System.out.println("Introduce el voltaje");
double voltaje=sc.nextDouble();
/*Declaramos una variable para sumar la cantidad de resistencias,
* si lo declaramos dentro del bucle, no podriamos
* acceder fuera del bucle a la suma de las las resistencias.
* Esto es por el ambito.
*/
double sumaResistencia=0;
for (double i=0;i<resistencias;i++){
System.out.println("Introduce el valor de la resitencia "+(i+1));
double resistencia=sc.nextDouble();
sumaResistencia=sumaResistencia+resistencia;
}
corriente=voltaje/sumaResistencia;
potencia = voltaje*corriente;
System.out.println("el valor de la la corriente es "+ corriente +" Ampers");
System.out.println("el valor de la la potencia es "+ potencia+" Watts");
}
}
Sí este es un ejercicio típico de circuitos en serie + funciones en Java.
EliminarIDEA DEL PROBLEMA
En serie:
Las resistencias se suman
Luego usamos:
I=
R
total
V
P=V×I
PASOS
Leer voltaje
Leer cuántas resistencias hay
Sumar resistencias en una función
Calcular corriente
Calcular potencia
CÓDIGO EN JAVA
import java.util.Scanner;
public class CircuitoSerie {
static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
System.out.print("Ingrese el voltaje: ");
double voltaje = sc.nextDouble();
System.out.print("Cantidad de resistencias: ");
int n = sc.nextInt();
double rTotal = hallarTotalResistencia(n);
double corriente = voltaje / rTotal;
double potencia = voltaje * corriente;
System.out.println("\n--- RESULTADOS ---");
System.out.println("Resistencia total: " + rTotal);
System.out.println("Corriente: " + corriente);
System.out.println("Potencia: " + potencia);
}
// FUNCION PARA SUMAR RESISTENCIAS
public static double hallarTotalResistencia(int cantidad) {
double suma = 0;
for (int i = 1; i <= cantidad; i++) {
System.out.print("Ingrese resistencia " + i + ": ");
double r = sc.nextDouble();
suma += r;
}
return suma;
}
}
EXPLICACIÓN SIMPLE
✔ En serie: resistencias se suman
✔ hallarTotalResistencia() recibe cuántas resistencias hay
✔ Luego se leen y se suman
✔ Se calcula:
I = V / R
P = V × I
EJEMPLO
Entrada:
Voltaje = 12
Resistencias = 3
R1 = 2
R2 = 3
R3 = 1
Cálculo:
Rtotal = 6
I = 12 / 6 = 2
P = 12 * 2 = 24
Salida:
Resistencia total: 6.0
Corriente: 2.0
Potencia: 24.0
Buenas noches por favor alguien me podria colaborar con el siguiente ejercicio Ana va a la universidad cada A días, Bernardo cada B días, y Carlos cada C días. Si todos van a la universidad hoy, ¿dentro de cuántos días irán nuevamente los tres?
ResponderEliminarEste ejercicio se resuelve encontrando el Mínimo Común Múltiplo (MCM) de A, B y C.
EliminarIDEA
Si:
Ana va cada A días
Bernardo cada B días
Carlos cada C días
Entonces volverán a coincidir en la universidad en:
MCM(A, B, C)
CÓDIGO EN JAVA
import java.util.Scanner;
public class ReunionUniversidad {
// Metodo para calcular MCD (Euclides)
public static int mcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
// Metodo para calcular MCM de dos numeros
public static int mcm(int a, int b) {
return (a * b) / mcd(a, b);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese dias de Ana (A): ");
int A = sc.nextInt();
System.out.print("Ingrese dias de Bernardo (B): ");
int B = sc.nextInt();
System.out.print("Ingrese dias de Carlos (C): ");
int C = sc.nextInt();
int mcmAB = mcm(A, B);
int resultado = mcm(mcmAB, C);
System.out.println("\nSe volveran a encontrar en " + resultado + " dias.");
sc.close();
}
}
EXPLICACIÓN SIMPLE
✔ Primero calculamos MCM de A y B
✔ Luego ese resultado con C
✔ El MCM indica cada cuánto coinciden todos
EJEMPLO
Entrada:
A = 2
B = 3
C = 4
Salida:
Se volveran a encontrar en 12 dias.
Voltear un cuadrado de letras hacia la izquierda o derecha hasta pulsar salir.
ResponderEliminarEjemplo de ejecución:
A B
C D
Elije una opción(d-derecha, i-izquierda, s-salir):d
C A
D B
Elije una opción(d-derecha, i-izquierda, s-salir):s
El cuadrado imaginario formado por las letras gira en sentido de las agujas del reloj o el contrario según lo que se elija.
Este ejercicio consiste en una matriz 2x2 de letras que se “rota”:
Eliminarderecha → rotación en sentido horario
izquierda → rotación antihoraria
salir → termina
IDEA
Matriz inicial:
A B
C D
Representación:
[ A B ]
[ C D ]
Rotaciones
Derecha (horario)
C A
D B
Izquierda (antihorario)
B D
A C
CÓDIGO EN JAVA
import java.util.Scanner;
public class CuadradoLetras {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char[][] m = {
{'A', 'B'},
{'C', 'D'}
};
char op;
do {
// Mostrar matriz
System.out.println("\nMatriz actual:");
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
System.out.print(m[i][j] + " ");
}
System.out.println();
}
System.out.print("\nElije una opcion (d-derecha, i-izquierda, s-salir): ");
op = sc.next().charAt(0);
char[][] temp = new char[2][2];
if (op == 'd') {
// ROTACION DERECHA (HORARIA)
temp[0][0] = m[1][0];
temp[0][1] = m[0][0];
temp[1][0] = m[1][1];
temp[1][1] = m[0][1];
m = temp;
}
else if (op == 'i') {
// ROTACION IZQUIERDA (ANTIHORARIA)
temp[0][0] = m[0][1];
temp[0][1] = m[1][1];
temp[1][0] = m[0][0];
temp[1][1] = m[1][0];
m = temp;
}
} while (op != 's');
System.out.println("Programa finalizado.");
sc.close();
}
}
EXPLICACIÓN SIMPLE
✔ La matriz siempre es 2x2
✔ Se crea una temp para no perder datos
✔ Se reasignan posiciones según rotación
✔ do-while permite repetir hasta salir
EJEMPLO
Inicio:
A B
C D
Opción: d
C A
D B
Opción: i
A B
C D
Urgente!! Crea un programa que pida un número por teclado y muestre un mensaje diciendo si el número es o no primo. Como pista, debes comprobar que el número no es divisible entre ningún número entre 2 y el número-1. Se hace con eclipse
ResponderEliminarSí este es un ejercicio clásico de números primos.
EliminarIDEA
Un número es primo si:
Es mayor que 1
Solo es divisible entre 1 y él mismo
Entonces comprobamos si tiene divisores entre 2 y n-1.
CÓDIGO EN JAVA (Eclipse)
import java.util.Scanner;
public class NumeroPrimo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese un numero: ");
int num = sc.nextInt();
boolean esPrimo = true;
if (num <= 1) {
esPrimo = false;
} else {
for (int i = 2; i < num; i++) {
if (num % i == 0) {
esPrimo = false;
break;
}
}
}
if (esPrimo) {
System.out.println("El numero es primo.");
} else {
System.out.println("El numero NO es primo.");
}
sc.close();
}
}
EXPLICACIÓN SIMPLE
✔ for (i = 2; i < num) → prueba divisores
✔ num % i == 0 → si divide exacto, NO es primo
✔ break → detiene el ciclo si ya no es primo
EJEMPLOS
Entrada:
7
Salida:
El numero es primo.
Entrada:
10
Salida:
El numero NO es primo.
MEJORA (IMPORTANTE)
Versión más eficiente (opcional para nota alta):
for (int i = 2; i <= Math.sqrt(num); i++)
Buenísimo. Estoy haciendo un curso de programación y esto es exactamente lo que me hacía falta para completarlo.
ResponderEliminarMuchas gracias
hola como es este ejrcio
ResponderEliminarDados 3 números enteros de 0 a 100, se pide indicar:
1) si hay dos iguales
2) si los 3 números son mayores a 50
3) si alguno de los números es menor a 10
el codigo
Sí este ejercicio es de condiciones con if (muy típico de examen).
EliminarIDEA
Se leen 3 números y se evalúan 3 casos:
1) Dos números iguales
a == b OR a == c OR b == c
2) Los 3 son > 50
a > 50 && b > 50 && c > 50
3) Alguno es < 10
a < 10 || b < 10 || c < 10
CÓDIGO EN JAVA
import java.util.Scanner;
public class TresNumeros {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese el primer numero: ");
int a = sc.nextInt();
System.out.print("Ingrese el segundo numero: ");
int b = sc.nextInt();
System.out.print("Ingrese el tercer numero: ");
int c = sc.nextInt();
System.out.println("\n--- RESULTADOS ---");
// 1. Dos iguales
if (a == b || a == c || b == c) {
System.out.println("Hay al menos dos numeros iguales.");
} else {
System.out.println("No hay numeros iguales.");
}
// 2. Todos mayores a 50
if (a > 50 && b > 50 && c > 50) {
System.out.println("Los tres numeros son mayores a 50.");
} else {
System.out.println("No todos son mayores a 50.");
}
// 3. Alguno menor a 10
if (a < 10 || b < 10 || c < 10) {
System.out.println("Al menos un numero es menor a 10.");
} else {
System.out.println("Ningun numero es menor a 10.");
}
sc.close();
}
}
🧠 EXPLICACIÓN SIMPLE
✔ || = O (cualquiera cumple)
✔ && = Y (todos cumplen)
✔ == = igualdad
EJEMPLO
Entrada:
60 60 8
Salida:
Hay al menos dos numeros iguales.
No todos son mayores a 50.
Al menos un numero es menor a 10.
Me pueden ayudar con este problema por favor , no me sale.
ResponderEliminarPedir 10 números al usuario e imprimirlos en forma ascendente. (utilizar un arreglo para el ingreso de los datos).
No se acostumbre a que le resuelvan los problemas, que le ayuden con las dudas, pero no que le hagan la tarea o no prendera.
EliminarSu problema es muy sencillo, solo declare el array y rellénelo con un for y con un JOptionPane pide los números, los ordena con un Array.sort y los imprime con un for each.
Yo te ayudo, este es un ejercicio básico de arreglos + ordenamiento ascendente.
EliminarLa idea es:
Guardar 10 números en un arreglo
Ordenarlos de menor a mayor
Imprimirlos
CÓDIGO EN JAVA
import java.util.Scanner;
import java.util.Arrays;
public class OrdenAscendente {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] numeros = new int[10];
// INGRESO DE DATOS
for (int i = 0; i < 10; i++) {
System.out.print("Ingrese numero " + (i + 1) + ": ");
numeros[i] = sc.nextInt();
}
// ORDENAR
Arrays.sort(numeros);
// IMPRIMIR
System.out.println("\nNumeros en orden ascendente:");
for (int i = 0; i < 10; i++) {
System.out.print(numeros[i] + " ");
}
sc.close();
}
}
EXPLICACIÓN SIMPLE
✔ int[] numeros = new int[10] → arreglo de 10
✔ for → ingresar datos
✔ Arrays.sort() → ordena de menor a mayor
✔ otro for → imprimir
EJEMPLO
Entrada:
8 3 10 1 7 6 2 9 4 5
Salida:
1 2 3 4 5 6 7 8 9 10
Holaaa todos. Podrian ayudar me con este ejercicio, gracias. capturar n numeros aleatorios del 1 al 100 en un arreglo sin repetir, luego
ResponderEliminarordenarlos con el metodo shell y mostrar los numeros generados
Claro este ejercicio tiene 3 partes importantes:
EliminarGenerar n números aleatorios (1–100) sin repetir
Ordenarlos con Shell Sort
Mostrar el arreglo
IDEA DEL PROBLEMA
Usamos un arreglo int[]
Para evitar repetidos: verificamos antes de guardar
Luego aplicamos Shell Sort
Finalmente imprimimos
CÓDIGO EN JAVA
import java.util.Random;
import java.util.Scanner;
public class ShellSinRepetir {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random rand = new Random();
System.out.print("Ingrese N: ");
int n = sc.nextInt();
int[] arr = new int[n];
// GENERAR SIN REPETIR
for (int i = 0; i < n; i++) {
int num;
boolean repetido;
do {
num = rand.nextInt(100) + 1; // 1 a 100
repetido = false;
for (int j = 0; j < i; j++) {
if (arr[j] == num) {
repetido = true;
break;
}
}
} while (repetido);
arr[i] = num;
}
// SHELL SORT
int salto = n / 2;
while (salto > 0) {
for (int i = salto; i < n; i++) {
int temp = arr[i];
int j = i;
while (j >= salto && arr[j - salto] > temp) {
arr[j] = arr[j - salto];
j -= salto;
}
arr[j] = temp;
}
salto = salto / 2;
}
// MOSTRAR RESULTADO
System.out.println("\nNumeros generados y ordenados:");
for (int i = 0; i < n; i++) {
System.out.print(arr[i] + " ");
}
sc.close();
}
}
EXPLICACIÓN SIMPLE
✔ Random → genera números 1–100
✔ ciclo interno → evita repetidos
✔ Shell Sort:
compara con saltos
va reduciendo el salto hasta 1
EJEMPLO
Entrada:
10
Salida:
Numeros generados y ordenados:
3 7 12 18 25 41 56 70 88 95
Realizar un programa en el cual el usuario deberá introducir la hora, minuto y segundo. Y deberá mostrar la hora un segundo después en el sig. Formato. 12:30:31
ResponderEliminarMe podrían ayudar porfa...
Sí este ejercicio consiste en sumar 1 segundo a una hora y ajustar correctamente minutos y horas cuando haya “desbordes”.
EliminarIDEA
Se ingresan:
hora
minuto
segundo
Luego:
sumar 1 segundo
Reglas:
Si segundos llegan a 60 → vuelven a 0 y suman 1 minuto
Si minutos llegan a 60 → vuelven a 0 y suman 1 hora
Si horas llegan a 24 → vuelven a 0
CÓDIGO EN JAVA
import java.util.Scanner;
public class SumarSegundo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese hora: ");
int hora = sc.nextInt();
System.out.print("Ingrese minutos: ");
int minuto = sc.nextInt();
System.out.print("Ingrese segundos: ");
int segundo = sc.nextInt();
// sumar un segundo
segundo++;
// ajuste de segundos
if (segundo == 60) {
segundo = 0;
minuto++;
}
// ajuste de minutos
if (minuto == 60) {
minuto = 0;
hora++;
}
// ajuste de horas
if (hora == 24) {
hora = 0;
}
// mostrar resultado en formato 00:00:00
System.out.printf("Hora actualizada: %02d:%02d:%02d\n", hora, minuto, segundo);
sc.close();
}
}
EXPLICACIÓN SIMPLE
✔ Se suma 1 segundo
✔ Si llega a 60 → reinicia y suma al siguiente nivel
✔ %02d → muestra con dos dígitos (ej: 09 en vez de 9)
EJEMPLOS
Entrada:
12 30 31
Salida:
12:30:32
Entrada:
23 59 59
Salida:
00:00:00
Una empresa tiene 15 tiendas y necesita crear un algoritmo que lea las ventas mensuales de los 15 tiendas con valores aletarios de 1000-5000. Calcule la media de ventas y obtenga un listado de los almacenes cuyas ventas mensuales son superiores a la media. Muestre la mayor y menor venta.
ResponderEliminarClaro este ejercicio es de arreglos + números aleatorios + cálculos estadísticos.
EliminarIDEA DEL PROBLEMA
15 tiendas
ventas aleatorias entre 1000 y 5000
calcular:
media (promedio)
mayor venta
menor venta
tiendas con ventas > media
CÓDIGO EN JAVA
import java.util.Random;
public class TiendasVentas {
public static void main(String[] args) {
int[] ventas = new int[15];
Random rand = new Random();
double suma = 0;
int mayor, menor;
// Generar ventas aleatorias
for (int i = 0; i < 15; i++) {
ventas[i] = rand.nextInt(4001) + 1000; // 1000 a 5000
suma += ventas[i];
}
// Inicializar mayor y menor
mayor = ventas[0];
menor = ventas[0];
for (int i = 0; i < 15; i++) {
if (ventas[i] > mayor) {
mayor = ventas[i];
}
if (ventas[i] < menor) {
menor = ventas[i];
}
}
double media = suma / 15;
// RESULTADOS
System.out.println("VENTAS DE LAS 15 TIENDAS:\n");
for (int i = 0; i < 15; i++) {
System.out.println("Tienda " + (i + 1) + ": " + ventas[i]);
}
System.out.println("\n--- ANALISIS ---");
System.out.println("Media de ventas: " + media);
System.out.println("Mayor venta: " + mayor);
System.out.println("Menor venta: " + menor);
System.out.println("\nTiendas con ventas superiores a la media:");
for (int i = 0; i < 15; i++) {
if (ventas[i] > media) {
System.out.println("Tienda " + (i + 1) + " -> " + ventas[i]);
}
}
}
}
EXPLICACIÓN SIMPLE
✔ Random genera ventas automáticas
✔ suma → para calcular media
✔ mayor / menor → se comparan en ciclo
✔ segundo recorrido → filtra ventas > media
EJEMPLO (SALIDA)
Tienda 1: 3200
Tienda 2: 4500
Tienda 3: 1800
...
Media: 3100
Mayor: 4900
Menor: 1200
Tiendas superiores a la media:
Tienda 2 -> 4500
Tienda 7 -> 3800
ayuda es para un ejercicio de java
ResponderEliminarCrear un programa en Java que pida al usuario que ingrese números con la condición de que el siguiente sea siempre mayor al anterior. Cuando el usuario haya ingresado un número que no cumpla la condición anterior o luego de haber ingresado 10 números, dejar de pedir números e imprimir cuántos múltiplos de 3 se ingresaron en total.
Claro este ejercicio usa un ciclo con condición de corte y validación de orden creciente.
EliminarIDEA DEL PROBLEMA
Se ingresan números uno por uno
Deben ser siempre mayores que el anterior
El ciclo se detiene si:
el número NO es mayor al anterior, o
se ingresan 10 números
Al final: contar cuántos son múltiplos de 3
CÓDIGO EN JAVA
import java.util.Scanner;
public class NumerosCrecientes {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int contadorMultiplos3 = 0;
int contadorNumeros = 0;
int anterior = 0;
int numero;
System.out.print("Ingrese un numero: ");
numero = sc.nextInt();
anterior = numero;
contadorNumeros++;
if (numero % 3 == 0) {
contadorMultiplos3++;
}
while (contadorNumeros < 10) {
System.out.print("Ingrese un numero mayor que " + anterior + ": ");
numero = sc.nextInt();
if (numero <= anterior) {
System.out.println("Numero no valido (no es mayor). Fin del programa.");
break;
}
contadorNumeros++;
if (numero % 3 == 0) {
contadorMultiplos3++;
}
anterior = numero;
}
System.out.println("\n--- RESULTADOS ---");
System.out.println("Numeros ingresados: " + contadorNumeros);
System.out.println("Multiplos de 3: " + contadorMultiplos3);
sc.close();
}
}
EXPLICACIÓN SIMPLE
✔ anterior guarda el último número
✔ cada nuevo número debe ser mayor
✔ si no lo es → se detiene el programa
✔ se cuentan múltiplos de 3 con % 3 == 0
✔ máximo 10 números
EJEMPLO
Entrada:
5
8
12
11 → (se detiene)
Salida:
Multiplos de 3: 1
Numeros ingresados: 3
Ingresá un número por teclado en el rango de 0
ResponderEliminara 99 y determiná si tiene uno o dos dígitos.
Claro este ejercicio es sencillo y usa condiciones if.
EliminarIDEA
Si el número está entre 0 y 9 → tiene 1 dígito
Si está entre 10 y 99 → tiene 2 dígitos
Si está fuera del rango → mensaje de error
CÓDIGO EN JAVA
import java.util.Scanner;
public class DigitosNumero {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese un numero entre 0 y 99: ");
int num = sc.nextInt();
if (num >= 0 && num <= 9) {
System.out.println("El numero tiene 1 digito.");
}
else if (num >= 10 && num <= 99) {
System.out.println("El numero tiene 2 digitos.");
}
else {
System.out.println("Error: numero fuera del rango permitido.");
}
sc.close();
}
}
EXPLICACIÓN SIMPLE
✔ 0 - 9 → 1 dígito
✔ 10 - 99 → 2 dígitos
✔ if / else if → decide el caso
EJEMPLOS
Entrada:
7
Salida:
El numero tiene 1 digito.
Entrada:
45
Salida:
El numero tiene 2 digitos.
Ayudaaa!!! me ayudan con este programa
ResponderEliminar1. Leer un número entre (1 y 9,999,999,999,999)
2. El programa debe indicar cuantos dígitos componen el número
3. El programa debe escribir el número leído
4. El programa debe escribir el número en forma inversa
Ejemplo: se lee 37914
Se indica que tiene 5 dígitos
y se escribe que el número leído es 37914 y en forma inversa 41973
Este ejercicio es de manejo de números grandes y dígitos. Lo más fácil es trabajarlo como String, porque el número puede ser muy grande (hasta billones), y long puede quedarse corto.
EliminarIDEA
Con String podemos:
Contar dígitos → length()
Mostrar número → tal cual
Invertirlo → recorrer al revés
CÓDIGO EN JAVA
import java.util.Scanner;
public class NumeroInverso {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese un numero (1 a 9,999,999,999,999): ");
String numero = sc.nextLine();
// 1. Cantidad de dígitos
int digitos = numero.length();
// 2. Invertir número
String inverso = "";
for (int i = numero.length() - 1; i >= 0; i--) {
inverso += numero.charAt(i);
}
// RESULTADOS
System.out.println("\n--- RESULTADOS ---");
System.out.println("Numero ingresado: " + numero);
System.out.println("Cantidad de digitos: " + digitos);
System.out.println("Numero invertido: " + inverso);
sc.close();
}
}
EXPLICACIÓN SIMPLE
✔ String numero → permite números grandes
✔ length() → cuenta dígitos
✔ charAt(i) → obtiene cada dígito
✔ ciclo inverso → construye el número al revés
EJEMPLO
Entrada:
37914
Salida:
Cantidad de digitos: 5
Numero ingresado: 37914
Numero invertido: 41973
EXTRA (MEJOR NIVEL)
Si tu profe quiere versión matemática (sin String), también se puede hacer con % 10 y / 10, pero esta versión es la más segura para números grandes.
Buenas noches disculpe me puede ayudar con este ejercicio:
ResponderEliminarIngresar dos números enteros y realizar las operaciones básicas. Debe permitir seleccionar desde un menú las opciones.
1.suma
2.Resta
3. Multiplicacion
4.Division
Sí este es un ejercicio clásico de menú con operaciones básicas en Java.
EliminarIDEA
Ingresas 2 números
Muestras un menú
Según la opción:
suma
resta
multiplicación
división
Se usa switch
IMPORTANTE
En división hay que evitar dividir entre 0
CÓDIGO EN JAVA
import java.util.Scanner;
public class CalculadoraMenu {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese el primer numero: ");
double num1 = sc.nextDouble();
System.out.print("Ingrese el segundo numero: ");
double num2 = sc.nextDouble();
System.out.println("\n--- MENU ---");
System.out.println("1. Suma");
System.out.println("2. Resta");
System.out.println("3. Multiplicacion");
System.out.println("4. Division");
System.out.print("Seleccione una opcion: ");
int op = sc.nextInt();
double resultado;
switch (op) {
case 1:
resultado = num1 + num2;
System.out.println("Resultado: " + resultado);
break;
case 2:
resultado = num1 - num2;
System.out.println("Resultado: " + resultado);
break;
case 3:
resultado = num1 * num2;
System.out.println("Resultado: " + resultado);
break;
case 4:
if (num2 == 0) {
System.out.println("Error: no se puede dividir entre cero");
} else {
resultado = num1 / num2;
System.out.println("Resultado: " + resultado);
}
break;
default:
System.out.println("Opcion invalida");
}
sc.close();
}
}
EXPLICACIÓN SIMPLE
✔ switch selecciona la operación
✔ case = cada opción del menú
✔ double permite decimales
✔ validación evita división entre 0
EJEMPLO
Entrada:
num1 = 10
num2 = 5
op = 3
Salida:
Resultado: 50.0
una ayuda
ResponderEliminarRealiza un código en lenguaje java para resolver el siguiente
ejercicio
• Si a, b y c son variables enteras con valores a= 8, b= 3, c= -5, y d es
un valor asignado por el usuario, determina el valor de las siguientes
expresiones aritméticas:
(2 * b + 3 * (a – c)) /d
Claro xd este ejercicio es directo: solo debes definir las variables, leer d y evaluar la expresión.
EliminarDatos del problema
a = 8
b = 3
c = -5
d = (ingresado por el usuario)
Expresión:
(2∗b+3∗(a−c))/d
IMPORTANTE
Como hay división, debemos evitar dividir entre 0.
CÓDIGO EN JAVA
import java.util.Scanner;
public class ExpresionAritmetica {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = 8;
int b = 3;
int c = -5;
System.out.print("Ingrese el valor de d: ");
int d = sc.nextInt();
if (d == 0) {
System.out.println("Error: no se puede dividir entre cero.");
} else {
int resultado = (2 * b + 3 * (a - c)) / d;
System.out.println("Resultado de la expresion: " + resultado);
}
sc.close();
}
}
EXPLICACIÓN SIMPLE
✔ Primero se asignan a, b, c
✔ Luego se lee d
✔ Se evalúa la expresión
✔ Se controla división entre 0
EJEMPLO
Entrada:
d = 2
Cálculo:
2*b = 6
a - c = 8 - (-5) = 13
3*(a-c) = 39
6 + 39 = 45
45 / 2 = 22
Salida:
Resultado de la expresion: 22
Hola buenas noches, estoy iniciando en esto de la programación el Java NetBeans, quisiera saber si me podrían orientar o ayudar como hacer estos programas por favor.
ResponderEliminarPrograma 1. Define un arreglo de 10 posiciones
1. llénalo con valores arbitrarios.
2. Imprime los valores
3. Imprime los siguientes datos:
a) Suma de todos los valores
b) el valor máximo
c) el valor mínimo
d) el promedio de todos los valores
Programa 2: Teniendo un vector1 con 10 valores arbitrarios:
a) Crear vector2 con los números elevados al cuadrado de vector1, e imprimirlos en pantalla
b) Crear vector3 con el cubo de los números de vector1 e imprimirlos en pantalla
Programa 3: Crear un vector llamado radio que contenga el radio de 12 círculos.
y en otro vector calcular y asignar el área de cada radio.
Imprimirlo en pantalla.
public class Vector {
Eliminarpublic static void main(String[] args) {
int[] vector1 = {5, 10, 15, 20, 25, 30, 35, 40, 45, 50};
int[] vector2 = new int[vector1.length];
int[] vector3 = new int[vector1.length];
for (int i = 0; i < vector1.length; i++) {
vector2[i] = vector1[i] * vector1[i];
vector3[i] = vector1[i] * vector1[i] * vector1[i];
}
System.out.print("Vector2: ");
for (int i = 0; i < vector1.length; i++) {
System.out.print(vector2[i] + " ");
}
System.out.println();
System.out.print("Vector3: ");
for (int i = 0; i < vector1.length; i++) {
System.out.print(vector3[i] + " ");
}
System.out.println();
}
}
Salida:
Vector2: 25 100 225 400 625 900 1225 1600 2025 2500
Vector3: 125 1000 3375 8000 15625 27000 42875 64000 91125 125000
Estos ejercicios son ideales para empezar con arreglos (vectores) en Java.
EliminarPROGRAMA 1: Arreglo de 10 posiciones
✔️ Qué hace:
Llena el arreglo
Lo imprime
Calcula:
suma
máximo
mínimo
promedio
Código Java
public class Programa1 {
public static void main(String[] args) {
int[] numeros = {5, 12, 3, 8, 20, 7, 1, 15, 9, 10};
int suma = 0;
int max = numeros[0];
int min = numeros[0];
System.out.println("Valores del arreglo:");
for (int i = 0; i < numeros.length; i++) {
System.out.print(numeros[i] + " ");
suma += numeros[i];
if (numeros[i] > max) {
max = numeros[i];
}
if (numeros[i] < min) {
min = numeros[i];
}
}
double promedio = (double) suma / numeros.length;
System.out.println("\n\nResultados:");
System.out.println("Suma: " + suma);
System.out.println("Maximo: " + max);
System.out.println("Minimo: " + min);
System.out.println("Promedio: " + promedio);
}
}
PROGRAMA 2: Cuadrado y cubo
✔️ Qué hace:
vector1 → valores
vector2 → cuadrados
vector3 → cubos
Código Java
public class Programa2 {
public static void main(String[] args) {
int[] vector1 = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
int[] vector2 = new int[10];
int[] vector3 = new int[10];
System.out.println("Vector original, cuadrado y cubo:\n");
for (int i = 0; i < vector1.length; i++) {
vector2[i] = vector1[i] * vector1[i]; // cuadrado
vector3[i] = vector1[i] * vector1[i] * vector1[i]; // cubo
System.out.println("Numero: " + vector1[i]
+ " | Cuadrado: " + vector2[i]
+ " | Cubo: " + vector3[i]);
}
}
}
PROGRAMA 3: Áreas de círculos
✔️ Fórmula:
A
ˊ
rea=π×r
2
Código Java
public class Programa3 {
public static void main(String[] args) {
double[] radio = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
double[] area = new double[12];
System.out.println("Radio y area de circulos:\n");
for (int i = 0; i < radio.length; i++) {
area[i] = Math.PI * radio[i] * radio[i];
System.out.println("Radio: " + radio[i]
+ " | Area: " + area[i]);
}
}
}
EXPLICACIÓN SIMPLE
✔ int[] o double[] → arreglos
✔ length → tamaño del arreglo
✔ Math.PI → valor de π
✔ for → recorrer posiciones
CONSEJO IMPORTANTE
Si estás empezando en NetBeans:
✔ Primero escribe el arreglo
✔ Luego el for
✔ Después agregas cálculos
por favor ayuda!!!!
ResponderEliminarEn este problema, debe leer un valor entero y calcular el menor número posible de billetes en los que se puede descomponer el valor. Los posibles billetes son 100, 50, 20, 10, 5, 2 e 1. Imprima el valor leído y la lista de billetes.
Este es un problema clásico de descomposición en billetes (algoritmo voraz / greedy). La idea es ir usando primero los billetes más grandes.
EliminarIDEA
Dado un valor, por ejemplo:
Valor = 186
Se descompone así:
1 billete de 100
1 billete de 50
1 billete de 20
1 billete de 10
1 moneda de 5
1 moneda de 1
BILLETES DISPONIBLES
100, 50, 20, 10, 5, 2, 1
PROGRAMA EN JAVA
import java.util.Scanner;
public class Billetes {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese un valor entero: ");
int valor = sc.nextInt();
int original = valor;
int b100 = valor / 100;
valor = valor % 100;
int b50 = valor / 50;
valor = valor % 50;
int b20 = valor / 20;
valor = valor % 20;
int b10 = valor / 10;
valor = valor % 10;
int b5 = valor / 5;
valor = valor % 5;
int b2 = valor / 2;
valor = valor % 2;
int b1 = valor;
System.out.println("\nValor ingresado: " + original);
System.out.println("Billetes:");
System.out.println("100: " + b100);
System.out.println("50: " + b50);
System.out.println("20: " + b20);
System.out.println("10: " + b10);
System.out.println("5: " + b5);
System.out.println("2: " + b2);
System.out.println("1: " + b1);
sc.close();
}
}
EXPLICACIÓN SIMPLE
✔ Se divide el número entre cada billete
✔ Se guarda cuántos caben
✔ Se usa el residuo % para continuar
EJEMPLO
Entrada:
186
Salida:
Valor ingresado: 186
Billetes:
100: 1
50: 1
20: 1
10: 1
5: 1
2: 0
1: 1
EXTRA (IMPORTANTE)
Este es un algoritmo tipo:
✔ “greedy” (siempre toma el billete más grande posible)
: Hacer un programa que imprima la suma de
ResponderEliminartodos los números del 1 al 100
Este ejercicio es directo: solo necesitas un ciclo que sume los números del 1 al 100.
EliminarPROGRAMA EN JAVA
public class Suma1a100 {
public static void main(String[] args) {
int suma = 0;
for (int i = 1; i <= 100; i++) {
suma += i;
}
System.out.println("La suma de los numeros del 1 al 100 es: " + suma);
}
}
EXPLICACIÓN SIMPLE
✔ Se inicia suma = 0
✔ Se recorre del 1 al 100
✔ Se van acumulando los valores
RESULTADO
La suma de los numeros del 1 al 100 es: 5050
EXTRA (FORMA MATEMÁTICA)
También se puede resolver sin ciclo:
S=
2
n(n+1)
int n = 100;
int suma = n * (n + 1) / 2;
System.out.println(suma);
Me pueden ayudar.
ResponderEliminarHacer un programa que calcule la media de
un conjunto de números positivos introducidos por teclado. A
priori, el programa no sabe cuántos números positivos se
introducirán. El usuario indicará que ha terminado de
introducir los datos cuando introduzca un número negativo.
porfa necesito ayuda
Este ejercicio es muy común: usar un ciclo indefinido (while) hasta que el usuario ingrese un número negativo.
EliminarIDEA
Leer números positivos
Ir sumando
Contar cuántos se ingresan
Cuando el número sea negativo → detener
Calcular media:
media=suma/cantidad
PROGRAMA EN JAVA
import java.util.Scanner;
public class MediaNumeros {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double numero;
double suma = 0;
int contador = 0;
System.out.println("Ingrese numeros positivos (negativo para terminar):");
numero = sc.nextDouble();
while (numero >= 0) {
suma += numero;
contador++;
System.out.print("Ingrese otro numero: ");
numero = sc.nextDouble();
}
if (contador > 0) {
double media = suma / contador;
System.out.println("\nSuma: " + suma);
System.out.println("Cantidad: " + contador);
System.out.println("Media: " + media);
} else {
System.out.println("No se ingresaron numeros positivos.");
}
sc.close();
}
}
EXPLICACIÓN SIMPLE
✔ El programa sigue mientras el número sea ≥ 0
✔ Si el usuario escribe negativo → termina
✔ Se calcula promedio al final
EJEMPLO
Entrada:
5
10
3
-1
Salida:
Suma: 18
Cantidad: 3
Media: 6.0
IMPORTANTE
El número negativo NO se incluye
Si no se ingresan positivos → evita división por 0
Ejercicio #6: Crear un proyecto en Java con los siguientes datos:
ResponderEliminarEnunciado:
Desarrollar un proyecto en Java que permita ingresar 5 números, 2 enteros y 3 decimales. Se deberá realizar lo siguiente con MENU DE OPCIONES:
Se deberán realizar el llamado de los siguientes métodos dentro de la clase principal:
Un método que permita calcular el promedio de todos los valores (retorna).
Un método que permita calcular la siguiente formula. (A2 + C2 * B5 ) + √(E*D) (No retorna)
Un método que permita calcular la siguiente formula. √E * (B3 + A3) + (B5 + C3) (retorna)
Un método que permita calcular la siguiente formula: seno (C) + coseno (A). (No retorna)
Un método que permita calcular la siguiente formula: √(A+5) + √C + √B + √(D-E) (retorna).
AYUDA
Este es un ejercicio típico de métodos + menú + Math en Java.
EliminarDATOS DEL PROBLEMA
Se ingresan 5 números:
A, B → enteros
C, D, E → decimales
Luego un menú para ejecutar métodos.
PROGRAMA COMPLETO EN JAVA
import java.util.Scanner;
public class ProyectoMetodos {
static Scanner sc = new Scanner(System.in);
// VARIABLES GLOBALES
static double A, B, C, D, E;
public static void main(String[] args) {
ingresarDatos();
int op;
do {
System.out.println("\n--- MENU ---");
System.out.println("1. Promedio de todos los valores");
System.out.println("2. Formula 1 (no retorna)");
System.out.println("3. Formula 2 (retorna)");
System.out.println("4. Seno y coseno (no retorna)");
System.out.println("5. Formula 3 (retorna)");
System.out.println("6. Salir");
System.out.print("Seleccione opcion: ");
op = sc.nextInt();
switch (op) {
case 1:
System.out.println("Promedio: " + promedio());
break;
case 2:
formula1();
break;
case 3:
System.out.println("Resultado: " + formula2());
break;
case 4:
formula3();
break;
case 5:
System.out.println("Resultado: " + formula4());
break;
case 6:
System.out.println("Saliendo...");
break;
default:
System.out.println("Opcion invalida");
}
} while (op != 6);
}
// INGRESO DE DATOS
public static void ingresarDatos() {
System.out.print("Ingrese A (entero): ");
A = sc.nextDouble();
System.out.print("Ingrese B (entero): ");
B = sc.nextDouble();
System.out.print("Ingrese C (decimal): ");
C = sc.nextDouble();
System.out.print("Ingrese D (decimal): ");
D = sc.nextDouble();
System.out.print("Ingrese E (decimal): ");
E = sc.nextDouble();
}
// 1. PROMEDIO (RETORNA)
public static double promedio() {
return (A + B + C + D + E) / 5;
}
// 2. FORMULA 1 (NO RETORNA)
// (A2 + C2 * B5 ) + √(E*D)
public static void formula1() {
double resultado = (Math.pow(A, 2) + Math.pow(C, 2) * Math.pow(B, 5))
+ Math.sqrt(E * D);
System.out.println("Resultado: " + resultado);
}
// 3. FORMULA 2 (RETORNA)
// √E * (B3 + A3) + (B5 + C3)
public static double formula2() {
return (Math.sqrt(E) * (Math.pow(B, 3) + Math.pow(A, 3)))
+ (Math.pow(B, 5) + Math.pow(C, 3));
}
// 4. SENO Y COSENO (NO RETORNA)
// seno(C) + coseno(A)
public static void formula3() {
double resultado = Math.sin(C) + Math.cos(A);
System.out.println("Resultado: " + resultado);
}
// 5. FORMULA 3 (RETORNA)
// √(A+5) + √C + √B + √(D-E)
public static double formula4() {
return Math.sqrt(A + 5)
+ Math.sqrt(C)
+ Math.sqrt(B)
+ Math.sqrt(D - E);
}
}
EXPLICACIÓN SIMPLE
✔ Math.pow(x, n) → potencia
✔ Math.sqrt(x) → raíz cuadrada
✔ Math.sin() / Math.cos() → trigonometría (en radianes)
IMPORTANTE
Java usa radianes, no grados
Si te piden grados:
Math.sin(Math.toRadians(C))
RESUMEN DEL PROYECTO
✔ 5 números
✔ menú
✔ métodos con y sin retorno
✔ uso de Math
✔ estructura completa tipo examen
un banco paga a sus ahorradores un interes del 1.55 mensual sobre el monto ahorrado. teniendo como dato de entrada el saldo inicial del ahorrista determnie el saldo final despues de determinada cantidad de dias. necesito hacerlo en Java...
ResponderEliminarEste problema es de interés simple proporcional al tiempo.
EliminarEl banco paga 1.55% mensual, pero tú tienes que calcularlo según días.
IDEA
Interés mensual: 1.55% = 0.0155
Un mes se considera 30 días
Entonces:
inter
e
ˊ
s=saldo×0.0155×
30
d
ı
ˊ
as
saldo final=saldo+inter
e
ˊ
s
PROGRAMA EN JAVA
import java.util.Scanner;
public class BancoInteres {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese saldo inicial: ");
double saldo = sc.nextDouble();
System.out.print("Ingrese cantidad de dias: ");
int dias = sc.nextInt();
double tasaMensual = 0.0155;
double interes = saldo * tasaMensual * (dias / 30.0);
double saldoFinal = saldo + interes;
System.out.println("\n--- RESULTADOS ---");
System.out.println("Interes ganado: " + interes);
System.out.println("Saldo final: " + saldoFinal);
sc.close();
}
}
EJEMPLO
Entrada:
Saldo: 1000
Dias: 30
Salida:
Interes ganado: 15.5
Saldo final: 1015.5
EXPLICACIÓN SIMPLE
✔ 30 días = 1 mes
✔ se ajusta proporcionalmente con:
dias / 30.0
✔ luego se suma al saldo inicial.
ayuda 1. Solicite al usuario que digite 4 números, ordénelos de menor a mayor e indique cuál es el mayor de los 4 números, cual es el menor de los 4 números, indique el promedio de los 4 números, además debe indicar cuantos números pares existen y en qué posición se encuentran. Imprimir los 4 números para comprobar el resultado. Use vectores.
ResponderEliminarEste ejercicio se resuelve con un vector (arreglo) de 4 posiciones y varias operaciones:
EliminarOrdenar de menor a mayor
Encontrar mayor y menor
Calcular promedio
Contar pares y mostrar sus posiciones
PROGRAMA EN JAVA (CON VECTORES)
import java.util.Scanner;
import java.util.Arrays;
public class NumerosVector {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] numeros = new int[4];
// INGRESO DE DATOS
for (int i = 0; i < 4; i++) {
System.out.print("Ingrese numero " + (i + 1) + ": ");
numeros[i] = sc.nextInt();
}
// COPIA PARA NO PERDER EL ORIGINAL
int[] original = numeros.clone();
// ORDENAR
Arrays.sort(numeros);
// MENOR Y MAYOR
int menor = numeros[0];
int mayor = numeros[3];
// PROMEDIO
int suma = 0;
for (int n : original) {
suma += n;
}
double promedio = suma / 4.0;
// PARES Y POSICIONES
int contadorPares = 0;
System.out.println("\nPosiciones de numeros pares:");
for (int i = 0; i < 4; i++) {
if (original[i] % 2 == 0) {
System.out.println("Posicion " + i + " -> " + original[i]);
contadorPares++;
}
}
// RESULTADOS
System.out.println("\n=== RESULTADOS ===");
System.out.println("Numeros ordenados:");
for (int n : numeros) {
System.out.print(n + " ");
}
System.out.println("\nMenor: " + menor);
System.out.println("Mayor: " + mayor);
System.out.println("Promedio: " + promedio);
System.out.println("Cantidad de pares: " + contadorPares);
sc.close();
}
}
EXPLICACIÓN SIMPLE
✔ numeros[] → guarda los datos
✔ clone() → conserva el orden original para posiciones
✔ Arrays.sort() → ordena de menor a mayor
✔ ciclo → detecta pares y posiciones
EJEMPLO
Entrada:
4 9 2 7
Salida:
Numeros ordenados:
2 4 7 9
Menor: 2
Mayor: 9
Promedio: 5.5
Posiciones de numeros pares:
Posicion 0 -> 4
Posicion 2 -> 2
Para cierta aplicación informática se necesitan codificar (cifrar) números enteros.
ResponderEliminarElabore un ALGORITMO que solicite al usuario un número entero positivo de tres dígitos, el cual
necesita ser codificado. Considere que:
a) Si el dígito de dicho número es 2, 5 o 7, se le debe sumar la unidad.
b) Si el dígito es 1, 4, 8 o 9, se le resta la unidad.
c) Los dígitos restantes no se alteran.
Ayuda por favor
Este ejercicio es de procesamiento de dígitos, o sea: separar un número de 3 cifras y modificar cada dígito según reglas.
EliminarIDEA DEL PROBLEMA
Si el número es, por ejemplo:
N = 257
Se separa en:
2 | 5 | 7
Y se aplica:
2 → +1 → 3
5 → +1 → 6
7 → +1 → 8
Resultado: 368
REGLAS
Si el dígito es 2, 5, 7 → +1
Si el dígito es 1, 4, 8, 9 → -1
Si no → igual
ALGORITMO EN JAVA
import java.util.Scanner;
public class CodificarNumero {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese un numero de 3 digitos: ");
int num = sc.nextInt();
int centena = num / 100;
int decena = (num / 10) % 10;
int unidad = num % 10;
centena = modificar(centena);
decena = modificar(decena);
unidad = modificar(unidad);
int resultado = centena * 100 + decena * 10 + unidad;
System.out.println("Numero codificado: " + resultado);
sc.close();
}
public static int modificar(int d) {
if (d == 2 || d == 5 || d == 7) {
return d + 1;
}
else if (d == 1 || d == 4 || d == 8 || d == 9) {
return d - 1;
}
else {
return d;
}
}
}
EXPLICACIÓN SIMPLE
✔ Separar número:
centenas = num / 100
decenas = (num / 10) % 10
unidades = num % 10
✔ Función modificar():
aplica reglas del enunciado
✔ Luego reconstruye el número.
EJEMPLO
Entrada:
257
Proceso:
2 → 3
5 → 6
7 → 8
Salida:
Numero codificado: 368
Escribir un programa para contar votaciones de un proceso electoral. Deberá obtener la lista de
ResponderEliminarcandidatos y guardarlos en arreglos.
- Presentar un menú de opciones para seleccionar a un candidato.
- Mostrar el candidato ganador
- Mostrar un listado con el número de votos y porcentajes obtenidos.
No utilizar listas (ArrayList, Hashtable, Vector, ...)
AYUDAAAAAA
Este problema se resuelve con arreglos simples (arrays), sin estructuras como ArrayList.
EliminarLa idea es:
Guardar nombres de candidatos en un arreglo.
Guardar votos en otro arreglo paralelo.
Un menú para votar.
Al final: ganador + porcentajes.
PROGRAMA EN JAVA (SIN LISTAS)
import java.util.Scanner;
public class Elecciones {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Cantidad de candidatos: ");
int n = sc.nextInt();
sc.nextLine();
String[] candidatos = new String[n];
int[] votos = new int[n];
// INGRESO DE CANDIDATOS
for (int i = 0; i < n; i++) {
System.out.print("Nombre del candidato " + (i + 1) + ": ");
candidatos[i] = sc.nextLine();
votos[i] = 0;
}
int opcion;
// MENU DE VOTACION
do {
System.out.println("\n--- MENU DE VOTACION ---");
for (int i = 0; i < n; i++) {
System.out.println((i + 1) + ". " + candidatos[i]);
}
System.out.println((n + 1) + ". Terminar votacion");
System.out.print("Seleccione una opcion: ");
opcion = sc.nextInt();
if (opcion >= 1 && opcion <= n) {
votos[opcion - 1]++;
System.out.println("Voto registrado para " + candidatos[opcion - 1]);
}
} while (opcion != n + 1);
// TOTAL VOTOS
int total = 0;
for (int i = 0; i < n; i++) {
total += votos[i];
}
// GANADOR
int max = votos[0];
int ganador = 0;
for (int i = 1; i < n; i++) {
if (votos[i] > max) {
max = votos[i];
ganador = i;
}
}
System.out.println("\n=== RESULTADOS ===");
System.out.println("Ganador: " + candidatos[ganador]);
System.out.println("\nDetalle de votos:");
for (int i = 0; i < n; i++) {
double porcentaje = (total == 0) ? 0 : (votos[i] * 100.0 / total);
System.out.println(candidatos[i] +
" -> Votos: " + votos[i] +
" | Porcentaje: " + porcentaje + "%");
}
sc.close();
}
}
EXPLICACIÓN SIMPLE:
✔ candidatos[] → nombres
✔ votos[] → cantidad de votos
✔ menú → simula votación
✔ do-while → permite votar varias veces
✔ cálculo final:
ganador (mayor número)
porcentaje = votos / total × 100
EJEMPLO:
1. Ana
2. Luis
3. Carlos
4. Terminar votación
Resultado:
Ganador: Luis
Ana -> 3 votos -> 30%
Luis -> 5 votos -> 50%
Carlos -> 2 votos -> 20%
Un empleado de la tienda realiza N ventas durante el día, se requiere saber
ResponderEliminarcuántas de ellas fueron mayores a $1000, cuántas fueron mayores a $500 pero
menores o iguales a $1000, y cuántas fueron menores o iguales a $500. Además,
se requiere saber el monto de lo vendido en cada categoría y de forma global.
Realice un programa que permita determinar lo anterior.
Este ejercicio se resuelve clasificando cada venta en 3 categorías y acumulando:
Eliminar> 1000
> 500 y ≤ 1000
≤ 500
Además: sumas por categoría y total general.
✔️ Programa en Java
import java.util.Scanner;
public class VentasDia {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese el numero de ventas: ");
int n = sc.nextInt();
int contMayor1000 = 0;
int contMedio = 0;
int contMenorIgual500 = 0;
double sumaMayor1000 = 0;
double sumaMedio = 0;
double sumaMenorIgual500 = 0;
double total = 0;
for (int i = 1; i <= n; i++) {
System.out.print("Venta " + i + ": ");
double venta = sc.nextDouble();
total += venta;
if (venta > 1000) {
contMayor1000++;
sumaMayor1000 += venta;
} else if (venta > 500) {
contMedio++;
sumaMedio += venta;
} else {
contMenorIgual500++;
sumaMenorIgual500 += venta;
}
}
System.out.println("\nRESULTADOS:");
System.out.println("Ventas > 1000: " + contMayor1000);
System.out.println("Monto > 1000: " + sumaMayor1000);
System.out.println("Ventas > 500 y <= 1000: " + contMedio);
System.out.println("Monto medio: " + sumaMedio);
System.out.println("Ventas <= 500: " + contMenorIgual500);
System.out.println("Monto menor o igual 500: " + sumaMenorIgual500);
System.out.println("TOTAL GENERAL: " + total);
sc.close();
}
}
🧠 Lógica rápida
Cada venta entra en una sola categoría:
> 1000
> 500 && <= 1000
<= 500
Y se van acumulando:
Contadores
Sumas
Total general
Si quieres, puedo ayudarte a hacer una versión con menú, o con validación de datos negativos, o incluso en diagrama de flujo.
ayuda, Diseñar un programa que sume la serie de números 2+6+12+20+30+42+56+…10 100
ResponderEliminarHay dos modos de hacerlo.
EliminarPrimer modo:
Primero hay que identificar el patrón de la serie:
2, 6, 12, 20, 30, 42, 56, ...
Cada término se obtiene como:
1×2 = 2
2×3 = 6
3×4 = 12
4×5 = 20
5×6 = 30
6×7 = 42
7×8 = 56
...
Entonces el término general es:
T
n
=n(n+1)
Si el enunciado pide sumar la serie hasta 100 términos, podemos usar un ciclo.
Java
import java.util.Scanner;
public class Serie {
public static void main(String[] args) {
long suma = 0;
for (int n = 1; n <= 100; n++) {
int termino = n * (n + 1);
suma += termino;
}
System.out.println("La suma de la serie es: " + suma);
}
}
Si quieres mostrar también la serie
public class Serie {
public static void main(String[] args) {
long suma = 0;
for (int n = 1; n <= 100; n++) {
int termino = n * (n + 1);
System.out.print(termino);
if (n < 100) {
System.out.print(" + ");
}
suma += termino;
}
System.out.println("\nSuma = " + suma);
}
}
Resultado de la suma de los primeros 100 términos:
338350
Si el "10 100" de tu enunciado significa otra cosa (por ejemplo, sumar desde 10 hasta 100), compárteme el enunciado exacto y lo adapto.
Segundo modo:
EliminarPrimero hay que identificar el patrón de la serie:
2, 6, 12, 20, 30, 42, 56, ...
Cada término se obtiene como:
1×2 = 2
2×3 = 6
3×4 = 12
4×5 = 20
5×6 = 30
6×7 = 42
7×8 = 56
...
Por lo tanto, el término general es:
T
n
=n(n+1)
Si el enunciado pide sumar la serie hasta 100 términos, puedes hacer:
Java
public class Serie {
public static void main(String[] args) {
long suma = 0;
for (int n = 1; n <= 100; n++) {
int termino = n * (n + 1);
suma += termino;
}
System.out.println("La suma de la serie es: " + suma);
}
}
Si quieres mostrar la serie y la suma
public class Serie {
public static void main(String[] args) {
long suma = 0;
for (int n = 1; n <= 100; n++) {
int termino = n * (n + 1);
System.out.print(termino);
if (n < 100) {
System.out.print(" + ");
}
suma += termino;
}
System.out.println("\nSuma = " + suma);
}
}
Resultado de la suma de los primeros 100 términos:
Suma = 343400
Si en realidad el enunciado significa "sumar hasta que el término llegue a 100" (en lugar de 100 términos), avísame porque la solución cambia ligeramente.
Programa que solicite al usuario un número entero y muestre por pantalla un triángulo rectángulo como el de más abajo.
ResponderEliminar1
3 1
5 3 1
7 5 3 1
9 7 5 3 1
jobouneeeee
EliminarEste es la solución de tu amigo que soy yo, porque quiero ayudarte.
EliminarJava:
package General;
import java.util.Scanner;
public class TrianguloRectangulo{
public static void main(String [] args){
Scanner scanner=new Scanner(System.in);
System.out.print("Ingrese un número entero: ");
int N = scanner.nextInt();
for(int i=1;i<=N;i+=2){
for(int j=i;j>=1;j-=2){
System.out.print(j+" ");
}
System.out.print("\n");
}
}
}
Este ejercicio se resuelve con dos ciclos for:
EliminarEl ciclo externo controla las filas.
El ciclo interno imprime los números impares en orden descendente.
Si el usuario ingresa 5, la salida será:
1
3 1
5 3 1
7 5 3 1
9 7 5 3 1
Código en Java
import java.util.Scanner;
public class TrianguloImpares {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese un número: ");
int n = sc.nextInt();
for (int i = 1; i <= n; i++) {
int impar = 2 * i - 1;
for (int j = impar; j >= 1; j -= 2) {
System.out.print(j + " ");
}
System.out.println();
}
sc.close();
}
}
Ejemplo
Entrada
5
Salida
1
3 1
5 3 1
7 5 3 1
9 7 5 3 1
La fórmula 2 * i - 1 genera los números impares: 1, 3, 5, 7, 9, ..., y luego el segundo ciclo los imprime hacia atrás hasta llegar a 1.
ayuda
ResponderEliminarrealizar un programa que lea N datos
y de los cuales calcule mediante un menu
1.- Numero MAYOR y MENOR
2.- ULTIMO y ANTEPENULTIMO dato ingresado
3.- cantidad de primos
4.- promedio de impares
5.- cantidad de multiplos de 5
6.- cantidad de pares
7.- ordenar datos de menor a mayor
Para este ejercicio, lo mejor es:
EliminarLeer N números y guardarlos en un arreglo.
Mostrar un menú con las opciones.
Procesar la opción elegida.
Aquí tienes una solución completa en Java:
import java.util.Scanner;
import java.util.Arrays;
public class MenuNumeros {
public static boolean esPrimo(int n) {
if (n < 2) return false;
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0)
return false;
}
return true;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Cantidad de datos: ");
int n = sc.nextInt();
int[] datos = new int[n];
for (int i = 0; i < n; i++) {
System.out.print("Dato " + (i + 1) + ": ");
datos[i] = sc.nextInt();
}
System.out.println("\nMENU");
System.out.println("1. Numero mayor y menor");
System.out.println("2. Ultimo y antepenultimo dato");
System.out.println("3. Cantidad de primos");
System.out.println("4. Promedio de impares");
System.out.println("5. Cantidad de multiplos de 5");
System.out.println("6. Cantidad de pares");
System.out.println("7. Ordenar de menor a mayor");
System.out.print("Seleccione una opcion: ");
int op = sc.nextInt();
switch (op) {
case 1:
int mayor = datos[0];
int menor = datos[0];
for (int num : datos) {
if (num > mayor) mayor = num;
if (num < menor) menor = num;
}
System.out.println("Mayor: " + mayor);
System.out.println("Menor: " + menor);
break;
case 2:
if (n >= 3) {
System.out.println("Ultimo: " + datos[n - 1]);
System.out.println("Antepenultimo: " + datos[n - 3]);
} else {
System.out.println("Se necesitan al menos 3 datos.");
}
break;
case 3:
int primos = 0;
for (int num : datos) {
if (esPrimo(num))
primos++;
}
System.out.println("Cantidad de primos: " + primos);
break;
case 4:
int suma = 0;
int cantImpares = 0;
for (int num : datos) {
if (num % 2 != 0) {
suma += num;
cantImpares++;
}
}
if (cantImpares > 0)
System.out.println("Promedio de impares: " + (double) suma / cantImpares);
else
System.out.println("No hay impares.");
break;
case 5:
int multiplos5 = 0;
for (int num : datos) {
if (num % 5 == 0)
multiplos5++;
}
System.out.println("Cantidad de múltiplos de 5: " + multiplos5);
break;
case 6:
int pares = 0;
for (int num : datos) {
if (num % 2 == 0)
pares++;
}
System.out.println("Cantidad de pares: " + pares);
break;
case 7:
Arrays.sort(datos);
System.out.println("Datos ordenados:");
for (int num : datos) {
System.out.print(num + " ");
}
break;
default:
System.out.println("Opcion no valida.");
}
sc.close();
}
}
Observación: El enunciado dice "antepenúltimo", que es el dato ubicado tres posiciones antes del final (n - 3). Si tu profesor realmente quería el penúltimo, entonces sería datos[n - 2]. Conviene confirmar ese detalle.
Crear una matriz 4x4.Llenarla matriz de manera que, si los índices de los elementos son iguales, se almacena un
ResponderEliminar8 y de lo contrario, se almacena un 0. Mostrar en pantalla la Matriz Identidad de 4X4
Este ejercicio consiste en crear una matriz de 4 filas y 4 columnas donde:
EliminarSi i == j (misma fila y columna), guardar 8.
En caso contrario, guardar 0.
La matriz resultante será:
8 0 0 0
0 8 0 0
0 0 8 0
0 0 0 8
Código en Java
public class MatrizIdentidad {
public static void main(String[] args) {
int[][] matriz = new int[4][4];
// Llenar la matriz
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if (i == j) {
matriz[i][j] = 8;
} else {
matriz[i][j] = 0;
}
}
}
// Mostrar la matriz
System.out.println("Matriz 4x4:");
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
System.out.print(matriz[i][j] + " ");
}
System.out.println();
}
}
}
Salida
Matriz 4x4:
8 0 0 0
0 8 0 0
0 0 8 0
0 0 0 8
Nota: Técnicamente esto no es una matriz identidad clásica (que tiene 1 en la diagonal principal), sino una matriz diagonal con 8 en la diagonal principal. Sin embargo, el código cumple exactamente con lo que pide el enunciado.
alguien que me pueda ayudar con este ejercicio
ResponderEliminarEn un triángulo rectángulo, el cuadrado de la longitud de un lado es igual a la suma de los cuadrados de las longitudes de los otros dos lados. Escriba un programa que invite al usuario a ingresar las longitudes de tres lados de un triángulo y luego que de salida a un mensaje indicando si el triángulo es un rectángulo.
Sí. Este ejercicio se basa en el Teorema de Pitágoras:
EliminarUn triángulo es rectángulo si el cuadrado del lado más largo (hipotenusa) es igual a la suma de los cuadrados de los otros dos lados.
Por ejemplo:
Lados: 3, 4 y 5
3
2
+4
2
=9+16=25
5
2
=25
Como son iguales, el triángulo es rectángulo.
Programa en Java
import java.util.Scanner;
public class TrianguloRectangulo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese el primer lado: ");
double a = sc.nextDouble();
System.out.print("Ingrese el segundo lado: ");
double b = sc.nextDouble();
System.out.print("Ingrese el tercer lado: ");
double c = sc.nextDouble();
// Encontrar el lado mayor
double mayor = Math.max(a, Math.max(b, c));
if (mayor == a) {
if (a * a == b * b + c * c) {
System.out.println("El triángulo es rectángulo.");
} else {
System.out.println("El triángulo NO es rectángulo.");
}
} else if (mayor == b) {
if (b * b == a * a + c * c) {
System.out.println("El triángulo es rectángulo.");
} else {
System.out.println("El triángulo NO es rectángulo.");
}
} else {
if (c * c == a * a + b * b) {
System.out.println("El triángulo es rectángulo.");
} else {
System.out.println("El triángulo NO es rectángulo.");
}
}
sc.close();
}
}
Ejemplo de ejecución
Entrada
Ingrese el primer lado: 3
Ingrese el segundo lado: 4
Ingrese el tercer lado: 5
Salida
El triángulo es rectángulo.
Si tu profesor está viendo apenas estructuras if, esta solución es adecuada porque utiliza únicamente condiciones y operaciones básicas.
ayudaaa
ResponderEliminarRealizar un programa que muestre los intereses de Q.5000.00 si sabemos que a los 3 meses es el 2%, a los 6 meses el 5% y a los 12 meses el 11%. Muestre los intereses ganados segun los meses que ingrese el usuario.
Puedes resolverlo con una estructura if para calcular el interés según la cantidad de meses que ingrese el usuario.
EliminarPrograma en Java
import java.util.Scanner;
public class Intereses {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double capital = 5000.00;
double interes = 0;
int meses;
System.out.print("Ingrese la cantidad de meses (3, 6 o 12): ");
meses = sc.nextInt();
if (meses == 3) {
interes = capital * 0.02;
} else if (meses == 6) {
interes = capital * 0.05;
} else if (meses == 12) {
interes = capital * 0.11;
} else {
System.out.println("Cantidad de meses no válida.");
return;
}
System.out.println("Capital: Q." + capital);
System.out.println("Interés ganado: Q." + interes);
System.out.println("Monto total: Q." + (capital + interes));
sc.close();
}
}
Ejemplos
Entrada:
3
Salida:
Capital: Q.5000.0
Interés ganado: Q.100.0
Monto total: Q.5100.0
Entrada:
6
Salida:
Capital: Q.5000.0
Interés ganado: Q.250.0
Monto total: Q.5250.0
Entrada:
12
Salida:
Capital: Q.5000.0
Interés ganado: Q.550.0
Monto total: Q.5550.0
AYUDAAA
ResponderEliminarSe lee desde teclado información de personas. De cada persona se lee: DNI, apellido y
nombre, ciudad natal y fecha de nacimiento. La lectura finaliza cuando llega una persona con
DNI 0 (cero) o cuando se han leído 500 personas. Informar:
A. Apellido y nombre de aquellas personas nacidas en “Arrecifes” y cuyos DNI poseen
menos dígitos impares que pares.
B. La cantidad total de personas leídas.
Este ejercicio se puede resolver leyendo personas hasta que:
EliminarEl DNI sea 0, o
Se hayan leído 500 personas.
Luego, para cada persona:
Verificar si nació en "Arrecifes".
Contar cuántos dígitos del DNI son pares e impares.
Si tiene menos impares que pares, mostrar su apellido y nombre.
Llevar un contador de personas leídas.
Algoritmo
import java.util.Scanner;
public class Personas {
public static boolean menosImparesQuePares(long dni) {
int pares = 0;
int impares = 0;
while (dni != 0) {
int digito = (int)(dni % 10);
if (digito % 2 == 0)
pares++;
else
impares++;
dni /= 10;
}
return impares < pares;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int totalPersonas = 0;
System.out.print("Ingrese DNI: ");
long dni = sc.nextLong();
sc.nextLine();
while (dni != 0 && totalPersonas < 500) {
System.out.print("Apellido y nombre: ");
String apeNom = sc.nextLine();
System.out.print("Ciudad natal: ");
String ciudad = sc.nextLine();
System.out.print("Fecha de nacimiento: ");
String fecha = sc.nextLine();
totalPersonas++;
if (ciudad.equalsIgnoreCase("Arrecifes")
&& menosImparesQuePares(dni)) {
System.out.println("Persona que cumple condición: " + apeNom);
}
System.out.print("\nIngrese DNI: ");
dni = sc.nextLong();
sc.nextLine();
}
System.out.println("\nCantidad total de personas leídas: "
+ totalPersonas);
sc.close();
}
}
Ejemplo
Si se ingresa:
DNI: 2468
Apellido y nombre: Juan Perez
Ciudad natal: Arrecifes
Fecha: 10/05/2000
DNI: 0
El DNI 2468 tiene:
Pares: 4
Impares: 0
Como nació en Arrecifes y tiene menos impares que pares, se informa:
Persona que cumple condición: Juan Perez
Cantidad total de personas leídas: 1
Observación: La fecha de nacimiento se lee porque el enunciado lo pide, pero no se utiliza en los cálculos.
Porfavor me ayudarían.
ResponderEliminarUna institución educativa le paga a sus profesores $200 la hora y le hace un descuento del 5% por concepto de caja de ahorro.Determine el monto del descuento y el monto total a pagar al profesor.
Este problema se resuelve calculando primero el salario bruto, luego el descuento del 5% y finalmente el salario neto.
EliminarFórmulas
Salario bruto = horas trabajadas × 200
Descuento = salario bruto × 0.05
Total a pagar = salario bruto − descuento
Programa en Java
import java.util.Scanner;
public class PagoProfesor {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese las horas trabajadas: ");
double horas = sc.nextDouble();
double salarioBruto = horas * 200;
double descuento = salarioBruto * 0.05;
double totalPagar = salarioBruto - descuento;
System.out.println("Salario bruto: $" + salarioBruto);
System.out.println("Descuento (5%): $" + descuento);
System.out.println("Total a pagar: $" + totalPagar);
sc.close();
}
}
Ejemplo
Entrada:
40
Cálculos:
Salario bruto = 40 × 200 = $8000
Descuento = 8000 × 0.05 = $400
Total a pagar = 8000 − 400 = $7600
Salida:
Salario bruto: $8000.0
Descuento (5%): $400.0
Total a pagar: $7600.0
ayuda por favor, tengo que realizar esto en netbeans
ResponderEliminarRealizar un método en java que calcule la suma de la siguiente serie aritmética para n términos, los guarde en una lista ligada e imprima la lista ligada: 2, 4, 8, 16, 32, 64…n.
Nota: para el método debes hallar contador de frecuencia y orden de magnitud.
Solución:
Eliminarimport java.util.LinkedList;
import java.util.Scanner;
public class SerieLinkedList{
public static void main(String [] args){
Scanner scanner=new Scanner(System.in);
System.out.print("Ingrese el número de términos (n): ");
int n=scanner.nextInt();
scanner.close();
LinkedList lista=new LinkedList<>();
int suma=0;
int termino=2; //Primer término de la serie
//Contador de frecuencia y orden de magnitud
int contadorFrecuencia=0;
for(int i=0;i<n;i++){
lista.add(termino); //Guardar el término en la lista
suma+=termino; //Sumar el término
termino*=2; //Generar el siguiente término (multiplicación por 2)
contadorFrecuencia++; //Contador de iteraciones
}
System.out.println("Lista ligada de la serie: "+lista);
System.out.println("Suma de la serie: "+suma);
System.out.println("Contador de frecuencia: "+contadorFrecuencia);
System.out.println("Orden de magnitud (O(n)): "+n);
}
}
Hola, me ayudan por favor?
ResponderEliminarlea dos números (a) y (b) enteros positivos. Calcular e imprimir la suma de los múltiplos de (a) comprendidos entre ellos.
Gracias!!
Solución:
Eliminarimport java.util.Scanner;
public class SumaMultiplos{
public static void main(String [] args){
Scanner scanner=new Scanner(System.in);
System.out.print("Ingrese el número a (entero positivo): ");
int a=scanner.nextInt();
System.out.print("Ingrese el número b (entero positivo): ");
int b=scanner.nextInt();
if(a<=0||b<=0||a>b){
System.out.println("Los números deben ser positivos y a debe ser menor o igual que b");
return;
}
int suma=0;
for(int i=a; i<=b;i++){
if(i%a==0){
suma+=i;
}
}
System.out.println("La suma de los múltiplos de "+a+" entre "+a+" y "+b+" es: "+suma);
}
}
Por favor ayudeme con una codificación y diagrama de flujo. Por favor:
ResponderEliminarUtilizando diagramas de flujo, crea un minijuego en el que el ordenador elija un número aleatorio comprendido entre 0 y 100 para que el usuario intente adivinarlo.
Cada vez que el usuario haga un intento le daremos pistas de si el número que busca es más alto o más bajo que el que ha escrito, hasta que acierte o escriba la palabra FIN para terminar el juego.
Para representar la obtención del número aleatorio escribiremos la siguiente instrucción al comienzo del diagrama:
n = aleatorio(0,100)
A partir de ese momento supondremos que en n hay un valor elegido por el ordenador en el rango [0,100].
Gracias por su ayuda. Enviar correo henryjrruiz@gmail.com
Este ejercicio me costó tiempo de hacerlo pero al final lo hice. Hecho por: Octavio Ayala.
EliminarCódigo Java:
import java.util.Scanner;
import java.util.Random;
public class AdivinarNumero{
public static void main(String [] args){
Scanner scanner=new Scanner(System.in);
Random random=new Random();
int numeroAleatorio=random.nextInt(101);// Genera un número entre 0 y 100
String entrada;
int intento;
System.out.println("¡Bienvenido al juego de adivinar el número!");
System.out.println("Intenta adivinar el número entre 0 y 100. Escribe 'FIN' para salir.");
while (true){
System.out.print("Ingrese un número: ");
entrada=scanner.nextLine();
if(entrada.equalsIgnoreCase("FIN")){
System.out.println("¡Gracias por jugar! El número era: "+numeroAleatorio);
break;
}
try{
intento=Integer.parseInt(entrada);
if(intento<0||intento>100){
System.out.println("Por favor, ingrese un número válido entre 0 y 100.");
continue;
}
if(intento==numeroAleatorio){
System.out.println("¡Felicidades! Has adivinado el número");
break;
}else if(intento<numeroAleatorio){
System.out.println("El número es más alto");
}else{
System.out.println("El número es más bajo");
}
}catch (NumberFormatException e){
System.out.println("Entrada no válida. Escriba un número o 'FIN' para salir");
}
}
}
}
Diagrama de flujo:
Inicio
│
├─ Generar número aleatorio (0-100)
│
├─ Mostrar mensaje de bienvenida
│
├─ (Bucle) Solicitar número al usuario
│
├─ Si usuario escribe "FIN" → Fin del programa
│
├─ Comparar número:
│ ├── Si es igual → "¡Has adivinado!"
│ ├── Si es menor → "El número es más alto."
│ ├── Si es mayor → "El número es más bajo."
│
├─ Volver a pedir número
│
Fin
Buenas tardes.
ResponderEliminarNecesito que me ayudes .porfavor
.2. Año bisiesto A través del uso de las condiciones que ofrece “if”, se muestra como es el procedimiento para saber si un año es bisiesto o no.
Calcular si un año es bisiesto está resuelto en esta entrada https://puntocomnoesunlenguaje.blogspot.com/2022/04/calcular-bisiesto-java.html
EliminarHola, aquí va.
EliminarPara determinar si un año es bisiesto en Java usando if, se aplican estas reglas:
Un año es bisiesto si es divisible entre 4.
Pero si es divisible entre 100, no es bisiesto.
Sin embargo, si también es divisible entre 400, sí es bisiesto.
Programa en Java
import java.util.Scanner;
public class AnioBisiesto {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese un año: ");
int anio = sc.nextInt();
if ((anio % 4 == 0 && anio % 100 != 0) || (anio % 400 == 0)) {
System.out.println("El año " + anio + " es bisiesto.");
} else {
System.out.println("El año " + anio + " no es bisiesto.");
}
sc.close();
}
}
Ejemplos
Entrada:
2024
Salida:
El año 2024 es bisiesto.
Entrada:
1900
Salida:
El año 1900 no es bisiesto.
Entrada:
2000
Salida:
El año 2000 es bisiesto.
Se tiene los nombres de 3 estudiantes y cada estudiante tiene 2 notas. Calcule el promedio de cada estudiante. Imprima el nombre, las 2 notas y el promedio de cada estudiante.
ResponderEliminarNombre Notas Promedio
Erasmo 70 100
Cristel 100 100
Jonathan 90 75
Es un problema de arreglo de dos dimensiones, ayuda
Esta bien, yo te ayudo.
Eliminarimport java.util.Scanner;
public class PromedioEstudiantes{
public static void main(String [] args){
String[] nombres={"Erasmo","Cristel","Jonathan"};
int[][]notas={
{70, 100}, // Notas de Erasmo
{100, 100}, // Notas de Cristel
{90, 75} // Notas de Jonathan
};
System.out.println("Nombre\tNotas\t\tPromedio");
for(int i=0;i<nombres.length;i++){
int suma=0;
System.out.print(nombres[i]+"\t");
for(int j=0; j<notas[i].length;j++){
System.out.print(notas[i][j]+" ");
suma+=notas[i][j];
}
double promedio=(double) suma/notas[i].length;
System.out.println("\t"+promedio);
}
}
}
Alguien me podría ayudar con este ejercicio?
ResponderEliminarSe quiere construir una aplicación para administrar un club social. El club contara con un máximo de 35 socios.
Esta aplicación permite manejar los socios, sus consumos y las personas autorizadas por cada socio para que pueda entrar y usar los servicios del club
De cada socio se conoce:
- La cédula. No puede haber dos socios con la misma cédula.
(verificar antes de hacer afiliación)
- El nombre.
- Los fondos disponibles.
- El tipo de suscripción. Puede ser VIP o Regular. En el club puede haber máximo 3 socios VIP
- Las facturas sin pagar. (PARA UN MAXIMO DE 20)
- La lista de personas autorizadas. (PARA UN MAXIMO DE 10)
Cuando un nuevo socio se afilia al club, debe contar con un fondo inicial para cubrir sus consumos y los de las personas afiliadas, El monto del fondo inicial se determina según el tipo de suscripción del socio: los socios regulares con $50.000 y los socios VIP con $100.000. Los socios pueden aumentar sus fondos, pero tienen una restricción máxima, que también depende del tipo de suscripción, de la siguiente manera: regulares $1´000.000 y VIP $5´000.000.
Una factura se genera cada vez que un socio o uno de sus asociados hacen un consumo. Para hacer un consumo, el socio debe contar con fondos suficientes para pagarlo. Una factura sólo puede ser pagada si el socio ene fondos suficientes para hacerlo. Al pagar la factura, esta es eliminada de la lista de facturas sin pagar y se descuenta el valor de los fondos del socio.
De cada factura se conoce:
- El concepto
- El valor
- El nombre del socio o de la persona autorizada que generó el consumo.
Cada socio puede agregar personas autorizadas a su lista, siempre y cuando cuente con fondos. Adicionalmente puede eliminar un autorizado de la lista, si este no ene una factura sin pagar a su nombre.
La aplicación debe permitir:
1. Afiliar un socio al club.
2. Registrar una persona autorizada por un socio.
3. Pagar una factura.
4. Registrar un consumo en la cuenta de un socio
5. Aumentar fondos de la cuenta de un socio
6. En la clase Club definir un método denominado EliminarSocio, este recibe como parámetro la cédula del socio y retorna un valor booleano indicando que el socio fue eliminado.
Tenga en cuenta que en este método se pueden presentar 4 tipos de errores que son:
• Que no exista un socio con la cédula recibida como parámetro.
• Que el socio sea de po VIP. No se pueden eliminar socios de po VIP.
• Que el socio tenga facturas pendientes de pago. No se pueden eliminar socios con facturas pendientes de pago.
• Que el socio tenga más de un autorizado. No se puede eliminar un socio con más de un autorizado.
7. En la clase Club número el método debe retornar el valor correspondiente al total de consumos del socio de dicha cédula. Si no se encuentra una afiliación para este número de cédula, se maneja la condición de error que indica la situación.
Nota: cuando no existan consumos para la afiliación de la cédula dada, el método debe retornar 0.
Vaya que tan grande de este proyecto, pero aquí vine a darte la solución, ya que fue trabajoso de hacerlo.
EliminarClase Socio
import java.util.ArrayList;
public class Socio{
private String cedula;
private String nombre;
private double fondos;
private String tipoSuscripcion;
private ArrayList facturas;
private ArrayList autorizados;
public Socio(String cedula,String nombre,String tipoSuscripcion){
this.cedula=cedula;
this.nombre=nombre;
this.tipoSuscripcion=tipoSuscripcion;
this.fondos=tipoSuscripcion.equals("VIP") ? 100000 : 50000;
this.facturas=new ArrayList<>();
this.autorizados=new ArrayList<>();
}
public String getCedula(){
return cedula;
}
public double getFondos(){
return fondos;
}
public void aumentarFondos(double monto){
double limite=tipoSuscripcion.equals("VIP") ? 5000000 : 1000000;
if((fondos+monto)<=limite) {
fondos += monto;
}else{
System.out.println("No se puede superar el límite de fondos");
}
}
public void registrarConsumo(String concepto,double valor,String persona){
if(fondos>=valor){
facturas.add(new Factura(concepto, valor, persona));
fondos-=valor;
}else{
System.out.println("Fondos insuficientes para el consumo");
}
}
public boolean pagarFactura(int indice){
if(indice>=0&& indice=factura.getValor()){
fondos-=factura.getValor();
facturas.remove(indice);
return true;
}
}
System.out.println("No se puede pagar la factura");
return false;
}
public boolean agregarAutorizado(String nombre){
if(autorizados.size()<10){
autorizados.add(nombre);
return true;
}
System.out.println("No se puede agregar más autorizados");
return false;
}
public boolean eliminarAutorizado(String nombre){
for(Factura factura:facturas){
if(factura.getPersona().equals(nombre)){
System.out.println("No se puede eliminar. Tiene facturas pendientes");
return false;
}
}
return autorizados.remove(nombre);
}
}
Continua.
Continua con el anterior.
EliminarClase Factura
public class Factura{
private String concepto;
private double valor;
private String persona;
public Factura(String concepto,double valor,String persona){
this.concepto=concepto;
this.valor=valor;
this.persona=persona;
}
public double getValor(){
return valor;
}
public String getPersona(){
return persona;
}
}
Clase Club
import java.util.ArrayList;
public class Club{
private ArrayListsocios;
private int vipCount=0;
public Club(){
socios=new ArrayList<>();
}
public boolean afiliarSocio(String cedula,String nombre,String tipo){
if(buscarSocio(cedula)!=null){
System.out.println("Ya existe un socio con esa cédula");
return false;
}
if(tipo.equals("VIP")&&vipCount>=3){
System.out.println("Se alcanzó el límite de socios VIP");
return false;
}
Socio nuevoSocio=new Socio(cedula,nombre,tipo);
socios.add(nuevoSocio);
if(tipo.equals("VIP"))vipCount++;
return true;
}
public boolean eliminarSocio(String cedula){
Socio socio=buscarSocio(cedula);
if(socio==null){
System.out.println("No existe un socio con esa cédula");
return false;
}
if(socio.getFondos()>0||socio.autorizados.size()>1){
System.out.println("No se puede eliminar este socio por condiciones no cumplidas");
return false;
}
if(socio.tipoSuscripcion.equals("VIP")){
System.out.println("No se pueden eliminar socios VIP");
return false;
}
socios.remove(socio);
return true;
}
public double totalConsumoSocio(String cedula){
Socio socio=buscarSocio(cedula);
if(socio==null){
System.out.println("No existe una afiliación con esa cédula");
return 0;
}
return socio.getFondos();
}
private Socio buscarSocio(String cedula){
for(Socio s:socios){
if(s.getCedula().equals(cedula)){
return s;
}
}
return null;
}
}
Ejemplo de uso
public class Main{
public static void main(String [] args){
Club club=new Club();
//Afiliar socios
club.afiliarSocio("12345","Juan Perez","Regular");
club.afiliarSocio("67890","Maria Lopez","VIP");
//Registrar consumo
Socio socio=club.buscarSocio("12345");
if(socio!=null){
socio.registrarConsumo("Almuerzo",5000,"Juan Perez");
}
//Pagar factura
if(socio!=null){
socio.pagarFactura(0);
}
//Total de consumo
System.out.println("Total consumido: "+club.totalConsumoSocio("12345"));
//Intentar eliminar socio
club.eliminarSocio("12345");
}
}
Eso sería todo.
Nada
ResponderEliminaralguien ayudeme desarrollando estos 6 ejercicios java porfavor
ResponderEliminar1. Programa que determine si un número ingresado es un número primo.
2. Escribir un programa que imprima por pantalla todas las fichas de dominó, de una por
línea y sin repetir utilizando ciclos.
3. Escribir un programa que cuente cuántas palabras son verbos (en infinitivo) en un texto
ingresado por el usuario. Recuerde que los infinitivos terminan TODOS en una vocal + “r”.
4. Escribir un programa que pida una palabra y cuente el número de vocales y consonantes
que contiene.
5. Escribir un programa que sirva para generar códigos de usuario por el procedimiento
siguiente: Tiene que leer el nombre y los dos apellidos de una persona y devolver un
código de usuario formado por las tres primeras letras del primer apellido, las tres
primeras letras del segundo apellido y las tres primeras letras del nombre. Por ejemplo, si
la cadena de entrada es: “JORGE GUIDO SANTAMARIA” debe devolver “GUISANJOR”.
6. Programa que simule el juego de doble o nada que permita ir jugando y apostando hasta
que el jugador decida abandonar el juego. El programa debe sacar por pantalla el número
de jugadas y el total ganado por el jugador (si ha perdido debe ser una cantidad negativa)
Soluciones:
EliminarEjercicio 1:
import java.util.Scanner;
public class NumeroPrimo {
public static void main(String [] args){
Scanner scanner=new Scanner(System.in);
System.out.print("Ingrese un número entero: ");
int num=scanner.nextInt();
boolean esPrimo=num>1;
for(int i=2;i*i<=num;i++){
if(num%i==0){
esPrimo = false;
break;
}
}
System.out.println(num+(esPrimo?" es primo.":" no es primo."));
}
}
Ejercicio 2:
public class FichasDomino{
public static void main(String [] args){
for(int i=0;i<=6;i++){
for(int j=i;j<=6;j++){
System.out.println("[" + i + " | " + j + "]");
}
}
}
}
Ejercicio 3:
import java.util.Scanner;
public class ContarVerbos{
public static void main(String [] args){
Scanner scanner=new Scanner(System.in);
System.out.print("Ingrese un texto: ");
String texto=scanner.nextLine().toLowerCase();
scanner.close();
String[]palabras=texto.split("\\s+");
int contador=0;
for(String palabra:palabras){
if(palabra.matches(".*[aeiou]r")){ // Verifica si termina en vocal + 'r'
contador++;
}
}
System.out.println("Cantidad de verbos en infinitivo: "+contador);
}
}
Ejercicio 4:
import java.util.Scanner;
public class ContarLetras{
public static void main(String [] args){
Scanner scanner=new Scanner(System.in);
System.out.print("Ingrese una palabra: ");
String palabra=scanner.nextLine().toLowerCase();
scanner.close();
int vocales=0,consonantes=0;
for(char c:palabra.toCharArray()){
if("aeiou".indexOf(c)!=-1){
vocales++;
}else if(Character.isLetter(c)){
consonantes++;
}
}
System.out.println("Vocales: "+vocales);
System.out.println("Consonantes: "+consonantes);
}
}
Ejercicio 5:
import java.util.Scanner;
public class CodigoUsuario{
public static void main(String [] args){
Scanner scanner=new Scanner(System.in);
System.out.print("Ingrese nombre y dos apellidos: ");
String[]partes=scanner.nextLine().toUpperCase().split("\\s+");
scanner.close();
if(partes.length<3){
System.out.println("Debe ingresar un nombre y dos apellidos.");
return;
}
String codigo=partes[1].substring(0, 3)+partes[2].substring(0, 3)+partes[0].substring(0, 3);
System.out.println("Código de usuario: "+codigo);
}
}
Ejercicio 6:
import java.util.Scanner;
public class DobleONada{
public static void main(String [] args){
Scanner scanner=new Scanner(System.in);
int saldo=100;
int jugadas=0;
System.out.println("Bienvenido a 'Doble o Nada'!");
while(true){
System.out.println("Saldo actual: "+saldo);
System.out.print("Ingrese su apuesta(0 para salir): ");
int apuesta=scanner.nextInt();
if(apuesta==0) break;
if(apuesta>saldo){
System.out.println("No puedes apostar más de tu saldo!");
continue;
}
jugadas++;
boolean gana=Math.random()<0.5; // 50% de probabilidad de ganar
if(gana){
saldo+=apuesta;
System.out.println("¡Ganaste! Nuevo saldo: "+saldo);
}else{
saldo-=apuesta;
System.out.println("Perdiste... Nuevo saldo: "+saldo);
}
if(saldo<=0){
System.out.println("Te has quedado sin dinero. Fin del juego.");
break;
}
}
scanner.close();
System.out.println("Jugadas realizadas: "+jugadas);
System.out.println("Saldo final: "+saldo);
}
}
Espero haberte ayudado de los ejercicios propuestos.
Ayuda ......
ResponderEliminarLeer una expresión y contar la frecuencia de cada operador
Aquí está la solución:
Eliminarimport java.util.HashMap;
import java.util.Scanner;
public class ContadorOperadores{
public static void main(String[]args){
Scanner scanner=new Scanner(System.in);
System.out.print("Ingrese una expresión matemática: ");
String expresion=scanner.nextLine();
char[]operadores={'+', '-', '*', '/', '%', '^'};
HashMapfrecuencia=new HashMap<>();
for(char operador:operadores){
frecuencia.put(operador, 0);
}
for (char c : expresion.toCharArray()) {
if (frecuencia.containsKey(c)) {
frecuencia.put(c, frecuencia.get(c) + 1);
}
}
System.out.println("Frecuencia de operadores:");
for(char operador:operadores){
if(frecuencia.get(operador)>0){
System.out.println(operador+": "+frecuencia.get(operador));
}
}
}
}
Modificando de la solución:
Eliminarimport java.util.HashMap;
import java.util.Scanner;
public class ContadorOperadores {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Ingrese una expresión matemática: ");
String expresion = scanner.nextLine();
scanner.close();
// Definir los operadores a contar
char[] operadores = {'+', '-', '*', '/', '%', '^'};
// Mapa para contar la frecuencia de cada operador
HashMap frecuencia = new HashMap<>();
for (char operador : operadores) {
frecuencia.put(operador, 0); // Inicializar conteo en 0
}
// Contar la frecuencia de los operadores en la expresión
for (char c : expresion.toCharArray()) {
if (frecuencia.containsKey(c)) {
frecuencia.put(c, frecuencia.get(c) + 1);
}
}
// Mostrar los resultados
System.out.println("Frecuencia de operadores:");
for (char operador : operadores) {
if (frecuencia.get(operador) > 0) {
System.out.println(operador + ": " + frecuencia.get(operador));
}
}
}
}
Debido que no sé por qué no aparece lamentablemente no se puede modificar el texto cuando alguien es anónimo, pero me supongo que hay que separarlo.
Eliminarimport java.util.HashMap;
import java.util.Scanner;
public class ContadorOperadores {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Ingrese una expresión matemática: ");
String expresion = scanner.nextLine();
scanner.close();
char[] operadores = {'+', '-', '*', '/', '%', '^'};
HashMap frecuencia = new HashMap<>();
for (char operador : operadores) {
frecuencia.put(operador, 0); // Inicializar conteo en 0
}
for (char c : expresion.toCharArray()) {
if (frecuencia.containsKey(c)) {
frecuencia.put(c, frecuencia.get(c) + 1);
}
}
System.out.println("Frecuencia de operadores:");
for (char operador : operadores) {
if (frecuencia.get(operador) > 0) {
System.out.println(operador + ": " + frecuencia.get(operador));
}
}
}
}
Yo te ayudo, claro que sí.
EliminarSi necesitas leer una expresión en Java y contar cuántas veces aparece cada operador (+, -, *, /, %, etc.), puedes recorrer la cadena carácter por carácter y llevar un contador para cada operador.
Ejemplo:
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class FrecuenciaOperadores {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese una expresión: ");
String expresion = sc.nextLine();
Map frecuencia = new HashMap<>();
for (int i = 0; i < expresion.length(); i++) {
char c = expresion.charAt(i);
if (c == '+' || c == '-' || c == '*' ||
c == '/' || c == '%' || c == '=') {
frecuencia.put(c, frecuencia.getOrDefault(c, 0) + 1);
}
}
System.out.println("Frecuencia de operadores:");
for (Map.Entry entry : frecuencia.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
sc.close();
}
}
Ejemplo de entrada
a+b-c*d/e+a%2
Salida posible
Frecuencia de operadores:
+: 2
-: 1
*: 1
/: 1
%: 1
Si el ejercicio es académico y solo permite arreglos (sin HashMap), también puede hacerse con contadores individuales para cada operador.
Ejercicio propuesto:
ResponderEliminarUna empresa paga a sus empleados una bonificación mensual según el número de ventas realizadas.
Se pide hacer un programa en Java que:
Solicite al usuario la cantidad de empleados (N)
Para cada empleado, ingresar:
nombre
número de ventas
monto total vendido
Calcular la bonificación según:
Si ventas >= 10 → 10% del monto vendido
Si ventas >= 5 y < 10 → 5% del monto vendido
Si ventas < 5 → 2% del monto vendido
Mostrar:
nombre del empleado
bonificación
Mostrar:
total de bonificaciones pagadas
empleado con mayor bonificación
Solución:
Java
import java.util.Scanner;
public class Bonificaciones {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese cantidad de empleados: ");
int n = sc.nextInt();
sc.nextLine();
String[] nombres = new String[n];
double[] bonos = new double[n];
double totalBonos = 0;
double mayorBono = 0;
int posMayor = 0;
for (int i = 0; i < n; i++) {
System.out.println("\nEmpleado " + (i + 1));
System.out.print("Nombre: ");
nombres[i] = sc.nextLine();
System.out.print("Numero de ventas: ");
int ventas = sc.nextInt();
System.out.print("Monto total vendido: ");
double monto = sc.nextDouble();
sc.nextLine();
double bono;
if (ventas >= 10) {
bono = monto * 0.10;
} else if (ventas >= 5) {
bono = monto * 0.05;
} else {
bono = monto * 0.02;
}
bonos[i] = bono;
totalBonos += bono;
if (bono > mayorBono) {
mayorBono = bono;
posMayor = i;
}
}
System.out.println("\n--- RESULTADOS ---");
for (int i = 0; i < n; i++) {
System.out.println(nombres[i] + " -> Bono: " + bonos[i]);
}
System.out.println("\nTotal de bonos pagados: " + totalBonos);
System.out.println("Mayor bono: " + nombres[posMayor] + " con " + mayorBono);
sc.close();
}
}
EXPLICACIÓN SIMPLE
✔ Se usan arreglos para guardar empleados
✔ Se calcula bono según ventas
✔ Se acumula total
✔ Se busca el mayor bono
EJEMPLO
Entrada:
Juan - 12 ventas - 1000
Ana - 6 ventas - 800
Luis - 3 ventas - 500
Salida:
Juan -> 100.0
Ana -> 40.0
Luis -> 10.0
Total de bonos: 150.0
Mayor bono: Juan con 100.0