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

    rieccomi....ammirate la nuova tesina

    sono sempre io...volevo chiedervi la cortesia di guardare la mia tesina se è corretta stavolta ....grazie a tutti!

    import javax.swing.*; //PER I VARI JOPTIONPANE
    import java.util.*; //PER ORDINARE L'ARRAY (sort)
    import java.io.*; //PER I FILESTREAM
    public class nuovo{

    //CREAZIONE METODO LEGGERE INPUT
    public static int recuperaInt(String messaggio)
    {
    String numero = JOptionPane.showInputDialog(messaggio);
    int conv = Integer.parseInt(numero);
    return conv;
    }

    //CREAZIONE METODO LEGGERE INPUT
    public static int calcComb(int n)
    {
    long combinazioni_l = fattoriale(n)/(fattoriale(n-2)*fattoriale(2)); //CALCOLO COMBINATORIO
    int ris = new Long(combinazioni_l).intValue(); //PER INDICE ARRAY
    return ris;
    }

    // CREAZIONE METODO PER IL CALCOLO DEL FATTORIALE
    static long fattoriale(long x){
    long f=x;
    for (long i=x; i>1; i--){
    f*=(i-1);
    }
    return f;
    }
    // CREAZIONE METODO PER SCRIVERE SUL FILE
    public static void salva(String cosa, String cosa_b){
    try{
    FileOutputStream file = new FileOutputStream("file.txt");
    PrintStream Output = new PrintStream(file);
    Output.println(cosa);
    Output.println(cosa_b);
    System.out.println("Scrittura su file eseguita correttamente");
    } catch (IOException e){
    System.out.println("Errore: "+ e);
    System.exit(1);
    }
    }
    public static void main(String[] args) {
    int d, n;
    // CREO CICLO PER VERIFICARE CHE I NUMERI IMMESSI SIANO ENTRAMBI MAGGIORI DI 0 E N<20
    do{
    n=recuperaInt("Inserisci il numero di punti (massimo 20):");
    d=recuperaInt("Inserisci il numero della dimensione:");
    }while (n<0 || d<0 || n>20);
    int combinazioni = calcComb(n);
    double [][] punti_b = new double[n][d]; // CREO L'ARRAY MULTIDIMENSIONALE CONTENTE I PUNTI
    // RIEMPIO L'ARRAY DEI PUNTI
    for (int i=0; i<n; i++){
    for (int j=0; j<d; j++){
    punti_b[i][j]=Math.pow(Math.random(), d); // PUNTI NELL'INTERVALLO [O,1)^d
    }
    }
    double [] sottrazione = new double[combinazioni]; //CREO L'ARRAY PER SALVARE LA DISTANZA
    int puntatore_b = 0; // CREO VARIABILE PER INCREMENTO INDICI ARRAY SOTTRAZIONE
    double valore=0; //VAR PER LA SOMMATORIA DELLA DIFFERENZA DELLE COORDINATE

    //CALCOLO E SALVO LA DIFFERENZA DI TUTTI I PUNTI
    for (int i=0; i<n-1; i++){ //N-1 DATO CHE NON DEVO SOTTRARRE L'ULTIMO ELEMENTO
    for (int x=i+1; x<n; x++){
    for (int f=0; f<d; f++){//PER FARE LA DIFFERENZA DI OGNI COORDINATA
    valore += Math.pow(Math.abs(punti_b[i][f]-punti_b[x][f]), 2); //DIFFERENZA COORDINATE
    }
    double diff = Math.sqrt(valore);
    valore=0; //PER AZZERRARE LA SOMMATORIA PRECEDENTE
    sottrazione[puntatore_b]=diff; //SALVO NELL'ARRAY LA DIFFERENZA
    puntatore_b++;
    }
    }

    Arrays.sort(sottrazione); //ORDINO L'ARRAY IN MANIERA CRESCENTE
    System.out.println("La distanza massima tra i punti random scelti a caso è: " +sottrazione[sottrazione.length-1]);
    System.out.println("La distanza minima tra i punti random scelti a caso è: " +sottrazione[0]);
    String massimo, minimo;
    massimo = "La distanza massima tra i punti random scelti a caso è: " +String.valueOf(sottrazione[sottrazione.length-1]);
    minimo = "La distanza minima tra i punti random scelti a caso è: "+ String.valueOf(sottrazione[0]);
    salva(massimo, minimo);
    System.exit(0);
    }
    }
    "....il numero sette è un numero magico,si avvicina all'equilibrio di un quadrato e al vertice di un triangolo"

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    1. Non avevi già aperto un thread sulla tua tesina? :master:
    2. Usa il tag CODE
    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
    Originariamente inviato da Alex'87
    1. Non avevi già aperto un thread sulla tua tesina? :master:
    2. Usa il tag CODE
    3. Non aprire una discussione per ogni aggiornamento della tesina... postala (usando i tag [CODE] e [/CODE]) nell'altra discussione.
    4. Anche il titolo non era affatto conforme...

    Chiudo.


    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

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.