|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Nosgoth
Messaggi: 16899
|
[Java]Esercizietto Min Max Media Somma
Il classico esercizio che da bravo niubbo non riesco a svolgere (solo 1 parte)
Codice:
import javax.swing.*;
public class MinMax {
public static void main (String[] args){
double Media;
int Min=0,Max=0, Somma=0,j;
String Lunghezza = JOptionPane.showInputDialog("Inserisci il totale dei numeri su cui vuoi operare");
int i = Integer.parseInt(Lunghezza);
int [] Vettore = new int[i];
for(j=0;j<i;j++)
{
String k = JOptionPane.showInputDialog("Inserisci il numero " + (j+1));
int Numero = Integer.parseInt(k);
Vettore[j]= Numero;
Somma = Somma+Vettore[j];
Min = Vettore[0];
if (Vettore[j]>Max)
{
Max = Vettore[j];
}
if (Vettore[j]<Min)
{
Min = Vettore[j];
}
}
Media = (double)Somma/i;
System.out.print("La somma è "+Somma+" Il minimo è: "+Min+ " Il massimo è: "+Max+ " La media è: "+Media);
}
}
Il problema è il calcolo del minimo poichè una volta che ripete il ciclo for non rimane più il risultato minimo e non so dove cavolo metterlo, per far si che non venga modificato. Ps io uso Eclipse per scrivere in java (come dice il prof) ma esistono ambienti migliori o diciamo meglio più FACILI? |
|
|
|
|
|
#2 |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16212
|
Basta inizializzare "bene" Max e Min all'esterno del ciclo for.
Se non sbaglio, il tipo Integer dovrebbe prevedere un valore massimo e uno minimo, e dei nomi per questi valori, qualcosa tipo Integer.MaxInt per il massimo; controlla la documentazione di Java.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Apr 2002
Città: Nosgoth
Messaggi: 16899
|
Quote:
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Basta fare in modo che il primo valore (quando j == 0) sia messo in ogni caso in Min/Max. In pratica è sufficiente fare una OR nei due if o mettere un altro if apposito.
Se invece la lunghezza fosse 0 (nessun valore inserito), beh, in questo caso particolare Min e Max resteranno ai loro valori iniziali (0).
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Apr 2002
Città: Nosgoth
Messaggi: 16899
|
Quote:
Purtroppo il corso è un po "così" e mi sto procurando un manuale java perchè mi piacerebbe approfondire per fatti miei. Potresti spiegarmi più chiaramente se non disturbo troppo |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Devi fare in modo che se j == 0 (primo numero), allora il numero venga assegnato in ogni caso a Min e Max.
Puoi mettere un if a sé stante prima dei due if per il maggiore/minore. Tra l'altro, l'array 'Vettore' non servirebbe nemmeno (a meno che ti serva poi per altro).
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Apr 2002
Città: Nosgoth
Messaggi: 16899
|
Quote:
dovrei farei quindi if (Vettore[j] <min !! Vettore[i] = 0) |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Ah, ok.
No. Metti un if prima dei due che hai già fatto: se è il primo numero (j == 0) allora assegni il numero a Mix e Max.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:44.





















