Ejercicios java

Vamos a hacer un programa que nos pida un nombre y si la longitud del nombre es mayor de 10 nos diga ‘¡Que nombre más largo!’.

Cread un progrma que nos pida dos números y nos diga cual es el mayor.

Otro que nos pida dos números y nos diga si los dos son pares o los dos son impares.

Cread una función que nos calcule el área de un círculo y otra que nos calcule la circunferencia.
Con esta función cread un programa que nos vaya pidiendo radios y nos muestre el valor del área y de la circunferencia de un círculo con el radio que nos han dado. Cuando el usuario introduzca un 0 salimos del programa.

Cread una función a la que le pasemos una cadena y un número y nos devuelva esa cadena repetida n veces.
Con esa función cread otra a la que le pasemos una letra y haga lo siguiente:
si la longitud de la cadena que le pasamos es diferente de ‘1’ mostrar la cadena.
Si la longitud es 1 mostrar el arbolito siguiente hasta 5:
A
AA
AAA
AAAA
AAAAA

Cread una sobrecarga de la función para que podamos pasar un número que será el tamaño del arbolito.

package com.trifulcas.saludo;

import java.util.Scanner;

public class Ejercicios1 {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		// Nombre más largo de 10
		System.out.println("Introduce tu nombre");
		String nombre=in.nextLine();
		
		if (nombre.length()>10) {
			System.out.println("Que nombre más largo");
		}
		
		// Número mayor
		System.out.println("Introduce el número 1");
		int a=in.nextInt();
		System.out.println("Introduce el número 2");
		int b=in.nextInt();
		System.out.println("El número mayor es "+Math.max(a, b));

		// Paridad de dos números
		System.out.println("Introduce el número 1");
		 a = in.nextInt();
		System.out.println("Introduce el número 2");
		 b = in.nextInt();

		if (esPar(a) == esPar(b)) {
			System.out.println("Los dos tienen la misma paridad");
		} else {
			System.out.println("Los dos tienen distinta paridad");
		}

		//Usando operador ternario
		System.out.println("Los dos tienen " + (esPar(a) == esPar(b) ? "la misma" : "distinta") + " paridad");

		in.close();
	}
	// Función que nos devuelve si un número es par
	public static boolean esPar(int num) {
		return num % 2 == 0;
	}

}

package com.trifulcas.saludo;

import java.util.Scanner;

public class Ejercicios2 {

	public static void main(String[] args) {
		double radio;
		Scanner in = new Scanner(System.in);
		do {
			System.out.println("Introduce el radio");
			radio = in.nextDouble();
			if (radio != 0) {
				System.out.println("El círculo de radio " + radio + " tiene una circunferencia de "
						+ circunferencia(radio) + " y un área de " + area(radio));
			}
		} while (radio != 0);
		in.close();
	}

	public static double area(double radio) {
		return Math.PI * radio * radio;
	}

	public static double circunferencia(double radio) {
		return Math.PI * radio * 2;
	}
}

package com.trifulcas.saludo;

import java.util.Scanner;

public class Ejercicio2b {

	public static void main(String[] args) {
		double radio;
		Scanner in = new Scanner(System.in);
		while (true) {
			System.out.println("Introduce el radio");
			radio = in.nextDouble();
			if (radio == 0) {
				break;
			}
			System.out.println("El círculo de radio " + radio + " tiene una circunferencia de " + circunferencia(radio)
					+ " y un área de " + area(radio));
		}
		in.close();
	}

	public static double area(double radio) {
		return Math.PI * radio * radio;
	}

	public static double circunferencia(double radio) {
		return Math.PI * radio * 2;
	}
}

package com.trifulcas.saludo;

public class Ejercicio3 {

	public static void main(String[] args) {
		System.out.println(arbol("hola"));
		System.out.println(arbol("J"));
		System.out.println(arbol("@"));
		System.out.println(arbol("@", 3));
		System.out.println(arbol("@", 8));
	}

	public static double iva(double precio) {
		return iva(precio,.21);
	}
	public static double iva(double precio,double iva) {
		return precio*(1+iva);
	}
	
	public static String arbol(String cadena) {
		return arbol(cadena, 5);
	}

	public static String arbol(String cadena, int veces) {
		if (cadena.length() != 1) {
			return cadena;
		}
		String res = "";
		for (int i = 0; i < veces; i++) {
			res += repetir(cadena, i + 1) + "\n";
		}
		return res;
	}

	public static String repetir(String cadena, int veces) {
		String res = "";
		for (int i = 0; i < veces; i++) {
			res += cadena;
		}
		return res;
	}
}

Sobrecarga


public static void main(String[] args) {
		saludo("Ana", 2);
		saludo("Juan", 3);
		saludo("Eva");
		saludo(3);
		int a = doble(7);
		System.out.println(a);
		int b = doble(doble(doble(3)));
		System.out.println(b);
		System.out.println(mayor(1,3));
		System.out.println(mayor(10,3));
	}

	// Esto es un método porque no devuelve nada
	static void saludo(String nombre, int n) {
		for (int i = 0; i < n; i++) {
			System.out.println("Hola " + nombre + " que tal");
		}
	}
	// SObre carga (overloading) de funciones. Distintos parámetros
	// Mismo nombre de función
	// Java llamará a la función que 'encaje' con los parámetros
	// Si no encaja ninguna, nos da un error
	// Podemos llamar a funciones entre sobrecargas o no
	static void saludo(String nombre) {
		saludo(nombre,1);
	}
	static void saludo(int n) {
		for (int i = 0; i < n; i++) {
			System.out.println("Hola que tal estás");
		}
	}
	// Esto sí es una función, porque devolvemos un valor
	static int doble(int numero) {
		return numero * 2;
	}

	static int mayor(int a, int b) {
		if (a > b) {
			b = a;
		}
		return b;
	}

