Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con programa en Java

Estas en el tema de Problema con programa en Java en el foro de Java en Foros del Web. Antes de nada dar un saludo a todos los miembros del foro ya que soy nuevo por aquí Como tampoco quiero irme demasiado por las ...
  #1 (permalink)  
Antiguo 27/08/2006, 11:17
 
Fecha de Ingreso: agosto-2006
Mensajes: 2
Antigüedad: 17 años, 8 meses
Puntos: 0
Pregunta Problema con programa en Java

Antes de nada dar un saludo a todos los miembros del foro ya que soy nuevo por aquí

Como tampoco quiero irme demasiado por las ramas, intentaré ser lo más conciso posible. La cuestión es que, como puede apreciarse en mi nick, soy nuevo en Java y, aunque tengo cierta experiencia en C++, voy a necesitar de la ayuda de personas con un nivel superior (como vosotros ) para solucionar un problemilla que me urge en estos momentos.

La cosa es que tengo que realizar un programa que tengo incompleto y con mi nivel me veo incapaz de realizarlo, principalmente porque no dispongo del suficiente para formarme por mí mismo, ya que tengo un examen de Java a principios de septiembre y el poder terminarlo lo antes posible me facilitaría en gran medida el tener una buena referencia para aprender a utilizar los conceptos y demás cosas que he ido aprendiendo hasta el momento.

Así que, sin enrrollarme más, paso a exponeros el problema. Dice así:

1. Supongamos una máquina que dispone de un conjunto de N pulsadores numerados de 0 a N-1, cada uno de los cuales puede estar activo o no, en un instante de tiempo. Necesitamos programar una clase en JAVA (que llamaremos ArrayPulsadores), que permita almacenar la información de cuáles de esos pulsadores están o no activos en un instante dado. En el constructor de la clase se elegirá el número de pulsadores que tenemos. Si no se indicara número (constructor sin argumentos) se creará un ArrayPulsadores con 8 pulsadores. La clase necesitará los siguientes métodos:
a. activarPulsador: que recibirá un número de pulsador y hará que figure como activo.
b. desactivarPulsador: que recibirá un número de pulsador y hará que figure como NO activo.
c. activado: que recibirá un número de pulsador y devolverá si este está activo o no.
d. numActivos: que devolverá el número de pulsadores que están activados.

----

La parte del código que dispongo es el siguiente:

class Maquina {
private boolean pulsadores[] = new boolean[ N ]; // En el código final N debe ser una constante numérica


// 1. ACTIVAR PULSADOR
public void activar(int pos) {
// PONER A true LA POSICION CORRESPONDIENTE DEL ARRAY
pulsadores[pos] = true;
}


// 2. DESACTIVAR PULSADOR
public void desactivar(int pos) {
// PONER A false LA POSICION CORRESPONDIENTE DEL ARRAY
pulsadores[pos] = false;
}


// 3. ACTIVADO
public boolean activado(int pos) {
// DEVOLVER EL CONTENIDO DE LA POSICION CORRESPONDIENTE DEL ARRAY
return pulsadores[pos];
}


// 4. NUMERO DE PULSADORES ACTIVADOS
public int numActivos() {
// CONTAR LAS POSICIONES QUE CONTIENEN true
int contActivos = 0;
int i;
for (i=0; i < pulsadores.length; i++) {
if (pulsadores[i]) {
contActivos = contActivos + 1;
}
}
// DEVOLVER LA CUENTA
return contActivos;
}
}

----
Por lo que me faltaría programar la clase ArrayPulsadores, lo cual he intentado, pero me sale un 'churro' inservible que pa qué

Bueno, espero no haberme enrrollado demasiado y que podáis echarme un cable


Muchísimas gracias por adelantado y saludos!
  #2 (permalink)  
Antiguo 28/08/2006, 00:23
 
Fecha de Ingreso: agosto-2006
Mensajes: 13
Antigüedad: 17 años, 8 meses
Puntos: 0
Espero ayudarte y no confundirte

Espero que te sirva lo que escribire a continuacion:

Como JAVA es orienta a Objetos lo mejor es que lo realices de esta forma
Crearte el objeto pulzador que sera algo asi,
class Pulzador{
boolean activo=false;
// mas parametros si deseas

Pulzador(boolean act){
activo=act;
}

Pulzador(){
activo=false;// por defecto false, o como quieras
}

public void isActivo(){
return activo;
}

public void setActivo(boolean act){
activo=act;
}
//y alguno mas dependiendo de la necesidad
}//fin class `pulzador

/*
luego implementas la clase que la manejara este objeto, que segun entiendo es tu clase maquina.
*/

class Maquina{
ArrayList<Pulzador> pulzadores; //usanso collections
// o puedes usar este Pulzador[] pulzadores;

Maquina(int n){
pulzadores=new ArrayList<Pulzadores>()// usando collection no necesitas un tamaño definido
//ya que es un arreglo dinamico que crecera segun la necesidad
//pulzadores = new Pulzador[n];

Pulzador pul=null;
for(int i=0; i<n; i++){
pul=new Pulzador();
pulzadores.add(pul);
}
}

//Metodo que retorna cuantos estas activos
public int getPulzadoresActivos(){
int cont=0;
for(int i=0; i<pulzadores.size(); i++)
if(pulzador.get(i).isActivo()){
cont += 1;
}
return cont;
}
// algunas opciones mas

}//fin clase

Luego deberas realizar la clase que manejara la clase Maquina la cual tendra un menu donde deberias poder modificar los pulsadores de la maquina.

bueno lo dejo aqui, con el temor de no haber entendido el problema.

si boy por un buen camino con la respuesta a tu pregunta asmelo saber para poder continuar.
  #3 (permalink)  
Antiguo 31/08/2006, 08:15
 
Fecha de Ingreso: agosto-2006
Mensajes: 2
Antigüedad: 17 años, 8 meses
Puntos: 0
hola, qué tal?

perdona que haya tardado tanto en contestar pero he estado teniendo problemas con proveedor de inet y por eso no he podido echarle un vistazo antes....

en cualquier caso, muchas gracias por tu respuesta y voy a ver si con ella consigo aclararme un poco con todo esto.

si veo que tengo alguna duda en cuanto me ponga a analizarla más tranquilamente ya te lo comento por aquí


saludos y gracias de nuevo!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:59.