En el ejemplo sobre el mayor de dos números con Java veíamos como podemos realizar el cálculo de cual de dos números es mayor mediante una estructura de selección. En este caso vamos a ver como podemos simplificar el código apoyándonos en la clase Math, tal y como nos comentaba Samuel Zarza Fernandez. Así que vamos a ver cómo calcular el mayor de dos números con la clase Math.
El primer paso será el mismo ya que realizaremos la lectura de los números mediante la clase Scanner.
Scanner reader = new Scanner(System.in);
int iNumero1, iNumero2;
Realizaremos las lecturas de números enteros mediante el método .nextInt()
System.out.println("Dame el primer número");
iNumero1 = reader.nextInt();
System.out.println("Dame el segundo número");
iNumero2 = reader.nextInt();
La clase Math de Java nos proporciona un método llamado .max(), al cual podemos pasar dos números y resolvernos cúal es el mayor de los dos números. Es por ello que nuestro resultado es muy sencillo y solo tenemos que invocar a dicho método.
System.out.println("El mayor de los dos números es " + Math.max(iNumero1, iNumero2));
Hay que recordar que no necesitamos instanciar la clase Mathh ya que sus métodos son estáticos y únicos para todos los programas.
Como podéis comprobar un código Java para calcular el mayor de dos números con la clase Math sencillo y optimizado.
Vídeos sobre Java
Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.
Pero en HTML5 aparecen otros elementos que nos permiten dar semántica a la estructura de los documentos web. Uno de ellos es el elemento article. Dentro de un elemento article podemos recoger toda información relativa a un artículo. Lo que, por ejemplo en un blog, vendría a ser una entrada o post.
De esta forma podemos asignar una fecha diferente a la publicación de un artículo en nuestra web, el truco consiste en asignar el elemento time, con su respectivo atributo pubdate, a un elemento article.
<article>
<header>
<h1>Artículo 1 - Presentación</h1>
Publicado el <time datetime="2012-10-15T12:00">15 de octubre de 2012 a las 12h</time> por <a href="#">Autor 1</a>
</header>
En un lugar de la Mancha, de cuyo nombre no quiero acordarme...
</article>
Así, cada uno de los artículos que tengamos en nuestra página (o entradas de nuestro blog) puede tener una fecha de publicación diferente.
<article>
<header>
<h1>Artículo 1 - Presentación</h1>
Publicado el <time datetime="2012-10-15T12:00">15 de octubre de 2012 a las 12h</time> por <a href="#">Autor 1</a>
</header>
En un lugar de la Mancha, de cuyo nombre no quiero acordarme...
</article>
<article>
<header>
<h1>Artículo 2 - Detalles</h1>
Publicado el <time datetime="2012-10-16T09:00">16 de octubre de 2012 a las 9h</time> por <a href="#">Autor 2</a>
</header>
Es, pues, de saber que este sobredicho hidalgo, los ratos que estaba ocioso,....
</article>
En este caso vamos a ver como definir un microdata para una geolocalización. Algo muy útil cuando estemos trabajando con mapas -seguro que ya has probado todos nuestros ejemplos del API de Google Maps-.
Lo que tenemos que saber es que una geolocalización se define por una latitud y una longitud. Por ejemplo, la ciudad de Ávila está en la latitud 40.65599461 y la longitud -4.69373720. Para ello, Schema.org nos define la entidad GeoCoordinates en http://schema.org/GeoCoordinates.
Así, que lo primero que tenemos para hacer es definir el ámbito de nuestra entidad mediante el atributo itemscope e indicar dónde está defina la entidad mediante el atributo itemtype.
Dentro de la entidad GeoCoordinates tenemos principalmente los atributos:
latitude, para especificar la latitud.
longitude, para especificar la longitud.
Así que asignaremos dichos nombres mediante los atributos itemprop. En este caso volvemos a utilizar un elemento span para dar la información.
¿Cual es la latitud/longitud de Ávila, España?
<div itemscope="" itemtype="http://schema.org/GeoCoordinates">
(<span itemprop="latitude">40.65599461</span>,<span itemprop="longitude">-4.69373720</span>)
</div>
De una forma sencilla hemos dotado de semántica a la información de geolocalización de nuestra página HTML5.
Vídeos sobre HTML5
Disfruta también de nuestros artículos sobre HTML5 en formato vídeo. Aprovecha y suscribete a nuestro canal.
El otro día veíamos como podemos dar de alta fechas en documentos HTML5. Estas fechas las podemos utilizar para proporcionar información dentro del documento sobre el contenido del mismo. Por ejmeplo, si estamos hablando de un evento, utilizaremos las fechas para indicar los días en los cuales se produce el evento.
Pero las fechas en HTML5 las podemos utilizar para indicar información relativa al documento. Por ejemplo podemos identificar la fecha de publicación (o modificación) de un documento.
Recordamos que para insertar una fecha en HTML5 utilizamos el elemento time.
<time datetime="2012-10-15T12:00">15 de octubre de 2012 a las 12h</time>
Para identificar que la fecha sea relativa a la publicación del documento tenemos que utilizar el atributo pubdate. El atributo pubdate es un atributo booleano. Con lo cual su mero uso dentro del elemento time hará que el valor sea true. Si estamos trabajando con documentos XHTML utilizaremos el formato pubdate=»pubdate».
Así, el código que insertaremos para identificar la fecha de publicación de un documento con HTML5 será:
Este documento fue publicado el <time datetime="2012-10-15T12:00">15 de octubre de 2012 a las 12h</time>
Vídeos sobre HTML5
Disfruta también de nuestros artículos sobre HTML5 en formato vídeo. Aprovecha y suscribete a nuestro canal.
Usar la base de datos de ejemplo de Firebird (EMPLOYEE.FBD)
Al instalar Firebird se crea automáticamente una cuenta de usuario(sysdba) y un password(masterkey) que nos permitirá logearnos y acceder a la base de datos de ejemplo.
Codificando el ejemplo
Lo primero será importar la librería necesaria para la conexión:
import groovy.sql.Sql
Es increíble el ahorro de líneas de código, basta con usar el método Sql.newInstance(direccionBase,usuario,password,driverConexion) para la conectar la base de datos.
// Datos de la Conexión
def direccionBase="jdbc:firebirdsql://localhost/examples/empbuild/EMPLOYEE.FDB"
def usuario="sysdba"
def password="masterkey"
def driverConexion="org.firebirdsql.jdbc.FBDriver"
Ahora para ejecutar una consulta sql usamos el método sql.eachRow(consulta)
// Consulta
def consulta="select *from country"
Ahora solo falta recorrer los campos de la tabla para ello utilizamos el método sql.eachRow:
Lo primero que vamos a hacer es recordar como insertábamos una marca dentro de un mapa de Google Maps. Para ello nos habíamos creado una función addMark().
function addMark(location){
marker = new google.maps.Marker({
position: location,
map: map
});
}
Y es que cuando estemos insertando una marca, además de añadirla a Google Maps, lo que vamos a hacer es añadirla en un array. Así que lo primero que hará nuestro programa para borrar marcas del mapa será definir el array:
var puntos = [];
Y ahora, cada vez que insertemos una marca, la insertamos en el array mediante el método .push():
function addMark(location){
marker = new google.maps.Marker({
position: location,
map: map
});
puntos.push(marker);
}
Así, en nuestro array puntos tenemos todas las marcas. Ahora añadiremos un botón borrar marcas en nuestra página web y a su evento onclick le vamos a adjuntar el borrado de las marcas.
var b = document.getElementById("borrar");
b.addEventListener("click",function(){...});
Para realizar el borrado de una marca en concreto lo que hacemos es desasignarla del mapa. Para ello ponemos el valor del mapa asociado a null.
var b = document.getElementById("borrar");
b.addEventListener("click",function(){
// Recorrempos el array de puntos y los borramos
for (p in puntos) {
puntos[p].setMap(null);
}
});
Como vemos en el código, hemos recorrido el array y por cada uno de los objetos Marker hemos ejecutado el método .setMap(null).
Así tenemos borrados todos los puntos que hubiésemos añadido al mapa de Google Maps.
Vamos a realizar un programa de escritorio usando Java Swing. Consiste en hacer un juego de adivinar la suma de dos números generados aleatoriamente.
Necesitamos los siguientes controles:
6 JTextField
6 JLabel
3 JButton
Un botón se encargará de generar y mostrar los dos números aleatorios, el siguiente botón activa una ventanita para introducir la suma de esos dos y comprobar si es correcta (acierto) o no (fallo) y mostrará el número de intentos realizados.
Y por último un botón para quitar la aplicación.
Como se trata de una aplicación gráfica es necesario importar las librerías javax.swing.* y java.awt.*.
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.event.*;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
public class Aleatorio extends JFrame{
public Aleatorio(){
//..
//..
}
}
Los controles a usar para los que utilizaremos las clases JTextField y JButton:
final private JTextField txtNum1,txtNum2,txtResultado,txtIntentos,txtAciertos,txtFallas;
private JButton btnActiva,btnComprueba;
private JButton btnSalir;
También necesitamos definir las variables que controlarán los valores aleatorios y su suma, así como los aciertos, fallos e intentos:
//los dos números tomarán un valor aleatoriamete
private long num1,num2,valor;
//la suma
long suma_prog;
int intentos=0,aciertos=0,fallas=0;
Para generar los números aleatorios creamos una función:
public long obtenerAleatorio1(){
return (long)(Math.random()*1000);
}
Ahora pasamos a codificar los botones Activar, Comprobar y Salir.
Activar
Este botón inicia el juego, para ello lo que hacemos es crear dos números aleatorios, con la clase creada anteriormente, y los ponemos dentro de los campos de texto sus valores.
Comprobar
Es el botón que lanza el juego, lo que hace es crear un dialogo, mediante una clase JOptionPane. Cogemos el valor insertado por el usuario y comprobamos si coincide con la suma de los números aleatorios. Si es así incrementamos los aciertos, si no coincide, incrementamos los fallos.
Si nos centramos en como añadimos la marca al mapa vemos lo siguiente:
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title:"Avila de los Caballeros"
});
Lo que podemos hacer en la inicialización es pasarle una propiedad icon, la cual espera un objeto de tipo MarkerImage. Por lo que tenemos que hacer es crear un icono mediante un MarkerImage.
var img = new google.maps.MarkerImage("icono.png");
Y lo siguiente definirlo en la inicialización del Marker:
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
icon: img,
title:"Avila de los Caballeros"
});
Ya tenemos insertado y personalizado nuestro icono de Manual de Google Maps.
El otro día veíamos como podíamos especificar una fecha en HTML5. Con el elemento time y su atributo datetime, por defecto podemos indicar una fecha exacta (fecha y hora).
Pero el elemento time y su atributo datetime tienen mucha potencia. Y es que además de poder especificar una fecha en HTML5 nos van a permitir especificar una duración con HTML5.
Imagina que quieres indicar que un evento ha durado 4 días o que la película dura una hora y media, o, incluso siendo más preciso, que un atleta ha recorrido la maratón en 2 horas, 5 minutos y 32 segundos. Todo esto son duraciones y el elemento time de HTML5 nos va a dejar especificarlas.
Y el truco está en utilizar un valor de P (periodo) dentro del atributo datetime. Es decir, si a una fecha del datetime le anteponemos la P, pasará a especificar una duración.
Así, si queremos decir que el evento ha durado 4 días pondremos:
El evento durará <time datetime="P4D">4 días</time>.
O que la proyección de la película es de 1 hora y media
La proyección fue de <time datetime="P1H 30M">una hora y media</time>
Pero hay otro modificador adicional, este será la T. Y es que si después de especificar el periodo con la P en el datetime utilizamos la T, lo que estamos indicando es que hay mucha mayor precisión en la fecha.
Así, para el caso del tiempo de la maratón pondremos lo siguiente:
La maratón se corrió en <time datetime="PT2H 05M 32S">2 horas, 5 minutos y 32 segundos</time>
Dos marcadores y una forma sencilla de especificar las duraciones en HTML5.
Vídeos sobre HTML5
Disfruta también de nuestros artículos sobre HTML5 en formato vídeo. Aprovecha y suscribete a nuestro canal.
Lo que hemos hecho ha sido invocar al método addMark, el cual recibirá un objeto de tipo LatLng con la longitud y latitud en la cual vamos a añadir la marca.
Si revisamos el método addMark veremos que lo que vamos a hacer es crear un objeto de tipo Marker de Google Maps, que es el que representa a las marcas. Y dicho objeto tendrá como posición la recibida en el parámetro LatLng.
function addMark(location){
marker = new google.maps.Marker({
position: location,
map: map
});
}
Así ya tenemos añadida la marca al mapa de Google Maps de forma dinámica utilizando un click.