Ragazzi sto avendo mooolti problemi con il seguente esercizio:
Esempio del file di input:codice:Si scriva un programma Java che prenda in input un file contenente una sequenza di matrici <A1, A2, A3, ...., An> e scriva in un file di output la matrice B ottenuta dalla moltiplicazione delle matrici contenute nella sequnza. B = A1 x A2 x A3 x ... x An Il file di input contiene una sequenza di matrici. Ogni matrice è preceduta da unaa riga contenente il numero di righe e il numero di colonne della matrice. Ogni matrice è rappresentata riga per riga. Tutte le matrici contengono solo i valori 0 e 1. Il file di output contiene un'unica matrice ottenuta dalla moltiplicazione delle matrici contenute nel file di input. La riga che precede la matrice deve contenere il numero di righe ed il numero di colonne della matrice risultato.
Premetto che sono ancora un principiante per la programmazionecodice:5x4 1 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 1 0 1 1 4x5 0 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 1 1 0 5x7 0 1 0 1 1 1 1 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 7x8 1 1 0 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 0 8x6 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 0 1 6x5 0 1 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 1 1 0 0 1 0 1 1 1 1 0 5x6 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 6x5 0 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0
Il mio ragionamento in questo caso è:
1)leggo dal file di testo usando BufferedReader in modo da analizzare tutte le stringhe fino al carattere null di ognuna
2)visto che la prima riga indica le dimensioni della matrice allora quando leggo la stringa "se" trovo il carattere "x" nella posizione "i" faccio una substring dalla posizione 0 fino alla pizione i+1 e memorizzo il risultato in una varibile righe...stessa cosa per la variabile colonne(ovviamente partendo dalla posizione i+1 fino alla fine!)
3)creo quindi una "matrice[righe][colonne]" e gli copio tutti gli elementi del file di testo
4)continuo a copiare fino a quando non trovo il carattere di return che mi indicherà che la matrice è finita
5)Incremento allora una variabile contaNumeroDiMatrici di un'unità;
6)vado all'ora per una seconda volta a capo e ricomincio a prendere le dimensioni di una seconda matrice e ricomincio dal punto 3
7)copiata quindi la seconda matrice incremento nuovamente "contaNumeroDiMatrici" che sarà arrivato a 2. Visto quindi che ho 2matrici posso farne il prodotto
8)finito il prodotto avrò una nuova matrice(si decrementa allora contaNumeroDiMatrici in modo da portarla a 1).Questa nuova matrice andrà a moltiplicarsi con la successiva matrice che trovo nel file di testo. Così ricomincio...ricarico ciò che leggo in una matrice di interi(o forse meglio di byte visto che si utilizzano solo "0" e "1"),incremento contaNumeroDiMatrici e faccio il prodotto
9)continuo fino a quando non finisco il file(e quindi fino a quando non finisce il numero di matrici)
Il mio problema sta nel fatto che non riesco a scrivere del codice per il punto 4-5-6 o meglio come faccio a dire: "Leggi fino a quando non trovi la riga vuota....e in questo caso vai un'altra volta a capo??Scusate se il post è così lungo ma ho preferito dirvi tutto nel modo + minuzioso possibile in modo che potete aiutarmi con questo esercizio.Grazie a tuti

Rispondi quotando
