Hei!
Tarkoitus olisi saada aikaan ohjelma, joka sisältää kaksi taulukkoa. Toisessa on tuotteiden nimiä ja toisessa niiden hinnat.
Olen tehnyt taulukon samaan tyyliin kuin alla oleva esimerkki
'kahden taulukon akkostus, "nimet pelinumeron mukaisesti"
Joukkue(0) = "Simo" : Joukkue(1) = "Matti" : Joukkue(2) = "Litti"
Dim Pelinumero() As Integer = {12, 16, 10}Ohjelma kysyy InputBoxin avulla, minkä tuotteet hintaa käyttäjä haluaa etsiä. Ongelmana on, miten saan etsittyä tuotteelle oikean hinnan toisesta taulukosta?
Huom tekemäni esimerkit on tehty VB.nettiä käyttäen!!
Tuossatapauksessa näin
Dim luku As Integer
luku = InputBox("Anna luku:");
MsgBox("Henkilön " & joukkue(luku) & " pelinumero on " & Pelinumero(luku))
' Jos luku muuttujan arvo on 1, niin ohjelman pitäisi tulostaa: "Henkilön Matti pelinumero on 16"Huom en ole testannut koodia!!!
Itse tosin loisin oman luokan, joka sisältää tuotteen nimen ja hinnan ja lisäisin olioina yhteen taulukkoon ne.
Tässä vielä esimerkki tuosta tapauksesta, vaatii yhden buttonin formille
Option Explicit On
Public Structure Tuote
'Jäsenet
Public Nimi As String
Public id As Integer
Public Hinta As Double
End Structure
Public Class Form1
'3 tuotetta sisältävä taulukko
Dim tuotteet(3) As Tuote
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Laitetaan tuotteille arvot
tuotteet(0).id = 1
tuotteet(0).Nimi = "CD-levy"
tuotteet(0).Hinta = 10
tuotteet(1).id = 2
tuotteet(1).Nimi = "DVD-levy"
tuotteet(1).Hinta = 13
tuotteet(2).id = 3
tuotteet(2).Nimi = "BluRay-levy"
tuotteet(2).Hinta = 20
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim luku As Integer
luku = InputBox("Tuotteen numero: ")
MsgBox("Tuotteen " & tuotteet(luku).Nimi & " id on " & tuotteet(luku).id & " ja Hinta on " & tuotteet(luku).Hinta)
End Sub
End ClassJos on tarkoitus etsiä esimerkiksi nimen mukaan, käy for-silmukalla listaa läpi ja oikean arvon kohdalla ota indeksi talteen ja lopeta silmukka.
kohta = -1
For i As Integer = alku To loppu Do
If Joukkue(i) = haettava Then
kohta = i
Exit For
End If
Next i
If kohta = -1 Then
' Ei löytynyt!
Else
' Joukkue(kohta), Pelinumero(kohta)
End IfKiitos, täytyy kokeilla kummin saan toimimaan helpommin!
Etuna tuossa structuren käytössä on se, että et tarvitse kuin yhden taulukon ja dataa on helpompi lisätä myöhemmin, lisäämällä vain uuden muuttujan struktuuriin.
Käytän VB2008:aa, en VB.Nettiä...
Kiitos Vehkis ja Metabolix, molemmilla tavoilla toimii hyvin!
VB2008 = vb.net. Niin ainakin olen ymmärtänyt.
kyllä käytät Firia .net frameworkkia vaikka et ehkä sitä tiedä :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.