miércoles, 11 de octubre de 2017

Tema 1: Sentencias

If -  Else:

La instrucción if … else permite controlar qué procesos tienen lugar, típicamente en función del valor de una o varias variables, de un valor de cálculo o booleano, o de las decisiones del usuario. La sintaxis a emplear es:



/* Ejemplo Estructura IF - aprenderaprogramar.com */
if (condición) {
        instrucciones
} else {
        instrucciones
}


Esquemáticamente en forma de diagrama de flujo:

La cláusula else (no obligatoria) sirve para indicar instrucciones a realizar en caso de no cumplirse la condición. Java admite escribir un else y dejarlo vacío: else { }. El else vacío se interpreta como que contemplamos el caso pero no hacemos nada en respuesta a él. Un else vacío no tiene ningún efecto y en principio carece de utilidad, no obstante a veces es usado para remarcar que no se ejecuta ninguna acción cuando se alcanza esa situación.
Cuando se quieren evaluar distintas condiciones una detrás de otra, se usa la expresión else if { }. En este caso no se admite elseif todo junto como en otros lenguajes. De este modo, la evaluación que se produce es: si se cumple la primera condición, se ejecutan ciertas instrucciones; si no se cumple, comprobamos la segunda, tercera, cuarta… n condición. Si no se cumple ninguna de las condiciones, se ejecuta el else final en caso de existir.


Switch: 

CONDICIONAL DE SELECCIÓN SWITCH EN JAVA. EJEMPLO DE APLICACIÓN.
La instrucción switch es una forma de expresión de un anidamiento múltiple de instrucciones if ... else. Su uso no puede considerarse, por tanto, estrictamente necesario, puesto que siempre podrá ser sustituida por el uso de if. No obstante, a veces nos resultará útil al introducir mayor claridad en el código.

La sintaxis será:              
/* Ejemplo Switch - aprenderaprogramar.com */
switch (expresión) {

        case valor1:
        instrucciones;
        break;

        case valor2:
        instrucciones;
        break;
        .
        .
        .
        default:
        sentencias;
        break;

 }
          
/* Ejemplo Switch - aprenderaprogramar.com */
switch (expresión) {

        case valor1:
        case valor2:
        case valor3:
        instrucciones;
        break;

        case valor4:
        instrucciones;
        break;
        .
        .
        .
        default:
        sentencias;
        break;

 }


Esquemáticamente en forma de diagrama de flujo:

BUCLE CON INSTRUCCIÓN WHILE EN JAVA. EJEMPLO USO DE BREAK.
El bucle while presenta ciertas similitudes y ciertas diferencias con el bucle for. La repetición en este caso se produce no un número predeterminado de veces, sino mientras se cumpla una condición. Conceptualmente el esquema más habitual es el siguiente:


bucle while

 While - Do While : 
