feat(ch 4): blocks 1 & 2 solved

This commit is contained in:
Rafa Muñoz
2024-10-22 10:08:27 +02:00
parent 364900093f
commit 2ec19e8e29
15 changed files with 710 additions and 14 deletions

View File

@@ -2,24 +2,184 @@ package tutorialJava;
public class UtilsArrays {
/**
*
* @param a
*/
public static void inicializarArray(int a[], int limiteSup) {
for (int i = 0; i < a.length; i++) {
a[i] = (int) Math.round(Math.random() * limiteSup);
}
}
/**
*
* @param a
* Imprime el array en consola, de forma que queda en una única línea y con
* un espacio en blanco entre valores
* @param num
*/
public static void muestraArray(int a[]) {
public static void imprimeArray (int a[]) {
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
}
/**
* Imprime el array en consola, de forma que queda en una única línea y con
* un espacio en blanco entre valores
* @param num
*/
public static void imprimeArray (char a[]) {
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
}
/**
*
* @param a
* @param limInf
* @param limSup
*/
public static void inicializaArray (int a[], int limInf, int limSup) {
for (int i = 0; i < a.length; i++) {
a[i] = Utils.obtenerNumeroAzar(limInf, limSup);
}
}
/**
*
* @param array
* @return
*/
public static int suma (int array[]) {
int suma = 0;
for (int i = 0; i < array.length; i++) {
suma += array[i];
}
return suma;
}
/**
*
* @param array
* @return
*/
public static float promedia (int array[]) {
return suma(array) / (float) array.length;
}
/**
*
* @param array
* @return
*/
public static int mayor (int array[]) {
int mayor = array[0];
for (int i = 1; i < array.length; i++) {
if (array[i] > mayor) mayor = array[i];
}
return mayor;
}
/**
*
* @param array
* @return
*/
public static int menor (int array[]) {
int menor = array[0];
for (int i = 1; i < array.length; i++) {
if (array[i] < menor) menor = array[i];
}
return menor;
}
/**
*
* @param filas
* @param cols
* @param valorInicial
* @return
*/
public static int[][] creaEInicializaMatriz (int filas, int cols, int valorInicial) {
int m[][] = new int[filas][cols];
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[i].length; j++) {
m[i][j] = valorInicial;
}
}
return m;
}
/**
*
* @param filas
* @param cols
* @param minimo
* @param maximo
* @return
*/
public static int[][] creaEInicializaMatrizAlAzar (
int filas, int cols, int minimo, int maximo) {
int m[][] = new int[filas][cols];
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[i].length; j++) {
m[i][j] = Utils.obtenerNumeroAzar(minimo, maximo);
}
}
return m;
}
/**
*
* @param m
*/
public static void imprimeMatriz (int m[][]) {
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[i].length; j++) {
System.out.print(m[i][j] + "\t");
}
System.out.println();
}
}
public static void ordenaArray (int a[], boolean asc) {
boolean hayIntercambios;
do {
hayIntercambios = false;
for (int i = 0; i < (a.length - 1); i++) {
if ((asc == true && a[i] > a[i + 1])
|| (asc == false && a[i] < a[i + 1])) {
int aux = a[i];
a[i] = a[i + 1];
a[i + 1] = aux;
hayIntercambios = true;
}
}
} while (hayIntercambios == true);
}
public static void ordenaArray(int[] a) {
ordenaArray(a, true);
}
}

View File

@@ -0,0 +1,44 @@
package tutorialJava.capitulo4_Arrays;
import tutorialJava.UtilsArrays;
public class Ej03_ArraysDeCaracteres {
public static void main(String[] args) {
// char a[] = new char[] {'H', 'o', 'l', 'a'};
//
// for (int i = 0; i < a.length; i++) {
// System.out.println((int) a[i]);
// }
// int a[] = new int[10];
// UtilsArrays.inicializaArray(a, 97, 122);
// for (int i = 0; i < a.length; i++) {
// System.out.print(a[i]);
// System.out.println(" " + ((char) a[i]));
// }
String str = "HolA";
for (int i = 0; i < str.length(); i++) {
int valorNumChar = (int) str.charAt(i);
if (valorNumChar >= 97 && valorNumChar <=122) { // minúsculas
System.out.print(str.charAt(i));
}
else {
if (valorNumChar >= 65 && valorNumChar <= 90) { // mayúsculas
System.out.print( (char) (valorNumChar + 32) );
}
}
}
}
}

View File

