PDA

Visualizza la versione completa : Ancora matrici


turtle87
30-12-2008, 17:42
come si risolve il seguente problema?

29. Dato un array bidimensionale di reali effetture la sommatoria degli elementi appartenenti alla diagonale principale e delle diagonali parallele a questa.

Datemi una mano, proprio non ci riesco.

Stoicenko
30-12-2008, 17:49
:nonono:

Qui non si fanno compiti..

Leggiti il regolamento prima di postare.. Hai infranto 2 regole in un solo post.. male male.. :dh:

JuanJuan
30-12-2008, 17:57
Se la matrice quadrata
For I:=1 to N do
For J:=1 to N do
If I=J then somma:=somma+matrice[I,J]
Per le alter diagonali devi solo spostare gli indici

chiedo scusa la regola mi sfuggita, ho penato si trattasse di un normale algoritmo

turtle87
30-12-2008, 19:45
Raga', scusatemi, ovviamente da tempo che non ci vengo qui, non mi ricordavo.

Se infrango ancora regole, fatemelo presente. Per come sto adesso, ho letto il regolamento senza capirci niente.

Niente, ho provato a fare il problema, ma mi sono bloccato allorch dovessi implementare la serie di somme delle "diagonali parallele". Ho messo direttamente l'esercizio perch pensavo che fosse l modo pi semplice


Per le alter diagonali devi solo spostare gli indici

Come? (se non potete, non rispondete)

oregon
30-12-2008, 20:01
Devi sempre indicare il linguaggio, anche se per te e' scontato ...

Prova a mostrare un tuo abbozzo di codice e se ne parla ...

turtle87
30-12-2008, 20:31
Dunque, non so se sia utile postare il codice.
In effetti, non l'ho nemmeno commentato.

Cerco di descrivere a parole.
Diciamo che ho fatto in questo modo.

Ho fatto una subroutine generica per fare una somma, e poi ho innestato un doppio ciclo do, righe e colonne della matrice, e una condizione "IF" per effettuare la somma dei numeri della matrice aventi indici uguali.

Fino a l, come dicevo, l'ho fatto.
L'idea di creare una generica subroutine per la somma, mi venuta da tentativi precedenti, talmente confusi che nemmeno li ricordo.

Ho provato, nel ciclo do che ho descritto precedentemente, a inserirne un altro, che andasse dalla seconda riga in poi: come possibile intuire, questo non mi ha portato da nessuna parte.

Cos ho lasciato perdere, almeno per il momento, e ho pensato che fosse meglio rivolgermi ad altri. Il problema credo sia relativo solo a come spostare gli indici e inserire tale spostamento in un ciclo (cosa che penso sia necessaria).

P.S.- Ho fatto un altro esercizio- del quale poi parler in un'altra discussione, magari, ma non per problemi di algoritmi- in cui mi veniva chiesto di fare il prodotto di matrici.

Io ero arrivato a fare ben sei cicli, mentre trovando poi l'algoritmo di base sul libro, ho visto che ne erano necessari solo tre.
Per farvi capire come per quanto mi sforzi, non riesco ancora bene a ragionare sui cicli, che vedo ancora come una cosa un po' anti-intuitiva. Non mi sono ancora ben sciolto (e non so se mai potr riuscirci :bh: :bh: )

oregon
30-12-2008, 20:36
Il concetto di ciclo e' una delle cose piu' intuitive che esistono ...

Per il resto, scusa ma procedere cosi' non porta da nessuna parte ...

Quando "descrivi" il codice, la descrizione puo' essere corretta ma la scrittura del codice corrispondente completamente sbagliata ... quindi la visione del codice che poi verra' eseguito necessaria per darti una mano.

Ultimo consiglio ... non fare mille domande e non andare in mille direzioni. Fai una sola domanda e quando ottieni una risposta che comprendi bene, passa alla seconda ...

turtle87
30-12-2008, 20:42
Quindi che dovrei fare adesso?

Ps- non mi fa cambiare il titolo della discussione (volevo metterci [FORTRAN]). Penso che debba provvedere l'admin.

oregon
30-12-2008, 20:47
Originariamente inviato da turtle87
Quindi che dovrei fare adesso?

Forse non sono stato chiaro ...

Se programmi in FORTRAN e' necessario che mostri il codice che scrivi e provi in relazione ad uno specifico problema ...

Dai un'occhiata anche al regolamento ...

turtle87
31-12-2008, 01:12
s, anche se in questo caso io non so proprio da dove cominciare (per quella parte di codice che dovrebbe prevedere il calcolo delle "diagonali parallele").

Chiedo (ovviamente senza fare alcuna polemica): il regolamento di questo forum in questi casi dice sostanzialmente che non bisogna proprio postare?

Se s, mi scuso.

Oppure prevede anche questi casi, in cui uno pensa, pensa, anche se su carta (sull'ambiente di lavoro, in questo caso) non riesce proprio a mettere niente? Io mi sono fermato a quando diceva di calcolare la sommatoria degli elementi della diagonale principale, poi non sono potuto pi andare oltre.

In questo caso postare quanto fatto (almeno in questo momento), inutile, a mio avviso. Non so se mi sono spiegato... :ciauz:

Loading