Classe Copo

[code]/*5) Escreva uma classe Copo. Esta classe tem o atributo capacidade que corresponde à
quantidade de líquido que pode ser colocado no copo (em mililitros). Escreva os métodos:
construtor, de acesso, modificador e o método calculaNumeroDeCopos(). O construtor
inicia o atributo capacidade com um valor fornecido por parâmetro. O método
calculaNumeroDeCopos() recebe um valor em litros (por parâmetro) e retorna a
quantidade de copos necessária para armazenar toda a água. Dado: 1 litro = 1000
mililitros.
*/

public class Copo{

  private int capacidade ;

   public Copo (int capacidade ){
  
     this.capacidade = capacidade ;
  
  
  }
   public int getCapacidade () {
     return capacidade;
  
  }
   public void setCapacidade (){
  
     this.capacidade = capacidade ;
  }


   public int  calculaNumeroDeCopos(int valorEmLitros){
     int ml = 1000;
     int total = ml * valorEmLitros;
     int quantidade = 1;
     int cont = getCapacidade ();
     total = ml* valorEmLitros;
     while ( total > cont ){
        cont = cont + getCapacidade() ;
        quantidade = quantidade + 1 ;
     
     }
  
     return quantidade;
  
  
  
  }

}

    [/code]

Opa garelaaa, estou começando em java é a melhor forma de fazer usei muitas variáveis ;s
abraaçoo

public class Copo {
	private int capacidade;
	
	public Copo(int capacidade) {
		this.setCapacidade(capacidade);
	}

	// Ok, mas mudar a capacidade de um copo depois de criado? :-P
	private void setCapacidade(int capacidade) {
		this.capacidade = capacidade;
	}

	public int getCapacidade() {
		return this.capacidade;
	}

	// EDIT: Deveras. Volume é em litros.
	public int calcularNumCopos(float volume) {
		return (int) Math.ceil(volume * 1000 / capacidade);
	}
}

uma outra sugestão…[code]import java.io.PrintStream;

public class Copo {

private double capacidade;

public Copo(double capacidade) {
	this.capacidade = capacidade;
}

// Realmente acho estranho alterar a capacidade.
public double getCapacidade() {
	return capacidade;
}

public double calculaNumeroDeCopos(double litros) {
	return ((litros * 1000) / getCapacidade());
}

public static void main(String[] args) {

	// Copo construído com capacidade de 500 ml.
	Copo copo = new Copo(500);
	PrintStream monitorExibe = System.out;

	// Valor fornecido em litros: 1 litro.
	monitorExibe.println("Quantidade de copos: "
			+ copo.calculaNumeroDeCopos(1.0));
}

}[/code]> Quantidade de copos: 2.0[]'s

Luciano

[quote=van bommel][code]
public int calculaNumeroDeCopos(int valorEmLitros){
int ml = 1000;
int total = ml * valorEmLitros;
int quantidade = 1;
int cont = getCapacidade ();
total = ml* valorEmLitros;
while ( total > cont ){
cont = cont + getCapacidade() ;
quantidade = quantidade + 1 ;

     }
     return quantidade;
  }

}
[/code][/quote]

[quote=luciano.eti]public double calculaNumeroDeCopos(double litros) { return ((litros * 1000) / getCapacidade()); } [/quote]
Não sei se você percebeu, mas acabou fazendo uma demonstração de como reduzir uma divisão a uma soma. Você daria um programador assembly. :wink:

valew pelas dicas

Van bommel,
Fica esperto com a seguinte situação: se o resultado da operação for, por exemplo: 2,3 (volume* 1000 / capacidade), nesse caso o resultado que deve ser retornado é 3(arrendodamento para um inteiro, mas não menor que o resultado).

Para tanto, deve-se usar a instrução que foi citada acima.

Math.ceil

Abraços.

:wink: