Advertisement
LEANDRONIEVA

Ejercicio1Tp2

Sep 27th, 2022 (edited)
1,083
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.69 KB | None | 0 0
  1. import java.util.Random;
  2. import java.util.Scanner;
  3.  
  4. import tp0.Helper;
  5.  
  6. public class Tp2Ejercicio1 {
  7.  
  8.     public static void main(String[] args) {
  9.         // TODO Auto-generated method stub
  10.  
  11.         int opcion;
  12.         Stack<Character> miPila = new Stack<Character>();
  13.         System.out.println("Ejercicio 1 Tp 2");    
  14.         System.out.println("Vamos a crear una pila de caracteres y reemplazar valores en la pila");
  15.  
  16.         do {
  17.             opcion = menu();
  18.             switch (opcion) {
  19.             case 1:        
  20.                 while(miPila.empty()) {
  21.                     miPila = manual();
  22.                 }      
  23.                 System.out.println("Su pila ingresada es:");
  24.                 System.out.println(miPila);
  25.                 int num = miPila.reemplazarValor(Helper.getCharacter("Que valor desea cambiar?"),Helper.getCharacter("Por cual?"));
  26.                 System.out.println("La pila ahora es:");
  27.                 System.out.println(miPila);
  28.                 System.out.println("Cantidad de cambios realizados: "+num);
  29.                 System.out.println();
  30.                 break;
  31.             case 2:
  32.                 miPila = aleatorio();
  33.                 System.out.println("La pila generada es:");
  34.                 System.out.println(miPila);
  35.                 num = miPila.reemplazarValor(Helper.getCharacter("Que valor desea cambiar?"),Helper.getCharacter("Por cual?"));
  36.                 System.out.println("La pila ahora es:");
  37.                 System.out.println(miPila);
  38.                 System.out.println("Cantidad de cambios realizados: "+num);
  39.                 System.out.println();
  40.                 break;
  41.             case 3:
  42.                 System.out.println("Programa Terminado");
  43.                 break;
  44.             default:
  45.                 System.out.println("No es una opción correcta ");
  46.                 break;
  47.             }
  48.         }while(opcion!=3);
  49.     }
  50.  
  51.     public static int menu() {
  52.         int op;
  53.         System.out.println("Desea ingresar los valores de la pila o generarlos aleatoriamente?");
  54.         System.out.println("1.Ingresar manualmente");
  55.         System.out.println("2.Aleatorio");
  56.         System.out.println("3.Salir");
  57.         op = Helper.getPositiveInt("Ingrese una opcion");
  58.        
  59.         return op;
  60.     }
  61.    
  62.     public static Stack<Character> manual() {
  63.         Scanner sc = new Scanner(System.in);
  64.         Stack<Character> pila = new Stack<Character>();
  65.  
  66.    
  67.         System.out.println("Ingrese los caracteres de la pila en la siguiente línea (sin espacios) ");
  68.         String cadena = sc.nextLine();
  69.        
  70.         if(cadena.isEmpty()) {
  71.             System.out.println("No ha ingresado ningun valor");
  72.             System.out.println("Presione enter para continuar...");
  73.             cadena = sc.nextLine();
  74.         }else {
  75.             for(int i=0;i<cadena.length();i++) {
  76.                 pila.push(cadena.charAt(i));
  77.             }
  78.         }
  79.    
  80.  
  81.         return pila;
  82.     }
  83.    
  84.     public static Stack<Character> aleatorio() {
  85.         Stack<Character> pila = new Stack<Character>();
  86.         Random ran = new Random();
  87.         int n = Helper.getPositiveInt("Ingrese el tamaño de la pila aleatoria");
  88.         for(int i=0;i<n;i++) {
  89.             int aux = ran.nextInt(25)+97;
  90.             pila.push((char)aux);
  91.         }
  92.                
  93.         return pila;
  94.     }
  95. }
  96.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement