miércoles, 16 de noviembre de 2011

4 trimestres



parcial1.zip
parcial2.zip
quizes.zip

lunes, 31 de octubre de 2011

Curso Backtrack 5 online

Aquí les dejo el link para un curso echo por la comunidad OMHE de un curso de backtrack 5, lo estoy haciendo y hasta el momento es bastante bueno, también les dejo el archivo googlepythonmail.py al cual se hace mención dentro del curso. disfrútenlo y úsenlo con responsabilidad

domingo, 25 de septiembre de 2011

lunes, 5 de septiembre de 2011

Enviar sms desde Debian GNU/Linux

version .pdf


Enviar sms desde Debian GNU/Linux

    De vez en cuando necesitamos enviar muchos mensajes de texto y nuestro telefono celular se queda corto, para esto y mucho mas, a sido desarrollada la aplicacion gammu y su interfaz grafica wammu, esta yuca les dara un paso a paso de como enviar sms con esta aplicacion desde su interfaz grafica y desde la linea de comandos, para desarrollor esta yuca se a usado el moden HUAWEI modelo E1752, con un chip GSM de un telefono celular, pero deveria funcionar con cualquier modem 3G con acceso a enviar sms o cualquier telefono movil con conección al pc

Pasos
1. instalar wammu
1. Sistemas -> Amdinistración -> Gestor de paquetes Sinaptic
 
2. Buscar Wammu

3. doble click sobre wammu o click derecho -> marcar para instalar

4. click en aplicar

esperamos a que instale y listo, ya tenemos instalada nuestra aplicación para telefonos moviles.






2. dar permiso a nuestro usuario para tener acceso a los modem y telefonos moviles

1. Sistemas -> administración -> Usuarios y grupos

2. Selecciona tu usuario y le das ajustes avanzados

3. selecciona usar módems

4. cerrar la sesion de usuario



3. Empesar a mandar mensajes de texto

1. Aplicaciones -> accesorios -> wammu

2. vamos al menu “telefono” y seleccionamos conectar

3. vamos al menu “crear” y seleccionamos mensaje

4. marcamos la casilla de enviar

5. colocamos el numero de telefono al que le enviaremos el mensaje

en la opcion editar podemos agregar una lista de telefonos en formato txt (separados por coma (,), saltos de linea o espacios) y se enviara a cada uno te los numeros en la lista.

6. escribimos el mensaje de texto que enviaremos y selecionamos aceptar

7. esperamos unos segundos a que el mensaje se envie y listo



4. Tambien podemos enviar mensajes desde la consola
tecleamos en la consola el comando

            gammu sendsms TEXT numero_del_receptor -text “el mensaje de texto que queremos enviar”

para enviar muchos mensajes de texto podemos valernos de un script
el siguiente escript envia el mismo mensaje a muchos destinatarios, los cuales, se encuentran en la lista numeros.txt separados por coma (,)

#!/bin/bash
texto="todo el mensaje aqui"
IFS="\,"
for i in `less nuneros.txt`
do
        gammu sendsms TEXT $i -text $texto
done


Autor.

Rubén Antonio Urrieta Bordones
http://rb34.blogspot.com
http://rb34.tumblr.com
urrietaruben@gmail.com
@rb342005

martes, 12 de julio de 2011

Sumador - Restador

library ieee;
use  ieee.std_logic_1164.all;
use  ieee.std_logic_unsigned.all;

entity suma_resta is
    port ( A, B : in std_logic_vector( 3 downto 0 );
             C0 : in std_logic ;
             S : out  std_logic_vector ( 3 downto 0 );
             C4 : out std_logic );
 end suma_resta;

 architecture  comportamiento_1   of  suma_resta  is
 signal   suma : std_logic_vector( 4 downto 0 );
 begin
        process (A,B,C0)
            begin
                if C0='1' then
                   
                    suma <= ( '0' & A ) + ( '0' & B );
                   
                    else
                    suma <= ( '0' & A ) - ( '0' & B );
                end if;
               
               
               
                C4 <= suma( 4 );
                S <= suma( 3 downto 0 );
        end process;
  end comportamiento_1;

sábado, 9 de julio de 2011

banco de pruebas detector de secuencias 1101

library ieee;
use IEEE.STD_LOGIC_1164.all;
entity bp_detector_secuencia is
end bp_detector_secuencia;
architecture estructural of bp_detector_secuencia is
    signal  bp_RESET, bp_RELOJ, bp_X, bp_Z : std_logic;
begin
uut: entity work.det_sec(detector_1)
port map ( RESET=>bp_RESET, CLK=>bp_RELOJ, x=>bp_X );
             process
      begin
         bp_RESET <= '1';     -- inicializa al sistema
                     bp_RELOJ <= '0';
                     bp_X <= '0';
                     wait for 50 ns;
                     bp_RESET <= '0';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '0';
                     bp_X <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <='0';
                     bp_X <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '0';
                     bp_X <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '0';
                     bp_X <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <='0';
                     bp_X <= '0';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '0';
                     bp_X <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '0';
                     bp_X <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <='0';
                     bp_X <= '0';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '0';
                     bp_X <= '0';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '0';
                     bp_X <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <='0';
                     bp_X <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '0';
                     bp_X <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '0';
                     bp_X <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <='0';
                     bp_X <= '0';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '0';
                     bp_X <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '0';
                     bp_X <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <='0';
                     bp_X <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '0';
                     bp_X <= '0';
                     wait for 50 ns;
                     bp_RELOJ <= '1';
                     wait for 50 ns;
                     bp_RELOJ <= '0';
                     bp_X <= '1';
                     wait for 50 ns;
    end process;
end architecture estructural;

Detector de secuencias

Detecter de secuencias que busca la secuencia 1101y al encontrarla activa la salida Z



library  ieee ;
use  ieee.std_logic_1164.all ;
entity  det_sec is
port ( CLK, RESET, x  :  in std_logic ;
          z : out std_logic );
end  det_sec ;
architecture  detector_1 of  det_sec  is             
type tipo_estado  is  ( A, B, C, D ) ;                
signal estado, siguiente_estado : tipo_estado ;
begin
process ( CLK, RESET )
 begin
    if ( RESET = '1' ) then
          estado <= A ;
    elsif ( CLK'event  and  CLK = '1' ) then
           estado <= siguiente_estado ;
     end if;
  end process ;
 
  process ( x, estado )
     begin
         case  estado  is
             when A =>
                  if  x = '1'  then
                       siguiente_estado <= B ;
                   else
                       siguiente_estado <= A ;
                  end if ;
              when B =>
                  if x = '1' then
                        siguiente_estado <= C ;
                  else
                        siguiente_estado <= A ;
                  end if ;
              when C =>
                   if x = '1' then
                        siguiente_estado <= C ;
                    else
                         siguiente_estado <= D ;
                   end if;
              when D =>
                    if  x = '1' then
                         siguiente_estado <= B  ;
                    else
                          siguiente_estado <= A ;
                    end if ;
          end case ;
  end process ;
  process ( x, estado )
    begin
        case  estado  is
            when  A =>
                z <= '0' ;
            when B =>
                z <= '0' ;
            when C =>
                z <= '0' ;
            when D =>
                if x = '1' then
                    z <= '1' ;
                else
                    z <= '0' ;
                end if ;
            end case ;
   
  end process ;
end detector_1 ;

domingo, 19 de junio de 2011

banco de pruebas decodificador 3 a 8 VHDL

Aqui les dejo el codigo que corresponde al banco de pruebas del decodificador 3 a 8 que les deje antes, exito.  Les recomiendo Geany para escribir el codigo y ModelSim para compilarlo y probarlo. exito


library ieee;
use IEEE.STD_LOGIC_1164.all;
entity banco_prueba is
end entity banco_prueba ;
architecture prueba_decodificador_3_a_8 of banco_prueba is
    signal  bp_H : std_logic;
    signal  bp_D : std_logic_vector(7 downto 0);
    signal    bp_S : std_logic_vector(2 downto 0);


begin
uut: entity work.decodificador_3_a_8(estructural_1)
port map ( H=>bp_H, S=>bp_S, D=>bp_D);
        
    process
      begin
        bp_H <= '0';
        bp_S <= "000";
        wait for 20 ns;
        bp_H <= '0';
        bp_S <= "001";
        wait for 20 ns;
        bp_H <= '0';
        bp_S <= "010";
        wait for 20 ns;
        bp_H <= '0';
        bp_S <= "011";
        wait for 20 ns;
        bp_H <= '0';
        bp_S <= "100";
        wait for 20 ns;
        bp_H <= '0';
        bp_S <= "101";
        wait for 20 ns;
        bp_H <= '0';
        bp_S <= "110";
        wait for 20 ns;
        bp_H <= '0';
        bp_S <= "111";
        wait for 20 ns;
       
        bp_H <= '1';
        bp_S <= "000";
        wait for 20 ns;
        bp_H <= '1';
        bp_S <= "001";
        wait for 20 ns;
        bp_H <= '1';
        bp_S <= "010";
        wait for 20 ns;
        bp_H <= '1';
        bp_S <= "011";
        wait for 20 ns;
        bp_H <= '0';
        bp_S <= "100";
        wait for 20 ns;
        bp_H <= '1';
        bp_S <= "101";
        wait for 20 ns;
        bp_H <= '1';
        bp_S <= "110";
        wait for 20 ns;
        bp_H <= '1';
        bp_S <= "111";
        wait for 20 ns;
       

       
    end process;
end architecture prueba_decodificador_3_a_8;
 

VHDL. Decodificador 3 a 8

aqui les dejo el codigo en VHDL para un decodificador 3 a 8 utilizando process, case, if y vectores. Les recomiendo Geany para escribir el codigo y ModelSim para compilarlo y probarlo. exito




library ieee;                                       
use ieee.std_logic_1164.all;         
entity decodificador_3_a_8 is                              
port (    H : in std_logic;                                
        S : in std_logic_vector(2 downto 0);
        D : out std_logic_vector(7 downto 0));                               
end decodificador_3_a_8;
architecture estructural_1 of decodificador_3_a_8 is        
begin
  process(S,H)
  begin
    case s is
        when "000" =>
            if H ='1' then
                D <= "00000001";
            else
                D <= "00000000";
            end if;
        when "001" =>
            if H ='1' then
                D <= "00000010";
            else
                D <= "00000000";
            end if;
        when "010" =>
            if H ='1' then
                D <= "00000100";
            else
                D <= "00000000";
            end if;
            when "011" =>
            if H ='1' then
                D <= "00001000";
            else
                D <= "00000000";
            end if;
            when "100" =>
            if H ='1' then
                D <= "00010000";
            else
                D <= "00000000";
            end if;
            when "101" =>
            if H ='1' then
                D <= "00100000";
            else
                D <= "00000000";
            end if;
            when "110" =>
            if H ='1' then
                D <= "01000000";
            else
                D <= "00000000";
            end if;
            when "111" =>
            if H ='1' then
                D <= "10000000";
            else
                D <= "00000000";
            end if;
            when others =>
                D <= "00000000";           
        end case;

  end process;      
end estructural_1;


listo.

miércoles, 4 de mayo de 2011

Comunicaciones 1

tema-2-mod-analog-am.ppt

guia de ejercicios primer parcial


telecoUnidad3.ppt
Radio 7.ppt



 
quiz #1


 

multiplexacion

moduladoresydemoduladoresam-1230577935869217-1.ppt



Sistemas electricos

Dispositivos de potencia_20042.doc



guia #1


Fundamentos de Circuitos Electricos - 3Ed.Sadiku.pdf
Interferencia electromagnética.docx
Tabla de equivalencias.docx

Arquitectura del computador

aqui les dejo las imagenes escaneadas del libro de Morris Mano,




Capítulo_4_Morris_Mano.doc
Capítulo_5_Morris_Mano.doc
Capítulo_6_Morris_Mano_Circuitos_Secuenciales.doc
Capítulo_7_Morris_Mano.doc
Capítulo_8_Morris_mano.doc
Capítulo_9_Memorias.doc
Capítulo_10_Procesador.doc

domingo, 17 de abril de 2011

vercion final del configurador de routers

aqui les dejo la ultima verción del proyecto, todavia tiene algunos errorsitos que no me dio tiempo de corregir, espero sugerencias y codigos... enlace

domingo, 27 de marzo de 2011

primera vercion del configurador de routers

saludos amigos
aqui les dejo PARTE del codigo que desarrolle para mi proyecto,
les dejo solo las partes que me parecieron mas dificil con pocos comentarios para que se esfuersen un poco en entender y no pase lo que paso con la ecuacion de segundo grado (muchos las copiaron y la entregaron tal cual, el profesor me llamo la atención)

aqui les va:

//ancho de banda 10
       
       

       cli.append(nombreRouter+"(config-if)#speed 10"+"\n");

//encender y apgar la interface
       int conta;
        conta++;
        if(conta % 2==0){
            cli.append(nombreRouter+"(config-if)#shutdown"+"\n");
        } else{
            cli.append(nombreRouter+"(config-if)#no shutdown"+"\n");
        }

// agregar direccion ip

        a = Integer.parseInt(ip1.getText());
            b = Integer.parseInt(ip2.getText());
            c = Integer.parseInt(ip3.getText());
            d = Integer.parseInt(ip4.getText());




            if (a == 0 && b == 0 && c == 0 && d == 0){
               cli.append(nombreRouter+"(config-if)#no ip address "+"\n");
            }

            else{

                if(a <= 255 && a >= 0 && b <= 255 && b >= 0 && c <= 255 && c >= 0 && d <= 255 && d >= 0 ){
                    cli.append(nombreRouter+"(config-if)#ip address "+a+"."+b+"."+c+"."+d+" "+mascara.getSelectedItem()+"\n");

                } else{
                    errorip.setVisible(true);
                }
            }}

// boton agregar ruta estatica

    if(a <= 255 && a >= 0 && b <= 255 && b >= 0 && c <= 255 && c >= 0 && d <= 255 && d >= 0 ){

                if(e == 0 && f==0&& g == 0 && h == 0){
                    System.out.println("direccion de siguiente salto no valida");
                } else{
                   
                    if (a==0 && b==0&& c==0&&d==0){
                        if (contadefault ==0){
                            contadefault++;
                            staticroute.append("default via "+e+"."+f+"."+g+"."+h+" "+"\n");
                            cli.append(nombreRouter+"(config)#ip route "+a+"."+b+"."+c+"."+d+" "+"0.0.0.0"+" "+e+"."+f+"."+g+"."+h+" "+"\n");
                        }
                        else{
                            System.out.println("solo puede haber una ruta por defecto");
                          
                        }
                    }
                    else{
                        cli.append(nombreRouter+"(config)#ip route "+a+"."+b+"."+c+"."+d+" "+mascara1.getSelectedItem()+" "+e+"."+f+"."+g+"."+h+" "+"\n");
                        if(e <= 255 && e >= 0 && f <= 255 && f >= 0 && g <= 255 && g >= 0 && h <= 255 && h >= 0 ){
                            if (mascara1.getSelectedItem() == "255.0.0.0"){
                                staticroute.append(a+"."+b+"."+c+"."+d+"/8 via "+e+"."+f+"."+g+"."+h+" "+"\n");
                            }
                            if (mascara1.getSelectedItem() == "255.255.0.0"){
                                staticroute.append(a+"."+b+"."+c+"."+d+"/16 via "+e+"."+f+"."+g+"."+h+" "+"\n");
                            }
                            if (mascara1.getSelectedItem() == "255.255.255.0"){
                                staticroute.append(a+"."+b+"."+c+"."+d+"/24 via "+e+"."+f+"."+g+"."+h+" "+"\n");
                            }
                            if (mascara1.getSelectedItem() == "255.255.255.128"){
                                staticroute.append(a+"."+b+"."+c+"."+d+"/25 via "+e+"."+f+"."+g+"."+h+" "+"\n");
                            }
                            if (mascara1.getSelectedItem() == "255.255.255.192"){
                                staticroute.append(a+"."+b+"."+c+"."+d+"/26 via "+e+"."+f+"."+g+"."+h+" "+"\n");
                            }
                            if (mascara1.getSelectedItem() == "255.255.255.224"){
                                staticroute.append(a+"."+b+"."+c+"."+d+"/27 via "+e+"."+f+"."+g+"."+h+" "+"\n");
                            }
                            if (mascara1.getSelectedItem() == "255.255.255.240"){
                                staticroute.append(a+"."+b+"."+c+"."+d+"/28 via "+e+"."+f+"."+g+"."+h+" "+"\n");
                            }
                            if (mascara1.getSelectedItem() == "255.255.255.248"){
                            staticroute.append(a+"."+b+"."+c+"."+d+"/29 via "+e+"."+f+"."+g+"."+h+" "+"\n");
                            }
                            if (mascara1.getSelectedItem() == "255.255.255.252"){
                                staticroute.append(a+"."+b+"."+c+"."+d+"/30 via "+e+"."+f+"."+g+"."+h+" "+"\n");
                            }
                            if (mascara1.getSelectedItem() == "255.255.255.254"){
                                staticroute.append(a+"."+b+"."+c+"."+d+"/31 via "+e+"."+f+"."+g+"."+h+" "+"\n");
                            }
                        }
                        else{
                            // errorip.setVisible(true);
                            System.out.println("direccion de siguiente salto no valida");

//boton agregar rip

if (a == 0 && b == 0 && c == 0 && d == 0){

                System.out.println("Direccion de red no valida");
                //  cli.append(nombreRouter+"(config-if)#no ip address "+"\n");
            }

            else{

                if(a <= 255 && a >= 0 && b <= 255 && b >= 0 && c <= 255 && c >= 0 && d <= 255 && d >= 0 ){
                    cli.append(nombreRouter+"(config-router)#network "+a+"."+b+"."+c+"."+d+" "+"\n");
                    rip.append(a+"."+b+"."+c+"."+d+" "+"\n");

                } else{
                    errorip.setVisible(true);
                }
            }}



        catch(Exception e){
            cli.append(nombreRouter+" "+niveltex+"#end"+"\n");
            cli.append(nombreRouter+"(config)#router rip"+"\n");
            cli.append(nombreRouter+"(config-router)#"+"\n");
            nivel=10;

            errorip.setVisible(true);

        }

martes, 15 de marzo de 2011

Calcular ecuacion de segundo grado en java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author rb34
 */

//import java.awt.*;

import java.awt.Color;
import javax.swing.*;
public class ecuacion  extends JFrame{
    // static JFrame ventana = new JFrame("ventana");
    static JButton procesar = new JButton();
    static JButton borrar = new JButton();

    static JLabel a = new JLabel("a");
    static JLabel b = new JLabel("b");
    static JLabel c = new JLabel("c");

    static JLabel x = new JLabel("x");
    static JLabel y = new JLabel("y");

    static JTextField texta = new JTextField();
    static JTextField textb = new JTextField();
    static JTextField textc = new JTextField();

    static JTextField textx = new JTextField();
    static JTextField texty = new JTextField();
    public ecuacion(){
        initComponents();
    }

     private void initComponents(){
        this.setTitle("ecuacion2");
        this.setSize(500, 160);
        this.setResizable(false);
        this.setLayout(null);
        //this.setBackground(Color.red);
        procesar.setLabel("procesar");
        procesar.setBounds(10, 80, 100, 30);
        procesar.setBackground(Color.blue);
        add(procesar);
       
        borrar.setLabel("borrar");
        borrar.setBounds(300, 80, 100, 30);
        borrar.setBackground(Color.CYAN);
        add(borrar);

        a.setBounds(10, 10, 10, 20);
        texta.setBounds(30, 10, 50, 20);
        add(a);
        add(texta);
        b.setBounds(10, 30, 10, 20);
        textb.setBounds(30, 30, 50, 20);
        add(b);
        add(textb);
        c.setBounds(10, 50, 10, 20);
        textc.setBounds(30, 50, 50, 20);
        add(c);
        add(textc);

        x.setBounds(300, 10, 10, 20);
        textx.setBounds(310, 10, 50, 20);
        add(x);
        add(textx);


        y.setBounds(300, 30, 10, 20);
        texty.setBounds(310, 30, 50, 20);
        add(y);
        add(texty);



        this.setVisible(true);
    }
     public static void main(String args[]){
         ecuacion demo =new ecuacion();
     }



}


class  evento2 implements ActionListener{

    ecuacion local;
    int a,b,c;
    double z;

    public evento2( ecuacion para){
        local = para;
     }

    public void actionPerformed(ActionEvent evento2){
        if (evento2.getSource()==local.procesar){
            a = Integer.parseInt(local.texta.getText());
            b = Integer.parseInt(local.textb.getText());
            c = Integer.parseInt(local.textc.getText());
           
            //z=Math.sqrt((b*b)+(-4*a*c));
            local.textx.setText(" "+((-b+Math.sqrt((b*b)+(-4*a*c)))/(2*a)));
            local.texty.setText(" "+((-b-Math.sqrt((b*b)+(-4*a*c)))/(2*a)));
        }
        if (evento2.getSource()==local.borrar){
            local.texta.setText(null);
            local.textb.setText(null);
            local.textc.setText(null);
            local.textx.setText(null);
            local.texty.setText(null);
           
        }
    }

}

sábado, 12 de marzo de 2011

Calculadora en Java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author rb34
 */



import java.awt.Color;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class calculadora  extends JFrame{
    // static JFrame ventana = new JFrame("ventana");
    JButton procesar = new JButton();
    JButton borrar = new JButton();
    JButton dividir = new JButton();
    JButton multiplicar = new JButton();


    JLabel a = new JLabel("a");
   JLabel b = new JLabel("b");
    JLabel c = new JLabel("c");

    JLabel x = new JLabel("x");
    JLabel y = new JLabel("y");

    JTextField texta = new JTextField();
    JTextField textb = new JTextField();
    JTextField textc = new JTextField();

    JTextField textx = new JTextField();
    JTextField texty = new JTextField();
    public calculadora(){
        initComponents();
    }



     private void initComponents(){
        this.setTitle("calculadora");
        this.setSize(500, 160);
        //this.setResizable(false);
        this.setLayout(null);
        //this.setBackground(Color.red);
        procesar.setLabel("+");
        procesar.setBounds(10, 80, 100, 30);
        procesar.setBackground(Color.CYAN);
        procesar.addActionListener(new evento(this));
        add(procesar);

        borrar.setLabel("-");
        borrar.setBounds(115, 80, 100, 30);
        borrar.setBackground(Color.CYAN);
        borrar.addActionListener(new evento(this));
        add(borrar);


        multiplicar.setLabel("*");
        multiplicar.setBounds(220, 80, 100, 30);
        multiplicar.setBackground(Color.CYAN);
        multiplicar.addActionListener(new evento(this));
        add(multiplicar);

        dividir.setLabel("/");
        dividir.setBounds(325, 80, 100, 30);
        dividir.setBackground(Color.CYAN);
        dividir.addActionListener(new evento(this));
        add(dividir);

        a.setBounds(10, 10, 10, 20);
        texta.setBounds(30, 10, 50, 20);
        add(a);
        add(texta);
        b.setBounds(10, 30, 10, 20);
        textb.setBounds(30, 30, 50, 20);
        add(b);
        add(textb);
        c.setBounds(10, 50, 10, 20);
        textc.setBounds(30, 50, 50, 20);
        add(c);
        add(textc);


        /*
        x.setBounds(300, 10, 10, 20);
        textx.setBounds(310, 10, 50, 20);
        add(x);
        add(textx);


        y.setBounds(300, 30, 10, 20);
        texty.setBounds(310, 30, 50, 20);
        add(y);
        add(texty);
 */


        //pack();
        this.setVisible(true);
    }
     public static void main(String args[]){
         calculadora demo =new calculadora();
     }



}


class evento implements ActionListener{

    calculadora local;
    int a,b;

    public evento(calculadora par){
        local = par;
    }

    public void actionPerformed(ActionEvent evento){
        if (evento.getSource()==local.procesar){
            a = Integer.parseInt(local.texta.getText());
            b = Integer.parseInt(local.textb.getText());
            local.textc.setText(""+(a+b));
        }
         if (evento.getSource()==local.borrar){
            a = Integer.parseInt(local.texta.getText());
            b = Integer.parseInt(local.textb.getText());
            local.textc.setText(""+(a-b));
        }

        if (evento.getSource()==local.multiplicar){
            a = Integer.parseInt(local.texta.getText());
            b = Integer.parseInt(local.textb.getText());
            local.textc.setText(""+(a*b));
        }

        if (evento.getSource()==local.dividir){
            a = Integer.parseInt(local.texta.getText());
            b = Integer.parseInt(local.textb.getText());
            local.textc.setText(""+(a/b));
        }
    }

}