Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: VB.net

salafi [17.12.2003 21:26:08]

#

Miten saant ehtyä tälläsen asian vb.netillä

minulla on muuttujat a,b,z,x,y
a:n pitäisi olla yhtäkuin pienin (tai suurin riippuen tilaanteesta) muuttujista z,x,y
ja b:n toiseksi pienin esim.
z = 1 x = 2 y = 3
a = z
b = x

sqwiik [17.12.2003 21:44:50]

#

Douch....
Juuri tämänkaltaisissa tilanteissa C:n joko-tai pikavalinta on kätevä...
Tarkistat ensin, kumpi on suurempi parista z,x ja sitten kumpi suurempi parista x,y. Sitten vielä vertaillaan näiden kahden keskinäistä järjestystä.
Koodi vetäisty syvältä hatun pohjalta.

Dim a, b, x, y, z
x = 1 : y = 6 : z = 0 'testaa eri arvoilla
  If z > x Then 'z kenties suurin, x kenties keskellä
    If z > y Then ' z > y <?> x
      a = z
      If x > y Then b = y Else b = x 'Pienin on joko x t. y
    Else ' y > z > x, eli x pienin
      a = y
      b = x
    End If
  Else 'x kenties suurin ja mahtavin
    If x > y Then 'x > z <?> y
      a = x
      If z > y Then b = y Else b = z
    Else 'y > x > z
      a = y
      b = z
    End If
  End If

Eli tuon koodin jälkeen a = max ja b = min.

tnb [17.12.2003 21:50:40]

#

Tässä ratkaisu:

Dim z As Integer = 1
        Dim x As Integer = 2
        Dim y As Integer = 3
        Dim a As Integer 'tähän pienin
        Dim b As Integer 'tähän suurin
        Dim c1 As Integer
        Dim c2 As Integer
        Dim c3 As Integer
        Dim c As Integer 'tähän keskimmäinen
        a = Math.Min(z, y)
        a = Math.Min(a, x) 'tässä pienin
        b = Math.Max(z, y)
        b = Math.Max(b, x) 'tässä suurin
        'keskimmäisen valinta kolmesta
        c1 = Math.Min(x, y)
        c2 = Math.Min(x, z)
        c3 = Math.Min(y, z)
        c = Math.Max(c1, c2)
        c = Math.Max(c, c3)
        TextBox1.Text = a
        textbox2.text = c
        textbox3.text = b

Jos lukuja on enempi, käytä Sort ohjelmia!!!

Antti Laaksonen [17.12.2003 22:10:43]

#

lainaus:

Juuri tämänkaltaisissa tilanteissa C:n joko-tai pikavalinta on kätevä...

Jos ymmärsin oikein mitä tarkoitat, niin VB:ssä on samantapainen IIf-funktio. Sitä tosin käytetään varsin harvoin. Nimittäin seuraava C-koodinpätkä...

luku = 5 > 1 ? 2 : 3

...voidaan kirjoittaa VB:ssä näin:

luku = IIf(5 > 1, 2, 3)

Viestin otsikko muuten voisi olla paljon parempi.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta