• Jueves 2 de Mayo de 2024, 02:11

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Zuzunaga

Páginas: [1]
1
Java / Re: la mochila
« en: Viernes 22 de Mayo de 2009, 06:00 »
package mochila;
import java.util.ArrayList;
 
/**
 * Guarda una lista con los distintos objetos disponible para meter en la mochila y otra lista con
 * los objetos que voy introduciendo en la mochila.
 */
 
public class Mochila {
  ArrayList objetos;
  ArrayList mochila;
  float pesoM;
 
  /**
   * Crea un objeto mochila con un peso maximo que le pasamos como parametro.
   * Este valor sera el valor maximo de peso que se podra alcanzar cuando metemos
   * objetos en la mochila
   * @param peso Peso maximo de la mochila.
   */
  public Mochila(float peso) {
    objetos = new ArrayList();
    mochila = new ArrayList();
    pesoM = peso;
  }
 
  /**
   * Mete en la mochila el objeto que esta en la posicion n de la lista de objetos
   * disponibles. Ademas lo marca como usado con el atributo usado del objeto.
   * @param n Posicion del objeto en la lista de objetos.
   * @return Si pudo meterlo o no.
   */
  public boolean meterMochila(int n){
    Objeto o = (Objeto)objetos.get(n);
    if (o==null) return false;
    o.setUsado(true);
    mochila.add(o);
    return true;
  }
 
  /**
   * Metodo para saber el valor total de los objetos que llevamos introducidos en
   * la mochila.
   * @return Valor actual de la mochila.
   */
  public float getValor(){
    int n=mochila.size();
    float total=0;
    for (int j=0;j<n;j++)
      total+=((Objeto)mochila.get(j)).getValor();
    return total;
  }
 
  /**
   * Extrae el ultimo elemento de la mochila. Se utiliza para cuando nos pasamos
   * de peso eliminar el ultimo introducido.
   * @return Si hay elemento para sacar o no.
   */
  public boolean sacarMochila(){
    Objeto o= (Objeto)mochila.remove(mochila.size()-1);
    if (o==null) return false;
    o.setUsado(false);
    return true;
  }
 
  /**
   * Metodo para saber cual es el peso total de los objetos que llevamos introducidos en la
   * mochila.
   * @return El peso actual de la mochila.
   */
  public float cuantoPesa(){
    int n=mochila.size();
    float total=0;
    for (int j = 0; j<n;j++)
      total+=((Objeto)mochila.get(j)).getPeso();
    return total;
  }
 
 
  /**
 * Copia nuestra mochila en otra, para poder guardar una posible solucion al problema.
 * @param l Lista donde voy a copiar la mochila.
 */
public void clonarMochila(ArrayList m){
  m.clear();
  for (int j=0;j<mochila.size();j++){
    m.add(mochila.get(j));
  }
}
 
/**
 * Metodo que se usa para despues de calcular la lista optima asignarsela a nuestra mochila
 * @param l Lista optima de objetos.
 */
public void setMochila(ArrayList m){
  mochila=m;
}
 
/**
 * Añade un objeto a la lista de objetos disponibles para meter en la mochila.
 * @param nombre Nombre del objeto.
 * @param peso Peso del objeto.
 * @param valor Valor del objeto.
 */
public void añadirObjeto(String nombre,float peso, float valor){
  Objeto nuevo = new Objeto(nombre,peso,valor);
  objetos.add(nuevo);
}
 
 
  /**
   * Metodo para realizar todas las posibles combinaciones que podemos hacer con
   * los objetos y quedarnos con el de mayor valor. Se usa backtracking todas las
   * soluciones para hacer los calculos.
   * @param sol Lista con la posible solucion al problema.
   * @param valor Valor de la lista sol.
   */
  public void calcularBacktracking(ArrayList m, float valor) {
    int j = 0;
    do {
      Objeto o = (Objeto) objetos.get(j);
      if (!o.getUsado()) {
        meterMochila(j);
 
        if (valor <= getValor() && cuantoPesa()<= pesoM) {
          clonarMochila(m);
          valor = getValor();
        }
        calcularBacktracking(m, valor);
        sacarMochila();
      }
      j++;
    }
    while (j < objetos.size());
  }
 
  /**
   * Crea una cadena con los objetos introducidos en la mochila.
   * @return String con los objetos de la mochila.
   */
  public String toString(){
    String cadena="";
    Objeto o;
    if (mochila.isEmpty()) return "Mochila Vacia.";
    for (int j = 0;j<mochila.size();j++){
      o = (Objeto)mochila.get(j);
      cadena = cadena + " " + o.toString();
    }
    cadena = cadena + "nLibre: " + (pesoM-cuantoPesa());
    return cadena;
  }
 
  /**
    * Imprime por pantalla los nombres y atributos de los objetos introducidos en la mochila
   */
 
 
  public void toString2(){
 
   Objeto o;
    for (int j = 0;j<objetos.size();j++){
     o = (Objeto)objetos.get(j);
     System.out.println(" NOMBRE: " + o.getNombre() + "   PESO: " + o.getPeso() + "   VALOR: " + o.getValor());
    }
 
 
  }
 
}

A continuacion mostramos el codigo de la clase Main:

 
package mochila;
import java.util.ArrayList;
import java.io.*;
 
/**
 * Clase Main de la aplicacion que crea un objeto mochila y llama a los metodos
 * para realizar los calculos.
 */
 
public class Main {
  BufferedReader entrada=new BufferedReader(new InputStreamReader(System.in));
 
  /**
   * Constructor de la clase Main. Aqui se realizan todos las llamadas a los
   * metodos de la mochila pra realizar los calculos.
   */
  public Main() {
  Mochila m=null;
 
 
        m = new Mochila(35);
        m.añadirObjeto("Chubasquero",30,12);
        m.añadirObjeto("Movil",20,20);
        m.añadirObjeto("Radio",12,20);
        m.añadirObjeto("Linterna",10,90);
        m.añadirObjeto("Navegador",20,30);
 
System.out.println("nLos objetos y sus valores introducidos en este ejemplo son:n");
m.toString2();
 
    ArrayList solucion = new ArrayList();
    m.calcularBacktracking(solucion,Integer.MIN_VALUE);
    m.setMochila(solucion);
    System.out.println("nSolucion:n" + m);
 
  }
 
  public static void main(String[] args) {
    Main main1 = new Main();
  }

2
Power Builder / Re: Imagen En Mdi
« en: Viernes 7 de Septiembre de 2007, 23:23 »
Yo mediante programacion pude poner imagenes pero solo BMP.
ahora si deseas JPG lo que yo hago es crear una ventana tipo child sin barra de titulo y dentro de ella colocar un control picture y alli cargar la imagen.

En el evento open del MDI cargas la ventana child.

Mas informacion:

davidzuzunaga@hotmail.com

CHIMBOTE - PERU

3
Power Builder / Re: Capturar Carpetas, No Archivos
« en: Sábado 9 de Diciembre de 2006, 22:42 »
Mandame un correo a DavidZuzunaga@hotmail.com y te envio un ejemplo que te abre la ventanita de dialogo para elegir una carpeta ,o unidad

4
C/C++ / Ejecutable Que Se Copie Asi Mismo
« en: Sábado 2 de Diciembre de 2006, 14:58 »
¿Como hago para hacer que un ejecutable se copie asi mismo sin importar que le cambies el nombre,porq para para el manejo de archivos en C ,requiere un nombre fijo!!!RAYOS!!! y es un problrma cuando le cambias el nombre al ejecutable.? :angry:

5
Power Builder / Re: Crear Skin Para Power Builder
« en: Sábado 2 de Diciembre de 2006, 14:43 »
Me pregunto si habra alguna forma de crear skins para usarlos con ese control....o es q solo debemos conformarmos con esos skins... B)

6
Power Builder / Re: TUTORIAL POWER BUILDER
« en: Viernes 24 de Noviembre de 2006, 23:22 »
POR FAVOR ENVIAMELO A MI CORREO

DavidZuzunaga@hotmail.com

GRACIAS.

7
Power Builder / Re: Generar Instalador
« en: Viernes 24 de Noviembre de 2006, 23:03 »
POR FAVOR CUAL ES ESPECIFICAMENTE LA PAGINA DONDE SE DESCARGA EL PROGRAMA.

8
Power Builder / Generar Numeros Aleatorios De Un Valor Min A Un Ma
« en: Viernes 24 de Noviembre de 2006, 22:51 »
Hola ,alguien sabe como generar numeros aleatorios de un valor minimo a un valor maximo.

9
Power Builder / Re: ¿ Como puedo conectar directamente a una BD de SQL Anywa
« en: Viernes 24 de Noviembre de 2006, 22:46 »
POR FAVOR DIME DONDE PUEDO DESCARGAR ESE PROGRAMA
XQ SOLO ENCONTRE UN TRIAL Y NO ME SIRVE PARA NADA.


DavidZuzunaga@hotmail.com

10
Power Builder / Re: Manual
« en: Viernes 24 de Noviembre de 2006, 22:36 »
ENVIAME UN CORREO Y TE MANDO UNO OK.
DavidZuzunaga@hotmail.com

11
Power Builder / Re: Menu
« en: Viernes 24 de Noviembre de 2006, 22:33 »
ANDA AL MENU ARCHIVO
NEW
PESTAÑA PB OBJECT
ELIJE MENU
ANTICLIC EN UNITLED
AGREGAS UN ITEM O SUBITEMS
GRABAS
Y EN LAS PROPIEDADES DE TU VENTANA LE ASIGNAS EN LA PROPIEDAD MENU
EL QUE CREASTES (POR LO GENERAL UNA VENTANA TIPO MAIN)....


DavidZuzunaga@hotmail.com

12
Visual Basic 6.0 e inferiores / Re: Imprimir Los Datos De Un Form En Word
« en: Viernes 24 de Noviembre de 2006, 22:13 »
MANDAME UN CORREO Y TE MANDO UN EJEMPLO QUE TENGO OK.
Y TAMBIEN EN EXCEL SI QUIERES.

DavidZuzunaga@hotmail.com

13
Power Builder / Re: Imagenes En El Menu
« en: Miércoles 22 de Noviembre de 2006, 00:21 »
EN POWER 10.5 YA VIENE LO QUE TU QUIERES CON TUS MENUS OSEA XP Y TODO ESO,PERO SINO PUEDES USAR UNA DLL.

ENTRA AQUI

http://www.onkenhout.speedlinq.nl/coolmenu.html

DavidZuzunaga@hotmail.com
 :kicking:

14
Power Builder / Re: Como Utilizar Masflexgrid
« en: Martes 21 de Noviembre de 2006, 23:58 »
PASO 1: CLIC EN RL BOTON OLE DE LA CAJA DE CONTROLES DE PB(DONDE ESTAN LOS CONTROLES ) Y DE AHI CLIC  EN LA PESTAÑA INSERTAR CONTROL
Y DE AHI BUSCAS EN CONTROL MSHFELXGRID DE MICROSOFT.
LO INSERTAS EN TU  VENTANA .

PARA EL CODIGO UN EJEMPLO :

OLE_1.OBJECT.TEXTMATRIX[FIL,COL]=12

TE DAS CUENTA ?? TIENES QUE PONER OBJECT ANTES DE LA PROPIEDAD DEL MSFLEXGRID

DavidZuzunaga@hotmail.com :kicking:

Páginas: [1]