@@ -6,8 +6,8 @@ public class EjemploMetodos {
public static void main(String[] args) {
int array[] = new int[10];
UtilsArrays.inicializarArray(array, 10000);
UtilsArrays.muestraArray(array);
UtilsArrays.inicializaArray(array, 0, 10000);
UtilsArrays.imprimeArray(array);
}

View File

@@ -0,0 +1,39 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque01;
import tutorialJava.Utils;
import tutorialJava.UtilsArrays;
public class Ejercicio01_150ElementosEnArray_SumaMediaMayorMenor {
public static void main(String[] args) {
int array[] = new int[500];
UtilsArrays.inicializaArray(array, 0, 100);
UtilsArrays.imprimeArray(array);
// Imprimo resultados
System.out.println("Suma: " + UtilsArrays.suma(array)
+ " - Media: " + UtilsArrays.promedia(array) +
" - Menor: " + UtilsArrays.menor(array)
+ " - Mayor: " + UtilsArrays.mayor(array));
}
}

View File

@@ -0,0 +1,46 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque01;
import java.util.Scanner;
import tutorialJava.Utils;
import tutorialJava.UtilsArrays;
public class Ejercicio02_150ElementosEnArray_SumaMediaMayorMenorEntreLimites {
public static void main(String[] args) {
int array[] = new int[5], suma = 0, mayor, menor;
int limInf, limSup;
float media;
limInf = Utils.pideNumeroEntero("Introduzca límite inferior: ");
limSup = Utils.pideNumeroEntero("Introduzca límite superior: ");
UtilsArrays.inicializaArray(array, limInf, limSup);
UtilsArrays.imprimeArray(array);
// Imprimo resultados
System.out.println("Suma: " + UtilsArrays.suma(array)
+ " - Media: " + UtilsArrays.promedia(array) +
" - Menor: " + UtilsArrays.menor(array)
+ " - Mayor: " + UtilsArrays.mayor(array));
}
}

View File

@@ -0,0 +1,20 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque01;
import tutorialJava.UtilsArrays;
public class Ejercicio03_MuestraArrayEnOrdenInverso {
public static void main(String[] args) {
int array[] = new int[5];
UtilsArrays.inicializaArray(array, 0, 100);
UtilsArrays.imprimeArray(array);
for (int i = array.length-1; i >= 0; i--) {
System.out.print(array[i] + " ");
}
}
}

View File

@@ -0,0 +1,34 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque01;
import tutorialJava.Utils;
import tutorialJava.UtilsArrays;
public class Ejercicio04_EncuentraElementoEnArray {
public static void main(String[] args) {
int array[] = new int[5];
int numBuscado;
UtilsArrays.inicializaArray(array, 0, 100);
UtilsArrays.imprimeArray(array);
numBuscado = Utils.pideNumeroEntero("Número que deseas encontrar: ");
for (int i = 0; i < array.length; i++) {
if (numBuscado == array[i]) {
System.out.println("Encontrado en posición " + i);
return;
}
}
System.out.println("El número no existe en el array");
}
}

View File

@@ -0,0 +1,36 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque01;
import tutorialJava.Utils;
import tutorialJava.UtilsArrays;
public class Ejercicio05_SumaValoresParesEImpares {
public static void main(String[] args) {
int array[] = new int[5];
int sumaPares = 0, sumaImpares = 0;
UtilsArrays.inicializaArray(array, 0, 100);
UtilsArrays.imprimeArray(array);
for (int i = 0; i < array.length; i++) {
if (array[i] % 2 == 0) {
sumaPares += array[i];
}
else {
sumaImpares += array[i];
}
}
System.out.println("Suma pares: " + sumaPares + " - "
+ "Suma impares: " + sumaImpares);
}
}

View File

@@ -0,0 +1,36 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque01;
import tutorialJava.Utils;
import tutorialJava.UtilsArrays;
public class Ejercicio06_SumaValoresIndicePar {
public static void main(String[] args) {
int array[] = new int[5];
int sumaPares = 0, sumaImpares = 0;
UtilsArrays.inicializaArray(array, 0, 100);
UtilsArrays.imprimeArray(array);
for (int i = 0; i < array.length; i++) {
if (array[i] % 2 == 0) {
sumaPares += array[i];
}
else {
sumaImpares += array[i];
}
}
System.out.println("Suma pares: " + sumaPares);
System.out.println("Suma impares: " + sumaImpares);
}
}

View File

@@ -0,0 +1,31 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque02;
import tutorialJava.UtilsArrays;
public class Ejercicio01_ParesCambianSignoEnArray {
/**
*
* @param args
*/
public static void main (String args[]) {
int a[] = new int[15];
UtilsArrays.inicializaArray(a, -100, 100);
UtilsArrays.imprimeArray(a);
cambiaSignoEnValores(a);
UtilsArrays.imprimeArray(a);
}
/**
*
* @param array
*/
public static void cambiaSignoEnValores(int array[]) {
for (int i = 0; i < array.length; i++) {
if (array[i] % 2 == 0) {
array[i] = -array[i];
}
}
}
}

View File

@@ -0,0 +1,52 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque02;
import tutorialJava.UtilsArrays;
public class Ejercicio02_DosArraysCrearTercerArray {
/**
*
* @param args
*/
public static void main (String args[]) {
int a1[] = new int[15];
int a2[] = new int[15];
int a3[];
UtilsArrays.inicializaArray(a1, 0, 100);
UtilsArrays.imprimeArray(a1);
UtilsArrays.inicializaArray(a2, 0, 100);
UtilsArrays.imprimeArray(a2);
a3 = creaTercerArray(a1, a2);
UtilsArrays.imprimeArray(a3);
}
/**
*
* @param array
*/
public static int[] creaTercerArray (int a1[], int a2[]) {
int a[] = new int[a1.length];
for (int i = 0; i < a1.length; i++) {
if (i % 2 == 1) {
a[i] = a1[i];
}
else {
a[i] = a2[i];
}
}
return a;
}
}

View File

@@ -0,0 +1,46 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque02;
import tutorialJava.Utils;
import tutorialJava.UtilsArrays;
public class Ejercicio03_MultiplicaElementosArray {
/**
*
* @param args
*/
public static void main (String args[]) {
int a1[] = new int[15];
int factor;
// Incializo e imprimo el array
UtilsArrays.inicializaArray(a1, 0, 100);
UtilsArrays.imprimeArray(a1);
factor = Utils.pideNumeroEntero("Por favor, introduzca el factor: ");
multiplicaValoresPorFactor(a1, factor);
}
/**
*
* @param a
* @param factor
*/
public static void multiplicaValoresPorFactor (int a[], int factor) {
for (int i = 0; i < a.length; i++) {
a[i] *= factor;
}
}
}

View File

@@ -0,0 +1,43 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque02;
import tutorialJava.Utils;
import tutorialJava.UtilsArrays;
public class Ejercicio04_DeplazamientoCiclicoDerecha {
/**
*
* @param args
*/
public static void main (String args[]) {
int a[] = new int[] {1, 2, 3, 4, 5};
UtilsArrays.imprimeArray(a);
desplazaCiclicoDerecha(a);
UtilsArrays.imprimeArray(a);
}
/**
*
* @param a
* @param factor
*/
public static void desplazaCiclicoDerecha (int a[]) {
int aux = a[a.length - 1];
for (int i = (a.length - 1); i > 0; i--) {
a[i] = a[i - 1];
}
a[0] = aux;
}
}

View File

@@ -0,0 +1,48 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque02;
import tutorialJava.Utils;
import tutorialJava.UtilsArrays;
public class Ejercicio05_DeplazamientoCiclicoDerechaLugaresPersonalizados {
/**
*
* @param args
*/
public static void main (String args[]) {
int a[] = new int[] {1, 2, 3, 4, 5};
int posiciones;
UtilsArrays.imprimeArray(a);
posiciones = Utils.pideNumeroEntero("Indica cantidad de posiciones a derecha: ");
desplazaCiclicoDerecha(a, posiciones);
UtilsArrays.imprimeArray(a);
}
/**
*
* @param a
* @param factor
*/
public static void desplazaCiclicoDerecha (int a[], int posicionesARotar) {
for (int repeticiones = 0; repeticiones < posicionesARotar; repeticiones++) {
int aux = a[a.length - 1];
for (int i = (a.length - 1); i > 0; i--) {
a[i] = a[i - 1];
}
a[0] = aux;
}
}
}

View File

@@ -0,0 +1,61 @@
package tutorialJava.capitulo4_Arrays.ejercicios.bloque02;
import tutorialJava.Utils;
import tutorialJava.UtilsArrays;
public class Ejercicio06_DeplazamientoCiclicoLugaresYDireccionPersonalizadas {
/**
*
* @param args
*/
public static void main (String args[]) {
int a[] = new int[] {1, 2, 3, 4, 5};
int posiciones, direccion;
UtilsArrays.imprimeArray(a);
posiciones = Utils.pideNumeroEntero("Indica cantidad de posiciones: ");
direccion = Utils.pideNumeroEntero("Indica dirección (0-Izquierda, 1-Derecha): ");
desplazaCiclico(a, posiciones, direccion);
UtilsArrays.imprimeArray(a);
}
/**
*
* @param a
* @param factor
*/
public static void desplazaCiclico (int a[], int posiciones, int direccion) {
if (direccion == 1) { // Se desea desplazar a derecha
for (int repeticiones = 0; repeticiones < posiciones; repeticiones++) {
int aux = a[a.length - 1];
for (int i = (a.length - 1); i > 0; i--) {
a[i] = a[i - 1];
}
a[0] = aux;
}
}
else { // Se desea desplazar a izquierda
for (int repeticiones = 0; repeticiones < posiciones; repeticiones++) {
int aux = a[0];
for (int i = 0; i < (a.length - 1); i++) {
a[i] = a[i + 1];
}
a[a.length - 1] = aux;
}
}
}
}