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 Class
Jos 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 If
Kiitos, 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.