Newsgroup: it.comp.java
Titolo: aiuto algoritmo java

ciao,
cerco aituo in tempi brevi per costruire un algoritmo in java. Ho già
scritto una parte dell'algoritmo , cerco qualcuno che mi aiuti ad
aggiungere un pezzo che non riesco a sviluppare.
Pezzo che sono riuscito a scrivere.
 I dati sono rappresentati da una matrice, che può avere dimensioni
diverse(quindi dovrei fare un codice restando sul generale), a numeri
interi che ho in formato txt e da altri due file che rappresentano le
marginali di riga e di colonna preliminari, con cui dovrò effettuare
un confronto durante l'algoritmo.
Devo leggere in java tale matrice V ed una volta letta devo effettuare
la seguente operazione:
presa la PRIMA riga i, sostituisco al valore di ogni cella vij , tale
valore vij moltiplicato per il rapporto tra marginale di riga
preliminare e totale di riga, approssimando il risultato all'intero
inferiore; l'informazione della parte decimale mi servirà dopo.
Effettuata questa operazione per tutte le celle della prima riga, devo
calcolare la somma di questa nuova riga e controllare se il totale è
pari o inferiore al valore preliminare della riga; se il valore somma
è minore di quello preliminare, con differenza pari a un certo numero
r, devo ordinare le celle riga in maniera decrescente rispetto alla
loro parte decimale, col metodo bubble sort, e assegnare 1 intero alle
prime r celle dell'ordinamento. il risultato sarà che la somma della
riga in questione sarà pari al valore preliminare.
Successivamente devo effettuare tale operazione per ogni riga; finito
con le righe devo inziare tale operazione per ogni colonna; una volta
terminata tale operazione con ogni colonna devo reiterare la procedura
per le righe finchè i totali di riga corrispondono ai totali calcolati
preliminarmente e mi fermo.
Ciò che mi trovo davanti in questo momento è una matrice in cui i
totali di riga coincidono con i valori preliminari mentre i totali di
colonna non è detto che coincidano.


Un po' di considerazioni:
  - se devi risolvere un problema che richiede di fare A e B, A l'hai 
risolto senza problemi, su B hai dei problemi, non è necessario che ci 
spieghi la parte A, spiega solo la parte B.
  - Dividi il tuo testo in paragrafi quando scrivi una mail, renderà il 
testo piu' facile da leggere.
  - Usa un subject che indichi di cosa stai parlando, alcuni non leggono 
neanche i messaggi con subject troppo generico, potevi scrivere "Calcolo 
dei totali di riga della matrice".
  - Quando esponi un problema fornisci sempre tutti i dettagli, cioé
    1. cos'hai (codice e dati di input)
    2. cosa ti aspetti (valore della somma trovata)
    3. cosa ti ottieni (valore che ti aspettavi)
Forse hai sbagliato a fare la procedura che somma i totali di colonna 
oppure hai sbagliato la procedura che carica i dati dal file e stai 
facendo i conti su dei dati che non sono uguali a quelli contenuti nel 
file. Non vedendo il tuo codice non si può dire a priori.
In questo caso vale "divide et impera": dividi il programma in due metodi:
  - lettura
  - calcoli
Poi provi i due metodi da soli.
Per provare la lettura ti basta fare un ciclo di stampa dopo la lettura.
Per provare la parte di calcolo ricorda che puoi creare anche una 
matrice di prova usando l'inizializzazione degli array di Java
http://java.sun.com/docs/books/jls/second_edition/html/arrays.doc.html#11358
-- 
Andrea Francia
http://andreafrancia.blogspot.com/2008/07/colinux-linux-dentro-windows.html