SONAR-INFO-p155
LA MATRICE DI CORRELAZIONE di c. del turco
Costruzione implementazione e stampa 1) Generalità 2) Costruzione passo passo della matrice
Dim I(300) As Integer 'dichiarazione della matrice
Il controllo del lavoro eseguito si può fare semplicemente con l'istruzione:
Private Sub Command1_Click() 3) Implementazione automatica della matrice al lancio del programma
Dim I(300) As Integer
Anche in questo caso il controllo del lavoro eseguito si può fare semplicemente con l'istruzione:
Private Sub Command1_Click() 4) Routine per la stampa della matrice
Dim I(300) As Variant 5) Eseguibile per la stampa della matrice
A complemento della pagina p153 s'illustrano le modalità per la costruzione, l'implementazione
nel P.C, e la stampa delle matrici a 8 bit del FALCON.
Tutte le routine illustrate di seguito sono in linguaggio VB.
Questo sistema, tedioso e non privo d'errori manuali, consente d'avere la matrice sempre
pronta all'atto del lancio del programma applicativo generale.
Si tratta di copiare, in una sub routine, del listato del programma applicativo quanto contenuto
nella matrice di paragrafo 3) di p153 secondo la seguente modalità:
sub Matrice' apertura di una subroutine dal nome matrice
I(0) = 4 'digitazione del primo elemento della matrice
I(1) = 3 'digitazione del secondo elemento della matrice
.
.
.
I(255) = 4 'digitazione del duecentocinquantaseiesimo elemento della matrice
End Sub
Print I(x) ' per x variabile manualmente da 0 a 255
End Sub
Il sistema automatico implementa la matrice durante il lancio del programma; la matrice si perde,
evidentemente, all'uscita dalla routine.
Se la matrice è isolata il tempo di carica è irrilevante, se la matrice è parte di un insieme
di matrici il tempo di carica deve essere valutato.
La routine per la carica automatica della matrice di cui al paragrafo 3) di p153 è la seguente:
Private Sub Form_Load()
For x = 0 To 255
Y1 = (x And 15)
Y2 = x And 240
Y3 = Int(Y2 / 16)
Y4 = Int((Y3 And 1) * 8) + Int((Y3 And 2) * 2) + Int((Y3 And 4) / 2) + Int((Y3 And 8) / 8)
Y5 = Abs((Y1 Xor Y4) - 15)
Y6 = (Y5 And 1) + ((Y5 And 2) / 2) + ((Y5 And 4) / 4) + ((Y5 And 8) / 8)
I(x) = Y6
Next x
End Sub
Print I(x) ' per x variabile manualmente da 0 a 255
End Sub
Lanciato il seguente programma la stampa della matrice è immediata:
Private Sub Form_Load()
For x = 0 To 255
Y1 = (x And 15)
Y2 = x And 240
Y3 = Int(Y2 / 16)
Y4 = Int((Y3 And 1) * 8) + Int((Y3 And 2) * 2) + Int((Y3 And 4) / 2) + Int((Y3 And 8) / 8)
Y5 = Abs((Y1 Xor Y4) - 15)
Y6 = (Y5 And 1) + ((Y5 And 2) / 2) + ((Y5 And 4) / 4) + ((Y5 And 8) / 8)
I(x) = Y6
Next x
For x = 256 To 263
I(x) = "***"
Next
Printer.Print
Printer.Font.Underline = False
Printer.FontSize = 10
Printer.ForeColor = vbBlack
a = 22
For s = 0 To 21
Printer.Print " ("; s; ")"; I(s); " ("; a + s; ")"; I(a + s); " ("; 2 * a + s; ")"; I(2 * a + s);
" ("; 3 * a + s; ")";
I(3 * a + s); " ("; 4 * a + s; ")"; I(4 * a + s); " ("; 5 * a + s; ")";
I(5 * a + s); " ("; 6 * a + s; ")";
I(6 * a + s); " ("; 7 * a + s; ")"; I(7 * a + s); "
("; 8 * a + s; ")"; I(8 * a + s); " ("; 9 * a + s; ")";
I(9 * a + s); " ("; 10 * a + s; ")";
I(10 * a + s); " ("; a * 11 + s; ")"; I(a * 11 + s)
Next
Printer.EndDoc
End Sub
Per non digitare tutte le istruzioni del paragrafo 4 è qui disponibile il file Stampa.exe che
una volta avviato, alla pressione del bottone "Stampa" esegue, sia la presentazione della matrice
sul P.C. sia la stampa del lavoro voluto:
Stampa