hey allemaal! Ik ben nieuw op dit forum!
Ik volg sedert september een informatica opleiding.
Ik heb zelf een code moeten schrijven in vb.net die moest voldoen om postcodes met steden uit een array te vissen en te sorteren...een binaire search
de binaire search zelf moest in een functie geschreven worden en worden teruggestuurd met een "return" naar de module zelf...
Alleen zegt mijn functie nu dat niet alle paden effectief een waarde terugsturen : "Function 'ZoekBinairFunction' doesn't return a value on all code paths. Are you missing a 'Return' statement?"
Het ziet er zo uit
Module GequoteerdeOefening05
Sub Main()
Dim zipcodes() As String = {"1000", "Brussel", "2000", "Antwerpen", "3000", "Leuven", "8000", "Brugge", "9000", "Gent"}
Dim zipcodesAantal As Integer = 5
Dim TeZoekenCodes() As String = {"0500", "1000", "2000", "3000", "4000", "8000", "9000", "9500"}
Dim Searchvalue As String
Dim IndexSearchValue As Integer
Dim lowerbound As Integer = 0
Dim count As Integer = 8
Dim upperbound As Integer = count - 1
Dim keuze1 As New Antwoord
Dim keuze2 As New Antwoord
With keuze1
.Foutmelding = (" werd niet gevonden ")
End With
With keuze2
.Goedemelding = (" is de zipcode van ")
End With
For IndexSearchValue = lowerbound To upperbound
Searchvalue = TeZoekenCodes(IndexSearchValue)
Dim index As Integer = ZoekBinairFunction(zipcodes, Searchvalue)
If index <> -1 Then
Console.WriteLine("════════════════════════════════════════════════════")
Console.WriteLine(Searchvalue & keuze2.Goedemelding & zipcodes(index + 1))
Console.WriteLine("════════════════════════════════════════════════════")
Else
Console.WriteLine("════════════════════════════════════════════════════")
Console.WriteLine(Searchvalue & keuze1.Foutmelding)
Console.WriteLine("════════════════════════════════════════════════════")
End If
Next
Console.ReadLine()
End Sub
Function ZoekBinairFunction(zipcodes() As String, SearchValueFunction As String) As Integer
Dim exhausted As Boolean
Dim found As Boolean
Dim lowerbound As Integer = 0
Dim count As Integer = 9
Dim upperbound As Integer = count - 1
Do Until found OrElse exhausted
Dim index As Integer = (lowerbound + upperbound) \ 2
Dim MinusIndex = -1
If index Mod 2 <> 0 Then
index += 1
End If
found = (SearchValueFunction = zipcodes(index))
exhausted = (upperbound <= lowerbound)
If found = True Then Return index
If exhausted = True Then Return MinusIndex
If Not (found OrElse exhausted) Then
If SearchValueFunction > zipcodes(index) Then
lowerbound = index + 1
Else
upperbound = index - 1
End If
End If
Loop
End Function
End Module
die puntnotatie in mijn antwoord komt van een klasse die ik gemaakt heb...dat is niet echt een probleem...moest er iemand zijn die mij kan zeggen wat ik in mijn functie moet veranderen om die return warning weg te krijgen zou ik heel tevreden zijn
groetjes
fosa
Ik volg sedert september een informatica opleiding.
Ik heb zelf een code moeten schrijven in vb.net die moest voldoen om postcodes met steden uit een array te vissen en te sorteren...een binaire search
de binaire search zelf moest in een functie geschreven worden en worden teruggestuurd met een "return" naar de module zelf...
Alleen zegt mijn functie nu dat niet alle paden effectief een waarde terugsturen : "Function 'ZoekBinairFunction' doesn't return a value on all code paths. Are you missing a 'Return' statement?"
Het ziet er zo uit
Module GequoteerdeOefening05
Sub Main()
Dim zipcodes() As String = {"1000", "Brussel", "2000", "Antwerpen", "3000", "Leuven", "8000", "Brugge", "9000", "Gent"}
Dim zipcodesAantal As Integer = 5
Dim TeZoekenCodes() As String = {"0500", "1000", "2000", "3000", "4000", "8000", "9000", "9500"}
Dim Searchvalue As String
Dim IndexSearchValue As Integer
Dim lowerbound As Integer = 0
Dim count As Integer = 8
Dim upperbound As Integer = count - 1
Dim keuze1 As New Antwoord
Dim keuze2 As New Antwoord
With keuze1
.Foutmelding = (" werd niet gevonden ")
End With
With keuze2
.Goedemelding = (" is de zipcode van ")
End With
For IndexSearchValue = lowerbound To upperbound
Searchvalue = TeZoekenCodes(IndexSearchValue)
Dim index As Integer = ZoekBinairFunction(zipcodes, Searchvalue)
If index <> -1 Then
Console.WriteLine("════════════════════════════════════════════════════")
Console.WriteLine(Searchvalue & keuze2.Goedemelding & zipcodes(index + 1))
Console.WriteLine("════════════════════════════════════════════════════")
Else
Console.WriteLine("════════════════════════════════════════════════════")
Console.WriteLine(Searchvalue & keuze1.Foutmelding)
Console.WriteLine("════════════════════════════════════════════════════")
End If
Next
Console.ReadLine()
End Sub
Function ZoekBinairFunction(zipcodes() As String, SearchValueFunction As String) As Integer
Dim exhausted As Boolean
Dim found As Boolean
Dim lowerbound As Integer = 0
Dim count As Integer = 9
Dim upperbound As Integer = count - 1
Do Until found OrElse exhausted
Dim index As Integer = (lowerbound + upperbound) \ 2
Dim MinusIndex = -1
If index Mod 2 <> 0 Then
index += 1
End If
found = (SearchValueFunction = zipcodes(index))
exhausted = (upperbound <= lowerbound)
If found = True Then Return index
If exhausted = True Then Return MinusIndex
If Not (found OrElse exhausted) Then
If SearchValueFunction > zipcodes(index) Then
lowerbound = index + 1
Else
upperbound = index - 1
End If
End If
Loop
End Function
End Module
die puntnotatie in mijn antwoord komt van een klasse die ik gemaakt heb...dat is niet echt een probleem...moest er iemand zijn die mij kan zeggen wat ik in mijn functie moet veranderen om die return warning weg te krijgen zou ik heel tevreden zijn
groetjes
fosa