viernes, 1 de febrero de 2013

Apuntes FOL Actualizados hasta el último examen

Para los que quedan por hacer el examen, o no pudieron cojerlos en clase ya que estábamos sin internet en la carballeira:
Apuntes FOL Hasta EXAMEN1

Un saludo, próximamente Trabajos de SINF, Tareas de LIMA, y ejercicios PRO, y... ¡¡Cuanto trabajo pendiente!! T.T

miércoles, 23 de enero de 2013

ACTUALIZADOS APUNTES FOL 23-01-13

He puesto al día los apuntes de FOL.
Recordad que mañana hay que entregar los ejercicios esos de marras o nos catea... xD

Apuntes Fol 23-01-2013

Un beso a tod@s, maj@s. xDD

martes, 22 de enero de 2013

Tutorial Base de Datos SQL

Es muy muy bueno -> http://www.sqlserverya.com.ar/

Tiene ejercicios resueltos y todo.

Ejercicio67 condicion

/*
 * 67.    La Lotería Primitiva es un juego de azar regulado por Loterías y Apuestas del Estado
 *  (LAE) que consiste en elegir 6 números diferentes entre 1 y 49, con el objetivo de acertar
 *   la Combinación Ganadora en el sorteo correspondiente, formada por 6 bolas de las 49 que se
 *   extraen del bombo (modalidad comúnmente conocida como 6/49). También se extrae una bola extra
 *    como número complementario, y otra bola de un bombo aparte, entre el 0 y el 9, que hace
 *    de número de «reintegro».


El programa tiene que escribir:

Combinación de la primitiva: 3 , 28 , 47,  33 , 19 , 21

Número complementario: 46

Reintegro: 7

 */

import java.util.Random;

public class Ejercicio67 {
    public static void main(String[] args) {
        // Variables
        int num1, num2, num3, num4, num5, num6, comp, rein;
        // Inicializamos Random
        Random aleatorio = new Random();
        // Empezamos el programa

        do {
            num1 = (aleatorio.nextInt(49) + 1);
            num2 = (aleatorio.nextInt(49) + 1);
            num3 = (aleatorio.nextInt(49) + 1);
            num4 = (aleatorio.nextInt(49) + 1);
            num5 = (aleatorio.nextInt(49) + 1);
            num6 = (aleatorio.nextInt(49) + 1);
            comp = (aleatorio.nextInt(49) + 1);
        } while (num1 == num2 ||num1 == num3 ||num1 == num4 ||num1 == num5 ||num5 == num6 ||num1 == comp
                ||num2 == num3 ||num2 == num4 ||num2 == num5 ||num2 == num6 ||num2 == comp
                ||num3 == num4 ||num3 == num5 ||num3 == num6 ||num3 == comp
                ||num4 == num5 ||num4 == num6 ||num4 == comp
                ||num5 == num6 ||num5 == comp
                ||num6 == comp);

        rein = aleatorio.nextInt(10);

        System.out.println("La combinacion de la primitiva: " + num1 + ", "
                + num2 + ", " + num3 + ", " + num4 + ", " + num5 + ", " + num6);
        System.out.println("Reintegro: " + rein);
        System.out.println("Complementario: " + comp);
        // Comprobamos que finaliza por completo
        System.out.println();
        System.out.print("END_OF_LINE");
    }
}

lunes, 21 de enero de 2013

Ejercicio 66 de PRO

/*
 * 66.    Hacer un programa que genere un numero al azar
 * comprendido entre 0 y un número N leído por teclado y que luego
 *  permita que un jugador introduzca números hasta que acierte el
 *  numero secreto, después de cada numero que introduzca el jugador
 *   el programa le informará diciéndole si el número secreto es más
 *   grande o más pequeño que el generado por la máquina. Cuando el
 *    jugador acierte, el programa escribirá un mensaje de felicitación
 *     y escribirá el número de intentos que realizó.
 */

import java.util.Scanner;
import java.util.Random;

public class Ejercicio66 {
    public static void main(String[] args) {
        // Variables
        int numMax;
        int generado;
        int intento;
        int numIntentos = 0;
        // Inicializamos Scanner
        @SuppressWarnings("resource")
        Scanner reader = new Scanner(System.in);
        // Inicializamos Random
        Random aleatorio = new Random();
        // Empezamos el programa
        System.out.println("Introduce el valor máximo para generar un aleatorio: ");
        numMax = reader.nextInt();
        generado = aleatorio.nextInt(numMax + 1);
        // System.out.println("Ha generado: " + generado +
        // " (Solo comprobación, no haga trampa.)");
        System.out.println("Intente averiguar el numero generado: ");
        intento = reader.nextInt();
        numIntentos++;
        do {
            System.out.println("Ha fallado, intentelo de nuevo:");
            if(intento < generado){
                System.out.println("El numero generado es mayor al introducido.");
                intento = reader.nextInt();
                numIntentos++;
            }
            else{
                System.out.println("El numero generado es menor al introducido.");
                intento = reader.nextInt();
                numIntentos++;
            }
        } while (intento != generado);
        System.out.println("Enhorabuena, ha acertado el numero generado: " + generado);
        System.out.println("ha realizado " + numIntentos + " intentos. ^.^");
        // Comprobamos que finaliza por completo
        System.out.print("END_OF_LINE");
    }
}

miércoles, 16 de enero de 2013

Ejercicio63 Sin cadenas

