elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7
51  Programación / Programación C/C++ / Re: Ayuda con Suma binaria (tiene codigo)o reprobare el semestre en menos de 1 hora en: 6 Diciembre 2012, 01:13 am
Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4.  
  5. char a[5]; //variable para el primer valor a sumar
  6. char b[5]; //variable para el primer valor a sumar
  7. long resultado; //variable para el resultado
  8. char resultado_str[5]; //variable para obtener el resultado en binario
  9. int main ()
  10. {
  11. printf("Introduzca primer n£mero: ");
  12. scanf("%s", &a); //lectura del primer numero
  13. printf("Introduzca segundo n£mero: ");
  14. scanf("%s", &b); //lectura del segundo numero
  15. resultado = strtol (a, NULL, 2) + strtol (b, NULL, 2); //suma de los dos valores usando la funcion strtol
  16. itoa(resultado, resultado_str, 2);//como se obtiene un resultado decimal se convierte a entero con esta función y se le asigna a la variable resultado_str
  17. printf("El resultado es %s",resultado_str); //imprime el resultado
  18. getch();
  19. return 0;
  20.        }
  21.  
  22.  
52  Programación / Java / Re: Problema al mostrar return de metodo en: 6 Diciembre 2012, 00:51 am
creaste el procedimiento fraccionMostrar() para no usarlo? xD

Código
  1. package primerasClases;
  2.  
  3. public class FraccionAplicacion {
  4.  
  5. public static void main(String[] args) {
  6.  
  7. // creo el objeto fraccion
  8. Fraccion f1 = new Fraccion(2,2);
  9. Fraccion f2 = new Fraccion(2,2);
  10. Fraccion.fraccionSumar(f1, f2).fraccionMostrar();
  11.  
  12. }
  13.  
  14. }
  15.  
53  Programación / Java / Existe un equivalente de alt en html en JAVA? en: 6 Diciembre 2012, 00:11 am
Hola, me gustaría saber si existe algún equivalente del alt en html en Java, me refiero en sí al cuadro de texto que aparece, para agregarlo a un evento mouseEntered
Saludos
54  Programación / Java / Re: matices en: 2 Diciembre 2012, 15:33 pm
solo un error en la línea donde mandas a imprimir:
Código
  1. System.out.print(x[i][j]+"\t");
estabas imprimiendo la primera dimensión, la cual es un arreglo de 3, por eso te imprimió así, es la ubicación en la memoria, recuerda que al ser un arreglo bidimensional tienes que chequear las dos dimensiones, para algo hiciste los dos for, no?

Lo otro no lo entendí, si te explicas mejor como funciona ese juego podría ayudarte
Saludos
55  Programación / Java / ayuda con unos algoritmos de mi SUDOKU en Java :D en: 29 Noviembre 2012, 19:53 pm
Hola foreros, he estado haciendo un proyecto que me mandaron de la universidad; un SUDOKU, la verdad ya lo tengo casi terminado, sólo que tengo un gran problema de lógica, he creado funciones para generar las pistas del SUDOKU, para chequear si un número se encuentra en fila o columna y para chequear si se encuentra en un cuadrante, todo funciona de maravilla, le he agregado una función para un nuevo botón llamado "rendirse" y la función que cumple es rellenar las casillas del SUDOKU faltantes y corregir las existentes que no sean parte de las pistas que se cargaron en un principio, el algoritmo me funciona correctamente, sólo que a la hora de cargar la función quedan varias casillas trancadas; es decir, no hay forma de poner ningún número del 1 al 9 porque o está en fila o columna o está en cuadrante y como el valor de la función que busca el valor correcto se inicializa en 0, queda en 0 y ese es el valor que pone,
lo que quiero es que me ayuden a mejorar los algoritmos o darme consejos de como podría hacerlo ya que no veo manera de modificar el algoritmo de tal manera que prevenga esa situación, acá les dejo una imagen:
 

