VBiB/ACCB.net - Visual Basic in België | .net Ineta User Group  
Hoofdmenu

Advertenties

Het Computer Winkeltje HCW


Evenementen

Forum

Plaats nieuw bericht   Plaats Reactie
Vorige onderwerp Printervriendelijke versie Log in om je privé berichten te bekijken Volgende onderwerp
Auteur Bericht
iman0510Offline
Onderwerp: Moelijke opdracht, iemand handig in VB gezocht?  BerichtGeplaatst: 05 mrt 2010 - 00:51
In de startblokken


Geregistreerd op: 05-mrt-2010
Berichten: 5

Status: Offline
beste mensen,
heb een moeilijke opdracht gekregen, waar ik niet echt uit kom dus ik dacht ik ga jullie raadplegen.

dus in een textbox geef je een zin, dan kies je welke van de drie radio buttons, naar gelang je keuze moet het :

- ofwel alle klinkers in de zin optellen in weergeven in een textbox (bvb: ik heb gegeten, ==> dan moet hij zeggen : 5) (1e functie )


- ofwel moet die het 2e woord in de opgegeven zin die gelijk of groter als 4 karakters is weergeven in een textbox ( bvb: ik heb gister gegeten, ==> dan moet hij weergeven : gegeten omdat dat de 2e woord in die zin is die groter of gelijk aan 4 karakter is ) ( 2e functie)

- Hij moet de lengte van de laatste woord in opgegeven zin bepalen ( bvb: ik heb gegeten ==> 7 ) (functie 3)


ik heb de eerste functie al, de code ervan is dit:

Private Function klinkers(ByVal tekst1 As String) As Integer
Dim aantal As Integer
For i As Integer = 0 To tekst1.Length - 1
If tekst1.Substring(i, 1) = "a" Or tekst1.Substring(i, 1) = "e" Or tekst1.Substring(i, 1) = "i" Or tekst1.Substring(i, 1) = "o" Or tekst1.Substring(i, 1) = "u" Then
aantal += 1
End If
Next
Return aantal
End Function

Maar de 2e en de 3e kom ik totaaal niet uit, kan een van jullie misschien mij helpen ?

alvast hartelijk bedankt
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
wargod97Offline
Onderwerp: Re: Moelijke opdracht, iemand handig in VB gezocht?  BerichtGeplaatst: 05 mrt 2010 - 07:20
Op dreef


Geregistreerd op: 24-jul-2009
Berichten: 185

Status: Offline
Je mag hier geen antwoorden vragen voor school opdrachten maar de eerste lus kan handiger

Visual Basic code:

dim aantal as integer = 0

dim a() as string = textbox1.contains("a")
aantal += a.count

dim u() as string = textbox1.contains("u")
aantal += u.count



nou ja handiger ... het kan anders
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
XymtrixOffline
Onderwerp: Re: Moelijke opdracht, iemand handig in VB gezocht?  BerichtGeplaatst: 05 mrt 2010 - 07:37
In draf


Geregistreerd op: 09-okt-2008
Berichten: 446
Woonplaats: Nederland
Status: Offline
Voor opdracht 2 kun je denk ik de String.Split functie gebruiken.

Opdracht 3 is dan meteen niet zo moeilijk meer doormiddel van de Ubound functie. Hier op het forum staan vast wel voorbeelden hoe je die kunt gebruiken.

_________________
Hulp nodig? Gebruik eerst de zoekfunctie voor antwoorden.
Onthoud: Meer info = beter en snellere hulp.
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
VozzieOffline
Onderwerp: Re: Moelijke opdracht, iemand handig in VB gezocht?  BerichtGeplaatst: 05 mrt 2010 - 10:02
Moderator


Geregistreerd op: 11-mei-2009
Berichten: 937

Status: Offline
wargod97 schreef:
Je mag hier geen antwoorden vragen voor school opdrachten maar de eerste lus kan handiger

Visual Basic code:

dim aantal as integer = 0

dim a() as string = textbox1.contains("a")
aantal += a.count

dim u() as string = textbox1.contains("u")
aantal += u.count



nou ja handiger ... het kan anders


Dit kan niet: textbox1.contains("u")

1) De contains method van een textbox control neemt GEEN string binnen als parameter maar een Control.
2) En geeft GEEN string/char array terug maar een boolean.


En mocht je bedoelen: textbox1.text.contains("u"c)

3) Dan zou het nog niet werken want string.contains geeft GEEN string/char array terug maar een boolean.

Array.FindAll geeft wel een char array terug dus deze zou je dan wel kunnen gebruiken.Zie:
Visual Basic code:
Dim someText As String
Dim charArray() As Char
Dim charCount As Integer
someText = "aloha"
charArray = Array.FindAll(someText.ToCharArray(), Function(c) c = "a"c OrElse c = "e"c OrElse c = "i"c OrElse c = "o"c OrElse c = "u"c)
charCount = charArray.Length
MsgBox(charCount)
MsgBox(New String(charArray))

' op 1 lijntje met een textbox is dit
'MsgBox(Array.FindAll(Me.TextBox1.Text.ToCharArray(), Function(c) c = "a"c OrElse c = "e"c OrElse c = "i"c OrElse c = "o"c OrElse c = "u"c).Length)



De lengte vh laatste woord kan zo(als er geen 2 spaties voor staan)

Visual Basic code:
Dim someText As String
Dim stringArray() As String
Dim stringLengte As Integer
someText = "dit is een zin"
stringArray = someText.Split(" "c)
stringLengte = stringArray(stringArray.Length - 1).Length
MsgBox(stringLengte)

' op 2 lijntjes met een textbox is dit
'Dim stringArray() As String = TextBox1.Text.Split(" "c)
'MsgBox(stringArray(stringArray.Length - 1).Length)


Groeten

_________________
con\con

Stappen, keuzes en herhaling combineren is programmeren.
 
 Bekijk gebruikers profiel Stuur privé bericht Bekijk de homepage  
Reageer met quote Naar boven
iman0510Offline
Onderwerp: Re: Moelijke opdracht, iemand handig in VB gezocht?  BerichtGeplaatst: 05 mrt 2010 - 10:59
In de startblokken


Geregistreerd op: 05-mrt-2010
Berichten: 5

Status: Offline
dankje voor je reply, voor de duidelijkheid ik vraag geen antwoorden maar uitleg, Ik zie u maakt gebruikt van Arrays dat hebben we nog niet gezien, onze leraar zei, dat je gebruik moest maken van functies en dat je woord per woord af moest gaan tot je een spetie tegenkomt en dan de teller op 0 plaatsen tot je een woord tegen komt die gelijk of groter dan 4 karakters is,
ik heb zelf iets geschreven maar het klopt niet langs geen kanten, ik weet niet hoe ik kan zeggen dat die woord per woord afmoet gaan en dat die dan het 2e woord die gelijk of groter dan 4 karakters in de textbox weergeeft

private function woordentellen ( byval zin as string) as string

dim aantal as string

for i=0 to zin.length - 1

if zin.substring( i , 1) - " " then

aantal=0

endif

next

end function

Vozzie schreef:
wargod97 schreef:
Je mag hier geen antwoorden vragen voor school opdrachten maar de eerste lus kan handiger

Visual Basic code:

dim aantal as integer = 0

dim a() as string = textbox1.contains("a")
aantal += a.count

dim u() as string = textbox1.contains("u")
aantal += u.count



nou ja handiger ... het kan anders


Dit kan niet: textbox1.contains("u")

1) De contains method van een textbox control neemt GEEN string binnen als parameter maar een Control.
2) En geeft GEEN string/char array terug maar een boolean.


En mocht je bedoelen: textbox1.text.contains("u"c)

3) Dan zou het nog niet werken want string.contains geeft GEEN string/char array terug maar een boolean.

Array.FindAll geeft wel een char array terug dus deze zou je dan wel kunnen gebruiken.Zie:
Visual Basic code:
Dim someText As String
Dim charArray() As Char
Dim charCount As Integer
someText = "aloha"
charArray = Array.FindAll(someText.ToCharArray(), Function(c) c = "a"c OrElse c = "e"c OrElse c = "i"c OrElse c = "o"c OrElse c = "u"c)
charCount = charArray.Length
MsgBox(charCount)
MsgBox(New String(charArray))

' op 1 lijntje met een textbox is dit
'MsgBox(Array.FindAll(Me.TextBox1.Text.ToCharArray(), Function(c) c = "a"c OrElse c = "e"c OrElse c = "i"c OrElse c = "o"c OrElse c = "u"c).Length)



De lengte vh laatste woord kan zo(als er geen 2 spaties voor staan)

