Se posso ... provare, a mettere un pò assieme, i vagoni di questo treno ...
che avendo scartamenti differenti si muovono su binari differenti,
diciamo che il mio algoritmo è più complicato, ma più versatile.
Quello di Mike è MOLTO rigido.
Cioè sviluppa solo ed esclusivamente i calcoli richiesti per un unico scopo.
Perciò, in quanto tale, è più piccolo più semplice, più veloce.
Il mio algoritmo lavora con le stringhe ed eseguiva un "Fuori10-(ATIPICO)"
Per convertire "in numero" i simboli della stringa ad esso corrispondenti ...
SOMMAVA ad essi "uno-ZERO".
Convertendo così "le cifre" in "numero" senza modificarne il valore assoluto.
E' uno script vecchio ed allora non esistevano (quasi) Spaziometria,
tantomeno il "Fuori9".
Rosanna fece, una funzione, delle istruzioni presenti,
cioè per questo Fuori 9/10, scritto, tra le righe dello script.
Codesta funzione fu ritenuta utile, anche per altro,
e nel tempo fu evoluta, sino a diventare il FuoriX.
Cioè l'istruzione, che è nel corredo delle funzioni di Spaziometria.
In ultimo s'è detto di un Fuori10-atipico e che i più "piramidano" in Figura.
Quindi si.
Si semplifica molto, lo script saltando il Fuori9
che per sommi capi "coincide" con la Figura di un numero.
Perdonerete la genericità dell'esposizione,
in opposizione alla rigidità di alcuni cabalisti convinti.
Codice:
Option Explicit
Sub Main()
Dim X, N, Chiave
Chiave = "875"
For X = 1 To 90
ColoreTesto 1 : Scrivi Chiave,True,False
ColoreTesto 0 : Scrivi Format2 (X) & Space (2),True
N = Chiave & Format2(X)
ColoreTesto 2 : Scrivi Piramide(N),True : ColoreTesto 0
Scrivi
Next
End Sub
Function Piramide(N) 'BY JOE
Dim F,I,G,A,R,O
Dim C(20) 'Fino a 20 numeri
O = True
'If Not O Then Scrivi N 'Scrive la formazione iniziale
For F = Len(N) To 3 Step - 1 'Impone la fine dei calcoli per mancanza di Numeri
I = F : R = "" 'memorizza la (nuova) lunghezza e pulisce il r isultato
For A = 1 To I : C(A) = Mid(N,A,1) : Next 'scompatta i numeri
For A = 1 To I - 1 'per ogni numero da sinisctra a destra
G = Figura(C(A) & C(A+1)) 'Piramida in Figura
R = R & G 'Ricompone la formazione risultante
Next 'Passa al prossimo numero
If Not O Then Scrivi R 'Formatta e scrive la varie formazioni.
N = CStr(R) 'Rimemorizza la formazione calcolata
Next 'Ripete le operazioni di calcolo
Piramide = N
End Function