La sintaxis en general es: while (condición) { instrucciones a ejecutarse } donde condición es una expresión que da un resultado true o false en base al cual el bucle se ejecuta o no. Escribe y prueba el siguiente código, donde además vemos un ejemplo de uso de la instrucción break;.
//Clase test del while curso aprenderaprogramar.com
public class testWhile {
    public static void main (String [ ] args) {
        int i = 0;
        while (true) {          //Condición trivial: siempre cierta
            i++;
            System.out.println ("Valor de i: " + i);
            if (i==9) { break;}
        }                
 } //Cierre del main
//Cierre de la clase


En este código hemos hecho algo un poco extraño. Como condición a evaluar hemos puesto “true”. Esto significa que la condición es siempre verdadera, lo que en teoría daría lugar a un bucle infinito y a un bloqueo del ordenador. Sin embargo, utilizamos un contador auxiliar que inicializamos en cero y en cada repetición del bucle aumentamos en una unidad. A su vez, introducimos una condición dentro del bucle según la cual cuando el contador alcanza el valor 9 se ejecuta la instrucción break.
bucle while java


Este ejemplo debe valernos solo como tal: en general la condición de entrada al bucle será una expresión a evaluar como (i < 10 ó a >= 20 ó reductor < compresor) y no un valor true. Y en general la salida a un bucle se realizará de forma natural mediante la evaluación de la condición y no mediante una instrucción break;.


BUCLE CON INSTRUCCIÓN DO … WHILE. EJEMPLO DE USO.
El bucle do … while es muy similar al bucle while. La diferencia radica en cuándo se evalúa la condición de salida del ciclo. En el bucle while esta evaluación se realiza antes de entrar al ciclo, lo que significa que el bucle puede no llegar ejecutarse. En cambio, en un bucle do … while, la evaluación se hace después de la primera ejecución del ciclo, lo que significa que el bucle obligatoriamente se ejecuta al menos en una ocasión. A modo de ejercicio, escribe este código y comprueba los resultados que se obtienen con él:
public class TestDelDoWhile {  //Prueba del do ... while curso aprenderaprogramar.com
    public static void main (String [ ] Args) {
        int contador = 0 ;
        do {   System.out.println ("Contando... " + (contador+1) );
                   contador += 1;
        } while (contador<10);     }   
}





Programación en Java/Sentencia for

Trabajamos con casos de interacción en donde a priori no conocíamos la cantidad de ciclos que se ejecutaban hasta cumplir con una condición. Para esto utilizamos la sentencia while. Pero ahora estudiaremos con más detalle aquellos casos en donde se sabe de antemano cuantos ciclos se deben cumplir para terminar la ejecución.
Imprimiremos una tabla de multiplicar hasta el factor noveno. Si no utilizamos ninguna estructura de interacción, deberíamos imprimir nueve líneas de código secuencial.
System.out.println("3 x 1 = 3");
System.out.println("3 x 2 = 6");
System.out.println("3 x 3 = 9");
System.out.println("3 x 4 = 12");
System.out.println("3 x 5 = 15");
System.out.println("3 x 6 = 18");
System.out.println("3 x 7 = 21");
System.out.println("3 x 8 = 24");
System.out.println("3 x 9 = 27");
Pero ya conocemos las estructuras que nos ahorran el esfuerzo de escribir tanto código. Utilizaremos una sentencia que ya conocemos: el while
int factor = 1;
     while ( factor <= 9 ) {
        System.out.println("3 x " + factor + " = " + 3*factor );
        factor++;
     }
Utilizamos la variable factor para contar la cantidad de líneas que imprimimos. Primeramente la inicializamos en uno. Cuando se ejecuta la interacción se controla que no supere su valor de 9. Si el valor es menor o igual que nueve, imprime una línea de la tabla e incrementa a uno el valor de factor. Cualquier caso de interacción que se complete en una cantidad prefijada de ciclos, necesitamos una variable de control. Si utilizamos la sentencia while, esta variable se debe definir e inicializar antes del bucle y contar con una instrucción que modifique su valor dentro del bucle.
Veremos como este código cambia ligeramente si en lugar de while presentamos una nueva sentencia denominada for
for ( int factor = 1; factor <= 9; factor ++ ) {
      System.out.println("3 x " + factor + " = " + 3*factor );
}
la sentencia for me permite repetir un ciclo n veces, en donde se debe determinar el valor inicial y cuantas veces se repetira.
sintaxis
for({valor inicial};{condición de termino};{factor de incremento del valor inicial}){
  //acá va lo que se repetirá n veces de acuerdo a la condición de termino
}

Bucle infinito: no hay control, entonces no se detiene
 for ( ;;){}
Operador coma :
 for ( int k=1, j=10 ;k < j ;k++ ,j-- ){
                 System.out.println(k + " " + j);
             }

for mejorado[editar]

Supongamos que tenemos un arreglo de enteros que deseamos presentar en pantalla, usando la orden for tradicional (en cuyo caso solo se realizará la primera linea de códigos que tengamos debajo de la sentencia), el código, podría quedar así:
 int[] laiEnteros = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
 for (int i = 0; i < 10; i ++)
     System.out.println (laiEnteros[i]);
Java ofrece una funcionalidad extra para la orden for, mediante la que se puede simplificar notablemente el codigo anterior, quedando así:
 int[] laiEnteros = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
 for (int liElemento : laiEnteros)
     System.out.println (liElemento);
En este caso, liElemento toma el valor de cada uno de los elementos de laiEnteros, permitiendo una navegación más simple, puesto que se evitan posibles errores derivados del uso de los arreglos en forma directa. También se puede usar esta forma, para estructuras más complejas como objetos de la clase Collection
 public void Presenta (Collection <Integer> poConjunto){
    for (Iterator <Integer> loElemento : poConjunto)
        System.out.println (loElemento)
 }






lunes, 9 de octubre de 2017

Tema 2: Clase Math

La clase Math tiene miembros datos y funciones miembro estáticas, vamos a conocer algunas de estas funciones, cómo se llaman y qué tarea realizan.





Métodos:



Min: Devuelve el menor de dos entre dos valores.

Pow: Devuelve un número elevado a un exponente.

Random: Devuelve un número aleatorio entre 0 y 1. 
Se pueden cambiar el rango de generación.

Round: Devuelve el entero más cercano.

Sqlrt: Devuelve la raíz cuadrada de un número.

Arcos: Devuelve el arco coseno de un angulo en radianes.

Asin: Devuelve el arco seno de un ángulo en radianes



Ejemplo :
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Klep {
    public static void main(String[] args) {
         
        double operador1=25.5;
        double operador2=15.21;
         
        System.out.println(Math.ceil(operador1)); // Devuelve 26.0
        System.out.println(Math.floor(operador2)); //Devuelve 15.0
        System.out.println(Math.pow(operador1, operador2)); // Devuelve 2.474435537975361E21
        System.out.println(Math.max(operador1, operador2)); //Devuelve 25.5
        System.out.println(Math.sqrt(operador1)); ////Devuelve 5.049752469181039
    }
}