Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Matrici
Forum - Visual Basic 6 - Matrici

Avatar
karl93 (Normal User)
Rookie


Messaggi: 47
Iscritto: 17/09/2011

Segnala al moderatore
Postato alle 19:27
Giovedì, 03/11/2011
Salve,
ho creato una matrice e visualizzato grazie al componente MSFlexGrid.

Ecco il codice:

Codice sorgente - presumibilmente VB.NET

  1. Option Explicit
  2. Dim i, j, righecolonne As Integer
  3. Dim matrice(1 To 10, 1 To 10) As Integer
  4.  
  5. Private Sub Command1_Click()
  6. righecolonne = InputBox("inserire il numero colonne/righe" & vbCrLf & "(inserire valore minore di 10)", "inserimento dati ")
  7. For i = 1 To righecolonne
  8. For j = 1 To righecolonne
  9. matrice(i, j) = Val(InputBox("inserire valore dell'elemento" & CStr(i) & "," & CStr(j), "Caricamento matrice"))
  10. Next j
  11. Next i
  12.  
  13.  
  14.  
  15. End Sub
  16.  
  17.  
  18. Private Sub Command2_Click()
  19. Label3.Caption = sommaprincipale
  20.  
  21. End Sub
  22.  
  23. Private Sub Command3_Click()
  24. Label4.Caption = sommasecondaria
  25.  
  26.  
  27. End Sub
  28.  
  29. Private Function sommasecondaria() As Integer
  30. Dim somma, k As Integer
  31. somma = 0
  32. k = righecolonne
  33. For i = 1 To righecolonne
  34. somma = somma + matrice(i, k)
  35.  
  36. Next i
  37. sommasecondaria = somma
  38. End Function
  39.  
  40. Private Sub Command4_Click()
  41. flex.FixedRows = 1
  42. flex.FixedCols = 1
  43. flex.Rows = righecolonne + 1
  44. flex.Cols = righecolonne + 1
  45. For i = 1 To righecolonne
  46. For j = 1 To righecolonne
  47. flex.Row = i
  48. flex.Col = j
  49. flex.CellFontBold = True
  50. flex.Text = matrice(i, j)
  51. Next j
  52. Next i
  53.  
  54. End Sub
  55.  
  56.  
  57.  
  58. Private Function sommaprincipale() As Integer
  59. Dim somma As Integer
  60. somma = 0
  61. For i = 1 To righecolonne
  62. somma = somma + matrice(i, i)
  63. Next i
  64. sommaprincipale = somma
  65. End Function




Ora vorrei selezionare una casella e visualizzare il suo contenuto in una TextBox. Come risolvere? :k:

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6390
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:45
Giovedì, 03/11/2011
Codice sorgente - presumibilmente VB.NET

  1. Private Sub flex_Click()
  2.     Text1.Text = flex.Text
  3. End Sub



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
karl93 (Normal User)
Rookie


Messaggi: 47
Iscritto: 17/09/2011

Segnala al moderatore
Postato alle 10:42
Venerdì, 04/11/2011
Funziona molto bene. Grazie mille. ;)


Se invece devo inserirlo in più Text. Ad esempio voglio che le righe/colonne siano 2 e i valori sono:

1.1 = 3
1.2 = 5
2.1 = 2
2.2 = 8


Quando clicco su una casella, tipo 1.1, compari nella Text1 il suo valore...se invece clicco il valore 2.1 voglio che questa compari nella Text2...quindi devo riuscire a gestire questo evento.  :k:


PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6390
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 10:44
Venerdì, 04/11/2011
Non ho capito bene ma se vuoi usare più textbox, crea un array di textbox e gestisci l'indice


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
karl93 (Normal User)
Rookie


Messaggi: 47
Iscritto: 17/09/2011

Segnala al moderatore
Postato alle 11:14
Venerdì, 04/11/2011
Ora ti spiego il problema. Devo gestire un numero massimo di 25 auto...ogni auto ha un suo valore. Quindi ho pensato di gestirlo cn le matrici...sbaglio??? Perchè vorrei visualizzare il tutto grazie al componente MSFlexGrid. Dovrei gestire il fatto che ad esempio io inserisco 3...devo poter inserire il nome dell'auto(sempre tre nomi diversi) e 3 valori:

1 = 30421
2 = 30425
3 = 30428

Quindi non dovrei visualizzare 3 righe e 3 colonne...visto che non mi servono. Secondo te dovrei gestire con due vettori?

Tipo scrivendo così:


Codice sorgente - presumibilmente VB.NET

  1. Do
  2. N = InputBox("Quante macchine vuoi caricare?" & vbCrLf & _
  3. "(Inserire un valore minore di 25)", "richiesta numero dati")
  4. Loop While N > 25
  5.  
  6. For i = 1 To N
  7. Numeri(i) = InputBox("Inserisci Numero Macchina", "Inserimento Dati")
  8. Valore(i) = InputBox("Inserisci Valore", "Inserimento Dati")
  9. Label1.Caption = Label1.Caption & Numeri(i) & " "
  10. Label4.Caption = Label4.Caption & Valore(i) & " "
  11.  
  12. Next i


PM Quote
Avatar
karl93 (Normal User)
Rookie


Messaggi: 47
Iscritto: 17/09/2011

Segnala al moderatore
Postato alle 11:20
Venerdì, 04/11/2011
Come ho scritto io...visualizzo il loro contenuto in due Label, ma a me dopo serve che posso cliccare su una casella e visualizzarla in una Text. Ecco perchè stavo gestendo con le matrici. Oppure è possibile visualizzare quei vettori nel componente MSFlexGrid??? ;)

PM Quote
Avatar
karl93 (Normal User)
Rookie


Messaggi: 47
Iscritto: 17/09/2011

Segnala al moderatore
Postato alle 12:41
Venerdì, 04/11/2011
In questo modo visualizzo i valori(valore auto) e i numeri(nome auto):

Codice sorgente - presumibilmente VB.NET

  1. Do
  2. N = InputBox("Quante macchine vuoi caricare?" & vbCrLf & _
  3. "(Inserire un valore minore di 25)", "richiesta numero dati")
  4. Loop While N > 25
  5.  
  6. For i = 1 To N
  7. Numeri(i) = InputBox("Inserisci Numero Macchina", "Inserimento Dati")
  8. Valore(i) = InputBox("Inserisci Valore", "Inserimento Dati")
  9. Next i
  10.  
  11. Flex1.Cols = N + 1
  12. For i = 1 To N
  13. Flex1.Col = i
  14. Flex1.CellFontBold = True
  15. Flex1.Text = Numeri(i)
  16. Next i
  17.  
  18.  
  19. Flex.Cols = N + 1
  20. For i = 1 To N
  21. Flex.Col = i
  22. Flex.CellFontBold = True
  23. Flex.Text = Valore(i)
  24. Next i




Se invece voglio visualizzarli in un solo componente MSFlexGrid ??? :-|

Ultima modifica effettuata da karl93 il 04/11/2011 alle 12:52
PM Quote