Matrice e determinati problemi.

turtle87crociato
Ci sono vari problemi di programmazione banale, nei quali mi viene chiesto di effettuare sommatorie di righe o colonne, o diagonali di matrici (array bi-dimensionali).
Ebbene, penso che il modo più "snello" per risolverlo sia utilizzare i cicli, ma proprio non ci riesco (lavoro in FORTRAN), non riesco a capire come fare. Per me l'unico modo adesso sarebbe quello di "prendere" riga per riga, colonna per colonna, e creare un ciclo per ognuna di esse. Però so già in partenza che non si fa così.

Un' altra soluzione sarebbe quella di creare un vettore (array monodimensionale, quindi) i cui elementi siano le varie sommatorie. Però non sono sicuro vada proprio bene, complicherebbe troppo le cose.

Risposte
G.D.5
Se devi sommare o moltiplicare gli elementi ordinatamente disposti in due matrici $m\times n$ non puoi fare
do i=1,n
   do j=1,m
       .....
   end do
end do

?

turtle87crociato
Io mi riferivo alla somma di elementi di una stessa riga, colonna, diagonale, etc.
E soprattutto, alla "gestione" di queste somme, al confronto.

In realtà il mio problema viene inquadrato anche in esercizi diversi, ad esempio quello in cui mi viene chiesto di calcolare quale tra le colonne di una matrice abbia il maggior numero di 0, etc.

Penso che tutti i problemi da me elencati in questa discussione si possano ricondurre ad un'unica implementazione.

Umby2
"turtle87":


.... Per me l'unico modo adesso sarebbe quello di "prendere" riga per riga, colonna per colonna, e creare un ciclo per ognuna di esse. Però so già in partenza che non si fa così.



Secondo me non esiste un modo unico (standard) per ottimizzare al massimo i calcoli da fare su tabelle. Dipende da cosa si deve fare, e trovare il modo piu' semplice per farlo.
Ad esempio, a volte io preferisco (per tabelle di dimensioni limitate) far lavorare di piu il computer, facendo un ciclo piu' lungo, per avere un programma piu' leggibile.
Per quanto riguarda il fatto di avere delle tabelle di appoggio per i relativi totali (righe e colonne), io preferisco dimensionare la tabella di una riga in piu (eventualmente anche una colonna in piu').

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.