Advertisement
MOISES_QUISPE_ROJAS

Estructura Datos 2021 - TP00 P05

Aug 27th, 2021 (edited)
1,195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.96 KB | None | 0 0
  1. /* Estructura de Datos - Facultad de Ingenieria - Universidad Nacional de Jujuy
  2.  *
  3.  * @Autor: Equipo 4.1
  4.  */
  5.  /*      @integrantes:                  |    @Carrera:             |   @LU:
  6.                                         |                          |
  7.    Flores ,Cesar Ismael                 | Lic. en Sistemas         | 1782
  8.    Llampa, Ariel Angel Gabriel          | Ing. Informatica         | 8445
  9.    Machaca, Rodrigo Agustin             | Ing. Informatica         | 8512
  10.    Perez, Emanuel Ismael                | Ing. Informatica         | 8393
  11.    Quispe Rojas, Moises Esteban Nicolas | Ing. Informatica         | 7286
  12.  
  13. Encontrar el máximo común divisor de dos números enteros positivos (validados).
  14. Definición: El máximo común divisor de dos o más números enteros es el mayor número entero que los
  15. divide exactamente a todos, esto es sin dejar resto en cada división.
  16. Solución: El algoritmo de Euclides transforma un par de enteros positivos en otro par, dividiendo
  17. repetidamente el entero mayor por el menor y reemplazando el mayor por el menor y el menor por el
  18. resto. Cuando el resto es 0, el número más pequeño distinto de cero de la pareja resultante será el máximo
  19. común divisor de la pareja original.
  20. Modifique el programa escrito de manera que cuente con una función, procedimiento o método que realice
  21. lo solicitado mediante el uso de la consola y otra modalidad que haga exactamente lo mismo, pero
  22. reemplazando el ingreso de valores por consola por un generador de valores aleatorio.
  23. Indicaciones:
  24. Este ejercicio necesita del objeto scanner para ingresar datos por la consola o teclado, se espera que el
  25. código controle los problemas que normalmente ocurren al operar con la consola o teclado.
  26. Se espera una correcta modularización entre el código que realiza el ingreso y validación de los datos
  27. respecto del código que hace lo que se solicita en el ejercicio.
  28. También necesita del objeto random para generar valores de manera aleatoria
  29.  */
  30.  
  31. package Intro;
  32.  
  33. public class ED_E5 {
  34.     public static void main(String[] args) {
  35.         (new ED_E5()).open();
  36.     }
  37.    
  38.     public void open(){
  39.         char option;
  40.         System.out.println("Estructura de Datos - TP00 Ej. 05");
  41.         do{
  42.             System.out.println("Algoritmo de Euclides");
  43.             System.out.println("(a) Ingreso Manual");
  44.             System.out.println("(b) Generar Automaticamente");
  45.             option=Helper.getChar();
  46.         }while(run(option));
  47.     }
  48.    
  49.     public int euclidAlgorithm(int integerOne,int integerTwo){
  50.         int auxA=integerOne,auxB=integerTwo,temporary=0,rest;
  51.         if(auxA<auxB){
  52.             temporary=auxA;
  53.             auxA=auxB;
  54.             auxB=temporary;
  55.         }
  56.         while(auxB!=0){
  57.             rest = auxA%auxB;
  58.             auxA=auxB;
  59.             auxB=rest;
  60.         }
  61.         return auxA;
  62.     }
  63.    
  64.     public void registerManual(){
  65.         int integerOne,integerTwo;
  66.         System.out.print("Ingrese 1° valor: ");
  67.         integerOne=Helper.getIntegerPositive();
  68.         System.out.print("Ingrese 2° valor: ");
  69.         integerTwo=Helper.getIntegerPositive();
  70.         System.out.println("El MCD es: "+euclidAlgorithm(integerOne, integerTwo));
  71.     }
  72.    
  73.     public void registerAutomatic(){
  74.         int integerOne=Helper.random.nextInt(100)+1;
  75.         int integerTwo=Helper.random.nextInt(100)+1;
  76.         System.out.println("Se genero el 1° valor: "+integerOne);
  77.         System.out.println("Se genero el 2° valor: "+integerTwo);
  78.         System.out.println("El MCD es: "+euclidAlgorithm(integerOne, integerTwo));
  79.     }
  80.    
  81.     public boolean run(char option){
  82.         switch(option){
  83.             case 'a','A':
  84.                 registerManual();
  85.                 return false;
  86.             case 'b','B':
  87.                 registerAutomatic();
  88.                 return false;
  89.             default:
  90.                 System.out.println("Opcion no contemplada");
  91.                 return true;
  92.         }
  93.     }
  94. }
  95.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement