Vettori
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??!!!
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
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.
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)
Però ho notato che facendo il debug dice tale errore su (parte rossa)
vettore(j) = vettore(i) + vettore(i + 1)
Posta il prg così com'è adesso, e domani ti do una risposta.
ciao
ciao

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!!!
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!!!
Il programma corretto:
Gli errori del prg precedente:
- 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!
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:

- 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!

Una cosa però...
Perchè si utilizza la funzione Str??
Perchè si utilizza la funzione Str??
Str converte un numero in stringa: nel textbox si possono visualizzare stringhe
Giusto giusto!!! Grazie ancora...
Gira perfettamente!!! Complimenti per le tue Ottime conoscenze!!!
Gira perfettamente!!! Complimenti per le tue Ottime conoscenze!!!