Aprende a programar con Java
Un enfoque practico partiendo de cero.
Constara de 14 temas. ire actualizando para que quede todo en la primera hoja.
Como a empezado una disputa de que si java es mejor o peor. aqui dejo unos graficos que porsi ablan solo.
Tema 1
[spoiler]
Para empezar a programar lo más importante es las herramientas de trabajo.
Un ordenador, que tengo suficiente capacidad y un buen rendimiento. El no tenerlo nos puede provocar que no nos funcione lo rápido que deseamos las aplicaciones que creemos.
Os recomiendo NetBeans IDE 8.0 ya que viene todo lo necesario; librerías, copiladores....
Para hacer gráficos y pantallas hay otras aplicaciones que dan más variedad pero son más difíciles de realizar y después acoplarlas a nuestros proyectos.
Aplicare poca teoría, ya que la mejor manera es con ejemplos, no usar copiar y pegar. Sino leer, pasarlo a un cuaderno, y después escribirlo en el programa. Así se os queda mejor los códigos, y la manera de como se expresan.
Aquí el código del tema 1.
Código:
import javax.swing.*;
//By DareK17
public class practica1 {
public static void main(String[] args) {
//ejercicio de concepto básicos
int elecion;
do {
elecion = Integer.parseInt(JOptionPane.showInputDialog("Bienvenido a mi primera aplicación.\n" +
"Tema 1\n\n" + "Por favor elija una opción:\n" + "Ejercicios de concepto básico.\n" + "1. Ejercicio 1.1\n" +
"2. Ejercicio 1.2\n" + "3. Ejercicio 1.3\n" + "4. Ejercicio 1.4\n" + "5. Ejercicio 1.5\n" +
"6. Ejercicio 1.6\n" + "7. Ejercicio 1.7\n" + "8. Ejercicio 1.8\n" + "9. Ejercicio 1.9\n" +
"10. Ejercicio 1.10\n" + "11. Ejercicio 1.11\n" + "12. Ejercicio 1.12\n" + "13. Ejercicio 1.13\n" +
"14. Ejercicio 1.14\n" + "\nEjercicios propuestos.\n" + "15. Ejercicio 1.1\n" + "16. Ejercicio 1.2\n" +
"17. Ejercicio 1.3\n" + "\n\n" + "18. Para Salir de la aplicación"));
switch (elecion){
//ejercicio 1.1
case 1:
JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.1");
JOptionPane.showMessageDialog(null, "Descripción: Diseñar un programa que lo único que haga sea pedir un numero al usuario, leerlo del teclado y terminar su ejecución.");
JOptionPane.showInputDialog("Escriba un numero cualquiera");
break;
//ejercicio 1.2
case 2:
JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.2");
JOptionPane.showMessageDialog(null, "Descripción: Modificar el ejercicio anterior para que pida el numero y lo muestre.");
int nume1 = Integer.parseInt(JOptionPane.showInputDialog("Escriba un numero cualquiera"));
JOptionPane.showMessageDialog(null, "El numero introducido es: " +nume1);
break;
//ejercicio 1.3
case 3:
JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.3");
JOptionPane.showMessageDialog(null, "Descripción: Pedir al usuario su edad y mostrar la que tendrá el próximo año.");
int edad = Integer.parseInt(JOptionPane.showInputDialog("Tu edad?"));
edad = edad + 1;
JOptionPane.showMessageDialog(null, "Tendrás el año que viene: " +edad +"años");
break;
//ejercicio 1.4
case 4:
JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.4");
JOptionPane.showMessageDialog(null, "Descripción: escribir una aplicación que pida el año actual y el de nacimiento del usuario.\nDebe calcular la edad del usuario, suponiendo que en el año en curso el usuario ya ha cumplido años.");
int fechanacimiento = Integer.parseInt(JOptionPane.showInputDialog("En qué año naciste?"));
int fechaactual = Integer.parseInt(JOptionPane.showInputDialog("en qué año estamos?"));
int edad2 = fechaactual - fechanacimiento;
JOptionPane.showMessageDialog(null, "Tienes: " +edad2 +"años");
break;
//ejercicio 1.5
case 5:
JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.5");
JOptionPane.showMessageDialog(null, "Descripción: Necesitamos una aplicación que calcule la media aritmética de dos notas enteras.\nHay que tener en cuenta que la media puede contener decimales.");
String nota1 = JOptionPane.showInputDialog("Primera nota");
String nota2 = JOptionPane.showInputDialog("Segunda nota");
double nota1b = Double.parseDouble (nota1);
double nota2b = Double.parseDouble (nota2);
double media =(nota1b + nota2b) / 2;
JOptionPane.showMessageDialog(null, "Tienes: " +media);
break;
//ejercicio 1.6
case 6:
JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.6");
JOptionPane.showMessageDialog(null, "Descripción: modificar el ejercicio anterior para que calcule la media de tres notas enteras.");
String nota3 = JOptionPane.showInputDialog("Primera nota");
String nota4 = JOptionPane.showInputDialog("Segunda nota");
String nota5 = JOptionPane.showInputDialog("Tercera nota");
double nota3b = Double.parseDouble (nota3);
double nota4b = Double.parseDouble (nota4);
double nota5b = Double.parseDouble (nota5);
double media2 = (nota3b + nota4b + nota5b) / 3;
JOptionPane.showMessageDialog(null, "Tienes: " +media2);
break;
//ejercicio 1.7
case 7:
JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.7");
JOptionPane.showMessageDialog(null, "Descripción: Seria interesante disponer de un programa que pida como entrada un numero decimal y lo muestre redondeando al entero mas proximo.");
String decimal = JOptionPane.showInputDialog("Escriba un numero decimal");
double decimaloperation = Double.parseDouble(decimal);
int entero = (int)(decimaloperation + 0.5);
JOptionPane.showMessageDialog(null, "El numero entero próximo es: " + entero);
break;
//ejercicio 1.8
case 8:
JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.8");
JOptionPane.showMessageDialog(null, "Descripción: Un vendedor necesita gestionar los beneficios anuales que obtienen de la venta de manzanas.\nPor este motivo, nos ha pedido que diseñemos una aplicación que solicite el precio de venta por kilo,\nasi como las ventas en kilos de cada trimestre.\nLa aplicación mostrara el importe total.");
String precio = JOptionPane.showInputDialog("Precio por kilo");
double preciokilo = Double.parseDouble(precio);
String kilos1 = JOptionPane.showInputDialog("Kilos del primer trimestre");
String kilos2 = JOptionPane.showInputDialog("Kilos del segundo trimestre");
String kilos3 = JOptionPane.showInputDialog("Kilos del tercer trimestre");
String kilos4 = JOptionPane.showInputDialog("Kilos del cuarto trimestre");
double kilos1b = Double.parseDouble (kilos1);
double kilos2b = Double.parseDouble (kilos2);
double kilos3b = Double.parseDouble (kilos3);
double kilos4b = Double.parseDouble (kilos4);
double totalanual = (kilos1b + kilos2b + kilos3b + kilos4b)* preciokilo ;
JOptionPane.showMessageDialog(null, "las ganancias han sido: " +totalanual);
break;
//ejercicio 1.9
case 9:
JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.9");
JOptionPane.showMessageDialog(null, "Descripción: Un economista nos encarga un programa para realizar cálculos con el IVA.\nLa aplicación debe solicitar la base imponible y el IVA a aplicar.\nDebemos mostrar en pantalla el importe correspondiente al IVA y el total.");
String baseimponible = JOptionPane.showInputDialog("Base imponible");
double baseimponibleb = Double.parseDouble(baseimponible);
String iva = JOptionPane.showInputDialog("IVA aplicable");
double ivab = Double.parseDouble(iva);
double importeiva = (baseimponibleb * ivab) / 100;
double importetotal = importeiva + baseimponibleb;
JOptionPane.showMessageDialog(null, "Base: " +baseimponibleb+ "\nIVA aplicado: " +ivab+ "\n\nimporté IVA: " +importeiva+ "\nTOTAL: "+importetotal);
break;
//ejercicio 1.10
case 10:
JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.10");
JOptionPane.showMessageDialog(null, "Descripción: Escribe un programa que tome como entrada un numero entero y nos indique que cantidad hay que sumarle para que el resultado sea múltiplo de 7.");
final int MULTIPLO = 7;
int n= Integer.parseInt(JOptionPane.showInputDialog("Introduce un numero"));
int modulo = n %MULTIPLO;
JOptionPane.showMessageDialog(null, "A: " + n + " hay que sumarle " + (MULTIPLO - modulo) %MULTIPLO + " para que sea múltiplo de " + MULTIPLO);
break;
//ejercicio 1.11
case 11:
JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.11");
JOptionPane.showMessageDialog(null, "Descripción: modificar el ejercicio anterior para que, indicando dos números n y m, nos diga qué cantidad hay que sumarle a n para que sea múltiplo de m");
final int MULTIPLO2 = Integer.parseInt(JOptionPane.showInputDialog("Introduce un numero que será el múltiplo"));
int n2= Integer.parseInt(JOptionPane.showInputDialog("Introduce un numero"));
int modulo2 = n2 %MULTIPLO2;
JOptionPane.showMessageDialog(null, "A: " + n2 + " hay que sumarle " + (MULTIPLO2 - modulo2) %MULTIPLO2 + " para que sea múltiplo de " + MULTIPLO2);
break;
//ejercicio 1.12
case 12:
JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.12");
JOptionPane.showMessageDialog(null, "Descripción: Diseñar una aplicación que calcule la longitud y el área de una circunferencia.\nPara ello, el usuario debe introducir el radio que puede contener decimales.");
String medida = JOptionPane.showInputDialog("Introduce Unidad de medida: MM-CM-DM-M-HM-DAM-KM");
String radio = JOptionPane.showInputDialog("Introduce el radio");
double radiob = Double.parseDouble(radio);
double longitud = 2 * Math.PI * radiob;
double area = Math.PI * radiob * radiob;
JOptionPane.showMessageDialog(null, "La longitud de la circunferencia es: " + longitud + " " + medida + "\nEl área del circulo es: " + area + " " + medida +"^2");
break;
//ejercicio 1.13
case 13:
JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.13");
JOptionPane.showMessageDialog(null, "Descripción: Crear un programa que, al pedir la base y la altura de un triangulo, muestre el área del mismo.");
String medida2 = JOptionPane.showInputDialog("Introduce Unidad de medida: MM-CM-DM-M-HM-DAM-KM");
String base = JOptionPane.showInputDialog("Introduce la base");
double baseb = Double.parseDouble(base);
String altura = JOptionPane.showInputDialog("Introduce el alto");
double alturab = Double.parseDouble(altura);
double area2 = baseb * alturab / 2;
JOptionPane.showMessageDialog(null, "El área del triangulo es: " + area2 + " " + medida2 +"^2");
break;
//ejercicio 1.14
case 14:
JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.14");
JOptionPane.showMessageDialog(null, "Descripción: Dado un polinomio de segundo grado\n\nCrear un programa que pida los coeficientes a, b y c, así como el valor de X, y calcule el valor correspondiente de y.");
JOptionPane.showMessageDialog(null, "Formula: Y=ax^2+bx+c");
String a = JOptionPane.showInputDialog("Introduce coeficiente a");
double ab = Double.parseDouble(a);
String b = JOptionPane.showInputDialog("Introduce coeficiente b");
double bb = Double.parseDouble(b);
String c = JOptionPane.showInputDialog("Introduce coeficiente c");
double cb = Double.parseDouble(c);
String x = JOptionPane.showInputDialog("y="+a+"x^2"+"+"+b+"x+"+c+"\n\nIntroduce valor de x");
double xb = Double.parseDouble(x);
double y=ab*xb*xb+bb*xb+cb ;
JOptionPane.showMessageDialog(null, "para x=" + x + " resulta y=" + y + "\n\n" + y + "=" + a + x + "^2+" + b + x + "+" + c);
break;
//ejercicio propuesto 1.1
case 15:
JOptionPane.showMessageDialog(null, "ejercicio propuestos 1.1");
JOptionPane.showMessageDialog(null, "Descripción: Diseñar una aplicación que solicite al usuario que introduzca una cantidad medida en segundos.\nLa aplicación debe mostrar cuantas horas, minutos y segundos hay en el numero de segundos introducidos por el usuario.");
int segundosintroducidos = Integer.parseInt(JOptionPane.showInputDialog("Introduce Segundos"));
int horas = segundosintroducidos / 60 / 60 ;
int minutos = segundosintroducidos / 60 - horas * 60 ;
int segundos = segundosintroducidos - (minutos * 60 + horas * 60 * 60) ;
JOptionPane.showMessageDialog(null, "El tiempo en segundos introducidos: " + segundosintroducidos +"\nNos dan que es: "+horas+":"+minutos+":"+segundos);
break;
//ejercicio propuesto 1.2
case 16:
JOptionPane.showMessageDialog(null, "ejercicio propuestos 1.2");
JOptionPane.showMessageDialog(null, "Descripción: Solicitar al usuario tres distancias:\n- La primera, medida en milímetros.\n- La segunda, medida en centímetros.\n- La última, medida en metros.\n\n Diseñar un programa que muestre la suma de las tres longitudes introducidas. Medida en centímetros.");
String milimetro = JOptionPane.showInputDialog("Medida en milímetros");
double mm = Double.parseDouble(milimetro);
String centimetro = JOptionPane.showInputDialog("Medida en centímetros");
double cm = Double.parseDouble(centimetro);
String metro = JOptionPane.showInputDialog("Medida en metros");
double m = Double.parseDouble(metro);
double medida1b = mm / 10 ;
double medida2b = cm ;
double medida3b = m * 100 ;
double total = medida1b + medida2b + medida3b ;
JOptionPane.showMessageDialog(null, "El total de la suma son: " + total + " CM");
break;
//ejercicio propuesto 1.3
case 17:
JOptionPane.showMessageDialog(null, "ejercicio propuestos 1.3");
JOptionPane.showMessageDialog(null, "Descripción: \nUn biólogo está realizando un estudio de distintas especies de invertebrados y necesita \nuna aplicación que le ayude a contabilizar el numero de patas que tienen en total todos \nlos animales capturados durante una jornada de trabajo. Para ello, nos ha solicitado \nque escribamos una aplicación a la que hay que proporcionar:\n \n- El numero de hormigas capturadas de 6 patas. \n- El número de arañas capturadas de 8 patas. \n- El numero de cochinillas capturadas de 14 patas.\n \nLa aplicación debe mostrar el número total de patas que poseen todos los animales.");
int hormigas = Integer.parseInt(JOptionPane.showInputDialog("Cuantas hormigas?"));
int arañas = Integer.parseInt(JOptionPane.showInputDialog("Cuantas arañas?"));
int cochinillas = Integer.parseInt(JOptionPane.showInputDialog("Cuantas cochinillas"));
int patashormigas = 6 * hormigas ;
int patasarañas = 8 * arañas ;
int patascochinillas = 14 * cochinillas ;
int totalpatas = patashormigas + patasarañas + patascochinillas ;
JOptionPane.showMessageDialog(null, "Resumen del dia: \n"+"Hormigas capturadas: "+hormigas+"\n"+"Arañas capturadas: "+arañas+"\n"+"Cochinillas capturadas: "+cochinillas+"\n\n"+"Patas de hormigas: "+patashormigas+"\n"+"Patas de arañas: "+patasarañas+"\n"+"Patas de cochinillas: "+patascochinillas+"\n\n"+"Total de patas: "+totalpatas+"\n");
break;
}}while (elecion != 18);}}
Ahora la explicación y complexión del código.
Citar
JOptionPane.showMessageDialog(null, "Texto que se muestra en mensaje");
JOptionPane.showMessageDialog – esta setencia dice a la computadora que abra un panel con la información que hay entre los () al poner null, "Texto que se muestra en mensaje" provocamos que el null el mensaje salga en el centro de la pantalla. Si ponemos unas coordenadas X, Y aparecerá en la posición que deseemos. Por ejemplo en la posición 200, 300 esto hará que salga con una separación del lateral izquierdo de 300 Pixeles y que baje unos 200.
El texto que aparece entre las “ ” será el mensaje que aparecerá en ese panel. Si ponemos un + esto permite encadenar diferentes frases que están entre “ ” o unir variables a un testo. Al escribir dentro de los “ ” una \n esto provoca un salto de línea. Y las variables simplemente se escriben el nombre de esa variable y se mostrara.
Ejemplo:
Citar
JOptionPane.showMessageDialog(null, "Resumen del dia: n"+"Hormigas capturadas: "+hormigas+"n"+"Arañas capturadas: "+arañas+"n"+"Cochinillas capturadas: "+cochinillas+"nn"+"Patas de hormigas: "+patashormigas+"n"+"Patas de arañas: "+patasarañas+"n"+"Patas de cochinillas: "+patascochinillas+"nn"+"Total de patas: "+totalpatas+"n");
El mensaje que muestra es:
Citar
JOptionPane.showInputDialog("Cuantas hormigas?")
Este es parecido al anterior pero con la diferencia que este tiene un campo en el que te permite escribir. Bien para meter valores o algún texto.Normalmente se escribe después de poner la variable que va a recoger esa información que se va a introducir seguida de un =.
Cuando uno quiere introducir una serie de valores o texto necesita declarar una variable. Para ello hay que elegirla bien. No se debe coger una que tenga mucha capacidad si el número por ejemplo es corto, ya que aria que consumiera mucha memoria RAM del ordenador innecesariamente.
Os pongo un cuadro que pone los valores de los diferentes tipos de variables que se pueden asignar.
El comando JOptionPane.showInputDialog trabaja con el rango String.
Porque que si se quiere guardar en otro rango de variable, a de usarse sentencias que adaptan la información introducida.
Ejemplo:
Citar
int hormigas = Integer.parseInt(JOptionPane.showInputDialog("Cuantas hormigas?"));
La variable hormigas es de rango int. Números enteros de 32 bit.Por lo que se usa la sentencia Integer.parseInt que adapta los datos de rango String a int.
Si fuera de rango doublé seria la tencencia Double.parseDouble este permite introducir decimales.
veamos un ejemplo:
Citar
String centimetro = JOptionPane.showInputDialog("Medida en centímetros");
double cm = Double.parseDouble(centimetro);
double cm = Double.parseDouble(centimetro);
Los tres más usados son String, int y double.
Una cosa muy importante para pode usar las sentencias:
JOptionPane.showInputDialog
JOptionPane.showMessageDialog
Es el poner al principio la sentencia de llamada de la librería swing.
Citar
import javax.swing.*;
Esta es la que contiene toda la programación hecha de los paneles que salen al escribir las sentencias anteriores.
Lo bueno de usar el NetBeans IDE 8.0 es que el principio del proyecto te lo escribe el:
Citar
public class nombre del proyecto { public static void main(String[] args) {
Os pondré varios cuadros con las operaciones que se pueden hacer con las variables.Todas estas sentencias las explicare en el próximo tema.
Citar
do { switch (x){ case 1: break;}}while (x != 18);
[/spoiler]