prodotto di vettori



  • prodotto di vettori
    di stefman_123 data: 01/05/2016 15:29:01

    salve ragazzi, si tratta del prodotto di vettori, ecco la traccia: partendo dalla colonna b1, inserire 10 numeri interi(1,2,3,4,5,6,7,8,9,10),moltiplicare i numeri inseriti e stampare il risultato nella cella e1. Scrivo nel codice:
    Private Sub CommandButton1_Click()
    Dim vett1(10) As Integer 'dichiaro una variabile strutturata vett10 di 10 interi
    Dim prodotto As Integer
    Dim i As Integer
    'scarico i dieci numeri da excel al vettore
    vett1(0) = Cells(1, 2)
    vett1(1) = Cells(2, 2)
    vett1(2) = Cells(3, 2)
    vett1(3) = Cells(4, 2)
    vett1(4) = Cells(5, 2)
    vett1(5) = Cells(6, 2)
    vett1(6) = Cells(7, 2)
    vett1(7) = Cells(8, 2)
    vett1(8) = Cells(9, 2)
    vett1(9) = Cells(10, 2)
    prodotto = 0
    For i = 0 To 9
    prodotto = prodotto + vett1(0) * vett1(1) * vett1(2) * vett1(3) * vett1(4) * vett1(5) * vett1(6) * vett1(7) * vett1(8) + vett1(9)
    Next
    MsgBox (prodotto)
    Cells(1, 5) = prodotto
    End Sub
    il risultato corretto sarebbe 3628800 (1*2*3*4*5*6*7*8*9*10) invece invece mi blocca a questo passaggio(evidenziando di giallo):
    prodotto = prodotto + vett1(0) * vett1(1) * vett1(2) * vett1(3) * vett1(4) * vett1(5) * vett1(6) * vett1(7) * vett1(8) + vett1(9)
    dicendo "errore di run-time6 overflow"
    Cosa non va?



  • di patel data: 01/05/2016 15:52:26

    allega il file





  • di Albatros54 data: 01/05/2016 16:12:59

    Cosi forse è meglio.
    ciao
    albatros54 
     
    Sub m()
    Dim vett1(10) As Long 'dichiaro una variabile strutturata vett10 di 10 interi
    Dim prodotto As Long
    Dim i As Integer
    'scarico i dieci numeri da excel al vettore
    vett1(0) = Cells(1, 2)
    vett1(1) = Cells(2, 2)
    vett1(2) = Cells(3, 2)
    vett1(3) = Cells(4, 2)
    vett1(4) = Cells(5, 2)
    vett1(5) = Cells(6, 2)
    vett1(6) = Cells(7, 2)
    vett1(7) = Cells(8, 2)
    vett1(8) = Cells(9, 2)
    vett1(9) = Cells(10, 2)
    prodotto = 1
    For i = 0 To 9
    prodotto = prodotto * vett1(i) 
    Next
    MsgBox (prodotto)
    Cells(1, 5) = prodotto
    End Sub






  • di stefman_123 data: 02/05/2016 11:34:15

    grazie albatros54, adesso funziona, molto gentile



  • di Albatros54 data: 02/05/2016 15:28:34