Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    25

    costruzione matrice diagonale

    ciao a tutti.
    dovrei costruire una matrice triangolare come segue: parto da un array di interi!!!

    int storeIDList[21]; //celle piene
    int dimensione = lunghezzarray + 1;
    int[][] triangolare;
    triangolare = new int[dimensione][dimensione];

    dovrei ottenere una matrice quadrata[22][22], avente 0 l'elemento [0][0], sulla prima riga e sulla prima colonna il contenuto dell'array, nella sottomatrice creata.....-1 sugli elementi della diagonale e altrove 5.

    0..................storeIDList[0].............storeIDList[1]..............storeIDList[2]...........storeIDList[3]..........storeIDList[21]
    storeIDList[0].......-1............................5.................... ..........5..............................5........ ..................5
    storeIDList[1]........5...........................-1..............................5.................. ............5..........................5
    storeIDList[2]........5............................5............ ..................-1.............................5................... .......5
    storeIDList[3]........5............................5............ ...................5............................-1..........................5
    ...
    storeIDList[21]......5...........................5............... ................5..............................5.. ........................-1
    codice:
    int b, c;
            int dimensione = lunghezzarray + 1;
            int[][] triangolare;
            triangolare = new int[dimensione][dimensione];
    
            //dovrebbe definire i nomi delle righe e delle colonne della matrice, ovvero gli id-item in alto e sinistra
            //ho scritto la riga di label
    
            triangolare[0][0] = 0;
            for (b = 1; b <= lunghezzarray; b++) {
                for (c = 0; c < lunghezzarray; c++) {
                    triangolare[0][b] = storeIDList[c];
    
                }
            }
            int q, w;
            for (q = 1; q <= lunghezzarray; q++) {
                for (w = 0; w < lunghezzarray; w++) {
                    triangolare[q][0] = storeIDList[w];
    
                }
            }
    
            int e, r;
            for (e = 0; e < dimensione; e++) {
                for (r = 0; r < dimensione; r++) {
                    System.out.print(triangolare[e][r] + " ");
                }
                System.out.println("");
            }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: costruzione matrice diagonale

    Originariamente inviato da nacma
    dovrei costruire una matrice triangolare
    Il termine forse non è il più appropriato .... anche perché si potrebbe equivocare.
    In Java gli array a più dimensioni sono gestiti semplicemente come "array di array". Questo rende possibile realizzare array detti "jagged", dove ci sono N righe e in ogni riga il numero fisico di elementi può realmente essere diverso dalle altre righe.

    Il tuo caso non è un array "jagged". Dal tuo codice si evince che l'array è rettangolare e anzi, quadrato vista la istanziazione.
    Quindi, a scanso di equivoci, non dire "triangolare"!

    Originariamente inviato da nacma
    dovrei ottenere una matrice quadrata[22][22], avente 0 l'elemento [0][0], sulla prima riga e sulla prima colonna il contenuto dell'array, nella sottomatrice creata.....-1 sugli elementi della diagonale e altrove 5.
    Si potrebbe fare un doppio ciclo for (e nessun altro for) e fare semplicemente dei test.

    Hai postato il tuo codice ma .... la domanda quale è? Non ti funziona?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    25
    hai ragione e mi scuso. nella migliore delle ipotesi potevo definirla matrice diagonale!!
    cmq ho risolto.....il problema era proprio nel doppio ciclo for del codice da me postato. ti ringrazio per la tempestività.ciaociao

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.