Funciona así: utiliza dos  arreglos bidimensional de 9x9, uno para manejar el SUDOKU y otro para saber en que posiciones se crean las pistas.
Código:
int size = 9;
Object load [][]= new Object [size][size];
Object filas [][]= new Object [size][size];
int pistas = 25, total_pistas = 0;
así genera las pistas:
Código:
do
       {

          f = (int) Math.round((Math.random()*8));
          c = (int) Math.round((Math.random()*8));
         
          if (filas[f][c] != null) continue;
          valor = getValorCorrecto(filas, f, c);
           if (valor != 0)
           {
             filas[f][c] = valor;
             load [f][c] = true;
             total_pistas++;
            }
         
       } while (total_pistas < pistas);
       


esta es la función para saber si existe o no en la fila y la columna

Código:
public boolean isInFilayColumna(Object [][] filas, int f, int c, int valor)
    {
        int j = 0;
        boolean duh = false;
        for (j = 0; j < 9; j++)
             {
               if (filas[j][c] == valor || filas[f][j] == valor)
                {
                         
                          duh = true;
                          break;
                 }
                     
                     
             }
       return duh;
    }

esta es la función para saber si existe o no en el cuadrante

Código:
public boolean isInCuadrante(Object filas[][], int x, int y, int valor)
    {
        boolean duh = false;
        int startx = 0, starty = 0, endx = 0, endy = 0, i, j;
       
        //COORDENADAS X
        if (x >= 0 && x <= 2)
        {
            startx = 0;
            endx = 2;
           
        }
        else if (x >= 3 && x <= 5)
        {
            startx = 3;
            endx = 5;
           
        }
        else if (x >= 6 && x <= 8)
        {
            startx = 6;
            endx = 8;
           
        }
       
       
        //COORDENADAS Y
       
        if (y >= 0 && y <=2)
        {
           starty = 0;
           endy = 2;
        }
        else if (y >= 3 && y <=5)
        {
           starty = 3;
           endy = 5;
        }
        else if (y >= 6 && y <= 8)
        {
           starty = 6;
           endy = 8;
        }
       
        for (i = startx ; i <= endx; i++)
        {
            for (j = starty; j <= endy; j++)
            {
                if (filas[i][j] == valor)
                {
                   
                    duh = true;
                    break;
                }
                   
                   
                   
            }
        }
           
           
        return duh;
    }

y esta es la función que me corrige el SUDOKU
Código:
public void corregir_sudoku(Object filas[][], Object check [][], JTable tabla)
    {
        int i,j, valor;
        valor = 0;
        for (i = 0; i < 9; i++)
        {
            for (j = 0; j < 9; j++)
               
            {
               
                if ((filas[i][j] != null && isInFilayColumna(filas, i, j, (int)filas[i][j]) && isInCuadrante(filas, i, j, (int)filas[i][j]) || filas [i][j] == null))
                {
                   
                    valor = getValorCorrecto(filas, i, j);
                    filas[i][j] = valor;
                    tabla.setValueAt(valor, i, j);
                   
                }
            }
        }
           
               
    }

Saludos!
       
56  Programación / Programación General / Re: Que lenguajes de programación utilizas habitualmente? en: 29 Noviembre 2012, 19:03 pm
C++, LUA, PHP, pero Java rocks :D, de hecho acabo de terminar un proyecto de un SUDOKU en Java :D
57  Programación / Java / Problemas con manejo de memoria dinamica en: 3 Febrero 2012, 17:51 pm
Hola a todos, estoy haciendo un programa que me mandaron en la universidad pero estoy algo confundido, el programa lo que hace es crear un registro con una clase, en el menu de opciones esta la opcion de buscar y eliminar, igual la de mostrar todo, luego de que se cierra el programa se guarda lo que estaba en la clase en el archivo. Podrian hecharle una ojeada al codigo y corregirle los errores?

acá esta el código
Código:



package procesamiento;

/**
 *
 * @author Jose Angel
 */
import java.util.Scanner;
import java.io.*;

public class Main {



 
    public Main() {
    }
   
   

public static Articulo aux, aux2, aux_elim, primero; //Auxiliares necesarios para llevar el control de la memoria dinámica
public  static int i,j,respuesta_eliminar; //i,j son contadores, respuesta_eliminar es el codigo que se usara para eliminar
public static char respuesta_control, talla; // respuesta_control es para llevar el control del ciclo central, talla para guardar el valor de la talla antes de meterlo en la memoria dinámica
public static boolean encontrado, existe; //valores booleanos que ayudan en la busqueda y en la eliminacion
public static int opcion, numero,  buscar; //otros valores, opcion para el menu, numero es el codigo que se le asignara a cada articulo, buscar es el id que se usara para buscar.
public static String nombre, color; //otros valores que se usan para agarrar valores antes de meterlos a la clase.
public static float precio; //otro valor que se usa para agarrar un valor antes de meterlo a la clase.
public static void main(String[] args) {
 aux2 = null; 
 primero = null;
    do
    {
    encontrado = false;
existe = false;
//los valores de arriba deben inicializarce en false.
    Scanner teclado= new Scanner(System.in); //lectura desde el teclado para inicializar el menu
    System.out.println("Que desea hacer? \n1.- Agregar (1)\n2.- Buscar (2)\n3.- Eliminar (3)\n4.- Mostrar Todo (4)\n5.- Salir (5)");
    opcion = teclado.nextInt();//lectura de entero desde el teclado.
    switch (opcion)
    {
        case 1: //opcion agregar
           
            aux = new Articulo();//crea un nuevo nodo en la clase articulo
            if (primero == null)
            {
                primero = aux;
            }
            Scanner lector_n= new Scanner(System.in); // todos los scanners que vienen aca son para leer los datos necesarios para llenar los campos de la clase
            System.out.println("Escriba el nombre del producto:");
            nombre = lector_n.next();
            aux.nombre = nombre;
            Scanner lector_t = new Scanner(System.in);
            System.out.println("Escriba la talla del producto:");
            talla = lector_t.next(). charAt(0);//lectura de la primera letra de lo que se escribe desde el teclado
            aux.talla = talla;
            Scanner lector_c = new Scanner(System.in);
            System.out.println("Escriba el color del producto:");
            color = lector_c.next();
            aux.color = color;
            Scanner lector_p = new Scanner(System.in);
            System.out.println("Escriba el precio del producto:");
            precio = lector_p.nextFloat(); //lectura del numero decimal que se escribe desde el teclado
            aux.precio = precio;
            numero++;
            aux.codigo = numero;//asignacion de el codigo al producto
            aux2 = aux;
            aux.guia = aux2;
           System.out.println(aux2.guia);
            break;
        case 2:
            Scanner buscador = new Scanner(System.in);
            System.out.println("Escriba el codigo del producto que desea buscar");
            buscar = buscador.nextInt() ;//se lee el entero que seria el codigo que se esta buscando
          // aux2 = primero;
           System.out.println(aux2.guia);
           
          for (int b = 0; i < numero; i++)  {//se hace el recorrido a la clas
             if (aux2.codigo == buscar) //si se encuentra encontrado va a ser igual a true
                {
                    encontrado = true;
                    break;
                }

            aux2 = aux2.guia;
              }
           
            if (encontrado == true) //si encontrado fue true mostrara todos los datos de la clase que buscamos por el codigo
                 System.out.println("Nombre: " + aux2.nombre + " Talla: " + aux2.talla + " Color:" + aux2.color + " Precio:" + aux2.precio+ " Codigo:" + aux2.codigo );
            else
                System.out.println("No encontrado.");
            break;
        case 3: //ESTA PARTE NO ESTA BIEN AUN
             Scanner eliminar= new Scanner(System.in);
             System.out.println("Inserte el codigo del producto que desea eliminar");
             respuesta_eliminar = eliminar.nextInt();
           
        aux2 = primero;//nos situamos al inicio de la lista
        while (aux2.guia != null){
           
            //si el nodo a eliminar fuera el primero
             if (aux2.codigo == respuesta_eliminar){
                //guardamos en un auxiliar del siguiente
                //del que vamos a eliminar
                Articulo auxiliar = aux2.guia.guia;
                aux2.guia = null;
                aux2.guia = auxiliar;
            }

            aux2 = aux2.guia;
        }
                     
         
            break;
        case 4:
         
         while (aux2 != null)   
         { //aca se hace el recorrido a todo lo que esta en la clase y lo muestra en pantalla
       
                System.out.println("Nombre: " + aux2.nombre + " Talla: " + aux2.talla + " Color:" + aux2.color + " Precio:" + aux2.precio+ " Codigo:" + aux2.codigo );         
                 aux2 = aux2.guia;//esto es para que se vaya incrementando las direcciones.
         }
            break;
        case 5:
                break;
        default:
            System.out.println("Opcion "+ opcion + " es inválida");
            break;
    }
    Scanner lectura= new Scanner(System.in);//nueva lectura desde teclado para saber si se hara alguna otra cosa en el menu
    System.out.println("Desea continuar?");
    respuesta_control = lectura.next(). charAt(0);
    }while (respuesta_control == 's' || respuesta_control == 'S' ); 
    //aca empieza lo que tiene que ver con el archivo
    FileWriter archivo = null; // este valor hace referencia al nuevo archivo que crearemos
    PrintWriter escritor = null; // este valor hace referencia al escritor que usaremos para escribir (obviamente D:)
        try
        {
            archivo = new FileWriter("c:/nuevoarchivo.txt"); //aqui seleccionamos el nuevo archivo que usaremos para escribir (si no existe igualmente se crea)
            escritor = new PrintWriter(archivo); //esto es lo que nos ayudara a escribir en el archivo
            while (aux2 != null){ //hacemos un recorrido a toda la clase
                escritor.println("Nombre: " + aux2.nombre + " Talla: " + aux2.talla + " Color:" + aux2.color + " Precio:" + aux2.precio+ " Codigo:" + aux2.codigo ); //y empezamos a escribir linea por linea todos los valores que hay en la clase
                 aux2 =aux2.guia;//incrementa las direcciones
            }       
         
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
           try {
           // Nuevamente aprovechamos el finally para
           // asegurarnos que se cierra el fichero.
           if (null != archivo)
              archivo.close();
           } catch (Exception e2) {
              e2.printStackTrace();
           }
        }
   
   
                   
                }
                }
 
Gracias de antemano
Saludos
58  Programación / Programación C/C++ / Re: Función de inclusión de valores a una matriz en: 21 Septiembre 2011, 03:47 am
la verdad no llevo nada hecho, nisiquiera tengo idea de como hacerlo xD
59  Programación / Programación C/C++ / Función de inclusión de valores a una matriz en: 21 Septiembre 2011, 02:35 am
Hola foreros, justo ahora estoy tratando de hacer una función para añadir  valores a un arreglo bidimensional, el problema es que mis conocimientos no son suficientes para desarrollar esto xD; mis conocimientos son muy limitados (me familiarizo más con lua (una extensión de c++)). Por si no he dejado claro, la función debería funcionar así:

agregar("nombre1", "nombre2", "nombre3")

deberia retornar un arreglo bidimensional con cada uno de esos valores "como primer campo" y el segundo campo sería "posición del campo en el arreglo + 10000".

a lo que me refiero es a esto:
nombre1 10000
nombre2 10001
nombre3 10002

Espero puedan ayudarme,
Saludos y gracias de antemano
60  Programación / Programación C/C++ / Re: Problema al compilar en: 21 Septiembre 2011, 02:07 am
gracias :)
Páginas: 1 2 3 4 5 [6] 7
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines