Visual Basic 2012 probleem

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Mijn vraag
...
Ik ben al enkele dagen aan het proberen hoe ik in Visual Basic 2012 uit 3 getallen de 2 grootste moet halen, maar het lukt langs geen kanten. Iemand de oplossing ?
Relevante software en hardware die ik gebruik
Windows 7 Ultimate en Visual Studio 2012...

Wat ik al gevonden of geprobeerd heb
Tja, van alles, dit is mijn laatste poging:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Dim score1, score2, score3 As Double
Dim high1, high2 As Double
score1 = CDbl(txtScoreOne1.Text)
score2 = CDbl(txtScoreTwo.Text)
score3 = CDbl(txtScoreThree.Text)
If score1 > score2 Then
    If score1 > score3 Then
        high1 = score1
    Else
        high1 = score2
    End If
End If

If score2 > score3 Then
    If score2 > score1 Then
        high1 = score2
    Else
        high2 = score3
    End If
End If
txtAverage.Text = CStr(CDbl(high1 + high2) / 2)

[ Voor 60% gewijzigd door RobIII op 18-04-2019 22:13 . Reden: Code tags toegevoegd ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • Rhapsody
  • Registratie: Oktober 2002
  • Laatst online: 18:55

Rhapsody

In Metal We Trust

Met deze informatie kunnen we niet zoveel. Wat heb je nu? Waar kom je precies niet uit? Wat is de input?

🇪🇺 pro Europa! | Puinhoop Veroorzaken en Vertrekken (PVV)


Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Enige voorbeeldcode?

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • Josk79
  • Registratie: September 2013
  • Laatst online: 14:52
De twee kleinste weggooien.

Acties:
  • 0 Henk 'm!

  • NaN
  • Registratie: Oktober 2004
  • Niet online

NaN

SjoebieDoowah.

Array maken en 1 voor 1 vergelijken en het hoogste getal in een tijdelijke variabele opslaan?

Offe: https://stackoverflow.com...r-among-5-in-visual-basic

[ Voor 69% gewijzigd door NaN op 18-04-2019 19:20 ]


Acties:
  • +4 Henk 'm!

  • Kobus Post
  • Registratie: September 2010
  • Laatst online: 16:04
Je probleem is niet visual basic, wat je nodig hebt is een rubberen badeendje. Ja, zo'n gele.

Vertel stap voor stap aan dat eendje hoe jij uit die drie getallen de hoogste 2 getallen bepaald. Schrijf dit eventueel op, hierna kan je de stappen die je hebt uit gedacht omzetten in code.

Wat ik zou doen:
Als je van een x aantal cijfers een y aantal hoogste waardes wilt hebben, dan kun je er ook een array van maken, deze sorteren en de eerste (of laatste, net hoe je sorteert) y waardes returnen. Mooie functie van maken en je kan hem overal gebruiken.

No trees were harmed in the creation of this message, but several thousand electrons were mildly inconvenienced.


Acties:
  • 0 Henk 'm!

  • P-Storm
  • Registratie: September 2006
  • Laatst online: 19-09 13:55
Met code tags kan je je code ook formatten, dat leest wat handiger weg
Verwijderd schreef op donderdag 18 april 2019 @ 18:45:
...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Dim score1, score2, score3 As Double
        Dim high1, high2 As Double
        score1 = CDbl(txtScoreOne1.Text)
        score2 = CDbl(txtScoreTwo.Text)
        score3 = CDbl(txtScoreThree.Text)
        If score1 > score2 Then
            If score1 > score3 Then
                high1 = score1
            Else
                high1 = score2
            End If
        End If

            If score2 > score3 Then
                If score2 > score1 Then
                high1 = score2
                Else
                    high2 = score3
                End If
            End If
        txtAverage.Text = CStr(CDbl(high1 + high2) / 2)
Er zijn verschillende oplossingen voor je probleem. Oplossingen die mij zo te binnen schieten:
  • 2x door een collection lopen en daar de hoogste eruit halen.
  • Een collectie sorteren op grootte en daarvan de laatste 2 (of de eerste 2)

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Begin eens bij 't begin: Heb je al gedebugged? (Debuggen: Hoe doe ik dat?)

Verder: als je code post, wil je dan voortaan code tags gebruiken a.u.b.? En wil je dan voortaan ook niet zomaar random koppelingen met je topic maken?

"Laptops en systemen", "Software development" en "Componenten en randapparatuur" :? 8)7

[ Voor 64% gewijzigd door RobIII op 18-04-2019 22:13 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • +2 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Verwijderd schreef op donderdag 18 april 2019 @ 18:45:
Ik ben al enkele dagen aan het proberen hoe ik in Visual Basic 2012 uit 3 getallen de 2 grootste moet halen, maar het lukt langs geen kanten. Iemand de oplossing ?
Relevante software en hardware die ik gebruik
Windows 7 Ultimate en Visual Studio 2012...
Basis van programmeren is dat je een probleemoplossing weet op te delen in meerdere stappen, die stuk voor stuk wel behapbaar zijn.

Even ervan uitgaande dat we nog in 1990 leven en geen Linq hebben, zou ik:
1. De getallen in een array plaatsen
2. De array sorteren van hoog naar laag
3. De eerste 2 getallen van de array pakken

Uiteraard zijn er kortere methoden te verzinnen, maar dit is makkelijk aan te passen, mocht je straks van 50 getallen de grootste 10 willen weten. En het is ook hoe je het in een query taal als SQL zou doen (descending sorteren en met een top of limit de eerste X records kiezen)

Voor de rest ben ik benieuwd wat je verwacht qua randvoorwaarden. Zijn de 3 getallen altijd uniek ten opzichte van elkaar?

Maar euhm... Windows 7? Visual Studio 2012? Je beseft je dat het 2019 is toch? :P

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • boe2
  • Registratie: November 2002
  • Niet online

boe2

'-')/

Gezien het een logica oefening is denk ik niet dat een LINQ oplossing geapprecieerd wordt door de leerkracht :p

Ik ga wel mee met de rubber duck methode: Wat je wil is niet moeilijk. Je moet gewoon eventjes nadenken over wat er juist moet gebeuren.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind.' - Pratchett.


Acties:
  • +1 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Misschien wel de meest makkelijke oplossing is een stapje achteruit doen, en bedenken dat als je een groep van 2 uit een groep van 3 haalt, dat je dan een "groepje" van 1 overhoudt.

Dat is een algemeen bruikbare probleemoplossingstechniek: is het makkelijk om het probleem om te keren, en is het omgekeerde probleem daarna makkelijk op te lossen? Die is zelfs zo algemeen, dat het niet alleen in de IT maar ook bij wiskunde, natuurkunde en vergelijkbare problemen werkt.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

Verwijderd

Hmmm.... List gebruiken en daar de items er in gooien, vervolgens met Linq de max eruit halen?

[ Voor 4% gewijzigd door Verwijderd op 23-04-2019 18:23 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op dinsdag 23 april 2019 @ 18:23:
Hmmm.... List gebruiken en daar de items er in gooien, vervolgens met Linq de max eruit halen?
Heb je 't topic gelezen? ;) Het is niet alsof dat niet al geopperd is. De oplossing van @MSalters is echter (voor dit specifieke geval) veel simpeler en eleganter...

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1