Option Explicit
Class clsSviluppo
Private aBNumDaSvil
Private nQNumeri
Private nCombInt
Private nClasse
Private aRighe
Private nQNumPerRiga
Private aPuntatore
Private nSviluppate
Function InitSviluppo(aNumeri,Classe)
nQNumeri = AlimentArrayNumDaSvil(aNumeri)
nCombInt = Combinazioni(nQNumeri,Classe)
nClasse = Classe
nSviluppate = 0
If nCombInt > 0 Then
Call AlimentaArrayRighe
Call InitArrayPuntatore
End If
InitSviluppo = nCombInt
End Function
Function GetQuantitaNumeriDaSvil
GetQuantitaNumeriDaSvil = nQNumeri
End Function
Function GetStringaNumDaSvil
Dim s,k
s = ""
For k = 1 To UBound(aBNumDaSvil)
If aBNumDaSvil(k) Then
s = s & Format2(k) & "."
End If
Next
GetStringaNumDaSvil = RimuoviLastChr(s,".")
End Function
Private Sub InitArrayPuntatore
Dim k
ReDim aPuntatore(nClasse)
For k = 1 To nClasse - 1
aPuntatore(k) = 1
Next
aPuntatore(k) = 0
End Sub
Function GetComb(aComb)
Dim nTmp,K,nPuntatore
nPuntatore = nClasse
nTmp = aPuntatore(nPuntatore) + 1
Do While nTmp > nQNumPerRiga
nPuntatore = nPuntatore - 1
If nPuntatore <= 0 Then Exit Do
nTmp = aPuntatore(nPuntatore) + 1
Loop
If nPuntatore > 0 Then
For K = nPuntatore To nClasse
aPuntatore(K) = nTmp
Next
ReDim aComb(nClasse)
For K = 1 To nClasse
aComb(K) = aRighe(K,aPuntatore(K))
Next
nSviluppate = nSviluppate + 1
GetComb = True
Else
GetComb = False
End If
End Function
Function GetQuantitaSviluppate
GetQuantitaSviluppate = nSviluppate
End Function
Private Function AlimentArrayNumDaSvil(aNumeri)
Dim k,q
aBNumDaSvil = ArrayNumeriToBool(aNumeri)
For k = 1 To 90
If aBNumDaSvil(k) Then
q = q + 1
End If
Next
AlimentArrayNumDaSvil = q
End Function
Private Sub AlimentaArrayRighe
Dim nRiga,k,aNumeri
Call ArrayBNumToArrayNum(aBNumDaSvil,aNumeri)
nQNumPerRiga =(nQNumeri - nClasse) + 1
ReDim aRighe(nClasse,nQNumPerRiga)
For nRiga = 1 To nClasse
For k = nRiga To(nRiga + nQNumPerRiga) - 1
aRighe(nRiga,(k - nRiga) + 1) = aNumeri(k)
Next
Next
End Sub
Sub OutputARighe
Dim k,j,s
For k = 1 To nClasse
s = ""
For j = 1 To nQNumPerRiga
s = s & Format2(aRighe(k,j)) & "."
Next
Next
End Sub
End Class
'fine classe motore senzalimitediclasse
Sub Main
Dim dimensionematricevoluta
Dim ruoteuniteminimo
Dim ruoteunitemassimo
Dim numeroruoteunite
Dim filerisultato
Dim coltotruoteunite
ReDim aruote(0)
Dim acolruoteunite
Dim StringaRuoteUnite
Dim contarighe
Dim arighefile
Dim righesviluppate
Dim anumeri
Dim classe
Dim vettorerighefilemixruote
Dim rigasviluppata
Dim contarighesviluppate
Dim sorte
Dim rit,ritmax,Incmax,freq,Inizio,fine
Dim diff
Dim ritardomassimorilevato
Dim ritardomassimostoricorilevato
Dim stringarisultatoxritardomassimorilevato
Dim stringarisultatoxritardostoricomassimorilevato
Dim ritardominimorilevato
Dim ritardominimostoricorilevato
Dim stringarisultatoxritardominimorilevato
Dim stringarisultatoxritardominimostoricorilevato
Dim freqmassimarilevata
Dim freqminimarilevata
Dim stringarisultatoxfreqmassimarilevata
Dim stringarisultatoxfreqminimarilevata
Dim Incmaxmassimorilevato
Dim Incmaxminimorilevato
Dim stringarisultatoxincmaxmassimorilevato
Dim stringarisultatoxincmaxminimorilevato
Dim diffmassimarilevata
Dim diffminimarilevata
Dim stringarisultatoxdiffmassimarilevata
Dim stringarisultatoxdiffminimarilevata
Dim stringarsmaxdiognigrupporuoteunite
Dim contatorefqzero
contatorefqzero = 0
Dim ritardomassimoxgrupporuoteunite
ritardomassimoxgrupporuoteunite = 0
Dim contacasimultiplixrit
contacasimultiplixrit = 0
Dim contacasimultiplixritmin
contacasimultiplixritmin = 0 'EstrazioneFin
Dim contacasimultiplixfqmax
contacasimultiplixfqmax = 0
Dim contacasimultiplixfqmin
contacasimultiplixfqmin = 0 ' EstrazioneFin
Dim contacasimultiplixincmaxmax
contacasimultiplixincmaxmax = 0
'---------------------------------------------------
Dim contacasimultiplixrsmaxgenerale
contacasimultiplixrsmaxgenerale = 0
Dim contacasimultiplixrsmingenerale
contacasimultiplixrsmingenerale = 0
Dim contacasimultiplixincmaxmin
contacasimultiplixincmaxmin = 0
Dim contacasimultiplixdiffmax
contacasimultiplixdiffmax = 0
Dim contacasimultiplixdiffmin
contacasimultiplixdiffmin = 0
'---------------------------------------------------
Dim IndConv ' IndConv = (FQ/num.estrazioni) * RA
Dim contaOKxfiltroextra
contaOKxfiltroextra = 0
Dim elencocasiOKxfiltroextra
elencocasiOKxfiltroextra = ""
'vettore fq x verifica max copertura multiruota (by idea xeroxs)
Dim stringafqxmaxcop
stringafqxmaxcop = ""
stringarsmaxdiognigrupporuoteunite = ""
ritardomassimorilevato = 0
ritardomassimostoricorilevato = 0
ritardominimorilevato = EstrazioneFin
ritardominimostoricorilevato = EstrazioneFin
freqmassimarilevata = 0
freqminimarilevata = EstrazioneFin
Incmaxmassimorilevato = 0
Incmaxminimorilevato = EstrazioneFin
diffmassimarilevata = 0
diffminimarilevata = EstrazioneFin
Dim terzoparametro ' terzo parametro = (rs - ra) + (freq + ra) ovvero (ritardo storico meno ritardo attuale) + (frequenza + ritardo attuale) maggiore è questo vlaore + probabile è la rottura... della rispettiva formazione indipendentemnte dalla sorte e classe di ricerca con cui è stata rilevata (INFO ricevuta BY AI)
Inizio = EstrazioneIni
fine = EstrazioneFin
Dim contatorexmatrice
'Dim matriceordinabilemultidimensionale(500000,6) '(1300000,6) '(2600000,6) ' (500000,6) '10000 ' in c5 by gruppo 72 le formazioni integrali sono oltre 13 mln... ; in c4 solo.. 1.028.000 ca
'Dim matriceordinabilemultidimensionale(dimensionematricevoluta,6) ' 2000000 (500000,6) '(3200000,6) 'rispetto i 3162510 necessari ad analizzare le rispettive c5 x A by cf54 sarebbero più che sufficienti...
Dim righeoccupatenellamatrice
Dim filexdiff0rilevate
filexdiff0rilevate = "filexdiff0rilevate.txt"
If FileEsistente(filexdiff0rilevate) Then
Call EliminaFile(filexdiff0rilevate)
End If
Dim filexdiff0rilevatesolonumeri
filexdiff0rilevatesolonumeri = "filexdiff0rilevatesolonumeri.txt"
If FileEsistente(filexdiff0rilevatesolonumeri) Then
Call EliminaFile(filexdiff0rilevatesolonumeri)
End If
Dim contadiff0
contadiff0 = 0
dimensionematricevoluta = CInt(InputBox("dimensione matrice ipotizzata max 10000",,10000))
Dim moltiplicadimensionematricex
moltiplicadimensionematricex = CInt(InputBox("moltiplica dimensione matrice x ",,1)) 'max 600
dimensionematricevoluta = dimensionematricevoluta * moltiplicadimensionematricex
ReDim matriceordinabilemultidimensionale(dimensionematricevoluta,9) ' integrato campo matrice per il valore di IndConv e fqxmaxcop
ruoteuniteminimo = CInt(InputBox("ruote unite minimo",,2))
ruoteunitemassimo = CInt(InputBox("ruote unite massimo",,ruoteuniteminimo))
MsgBox "scegli sorte"
sorte = CInt(InputBox("sorte",,1))
MsgBox "scegli ruote da analizzare"
Call ScegliRuote(aruote)
Dim dafileodatabella
Dim csvil
Set csvil = New clsSviluppo
dafileodatabella = InputBox("da file (f) o da tabella (t)",,"t")
If dafileodatabella = "t" Then
MsgBox "hai scelto da tabella"
MsgBox "scegli gruppo base da sviluppare e analizzare"
Call ScegliNumeri(anumeri)
MsgBox "scegli classe da sviluppare"
classe = CInt(InputBox("classe",,1)) 'sorte))
filerisultato = ".\gruppipossibilidiruoteunite.txt"
If FileEsistente(filerisultato) Then
Call EliminaFile(filerisultato)
End If
For numeroruoteunite = ruoteuniteminimo To ruoteunitemassimo
coltotruoteunite = InitSviluppoIntegrale(aruote,numeroruoteunite)
If coltotruoteunite > 0 Then
Do While GetCombSviluppo(acolruoteunite) = True
StringaRuoteUnite = StringaNumeri(acolruoteunite)
contarighe = contarighe + 1
ScriviFile filerisultato,StringaRuoteUnite
If ScriptInterrotto Then Exit Do
Loop
End If
CloseFileHandle(filerisultato)
Call LeggiRigheFileDiTesto(filerisultato,arighefile)
ReDim arigaruote(numeroruoteunite)
Dim crr
For crr = 0 To UBound(arighefile)
'righesviluppate = InitSviluppoIntegrale(anumeri,classe)
righesviluppate = csvil.InitSviluppo(anumeri,classe)
Dim vettoreruoteunite
Call SplitByChar("." & arighefile(crr) & ".",".",vettoreruoteunite)
Dim cvru
ReDim arigaruote(UBound(vettoreruoteunite))
For cvru = 0 To UBound(vettoreruoteunite)
If righesviluppate > 0 Then
' Do While GetCombSviluppo(rigasviluppata) = True
Do While cSvil.GetComb(rigasviluppata)
contarighesviluppate = contarighesviluppate + 1
Call StatisticaFormazioneTurbo(rigasviluppata,vettoreruoteunite,sorte,rit,ritmax,Incmax,freq,Inizio,fine)
'Messaggio "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " crm " & contatorexmatrice
'Messaggio "n" & StringaNumeri(rigasviluppata) & "r" & StringaNumeri(vettoreruoteunite) & "s" & NomeSorte(sorte) & "rit" & rit & "rs" & ritmax & "incmax" & Incmax & "frq" & freq & "diff" & diff & "crm" & contatorexmatrice
Messaggio "r" & StringaNumeri(vettoreruoteunite) & "s" & NomeSorte(sorte) & "rit" & rit & "rs" & ritmax & "incmax" & Incmax & "frq" & freq & "diff" & diff & "crm" & contatorexmatrice
diff = ritmax - rit
terzoparametro =(diff) +(freq + rit)
IndConv =(freq/EstrazioneFin) * rit
' se una sola fq è 0 no cop max
'If freq = 0 Then
' stringafqxmaxcop = "<font color=red>NO cop max</font>"
'Else
'se il contatore di fq0 > 0 allora significa che la cop max è saltata...
If freq = 0 Then
contatorefqzero = contatorefqzero + 1
End If
If contatorefqzero > 0 Then
stringafqxmaxcop = "<font color=red>cop max saltata</font>"
Else
stringafqxmaxcop = "<font color=green>cop max ok</font>"
End If
matriceordinabilemultidimensionale(contatorexmatrice,0) = StringaNumeri(rigasviluppata)
matriceordinabilemultidimensionale(contatorexmatrice,1) = StringaNumeri(vettoreruoteunite)
matriceordinabilemultidimensionale(contatorexmatrice,2) = NomeSorte(sorte)
matriceordinabilemultidimensionale(contatorexmatrice,3) = Int(rit)
matriceordinabilemultidimensionale(contatorexmatrice,4) = Int(ritmax)
matriceordinabilemultidimensionale(contatorexmatrice,5) = Int(Incmax)
matriceordinabilemultidimensionale(contatorexmatrice,6) = Int(freq)
matriceordinabilemultidimensionale(contatorexmatrice,7) = terzoparametro
matriceordinabilemultidimensionale(contatorexmatrice,8) = IndConv
matriceordinabilemultidimensionale(contatorexmatrice,9) = stringafqxmaxcop
'If Int(freq)= 0 Then
' stringafqxmaxcop = stringafqxmaxcop & ".0."
' Else
' stringafqxmaxcop = stringafqxmaxcop & "." & freq & "."
' End If
'
' matriceordinabilemultidimensionale(contatorexmatrice,9) = stringafqxmaxcop
contatorexmatrice = contatorexmatrice + 1
righeoccupatenellamatrice = righeoccupatenellamatrice + 1
If rit = ritardomassimorilevato Then
contacasimultiplixrit = contacasimultiplixrit + 1
End If
If rit > ritardomassimorilevato Then
ritardomassimorilevato = rit
stringarisultatoxritardomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixrit = 0
End If
If ritmax = ritardomassimostoricorilevato Then
contacasimultiplixrsmaxgenerale = contacasimultiplixrsmaxgenerale + 1
End If
If ritmax > ritardomassimostoricorilevato Then
ritardomassimostoricorilevato = ritmax
stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixrsmaxgenerale = 0
End If
If ritmax > ritardomassimoxgrupporuoteunite Then
ritardomassimoxgrupporuoteunite = ritmax
'stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If rit < ritardominimorilevato Then
ritardominimorilevato = rit
stringarisultatoxritardominimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixritmin = 0
End If
If rit = ritardominimorilevato Then
contacasimultiplixritmin = contacasimultiplixritmin + 1
End If
If ritmax = ritardominimostoricorilevato Then
contacasimultiplixrsmingenerale = contacasimultiplixrsmingenerale + 1
End If
If ritmax < ritardominimostoricorilevato Then
ritardominimostoricorilevato = ritmax
stringarisultatoxritardominimostoricorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixrsmingenerale = 0
End If
If freq > freqmassimarilevata Then
freqmassimarilevata = freq
stringarisultatoxfreqmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixfqmax = 0
End If
If freq = freqmassimarilevata Then
contacasimultiplixfqmax = contacasimultiplixfqmax + 1
End If
If freq < freqminimarilevata Then
freqminimarilevata = freq
stringarisultatoxfreqminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixfqmin = 0
End If
If freq = freqminimarilevata Then
contacasimultiplixfqmin = contacasimultiplixfqmin + 1
End If
If Incmax > Incmaxmassimorilevato Then
Incmaxmassimorilevato = Incmax
stringarisultatoxincmaxmassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixincmaxmax = 0
End If
If Incmax = Incmaxmassimorilevato Then
contacasimultiplixincmaxmax = contacasimultiplixincmaxmax + 1
End If
If Incmax = Incmaxminimorilevato Then
contacasimultiplixincmaxmin = contacasimultiplixincmaxmin + 1
End If
If Incmax < Incmaxminimorilevato Then
Incmaxminimorilevato = Incmax
stringarisultatoxincmaxminimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixincmaxmin = 0
End If
If diff = diffmassimarilevata Then
contacasimultiplixdiffmax = contacasimultiplixdiffmax + 1
End If
If diff > diffmassimarilevata Then
diffmassimarilevata = diff
stringarisultatoxdiffmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixdiffmax = 0
End If
If diff = diffminimarilevata Then
contacasimultiplixdiffmin = contacasimultiplixdiffmin + 1
End If
If diff < diffminimarilevata Then
diffminimarilevata = diff
stringarisultatoxdiffminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixdiffmin = 0
End If
'se diff=0 scrivi risultati nel file txt apposito
' End If
If diff = 0 Then
Dim stringarisultatoxdiff0rilevata
stringarisultatoxdiff0rilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
ScriviFile filexdiff0rilevate,stringarisultatoxdiff0rilevata
CloseFileHandle(filexdiff0rilevate)
ScriviFile filexdiff0rilevatesolonumeri,StringaNumeri(rigasviluppata)
CloseFileHandle(filexdiff0rilevatesolonumeri)
contadiff0 = contadiff0 + 1
End If
'----------------------------------------------------------
'Scrivi "COPERTURA " & "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & stringafqxmaxcop,True,,,vbRed
'reinizializzo stringafqxmaxcop
'stringafqxmaxcop = ""
If ScriptInterrotto Then Exit Do
Loop
'Scrivi "COPERTURA " & "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & stringafqxmaxcop,True,,,vbRed
'reinizializzo stringafqxmaxcop
'stringafqxmaxcop = ""
End If
If ritardomassimoxgrupporuoteunite <> 0 And ritardomassimoxgrupporuoteunite <> "0" Then
stringarsmaxdiognigrupporuoteunite = stringarsmaxdiognigrupporuoteunite & " | " & StringaNumeri(vettoreruoteunite) & " rsgru " & ritardomassimoxgrupporuoteunite & " . "
End If
ritardomassimoxgrupporuoteunite = 0
If ScriptInterrotto Then Exit For
'reinizializzo stringafqxmaxcop
'stringafqxmaxcop = ""
' stringafqxmaxcop = stringafqxmaxcop &"."&freq
'matriceordinabilemultidimensionale(contatorexmatrice,9) = stringafqxmaxcop
Next ' cvru
'Scrivi "COPERTURA " & "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & stringafqxmaxcop,True,,,vbRed
Next
If ScriptInterrotto Then Exit For
Call AvanzamentoElab(1,ruoteunitemassimo,crr)
'Scrivi "COPERTURA " & "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & stringafqxmaxcop,True,,,vbRed
'reinizializzo stringafqxmaxcop
'stringafqxmaxcop = ""
'stringafqxmaxcop = stringafqxmaxcop &"."&freq
'matriceordinabilemultidimensionale(contatorexmatrice,9) = stringafqxmaxcop
If ScriptInterrotto Then Exit For
Messaggio "thread elaborazionale n. " & contatorexmatrice
' If Int(freq)= 0 Then
' stringafqxmaxcop = stringafqxmaxcop & ".0."
' Else
' stringafqxmaxcop = stringafqxmaxcop & "." & freq & "."
' End If
' matriceordinabilemultidimensionale(contatorexmatrice,9) = stringafqxmaxcop
Next 'x numero ruote unite
Dim Valorediordinamentovoluto
Dim Valorecriteriodiordinamento
Dim quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice
Valorediordinamentovoluto = CInt(InputBox("valore di ordinamento voluto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) ; terzoparametro (7) ; IndConv (8) ",,8))
Valorecriteriodiordinamento = CInt(InputBox("valore criterio di ordinamento voluto: crescente (1) decrescente (-1) ",,- 1))
'quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = CInt(InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?",,100))
quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?",,100)
quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = Int(quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice)
Scrivi
' Scrivi "visualizzazione del contenuto della matrice non ordinata..."
' Scrivi
' For contatorexmatrice = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupateinmatrice 'UBound(matriceordinabilemultidimensionale)
' Messaggio "sto elaborando il record di matrice n. " & contatorexmatrice
' Scrivi " n " & matriceordinabilemultidimensionale(contatorexmatrice,0) & " r " & matriceordinabilemultidimensionale(contatorexmatrice,1) & " s " & matriceordinabilemultidimensionale(contatorexmatrice,2) & " rit " & matriceordinabilemultidimensionale(contatorexmatrice,3) & " ritmax " & matriceordinabilemultidimensionale(contatorexmatrice,4) & " incmax " & matriceordinabilemultidimensionale(contatorexmatrice,5) & " freq " & matriceordinabilemultidimensionale(contatorexmatrice,6) & " diff " & diff & " contatore riga matrice " & contatorexmatrice
' Next
'Scrivi
Scrivi "visualizzazione del contenuto dell matrice ordinata..."
Scrivi
Scrivi "num-ruota-sorte-rit-ritmax-incmax-freq"
Scrivi
Dim sortFREQ
Dim MassimoFreq
Dim MinimoFreq
Dim sortRITMAX
Dim MassimoRITMAX
Dim MinimoRITMAX
Dim sortINCMAX
Dim MassimoINCMAX
Dim MinimoINCMAX
Dim sortRIT
Dim MassimoRIT
Dim MinimoRIT
MassimoFreq = freqmassimarilevata 'EstrazioneFin
MinimoFreq = freqminimarilevata '0
MassimoRITMAX = ritardomassimostoricorilevato 'EstrazioneFin
MinimoRITMAX = ritardominimostoricorilevato '0
MassimoINCMAX = Incmaxmassimorilevato 'EstrazioneFin
MinimoINCMAX = Incmaxminimorilevato '0
MassimoRIT = ritardomassimorilevato 'EstrazioneFin
MinimoRIT = ritardominimorilevato '0
Dim cmom
Dim k
Call OrdinaMatrice(matriceordinabilemultidimensionale,Valorecriteriodiordinamento,Valorediordinamentovoluto)
For k = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice
Scrivi matriceordinabilemultidimensionale(k,0) & " - " & matriceordinabilemultidimensionale(k,1) & " - " & matriceordinabilemultidimensionale(k,2) & " - " & matriceordinabilemultidimensionale(k,3) & " - " & matriceordinabilemultidimensionale(k,4) & " - " & matriceordinabilemultidimensionale(k,5) & " - " & matriceordinabilemultidimensionale(k,6) & " - tp " & matriceordinabilemultidimensionale(k,7) & " - IndConv " & matriceordinabilemultidimensionale(k,8) & " stato max cop " & matriceordinabilemultidimensionale(k,9)
'filtro custom extra...
Scrivi "RA |" & matriceordinabilemultidimensionale(k,3) & "| FQ |" & matriceordinabilemultidimensionale(k,6) & "|",,,,vbRed
If CInt(matriceordinabilemultidimensionale(k,3)) = CInt(matriceordinabilemultidimensionale(k,6))And CInt(matriceordinabilemultidimensionale(k,6)) <> 0 And CInt(matriceordinabilemultidimensionale(k,6)) <> "" Then
Scrivi "RA |" & matriceordinabilemultidimensionale(k,3) & "| FQ |" & matriceordinabilemultidimensionale(k,6) & "|",,,,vbRed
Scrivi "TROVATO AMBO con ra=fq! Eccolo! " & matriceordinabilemultidimensionale(k,0) & " ruota " & matriceordinabilemultidimensionale(k,1)
contaOKxfiltroextra = contaOKxfiltroextra + 1
elencocasiOKxfiltroextra = elencocasiOKxfiltroextra & " ; " & matriceordinabilemultidimensionale(k,0) & " ruota " & matriceordinabilemultidimensionale(k,1) & " ; "
End If
'Scrivi "COPERTURA " & "n " & matriceordinabilemultidimensionale(k,0) & " - " & matriceordinabilemultidimensionale(k,1) & " - " & matriceordinabilemultidimensionale(k,9),True,,,vbRed
Next
Scrivi
Scrivi
Scrivi "Elaborazione terminata con successo!"
Scrivi
Scrivi "range temporale analizzato " & GetInfoEstrazione(EstrazioneIni) & " - " & GetInfoEstrazione(EstrazioneFin)
Scrivi "n. di estrazioni totali analizzate " &(EstrazioneFin - EstrazioneIni) + 1
Scrivi "Input numeri scelti da tabella"
Scrivi "gruppo base numerico analizzato " & StringaNumeri(anumeri)
Scrivi "classe gruppo numerico sviluppato " & UBound(anumeri)
Scrivi "numero complessivo di ruote a girare " & UBound(aruote)
Scrivi "ruote analizzate " & StringaRuote(aruote)
Scrivi "ruote unite minimo " & ruoteuniteminimo
Scrivi "ruote unite massimo " & ruoteunitemassimo
Scrivi "classe di sviluppo " & classe
Scrivi "sorte di ricerca " & sorte
Scrivi "parametro di ordinamento scelto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) " & Valorediordinamentovoluto
Scrivi "criterio di ordinamento impostato crescente (1) decrescente (-1) " & Valorecriteriodiordinamento
Scrivi "righe (x mix di ruote) sviluppate " & contarighe
Scrivi "righe totali di sviluppo generate " & contarighesviluppate
Scrivi
Scrivi "cgb " & UBound(anumeri) & " ; " & " cs " & classe & " ; " & " pr " & UBound(aruote) & " ; qruag : da " & ruoteuniteminimo & " a " & ruoteunitemassimo & " ; righe " & contarighesviluppate & " ; tt : " & TempoTrascorso & " sg " & righesviluppate
Scrivi
Scrivi "righe occupate nella matrice di dimensione ( " & UBound(matriceordinabilemultidimensionale) & " ) : " & righeoccupatenellamatrice
Scrivi "numero dei primi risultati visualizzati in output in base all'ordinamento scelto " & quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice
Scrivi
Scrivi "report sui valori estremi rilevati"
Scrivi
Scrivi "rit max generale " & ritardomassimorilevato
Scrivi "formazione : " & stringarisultatoxritardomassimorilevato
Scrivi "n. casi multipli di rit max generale " & contacasimultiplixrit
Scrivi "rs max generale " & ritardomassimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardostoricomassimorilevato
Scrivi "n. casi multipli di rit sto max generale " & Int(contacasimultiplixrsmaxgenerale)' - 1
Scrivi "ra min generale " & ritardominimorilevato
Scrivi "formazione : " & stringarisultatoxritardominimorilevato
Scrivi "n. casi multipli di rit min generale " & Int(contacasimultiplixritmin)' - 1
Scrivi "rs min generale " & ritardominimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardominimostoricorilevato
Scrivi "n. casi multipli di rit sto min generale " & Int(contacasimultiplixrsmingenerale)' - 1
Scrivi "fq max generale " & freqmassimarilevata
Scrivi "formazione : " & stringarisultatoxfreqmassimarilevata
Scrivi "n. casi multipli di fq max generale " & Int(contacasimultiplixfqmax)' - 1
Scrivi "fq min generale " & freqminimarilevata
Scrivi "formazione : " & stringarisultatoxfreqminimarilevata
Scrivi "n. casi multipli di fq min generale " & Int(contacasimultiplixfqmin) ' - 1
Scrivi "incmax max generale " & Incmaxmassimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxmassimorilevato
Scrivi "n. casi multipli di incmax max generale " & Int(contacasimultiplixincmaxmax)' - 1
Scrivi "incmax min generale " & Incmaxminimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxminimorilevato
Scrivi "n. casi multipli di incmax min generale " & Int(contacasimultiplixincmaxmin)' - 1
Scrivi "diff max generale " & diffmassimarilevata
Scrivi "formazione : " & stringarisultatoxdiffmassimarilevata
Scrivi "n. casi multipli di diff max generale " & Int(contacasimultiplixdiffmax)' - 1
Scrivi "diff min generale " & diffminimarilevata
Scrivi "formazione : " & stringarisultatoxdiffminimarilevata
Scrivi "n. casi multipli di diff min generale " & Int(contacasimultiplixdiffmin)' - 1
Scrivi "n di casi diff 0 rilevati " & contadiff0
Scrivi
Scrivi "rs max relativi ad ogni gruppo di ruote unite generato " & stringarsmaxdiognigrupporuoteunite
Scrivi
Scrivi "CASI OK per filtro extra (in questo caso ra=fq xs2 in c2 su 1r) " & contaOKxfiltroextra
Scrivi
Scrivi "Elenco casi OK per filtro extra " & elencocasiOKxfiltroextra
Scrivi
Scrivi "Tt : " & TempoTrascorso
Else
Scrivi "parte non implementata"
End If
End Sub