Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2015
    Messaggi
    11

    Java: Calcolare il prodotto della diagonale principale e secondaria della matrice

    Buonasera. Dovrei scrivere un programma (l'ambiente usato è Eclipse) che data un matrice quadrata stampi la matrice stessa, la diagonale principale, quella secondaria e ne calcoli i rispettivi prodotti. Sono bloccato sul prodotto. Ecco il codice che ho compilato.
    codice:
    MainWindow finestra = new MainWindow();
        InputBox inDati = new InputBox(finestra);
        OutputBox uDati = new OutputBox(finestra);
        finestra.setVisible(true);
        //numero righe = numero colonne
        int n_righe = inDati.getInteger("Quanti righe e colonne ha la matrice quadrata?");
        int n_colonne = n_righe;
        int dim = n_righe;
        int prodotto_diagonale_principale = 0;
        int prodotto_diagonale_secondaria = 0;
    
    
            
        
        //dichiarato matrice
        int [][] m = new int [n_righe][n_colonne];
        //riempio la matrice
        for (int i=0; i<n_righe; i++){
        for (int j=0; j<n_colonne; j++)
        m[i][j]=inDati.getInteger("Inserisci il valore in posizione ["+i+"] ["+j+"]");
        }
    
    
        for (int i=0; i<n_righe; i++){
        for (int j=0; j<n_colonne; j++) 
        uDati.print(m[i][j]+ " ");
        uDati.printLine("");
        }
        uDati.setVisible(true);
        
        
        uDati.print("Diagonale principale: "); 
        for (int i = 0; i < n_righe; i++) { 
        for (int j = 0; j < n_righe; j++) { 
        if (i == j) { 
        uDati.print(m[i][j] + " ");
        } 
        } 
        } 
        uDati.printLine("");
        
        uDati.print("Diagonale secondaria: "); 
        for (int i = 0; i < n_righe; i++) { 
        for (int j = 0; j < n_righe; j++) { 
        if ((i + j) == (dim -1)) { 
        uDati.print(m[i][j] + " ");
        
        } 
        } 
        } 
        uDati.printLine("");
        
        uDati.print("Il prodotto dei valori della diagonale principale vale: ");
        for (int i=0; i<n_righe; i++){
        for (int j=0; j<n_righe; j++){
        if(i == j){
        prodotto_diagonale_principale *= m [n_righe][n_colonne];
        uDati.print(prodotto_diagonale_principale + " ");
        }
        }
        }
        uDati.printLine("");
        
        uDati.print("Il prodotto dei valori della diagonale secondaria vale:");
        for (int i=0; i<n_righe; i++){
        for (int j=0; j<n_righe; j++){
        if ((i + j) == (dim -1)) { 
        prodotto_diagonale_secondaria *= m [n_righe][n_colonne];
        uDati.print(prodotto_diagonale_secondaria + " ");
        }
        }
        }
    Ringrazio tutti per il possibile aiuto. Non capisco proprio cosa ci sia che non funziona!
    Ultima modifica di MItaly; 25-03-2015 a 02:02 Motivo: Tag CODE, sezione errata

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Premesso che non hai detto qual è il problema che riscontri e premesso che non ho letto tutto il codice, ho visto subito un errore.
    Le due variabili "prodotto_diagonale_principale" e "prodotto_diagonale_secondaria" devono essere inizializzate a 1. Se le inizializzi a 0, qualsiasi prodotto darà sempre 0 come risultato.


    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2015
    Messaggi
    11
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Premesso che non hai detto qual è il problema che riscontri e premesso che non ho letto tutto il codice, ho visto subito un errore.
    Le due variabili "prodotto_diagonale_principale" e "prodotto_diagonale_secondaria" devono essere inizializzate a 1. Se le inizializzi a 0, qualsiasi prodotto darà sempre 0 come risultato.


    Ciao.

    Grazie mille! Il mio problema era prorpio quello, quando facevo partire il programma non mi dava il risultato del prodotto calcolato!

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.