From 9174e002ecb9cd67877a7b3228c6280af2016f40 Mon Sep 17 00:00:00 2001 From: h4ckx0r Date: Sun, 12 Jan 2025 12:43:35 +0100 Subject: [PATCH] Ejercicios Capitulo 6 bloque 1 --- src/capitulo06/bloque01/ejercicio01/Main.java | 88 +++++++++++++++++++ src/capitulo06/bloque01/ejercicio02/Main.java | 68 ++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 src/capitulo06/bloque01/ejercicio01/Main.java create mode 100644 src/capitulo06/bloque01/ejercicio02/Main.java diff --git a/src/capitulo06/bloque01/ejercicio01/Main.java b/src/capitulo06/bloque01/ejercicio01/Main.java new file mode 100644 index 0000000..9ea4a50 --- /dev/null +++ b/src/capitulo06/bloque01/ejercicio01/Main.java @@ -0,0 +1,88 @@ +package capitulo06.bloque01.ejercicio01; + +import java.util.ArrayList; +import java.util.List; + +import static capitulo04.utils.Utils.*; + +public class Main { + public static void main(String[] args) { + + List listaIntegers = new ArrayList(); + int opcion = 0; + do { + System.out.println("Seleccione un opción: \n" + + "0 - Abandonar el programa\n" + + "1 - Crear aleatoriamente la lista de valores\n" + + "2 - Calcular suma, media, mayor y menor\n" + + "3 - Agregar una cantidad de nuevos valores\n" + + "4 - Eliminar elementos cuyo valor esté en un intervalo\n" + + "5 - Imprimir la lista"); + opcion = solicitarIntScannerInline("> "); + + switch (opcion) { + case 1: + int longitudLista = solicitarIntScannerInline("Introduzca la longitud de la lista: "); + int minimoLista = solicitarIntScannerInline("Introduzca el valor mínimo que puede tomar un número de la lista: "); + int maximoLista = solicitarIntScannerInline("Introduzca el valor máximo que puede tomar un número de la lista: "); + + listaIntegers.clear(); + for (; longitudLista > 0; longitudLista--) { + listaIntegers.add(generarIntAleatorioEntreLimites(minimoLista, maximoLista)); + } + break; + case 2: + if (!listaIntegers.isEmpty()) { + int suma = 0; + int mayor = 0; + int menor = 0; + for (int i = 0; i < listaIntegers.size(); i++) { + if (i == 0) { + mayor = listaIntegers.get(i); + menor = listaIntegers.get(i); + } + suma += listaIntegers.get(i); + if (listaIntegers.get(i) > mayor) mayor = listaIntegers.get(i); + if (listaIntegers.get(i) < menor) menor = listaIntegers.get(i); + } + + System.out.println("La suma es: " + suma + + "\nLa media es: " + suma / (float) listaIntegers.size() + + "\nEl mayor número es: " + mayor + + "\nEl menor número es: " + menor); + + } else System.out.println("La lista está vacía, introduzca sus valores primero."); + break; + case 3: + int cantidadNuevos = solicitarIntScannerInline("Introduzca la longitud de los datos nuevos que va a insertar: "); + int minimoNuevos = solicitarIntScannerInline("Introduzca el valor mínimo que puede tomar un número de la lista: "); + int maximoNuevos = solicitarIntScannerInline("Introduzca el valor máximo que puede tomar un número de la lista: "); + int indiceArray = solicitarIntScannerInline("Introduzca en qué posición de la lista quiere insertar los datos nuevos: "); + + List numsAdicionales = new ArrayList(); + for (; cantidadNuevos > 0; cantidadNuevos--) { + numsAdicionales.add(generarIntAleatorioEntreLimites(minimoNuevos, maximoNuevos)); + } + listaIntegers.addAll(indiceArray, numsAdicionales); + break; + case 4: + int minimoEliminar = solicitarIntScannerInline("Introduzca el límite mínimo de números a eliminar de la lista: "); + int maximoEliminar = solicitarIntScannerInline("Introduzca el límite máximo de números a eliminar de la lista: "); + + List numsAEliminar = new ArrayList(); + for (; minimoEliminar <= maximoEliminar; minimoEliminar++) numsAEliminar.add(minimoEliminar); + + int tamanoAntes = listaIntegers.size(); + listaIntegers.removeAll(numsAEliminar); + + System.out.println("Se han eliminado " + (tamanoAntes - listaIntegers.size()) + " elementos."); + break; + case 5: + System.out.println(listaIntegers.toString()); + } + + + } while (opcion != 0); + + } +} diff --git a/src/capitulo06/bloque01/ejercicio02/Main.java b/src/capitulo06/bloque01/ejercicio02/Main.java new file mode 100644 index 0000000..5a4dc1a --- /dev/null +++ b/src/capitulo06/bloque01/ejercicio02/Main.java @@ -0,0 +1,68 @@ +package capitulo06.bloque01.ejercicio02; + +import java.util.ArrayList; +import java.util.List; + +import static capitulo04.utils.Utils.*; + +public class Main { + public static void main(String[] args) { + + List archivo = new ArrayList(); + List portapapeles = new ArrayList(); + + int opcion = 0; + do { + System.out.println("\nSeleccione un opción: \n" + + "0 - Abandonar el programa\n" + + "1 - Agregar una línea al texto\n" + + "2 - Insertar una línea en cualquier posición del texto\n" + + "3 - Editar una línea (reescribir su contenido)\n" + + "4 - Borrar una lína\n" + + "5 - Cortar un conjunto de líneas\n" + + "6 - Pegar un conjunto de líneas cortadas en una determinada posición\n" + + "7 - Imprimir el fichero"); + opcion = solicitarIntScannerInline("Elija opción: "); + + switch (opcion) { + case 1: + String nuevaLinea = solicitarStringScannerInline("> "); + archivo.add(nuevaLinea); + break; + case 2: + String lineaEnMitad = solicitarStringScannerInline("> "); + int posicion = solicitarIntScannerInline("Insertar en línea: "); + archivo.add(posicion, lineaEnMitad); + break; + case 3: + int lineaAReescribir = solicitarIntScannerInline("Elija línea para reescribir: "); + System.out.println(lineaAReescribir + " | " + archivo.get(lineaAReescribir)); + String lineaReescrita = solicitarStringScannerInline("> "); + + archivo.remove(lineaAReescribir); + archivo.add(lineaAReescribir,lineaReescrita); + + break; + case 4: + int lineaABorrar = solicitarIntScannerInline("Elija línea para borrar: "); + archivo.remove(lineaABorrar); + break; + case 5: + int lineaInicialCortar = solicitarIntScannerInline("Elija la línea desde donde comenzar a cortar: "); + int lineaFinalCortar = solicitarIntScannerInline("Elija la línea desde donde terminar de cortar: "); + + for (; lineaInicialCortar <= lineaFinalCortar; lineaInicialCortar++) portapapeles.add(archivo.get(lineaInicialCortar)); + + archivo.removeAll(portapapeles); + break; + case 6: + int lineaDondePegar = solicitarIntScannerInline("Elija la línea donde pegar el portapapeles: "); + archivo.addAll(lineaDondePegar, portapapeles); + break; + case 7: + for (int i = 0; i < archivo.size(); i++) System.out.println(i + " | " + archivo.get(i)); + + } + } while (opcion != 0); + } +}