/*
 * 63.    Hacer un programa que pida por teclado un número binario forzando al usuario
 *  a que realmente introduzca un número formado por ceros y unos. A continuación
 *  escriba en pantalla el valor decimal del número introducido. Para resolver
 *  este programa es necesario utilizar los métodos siguientes:
 *
 *   lógico función esBinario(entero x). Devuelve verdadero o falso si el número  x es binario o no.
 *   entero función cifras(entero x). Devuelve el número de dígitos del número x.
 *     entero función extraeDigito(entero x,entero c).
 *     Devuelve el dígito en la posición c del número x,
 *     empezando a contar por la izquierda. Por ejemplo, extraeDigito(23456,2) devuelve 3.
 */

import java.util.Scanner;

public class Ejercicio63SinCadenas {
    public static void main(String[] args) {
        //Variables
        int num;   
        //Inicializamos Scanner
        @SuppressWarnings("resource")
        Scanner reader = new Scanner(System.in);
        //Empezamos el programa
        //Obligamos a introducir un numero que sea binario.
        do{
            System.out.println("Introduzca un numero binario: ");
            num = reader.nextInt();
        }
        while(esBinario(num)==false);
        //Mostramos el numero de cifras del numero introducido (Por usar el método, sino, no se usa)
        System.out.println("Has introducido un numero de "+ cifras(num) + " cifras");
        //Mostramos por pantalla el resultado
        System.out.println("El tercer numero empezando por la izquierda es: " + extraerDigito(num,3));
        System.out.println("El numero " + num + " en decimal es: " + pasaBinADec(num));
        //Comprobamos que finaliza por completo
        System.out.print("END_OF_LINE");
    }   
   
    //Hay que comprobar que el numero introducido sea binario, "1" y "0".
    static boolean esBinario(int num){
        for (int i = 1; i <= cifras(num); i++){
            if (extraerDigito(num,i) != 0 && extraerDigito(num,i) != 1){
                return false;
            }
        }
        return true;
    }
   
    //Así es mas facil saber el número de cifras que tiene el número introducido.
    static int cifras(int num) {
        int cifras = 0;
        do{
            num = num / 10;
            cifras++;
        }while(num != 0);
        return cifras;
    }
   
    static int extraerDigito(int num, int pos) {
        int divisor = 10;
        for (int i = 1; i <= cifras(num) - pos; i++) {
            divisor = divisor * 10;
        }
        num = num % divisor;
        divisor = divisor / 10;
        return (num / divisor);
    }

    static int pasaBinADec(int num){
            int resto, decimal=0, i=0;
            while (num != 0){
               resto = num % 10;
               decimal = decimal + (resto * (int) Math.pow(2, i)); //(Fórmula -> cambio de base)
               i++;
               num = num / 10;
            }
            return decimal;
        }

}

martes, 15 de enero de 2013

Ejercicio 63 con Cadenas

/*
 * 63.    Hacer un programa que pida por teclado un número binario forzando al usuario
 *  a que realmente introduzca un número formado por ceros y unos. A continuación
 *  escriba en pantalla el valor decimal del número introducido. Para resolver
 *  este programa es necesario utilizar los métodos siguientes:
 *
 *   lógico función esBinario(entero x). Devuelve verdadero o falso si el número  x es binario o no.
 *   entero función cifras(entero x). Devuelve el número de dígitos del número x.
 *     entero función extraeDigito(entero x,entero c).
 *     Devuelve el dígito en la posición c del número x,
 *     empezando a contar por la izquierda. Por ejemplo, extraeDigito(23456,2) devuelve 3.
 */


import java.util.Scanner;

public class Ejercicio63 {
    public static void main(String[] args) {
        //Variables
        int num;
      
        //Inicializamos Scanner
        @SuppressWarnings("resource")
        Scanner reader = new Scanner(System.in);
        //Empezamos el programa
        //Obligamos a introducir un numero que sea binario.
        do{
            System.out.println("Introduzca un numero binario: ");
            num = reader.nextInt();
        }
        while(esBinario(num)==false);
        //Mostramos el numero de cifras del numero introducido (Por usar el método, sino, no se usa)
        System.out.println("Has introducido un numero de "+ cifras(num) + " cifras");
        //Mostramos por pantalla el resultado
        // Esto no se usa---->>>    System.out.println("El tercer numero empezando por la izquierda es: " + extraerDigito(num,3));
        System.out.println("El numero " + num + " en decimal es: " + pasaBinADec(num));
        //Comprobamos que finaliza por completo
        System.out.print("END_OF_LINE");
    }
  
    //Hay que comprobar que el numero introducido sea binario, "1" y "0".
    static boolean esBinario(int num){
        String str = String.valueOf(num);
        for(int i=0; i<str.length(); i++){
            if (str.charAt(i) != '0' && str.charAt(i) != '1'){
                return false;
            }
        }
        return true;
    }
    //Así es mas facil saber el número de cifras que tiene el número introducido.
    static int cifras(int num){
        int cifras;
        String str = String.valueOf(num);
        cifras = str.length();
        return cifras;
    }
    //La funcion extraerDigito es super sencilla
    static int extraerDigito(int num, int pos){  
        String str = String.valueOf(num);
        /* Si la cadena es "Hola Mundo" y queremos sacar la M,
         * tenemos que colocar el puntero justo antes, para sacar la M.
         * Es decir, posicion inicial 5, final 6. Y de 5->6 Hay una 'M' en medio,
         * que es lo que nos devuelve .substring(5,6).
         */
        int digito = Integer.parseInt(str.substring((pos-1),pos));
        return digito;
    }
    static int pasaBinADec(int num){
            int resto, decimal=0, i=0;
            while (num != 0){
               resto = num % 10;
               decimal = decimal + (resto * (int) Math.pow(2, i)); //(Fórmula -> cambio de base)
               i++;
               num = num / 10;
            }
            return decimal;
        }

}