martes, 15 de diciembre de 2015

GESTIÓN DE EXCEPCIONES 
(GARCIA DE JALON & IGNACIO RODRIGUEZ, 2000)Una excepción es un evento que ocurre durante la ejecución del programa que interrumpe el flujo normal de las sentencias. JERARQUÍA DE EXCEPCIONES

 La clase Throwable
(JORGE SANCHEZ,2004)Superclase de todas las clases de excepción. 
Dos tipos heredados: 
ü Error. Representa los errores del sistema y los errores en tiempo de compilación. No se captura salvo en ocasiones especiales.
 ü Exception. Tipo básico que puede lanzarse desde cualquier método de la biblioteca Java. Exception y sus clases indican situaciones que una aplicación debería tratar de forma razonable. Los tipos principales de excepciones son: 

  • RuntimeException: Errores que del programador, como una división de cero o el acceso fuera de los límites de un array. 
  •  IOException: Errores que no puede evitar el programado, generalmente relacionados con la entrada y salida/salida del programa. 

Generación de excepciones
 ü Throws
Indica que el código producirá una excepción, que no se tratará dentro de él y se pasará al método superior, utilizando la cláusula throws.
 ü Throw
Nos sirve para lanzar una excepción en cualquier bloque de código de nuestra aplicación Ejemplo:


package Throws_Exception;

public class Transformacion {
   
       String num="ANDREA";
       public void resultado(){
           try {
               convertir();
           } catch (Exception e) {
               System.out.println(e.getMessage());
           }
       }
      public void convertir() throws Exception{
           try {
              int a=Integer.parseInt(num);
               System.out.println("El numero es:"+a);
          } catch (Exception e) {
              throw new Exception("No es un numero");
          }
            
        }
    }
package Throws_Exception;

public class Exception_principal {
    public static void main(String[] args) {
        Transformacion f=new Transformacion();
       f.resultado();
        
    }
}


Fuentes Electrónicas
[1]JAVA2
 http://www.jorgesanchez.net/programacion/manuales/Java.pdf

sábado, 12 de diciembre de 2015

Sentencia Switch

Sentencia Switch

1                FUNDAMENTO TEORICO
(Remon, 2012) La sentencia switch en una aplicación java es una instrucción de decisión  múltiple, es decir, el compilador busca el valor contenido en una variable contra una lista de constantes definidas por el desarrollo que puede ser de tipo int o char, cuando el compilador encuentra el valor de igualdad entre la variable y la constante se ejecutara un grupo de instrucciones asociadas a dicha constante, si no encuentra el valor de igualdad entonces se ejecutaran instrucciones asociadas a un default ( por defecto ).

             Formato:  






 (Paredes, 2010) Se trata de una alternativa a la bifurcación if else cuando se compara la misma expresión con distintos valores.
Características más relevantes de switch son las siguientes:
·         Cada sentencia case se corresponde con un único valor de expresión. No se puede establecer rango o condiciones sino que se debe compara con valores concretos.
·         Los valores no comprendidos en alguna sentencia  case se pueden gestionar en default, que es opcional.
·         En ausencia de break, cuando se ejecuta una sentencia case se ejecuta también todos los case  que van a continuación, hasta que llegue a un break o hasta que se termine el switch.

(GAMARRA MORENO) La sentencia switch permite ejecutar una de varias acciones, en función del valor de una expresión. Es una sentencia especial para decisiones múltiples. Donde expresión es una expresión entera de tipo char, byte, short o int y expresión_constante es una constante también entera y de los mismos tipos. Tanto la expresión como las expresiones constantes son convertidas implícitamente a int. Por último, sentencia es una sentencia simple o compuesta. En el caso de tratarse de una sentencia compuesta, no hace falta incluir las sentencias simples entre { }.
La sentencia switch evalúa la expresión entre paréntesis y compara su valor con las constantes de cada case. La ejecución de las sentencias del bloque de la sentencia switch, comienza en el case cuya constante coincida con el valor de la expresión y continúa hasta el final del bloque o hasta una sentencia que transfiera el control fuera del bloque de switch; por ejemplo, break. La sentencia switch puede incluir cualquier número de cláusulas case. Si no existe una constante igual al valor de la expresión, entonces se ejecutan las sentencias que están a continuación de default, si esta cláusula ha sido especificada. La cláusula
default puede colocarse en cualquier parte del bloque y no necesariamente al final.
La sentencia break finaliza la ejecución de la sentencia switch.
(Fernandez, 2004) La expresión ha de ser una variable de tipo entero o una expresión de tipo entero. Cuando se encuentra coincidencia con un case se ejecutan las instrucciones a él asociadas hasta encontrar el primer break. Si no se encuentra ninguna coincidencia se ejecutan las instrucciones en default. La sección default es prescindible.



                    EJERCICIOS RESUELTOS

a)    Preguntar qué día de la semana fue el día 1 del mes actual y reportar el día de la semana que es hoy.





b)    Ingresar el número de mes y el año y reporte el número de días que tiene ese mes.

1                   EJERCICIOS PROPUESTOS:
a)   Ingresar un numero entre 1 y 12 y reportar el mes que le corresponde
b)    Ingresar un numero entero, y si este termina en 2,5 u 8 reportar el cuadrado del número, si este termina en 4,7 o 9 reportar el numero multiplicado por 5 y reportar el mismo número en otro caso
c)    Ingresar 2 números y luego escoger la operación que se quiere hacer con ellos y reportar el resultado.
d)    Dados como entrada 3 enteros representando la fecha como día, mes, año, imprimir la fecha del día anterior. Por ejemplo para una entrada como: 1, 3,1992 La salida será: Fecha anterior a 1-3-1992 es 29-02-1992.
e)    Generar un número aleatorio entre 1 y 3000, mostrarlo en la pantalla y reportar su equivalente en números romanos.

CONCLUCION Y RECOMENDACIÓN:
Con esto concluimos que la sentencia switch case es una estructura de control empleada en programación, se utiliza para agilizar la toma de decisiones múltiples, trabaja de la misma manera que lo harían sucesivos if, if else o until anidados, así como combinaciones propias de determinados lenguajes de programación.
El switch no es tan popular como el if, pero se utiliza con regularidad en la programación. En principio la funcionalidad de un switch también se puede implementar con múltiples ifs anidados. En el caso de que haya muchas acciones dependientes de muchos valores iniciales, es recomendable su uso. El switch favorece la legibilidad y rapidez en la programación.









Bibliografía

Fernandez, O. B. (2004). introduccion al lenguaje de programacion java.
GAMARRA MORENO. (s.f.). PROGRAMACION CON JAVA 2.
Paredes, H. T. (2010). Desarrollo de Aplicaciones con Java. Fundación de Código Libre Dominicano.
Remon, M. A. (2012). DESARROLLO DE APLICACION CON JAVA. Lima: Editorial Macro.


Referencias Electrónicas

viernes, 11 de diciembre de 2015

EJEMPLOS Y EJERCICIOS SOBRE IF-ELSE EN JAVA




I.              FUNDAMENTO TEORICO

1.1.        ESTRUCTURAS DE SELECCIÓN
(GUEVARA, 2011)Las estructuras de selección permiten modificar el flujo de un programa. La decisión de ejecutar un bloque de sentencias queda condicionada por el valor de una expresión lógica definida utilizando variables del programa.
En conclusión permite decidir si se ejecuta un bloque o no.

1.1.1.   ESTRUCTURA IF
(GARCIA DE JALON & IGNACIO RODRIGUEZ, 2000)
La estructura if se denomina estructura de selección única porque ejecuta un bloque de sentencias solo cuando se cumple la condición del if. Si la condición es verdadera se ejecuta el bloque de sentencias. Si la condición es falsa, el flujo del programa continúa en la sentencia inmediatamente posterior al if.

Una sentencia if tiene la siguiente sintaxis:



La condición es una expresión que evalúa un valor lógico, por lo que el resultado solo puede ser true o false. La condición siempre se escribe entre paréntesis. La selección se produce sobre el bloque de sentencias delimitado por llaves.

1.1.1.   ESTRUCTURA IF-ELSE
La estructura if-else se denomina de selección doble porque selecciona entre dos bloques de sentencias mutuamente excluyentes. Si se cumple la condición, se ejecuta el bloque de sentencias asociado al if. Si la condición no se cumple, entonces se ejecuta el bloque de sentencias asociado al else.
Una sentencia if-else tiene la siguiente sintaxis:


Al igual que en el if, la condición se debe escribir entre paréntesis. La selección depende del resultado de evaluar la condición. Si el resultado es true, se ejecuta el bloque de sentencias del if, en cualquier otro caso se ejecuta el bloque de instrucciones del else. Después de ejecutar el bloque de sentencias se ejecuta la sentencia inmediatamente posterior al if-else.

