Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUCCIN. La calculadora tiene como objetivo realizar operaciones bsicas tales como suma, resta, multiplicacin y divisin de nmeros en forma binaria, obteniendo resultados de la misma forma. El programa se estructura de la siguiente forma: en los primeros apartados se definen algunos conceptos bsicos, luego se presentan las operaciones que permiten realizar la manipulacin de datos y variables, as como la forma de mostrar los resultados
PASOS. 1. Seleccionara del men que operacin desea realizar, oprimiendo la tecla indicada. Presione Presione Presione Presione Presione tecla 1 para SUMA. tecla 2 para RESTA. tecla 3 para MULTIPLICACION. tecla 4 para DIVISION. tecla 5 para SALIR.
2. Le pedir ingresar los valores, estos sern de forma hexadecimal. Ingrese valor A. Ingrese valor B. 3. Una vez ingresados los valores, presionara la tecla enter y se realizara la operacin e inmediatamente se mostrara el resultado. El resultado de su operacin es: (Resultado en binario). 4. Una vez mostrado el resultado se le preguntara si desea realizar una nueva operacin. En caso de que si presione "S" se le mostrara nuevamente el men de operaciones, en caso de que sea lo contrario "N" saldr del programa.
Manual Tcnico
DIAGRAMA
Men
Suma
Resta
Producto
Divisin
Solicita dato
Lee datos
Si dato < 0
No
SI
Convierte a binarios
Realiza operacin
Imprime resultado
SI
No
FIN
El presente documento constituye una herramienta de ayuda para cualquier persona interesada en el funcionamiento de la calculadora de nmeros binarios. El documento est dividido en la tecnologa (software) utilizado y la codificacin de cada una de las partes que componen la calculadora. Esperamos que este manual cumpla con las expectativas del lector y se convierta en una herramienta para el conocimiento del programa de la calculadora binaria
Ejecucin del cdigo Se utilizara NetBeans para la ejecucin del cdigo de la calculadora de nmeros binarios.
Cdigo men
public class Calculadora_Binaria3 { public static void main(String[] args) { Scanner teclado = new Scanner(System.in); int opcion; int opcion1, opcion2; boolean salir = false; do{ System.out.println("********** BIENVENIDO A LA CALCULADORA DE OPERACIONES CON NUMEROS BINARIOS ********** \n"); System.out.println("******************** \t Que operacin desea hacer \t ********************"); System.out.println("1.- Suma"); System.out.println("2.- Resta"); System.out.println("3.- Divisin"); System.out.println("4.- Multilicacin"); System.out.println("5.- Salir \n"); System.out.print("Opcion deseada : "); opcion = teclado.nextInt();
System.out.println("");
switch (opcion){ case 1 : System.out.println("***** INTRODUCE LOS VALORES *****"); System.out.print("Valor 1 : \n"); opcion1 = teclado.nextInt(); System.out.print("Valor 2 : \n"); opcion2 = teclado.nextInt(); System.out.println("\n\t\t BINARIO \t DECIMAL");
break;
case 2 :
System.out.println("NOTA: En este caso el valor 1 debe ser mayor que le valor2"); System.out.print("Valor 1 : \n"); opcion1 = teclado.nextInt(); System.out.print("Valor 2 : \n"); opcion2 = teclado.nextInt();
if(opcion1 >= opcion2){ RestaBinario rest = new RestaBinario(); rest.operacionrest(opcion1, opcion2); restri = false; } else{ System.out.println("*** VALOR 2 ES MAYOR AL VALOR 1, INTENTA DE NUEVO\n\n"); restri = true; } }while(restri == true);
case 4 : System.out.println("***** INTRODUCE LOS VALORES *****"); System.out.print("Valor 1 : \n"); opcion1 = teclado.nextInt(); System.out.print("Valor 2 : \n"); opcion2 = teclado.nextInt();
default : System.out.println("********** Opcion no valida, Intentalo de Nuevo ********** \n\n"); salir = true; } }while(salir == true); } }
Cdigo suma
public class SumaBinario { public void operacionsum (int valor1, int valor2){
System.out.print("Valor 1: \t");//se imprime el el primer valor convertido a bianrio for (int binario : arregloa) { System.out.print(binario); } System.out.print("\t\t" + valor1);//se imprimer el valor 1 en decimal System.out.println();
System.out.print("Valor 2: \t");//se imprime el el segundo valor convertido a bianrio for (int binario : arreglob) { System.out.print(binario); } System.out.print("\t\t" + valor2);//se imprimer el valor 2 en decimal System.out.println("\n--------------------------------------------");
int [] resultado = sumaBinyBin(arregloa, arreglob); System.out.print("Resultado: \t"); for(int i = 0; i < resultado.length; i++) { System.out.print(resultado[i]);//se imprime la el resultado de la suma binaria } int resul = valor1 + valor2; System.out.print("\t\t" + resul);//se imprime la suma de los valores decimales System.out.println();
} public static int [] decimaltobinari(int valor){ //variables String binariores, res=""; int residuo; int x = 0; binariores = Integer.toBinaryString(valor); int arreglo [] = new int[15];
residuo = valor % 2;//obtener el residuo valor = valor / 2;//realizar la siguiente division //En el orden natural de la operacion los valores estan invertidos //por eso aqui los volvemos a invertir :) res = residuo + res; x++;
if(i >= res.length()){ arreglo[j] = 0;//llenamos los lugares vacios con ceros } else{ arreglo[j] = Integer.parseInt(res.charAt(k)+ "");//cuando llegemos al primer uno guradamos la conversion a binarios k++; } } return arreglo;// se regresa el arreglo
} public static int[] sumaBinyBin(int a[], int b[]) { int acarreo = 0;//variable de control. int[] c = new int[15];//Arreglo a retornar. //Se recorre el arreglo a de manera inversa. for (int i = c.length -1 ; i > 0; i--) { int suma = a[i] + b[i]; //Se realiza la suma una vez por ciclo if(suma == 2) {//Si la suma da 2 los elementos en el arreglo son 1 y 1. c[i] = 0;//Por lo tanto debe ir como resultado un 0 acarreo = 1;//Y se lleva un acarreo } //Si por el contrario la suma es 0 quiere decir que los elementos //eran 0 y 0. else if(suma == 0) { c[i] = 0;//Entonces debe ir 0 como resultado } //Si por el contrario la suma es 1, entonces los elementos //eran 0 y 1 o viceversa. else if(suma == 1) { c[i] = 1;//Y debe ir como resultado un 1. } if(acarreo == 1) {//Si existe un acarreo en este ciclo //Se comprueba si la suma del elemento siguiente del //arreglo "a" mas el acarreo es igual a 2. if(a[i-1] + 1 == 2) { a[i-1] = 0;//Si lo es, se asigna un 0 a "a". acarreo = 1;//Y se sigue llevando un acarreo. } else {//Si la suma no da 2, solo puede dar 1. a[i-1] = 1;//Y entonces se asigna 1 a "a". acarreo = 0;//Y el acarreo desaparece. }
Cdigo resta
public class RestaBinario { public void operacionrest (int valor1, int valor2){
System.out.print("Valor 1: \t");//se imprime el el primer valor convertido a bianrio for (int binario : arregloa) { System.out.print(binario); } System.out.print("\t\t" + valor1);//se imprimer el valor 1 en decimal System.out.println();
System.out.print("Valor 2: \t");//se imprime el el segundo valor convertido a bianrio for (int binario : arreglob) { System.out.print(binario); } System.out.print("\t\t" + valor2);//se imprimer el valor 2 en decimal System.out.println("\n--------------------------------------------");
for(int i = 0; i < resultado.length; i++) { System.out.print(resultado[i]);//se imprime la el resultado de la suma binaria } int resul = valor1 - valor2; System.out.print("\t\t" + resul);//se imprime la suma de los valores decimales System.out.println();
} public static int [] decimaltobinari(int valor){ //variables String binariores, res=""; int residuo; int x = 0; binariores = Integer.toBinaryString(valor); int arreglo [] = new int[15];
residuo = valor % 2;//obtener el residuo valor = valor / 2;//realizar la siguiente division //En el orden natural de la operacion los valores estan invertidos //por eso aqui los volvemos a invertir :) res = residuo + res; x++;
if(i >= res.length()){ arreglo[j] = 0;//llenamos los lugares vacios con ceros
} else{ arreglo[j] = Integer.parseInt(res.charAt(k)+ "");//cuando llegemos al primer uno guradamos la conversion a binarios k++; } } return arreglo;// se regresa el arreglo }
public static int[] restaBinyBin(int a[], int b[]) { int acarreo = 0;//variable de control. int[] c = new int[15];//Arreglo a retornar. //Se recorre el arreglo a de manera inversa. for (int i = c.length -1 ; i > 0; i--) { int resta = a[i] - b[i]; //Se realiza la resta una vez por ciclo if(resta == -1) {//Si la resta da -1 los elementos en el arreglo son 0 y 1. c[i] = 1;//Por lo tanto debe ir como resultado un 1 acarreo = 1;//Y se lleva un acarreo } //Si por el contrario la resta es 0 quiere decir que los elementos //eran 1 y 1 || 0 y 0. else if(resta == 0) { c[i] = 0;//Entonces debe ir 0 como resultado } //Si por el contrario la suma es 1, entonces los elementos //eran 1 y 0. else if(resta == 1) { c[i] = 1;//Y debe ir como resultado un 1. } if(acarreo == 1) {//Si existe un acarreo en este ciclo
//Se comprueba si la resta del elemento siguiente del //arreglo "a" mas el acarreo es igual a 0. if(a[i-1] - 1 == 0) { a[i-1] = 0;//Si lo es, se asigna un 0 a "a". acarreo = 0;//Y el acarreo desaparece. } } } return c;//Se regresa el arreglo. }
Cdigo multiplicacin
Cdigo divisin