Está en la página 1de 20

Instituto Tecnolgico de Estudios Superiores de Baja california Sur Por una patria con sabidura y espritu de progreso

Asignatura: ------- Principios Elctricos y aplicaciones digitales Trabajo: --------------- Practica No. 8 Alumno: ---------------------Juan Carlos Romero Prez Asesor: --------------- Jos Ismael Ojeda Campaa Carrera: ---Ingeniera en sistemas computacionales San Jos del cabo B.C.S, a 8 de abril del 2013.

NDICE Introduccin ------------------------------------------------------- 2 Objetivos -------------------------------------------------------- 3

Antecedentes ----------------------------------------------------- 4 Desarrollo Pruebas -------------------------------------------------------- 5 --------------------------------------------------------10

Conclusiones -------------------------------------------------------10 Bibliografa - ------------------------------------------------------ 11

Introduccin
En la siguiente practica de esta materia Principios Elctricos y aplicaciones digitales se desarrollara una aplicacin en la cual pondremos en practica cada uno de los mtodos de conversin numricas que como aprendimos en primer semestre de matemticas discretas de binario a decimal, octal, hexadecimal y viceversa entre cada uno de ellos. La cual nos basaremos en cada uno de los procesos como funciona principalmente porque nuestro dispositivo tendr que leer de binario a decimal que son 0 y 1. Para poder llevar acabo esta practica nos dimos a la tarea de investigar como funciona el sistema de numeracin binario utiliza slo dos dgitos, el cero 0 y el uno 1. En una cifra binaria, cada dgito tiene distinto valor dependiendo de la posicin que ocupe. El valor de cada posicin es el de una potencia de base 2, elevada a un exponente igual a la posicin del dgito menos uno. Se puede observar que, tal y como ocurra con el sistema decimal, la base de la potencia coincide con la cantidad de dgitos utilizados (2) para representar los nmeros. En si para poder realizar una conversin dela base que sea siempre tomaremos la base a la que deseamos que deseamos convertir empezndolo a elevar a la cero y multiplicado por el numero que nos dan ese proceso se realiza hasta terminar con los nmeros de dicha cantidad y a medida que crece el numero de igual manera lo hace el exponente. Esto lo veremos en los procedimientos posteriores.

OBJETIVOS
El objetivo de esta practica es aprender los diferentes tipos de conversin utilizando las herramientas de programacin que mas se le faciliten al alumno en este caso nuestra aplicacin se desarrollara en netbeans ya que es el lenguaje que hemos venido manejando con anterioridad. Un punto importante que decir de esta practica es que debido a la falta de conocimiento del mtodo mencionado en el formato correspondiente optamos por el mtodo que mas se nos facilito aun asi hacemos una pequea referencia al mtodo de Mapas de Karnaugh, Podra definirlo como un mtodo para encontrar la forma ms sencilla de representar una funcin lgica. Esto es... Encontrar la funcin que relaciona todas las variables disponibles, de tal modo que el resultado sea el que se est buscando. Para esto vamos a aclarar tres conceptos que son fundamentales. a)- Mini trmino Es cada una de las combinaciones posibles entre todas las variables disponibles, por ejemplo con 2 variables obtienes 4 mini trminos; con 3 obtienes 8; con 4, 16 etc., como te dars cuenta se puede encontrar la cantidad de mini trminos haciendo 2n donde n es el nmero de variables disponibles. Pero al decir verdad con este mtodo el termino de la practica no hubiera podido terminarla en tiempo ya que las dudas fueron muchas y nadie conoca del tema.

ANTECEDENTES
Los nmeros se componen de cifras, y de acuerdo al sistema de numeracin con que estos nmeros se representan , sern los smbolos utilizados, a continuacin un ejemplo de los sistemas de numeracin ms utilizados 0123456789 diez smbolos para el sistema decimal 01 dos smbolos para el sistema numrico binario 01234567 ocho smbolos para el sistema numrico octal 0123456789ABCDEF diecisis smbolos para el sistema numrico hexadecimal La cifra adquiere un peso en el nmero de acuerdo a la posicin que ocupa dentro del nmero, dicho peso se obtiene elevando la base al exponente creciente hacia la izquierda, para un nmero de cifras mayor que 1 y creciente pero negativo hacia la derecha para un nmero de cifras despus de la coma. Conversin entre sistemas de numeracin de diferentes bases La conversin de un nmero representado en un determinado sistema numrico a otro de diferente base nos es til para representar el nmero del modo ms adecuado de acuerdo al medio utilizado para procesarlo o visualizarlo, fundamentalmente en lo que se refiere al tratamiento con procesadores digitales o computadoras. As es como podemos expresar nmeros de las diferentes bases en nmeros da base decimal que es la ms conocida e intuitiva debido nuestra formacin en aritmtica decimal.

SISTEMA HEXADECIMAL La notacin hexadecimal requiere el uso de 16 smbolos para representar 16 valores numricos. Dado que el sistema decimal proporciona solamente 10 smbolos numricos ( de 0 a 9), se necesitan 6 smbolos adicionales para representar los valores restantes. Se han adoptado para este fin las letras A, B, C, D, E y F, aunque podran haberse utilizado cualesquiera otros smbolos. La lista completa de smbolos hexadecimales consta, por lo tanto, del 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F, en orden ascendente de valor. Como muestra la tabla al final de la enumeracin de todos los sistemas de numeracin, los nmeros decimales, hexadecimales, binarios y octales equivalentes (hasta el numero 25). Ntese que al alcanzarse el numero decimal 16, se terminan los smbolos hexadecimales y se coloca un 1 de acarreo delante de cada smbolo hexadecimal en el segundo ciclo, que abarca los nmeros decimales de 16 a 25. El significado de los nmeros hexadecimales se hace evidente con el desarrollo en potencias de 16.

SISTEMA OCTAL El sistema de numeracin octal es un sistema de numeracin en base 8, una base que es potencia exacta de 2 o de la numeracin binaria. Esta caracterstica hace que la conversin a binario o viceversa sea bastante simple. El sistema octal usa 8 dgitos (0, 1, 2, 3, 4, 5, 6, 7) y tienen el mismo valor que en el sistema de numeracin decimal.

SISTEMA BINARIO
El sistema binario, en ciencias e informtica, es un sistema de numeracin en el que los nmeros se representan utilizando solamente las cifras cero y uno (0 y 1). Es el que se utiliza en las computadoras, debido a que trabajan internamente con dos niveles de voltaje, por lo cual su sistema de numeracin natural es el sistema binario (encendido 1, apagado 0).

DIAGRAMA UML App


Int resultado String valor +App () + getBinarioDecimal ( ) + getBinarioHexadecimal ( ) + getBinarioOctal ( ) + getDecimalBinario ( ) + getDecimalHexadecimal ( ) + getDecimalOctal ( ) + getHexadecimalBinario ( ) + getHexadecimalDecimal ( ) + getHexadecimalOctal ( ) + getOctalBinario ( ) + getOctalDecimal ( ) + getOctalHexadecimal ( ) App app = new App(); Gui vista = new Gui(app);

MiExcepcion
MiExcepcion(Throwable causa) MiExcepcion(String mensaje, Throwable causa) MiExcepcion(String mensaje)

Gui JLabel etiqueta1, etiqueta2, excepcion, etiqueta3, etiqueta4; JComboBox combo1, combo2; JTextField texto1, texto2; JButton aceptar, salir; int valor1, valor2; +Gui ( ) + Gui(App app) + etiqueta1 = new JLabel("Valor a convertir"); + etiqueta2 = new JLabel("Valor resultante"); + combo1 = new JComboBox(bases); + combo2 = new JComboBox(bases2); + texto1 = new JTextField(); + texto2 = new JTextField(); +etiqueta3 = new JLabel("Juan Carlos Romero"); + etiqueta4 = new JLabel("Matricula 11380427"); +Command accion1 = new Command(Command.ACCION1, this, app); +Command accion2 = new Command(Command.ACCION2, this, app); + aceptar = new JButton("Convertir"); +salir = new JButton("Salir"); + excepcion = new JLabel(""); + Int getValor1 ( ) + Int getValor2 ( ) + getCampo1 ( ) + getTextField ( ) + getExcepcion ( )

