jueves, 17 de octubre de 2013

8. MAS EJEMPLOS BÁSICOS MEZCLADOS

1. Introduce dos números enteros por teclado y divídelos, el resultado debe tener decimales.
Nota: la dificultad es que cuando dividimos en java (/), nos devuelva el resultado entero. Existe otra operación que se llama resto (%) y lo que hace es devolvernos el resto de la división. Así que compaginando ambas y con un poco de imaginación o ayuda de google se puede hacer el ejercicio.

import java.util.Scanner; //vimos que era necesario importarse esta clase para poder introducir (escanear), números por pantalla.

class DivisionInt{    //nombre que le damos al programilla, puedes poner el que quieras.
    
    public static void main(String[]args){  //recuerda siempre se pone esto para empezar.
        int A=0;   //creo una variable entera y de momento le doy valor 0, luego cambiará este valor. Es por dar un valor inicial, podías haber puesto cualquier otro entero.
        int B=0; //creo varialble entera llamada B y la inicializo con valor 0.
        
        Scanner sc=new Scanner(System.in);
        System.out.println("Introduce el primer número: ");
        A=sc.nextInt();  //recuerda que es para que me pida el valor de A en pantalla y lo introduzca por teclado.

        System.out.println("Introduce el segundo número: ");
        B=sc.nextInt();  //igual para el valor B.
        
        if(B!=0 ) //Si B es diferente de cero haz lo de abajo (la división)
            System.out.println(A+ "/"+ B+ "="+(A/B)+","+((A%B)*10/B)); //lo que va entre comillas es para que lo pinte en pantalla de forma literal,los símbolos + son para que haga más cosas y el resto son operaciones. Si te das cuenta no hace más que dividir A/B, luego dibujar una coma y después de la coma coger el resto y multiplicarlo por 10 y dividirlo entre B, que aunque parezca muy raro es lo que hacemos en una división normal. Prueba por ejemplo con 17 entre 3 y verás que sale bien.


        else    //sino, es decir B=0, mal asunto, porque no se puede dividir.
            System.out.println("No se puede dividir entre cero");
            
           
  }
}


2. Vamos a poner un condicional. Dada un número (entero), dime si es positivo o negativo, si es para o impar, si es múltiplo de 5 y de 10 y si es mayor que 100.

class Condicional{      //nombre del programa, pon el que quieras.
    
    public static void main(String[]args){     //siempre hay que poner esta línea.
       
         int C=6;     //creación de la variable, se inicia con valor 6, luego puedo cambiarla.
             
        System.out.println("*************PROGRAMA BASICO 7 CONDICIONAL*************** ");     //para que quede bonito.
        System.out.println("VARIABLES: ");     //para que quede bonito.
        
        System.out.println("C= "+C+ "; ");     //imprime en pantalla el valor de C y luego un ;
        System.out.println((C>=0)? "ES POSITIVO " : "ES NEGATIVO");     //dice si C>0 imprime "es positivo" y sino imprime "es negativo".
        System.out.println((C%2==0)? "ES PAR " : "ES IMPAR");     //si el resto de dividir C entre dos es cero imprime es par, sino imprime es impar.
        System.out.println((C%5==0)? "ES MÚLTIPLO DE 5 " : "NO ES ES MÚLTIPLO DE 5");     //Si el resto de dividir entre cinco es cero imprime "es múltiple de cinco", sino imprime "no lo es".
        System.out.println((C%10==0)? "ES MÚLTIPLO DE 10 " : "NO ES ES MÚLTIPLO DE 10");     //igual con el 10.
        System.out.println((C-100>=0)? "ES MAYOR O IGUAL QUE 100" : "ES MAYOR O IGUAL QUE 100");     //igual para saber si es mayor que 100.
             
              
        System.out.println("*******************************************************");     //esto es para que quede bonito.
        System.out.println("FIN DE PROGRAMA");
        System.out.println("*******************************************************");

    }
}


3. Para que aprendamos definitivamente a introducir datos por teclado. 
Haz un programa que te pida por teclado la hora, los minutos y los segundos y luego te imprima en pantalla el resultado, todo seguido.
Nota: ten en cuenta que no puede haber más de 24 horas y 60 segundos o minutos.
 Es un poco largo y el resultado no es muy espectacular, pero ayudará a afianzar el tema de introducir datos por teclado. Lo comentaré poco, pues ya hemos hecho cosas parecidas.


import java.util.Scanner;         //es necesario importar esta clase ya hecha.


class Hora{     //nombre del programa, que es lo mismo que clase.
    
    public static void main(String[]args){
        int h=0;        //creo las variables y les doy valor inicial.
        int m=0;
        int s=0;
        
        Scanner sc=new Scanner(System.in);     //para introducir las horas por teclado.
        
        System.out.println("Introduce las horas: ");
        h=sc.nextInt(); 
        if(h>=0){
            if(h>24){     //hay tener en cuenta que no valen horas negativas ni mayores de 24.
                System.out.println("Error formato de horas (0-24)");
                System.out.println("Introduce las horas: ");
                h=sc.nextInt(); 
            
            }
        }
        else{
                System.out.println("Error no existen horas negativas");
                System.out.println("Introduce las horas: ");
                h=sc.nextInt(); 
            }
        
        
        System.out.println("Introduce los minutos: ");
        m=sc.nextInt(); 
        if(m>=0){
            if(m>60){     //hay tener en cuenta que no existen minutos negativos ni mayores de 60.
             System.out.println("Error formato de minutos (0-60)");
             System.out.println("Introduce los minutos: ");
             m=sc.nextInt(); 
            }
        }
        else{
             System.out.println("Error no existe minutos negativos");
             System.out.println("Introduce los minutos: ");
             m=sc.nextInt();
            }
       
        
        System.out.println("Introduce los segundos: ");
        s=sc.nextInt(); 
          if(s>=0){
            if(s>60){     //lo mismo con los segundos que con los minutos.
                System.out.println("Error formato de segundos (0-60)");
                System.out.println("Introduce los segundos: ");
                s=sc.nextInt(); 
            }
          }
          else{
                System.out.println("Error no existen segundos negativos");
                System.out.println("Introduce los segundos: ");
                s=sc.nextInt(); 
          }
       
             //con esta sentencia que sigue, se muestra el resultado en pantalla.
        System.out.println("Son las "+h+" horas,"+m+" minutos,"+s+" segundos.");
        
    }        

}