Herramientas Informaticas

Autor: juliocesar20200413 Página 136 de 141

Desarrollador web apasionado y gusto por la buena musica

Examen de java Juego Adivinar

Examen Juego Adivinar

Luego de recuperar mis apuntes encontré un examen practico de programación en JAVA, es un juego que se llama adivinar, no recuerdo que hace exactamente al parecer tienes que adivinar un numero y cada vez te acercas mas con las pistas que te da diciendo que es menor o mayor allí les dejo el código

   1:  

   2:  

   3: package examen;

   4:  

   5:  

   6:  

   7:  

   8: import javax.swing.JOptionPane;

   9: public class Adivinar 

  10: {

  11: public String nombre;

  12: public int intentos;

  13: public int puntuacion;

  14: public double numero;

  15: public int aleatorio1;

  16: public int partidas;

  17: public int ni;

  18: public int mp;

  19: /** Funcion que genera un numero aleatorio de 1 al 100 */

  20: public static void aleatorio(int numero)

  21: {

  22: numero=(int) (Math.random()*(100)+1);

  23: }

  24: /** Inserta el nombre */

  25: public void insertaNombre()

  26: {

  27: nombre=JOptionPane.showInputDialog("Inserte el nombre");

  28: }

  29: /**Jugar*/

  30: public void jugar()

  31: {

  32: puntuacion=1000;

  33: intentos++;

  34: puntuacion--;

  35: ni=Integer.parseInt(JOptionPane.showInputDialog("Inserte el numero"));

  36: if(ni!=aleatorio1)

  37: {

  38: if(ni>aleatorio1)

  39: {

  40: JOptionPane.showMessageDialog(null,"El numero correcto es menor");

  41: }

  42: if(ni

  43:  

  44: {

  45: JOptionPane.showMessageDialog(null,"El numero correcto es mayor");

  46: }

  47: }

  48: }

  49: /**Puntuacion */

  50: public void puntuacion()

  51: {

  52: JOptionPane.showMessageDialog(null,"Nombre "+nombre+"n puntuacion "+puntuacion+"n Mejor puntuacion "+mp);

  53: }

  54: /**Mejor puntuacion */

  55: public void mejorPuntuacion()

  56: {

  57: if(puntuacion>mp)

  58: {

  59: mp=puntuacion;

  60: }

  61: }

  62: public String toString()

  63: {

  64: return "Mejor puntuacion n Nombre "+nombre+"n Mejor puntuacion "+mp;

  65: }

  66: }

Puede que por el formato se modifique el código, aquí los archivos .java




Manejo de excepciones en JAVA

Manejo de excepciones JAVA

package unidad5;

public class ManejoDeExepciones {


public static void main(String[] args) {
int num1;
int num2;
/*
try
{
arg1=args[0];
arg2=args[1];


}catch(ArrayIndexOutOfBoundsException e){
System.out.println("Argumentos incompletos");
}
try {
num1=Integer.parseInt(arg1);
num2=Integer.parseInt(arg2);
}catch(NumberFormatException e1){
System.out.println("No se ha recibido un valor numerico");
}
System.out.println(arg1+" "+arg2);
*/
try
{
num1=Integer.parseInt(args[0]);
num2=Integer.parseInt(args[1]);

System.out.println(num1/num2);
System.out.println(Potencia.potencia(5, 5));


/* }catch(ArrayIndexOutOfBoundsException e){
System.out.println("Argumentos incompletos");
}
catch(NumberFormatException e1){
System.out.println("No se ha recibido un valor numerico");
}catch(ArithmeticException e){
System.out.println("La divicion entre cero es imposible");
}

catch(Exception e){
System.out.println("Ocurrio un error");
}
finally{
System.out.println("Siempre me ejecuto");
}
}

}



SImple serpientes y escalera en JAVA

Ejercicio simple de serpientes y escaleras hecho en java

Archivo Serpientes.java

   1: package serpientesYescaleras;

   2:  

   3: import static utilerias.Mate.factorial;

   4:  

   5: import javax.swing.JOptionPane;

   6:  

   7: public class Serpientes {

   8:  

   9: private int []tablero={0,0,0,0,0,0,0,0,0,0,+28,0,0,0,0,0,+49,0,+27,-15,

  10: +36,0,-21,0,0,+24,0,0,0,0,0,0,0,0,-13,0,0,0,0,0,0,0,+41,0,0,

  11: 0,0,0,0,0,0,+24,0,0,0,0,0,0,0,0,0,-48,0,0,0,0,0,+24,0,0,0,0,-66,+26

  12: ,-45,0,0,-29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-54,0,0,+28,0,0,0};

  13:  

  14: private String nombre;

  15: private int edad;

  16: private int casilla=0;

  17:  

  18: private static int puntuacion=0;

  19: private static String ganador;

  20:  

  21:  

  22: public int dados()

  23: {

  24: return (int)(Math.random()*(6)+1);

  25: }

  26:  

  27: public void insertarDatos()

  28: {

  29: nombre=JOptionPane.showInputDialog("Dame tu nombre");

  30: edad=Integer.parseInt(JOptionPane.showInputDialog("Dame tu edad"));

  31: }

  32:  

  33: public void avanzar()

  34: {

  35: int d;

  36: JOptionPane.showMessageDialog(null,nombre+" De clic en aceptar para tirar el dado");

  37: d=dados();

  38: JOptionPane.showMessageDialog(null,nombre+" Ha caido "+d);

  39: casilla=casilla+d;

  40:  

  41:  

  42: if(tablero[casilla]>0)

  43: {

  44: casilla=casilla+tablero[casilla];

  45: JOptionPane.showMessageDialog(null,"Bien "+nombre+" has escalado hasta escalado hasta la casilla "+casilla);

  46: }

  47: if(tablero[casilla]<0)

  48: {

  49: casilla=casilla+tablero[casilla];

  50: JOptionPane.showMessageDialog(null,"Huu "+nombre+" Has retrocedido hasta la casilla "+casilla);

  51: }

  52: JOptionPane.showMessageDialog(null,nombre+" esta en la casilla "+casilla);

  53: if(casilla>100)

  54: {

  55:  

  56: JOptionPane.showMessageDialog(null,nombre+" felicidades has ganado "+casilla);

  57:  

  58: }

  59: setPuntuacion(casilla);

  60: }

  61:  

  62: public static void setPuntuacion(int puntuacion) {

  63: Serpientes.puntuacion = puntuacion;

  64: }

  65:  

  66: public static int getPuntuacion() {

  67: return puntuacion;

  68: }

  69:  

  70: }

  71:  

  72: Archivo SerpientesTest.java

  73:  

  74: package serpientesYescaleras;

  75: import javax.swing.JOptionPane;

  76: public class SerpientesTest {

  77:  

  78:  public static void main(String[] args) {

  79:   Serpientes jugador1=new Serpientes();

  80:   Serpientes jugador2=new Serpientes();

  81:  

  82:   jugador1.insertarDatos();

  83:   jugador2.insertarDatos();

  84:  

  85:   do

  86:    {

  87:    jugador1.avanzar();

  88:    jugador2.avanzar();

  89:  

  90:    }while(Serpientes.getPuntuacion()<100);

  91:   JOptionPane.showMessageDialog(null," Fin del juego ");

  92:  }

  93: }

  94:  

 

Conexion A mysql con Visual C# Express

Otro proyecto



Viene con el codigo fuente incluido.

EL programa no tiene ni un objetivo si no mostrar una manera de como conectar un programa hecho en Visual express C# con Mysql
Funciona en Windows XP en 7 me fallo 😀



CONEXION C# EXPRESS CON MYSQL

LES DEJO EL PROGRAMA DE FIN DE SEMESTRE

CONSISTE EN CONECTAR UN PROGRAMA HECHO EN VISUAL EXPRESS C# CON MYSQL

EL PROYECTO TIENE LA INSTALACION AUTOMATICA DE LA BASE DE DATOS
TAMBIEN CONTIENE EL CONECTOR MYSQL.DATA 5.1 QUE SE ENCUENTRA EN LA CARPETA DONDE ESTA EL CODIGO FUENTE
A TAMBIEN INCLUI EL CODIGO FUENTE QUE ES LO MAS IMPORTANTE ALLI EN CIERTA CLASE PUSE TODAS LAS SECUENCIAS SQL PARA INSTANCIARLAS EN EL PROGRAMA DESPUES PARA NO ESCRIBIR TANTO CODIGO
EL PROGRAMA FUNCIONA CORRECTAMENTE EN WINDOWS XP SP3
Cualquier mal funcionamiento porfavor comentelo 😀
ESPERO Y LES SIRVA EL CODIGO

ACORDEON PARA EL EXAMEN DE BASE DE DATOS DISTRIBUIDAS TRANSACCIONES

Conectar al Mysql de otro servidor

mysql -h “IPDELAOTRACOMPU” -u “USUARIOCREADO” -p ;

//Bloquear lectura de tabla
LOCK TABLES “NOMBRE_DE_TABLA” READ;

//DESBLOQUEAR TABLAS
UNLOCK TABLES;

//BLOQUEAR ESCRITURA DE LA TABLA
LOCK TABLES “NOMBRE_DE_TABLA” WRITE;

TRANSACCIONES

BEGIN;
//SETENCIAS;
COMMIT;

//BORRAR TABLA
DROP TABLE “Nombre_Tabla”;

Estos son bloqueos y son técnicas para controlar el acceso concurrente.

Granularidad.- Es el nivel que se puede obtener los datos. Que son el Compartido y Exclusivo

Compartido,. Es el de lectura Read

Exclusivo.- Es el de escritura Write

Serializabilidad.- Implica que las transacciones se realizan en paralelo pero el resultado es como se hubieran realizados en serie.

Esto es para evitar usar datos que no son ciertos

Ejemplo el de un banco donde 2 personas entran a diferentes cajeros con la misma cuenta

ACID

Atomicidad

Consistencia

Asolación

Durabilidad

  • Atomicidad: es la propiedad que asegura que la operación se ha realizado o no, y por lo tanto ante un fallo del sistema no puede quedar a medias.

  • Consistencia: Integridad. Es la propiedad que asegura que sólo se empieza aquello que se puede acabar. Por lo tanto se ejecutan aquellas operaciones que no van a romper las reglas y directrices de integridad de la base de datos.

  • Aislamiento: es la propiedad que asegura que una operación no puede afectar a otras. Esto asegura que la realización de dos transacciones sobre la misma información sean independientes y no generen ningún tipo de error.

  • Durabilidad: es la propiedad que asegura que una vez realizada la operación, ésta persistirá y no se podrá deshacer aunque falle el sistema.

Cumpliendo estos 4 requerimientos un sistema gestor de bases de datos puede ser considerado ACID Compliant.

MATRIZ DE COMPATIBLIDAD LAS TRANSACCIONES

TRANSACCION II
TRANSACCION

I
Compartido
V
F
Exclusivo
F
F

Compartido = Read;

Exclusivo = Write

//Bloquear lectura de tabla
LOCK TABLES “NOMBRE_DE_TABLA” READ;

//DESBLOQUEAR TABLAS
UNLOCK TABLES;

//BLOQUEAR ESCRITURA DE LA TABLA
LOCK TABLES “NOMBRE_DE_TABLA” WRITE;

Si es sistema se cae cuando inicia verifica la línea de tiempo las transacciones que están cometidas y las que están cometidas se ejecutan y las que no se hacen un Rollback

Para recuperar mas rápido se hace un ChekPoint “Punto de verificación” En donde se guarda el

·         acceso concurrente

·         Bloques

·         Stampa de tiempo

Granularidad

Al referirnos a lo que es bloqueo en bases de datos en realidad utilizamos lo que se conoce como granularidaddel bloqueo.

La granularidadse refiere a que tan fino se quiere que sea un bloqueo. Por ejemplo ¿desceabloquear la tabla completa (un bloqueo de granularidad gruesa) o solo deceabloquear una fila especifica (un bloqueo de granularidad fina)?.

Comandos basicos en Mysql aceso remoto

Conectar al Mysql de otro servidor

mysql -h “IPDELAOTRACOMPU” -u “USUARIOCREADO” -p ;

//Bloquear lectura de tabla
LOCK TABLES “NOMBRE_DE_TABLA” READ;

//DESBLOQUEAR TABLAS
UNLOCK TABLES;

//BLOQUEAR ESCRITURA DE LA TABLA
LOCK TABLES “NOMBRE_DE_TABLA” WRITE;

TRANSACCIONES

BEGIN;
//SETENCIAS;
COMMIT;

//BORRAR TABLA
DROP TABLE “Nombre_Tabla”;

Estos son bloqueos y son técnicas para controlar el acceso concurrente.

Granularidad.- Es el nivel que se puede obtener los datos. Que son el Compartido y Exclusivo

Compartido,. Es el de lectura Read

Exclusivo.- Es el de escritura Write

Serializabilidad.- Implica que las transacciones se realizan en paralelo pero el resultado es como se hubieran realizados en serie.

Esto es para evitar usar datos que no son ciertos

Ejemplo el de un banco donde 2 personas entran a diferentes cajeros con la misma cuenta

Algunos Gif Animados

Suele pasar

Andele

USANDO METODOS EN C# EXAMEN CRAPS

Logo_C_Sharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

/* CRAPS

Un jugador tira 2 dados,

Cada dado tiene 6 caras, COn sus numeros del 1-6 en cada cara

Una vez que los dados dejen de moverse, se calcula la suma de los puntos en los dos lados. Si la suma es 7 u 11
en el primero tiro el jugador gana

Si la suma es 3,2,12 en el primer tiro el jugador pierde

Si la suma es 4,5,6,8,9,10 en el primer tiro esta se convierte en el punto del jugador.

Para ganar.El jugador debe seguir tirando los dados hasta que salga otra vez su punto (Es decir, que tire ese mismo valor de punto)

*/
namespace Craps
{
    class Program
    {
     
      
        //PROGRAMA PARA GENERAR NUMEROS ALEATORIOS, PARA USARLA EN EL METODO TIRAR DADO

        private Random numerosAleatorios = new Random();

        private enum Estado { CONTINUA, GANO, PERDIO }
      
        private enum nombresDados{DOS_UNOS=2,
            TRES=3,SIETE=7,ONCE=11,DOCE=12}

        //METODO EJECUTA EL JUEGO CE CRAPS
        public void Jugar()
        {
            //PRIMER TIRO DEDOS
            Estado EstadoJuego=Estado.CONTINUA;

            int puntos=0;
            int sumaDeDados=tirarDados();

            //DETERMINA EL ESTADO DE JUEGO Y EL PUNTO CON BASE EN EL PRIMER TIRO

        switch((nombresDados)(sumaDeDados))
            {
            case nombresDados.SIETE:

            case nombresDados.ONCE:
                 EstadoJuego = Estado.GANO;
                break;
            case nombresDados.DOCE:
            case nombresDados.TRES:
            case nombresDados.DOS_UNOS:
                EstadoJuego = Estado.PERDIO;
                break;
            default: EstadoJuego = Estado.CONTINUA; //NO GANO NI PERDIO, ENTONCES HAY QUE RECORDAR EL PUNTO
                break;
      

                //AUN NO TERMINA
                puntos = sumaDeDados;

                Console.WriteLine(“{0}”,puntos);
                break;
            }

                //MIENTRAS EL JUEGO NO TERMINE

                while (EstadoJuego == Estado.CONTINUA)
                    {
                        sumaDeDados = tirarDados(); //TIRA LOS DATOS OTRA VEZ
                        if (sumaDeDados == puntos)
                          
                            EstadoJuego = Estado.GANO;
                          
                        if(sumaDeDados==(int) nombresDados.SIETE) //PIERDES SE CAE 7 ANTES DEL PUNTO
                              
                                    EstadoJuego=Estado.PERDIO;
                                  
                              
                      
                 
              
                    }//FIN DEL WHILE

            //MUESTRA MENSAJE
            
          
        if (EstadoJuego == Estado.GANO)
        {
            Console.WriteLine(“PERDISTE”);
        }
        if (EstadoJuego == Estado.PERDIO)
        {
            Console.WriteLine(“GANASTE”);
        }
        }

        //TIRAR DADO
        public int tirarDados()
        {
            //ELIGE VALORES ALEATORIOS PARA LOS DADOS
            int dado1 = numerosAleatorios.Next(1, 7);
            int dado2 = numerosAleatorios.Next(1, 7);

            int suma = dado1 + dado2;

            //MUESTRA EL RESULTADO DE ESTE TIRO
            Console.WriteLine(“DADO UNO= {0}” + dado1+ ” DADO DOS{1}” + dado2+ “SUMA={2}” + suma);

            return suma;

        }
      
      
        static void Main(string[] args)
        {
            Program AAAA=new Program();

            AAAA.Jugar();
            Console.ReadLine();
        
         
        }
    }
}

COMANDOS BASICOS EN MYSQL

COMANDOS BASICOS EN MYSQL


Primero que nada entramos a la terminal
Y lo que vamos a escribir sera: mysql -u root -p
En caso de usar Linux sera: sudo mysql -u root -p

Le ponemos el password y nos saldra lo siguiente:
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 3
Server version: 5.1.49-3 (Debian)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the current input statement.

mysql> 

Ahora tenemos que ver que base de datos existen, para eso escribimos:
SHOW DATABASES;

Y nos saldra algo parecido a esto:
mysql> show databases;
+——————–+
| Database           |
+——————–+
| information_schema |
| mysql              |
+——————–+
2 rows in set (0.00 sec)


Ahora vamos a crear una base de datos, para ello escribiremos
CREATE DATA BASE JULIO;

Donde puse julio pueden poner el nombre que ustedes deseen 🙂

Ahora vamos a ver que base de datos existen de nuevo, igual usamos el mismo comando de arriba:
SHOW DATABASES;

Y nos saldra algo parecido a esto:
mysql> show databases;
+——————–+
| Database           |
+——————–+
| information_schema |
| JULIO              |
| mysql              |
+——————–+
3 rows in set (0.00 sec)


Ahora vamos a usar la base de datos JULIO o como ustedes le allan puesto, para ello escribiran:
use JULIO;

Es importante respetar MAYUSCULAS y minusculas

Ahora en la base de datos JULIO, vamos a crear una tabla llamada integrantes que tenga los campos de ID_Intengrante,Nombre,Semestre,Genero y Edad, todos con el tipo de dato de VARCHAR, para ello escribimos:
CREATE TABLE integrantes (ID_Integrante VARCHAR(25),Nombre VARCHAR(25),Semestre VARCHAR(25),Genero VARCHAR(25),Edad VARCHAR(25));

Para visualizar la estructura de la tabla el comando es el siguiente:
DESCRIBE integrantes;

Va a salir lo siguiente:
mysql> DESCRIBE integrantes;
+—————+————-+——+—–+———+——-+
| Field         | Type        | Null | Key | Default | Extra |
+—————+————-+——+—–+———+——-+
| ID_Integrante | varchar(25) | YES  |     | NULL    |       |
| Nombre        | varchar(25) | YES  |     | NULL    |       |
| Semestre      | varchar(25) | YES  |     | NULL    |       |
| Genero        | varchar(25) | YES  |     | NULL    |       |
| Edad          | varchar(25) | YES  |     | NULL    |       |
+—————+————-+——+—–+———+——-+
5 rows in set (0.00 sec)

Ahora le insertaremos datos a esta tabla, para ello utilizaremos el siguiente Sintaxis:
INSERT INTO integrantes VALUES (“1″,”Sotelo”,”7″,”M”,”25″);

Tambien podemos agregar datos de una sola vez, ejemplo:
INSERT INTO integrantes VALUES (“2″,”Peggy”,”9″,”M”,”22″),(“3″,”Claudia”,”9″,”F”,”22″),(“4″,”Martha”,”7″,”F”,”21″),(“5″,”Tavo”,”7″,”M”,”21″);

Ahora veremos los datos, tublas o filas como le quieran llamar, escribimos:
SELECT * FROM integrantes;

Y nos saldra lo siguiente:
mysql> SELECT * FROM integrantes;
+—————+———+———-+——–+——+
| ID_Integrante | Nombre  | Semestre | Genero | Edad |
+—————+———+———-+——–+——+
| 1             | Sotelo  | 7        | M      | 25   |
| 2             | Peggy   | 9        | M      | 22   |
| 3             | Claudia | 9        | F      | 22   |
| 4             | Martha  | 7        | F      | 21   |
| 5             | Tavo    | 7        | M      | 21   |
+—————+———+———-+——–+——+
5 rows in set (0.00 sec)
Ahora vamos a fragmentar la tabla verticalmente creando otra tabla a partir de la tabla creada anteriormente, tomando solamente los campos de ID_Integrante y Nombre para esto escribimos:
CREATE TABLE Nombres as select ID_Integrante,Nombre FROM integrantes;

Veamos como quedo la tabla nueva escribiendo:
SELECT * FROM Nombres;

Nos desplegara lo siguiente:
+—————+———+
| ID_Integrante | Nombre  |
+—————+———+
| 1             | Sotelo  |
| 2             | Peggy   |
| 3             | Claudia |
| 4             | Martha  |
| 5             | Tavo    |
+—————+———+
5 rows in set (0.00 sec)

Ahora la vamos a fragmentar en forma horizontal.en hombres y mujeres.
Para fragmentar la integrantes en una nueva tabla de hombres escribimos:
CREATE TABLE Hombres AS SELECT * FROM integrantes WHERE Genero=”M”;

Veamos como quedo la tabla:
SELECT * FROM Hombres;

Nos desplegara lo siguiente:
+—————+——–+———-+——–+——+
| ID_Integrante | Nombre | Semestre | Genero | Edad |
+—————+——–+———-+——–+——+
| 1             | Sotelo | 7        | M      | 25   |
| 2             | Peggy  | 9        | M      | 22   |
| 5             | Tavo   | 7        | M      | 21   |
+—————+——–+———-+——–+——+

Ahora hacemos la tabla para las mujeres:
CREATE TABLE Mujeres AS SELECT * FROM integrantes WHERE Genero=”F”;

Veamos como quedo la tabla:

SELECT * FROM Mujeres;


Nos desplegara lo siguiente:

+—————+———+———-+——–+——+
| ID_Integrante | Nombre  | Semestre | Genero | Edad |
+—————+———+———-+——–+——+
| 3             | Claudia | 9        | F      | 22   |
| 4             | Martha  | 7        | F      | 21   |
+—————+———+———-+——–+——+
2 rows in set (0.00 sec)


Para hacer UNION hacemos lo siguiente:
CREATE TABLE JUNTO AS SELECT * FROM Hombres UNION SELECT * FROM Mujeres;

Hacer Procedimientos
Primero vamos hacer una tabla llamada Bitacora, donde tendra un campo que se pondra automaticamente la hora del servidor. 
CREATE TABLE Bitacora (Id_Integrante VARCHAR(25),Accion VARCHAR (25),Fech TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
Ahora vamos hacer el procedimiento:
mysql> delimiter //
mysql> CREATE procedure insertar(IN Integrante VARCHAR (25),Accion VARCHAR(25))
    -> begin
    -> INSERT INTO Bitacora VALUES(Integrante,Accion,CURRENT_TIMESTAMP);
    -> end;
    -> //

Ahora invoquemos a la funcion
mysql> call insertar(“15″,”Entro al sistema”);
Ahora chekemos si se guardo:
SELECT * FROM Bitacora WHERE Id_Integrante=15;

Tiene que dar el siguiente resultado:
+—————+——————+———————+
| Id_Integrante | Accion           | Fech                |
+—————+——————+———————+
| 15            | Entro al sistema | 2011-09-25 19:54:12 |
+—————+——————+———————+
1 row in set (0.00 sec)

mysqld -P 3305




Bueno hasta ahora eso es todo, luego pongo como hacer UNION, JOIN ETC. ESPERO Y LES ALLA SERVIDO :), Saludos

Página 136 de 141

Creado con WordPress & Tema de Anders Norén