feat(ch 4): solved ex blocks 9 & 10

This commit is contained in:
Rafa Muñoz
2024-11-19 09:46:58 +01:00
parent d3bc19bf58
commit d52834bd8d
10 changed files with 363 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque09;
public class Ejercicio01_StringFromArray {
/**
*
* @param args
*/
public static void main(String[] args) {
int a[] = new int[] {97, 98, 99, 100};
System.out.println("String devuelto: " + stringFromArray(a));
}
/**
*
* @param b
* @return
*/
public static String stringFromArray (int b[]) {
StringBuffer sb = new StringBuffer();
for (int num : b) {
sb.append((char) num);
}
// for (int i = 0; i < b.length; i++) {
// sb.append((char) b[i]);
// }
return sb.toString();
}
}

View File

@@ -0,0 +1,35 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque09;
import tutorialJava.UtilsArrays;
public class Ejercicio02_findAndReplace {
/**
*
* @param args
*/
public static void main(String[] args) {
int a[] = new int[] {97, 98, 99, 100};
UtilsArrays.imprimeArray(a);
findAndReplace(a, 99, 115);
UtilsArrays.imprimeArray(a);
}
/**
*
* @param b
* @return
*/
public static void findAndReplace (int b[], int buscado, int reemplazo) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
if (b[i] == buscado) {
b[i] = reemplazo;
}
}
}
}

View File

@@ -0,0 +1,35 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque09;
import tutorialJava.UtilsArrays;
public class Ejercicio03_addInteger {
/**
*
* @param args
*/
public static void main(String[] args) {
int a[] = new int[] {97, 98, 99, 100};
UtilsArrays.imprimeArray(a);
UtilsArrays.imprimeArray(addInteger(a, 99));
}
/**
*
* @param b
* @return
*/
public static int[] addInteger (int b[], int agregado) {
int c[] = new int[b.length + 1];
for (int i = 0; i < b.length; i++) {
c[i] = b[i];
}
c[c.length - 1] = agregado;
return c;
}
}

View File

@@ -0,0 +1,33 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque09;
import tutorialJava.UtilsArrays;
public class Ejercicio04_countOccurrences {
/**
*
* @param args
*/
public static void main(String[] args) {
int a[] = new int[] {97, 98, 99, 100, 99, 98};
UtilsArrays.imprimeArray(a);
System.out.println("Ocurrencias de 99: " + countOcurrences(a, 99));
}
/**
*
* @param b
* @return
*/
public static int countOcurrences (int b[], int occurrence) {
int cont = 0;
for (int i : b) {
if (i == occurrence) cont++;
}
return cont;
}
}

View File

@@ -0,0 +1,43 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque09;
import tutorialJava.UtilsArrays;
public class Ejercicio05_removeInteger {
/**
*
* @param args
*/
public static void main(String[] args) {
int a[] = new int[] {99, 98, 99, 100, 99, 98};
UtilsArrays.imprimeArray(a);
UtilsArrays.imprimeArray(removeInteger(a, 99));
}
/**
*
* @param b
* @return
*/
public static int[] removeInteger (int b[], int forRemove) {
int contOccurrences =
Ejercicio04_countOccurrences.countOcurrences(b, forRemove);
int c[] = new int[b.length - contOccurrences];
int j = 0; // Sólo se utiliza en el nuevo array creado
for (int num : b) {
if (num != forRemove) {
c[j] = num;
j++;
}
}
return c;
}
}

View File