Ejemplos:
1. Se solicita leer un número entero positivo y determinar si es un número de 1, 2,3 o 4 cifras.

2.En un casino de juegos se desea mostrar los mensajes respectivos por el puntaje obtenido en el lanzamiento de tres dados de un cliente, de acuerdo a los siguientes resultados:
ü  Si los tres dados son seis, mostrar el mensaje “Excelente”
ü  Si dos dados se obtiene seis, mostrar el mensaje “Muy bien”
ü  Si un dado se obtienen seis, mostrar el mensaje “Regular”
ü  Si ningún dado se obtiene seis, mostrar el mensaje “Pésimo”

II.      EJERCICIOS PROPUESTOS
2.1.Ingresar tres números enteros y determinar cuál es el mayor.
2.2.Un obrero necesita calcular su salario semanal, el cual se obtiene de la siguiente manera: 
  • Si trabaja 40 horas o menos se le paga $16 por hora 
  • Si trabaja más de 40 horas se le paga $16 por cada una de las primeras 40 horas y $20 por cada hora extra.

2.3. En el Mercado se hace un 20% de descuento a los clientes cuya compra supere los 300 .¿Cuál será la cantidad que pagara una persona por su compra? 
2.4.Una persona enferma, que pesa 70kg. Se encuentra en reposo y desea saber cuántas calorías consume durante todo el tiempo que realice una misma actividad. Las actividades que tiene permitido realizar son únicamente dormir o estar sentado en reposo.Los datos que tiene son estando dormido consume 1.08 calorías por minuto y estando sentado en reposo consume 1.66 calorías por minuto.
2.5.Un hombre desea saber cuánto dinero se genera por concepto de interés, sobre la cantidad que tiene en inversión en el banco. Él decidirá reinvertir los intereses siempre y cuando estos exceda a $7000, y en ese caso desea saber cuánto dinero tendrá finalmente en su cuenta.

III.            CONCLUSIONES Y RECOMENDACIONES

Las estructuras de control if-else nos permite decidir si se ejecuta o no un bloque, y nos posibilita definir las acciones que se deben llevar a cabo si se cumple cierta condición y también determinar las acciones que se deben ejecutar en caso de que no se cumpla.

Les recomendaría que si quieren programar con las estructuras if_else es importante que primero entiendan la sintaxis de ellas cómo funcionan, por qué hay un if y por qué hay un else.
Ya que si no saben la sintaxis y el funcionamiento de cada uno de ellos, tendrán problemas al momento de querer usarlas en su programa.


Bibliografía

GARCIA DE JALON, J., & IGNACIO RODRIGUEZ, J. (2000). APRENDA JAVA COMO SI ESTUVIERA EN PRIMERO. NAVARRA: UNIVERSIDAD DE NAVARRA.
GUEVARA, J. M. (2011). FUNDAMENTOS DE PROGRAMACION JAVA. MADRID: EME.


  REFERENCIAS ELECTRONICAS

[1]APRENDA JAVA COMO SI ESTUVIERA EN PRIMERO


[2]FUNDAMENTOS DE PROGRAMACION JAVA

jueves, 10 de diciembre de 2015

UNA HERRAMIENTA TECNOLÓGICA PARA EL APRENDIZAJE DE POO


El sistema Greenfoot es una combinación de framework y entorno para la creación de aplicaciones de simulación interactivas en un plano bidimensional en el lenguaje de programación Java. Es adecuado para nuevos programadores. En Greenfoot la visualización de objetos y la interacción entre ellos son los elementos clave.
Una manera de visualización del sistema es como una extensión del banco de objetos de BlueJ. Greenfoot extiende la idea del banco de objetos al mundo de los objetos. En este mundo los objetos tienen una apariencia gráfica y una posición en el mundo. La interacción directa con estos objetos es todavía posible, como en el original BlueJ pero el comportamiento de los objetos puede ser ahora observado directamente al ver los cambios en la posición y apariencia individual de los objetos.  El propio mundo de los objetos (visible como área subyacente detrás de los objetos Greenfoot) llega a ser un objeto programable, interactivo integrado en la estructura de la aplicación.

Además de los conceptos de diferenciación entre clase y objeto, la invocación a métodos y el acceso al estado y comportamiento de los objetos, al igual que en BlueJ, el entorno de desarrollo integrado, junto con el editor “built-in” ayuda a los usuarios a afianzar pequeños conceptos generales de computación tales como código fuente, compilación ejecución, etc.


Ø  Greenfoot no es la única herramienta de a poyo existen varias y Cada herramienta aporta distintas funcionalidades que pueden ayudarnos a cubrir nuestros propios objetivos, y aumentar nuestro conocimiento, a medida que aumenta el nivel de conocimiento, estos objetivos pueden variar considerablemente. Estas herramientas te proveerán una introducción a la programación y a la codificación de programas
A continuación se les recomiendas estas:



martes, 8 de diciembre de 2015

una empresa se dedica a la venta de celulares para esto se necesita saber el marca,modelo,pais al que perenece el cel,precio de fabrica el descuento de igv, se pide realizar la opercion de modificar los datos ingresados ingresando el pais del celular y pedir que se desea modificar(pais,marca,igv,modelo,precio de fabrica). venta por marca.

package menu;

public class VentaCelu {
    private String modelo;
    private String marca;
    private String pais;
    private double igv;
    private double precioF;
    private double precioV;
    private int cant;

    public VentaCelu(double precioV,int cant) {
        this.precioV = precioV;
        this.cant=cant;
    }

    public VentaCelu(int cant) {
        this.cant = cant;
    }
    
    

    public VentaCelu() {
        this.modelo = null;
        this.marca = null;
        this.pais=null;
        this.igv = 0.0;
        this.precioF = 0.0;
        this.precioV = 0.0;
        
    }

    public VentaCelu(String modelo, String marca,String pais,
 double igv, double precioF) {
        this.modelo = modelo;
        this.marca = marca;
        this.pais=pais;
        this.igv = igv;
        this.precioF = precioF;
        this.precioV = 0.0;
    }

    public String getModelo() {
        return modelo;
    }

    public void setModelo(String modelo) {
        this.modelo = modelo;
    }

    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public double getIgv() {
        return igv;
    }

    public void setIgv(double igv) { 
        this.igv = igv;
    }

    public double getPrecioF() {
        return precioF;
    }

    public void setPrecioF(double precioF) {
        this.precioF = precioF;
    }

    public double getPrecioV() {
        return precioV;
    }

    public void setPrecioV(double precioV) {
        this.precioV = precioV;
    }

    public String getPais() {
        return pais;
    }

    public void setPais(String pais) {
        this.pais = pais;
    }
    
    

    
}


package menu;
import static java.lang.System.exit;
import java.util.Scanner;
public class Proceso {
   
    private VentaCelu celular[];//vector
    public int MaxElem = 10;//tamanio
    private int IndVector = 0;//indvector
    public Lectura lec;

    public Proceso () { 
        this.celular= new VentaCelu[MaxElem];
        
    }

    public boolean InserccionSecuencial(VentaCelu vCel) {
        boolean esInsertado = false;

        if (this.IndVector < this.MaxElem) {
            this.celular[this.IndVector]=new  VentaCelu();
            this.celular[this.IndVector] = vCel;
            this.IndVector++;
            esInsertado = true;
        }
        return esInsertado;
    }      

      public int buscar(VentaCelu cel)
    {
        int posElem=-1;
        for (int i = 0; i < IndVector; i++) {
            if (this.celular[i].getPais().equals(cel.getPais())) 
            {
                posElem=i;
            }
            
        }
       return (posElem);
    }
    public void Menu(){
        VentaCelu v,a,b,c,d,e,f;
        int ind,opcion;
        Lectura leer=new Lectura();
        do{
            try{
                do{
                    System.out.println("---------MENU----------");
                    System.out.println("Ingrese Opcion: ");
                    System.out.println("1.cargar datos \n2.ver datos \n3.operacion \n0.salir \n ");
                    opcion=leer.GetEntero();
                    do{

                        switch(opcion){
                            
                            case 1:
                                a = new VentaCelu("z-s25", "nokia","peru", 0.13,250);
                                b = new VentaCelu("lumia-920","nokia","chile", 0.08,580);
                                c = new VentaCelu("experia-z3", "sony","japon", 0.012,780);
                                d = new VentaCelu("sd-234","alcatel","ee-uu", 0.006,670);
                                e = new VentaCelu("rt-220", "etoway","brasil", 0.11,470);
                                f = new VentaCelu("ss-s6", "samsung","rusia", 0.013,2450);
                                this.InserccionSecuencial(a);
                                this.InserccionSecuencial(b);
                                this.InserccionSecuencial(c);
                                this.InserccionSecuencial(d);
                                this.InserccionSecuencial(e);
                                this.InserccionSecuencial(f);
                                System.out.println("cargado por constructor!");
                                break;
                            case 2:
                                this.getMostrarC();
                                break;
                            case 3:
                                v=new VentaCelu();
                                System.out.println("ingrese la marca a comprar: ");
                                v.setMarca(leer.GetString());
                                this.operC(v);
                                break;
                           
                            case 0:
                                exit(0);
                                break;
                            default:
                                System.out.println("no existe esa opcion");
                        }
                    }while(opcion <=0 && opcion <= 6);
                    
                }while(opcion!=0);
            }catch(Exception ee){
                System.out.println("ERROR!!! solo ingresa numero y/o string y/o caracter");
            }
            
        }while(true);
    }   
      
      
    public void getMostrarC() {
        for (int i = 0; i < this.IndVector; i++) {
            System.out.println("marca: "+this.celular[i].getMarca()+"\nmodelo: "
+this.celular[i].getModelo()
                    +"\npais: "+this.celular[i].getPais()+"\nprecio de fabrica: "
+this.celular[i].getPrecioF()+"\nIGV: "+
                    this.celular[i].getIgv());
                    System.out.println("");
        }
    }
    
    public int cantidadMax(){
        return this.MaxElem;
    }

    public void operC(VentaCelu vCel){
        Scanner sc=new Scanner(System.in);            
         double dir=0;
         double aC=0,pv=0,c,cc;
         String seEncontro="no";
         System.out.println("-----Su Recibo----");
        for (int i = 0; i < IndVector; i++) {
            if (this.celular[i].getMarca().equals(vCel.getMarca())){
                dir=this.celular[i].getPrecioF();
                aC=this.celular[i].getIgv();
                
                pv=dir+(dir*aC);
                seEncontro="si";
            }      
        }
        
        System.out.println("PrecioFabrica: "+dir+"\nIGV: "+aC+"\nPrecioVenta: "+pv);
        
  
        }
}

        
       
    
    





miércoles, 18 de noviembre de 2015

BUCLES REPETITIVOS

 nos permite ejecutar un numero de veces determinado una serie de instrucciones. se utiliza para evitar la repeticion de codigo.

WHILE
Este bucle lo que hace es primero verifica la condicion y si cumple recien ejecuta y si no sale del bucle.

ejemplo : imprimir los 10 primeros numeros naturales.


public class Ejemwhile {
public static void main (String []args)
{int i=1;
    while(i <=10)
  {
      System.out.println(i);
      i++;
  }

}
    
}
DO WHILE
Este lo que hace es primero se ejecuta luego recien pasa a la  condicion. En este bucle asi no cumple la condicion siempre va a entrar al menos una vezuna vez.


public class Ejemdowhile {
    public static void main (String []args)
{int i=1;
  do{
      System.out.println(i);
      i++;
  }while (i<=10);
}
}
FOR
Este es igual al while solo que este tiene una un indice que inicializa en el valor que le damos y tambien puede aumentar o disminuir.

public class Ejemfor {
   public static void main (String []args)
{int i=1;
    for(i=1;i<=10;i++)
    {System.out.println(i);}
} 
}

SENTENCIAS BREAK Y CONTINUE

Las sentencias break y continue sirven para optimizar los ciclos for y while, así como para el operador condicional if.
 BREAK
 (JORGE SANCHEZ,2004)La sentencia de 'break' es de tipo de control de bucles. Dentro de la iteración en un bucle, de cualquiera de los tipos (while, do-while, for), el uso de esta sentencia rompe la iteración de dicho bucle. Para interrumpir el flujo de ejecución del ciclo, en otras palabras corta la ejecución normal del ciclo.
package pkgbreak;

public class BREAK {

    public static void main(String[] args) {
int numero =4523;
int digitos=0;
        while (numero>0) {            
            numero/=10;
            digitos ++;
            if (digitos==5)break;
        }
if(digitos==5)System.out.println("El numero tienen 5 o mas numeros");
        }
    
}

CONTINUE
(JORGE SANCHEZ,2004) La sentencia continue, por su parte indica que se continue el bloque pero interrumpiendo la iteración en es punto y volviendo a comenzar desde el inicio del bloque.
package pkgbreak;

public class BREAK {

    public static void main(String[] args) {
        int i=0;
        int n=0;
        while (i<5 data-blogger-escaped-continue="" data-blogger-escaped-i="" data-blogger-escaped-if="" data-blogger-escaped-n="" data-blogger-escaped-pre="">