Visual Basic code:
Dim someText As String
Dim stringArray() As String
Dim stringLengte As Integer
someText = "dit is een zin"
stringArray = someText.Split(" "c)
stringLengte = stringArray(stringArray.Length - 1).Length
MsgBox(stringLengte)

' op 2 lijntjes met een textbox is dit
'Dim stringArray() As String = TextBox1.Text.Split(" "c)
'MsgBox(stringArray(stringArray.Length - 1).Length)


Groeten
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
XymtrixOffline
Onderwerp: Re: Moelijke opdracht, iemand handig in VB gezocht?  BerichtGeplaatst: 05 mrt 2010 - 13:31
In draf


Geregistreerd op: 09-okt-2008
Berichten: 446
Woonplaats: Nederland
Status: Offline
Je kan voor opdracht iets ala dit doen:
Visual Basic code:
    Private Function Return2eWord(ByVal Tekst As String) As String
        Dim ReturnString As String = Nothing
        Dim WordCounter, lettercounter As Integer

        For i As Integer = 1 To Tekst.Length
            if lettercounter < 4 then lettercounter += 1
            Dim letter As String = Mid(Tekst, i, 1)
            If letter = " " Then
                ReturnString = Nothing
                lettercounter = 0
            End If
            ReturnString &= letter
            If lettercounter = 4 Then WordCounter += 1
            If WordCounter = 2 Then
                Return ReturnString
            End If

        Next
    End Function
en voor opdracht 3 zoiets dan:
Visual Basic code:
    Private Function ReturnLastWord(ByVal tekst As String) As Integer
        Dim Aantal As Integer
        Dim Gevonden As Boolean = False
        Dim Lengte As Integer = tekst.Length

        Do
            If Mid(tekst, Lengte, 1) = " " Then Exit Do
            Aantal += 1
            Lengte -= 1
        Loop

        Return Aantal
    End Function
. Zo maak je geen gebruik van arrays

_________________
Hulp nodig? Gebruik eerst de zoekfunctie voor antwoorden.
Onthoud: Meer info = beter en snellere hulp.
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
iman0510Offline
Onderwerp: Re: Moelijke opdracht, iemand handig in VB gezocht?  BerichtGeplaatst: 05 mrt 2010 - 17:16
In de startblokken


Geregistreerd op: 05-mrt-2010
Berichten: 5

Status: Offline
Xymtrix schreef:
Je kan voor opdracht iets ala dit doen:
Visual Basic code:
    Private Function Return2eWord(ByVal Tekst As String) As String
        Dim ReturnString As String = Nothing
        Dim WordCounter, lettercounter As Integer

        For i As Integer = 1 To Tekst.Length
            if lettercounter < 4 then lettercounter += 1
            Dim letter As String = Mid(Tekst, i, 1)
            If letter = " " Then
                ReturnString = Nothing
                lettercounter = 0
            End If
            ReturnString &= letter
            If lettercounter = 4 Then WordCounter += 1
            If WordCounter = 2 Then
                Return ReturnString
            End If

        Next
    End Function
en voor opdracht 3 zoiets dan:
Visual Basic code:
    Private Function ReturnLastWord(ByVal tekst As String) As Integer
        Dim Aantal As Integer
        Dim Gevonden As Boolean = False
        Dim Lengte As Integer = tekst.Length

        Do
            If Mid(tekst, Lengte, 1) = " " Then Exit Do
            Aantal += 1
            Lengte -= 1
        Loop

        Return Aantal
    End Function
. Zo maak je geen gebruik van arrays


wooow netjes man Surprised, sorry miscchien als ik teveel vraag, ik snap sommige dingen niet in die code zou je me kunnen uitleggen, want ik zou graag veel willen leren over VB want het is mijn hoofdvak en ben er niet echt goed in.

Dim ReturnString As String = Nothing " is dit gelijk aan: Dim ReturnString As String = 0 "

Dim letter As String = Mid(Tekst, i, 1) " wat wilt = mid ( tekst,i,1) zeggen ?"

If lettercounter = 4 Then WordCounter += 1
If WordCounter = 2 Then

" dit wilt zeggen als letter counter gelijk aan 4 is dan stijgt wordcounter met 1 omhoog en wanneer woord counter gelijk is aan 2 dat die returnstring moet teruggeven?


en bij de laatste kan je me uitleggen wat je doet bij deze stukje?

Do
If Mid(tekst, Lengte, 1) = " " Then Exit Do
Aantal += 1
Lengte -= 1
Loop

Hartelijk bedankt dat je me geholpen hebt, heb je misschien tips ofso hoe je in VB beter kan worden?

groeten
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
josk79Offline
Onderwerp: Re: Moelijke opdracht, iemand handig in VB gezocht?  BerichtGeplaatst: 07 mrt 2010 - 12:03
Op dreef


Geregistreerd op: 08-nov-2009
Berichten: 221

Status: Offline
Iman, Let wel dat je oplossing voor opdracht 1 hoofdlettergevoelig is. Gebruik .ToLower om karakters naar kleine letters te converteren.

Voorbeeld (implementeer in je for-next loop):

Visual Basic code:
            letter = tekst1.Substring(i, 1).ToLower
            If "aeiou".Contains(letter) Then aantal += 1

 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
XymtrixOffline
Onderwerp: Re: Moelijke opdracht, iemand handig in VB gezocht?  BerichtGeplaatst: 08 mrt 2010 - 08:25
In draf


Geregistreerd op: 09-okt-2008
Berichten: 446
Woonplaats: Nederland
Status: Offline
Ik zal het verder uitleggen.

Quote:

Visual Basic code:
Dim ReturnString As String = Nothing " is dit gelijk aan: Dim ReturnString As String = 0 "

Ik declareer hier een lege string. Je kan ook zeggen, = "". Dit is niet geljk aan: String = 0. Als je dit gebruikt zal je string daadwerkelijk het cijfer 0 teruggeven.
Bij numeric kan het wel : Dim Getal as Integer = 0


Quote:

Visual Basic code:
Dim letter As String = Mid(Tekst, i, 1) " wat wilt = mid ( tekst,i,1) zeggen ?"

Mid is een functie die een bepaalde gedeelte van jouw tekst eruithaalt.
vb: Woord = vbib, mid(woord,2,2) -> bi.


Quote:

" dit wilt zeggen als letter counter gelijk aan 4 is dan stijgt wordcounter met 1 omhoog en wanneer woord counter gelijk is aan 2 dat die returnstring moet teruggeven?
Visual Basic code:
If lettercounter < 4 Then WordCounter += 1
If WordCounter = 2 Then

De eerste zin wilt zeggen: als lettercounter < 4 tel er 1 bij op.
bij de tweede zin wordt inderdaad returnstring teruggeven.


Quote:

en bij de laatste kan je me uitleggen wat je doet bij deze stukje?
Visual Basic code:

Do
If Mid(tekst, Lengte, 1) = " " Then Exit Do
Aantal += 1
Lengte -= 1
Loop

Ik heb hier een loop die doorblijft gaan totdat we een spatie tegenkomen.
Elke ker dat we een "ronde" maken word aantal opgehoogd en lengte verlaagd.
Hierdoor gaan we achteruit, dus ik pak eerst de laatste letter, dan de voorlaatste etc. etc.


Ik hoop dat het een beetje duidelijk is, anders hoor ik het vanzelf wel.. Het scrijven van code vind ik makkelijker dan het uitleggen daarvan Razz

_________________
Hulp nodig? Gebruik eerst de zoekfunctie voor antwoorden.
Onthoud: Meer info = beter en snellere hulp.
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
iman0510Offline
Onderwerp: Re: Moelijke opdracht, iemand handig in VB gezocht?  BerichtGeplaatst: 10 mrt 2010 - 00:04
In de startblokken


Geregistreerd op: 05-mrt-2010
Berichten: 5

Status: Offline
Xymtrix schreef:
Ik zal het verder uitleggen.

Quote:

Visual Basic code:
Dim ReturnString As String = Nothing " is dit gelijk aan: Dim ReturnString As String = 0 "

Ik declareer hier een lege string. Je kan ook zeggen, = "". Dit is niet geljk aan: String = 0. Als je dit gebruikt zal je string daadwerkelijk het cijfer 0 teruggeven.
Bij numeric kan het wel : Dim Getal as Integer = 0


Quote:

Visual Basic code:
Dim letter As String = Mid(Tekst, i, 1) " wat wilt = mid ( tekst,i,1) zeggen ?"

Mid is een functie die een bepaalde gedeelte van jouw tekst eruithaalt.
vb: Woord = vbib, mid(woord,2,2) -> bi.


Quote:

" dit wilt zeggen als letter counter gelijk aan 4 is dan stijgt wordcounter met 1 omhoog en wanneer woord counter gelijk is aan 2 dat die returnstring moet teruggeven?
Visual Basic code:
If lettercounter < 4 Then WordCounter += 1
If WordCounter = 2 Then

De eerste zin wilt zeggen: als lettercounter < 4 tel er 1 bij op.
bij de tweede zin wordt inderdaad returnstring teruggeven.


Quote:

en bij de laatste kan je me uitleggen wat je doet bij deze stukje?
Visual Basic code:

Do
If Mid(tekst, Lengte, 1) = " " Then Exit Do
Aantal += 1
Lengte -= 1
Loop

Ik heb hier een loop die doorblijft gaan totdat we een spatie tegenkomen.
Elke ker dat we een "ronde" maken word aantal opgehoogd en lengte verlaagd.
Hierdoor gaan we achteruit, dus ik pak eerst de laatste letter, dan de voorlaatste etc. etc.


Ik hoop dat het een beetje duidelijk is, anders hoor ik het vanzelf wel.. Het scrijven van code vind ik makkelijker dan het uitleggen daarvan Razz


Ik snap het volledig, je hebt het supper uitgelegd hartelijk bedankt Smile
we hebben nu een opdracht gekregen , je geeft een zin in, de programma gaat na, bvb dit is de zin: ik heb een aap ==> ( ik (=2karakters) de rest = 3 karakters, 3 komt het meest voor dus moet die 3 teruggeven. ik heb zelf al iets geschreven heb het debugged met breakpoints , er zitten grote fouten in maar het principe hoe het programma opgebouwd moet worden is ongeveer correct volgens me leerkracht

Visual Basic code:
Private Function gekkeopdracht(ByVal tekst As String) As Integer

        Dim aantal As Integer
        Dim twee, drie, vier, vijf As Integer



        For i = 0 To tekst.Length - 1
            If tekst.Substring(i, 1) = " " Then
                aantal = 0
            Else
                aantal += 1
                If aantal = 2 Then
                    twee &= aantal


                ElseIf aantal = 3 Then
                    drie &= aantal



                ElseIf aantal = 4 Then
                    vier &= aantal

                ElseIf aantal = 5 Then
                    vijf &= aantal


                End If

            End If

        Next

        If Math.Max(twee, drie) Or Math.Max(twee, vier) Or Math.Max(twee, vijf) = twee Then
            Return twee.ToString

        ElseIf Math.Max(twee, drie) Or Math.Max(vier, drie) Or Math.Max(vijf, drie) = drie Then
            Return drie.ToString


        ElseIf Math.Max(vier, twee) Or Math.Max(vier, drie) Or Math.Max(vier, vijf) = vier Then
            Return vier.ToString

        ElseIf Math.Max(vijf, twee) Or Math.Max(vijf, drie) Or Math.Max(vier, vijf) = vijf Then
            Return vijf.ToString
        End If
       
    End Function
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
VozzieOffline
Onderwerp: Re: Moelijke opdracht, iemand handig in VB gezocht?  BerichtGeplaatst: 10 mrt 2010 - 22:39
Moderator


Geregistreerd op: 11-mei-2009
Berichten: 937

Status: Offline
Hallo,

Mag je voor die opdracht van de meest voorkomende woordlengte ook geen arrays gebruiken?

Groeten

_________________
con\con

Stappen, keuzes en herhaling combineren is programmeren.
 
 Bekijk gebruikers profiel Stuur privé bericht Bekijk de homepage  
Reageer met quote Naar boven
iman0510Offline
Onderwerp: Re: Moelijke opdracht, iemand handig in VB gezocht?  BerichtGeplaatst: 10 mrt 2010 - 22:42
In de startblokken


Geregistreerd op: 05-mrt-2010
Berichten: 5

Status: Offline
iman0510 schreef:
Xymtrix schreef:
Ik zal het verder uitleggen.

Quote:

Visual Basic code:
Dim ReturnString As String = Nothing " is dit gelijk aan: Dim ReturnString As String = 0 "

Ik declareer hier een lege string. Je kan ook zeggen, = "". Dit is niet geljk aan: String = 0. Als je dit gebruikt zal je string daadwerkelijk het cijfer 0 teruggeven.
Bij numeric kan het wel : Dim Getal as Integer = 0


Quote:

Visual Basic code:
Dim letter As String = Mid(Tekst, i, 1) " wat wilt = mid ( tekst,i,1) zeggen ?"

Mid is een functie die een bepaalde gedeelte van jouw tekst eruithaalt.
vb: Woord = vbib, mid(woord,2,2) -> bi.


Quote:

" dit wilt zeggen als letter counter gelijk aan 4 is dan stijgt wordcounter met 1 omhoog en wanneer woord counter gelijk is aan 2 dat die returnstring moet teruggeven?
Visual Basic code:
If lettercounter < 4 Then WordCounter += 1
If WordCounter = 2 Then

De eerste zin wilt zeggen: als lettercounter < 4 tel er 1 bij op.
bij de tweede zin wordt inderdaad returnstring teruggeven.


Quote:

en bij de laatste kan je me uitleggen wat je doet bij deze stukje?
Visual Basic code:

Do
If Mid(tekst, Lengte, 1) = " " Then Exit Do
Aantal += 1
Lengte -= 1
Loop

Ik heb hier een loop die doorblijft gaan totdat we een spatie tegenkomen.
Elke ker dat we een "ronde" maken word aantal opgehoogd en lengte verlaagd.
Hierdoor gaan we achteruit, dus ik pak eerst de laatste letter, dan de voorlaatste etc. etc.


Ik hoop dat het een beetje duidelijk is, anders hoor ik het vanzelf wel.. Het scrijven van code vind ik makkelijker dan het uitleggen daarvan Razz


Ik snap het volledig, je hebt het supper uitgelegd hartelijk bedankt Smile
we hebben nu een opdracht gekregen , je geeft een zin in, de programma gaat na, bvb dit is de zin: ik heb een aap ==> ( ik (=2karakters) de rest = 3 karakters, 3 komt het meest voor dus moet die 3 teruggeven. ik heb zelf al iets geschreven heb het debugged met breakpoints , er zitten grote fouten in maar het principe hoe het programma opgebouwd moet worden is ongeveer correct volgens me leerkracht

Visual Basic code:
Private Function gekkeopdracht(ByVal tekst As String) As Integer

        Dim aantal As Integer
        Dim twee, drie, vier, vijf As Integer



        For i = 0 To tekst.Length - 1
            If tekst.Substring(i, 1) = " " Then
                aantal = 0
            Else
                aantal += 1
                If aantal = 2 Then
                    twee &= aantal


                ElseIf aantal = 3 Then
                    drie &= aantal



                ElseIf aantal = 4 Then
                    vier &= aantal

                ElseIf aantal = 5 Then
                    vijf &= aantal


                End If

            End If

        Next

        If Math.Max(twee, drie) Or Math.Max(twee, vier) Or Math.Max(twee, vijf) = twee Then
            Return twee.ToString

        ElseIf Math.Max(twee, drie) Or Math.Max(vier, drie) Or Math.Max(vijf, drie) = drie Then
            Return drie.ToString


        ElseIf Math.Max(vier, twee) Or Math.Max(vier, drie) Or Math.Max(vier, vijf) = vier Then
            Return vier.ToString

        ElseIf Math.Max(vijf, twee) Or Math.Max(vijf, drie) Or Math.Max(vier, vijf) = vijf Then
            Return vijf.ToString
        End If
       
    End Function


uhmm jawel maar zou dan wel fijn zijn als je me uitlegt wat je precies allemaal doet want we hebben dat nog niet gezien dus ik zou graag het beetje willen begrijpen
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
VozzieOffline
Onderwerp: Re: Moelijke opdracht, iemand handig in VB gezocht?  BerichtGeplaatst: 10 mrt 2010 - 23:08
Moderator


Geregistreerd op: 11-mei-2009
Berichten: 937

Status: Offline
Hallo,

Even een oplossing, zonder array,... maar met arrays ware het veel makkelijker geweest Smile. Hopelijk volstaat de commentaar.

Visual Basic code:
    Function LengteMeestVoorkomendWoord(ByVal zin As String) As Integer
        Dim wordLen1 As Integer = 0
        Dim max As Integer = 0
        Dim result As Integer = 0
        ' zoeken naar een woord
        ' (we gaan voor het laatste woord te identificeren tot voorbij
        ' het laatste element)
        For i As Integer = 0 To zin.Length
            ' einde zin(voorbij laatste element dus laatste woord)
            ' OrElse woord gevonden
            If i = zin.Length _
            OrElse zin(i) = " "c Then
                ' een woord gevonden
                ' lengte zit in wordLen1
                If wordLen1 > 0 Then
                    ' tellen hoeveel woorden
                    ' van dezelfde lengte
                    ' voorkomen in de zin
                    Dim count As Integer = 0
                    Dim wordLen2 As Integer = 0
                    For j As Integer = 0 To zin.Length - 1
                        If zin(j) = " "c Then
                            ' een woord van dezelfde lengte
                            ' dus optellen
                            If wordLen1 = wordLen2 Then
                                count += 1
                            End If
                            wordLen2 = 0
                        Else
                            wordLen2 += 1
                        End If
                    Next
                    ' waren er meer woorden van
                    ' de huidige lengte
                    If count > max Then
                        ' het aantal onthouden
                        max = count
                        ' en de lengte onthouden
                        result = wordLen1
                    End If
                End If
                ' spatie dus
                ' lengte woord resetten
                wordLen1 = 0
            Else
                ' geen spatie dus
                ' lengte woord tellen
                wordLen1 += 1
            End If
        Next
        Return result
    End Function


Update: En eentje met arrays,
Visual Basic code:
    Function LengteMeestVoorkomendWoord2(ByVal zin As String) As Integer
        Dim wordLen1 As Integer = 0
        Dim list As New Generic.SortedList(Of Integer, Integer)
        ' zoeken naar een woord
        ' (we gaan voor het laatste woord te identificeren tot voorbij
        ' het laatste element)
        For i As Integer = 0 To zin.Length
            ' einde zin(voorbij laatste element) OrElse zin gevonden
            If i = zin.Length OrElse zin(i) = " "c Then
                ' een woord gevonden
                ' lengte zit in wordLen1
                If wordLen1 > 0 Then
                    ' hebben we al een teller
                    If list.ContainsKey(wordLen1) Then
                        ' ja teller voor wordlen verhogen
                        list(wordLen1) += 1
                    Else
                        ' neen teller voor woordlen toevoegen
                        list.Add(wordLen1, 1)
                    End If
                End If
                ' spatie dus
                ' lengte woord resetten
                wordLen1 = 0
            Else
                ' geen spatie dus
                ' lengte woord tellen
                wordLen1 += 1
            End If
        Next
        Dim max As Integer
        Dim result As Integer = 0
        ' alle woordlengtes aflopen
        For Each wordLen As Integer In list.Keys
            ' meest voorkomende woordlengte?
            If list(wordLen) > max Then
                ' meest voorkomende woordlengte in max
                max = list(wordLen)
                ' aantal meest voorkomende woord in result
                result = wordLen
            End If
        Next
        Return result
    End Function


Update 2: nog eentje voor het slapengaan,...
Visual Basic code:
    Function LengteMeestVoorkomendWoord3(ByVal zin As String, ByVal delimiters() As Char) As Integer
        Dim max As Integer = 0
        Dim result As Integer = 0
        Dim list As New Generic.SortedList(Of Integer, Integer)
        For Each word In zin.Split(delimiters)
            If list.ContainsKey(word.Length) Then
                list(word.Length) += 1
            Else
                list.Add(word.Length, 1)
            End If
            If list(word.Length) > max Then
                max = list(word.Length)
                result = word.Length
            End If
        Next
        Return result
    End Function

    Sub Main()
        MsgBox(LengteMeestVoorkomendWoord3("a aaaa a aaaa.aa,aa?aaaa:aa aaaa aa aa", {" "c, ","c, ";"c, ":"c, "."c, "?"c, "!"c, """"c, "'"c}))
    End Sub


Happy programming.

_________________
con\con

Stappen, keuzes en herhaling combineren is programmeren.
 
 Bekijk gebruikers profiel Stuur privé bericht Bekijk de homepage  
Reageer met quote Naar boven
Berichten van afgelopen:     
Ga naar:  
Tijden zijn in GMT + 1 uur
Plaats nieuw bericht   Plaats Reactie
Vorige onderwerp Printervriendelijke versie Log in om je privé berichten te bekijken Volgende onderwerp
PNphpBB2 © 2003-2007 
 

 
Postnuke - ADODB Database - PHP 4/5 - pnPhpBB2 - Hosting bij Openminds
Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno 21-12-2000)
vbib.be gestart op 1/03/06 (extra vanaf 1/09: vbnet.be en vbdotnet.be)
VBiB is gerelateerd met wintips.be

Nieuwsbrief RSS Feed: backend.php