SONAR-INFO-p155


LA MATRICE DI CORRELAZIONE di c. del turco

Costruzione implementazione e stampa

1) GeneralitÓ
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.

2) Costruzione passo passo della matrice
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Ó:

Dim I(300) As Integer 'dichiarazione della matrice
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

Il controllo del lavoro eseguito si pu˛ fare semplicemente con l'istruzione:

Private Sub Command1_Click()
Print I(x) ' per x variabile manualmente da 0 a 255
End Sub

3) Implementazione automatica della matrice al lancio del programma
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:

Dim I(300) As Integer
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

Anche in questo caso il controllo del lavoro eseguito si pu˛ fare semplicemente con l'istruzione:

Private Sub Command1_Click()
Print I(x) ' per x variabile manualmente da 0 a 255
End Sub

4) Routine per la stampa della matrice
Lanciato il seguente programma la stampa della matrice Ŕ immediata:

Dim I(300) As Variant
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

5) Eseguibile per la stampa della matrice
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






Home

Stampa immagine grafica o descrizione testuale