Cuenta Atras Java Script

Hoy te explicamos como crear una cuenta atras en Java Script utilizando PHP para que el usuario introduzca los segundos que va a durar la cuenta atras, primero realizamos el formulario HTML con los segundos que durara la cuenta atras

Luego creamos el script de manera que creamos una variable con la fecha actual y le sumamos los segundos que nos pasó el usuario para la cuenta atrás para calcular el final de la cuenta atras y luego restamos el final(end) del ahora(now) y nos da los milisegundos que quedan para la cuenta atras los descomponemos en dias, horas, minutos y segundos y obtenemos los datasw para mostrar

Se puede probar en el siguiente enlace temporizador donde aparte del JavaScript hay algun otro cambio pero de poca importancia.
Espero que te haya gustado 😉

Relaciones UML

DEPENDENCIA: El elemento de origen depende del elemento destino y se puede ver afectado por cambios en este, es una relación mas débil que la asociación.

ASOCIACIÓN: Vinculos entre objetos. Aunque las asociaciones suelen ser bidireccionales (se pueden recorrer en ambos sentidos), en ocasiones es deseable hacerlas unidireccionales (restringir su navegación en un único sentido). Gráficamente, cuando la asociación es unidireccional, la línea termina en una punta de flecha que indica el sentido de la asociación

AGREGACIÓN: El elemento destino es una parte del elemento origen. La parte existe si se va el todo.

COMPOSICIÓN: Una forma de agregación mas fuerte, si desaparece el todo desaparecen las partes.

GENERALIZACIÓN: El elemento origen es una especialización del elemento destino, se utiliza en la herencia de clases.

REALIZACIÓN: El elemento origen garantiza llevar a cabo el contrato especificado, se utiliza para la implementación de las interfaces.

Ejemplo de Diagrama de clases:

Espero que te haya gustado

Juego de 3 en raya en consola en Java

Hoy te traemos una aplicación de consola en Java para jugar al tres en raya.
Consta de varias funciones:
-filas()
-columnas()
-diagonal()
-diagonalInversa()
Estas funciones estan destinadas a comprobar si hay 3 en raya.
Luego esta la función pintar() que comprueba si se puede escribir en la posicion que indica el usuario(comprueba si esta ya escrita, entonces sería movimiento incorrecto o si se sale de la pista) en estos dos casos el usuario tendría que volver a introducir fila y columna donde quiere escribir su jugada.
Tambien está la función mostrar() que escribe por pantalla la matriz de tres en raya como estaría despues de cada jugada.

Espero que te guste ♥

Información sobre clases, atributos y métodos en Java

Modificadores de clase

class Indica que es una clase class ClaseEjempIo{..}
public class Indica que puede ser accesible desde clases que se encuentren en el mismo paquete que esta clase y también desde clases que se encuentren en paquetes distintos, realizando un import. Solo puede haber una clase publica en un fichero java. public class ClaseEJemplo{…}
abstract class Indica que no se pueden crear instancias de esta clase con el operador new, Puede contener métodos sin implementar de tipo abstract Otras clases pueden heredar de ella implementanda todos Ios metodos que no lo estén. En Caso de que la clase hija sea abstracta, puede implementar solo algunos métodos abstract class ClaseEjemplo{..}
final class Indica que no puede tener clases hijas o subclases. Es decir. ninguna clase puede heredar de ella final class ClaseEjemplo{…}
sin modificador class Indica que puede ser accesible solo desde clases que se encuentren en el mismo paguete que esta clase. class ClaseEjemplo

Modificadores de acceso de métodos y atributos

public Accesible desde cualquier lugar public int atributoEjempIo
sin_modificador Accesible solo desde cualquier clase que se encuentre en el mismo paquete int atributoEjernplo
protected Accesible desde Ias clases hijas que se encuentren en cualquier paquete. O accesible desde de cualquier clase que se encuentre dentro del mismo paquete, sea o no su hija. protected int atributoEjempIo
private Accesible solo dentro de la clase en la que fue declarado private int atributoEjemplo
static No se necesita una instancia de la clase para poder acceder/modifcar un atributo o ejecutar un método. Se accede al atributo o método a través del nombre de Ia clase. Un método static solo puede acceder a atributos y métodos static. en caso de que estos estén declarados en la misma clase. Se puede acceder a atributos y métodos no static a través de objetos. EI valor de un atributo static es compartido por todos Ios objetos, y si un objeto lo modifica, Ios demas objetos perciben la modificación. A estos atributos se Ies suele llamar atributos de Clase. public static atributoEjemplo
final No permiten reescrituras ni sobrecargas.Se suele utilizar si se desea declarar una constante. También en el caso de que se quiera evitar que modifiquen un método definido en Ia clase padre en una clase hija. (Evitar override) public static final CONSTANTE_EJEMPLO;
synchronized Evita que dos hilos puedan acceder al mismo metodo a la vez, para evitar problemas de acceso concurrente. Dejaria al segundo hilo en espera hasta que terminase el primero. (No se usa en atributos) public synchronized int metodo{…}
volatile Tiene el el mismo electo que synchronized, pero este se aplica solo a atributos. public volatile int atributoEjempIo
transient Evita que un atributo sea serializado, al serializar el objeto que lo contiene. private transient int AtributoEjempIo
native native es un modificador utilizado cuando un determinado método estå escrito en un lenguaje distinto a Java. normalmente C. C++ o ensamblador para mejorar el rendimiento. La forma más común de implementar estos métodos es utilizar JNI (Java Native Interface). (No aplicable a atributos) private native int metodo();

Tabla de accesiblidad


La misma clase Otra clase del mismo paquete Subclase de Otro paquete Otra clase de Otro paquete
public X X X X
protected X X X
sin_modificador X X

private X


Crear objetos

Crear un Objeto de una clase

NombreCIase nombreObjeto = new NombreCIase();

Crear Objeto de clase interna estática

ClaseExterna.CIaseInterna nombreObjeto = new ClaseExterna.ClaseInterna()

Crear objetos de clase interna no estática

ClaseExterna nombreObjetoExterna = new ClaseExterna();

Claselnterna nombreObjetolnterno = nombreObjeto.new Claselnterna();

Crear objeto de clase anónima:

Clasepadre nombreObjeto = new ClasePadre {

métodoDeClasePadre(){

Cambios en el método

}

};

nombreObjeto.metodoDeCIasePadre() //Llamada al método de la clase anonima.

Métodos y atributos estáticos

Crear un método o atributo estático

public static int nombreAtributo;

public static void nombreMetodo();

Acceder a un método estático.

NombreCIase.nornbreMetodo(); //No se necesita crear un Objeto con new para poder usarlo.

Acceder a un atributo estätico.

NombreCIase.nornbreAtributo //NO se necesita crear un objeto new para poder usarlo.

Información sobre clases, atributos y métodos en Java

Con este PDF se intenta explicar los modificadores de clase, atributos y métodos en Java.

Publicado:19 noviembre, 2019

Operaciones con matrices en Java (suma, resta, multiplicación, matriz identidad)

Hola, hoy os traemos un programa en java que realiza operaciones (suma, resta, multiplicación y matriz identidad) con matrices, en este ejemplo utilizamos matrices cuadradas aleatorias para que sea mas rapido pero podríamos utilizar matrices introducidas por el usuario( en la función rellenar dejo comentado como sería para introducir los datos por el usuario).

La suma y resta de matrices tiene la condición de que las matrices tienen que ser de la misma dimensión, tienen que tener el mismo número de filas y de columnas.
Para efectuar la suma sumamos elemento a elemento:
el elemento (0,0) de la matriz 1 lo sumamos con el elemento (0,0) de la matriz 2 y obtenemos el elemento (0,0) de la matriz suma,
el elemento (0,1) de la matriz 1 lo sumamos con el elemento (0,1) de la matriz 2 y obtenemos el elemento (0,1) de la matriz suma y así sucesivamente.
Para restar seguimos el procedimiento anterior pero cambiando suma por resta.

Para multiplicar matrices las matrices tienen que cumplir la condición de que:
las filas de la matriz 1 = las columnas de la matriz 2
las columnas de la matriz 1 = las filas matriz 2
La matriz resultante tendría la dimensión :
[filas matriz 1 , columnas matriz 2]
Para efectuar la multiplicación efectuamos la operacion:
matrizproducto(0,0) = matriz1(0,0) * matriz2(0,0) + matriz1(0,1) * matriz2(1,0)+matriz1(0,2)*matriz2(2,0)+matriz1(0,3)*matriz2(3,0)
Con esto obtendríamos el elemento (0,0) de la matriz producto.
matrizproducto(0,1) = matriz1(0,0) * matriz2(0,1) + matriz1(0,1) * matriz2(1,1)+matriz1(0,2)*matriz2(2,1)+matriz1(0,3)*matriz2(3,1)
Y asi sucesivamente hasta hayar todos los elementos de la matriz producto

El resultado seria algo como esto:

cuantas filas y columnas quieres que tenga la matriz
3
1-sumar matrices
2-restar matrices
3-multiplicar matrices
4-matriz identidad
5-salir
3
Mostrando la matriz 1
6 0 0
7 6 8
6 4 5
Mostrando la matriz 2
4 3 7
3 7 0
2 7 4
Se va a proceder a multiplicar las matrices
24 18 42
62 119 81
46 81 62

Espero que les haya gustado 😉

Sumar multiples ángulos con Java

Hola, hoy proponemos un ejercicio de suma de ángulos sexagesimales en java, para ello primero indicamos al usuario cuantos ángulos quiere sumar, después introducimos los grados minutos y segundos en una matriz.
En este caso el usuario introdujo dos ángulos a sumar:

35º43′50″
12º36′35″

Una vez hecho esto sumamos las columnas y obtenemos:
sumas=el sumatorio de la columna de los segundos(85″)
sumam=el sumatorio de la columna de los minutos(79′)
sumag=el sumatorio de la columna de los grados(47º)

Por último normalizamos los segundos y minutos si son mayores que 60.
Quedando como segundos resultantes el resto entre los segundos y 60 y añadimos a los minutos el cociente de dividir los segundos entre 60.
Lo mismo hacemos con los minutos, normalizando si estos pasan de 60 entonces añadimos a los grados el cociente entre minutos y 60, el nuevo valor de minutos será el resto entre los minutos y 60.

La salida sería la siguiente:

Cuantos angulos quieres sumar?
2
Dime los grados para el angulo 1
35
Dime los minutos para el angulo 1
43
Dime los segundos para el angulo 1
50
Dime los grados para el angulo 2
12
Dime los minutos para el angulo 2
36
Dime los segundos para el angulo 2
35
La suma es 48º 20′ 25″

Espero que les haya gustado 😉

Matriz con los mismos elementos en las diagonales en Java

En este ejercicio vamos a consegir una matriz de dimensiones n x n dadas por el usuario.
Los elementos de la matriz tendran valores del 0 al 9 , si la matriz fuera de 10 elementos(10 x 10), obtendriamos el siguiente resultado, con el mismo número en las diagonales

0123456789
1234567890
2345678901
3456789012
4567890123
5678901234
6789012345
7890123456
8901234567
9012345678

La función mostrar simplemente muestra la matriz recorriendola fila a fila.
La función diagolnal calcula la suma de filas + columnas y lo asigna a cada elemento de la matriz, si es mayor que 10 el sumatorio de filas y columnas hará el sumatorio de filas y columnas modulo de 10 para asignarle este valor al elemento de la matriz.
Tenemos en cuenta que en Java los arrays se pasan por referencia.

Espero que les haya gustado queda muy bonita 😆

Calcular la matriz transpuesta con Java

En este ejercicio calcularemos la matriz transpuesta de una matriz 4×4 con respecto a su eje diagonal. Primero rellenaremos con numeros aleatorios del 0 al 9 la primera matriz y despues con la función simétrica calcularemos su transpuesta. conforme al siguiente gráfico. Los elementos de la diagonal marcados con una X permaneceran en el mismo lugar y los elementos que estan en el mismo color son los que se intercambiaran entre si.

El resultado sería algo como esto:

0126
1775
2105
8666
matriz simetrica
6556
6072
6171
8210

Array de números aleatorios sin repetición en Java

Este ejercicio consiste en generar un array de 20 numeros enteros (del 1 al 49) que no se repitan despues el usuario ingresara un array de 6 números y le diremos cuantos numeros a acertado comprobando las coincidencias con el primer array de 20 enteros. La función que genera los números aleatorios sin repetición es la función loteriaSinRepeticion.

La función miApuesta crea un array de enteros con los números elegidos por el usuario

La función comprobacion cuenta las coincidencias que hay entre el array de los 20 números aleatorios sin repetición y la apuesta del usuario.

Espero que les guste 😉

La salida sería algo como esta:

Dime tus numeros
1
Dime tus numeros
2
Dime tus numeros
3
Dime tus numeros
4
Dime tus numeros
5
Dime tus numeros
6
La combinacion ganadora es
32 38 8 17 48 34 15 11 3 33 10 24 27 41 36 35 25 14 23 42
Tus numeros son
1 2 3 4 5 6
Has acertado 1 numeros