Qst è il programma:
Scrivere un programma che legge due file di testo, in cui ciascuno rappresenta una matrice di numeri interi.
Ciascun file contiene inizialmente una riga della forma n;m che indica il numero di righe e di colonne della matrice seguita da n righe, ciascuna contenente m numeri interi separati dal carattere “;”
Il file può contenere delle righe “commento”, che devono essere ignorate durante la lettura della matrice. Le righe commento iniziano per //
Esempio
-------------
-------------
4;4
//questa è una matrice 4 per 4
43;2;321;-21
678;-356;0;0
-123;-234;23;0
//ecco l’ultima riga
678;-356;-4;0
------------
------------
Il programma deve verificare se la prima delle matrici lette da file contiene una sottomatrice contigua uguale alla seconda matrice letta da file.
Per esempio
-------------
------------
La matrice descritta contiene come sottomatrice , la matrice
-356 0
-234 23
-----------
-----------
In caso non ci fosse una sottomatrice uguale alla seconda, deve essere restituita la posizione della sottomatrice più “vicina” alla seconda matrice, dove la distanza tra due matrici è definita come:
\somma_i \somma_j | A (i,j) – A (i,j) |
Ripetere il test anche dopo aver ordinato le righe della prima matrice in ordine lessicografico.
-----------
-----------
La matrice dell’esempio diventa quindi
-123;-234;23;0
43;2;321;-21
678;-356;-4;0
678;-356;0;0
-----------
-----------
Il programma deve poter essere chiamato con il comando >java TestMatrici “nome_primo_file nome_secondo_file” dove il nome della classe è seguito dai nomi dei files da leggere.
(usare il parametro del main).