Você está na página 1de 13

MANUAL DE USUARIO BASICO (CALCULADORA EN JAVA)

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

Realizar otra operacin

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

Software utilizado La codificacin de la calculadora se realiz en NetBeans IDE 7.2.1.

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");

SumaBinario sum = new SumaBinario(); sum.operacionsum(opcion1, opcion2);

System.out.println("\n Desea otra operacion? Y/N"); String sn = teclado.next();

if (sn.equals("Y") || sn.equals("y")){ salir = true; } else{ salir = false; }

break;

case 2 :

boolean restri = false; do{ System.out.println("***** INTRODUCE LOS VALORES *****");

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);

System.out.println("\n Desea otra operacion? Y/N"); String sm = teclado.next();

if (sm.equals("Y") || sm.equals("y")){ salir = true; } else{ salir = false; } break;

case 3 : System.out.println("***** INTRODUCE LOS VALORES *****"); System.out.print("Valor 1 : \n");

opcion1 = teclado.nextInt(); System.out.print("Valor 2 : \n"); opcion2 = teclado.nextInt();

DivisionBinario div = new DivisionBinario(); salir = true; break;

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();

MultiBinario multi = new MultiBinario(); salir = true; break;

case 5 : salir = false; break;

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){

int [] arregloa = decimaltobinari(valor1); int [] arreglob = decimaltobinari(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];

while (valor > 0) {

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++;

} for(int i = arreglo.length -1, j=0, k=0; i > -1; i--, j++){

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. }

} } return c;//Se regresa el arreglo. }

Cdigo resta
public class RestaBinario { public void operacionrest (int valor1, int valor2){

int [] arregloa = decimaltobinari(valor1); int [] arreglob = decimaltobinari(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 = restaBinyBin(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];

while (valor > 0) {

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++;

} for(int i = arreglo.length -1, j=0, k=0; i > -1; i--, j++){

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

Você também pode gostar