Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Dieci_Numeri

    Costruire una classe che, generati 10 numeri casuali interi
    compresi tra 0 e 49, consenta di stampare il numero più grande,
    il numero più piccolo e la media.

    codice:
    class D_Numeri
    {
    	public static void main (String []args)
    	{
    	//Dichiarazione ed inizializzazione di costanti, variabili
    	int n1 = (int)(49*Math.random());
    	int n2 = (int)(49*Math.random());
    	int n3 = (int)(49*Math.random());
    	int n4 = (int)(49*Math.random());
    	int n5 = (int)(49*Math.random());
    	int n6 = (int)(49*Math.random());
    	int n7 = (int)(49*Math.random());
    	int n8 = (int)(49*Math.random());
    	int n9 = (int)(49*Math.random());
    	int n10 = (int)(49*Math.random());
    	boolean nPiùPiccolo;
    	boolean nPiùGrande;
    	double media = (n1+n2+n3+n4+n5+n6+n7+n8+n9+n10)/10;
    	
    	//ecco i 10 numeri generati
    	System.out.println("I numeri inseriti sono:" +n1+ "," +n2+ "," +n3+ "," +n4+ ","+n5+"," +n6+ ","+n7+ ","+n8+","+n9+","+n10);
    	//ecco la media dei 10 numeri
    	System.out.println("La media dei seguenti numeri e' :" +media );
    	
    	}
    }
    Come avete notato mi manca il più grande e il più piccolo numero. Non so come determinarli se non usando il metodo "if", ma mi richiede troppo tempo e troppo spazio.Non so se il prof mi lo accetterà...? E poi per usare il metodo "do/while" in questo caso...come si fa?

    p.s. Abbiamo fatto solamente due lezioni su questo argomento, non so semplicemente come fare...c'è qualcuno che mi potrebbe aiutare?
    Grazie!

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Dieci_Numeri

    Originariamente inviato da JanQuarius
    Come avete notato mi manca il più grande e il più piccolo numero. Non so come determinarli se non usando il metodo "if", ma mi richiede troppo tempo e troppo spazio.Non so se il prof mi lo accetterà...? E poi per usare il metodo "do/while" in questo caso...come si fa?
    1. Usa un array (se il professore ve lo permette)
    2. Usa un ciclo for. Ad ogni iterazione genererai un nuovo numero che confronterai col minimo e col massimo che hai trovato fino a quel punto: se il nuovo numero è minore del minimo allora hai trovato il nuovo minimo, se è maggiore del massimo hai trovato il nuovo massimo ecc.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    codice:
    (int)(49*Math.random())
    Questa espressione restituisce un numero intero compreso fra 0 e 48, non 49.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Dovresti fare una cosa del genere:

    codice:
    public class Numeri {
    
    	public static void main(String[] args) {
    		int[] numeri = new int[10];
    		for (int i = 0; i < numeri.length; i++) {
    			numeri[i] = (int) (50 * Math.random());
    		}
    		System.out.println("Min: " + getMin(numeri));
    		System.out.println("Max: " + getMax(numeri));
    		System.out.println("Average: " + getAverage(numeri));
    	}
    	
    	private static int getMin(int[] numeri) {
    		int min = numeri[0];
    		for (int i = 0; i < numeri.length; i++) {
    			if (numeri[i] < min) {
    				min = numeri[i];
    			}
    		}
    		return min;
    	}
    	
    	private static int getMax(int[] numeri) {
    		int max = numeri[0];
    		for (int i = 0; i < numeri.length; i++) {
    			if (numeri[i] > max) {
    				max = numeri[i];
    			}
    		}
    		return max;
    	}
    
    	private static double getAverage(int[] numeri) {
    		int sum = 0;
    		for (int i = 0; i < numeri.length; i++) {
    			sum += numeri[i];
    		}
    		return (double) sum / numeri.length;
    	}
    
    }
    Ovviamente i metodi getMin(), getMax() e getAverage() potrebbero essere sostituiti da un unico metodo che con un unico ciclo for calcola tutti e tre i valori evitando di dover scorrere l'array 3 volte.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Originariamente inviato da JanQuarius
    Dieci_Numeri
    In futuro, invito a usare titoli più significativi, come da Regolamento.

    Il titolo di questa discussione l'ho corretto io per fornire un esempio.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Grazie satifal!
    ok...alka!

  7. #7
    Se hai bisogno di chiarimenti sul codice chiedi pure.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.