Buongiorno a Tutti
Tra le varie idee che ho su come cercare di utilizzare al meglio Spaziometria mentre cercavo di trovare argomenti su Array, matrici e simili, certo un enorme passo ancora per me, ma intanto volevo avvicinarmi a comprendere la materia nelle sue esposizioni, la ricerca mi ha portato ad uno script creato da I-Legend, praticamente "Un Capolavoro" nell'esporre calcoli e dati ricco di funzioni e Sub che ritengo davvero ottime
il post relativo è il seguente
	
	
		
			
				
					
						
							
						
					
				
			
			
				
		
	
al 19 esimo post hai pubblicato il tuo script relativo agli argomenti richiesti dall'utente, ciò che chiedo ad I-legend è capire come posso modificare i calcoli che chiedi alla funzione
Function GetSum(a)
che quì riporto per intero
' queesta funzione esegue i calcoli
Function GetSum(a)
Dim i
Do While UBound(a) > 1
ReDim aSom(0)
For i = 1 To UBound(a) - 1
ReDim Preserve aSom(i)
aSom(i) = Fuori90(a(i) + a(i + 1))
Next
ReDim a(0)
For i = 1 To UBound(aSom)
ReDim Preserve a(i)
a(i) = aSom(i)
Next
Scrivi StringaNumeri(a,,True)
Loop
GetSum = a(UBound(a))
End Function
dove dopo aver caricato gli estratti scelti viene fatta la somma tra il 1 ed 2 estratto e poi tra il 2 ed il 3 e così via,
la mia richiesta si basa sul fatto che vorrei semplicemente eseguire la somma degli estratti scelti, ad esmpios supponiamo di aver scelto i primi 3 estratti di Bari che quì riporto frutto di fantasia 20 32 40
il calcolo da eseguire sarà 20+32+40 = 2 con il fuori 90
Io ci ho provato in diversi modi ma evidentemente molte sono le cose concatenate alle function ed alle sue regole.
Lo Chiedo a Te I-Legend visto che è opera Tua, sperando che sia possibile e che Tu abbia voglia di Aiutarmi in questa mia richiesta.
Di seguito riporto lo script per intero
	
	
	
		
Grzaie come sempre
				
			Tra le varie idee che ho su come cercare di utilizzare al meglio Spaziometria mentre cercavo di trovare argomenti su Array, matrici e simili, certo un enorme passo ancora per me, ma intanto volevo avvicinarmi a comprendere la materia nelle sue esposizioni, la ricerca mi ha portato ad uno script creato da I-Legend, praticamente "Un Capolavoro" nell'esporre calcoli e dati ricco di funzioni e Sub che ritengo davvero ottime
il post relativo è il seguente
Per salvo50, una cortesia
Ciao salvo50, e un saluto a tutti quelli che mi leggeranno:-) ....questo metodo mi è venuto in mente ieri qualche giorno fà:-) Vorrei testarlo con uno script , visto che i tempi con carta e penna sarebbero lunghissimi ...  Ecco un esempio molto chiaro: Prendo tutti gli estratti delle prime 4...
				
					
						
					
					forum.lottoced.com
				
			al 19 esimo post hai pubblicato il tuo script relativo agli argomenti richiesti dall'utente, ciò che chiedo ad I-legend è capire come posso modificare i calcoli che chiedi alla funzione
Function GetSum(a)
che quì riporto per intero
' queesta funzione esegue i calcoli
Function GetSum(a)
Dim i
Do While UBound(a) > 1
ReDim aSom(0)
For i = 1 To UBound(a) - 1
ReDim Preserve aSom(i)
aSom(i) = Fuori90(a(i) + a(i + 1))
Next
ReDim a(0)
For i = 1 To UBound(aSom)
ReDim Preserve a(i)
a(i) = aSom(i)
Next
Scrivi StringaNumeri(a,,True)
Loop
GetSum = a(UBound(a))
End Function
dove dopo aver caricato gli estratti scelti viene fatta la somma tra il 1 ed 2 estratto e poi tra il 2 ed il 3 e così via,
la mia richiesta si basa sul fatto che vorrei semplicemente eseguire la somma degli estratti scelti, ad esmpios supponiamo di aver scelto i primi 3 estratti di Bari che quì riporto frutto di fantasia 20 32 40
il calcolo da eseguire sarà 20+32+40 = 2 con il fuori 90
Io ci ho provato in diversi modi ma evidentemente molte sono le cose concatenate alle function ed alle sue regole.
Lo Chiedo a Te I-Legend visto che è opera Tua, sperando che sia possibile e che Tu abbia voglia di Aiutarmi in questa mia richiesta.
Di seguito riporto lo script per intero
		Codice:
	
	Option Explicit
