From 1d1ad19429dba6c45bf4f6e4fcb30c0fad7acadb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=20Mu=C3=B1oz?= Date: Tue, 15 Oct 2024 13:47:37 +0200 Subject: [PATCH] feat(ch 3): added bl 3 & 4 --- .../Ejercicio01_SumaMediaNumerosHasta0.java | 23 ++++++++ .../Ejercicio02_MayorMenorNumerosHasta0.java | 29 +++++++++++ .../Ejercicio03_TablaDeMultiplicarHasta0.java | 26 ++++++++++ ...o04_ContadorPositivosYNegativosHasta0.java | 26 ++++++++++ ...ercicio01_NumeroPrimoOCompuestoSinFor.java | 39 ++++++++++++++ ...rosPrimosOCompuestoEntreLimitesSinFor.java | 52 +++++++++++++++++++ .../Ejercicio03_TablasMultiplicarHasta15.java | 24 +++++++++ .../Ejercicio04_ImprimirEnteroEnBinario.java | 39 ++++++++++++++ .../Ejercicio05_FactorialSinUsarBucleFor.java | 28 ++++++++++ 9 files changed, 286 insertions(+) create mode 100644 src/tutorialJava/capitulo3_bucles/ejercicios/bloque03/Ejercicio01_SumaMediaNumerosHasta0.java create mode 100644 src/tutorialJava/capitulo3_bucles/ejercicios/bloque03/Ejercicio02_MayorMenorNumerosHasta0.java create mode 100644 src/tutorialJava/capitulo3_bucles/ejercicios/bloque03/Ejercicio03_TablaDeMultiplicarHasta0.java create mode 100644 src/tutorialJava/capitulo3_bucles/ejercicios/bloque03/Ejercicio04_ContadorPositivosYNegativosHasta0.java create mode 100644 src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio01_NumeroPrimoOCompuestoSinFor.java create mode 100644 src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio02_NumerosPrimosOCompuestoEntreLimitesSinFor.java create mode 100644 src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio03_TablasMultiplicarHasta15.java create mode 100644 src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio04_ImprimirEnteroEnBinario.java create mode 100644 src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio05_FactorialSinUsarBucleFor.java diff --git a/src/tutorialJava/capitulo3_bucles/ejercicios/bloque03/Ejercicio01_SumaMediaNumerosHasta0.java b/src/tutorialJava/capitulo3_bucles/ejercicios/bloque03/Ejercicio01_SumaMediaNumerosHasta0.java new file mode 100644 index 0000000..425853d --- /dev/null +++ b/src/tutorialJava/capitulo3_bucles/ejercicios/bloque03/Ejercicio01_SumaMediaNumerosHasta0.java @@ -0,0 +1,23 @@ +package tutorialJava.capitulo3_bucles.ejercicios.bloque03; + +import java.util.Scanner; + +public class Ejercicio01_SumaMediaNumerosHasta0 { + + public static void main(String[] args) { + int suma = 0, contador = 0, num = 1; + Scanner sc = new Scanner(System.in); + + + for (;num != 0;) { + System.out.println("Introduzca número: "); + num = sc.nextInt(); + suma += num; + contador++; + } + + System.out.println("Suma: " + suma + " - Media: " + (suma / (float) (contador-1))); + + } + +} diff --git a/src/tutorialJava/capitulo3_bucles/ejercicios/bloque03/Ejercicio02_MayorMenorNumerosHasta0.java b/src/tutorialJava/capitulo3_bucles/ejercicios/bloque03/Ejercicio02_MayorMenorNumerosHasta0.java new file mode 100644 index 0000000..96ecaf5 --- /dev/null +++ b/src/tutorialJava/capitulo3_bucles/ejercicios/bloque03/Ejercicio02_MayorMenorNumerosHasta0.java @@ -0,0 +1,29 @@ +package tutorialJava.capitulo3_bucles.ejercicios.bloque03; + +import java.util.Scanner; + +public class Ejercicio02_MayorMenorNumerosHasta0 { + + public static void main(String[] args) { + int mayor = 0, menor = 0, num = 1; + Scanner sc = new Scanner(System.in); + + + for (int i = 0; num != 0; i++) { + System.out.println("Introduzca número: "); + num = sc.nextInt(); + if (i == 0) { + mayor = num; + menor = num; + } + else { + if (num > mayor) mayor = num; + if (num < menor) menor = num; + } + } + + System.out.println("Mayor: " + mayor + " - Menor: " + menor); + + } + +} diff --git a/src/tutorialJava/capitulo3_bucles/ejercicios/bloque03/Ejercicio03_TablaDeMultiplicarHasta0.java b/src/tutorialJava/capitulo3_bucles/ejercicios/bloque03/Ejercicio03_TablaDeMultiplicarHasta0.java new file mode 100644 index 0000000..eb109b9 --- /dev/null +++ b/src/tutorialJava/capitulo3_bucles/ejercicios/bloque03/Ejercicio03_TablaDeMultiplicarHasta0.java @@ -0,0 +1,26 @@ +package tutorialJava.capitulo3_bucles.ejercicios.bloque03; + +import java.util.Scanner; + +public class Ejercicio03_TablaDeMultiplicarHasta0 { + + public static void main(String[] args) { + int num = 1; + Scanner sc = new Scanner(System.in); + + + for (;num != 0;) { + System.out.println("Introduzca número: "); + num = sc.nextInt(); + if (num == 0) { + break; + } + + for (int i = 1; i <= 10; i++) { + System.out.println(num + " * " + i + " = " + (num * i)); + } + } + + } + +} diff --git a/src/tutorialJava/capitulo3_bucles/ejercicios/bloque03/Ejercicio04_ContadorPositivosYNegativosHasta0.java b/src/tutorialJava/capitulo3_bucles/ejercicios/bloque03/Ejercicio04_ContadorPositivosYNegativosHasta0.java new file mode 100644 index 0000000..f59e566 --- /dev/null +++ b/src/tutorialJava/capitulo3_bucles/ejercicios/bloque03/Ejercicio04_ContadorPositivosYNegativosHasta0.java @@ -0,0 +1,26 @@ +package tutorialJava.capitulo3_bucles.ejercicios.bloque03; + +import java.util.Scanner; + +public class Ejercicio04_ContadorPositivosYNegativosHasta0 { + + public static void main(String[] args) { + int num = 1, contadorPos = 0, contadorNeg = 0; + Scanner sc = new Scanner(System.in); + + + for (;num != 0;) { + System.out.println("Introduzca número: "); + num = sc.nextInt(); + if (num == 0) { + break; + } + + if (num > 0) contadorPos++; + if (num < 0) contadorNeg++; + } + + System.out.println("Positivos: " + contadorPos + " - Negativos: " + contadorNeg); + } + +} diff --git a/src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio01_NumeroPrimoOCompuestoSinFor.java b/src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio01_NumeroPrimoOCompuestoSinFor.java new file mode 100644 index 0000000..33f7202 --- /dev/null +++ b/src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio01_NumeroPrimoOCompuestoSinFor.java @@ -0,0 +1,39 @@ +package tutorialJava.capitulo3_bucles.ejercicios.bloque04; + +import java.util.Scanner; + +public class Ejercicio01_NumeroPrimoOCompuestoSinFor { + + public static void main(String[] args) { + // Creo las variables necesarias + int numUsuario, i; + Scanner sc = new Scanner(System.in); + boolean numeroTieneDivisores; + + // Pido el número al usuario + System.out.println("Por favor, introduzca un número y comprobaré si es primo: "); + numUsuario = sc.nextInt(); + + // Utilizo un bucle diferente al for, pero le imito con una variable "i" + i = 2; + numeroTieneDivisores = false; + // Pasaré con la variable "i" por todos los números entre el 2 y el anterior al número + // que ha introducido el usuario, buscando divisores + while (i < numUsuario) { + if (numUsuario % i == 0) { // He encontrado un divisor + numeroTieneDivisores = true; + break; + } + i++; + } + + // Si el número tiene divisores se trata de un compuesto, si no se trata de un primo + if (numeroTieneDivisores) { + System.out.println("El número " + numUsuario + " es compuesto"); + } + else { + System.out.println("El número " + numUsuario + " es primo"); + } + } + +} diff --git a/src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio02_NumerosPrimosOCompuestoEntreLimitesSinFor.java b/src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio02_NumerosPrimosOCompuestoEntreLimitesSinFor.java new file mode 100644 index 0000000..42ea54a --- /dev/null +++ b/src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio02_NumerosPrimosOCompuestoEntreLimitesSinFor.java @@ -0,0 +1,52 @@ +package tutorialJava.capitulo3_bucles.ejercicios.bloque04; + +import java.util.Scanner; + +public class Ejercicio02_NumerosPrimosOCompuestoEntreLimitesSinFor { + + public static void main(String[] args) { + // Creo las variables necesarias + int limiteInf, limiteSup, numInvestigado, i; + Scanner sc = new Scanner(System.in); + boolean numeroTieneDivisores; + + // Pido los límites al usuario + System.out.println("Por favor, introduzca un límite inferior: "); + limiteInf = sc.nextInt(); + System.out.println("Por favor, introduzca un límite superior: "); + limiteSup = sc.nextInt(); + + // Utilizo un bucle diferente al for, con la variable "numInvestigado" + numInvestigado = limiteInf; + // Pasaré por todos los número entre el límite inferior y el superior, comprobando siempre el + // numInvestigado + while (numInvestigado <= limiteSup) { + // Supongo que el número investigado es primo e intento demostrar que tiene algún divisor. + numeroTieneDivisores = false; + i = 2; + // Pasaré con la variable "i" por todos los números entre el 2 y el anterior al número + // que ha introducido el usuario, buscando divisores + while (i < numInvestigado) { + if (numInvestigado % i == 0) { // He encontrado un divisor + numeroTieneDivisores = true; + break; + } + i++; + } + + // Si el número tiene divisores se trata de un compuesto, si no se trata de un primo + if (numeroTieneDivisores == true) { + System.out.println("El número " + numInvestigado + " es compuesto"); + } + else { + System.out.println("El número " + numInvestigado + " es primo"); + } + + // Sumamos uno al número investigado para comprobar el siguiente número + numInvestigado++; + } + + + } + +} diff --git a/src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio03_TablasMultiplicarHasta15.java b/src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio03_TablasMultiplicarHasta15.java new file mode 100644 index 0000000..495467d --- /dev/null +++ b/src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio03_TablasMultiplicarHasta15.java @@ -0,0 +1,24 @@ +package tutorialJava.capitulo3_bucles.ejercicios.bloque04; + +public class Ejercicio03_TablasMultiplicarHasta15 { + + public static void main(String[] args) { + // Declaro las variables + int num = 1; // Número al que se le calculará su tabla de multiplicar + int factor; // Factor por el que se multiplicará al número "num" + + // En lugar de bucles "for" usaré bucles while + + do { + factor = 1; + System.out.println("\nTabla de multiplicar del " + num); + do { + System.out.println("\t" + num + " x " + factor + " = " + (num * factor)); + factor++; // Aumento el factor + } while (factor <= 10); + + num++; // Prepara para que se calcule la tabla de multiplicar del siguiente número; + } while (num <= 15); + } + +} diff --git a/src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio04_ImprimirEnteroEnBinario.java b/src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio04_ImprimirEnteroEnBinario.java new file mode 100644 index 0000000..66ece79 --- /dev/null +++ b/src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio04_ImprimirEnteroEnBinario.java @@ -0,0 +1,39 @@ +package tutorialJava.capitulo3_bucles.ejercicios.bloque04; + +import java.util.Scanner; + +public class Ejercicio04_ImprimirEnteroEnBinario { + + public static void main(String[] args) { + // Declaro las variables + int numAImprimirEnBinario; + Scanner sc = new Scanner(System.in); + int numDescubrimientoBits; + + // Pido el número al usuario + System.out.println("Por favor, introduzca un número y lo imprimiré en binario: "); + numAImprimirEnBinario = sc.nextInt(); + + // Voy a hacer la operación "&" para ir detectando los bits del número + numDescubrimientoBits = (int) Math.pow(2, 30); + while (numDescubrimientoBits > 0) { + + if ( (numDescubrimientoBits & numAImprimirEnBinario) != 0) { + System.out.print("1"); + } + else { + System.out.print("0"); + } + + // Acualizo el valor del numDescubrimientoBits para que apunte al siguiente bit por descubrir + numDescubrimientoBits >>= 1; + } + + } + +} + + + + + diff --git a/src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio05_FactorialSinUsarBucleFor.java b/src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio05_FactorialSinUsarBucleFor.java new file mode 100644 index 0000000..62078ed --- /dev/null +++ b/src/tutorialJava/capitulo3_bucles/ejercicios/bloque04/Ejercicio05_FactorialSinUsarBucleFor.java @@ -0,0 +1,28 @@ +package tutorialJava.capitulo3_bucles.ejercicios.bloque04; + +import java.util.Scanner; + +public class Ejercicio05_FactorialSinUsarBucleFor { + + public static void main(String[] args) { + // Declaro las variables + int num, i, factorial = 1; + Scanner sc = new Scanner(System.in); + + // Pido el número al usuario + System.out.println("Por favor, introduzca un número y calcularé su factorial: "); + num = sc.nextInt(); + + // Realizo el algoritmo de cálculo del factorial + factorial = num; + i = num - 1; + while (i > 1) { + factorial *= i; + i--; + } + + // Imprimo el resultado + System.out.println("Factorial de " + num + " es: " + factorial); + } + +}