@@ -0,0 +1,40 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque10;
public class Ejercicio01_LoteriaPrimitivaArrayConValoresSinRepeticion {
/**
*
* @param args
*/
public static void main(String[] args) {
// Declaración de variables
int apuesta[] = new int[7];
boolean numEncontradoEnPosicionesPrevias;
// Un bucle que recorre el array de izquiera a derecha
for (int i = 0; i < apuesta.length; i++) {
// No sé cuántas veces tendré que genera un número al azar para asegurarme
// de que no existe en los valores que se sitúan a la izquierda de la
// posición marcada por el valor de la "i".
do {
numEncontradoEnPosicionesPrevias = false;
apuesta[i] = (int) Math.round(Math.random() * (49 - 1) + 1);
// Busco el valor de la posición de "i" en las posiciones a la izquierda
// de ese valor
for (int j = 0; j < i; j++) {
if (apuesta[i] == apuesta[j]) {
numEncontradoEnPosicionesPrevias = true;
}
}
} while (numEncontradoEnPosicionesPrevias == true);
}
// Recorro y muestro el array
for (int i = 0; i < apuesta.length; i++) {
System.out.print(apuesta[i] + " ");
}
}
}

View File

@@ -0,0 +1,44 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque10;
public class Ejercicio02_OndaDeAsteriscosAlAzar {
/**
*
* @param args
*/
public static void main(String[] args) {
// Declaración de variables
char matriz[][] = new char[10][30];
int asteriscosEnCadaLinea;
// Relleno toda la matriz de espacios en blanco
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
matriz[i][j] = ' ';
}
}
// Recorro todas las filas
for (int i = 0; i < matriz.length; i++) {
// Determina la cantidad de asteriscos a introducir en cada línea
asteriscosEnCadaLinea = (int) Math.round(Math.random() * 30);
// Llenar tantos asteriscos desde la izquierda como indique la variable
for (int j = 0; j < asteriscosEnCadaLinea; j++) {
matriz[i][j] = '*';
}
}
// Imprimo en consola
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
System.out.print(matriz[i][j]);
}
System.out.println();
}
}
}

View File

@@ -0,0 +1,21 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque10;
public class Ejercicio03_NumerosAlAzarHastaMediaProximaA500 {
public static void main(String[] args) {
int numAzar, suma = 0, contador = 0;
float media;
do {
numAzar = (int) Math.round(Math.random() * 1000);
suma += numAzar;
contador++;
media = suma / (float) contador;
} while (media < 499.5 || media > 500.5);
System.out.println("He necesitado " + contador + " números para tener una media " +
" de " + media);
}
}

View File

@@ -0,0 +1,39 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque10;
public class Ejercicio04_MatrizConBordeYCeroAlAzar {
public static void main(String[] args) {
// Declaración de variables
char matriz[][] = new char[20][10];
int posicionAzarFila, posicionAzarColumna;
// La relleno de espacios en blanco
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
if (i == 0 || i == (matriz.length - 1) || j == 0 || j == (matriz[0].length - 1)) {
matriz[i][j] = '*';
}
else {
matriz[i][j] = ' ';
}
}
}
// Posición del 0 con valores al azar en fila y columna
posicionAzarFila = (int) Math.round(Math.random() * (matriz.length - 2 - 1) + 1);
posicionAzarColumna = (int) Math.round(Math.random() * (matriz[0].length - 2 - 1) + 1);
// Coloco el cero
matriz[posicionAzarFila][posicionAzarColumna] = '0';
// Imprimo en consola
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
System.out.print(matriz[i][j]);
}
System.out.println();
}
}
}

View File

@@ -0,0 +1,40 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque10;
public class Ejercicio05_MatrizConBordeYCerosYUnosAlAzar {
public static void main(String[] args) {
// Declaración de variables
char matriz[][] = new char[20][10];
int probabilidad50;
// La relleno de espacios en blanco
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
if (i == 0 || i == (matriz.length - 1) || j == 0 || j == (matriz[0].length - 1)) {
matriz[i][j] = '*';
}
else {
// Relleno de 0 y 1 al 50% de probabilidad
probabilidad50 = (int) Math.round(Math.random());
if (probabilidad50 == 0) {
matriz[i][j] = '0';
}
else {
matriz[i][j] = '1';
}
}
}
}
// Imprimo en consola
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
System.out.print(matriz[i][j]);
}
System.out.println();
}
}
}