Vettori

stellacometa
E' già un paio di giorni che cerco totalmente invano di risolvere e appagare una mia curiosità su un problema (forse anche banale).

Carico un vettore di 16 elementi, dopo le somme degli elementi del primo vettore presi a 2 a 2 devono dare gli elementi di un secondo vettore..

esempio:
vett1= 1,2,3,4
vett2= 3,7

Come procedo??!!! :(

Risposte
lorven
For j = 0 To dimensione
vett2(j) = vettore(i) + vettore(i + 1)
i = i + 2
Next j


sostituisci con:

i = 1
For j = 1 To dimensione
vett2(j) = vettore(i) + vettore(i + 1)
i = i + 2
Next j

spero che basti, altrimenti mi copio il tuo progr. e ne verifico l'esecuzione.

stellacometa
Niente da fare..da sempre errore!!!

Però ho notato che facendo il debug dice tale errore su (parte rossa)

vettore(j) = vettore(i) + vettore(i + 1)

lorven
Posta il prg così com'è adesso, e domani ti do una risposta.
ciao :D

stellacometa
Private Sub Form_Load()
dimensione = InputBox("inserisci dimensione", "chiedi dimensione")
ReDim vettore(1 To dimensione)
For i = 1 To dimensione
vettore(i) = InputBox("inserisci il " & (i) & " elemento", "inserisci")
Next i
For i = 1 To dimensione - 1
For j = i + 1 To dimensione
If vettore(i) > vettore(j) Then
c = vettore(i)
vettore(i) = vettore(j)
vettore(j) = c
End If
Next j
Text1.Text = vettore(i)
Next i
Text1.Text = Text1.Text + " " + vettore(i)
If dimensione Mod 2 <> 0 Then
dimensione = dimensione / 2 + 1
Else
dimensione = dimensione / 2
End If
For j = 1 To dimensione
vettore(j) = vettore(i) + vettore(i + 1)
i = i + 2
Next j
Text2.Text = "" + vettore(j)
End Sub


GRAZIE DI TUTTO LORVEN!!!

lorven
Il programma corretto:
Private Sub Form_Load()
dimensione = InputBox("inserisci dimensione", "chiedi dimensione")
ReDim vettore(1 To dimensione) As Integer
Text1.Text = ""
Text2.Text = ""
For i = 1 To dimensione
    vettore(i) = InputBox("inserisci il " & (i) & " elemento", "inserisci")
Next i
For i = 1 To dimensione - 1
    For j = i + 1 To dimensione
        If vettore(i) > vettore(j) Then
           c = vettore(i)
           vettore(i) = vettore(j)
           vettore(j) = c
        End If
        Next j
    Text1.Text = Text1.Text + " " + Str(vettore(i))
Next i
Text1.Text = Text1.Text + " " + Str(vettore(i))
If dimensione Mod 2 <> 0 Then
   dimensione = dimensione / 2 + 1
   Else
        dimensione = dimensione / 2
        End If
ReDim vett2(1 To dimensione) As Integer 
i = 1
For j = 1 To dimensione
    vett2(j) = vettore(i) + vettore(i + 1)
    Text2.Text = Text2.Text + " " + Str(vett2(j))
    i = i + 2
Next j

End Sub

Gli errori del prg precedente: :evil:
- l'indice i valeva "dimensione" prima dell'ultimo ciclo e doveva, checchè tu ne dica, essere reimpostato a 1;
- i vettori non erano dichiarati numerici - c'è da fare la somma degli elementi;
- le somme, secondo le tue intenzioni, dovevano andare in un secondo vettore, vett2, ma venivano riassegnate allo stesso 1° vettore;
e qualche altra cosina.
Vale sempre l'osservazione che, data la natura del problema, si dovrebbe accettare come dimensione vettore solo un intero pari.
Ciao! :D

stellacometa
Una cosa però...
Perchè si utilizza la funzione Str??

lorven
Str converte un numero in stringa: nel textbox si possono visualizzare stringhe

stellacometa
Giusto giusto!!! Grazie ancora...
Gira perfettamente!!! Complimenti per le tue Ottime conoscenze!!!

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.