Command public static final int ACCION1 = 0; public static final int ACCION2 = 1; private Gui gui; private App app; private int id; private int base1, base2; private String valor; + public Command(int id, Gui gui, App app) + public void actionPerformed(ActionEvent e)

CDIGO
Codigo de la clase principal denominada App /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.convertidor.modelo; import com.convertidor.excepcion.MiExcepcion; import com.convertidor.vista.Gui; /** * * @author carlin */ public class App { public String getBinarioDecimal(String valor) { int resultado = 0; try { resultado = Integer.parseInt(valor, 2); } catch (Exception ex) { throw new MiExcepcion("No se pudo convertir de Binario a decimal"); } return Integer.toString(resultado); } public String getBinarioHexadecimal(String valor) { Integer numero = 0; try { numero = Integer.valueOf(valor, 2); } catch (NumberFormatException e) { throw new MiExcepcion("\nERROR: El numero " + valor + " no es binario"); } return Integer.toHexString(numero); } public String getBinarioOctal(String valor) { Integer numero = 0; try { numero = Integer.valueOf(valor, 2); } catch (NumberFormatException e) { throw new MiExcepcion("\nERROR : El numero " + valor + " no es binario"); } return Integer.toOctalString(numero);

} public String getDecimalBinario(String valor) { Integer numero = 0; try { numero = Integer.parseInt(valor); } catch (NumberFormatException e) { throw new MiExcepcion("\nERROR : El numero " + valor + " no es decimal"); } return Integer.toBinaryString(numero); } public String getDecimalHexadecimal(String valor) { Integer numero = 0; try { numero = Integer.parseInt(valor); } catch (NumberFormatException e) { throw new MiExcepcion("\nERROR : El numero " + valor + " no es decimal"); } return Integer.toHexString(numero); } public String getDecimalOctal(String valor) { Integer numero = 0; try { numero = Integer.parseInt(valor); } catch (NumberFormatException e) { throw new MiExcepcion("\nERROR : El numero " + valor + " no es decimal"); } return Integer.toOctalString(numero); } public String getHexadecimalBinario(String valor) { Integer numero = 0; try { numero = Integer.valueOf(valor, 16); } catch (NumberFormatException e) { throw new MiExcepcion("\nERROR : El numero " + valor + " no es hexadecimal"); } return Integer.toBinaryString(numero.intValue()); } public String getHexadecimalDecimal(String valor) { Integer numero = 0; try { 9

numero = Integer.valueOf(valor, 16); } catch (NumberFormatException e) { throw new MiExcepcion("\nERROR : El numero " + valor + " no es hexadecimal"); } return Integer.toString(numero.intValue()); } public String getHexadecimalOctal(String valor) { Integer numero = 0; try { numero = Integer.valueOf(valor, 16); } catch (NumberFormatException e) { throw new MiExcepcion("\nERROR : El numero " + valor + " no es hexadecimal"); } return Integer.toOctalString(numero.intValue()); } public String getOctalBinario(String valor) { Integer numero = 0; try { numero = Integer.valueOf(String.valueOf(valor), 8); } catch (NumberFormatException e) { throw new MiExcepcion("\nERROR : El numero " + valor + " no es octal"); } return Integer.toBinaryString(numero.intValue()); } public String getOctalDecimal(String valor) { Integer numero = 0; try { numero = Integer.valueOf(String.valueOf(valor), 8); } catch (NumberFormatException e) { throw new MiExcepcion("\nERROR : El numero " + valor + " no es octal"); } return Integer.toString(numero.intValue()); } public String getOctalHexadecimal(String valor) { Integer numero = 0; try { numero = Integer.valueOf(String.valueOf(valor), 8); 10

} catch (NumberFormatException e) { throw new MiExcepcion("\nERROR : El numero " + valor + " no es octal"); } return Integer.toHexString(numero.intValue()); } public static void main(String[] args) { App app = new App(); Gui vista = new Gui(app); } }

Cdigo de la clase denominada Gui /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.convertidor.vista; import import import import import import import com.convertidor.controlador.Command; com.convertidor.modelo.App; java.awt.Color; java.awt.Font; java.awt.event.WindowAdapter; java.awt.event.WindowEvent; javax.swing.*;

/** * * @author carlin */ public class Gui extends JFrame { private JLabel etiqueta1, etiqueta2, excepcion, etiqueta3, etiqueta4; private JComboBox combo1, combo2; private JTextField texto1, texto2; private JButton aceptar, salir; private int valor1, valor2; public Gui(App app) { setTitle("CONVERTIDOR NUMERICO"); setSize(400, 300); setLocation(100, 50); setLayout(null); this.addWindowListener(new WindowAdapter() { @Override 11

public void windowClosing(WindowEvent we) { dispose(); } }); etiqueta1 = new JLabel("Valor a convertir"); etiqueta1.setBounds(40, 30, 140, 30); this.add(etiqueta1); etiqueta2 = new JLabel("Valor resultante"); etiqueta2.setBounds(200, 30, 140, 30); this.add(etiqueta2); String[] bases = {"Binario", "Decimal", "Hexadecimal", "Octal"}; combo1 = new JComboBox(bases); combo1.setBounds(20, 60, 140, 30); this.add(combo1); String[] bases2 = {"Binario", "Decimal", "Hexadecimal", "Octal"}; combo2 = new JComboBox(bases2); combo2.setBounds(200, 60, 140, 30); this.add(combo2); Font font = new Font("Verdana", Font.BOLD, 14); texto1 = new JTextField(); texto1.setBounds(20, 100, 140, 50); texto1.setFont(font); this.add(texto1); texto2 = new JTextField(); texto2.setBounds(200, 100, 140, 50); texto2.setFont(font); this.add(texto2); etiqueta3 = new JLabel("Juan Carlos Romero"); etiqueta3.setBounds(20, 235, 140, 30); this.add(etiqueta3); etiqueta4 = new JLabel("Matricula 11380427"); etiqueta4.setBounds(20, 250, 140, 30); this.add(etiqueta4); Command accion1 = new Command(Command.ACCION1, this, app); Command accion2 = new Command(Command.ACCION2, this, app); aceptar = new JButton("Convertir"); aceptar.setBounds(90, 160, 100, 30); aceptar.addActionListener(accion1); 12

this.add(aceptar); salir = new JButton("Salir"); salir.setBounds(200, 160, 100, 30); salir.addActionListener(accion2); this.add(salir); excepcion = new JLabel(""); excepcion.setBounds(10, 200, 300, 30); excepcion.setForeground(Color.red); this.add(excepcion); this.setVisible(true); } public int getValor1() { return valor1 = combo1.getSelectedIndex(); } public int getValor2() { return valor2 = combo2.getSelectedIndex(); } public String getCampo1() { return texto1.getText(); } public JTextField getTextField() { return texto2; } public JLabel getExcepcion() { return excepcion; } }

Cdigo de la clase denominada Command /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.convertidor.controlador; import import import import com.convertidor.excepcion.MiExcepcion; com.convertidor.vista.Gui; com.convertidor.modelo.App; java.awt.event.ActionEvent; 13

import java.awt.event.ActionListener; /** * * @author carlin */ public class Command implements ActionListener { public static final int ACCION1 = 0; public static final int ACCION2 = 1; private Gui gui; private App app; private int id; private int base1, base2; private String valor; public Command(int id, Gui gui, App app) { this.id = id; this.gui = gui; this.app = app; } @Override public void actionPerformed(ActionEvent e) { switch (id) { case ACCION1: try { base1 = gui.getValor1(); base2 = gui.getValor2(); valor = gui.getCampo1(); /* * Manda una excepcion si las bases son iguales */ if (base1 == base2) { throw new MiExcepcion("No se puede convertir, las bases son iguales"); } /* * Conversion de binario a: decimal,hexadecimal,octal */ if (base1 == 0 && base2 == 1) { gui.getExcepcion().setText(""); gui.getTextField().setText(app.getBinarioDecimal(valor)); } if (base1 == 0 && base2 == 2) { 14

gui.getExcepcion().setText(""); gui.getTextField().setText(app.getBinarioHexadecimal(valo r)); } if (base1 == 0 && base2 == 3) { gui.getExcepcion().setText(""); gui.getTextField().setText(app.getBinarioOctal(valor)); } /* * Conversion de decimal a: binario,hexadecimal,octal */ if (base1 == 1 && base2 == 0) { gui.getExcepcion().setText(""); gui.getTextField().setText(app.getDecimalBinario(valor)); } if (base1 == 1 && base2 == 2) { gui.getExcepcion().setText(""); gui.getTextField().setText(app.getDecimalHexadecimal(valo r)); } if (base1 == 1 && base2 == 3) { gui.getExcepcion().setText(""); gui.getTextField().setText(app.getDecimalOctal(valor)); } /* * Conversion de Hexadecimal a: binario, decimal,octal */ if (base1 == 2 && base2 == 0) { gui.getExcepcion().setText(""); gui.getTextField().setText(app.getHexadecimalBinario(valo r)); } if (base1 == 2 && base2 == 1) { gui.getExcepcion().setText(""); gui.getTextField().setText(app.getHexadecimalDecimal(valo r)); } if (base1 == 2 && base2 == 3) { gui.getExcepcion().setText("");

15

gui.getTextField().setText(app.getHexadecimalOctal(valor) ); } /* * Conversion de octal a:binario, decimal, hexadecimal */ if (base1 == 3 && base2 == 0) { gui.getExcepcion().setText(""); gui.getTextField().setText(app.getOctalBinario(valor)); } if (base1 == 3 && base2 == 1) { gui.getExcepcion().setText(""); gui.getTextField().setText(app.getOctalDecimal(valor)); } if (base1 == 3 && base2 == 2) { gui.getExcepcion().setText(""); gui.getTextField().setText(app.getOctalHexadecimal(valor) ); } } catch (Exception ex) { gui.getExcepcion().setText(ex.getMessage()); } break; case ACCION2: gui.dispose(); break; } } } Cdigo de la clase denominada MiExcepcion /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.convertidor.excepcion; /** * * @author carlin */ public class MiExcepcion extends RuntimeException { public MiExcepcion(Throwable causa) { 16

super(causa); } public MiExcepcion(String mensaje, Throwable causa) { super(mensaje, causa); } public MiExcepcion(String mensaje) { super(mensaje); } }

17

CONCLUSIONES
Como pudimos ver en esta practica la conversin de un numero ya sea de base 10, 2, 8 o 16 a cualquier otra base de las mismas se realiza mediante mtodos muy parecidos la diferencia en si es que cada conversin a un sistema diferente cambia la base que es la que multiplica cada numero de la cifra elevada a la potencia k indica la posicin del numero. Al igual en nuestra aplicacin se considero poner algunas excepciones con finalidad de darle mas presentacin a nuestra practica es decir si alguna base que deseamos convertir accidentalmente seleccionamos otra base igual no podr convertirlo ya que simplemente pasara el mismo numero entre otras. Podemos decir que al saber como convertir un digito de estas bases mencionadas en nuestro proyecto final nos ser de gran ayuda ya que en si nuestra aplicacin solo podr leer base binaria.

18

BIBLIOGRAFA

1. Introducion to Java Programing Eighth Edition Y. Daniel Lian 2. http://matematicasparacomputadora.weebly.com/11-sistemasnumericos-octal-binario-decimal-hexadecimal.html 3. Java For Programers Second Edition Ditel Devilopers Series

19

También podría gustarte