mirror of
https://gitlab.com/tutorial-java-rafa-munoz/tutorial-java-2024-25/tutorialjava2024-25.git
synced 2025-11-09 18:03:09 +01:00
feat(ch 3): added bl 3 & 4
This commit is contained in:
@@ -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)));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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++;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user