fork(1) download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. try{
  13. int opcion, close = 0,n1,n2, x1, y2;
  14. String x, y;
  15. /*De claracion del BufferedReader, para ingresar numeros por teclado*/
  16.  
  17. /*Esta condicion la utilizo al principio del programa para que
  18.   * cuando se ejecute alguna operacion de la calculadora, se vuelva
  19.   * a abrir el menu, para que asi no finalize el programa, hasta que
  20.   * se elija la opcion 6 (salir)
  21.   */
  22. System.out.println("Ingrese primer numero binario");
  23. x = is.readLine();
  24. while(validarBinario(x) == false){
  25. System.out.println("El numero ingresado no es binario, ingrese otro");
  26. x = is.readLine();
  27. }
  28. x1 = Integer.parseInt(x);
  29. n1 = binario2Decimal(x1);
  30.  
  31. System.out.println("Ingrese segundo numero binario");
  32. y= is.readLine();
  33. while(validarBinario(y)== false){
  34. System.out.println("Ingrese segundo numero binario");
  35. y= is.readLine();
  36. }
  37. y2 = Integer.parseInt(y);
  38. n2= binario2Decimal(y2);
  39.  
  40.  
  41. while (close == 0){
  42.  
  43.  
  44. System.out.println("Elija la operacion a realizar");
  45. System.out.println("Opcion 1: Suma");
  46. System.out.println("Opcion 2: Resta");
  47. System.out.println("Opcion 3: Multiplicacion");
  48. System.out.println("Opcion 4: Division");
  49. System.out.println("Opcion 5: Salir");
  50.  
  51. System.out.println("Ingrese numero de la Operacion: ");
  52. opcion = Integer.parseInt(is.readLine());
  53.  
  54. switch(opcion)
  55. {
  56. /*La opcion 1 que permite sumar la cantidad de numeros que sea ingresado por el usuario
  57.   * Retorna: Int
  58.   */
  59.  
  60. case 1: FuncionSumar( n1 ,n2);
  61. break;
  62.  
  63. case 2: FuncionRestar(n1 , n2);
  64. break;
  65.  
  66. case 3: FuncionMultiplicar(n1, n2);
  67. break;
  68.  
  69. case 4: FuncionDividir(n1,n2);
  70. break;
  71.  
  72.  
  73. case 5:
  74. /*Lo que hace el caso 6 es darle un valor a la variable close
  75.   que sea distinto de 0,para que finalize el ciclo que puse
  76.   al principio para el menu, y asi terminar de ejecutar el programa*/
  77. close = 1;
  78. break;
  79. default:
  80. System.out.println("La opcion ingresada es incorrecta");
  81. }
  82. }
  83. }catch (NumberFormatException ex){
  84. System.err.println("Numero no valido");
  85. }
  86. catch (IOException e){
  87. System.err.println("Unexpected IO ERROR: " + e);
  88. }
  89. }
  90. public static void FuncionSumar(int n1,int n2){
  91. int suma,resultado;
  92. suma = n1 +n2;
  93. resultado = decimal2Binario (suma);
  94. System.out.println("El resultado es: " + resultado);
  95. }
  96.  
  97.  
  98. public static void FuncionRestar(int n1, int n2){
  99. int resta, resultado;
  100. if( n1 > n2){
  101. resta = n1 - n2;
  102. }else{
  103. resta = n2-n1;
  104. }
  105. resultado = decimal2Binario(resta);
  106. System.out.println("El resultado es: " + resultado);
  107.  
  108. }
  109.  
  110. public static void FuncionMultiplicar(int n1, int n2) {
  111. int multi,resultado;
  112. multi= n1*n2;
  113. resultado = decimal2Binario(multi);
  114. System.out.println("El resultado es: " + resultado);
  115.  
  116.  
  117.  
  118. }
  119.  
  120. public static void FuncionDividir(int n1, int n2){
  121. int div,resultado;
  122. if(n1>n2){
  123. div = n1/n2;
  124. }
  125. else{
  126. div = n2/n1;
  127. }
  128. resultado = decimal2Binario(div);
  129. System.out.println("El resultado es: " + resultado);
  130. }
  131.  
  132. public static int binario2Decimal (int binario){
  133. int factor = 1, decimal = 0,d;
  134. while(binario > 0){
  135. d= binario%10;
  136. binario = binario/10;
  137. decimal = decimal + factor*d;
  138. factor = factor * 2;
  139. }
  140.  
  141. return decimal;
  142.  
  143. }
  144.  
  145. public static int decimal2Binario (int decimal){
  146. int factor = 1, binario = 0,d;
  147. while(decimal > 0){
  148. d= decimal%2;
  149. decimal = decimal /2;
  150. binario = binario + factor * d;
  151. factor = factor * 10 ;
  152. }
  153. return binario;
  154.  
  155. }
  156.  
  157. public static boolean validarBinario(String validador){
  158. boolean aux = true;
  159. for (int i = 0 ; i < validador.length() ; i++) {
  160. char c = validador.charAt(i);
  161. if(c == '0' || c == '1'){
  162.  
  163. }else
  164. aux = false;
  165.  
  166. }
  167. if(aux)
  168. return true;
  169. else
  170. return false;
  171. }
  172. }
Success #stdin #stdout 0.07s 380224KB
stdin
10
10
2
5
stdout
Ingrese primer numero binario
Ingrese segundo numero binario
Elija la operacion a realizar
Opcion 1: Suma
Opcion 2: Resta
Opcion 3: Multiplicacion
Opcion 4: Division
Opcion 5: Salir
Ingrese numero de la Operacion: 
El resultado es: 0
Elija la operacion a realizar
Opcion 1: Suma
Opcion 2: Resta
Opcion 3: Multiplicacion
Opcion 4: Division
Opcion 5: Salir
Ingrese numero de la Operacion: