salvo50
Advanced Member >PLATINUM PLUS<
Ciao a Tutti!
Questo è uno script fatto da Joe, dove la variabile N contiene un numero con più di 30 cifre e non va in errore di overflow
quest'altro è uno script con una variabile uguale ma con solo 10 cifre è va in errore di overflow, anche col fuori90 e con questo tipo di divisione < \ > invece con 9 cifre non va in errore, siccome devo fare dei calcoli (divisioni, fuori90, mod, moltiplicazioni) con numeri superiori alle nove cifre e per non farli mano, volevo farli tramite script e dato che vanno in errore, chiedevo se esiste qualche "trucco" o tipo di variabile diversa per poter correggere questa anomalia
Questo è uno script fatto da Joe, dove la variabile N contiene un numero con più di 30 cifre e non va in errore di overflow
Codice:
' PIRAMIDARE Scritto da Joe91 09/03/2007 V.3.0
' Aggiunta Funzione Fuori9 24/07/2007 Rosanna
' Nuova Impaginazione risultati 25/07/2007 Joe91
Sub Main()
Dim c()
n = InputBox("Inserisci il numero di cui calcolare la piramide",,"000000000987654321012345678999999999")
For A = 1 To Len(N) : Scrivi Mid(n,a,1) & " ",0,0 : Next : Scrivi 'Formatta e scrive la formazione iniziale
For fine = Len(n) To 2 Step - 1 'Impone la fine dei calcoli per mancanza di Numeri
Sp = Sp + 1 : For pir = 1 To sp : Scrivi " ",0,0 : Next
x = fine : r = "" : ReDim c(x) 'memorizza la (nuova) lunghezza e pulisce il risultato
For a = 1 To x : c(a) = Mid(n,a,1) : Next 'scompatta i numeri
For a = 1 To x - 1 'per ogni numero da sinistra a destra
t = Fuori9(c(a) + c(a + 1)) 'sommo i due valori col fuori9
Scrivi t & " ",0,0
r = r & t 'Ricompone via via la formazione risultante
Next 'Passa al prossimo numero
Scrivi 'A capo su altra riga.
n = r 'Rimemorizza la formazione calcolata
Next 'Ripete le operazioni di calcolo
Scrivi
End Sub
'------------------------------------------------------------------------------------------
Function Fuori9(nn)
If nn -(9*Int(nn/9)) = 0 Then Fuori9 = 9 Else Fuori9 =(nn -(9*Int(nn/9)))
End Function
quest'altro è uno script con una variabile uguale ma con solo 10 cifre è va in errore di overflow, anche col fuori90 e con questo tipo di divisione < \ > invece con 9 cifre non va in errore, siccome devo fare dei calcoli (divisioni, fuori90, mod, moltiplicazioni) con numeri superiori alle nove cifre e per non farli mano, volevo farli tramite script e dato che vanno in errore, chiedevo se esiste qualche "trucco" o tipo di variabile diversa per poter correggere questa anomalia
Codice:
Option Explicit
Sub Main()
Dim A,X
A = InputBox("Inserisci il numero ",,"7654321012 ")
X = A Mod 90
Scrivi Format2(A)
Scrivi
Scrivi Format2(X)
End Sub
Ultima modifica: