Programa en JAVA

Page 1

package suma; import java.util.Scanner; public class Main { public Main() { } static void lecturadatos(int b)throws MiExcepcion { if (b!=2 && b!=8 && b!=16) throw new MiExcepcion( "Solo bases:2, 8 o 16!!!" ); } static void valoresnumericos(String n, int b)throws MiExcepcion { switch (b) { case 2: for (int k=0;k<n.length();k++) if (n.charAt(k)!='0' && n.charAt(k)!='1') throw new MiExcepcion( "No es Binario!!!" ); break; case 8: for (int k=0;k<n.length();k++) if (n.charAt(k)!='0' && n.charAt(k)!='1' && n.charAt(k)!='2' && n.charAt(k)!='3' && n.charAt(k)!='4' && n.charAt(k)!='5' && n.charAt(k)!='6' && n.charAt(k)!='7') throw new MiExcepcion( "No es Octal!!!" ); break; case 16: for (int k=0;k<n.length();k++) if (n.charAt(k)!='0' && n.charAt(k)!='1' && n.charAt(k)!='2' && n.charAt(k)!='3' && n.charAt(k)!='4' && n.charAt(k)!='5' && n.charAt(k)!='6' && n.charAt(k)!='7' && n.charAt(k)!='8' && n.charAt(k)!='9' && n.charAt(k)!='a'


n.charAt(k)!='c' && n.charAt(k)!='e' && n.charAt(k)!='B' && n.charAt(k)!='D' && n.charAt(k)!='F');

&& n.charAt(k)!='b' && n.charAt(k)!='d' && n.charAt(k)!='f' && n.charAt(k)!='A' && n.charAt(k)!='C' && n.charAt(k)!='E' && throw new MiExcepcion( "No

es Hexadecimal!!!" ); } } public static void main(String[] args) { int sw1=1,sw2=1; Scanner teclado=new Scanner(System.in); System.out.println("Base "); int basse = teclado.nextInt(); try { lecturadatos(basse); } catch ( MiExcepcion e ){ // Personalizada System.out.println( "Excepcion: " + e.getMessage() ); } if (basse==2 || basse==8 || basse==16){ System.out.println("numero 1 "); String numero1 = teclado.next(); try { valoresnumericos(numero1,basse); } catch ( MiExcepcion e ){ // Personalizada System.out.println( "Excepcion: " + e.getMessage() ); sw1=0; } if (sw1==1){ System.out.println("numero 2 "); String numero2 = teclado.next(); try { valoresnumericos(numero2,basse);


} catch ( MiExcepcion e ){ // Personalizada System.out.println( "Excepcion: " + e.getMessage() ); sw2=0; } if(sw2==1 && sw1==1){ Suma sol=new Suma(numero1,numero2,basse); System.out.println("El resultado es "+ sol.Sumar()); } } } } } //clase Suma para sumar numeros de cualquier base package suma; public class Suma { //atributos private String num1, num2; private int base; //constructores public Suma(String num1,String num2, int base){ this.num1=num1; this.num2=num2; this.base=base; } public Suma() {} //metodos public int aNumero(char digito){ int dig = 0; switch(digito) { case '0': dig=0; break; case '1': dig=1; break;


case '2': dig=2; break; case '3': dig=3; break; case '4': dig=4; break; case '5': dig=5; break; case '6': dig=6; break; case '7': dig=7; break; case '8': dig=8; break; case '9': dig=9; break; case 'A': dig=10; break; case 'B': dig=11; break; case 'C': dig=12; break; case 'D': dig=13; break; case 'E': dig=14; break; case 'F': dig=15; break; } return dig; } public char aLetra(int digito){ char dig=' '; switch(digito) { case 0: dig='0'; break; case 1: dig='1'; break; case 2: dig='2'; break; case 3: dig='3';


case case case case case case case case case case case case

break; 4: dig='4'; break; 5: dig='5'; break; 6: dig='6'; break; 7: dig='7'; break; 8: dig='8'; break; 9: dig='9'; break; 10: dig='A'; break; 11: dig='B'; break; 12: dig='C'; break; 13: dig='D'; break; 14: dig='E'; break; 15: dig='F'; break;

} return dig; } public String Sumar(){ int c=0,cantidad=0,i,j;//acarreo String resultado=""; //solucion de la suma //para igualar el tama単o de las cantidades colcocamos 0 a la derecha if (num1.length()>num2.length()){ cantidad=num1.length()-num2.length(); for(i=0;i<cantidad;i++) num2='0'+num2; }


if (num2.length()>num1.length()){ cantidad=num2.length()-num1.length(); for(i=0;i<cantidad;i++) num1='0'+num1; } char let=' '; int sol,tamano; tamano=num1.length(); for (j=tamano-1;j>=0;j--){ sol=aNumero(num1.charAt(j))+aNumero(num2.charAt(j) )+c; if(sol>=base){ c=1; sol=sol-base; } else c=0; let=aLetra(sol); resultado=let+resultado; } if (c==1){ resultado='1'+resultado; } String solu=resultado; return solu; } } package suma; class MiExcepcion extends Exception { MiExcepcion(){ super(); // constructor por defecto de Exception } MiExcepcion( String cadena ){ super( cadena ); // constructor param. de Exception } }


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.