Probleem: Gamescores (met gebruik van Arrays)

Status
Niet open voor verdere reacties.

gast0187

Gebruiker
Lid geworden
4 nov 2012
Berichten
266
Hallo,

ik zit met een probleem met visual basic.

ik heb reeds hard gezocht om dit op te lossen en ik struikel voornamelijk bij het berekenen van het gemiddelde.

Als ik het gemiddelde wou weergeven gaf hij error, dus probeerde ik om gwn de score eerst eens weer te geven in een messagebox, maar met de scores doet hij ook al iets mis, Er komt gwn 1x 0 in mijn messagebox.

DOEL:

Ik heb een een array namen met 11 namen.
Ik wil voor elke naam een inputbox met de vraag, Wat is de score van ....(naam)?
Tenslotte wil ik in een message zien wie de hoogste score heeft en wat het gemiddelde is.?

Code:
Private Sub cmdStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart.Click
        'DECLARATIES
        Dim gem As String

        'De array namen
        Dim namen(10) As String
        namen(0) = "Jeffrey"
        namen(1) = "Kjell"
        namen(2) = "Viktor"
        namen(3) = "Antoon"
        namen(4) = "Jari"
        namen(5) = "Jesse"
        namen(6) = "Gijs"
        namen(7) = "Joshua"
        namen(8) = "Jell"
        namen(9) = "Ward"
        namen(10) = "Stijn"

        'het vragen van de scores
        For Each gamescores As String In namen
            gamescores = InputBox("Wat is de score van ")
            gamescores = CInt(gamescores)
            Debug.WriteLine(gamescores)
        Next
        MessageBox.Show(gamescores)

        'het weergeven wie de hoogste score heeft en de gemiddelde score.
        'gem = gamescores / 11
        'MessageBox.Show("Het gemiddelde bedraagt: " & gem & vbNewLine & "... heeft de grootste score gehaald.")
    End Sub
End Class

Kan iemand mij helpen? Alvast op voorhand bedankt voor de moeite.
 
Laatst bewerkt:
Ja, waarom?

Mvg gast0187
 
Laatst bewerkt door een moderator:
Omdat jullie exact dezelfde vraag hebben.
Alleen jij zegt niet dat het om een schoolopdracht gaat.

Misschien is het een idee om samen te gaan werken?
 
ja, maar hij weet hier ook geen raad mee.

Hij heeft mij dat gisteren verteld via fb.
 
Waarschijnlijk zijn er problemen met de type conversies van de scores.
 
Dat komt omdat je een string aan het converteren bent naar een integer?

[CPP]CInt("string")[/CPP]

en dus ook:

[CPP]Dim str() As String = {"string"}
CInt(str(0))[/CPP]

is altijd fout.

Nog een vraag: waar sla je de scores op?
 
Ondertussen heb ik al de juiste oplossing gevonden denk ik(dat het zou moeten zijn):

ik zal mijn nieuwe code eens posten hier want er is al heel wat verandert ondertussen.

Code:
Public Class Form1
    Dim gamescores As Integer

    Private Sub cmdStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart.Click
        'DECLARATIES
        Dim gem As Double
        Dim score(10) As Integer
        Dim totaal As Integer = 0
        Dim hoogste As Integer = 0

        'De array namen
        Dim namen(10) As String
        namen(0) = "Jeffrey"
        namen(1) = "Kjell"
        namen(2) = "Viktor"
        namen(3) = "Antoon"
        namen(4) = "Jari"
        namen(5) = "Jesse"
        namen(6) = "Gijs"
        namen(7) = "Joshua"
        namen(8) = "Jell"
        namen(9) = "Ward"
        namen(10) = "Stijn"

        'De scores opvragen en optellen voor berekenen van gemiddelde erna
        For L As Integer = 0 To 10
            score(L) = InputBox("Wat is de score van " & namen(L))
            If score(L) > hoogste Then hoogste = score(L)
            totaal += score(L)
        Next

        'berekening gemiddelde
        gem = totaal / 11

        Dim winnaar As String = ""
        'De winnaar(s) zoeken 
        For L = 0 To 10
            If score(L) = hoogste Then
                winnaar &= namen(L) & " ,"
            End If
        Next
        MessageBox.Show("Het gemiddelde van alle gamescores is " & gem & "." & vbNewLine & "De winnaar(s) is/zijn " & winnaar.ToString & ".")
    End Sub
End Class

Alleen komt er (als er meerdere winnaars zijn) bij de laatste ook een , en die is er overbodig.

Mvg gast0187
 
[CPP] For L = 0 To 10
If score(L) = hoogste Then
If winnaar = "" Then
winnaar &= namen(L)
Else
winnaar &= ", " & namen(L)
End If
Next[/CPP]

Zoiets kun je er van maken.
 
Prima! ;)
Als er nog vragen zijn (ook van je klasgenoot), hoor ik het wel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan