Ciao. Allego qui uno script ( è il primo che faccio in spaziometria) che forse, può soddisfare le tue richieste. E' molto spartano e realizzato da chi non conosce le varie funzioni possibili per gli script in spaziometria. Certamente si può fare di meglio...
Codice:
Option Explicit
Sub Main()
Dim ru(1),n(3),n1(10),es,a,b,r,p,sp1,sp2,nn1,nn2,i,j,estr_corr,Vet_ambi(90,90),Vet_Ord_2(8100,3),Vet_ambate(90),Vet_appoggio(90),indice(90),temp,pos1,pos2,kk
Dim posta(1)
posta(1) = 1
sp1 = InputBox("Inserire 1° numero spia")
sp2 = InputBox("Inserire 2° numero spia")
Erase Vet_ambate
Erase Vet_ambi
For r = 1 To 11
For es = 1 To EstrazioneFin - 18
If r = 11 Then r = 12
For p = 1 To 5
a = Estratto(es - 1,r,p)
b = Estratto(es,r,p)
' If a = 33 And b = 20 Then
If a = Int(sp1) And b = Int(sp2) Then
For i = 1 To 18
estr_corr = es + i
For pos1 = 1 To 4
nn1 = Estratto(estr_corr,r,pos1)
Vet_ambate(nn1) = Vet_ambate(nn1) + 1
For pos2 = pos1 + 1 To 5
nn2 = Estratto(estr_corr,r,pos2)
Vet_ambi(nn1,nn2) = Vet_ambi(nn1,nn2) + 1
Vet_ambi(nn2,nn1) = Vet_ambi(nn2,nn1) + 1
Next 'pos2
Next 'pos1
nn1 = Estratto(estr_corr,r,5)
Vet_ambate(nn1) = Vet_ambate(nn1) + 1
Next 'i
End If
Next 'p
Next 'es
Next 'r
ColoreTesto 2
Scrivi "Estrazione N. " & es,1
Scrivi "Numeri spia verticali isotopi " & sp1 & "-" & sp2,1
Scrivi
Scrivi "Elenco ambate in ordine decrescente di presenza",1
Call Ordina_vettore(indice,Vet_ambate,Vet_appoggio)
ColoreTesto 1
For i = 1 To 90
nn1=indice(i):If nn1 < 10 Then nn1 = "0" & nn1
Scrivi nn1 & " " & Vet_appoggio(i),1
Next 'i
ColoreTesto 2
Scrivi
Scrivi
Scrivi "Elenco primi 100 ambi in ordine decrescente di presenza",1
ColoreTesto 1
Call Ordina_Ambi_Succ(Vet_ambi,Vet_Ord_2)
For kk = 1 To 100
If Vet_Ord_2(kk,1) > 0 Then
nn1 = Vet_Ord_2(kk,2): If nn1 < 10 Then nn1 = "0" & nn1
nn2 = Vet_Ord_2(kk,3): If nn2 < 10 Then nn2 = "0" & nn2
Scrivi nn1 & "-" & nn2 & " " & Vet_Ord_2(kk,1),1
End If
Next ' kk
End Sub
Sub Ordina_vettore(indice,Vet_ambate,Vet_appoggio)
Dim k,t,temp
For k = 1 To 90
indice(k) = k
Vet_appoggio(k) = Vet_ambate(k)
Next 'k
For k = 1 To 89
For t = k + 1 To 90
If Vet_appoggio(t) > Vet_appoggio(k) Then
temp = Vet_appoggio(k)
Vet_appoggio(k) = Vet_appoggio(t)
Vet_appoggio(t) = temp
temp = indice(k)
indice(k) = indice(t)
indice(t) = temp
End If
Next 't
Next 'k
End Sub
Sub Ordina_Ambi_Succ(Vet_Ambi,Vet_Ord_2)
Dim x,a,b,I,j,temp
x = 1
For a = 1 To 89
For b = a + 1 To 90
Vet_Ord_2(x,1) = Vet_Ambi(a,b)
Vet_Ord_2(x,2) = a
Vet_Ord_2(x,3) = b
x = x + 1
Next 'b
Next 'a
For I = 1 To 4049 '8099
For j = I + 1 To 4050 '8100
If Vet_Ord_2(j,1) > Vet_Ord_2(I,1) Then
temp = Vet_Ord_2(I,1)
Vet_Ord_2(I,1) = Vet_Ord_2(j,1)
Vet_Ord_2(j,1) = temp
temp = Vet_Ord_2(I,2)
Vet_Ord_2(I,2) = Vet_Ord_2(j,2)
Vet_Ord_2(j,2) = temp
temp = Vet_Ord_2(I,3)
Vet_Ord_2(I,3) = Vet_Ord_2(j,3)
Vet_Ord_2(j,3) = temp
End If
Next 'j
Next 'I
End Sub