' Verificare che i risultati ottenuti siano esatti o conformi a quanto richiesto
' Selezione di n estratti a cui applicare il calcolo somma consecutiva
' script per matematico utente ced
Sub Main
   Dim idEstr
   Dim aPos(55,2)
   ReDim aEstrVer(0)
   Dim sEstr
   ReDim aR(0):Call ScegliMyRuote(aR)
   Dim aRT(1):aRT(1) = 11
   Call ScegliEstratti(aEstrVer,aPos,sEstr)
   ReDim aNum(0)
   Dim aAmb(2),aP1(1),aP2(2):aP1(1) = 1:aP2(2) = 1
   Dim qEstr:qEstr = CInt(InputBox("minimo 1 ","inserisci quanti concorsi analizzare",1)) ' analizzo gli ultimi 20 concorsi si puo cambiare
   If qEstr < 1 Then Exit Sub
   Dim nClp:nClp = 9 ' numero colpi di verifica
   Dim aVCap:aVCap = Array("Complemento a 90","Simmetrico a 91","Diamterale","Vertibile","Diametrale Decina")
   Dim idCap:idCap = ScegliOpzioneMenu(aVCap,0,"Calcola il .... del primo capogioco") + 1
   Dim Ini,fin
   fin = EstrazioneFin
   Ini = fin -(qEstr - 1)
   For idEstr = Ini To fin
      Scrivi FormatSpace(GetInfoEstrazione(idEstr) & "   " & sEstr,60,1) & "  ",1,,vbBlue,vbCyan ' informazioni data e ruote
      Call CaricaAEstr(idEstr,aPos,aEstrVer,aNum)
      Scrivi StringaNumeri(aNum,,True)
      aAmb(1) = GetSum(aNum) ' numero ottenuto dal calcolo
      Select Case idCap
      Case 1
         aAmb(2) = 90 - aAmb(1) ' secondo numero ottenuto come complemento 90 dell ambata principale
      Case 2
         aAmb(2) = 91 - aAmb(1) ' simmetrico 91
      Case 3
         aAmb(2) = Diametrale(aAmb(1))
      Case 4
         aAmb(2) = Vert(aAmb(1)) ' vertibile
      Case 5
         aAmb(2) = DiametraleD(aAmb(1)) ' diametrale decina
      End Select
      Scrivi FormatSpace(GetInfoEstrazione(idEstr) & "   " & StringaRuote(aR) & "  " & FormatSpace(GetSum(aNum),2,1) & "  " & StringaNumeri(aAmb,,True),60,1) & "  ",1,,vbBlue,vbCyan
      Call ImpostaGiocata(1,aAmb,aR,aP1,nClp)
      Dim aSestina:aSestina = Array(0,aAmb(1),aAmb(2),Fuori90(aAmb(1) + 1),Fuori90(aAmb(1) - 1),Fuori90(aAmb(2) + 1),Fuori90(aAmb(2) - 1))
      Call ImpostaGiocata(2,aSestina,aRT,aP2,nClp)
      Call Gioca(idEstr)
      Call AvanzamentoElab(Ini,fin,idEstr)
   Next
   Scrivi FormatSpace(" ",62),1,,RGB(0,128,64),RGB(236,255,245)
   Scrivi FormatSpace("  Hai scelto come Secondo capaogioco il :  " & aVCap(idCap - 1),62),1,,RGB(0,128,64),RGB(236,255,245)
   Scrivi FormatSpace(" ",62),1,,RGB(0,128,64),RGB(236,255,245)
   ScriviResoconto
End Sub
' questa sub carica gli estratti su cui effettuare i calcoli
Sub CaricaAEstr(idestr,aPos,aEstrVer,anum)
   Dim R,k,p,E
   k = 0
   ReDim anum(0)
   For p = 1 To UBound(aEstrVer)
      E = Estratto(idestr,aPos(aEstrVer(p),1),aPos(aEstrVer(p),2))
      If isNumeroValidoLotto(E) Then
         ReDim Preserve anum(p)
         anum(p) = Estratto(idestr,aPos(aEstrVer(p),1),aPos(aEstrVer(p),2))
      End If
   Next
End Sub
' queesta funzione esegue i calcoli
Function GetSum(a)
   Dim i
   Do While UBound(a) > 1
      ReDim aSom(0)
      For i = 1 To UBound(a) - 1
         ReDim Preserve aSom(i)
         aSom(i) = Fuori90(a(i) + a(i + 1))
      Next
      ReDim a(0)
      For i = 1 To UBound(aSom)
         ReDim Preserve a(i)
         a(i) = aSom(i)
      Next
      Scrivi StringaNumeri(a,,True)
   Loop
   GetSum = a(UBound(a))
End Function
Sub ScegliEstratti(aEstrVer,aPos,sEstr)
   ReDim aVoci(55)
   ReDim aVociSel(55)
   Dim R,m,p
   For R = 1 To 12
      If R = 11 Then R = 12
      For p = 1 To 5
         m = m + 1
         aVoci(m) = p & SiglaRuota(R)
         aPos(m,1) = R
         aPos(m,2) = p
      Next
   Next
   m = 0
   sEstr = ""
   If ScegliDaLista(aVoci,aVociSel,"Seleziona Estratti di Verifica") >= 0 Then
      For p = 1 To UBound(aVoci)
         If aVociSel(p) Then
            m = m + 1
            ReDim Preserve aEstrVer(m)
            aEstrVer(m) = p
            sEstr = sEstr & aVoci(p) & "  "
         End If
      Next
   End If
End Sub
Sub ScegliMyRuote(aRuVer)
   ReDim aVoci(10)
   ReDim aVociSel(10)
   Dim k,m
   For k = 0 To 10
      m = m + 1
      If m = 11 Then m = 12
      aVoci(k) = NomeRuota(m)
   Next
   m = 0
   If ScegliDaLista(aVoci,aVociSel,"Seleziona Ruota/e per capogiochi") >= 0 Then
      For k = 0 To UBound(aVoci)
         If aVociSel(k) Then
            m = m + 1
            ReDim Preserve aRuVer(m)
            aRuVer(m) = k + 1
            If aRuVer(m) = 11 Then aRuVer(m) = 12
         End If
      Next
   End If
End SubGrzaie come sempre
 
 
		
 
     
     
     
    