POLLON ha scritto:
Non riesco a far funzionare questo programma, molto probabilmente sbaglio ad invocare il metodo, qualche consiglio?
Questo è il codice che ho scritto:
import java.util.Scanner;
public class esSecchi{
public static float quantiSecchi(float a, float b, float risultato){
float a = float capienzaVasca;
float b = float capienzaSecchio;
do {
risultato = risultato + a;
} while (risultato < b);
return risultato;}
public static void main(String arg[]){
Scanner tastiera = new Scanner(System.in);
System.out.println("Digitare capienza vasca:");
float capienzaVasca = tastiera.nextFloat();
System.out.println("Digitare capienza secchio:");
float capienzaSecchio = tastiera.nextFloat();
float risultato = 0;
System.out.println("Numero di secchi: " + esSecchi.quantiSecchi(float capienzaVasca, float capienzaSecchio, float risultato));}
}
Dovrei scrivere un programma che riceva per tre volte (usando un ciclo while) una coppia di numeri float, memorizzati in due variabili denominate capienzaVasca e capienzaSecchio. Ad ogni iterazione, il programma dovrà invocare il metodo quantiSecchi(), descritto sotto, passando come parametro la coppia corrente di numeri float, visualizzando in un opportuno messaggio il valore da esso restituito.
Metodo quantiSecchi():
riceve come parametri due numeri float, denominati a e b;
simula, con un ciclo o con un'opportuna espressione, il ripetuto versare a litri di liquido in una vasca di capacità b litri;
restituisce al chiamante l'intero corrispondente a quanti versamenti occorrono per riempire la vasca; ad esempio, se a == 2.4 e b==12, il valore restituito da quantiSecchi() sarà 5.
Grazie mille anticipatamente.
POLLON devi studiare, però, prima di fare gli esercizi. Questo è l'ultimo aiuto da parte mia, perché sennò il tutto è controproducente per te
Le variabili si dichiarano <tipo> <nome variabile>;
Dopo che le hai dichiarate non devi specificare di nuovo il tipo
float capienzaVasca;
float capienzaSecchio;
se vuoi inizializzarle nella dichiarazione: <tipo> <nome variabile> = [valore iniziale];
float capienzaVasca = a;
float capienzaSecchio = b;
Tutto ciò comunque non ti serve perché le variabili nel prototipo del metodo sono direttamente utilizzabili
public static float quantiSecchi(float a, float b, float risultato){
do {
risultato = risultato + a;
} while (risultato < b);
return risultato;
}
Anche se non obbligatoria, l'indentazione è importante, altrimenti non capisci come è impostato il codice.
Il tipo non va dichiarato nemmeno quando chiami il metodo. Questa una possibile soluzione finale (senza l'iterazione che dovrai fare tu)
public class esSecchi{
private static int quantiSecchi(float a, float b){
int secchi = 0;
float litri = 0;
while (litri < a) {
litri += b;
secchi += 1;
}
return secchi;
}
public static void main(String arg[]){
Scanner tastiera = new Scanner(System.in);
System.out.println("Digitare capienza vasca:");
float capienzaVasca = tastiera.nextFloat();
System.out.println("Digitare capienza secchio:");
float capienzaSecchio = tastiera.nextFloat();
System.out.println("Numero di secchi: " + quantiSecchi(capienzaVasca, capienzaSecchio));
}
}