Plaats bepalen

Status
Niet open voor verdere reacties.

zettekakkers

Gebruiker
Lid geworden
21 jul 2011
Berichten
134
Hallo iedereen :)

De opgave is geef 5 getallen in, het kleinste getal moet worden weer gegeven en het hoeveelste getal het was?
Alles werkt maar heb geen idee hoe ik de plaats zou moeten bepalen van het kleinste getal?

Dim intMin, intTeller, intGetal As Integer
intMin = Integer.Parse(InputBox("Lees getal 1 in", "Invoer"))
For intTeller = 2 To 5
intGetal = Integer.Parse(InputBox("Lees getal " & intTeller & " in", "Invoer"))
If intGetal < intMin Then
intMin = intGetal
End If
Next
lblKleinste.Text = "Het kleinste getal is " & intMin
 
Dat staat dan in intTeller die je dan ook nog in een variabele moet opslaan in het If intGetal < intMin gedeelte.
 
Code:
Public Function KleinsteGetal(ByVal Getallen As Double())
        Dim Kleinste As Double = Getallen(0)
        Dim Index As Double = 1

        For Each item As Double In Getallen
            If item < Kleinste Then
                Kleinste = item
                Index = Array.IndexOf(Getallen, item)
            End If
        Next

        Dim GetalEnIndex As Array = Array.CreateInstance(GetType(Double), 2)
        GetalEnIndex.SetValue(Kleinste, 0)
        GetalEnIndex.SetValue(Index, 1)

        Return GetalEnIndex
    End Function

Voìla. Een functie die een array van nummers leest en vervolgens het kleinste nummer + de index van dat nummer in een array teruggeeft :).
En het werkt ook met decimale getallen :D.
 
Code:
Public Function KleinsteGetal(ByVal Getallen As Double())
        Dim Kleinste As Double = Getallen(0)
        Dim Index As Double = 1

        For Each item As Double In Getallen
            If item < Kleinste Then
                Kleinste = item
                Index = Array.IndexOf(Getallen, item)
            End If
        Next

        Dim GetalEnIndex As Array = Array.CreateInstance(GetType(Double), 2)
        GetalEnIndex.SetValue(Kleinste, 0)
        GetalEnIndex.SetValue(Index, 1)

        Return GetalEnIndex
    End Function

Voìla. Een functie die een array van nummers leest en vervolgens het kleinste nummer + de index van dat nummer in een array teruggeeft :).
En het werkt ook met decimale getallen :D.

Ik weet echt niet waarom je zo raar doet met arrays etc; setvalue bla bla. Nu krijgt hij een array terug, en dan? Lekker handig..

Zo is het simpeler:
PHP:
        Dim IndexVanKleinste As Integer = 0
        Dim Lijst As New List(Of Integer)
        For i As Integer = 1 To 5
            Lijst.Add(InputBox("Geef getal " & i & " op:"))
        Next
        Dim KleinsteGetal As Integer = Lijst(0)
        For i As Integer = 0 To Lijst.Count - 1
            If Lijst(i) < KleinsteGetal Then
                KleinsteGetal = Lijst(i)
                IndexVanKleinste = i
            End If
        Next
        MessageBox.Show("Kleinste getal: " & KleinsteGetal & Environment.NewLine & "Index van kleinste getal: " & IndexVanKleinste)
 
@CaptainBri: Ik wilde een functie maken die de getallen retourneerde zodat het makkelijker is voor de TS. Die hoeft alleen een functie te plakken. Hoewel jouw code natuurlijk ook best makkelijk te implementeren is. :)

CaptainBri zei:
Nu krijgt hij een array terug, en dan? Lekker handig..

Hoezo is een array niet handig? :confused:
 
@CaptainBri: Ik wilde een functie maken die de getallen retourneerde zodat het makkelijker is voor de TS. Die hoeft alleen een functie te plakken. Hoewel jouw code natuurlijk ook best makkelijk te implementeren is. :)



Hoezo is een array niet handig? :confused:

Het ziet er niet uit alsof hij een functie nodig heeft, dan moet hij eerst alles gaan inlezen naar een list/Array/int-array wat weer extra rotzooi is en moeilijkheden meebrengt.

Nu geef je hem een Array terug die hij na de return weer uit elkaar moet plukken om de individuele waarden te ontvangen. Beter geen functie maken, gewoon in dezelfde sub uitvoeren.
 
Ach, laten we de reactie van de TS afwachten. Het gaat erom wat hij het makkelijkste vind.
 
Ach, laten we de reactie van de TS afwachten. Het gaat erom wat hij het makkelijkste vind.

:D jullie zijn beiden bedankt maar ik gebruik toch liever geen arrays
en de code is perfect buiten dat je vergeten was om de
MessageBox.Show("Kleinste getal: " & KleinsteGetal & Environment.NewLine & "Index van kleinste getal: " & IndexVanKleinste :D+ 1:D)
de +1
Voila het werkt perfect
Als ik de code zo bekijk snap ik zelf niet dat ik daar niet zelf ben op gekomen :D

Iedereen heeft zijn eigen methodes om te programmeren niet waar? =D
 
Goed dat het is opgelost!
(Misschien kun je trouwens van 'Integer' 'Double' maken. Dan werkt het ook met decimale getallen. ;))
 
Goed dat het is opgelost!
(Misschien kun je trouwens van 'Integer' 'Double' maken. Dan werkt het ook met decimale getallen. ;))

Ja nog beter
ik heb een vraag waar zou ik wat meer te weten kunnen komen over "list"
ik heb dit echt nog nooit gebruikt maar het lijkt best wel handig :thumb:

jullie zijn :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan