Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

VB.NET code doet het niet, oefening voor school

Pagina: 1
Acties:
  • 340 views

  • MatthiasH
  • Registratie: Juni 2010
  • Laatst online: 24-11 23:00
Tweakers,

Ik moet voor school een oefening maken die een totaal bepaalt voor een tentoonstelling met inkomkaartjes enzo.

De prijs van 1 kaartje kost normaal gezien 5€, maar per 10 personen krijgen ze een extra kaartje
je moet het totaal weergeven, hoeveel extra kaartjes, hoeveel te betalen per persoon.

dit is wat ik al had :

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        'declaratie
        Dim dblPersonen, dblToegangsprijs, dblTotaalTB, dblGratisTickets, dblTotaalPPS As Double

        'invoer
        txtAantalPersonen.Text = dblPersonen
        txtToegangsprijs.Text = dblToegangsprijs

        'bewerking
        dblTotaalTB = dblPersonen * dblToegangsprijs
        dblGratisTickets = dblPersonen \ 10
        dblTotaalPPS = dblTotaalTB / dblPersonen - dblGratisTickets

        'uitvoer

        lblGratisTickets.Text = dblGratisTickets
        lblPerPersoon.Text = dblTotaalPPS
        lblTotaal.Text = dblTotaalTB

    End Sub


Ter verduidelijking : ik heb 2 maal textbox gebruikt : txtAantalPersonen, txtToegangsprijs die worden gewoon ingevuld bij de uitvoer

3 labels : lblGratisTickets voor de gratis tickets, lblPerPersoon voor het totaal per persoon, lblTotaal voor de totale som.

Ik weet dus niet wat ik verkeerd doe, maar er komt telkens ik het wil uitvoeren overal een nul, en bij lblTotaal komt er : 'NaN (niet-een-getal)

Ik wil dus geen gewone uitkomst, maar zelf de fout begrijpen en inzien, + zelf aanpassen zodat het wel werkt.

Mvg MatthiasH

[ Voor 28% gewijzigd door MatthiasH op 03-10-2010 10:49 ]


  • Haan
  • Registratie: Februari 2004
  • Laatst online: 16:01

Haan

dotnetter

Zonder verder al te diep in je code te duiken zijn er een aantal dingen die mij direct opvallen

1. waarom aantallen personen en kaartjes als double? Een integer is veel logischer
2. ik zie je nergens waardes definiëren (prijs bijv.)
3. bij de invoer zét je de tekst van de textbox ipv deze uit te lezen?
4. gebruik voor berekenen aantal gratis tickets ipv delen door 10, modulo 10

succes :)

o ja, en zet je code tussen [code=vb][/code] tags, dat ziet er veel beter uit

[ Voor 11% gewijzigd door Haan op 03-10-2010 10:42 ]

Kater? Eerst water, de rest komt later


  • MatthiasH
  • Registratie: Juni 2010
  • Laatst online: 24-11 23:00
1. inderdaad
2. de prijs wordt ingevoerd bij het uitvoeren
3. zal ik eens bekijken
4. dat was een tip van de leerkracht, zo had je een rond getal, en doet het ook goed bij 19 personen, een 'gedeeld door' rond af

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 16:01

Haan

dotnetter

MatthiasH schreef op zondag 03 oktober 2010 @ 10:44:
4. dat was een tip van de leerkracht, zo had je een rond getal, en doet het ook goed bij 19 personen, een 'gedeeld door' rond af
Klopt, ik was zelf even in de war, de modulo is inderdaad verkeerd, want die geeft juist de 'rest' terug (dus bijv. 11 mod 10 = 1, 15 mod 10 = 5), dus dat is precies wat je niet nodig hebt ;)

@hieronder: zoals jij het nu doet, moet volgens mij gewoon wel werken.

[ Voor 7% gewijzigd door Haan op 03-10-2010 11:06 ]

Kater? Eerst water, de rest komt later


  • MatthiasH
  • Registratie: Juni 2010
  • Laatst online: 24-11 23:00
foutje, hoe doe je dit dan wel?

[ Voor 66% gewijzigd door MatthiasH op 03-10-2010 10:56 ]


  • NickThissen
  • Registratie: November 2007
  • Laatst online: 18-11 13:07
De regel
Visual Basic:
1
txtAantalPersonen.Text = dblPersonen 

zet de tekst in de txtAantalPersonen textbox op de waarde die op dat moment in dblPersonen staat. Volgens mij wil je het juist precies andersom.

Mijn iRacing profiel


  • MatthiasH
  • Registratie: Juni 2010
  • Laatst online: 24-11 23:00
Bedankt Nick,

ik heb de 2 txt's achter de dbl's gezet, en nu werkt het!

Probleem opgelost

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Sorry, maar misschien is het handig even terug naar je boek te grijpen op hoofdstuk 1, pagina 1. We verwachten in de Devschuur wel een klein beetje basiskennis van onze users; een assigment a = b of b = a valt daar behoorlijk onder.

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

Dit topic is gesloten.