Ejemplos funciones Java

public static void main(String[] args) {
		saludo("Ana", 2);
		saludo("Juan", 3);
		saludo("Eva", 1);
		int a = doble(7);
		System.out.println(a);
		int b = doble(doble(doble(3)));
		System.out.println(b);
		System.out.println(mayor(1,3));
		System.out.println(mayor(10,3));
	}

	// Esto es un método porque no devuelve nada
	static void saludo(String nombre, int n) {
		for (int i = 0; i < n; i++) {
			System.out.println("Hola " + nombre + " que tal");
		}
	}

	// Esto sí es una función, porque devolvemos un valor
	static int doble(int numero) {
		return numero * 2;
	}

	static int mayor(int a, int b) {
		if (a > b) {
			b = a;
		}
		return b;
	}

Ejemplos for y while

Cödigo para los ejemplos típicos de la tabla de multiplicar y la progresión geométrica:

	Scanner in = new Scanner(System.in);
		System.out.println("Introduce un número: ");
		int a = in.nextInt();
		for(int i=1;i<=10;i++) {
			System.out.println(i+" x "+a+" = "+(i*a));
		}
		
		System.out.println("Sucesión geométrica. \n Inicial: ");
		int inicial = in.nextInt();
		System.out.println("Razón geométrica: ");
		int razon = in.nextInt();
		System.out.println("Valor límite: ");
		int limite = in.nextInt();
		
		while(inicial<limite) {
			System.out.println(inicial);
			inicial*=razon;
		}

Bucles en Java

	// Bucles: while \ for
		// while en dos sabores: while() o do{}while()

		int a = 10;
		while (a < 10) {
			a++;
			System.out.println(a);
		}
		a = 10;
		do {
			System.out.println(a);
			a++;
		} while (a <= 10);

		// Pedir un número al usuario hasta que ponga un 0

		Scanner in = new Scanner(System.in);
		do {
			System.out.println("Introduce un número (0 para salir)");
			a = in.nextInt();
			System.out.println(a * 2);
		} while (a != 0);
		a = 1;
		while (a != 0) {
			System.out.println("Introduce un número (0 para salir)");
			a = in.nextInt();
			System.out.println(a * 2);
		}
		// For canónico. Os recomiendo tatuarselo en el antebrazo.
		for (int i = 0; i < 10; i++) {
			System.out.println(i);
		}

		for (int i = 0; i%7!=0; i++) {
			System.out.println(i);
		}
		
		for (int i = 0; i < 10; i += 2) {
			System.out.println(i);
		}
		int var = 0;
		for (; var < 10; var += 2) {
			System.out.println(var);
		}
		var = 0;
		for (; var < 10; ) {
			System.out.println(var);
			var += 2;
		}
		var = 0;
		for (; ; ) {
			System.out.println(var);
			var += 2;
			if (var>10) {
				break;
			}
		}

// Nada
		for (int i = 0; i%7!=0; i++) {
			System.out.println(i);
		}
		// Del 1 al 6
		// Nada
		// Solo 1
		for (int i = 1; i%7!=0; i++) {
			System.out.println(i);
		}

		// 0 1 2 3 5 6
		for (int i = 0; i < 10; i++) {
			if (i == 4) {
				// Nos salta el código siguiente hasta el final
				// Pero sigue con el bucle
				continue;
			}
			if (i == 7) {
				// Nos sale del bucle
				break;
			}
			System.out.println(i);
		}

Mini ejercicio

Crear un código que nos pida el nombre y la edad. Si es mayor o igual de 18 poner “Bienvenido “+nombre+” Puedes entrar”. En caso contrario poner: “Lo sentimos, “+nombre+” no puedes entrar.

public static void main(String[] args) {

		Scanner in = new Scanner(System.in);
		System.out.println("Introduce tu nombre:");
		String n = in.next();
		System.out.println("Introduce tu edad:");
		int a = in.nextInt();
		if (a>=18) {
			System.out.println("Bienvenido/a "+n+". Puedes entrar");
		} else {
			System.out.println("Lo sentimos, "+n+" no puedes entrar");

		}
		in.close();
	}

Pedir valores por la consola

package com.trifulcas.saludo;

import java.util.Scanner;

public class saludo {

	public static void main(String[] args) {

				Scanner in = new Scanner(System.in);
		System.out.println("Introduce tu nombre:");
		String n = in.next();
		System.out.println("Tu nombre " + n);
		int a = in.nextInt();
		System.out.println("Introduce un número:");
		in.close();
	}

}

Ejercicios consultas sql

Buscar todos los clientes (customer) de paises que empiecen por ‘A’
Buscar todos los actores que hayan trabajado en películas de una longitud mayor de 140
Categorías con películas de rating ‘R’ (solo el nombre)

Ventas totales por empleado
Películas en las que han trabajado más de 10 actores
El título de la película que más se ha alquilado (en número de alquileres)
El título de la película que más dinero ha dado (en suma de importe)
Los 5 actores que han trabajado en menos películas

La referencia para los clientes es las dos primeras letras de su nombre y las dos primeras letras de su apellido. Hacer una consulta que nos muestre el id del cliente y esa referencia.
Quiero ver todos los pagos que se han hecho un viernes.
Las películas cuyo título tiene una longitud entre 10 y 15 caracteres.

Clientes que han hecho alquileres por encima de la media.
Clientes que no han alquilado documentales (‘documentary’)

select first_name, last_name from customer
where customer_id not in(
select customer_id from customer join rental using (customer_id)
join inventory using (inventory_id)
join film using (film_id) 
join film_category using(film_id)
join category using(category_id)
where name = 'Documentary'
)