getal1 x getal2 = berekenen

Status
Niet open voor verdere reacties.

stevebravo

Gebruiker
Lid geworden
16 jan 2010
Berichten
156
getal1 = double
getal2 = double

hoe krijg ik het voor mekaar dat wanneer getal1 in de textbox staat, en ik druk op vermenigvuldig knop, dat getal1 in de textbox blijft staan, maar als ik een nieuw getal indruk wordt dat getal getal2.

dus


3(getal1) x 5 (getal2) = 15
op het moment dat ik de "x" indruk is de textbox dus nog gewoon getal1
 
Declareer een boolean bln_Zojuist_x_ingedrukt

In de on-click routine van de buttons voor de cijfers ga je een afvraging doen:
Code:
  If bln_Zojuist_x_ingedrukt = True then
      maak eerst de textbox leeg
      bln_Zojuist_x_ingedrukt = False
  End If
(Dit was pseudo-code, je moet daar zelf nog geldige VB-code van maken.)

O ja en voor ik het vergeet.
In de on-click routine van de button voor vermenigvuldigen:
Code:
  bln_Zojuist_x_ingedrukt = True


Nog even een algemene opmerking.
Je maakt dus een rekenmachine, en daar gaat nogal wat logica in zitten.

Denk eens aan het uitwerken van deze logica in de vorm van pseudo-code.
http://nl.wikipedia.org/wiki/Pseudocode
 
Declareer een boolean bln_Zojuist_x_ingedrukt

In de on-click routine van de buttons voor de cijfers ga je een afvraging doen:
Code:
  If bln_Zojuist_x_ingedrukt = True then
      maak eerst de textbox leeg
      bln_Zojuist_x_ingedrukt = False
  End If
(Dit was pseudo-code, je moet daar zelf nog geldige VB-code van maken.)

O ja en voor ik het vergeet.
In de on-click routine van de button voor vermenigvuldigen:
Code:
  bln_Zojuist_x_ingedrukt = True


Nog even een algemene opmerking.
Je maakt dus een rekenmachine, en daar gaat nogal wat logica in zitten.

Denk eens aan het uitwerken van deze logica in de vorm van pseudo-code.
http://nl.wikipedia.org/wiki/Pseudocode

bedankt voor de reactie

hoe zou jij het doen in deze code?
Private Sub VoegCijferToe(ByVal sCijfer As String)

If Len(lblDisplay.Text) > 15 Then

Exit Sub
End If

If sCijfer = "0" And lblDisplay.Text = "0," Then

ElseIf sCijfer = "," Then

bPuntIngedrukt = True

ElseIf lblDisplay.Text = "0," Then
lblDisplay.Text = sCijfer & ","

ElseIf bDelen Or bOptellen Or bAftrekken Or bVermenigvuldig Then


Dim iLengte As String = Len(lblDisplay.Text) - 1
lblDisplay.Text = Mid(lblDisplay.Text, 1, iLengte) & sCijfer & ","


ElseIf bPuntIngedrukt Then

lblDisplay.Text = lblDisplay.Text & sCijfer


Else

Dim iLengte As String = Len(lblDisplay.Text) - 1
lblDisplay.Text = Mid(lblDisplay.Text, 1, iLengte) & sCijfer & ","

End If


End Sub
 
In jouw code kan ik even geen 'plan' vinden.:(
Dus ik ben zelf eens aan die pseudocode begonnen.

Dit is wat ik nu heb uitgewerkt:

Code:
Het programma moet zelf een status bijhouden. de status kan zijn:
- accepting_first_number
- accepting_second_number

De gebruiker kan een aantal dingen doen:
- gebruiker toetst een cijfer in
- gebruiker toetst een operator in
- gebruiker toetst een is-gelijk teken in

We lopen eens één berekening stap voor stap door:
- het programma begint in status accepting_first_number
- getal1 en getal2 zijn gelijk aan 0
- de gebruiker toetst getal1 cijfer voor cijfer in
- de gebruiker toetst een operator in
- het programma wijzigt de status naar accepting_second_number
- de gebruiker toetst getal2 cijfer voor cijfer in
- gebruiker toetst een is-gelijk teken in
- programma berekent en toont uitkomst
- het programma wijzigt de status terug naar accepting_first_number
- het programma maakt getal1 en getal2 weer gelijk aan 0

Dan weten we wat er allemaal in de on_click routines moet gebeuren.

Onclick Cijfers:
Als status = accepting_first_number, voeg dan cijfer toe aan getal1
Als status = accepting_second_number, voeg dan cijfer toe aan getal2

Onclick Operators:
Onthoud de operator
Als status = accepting_first_number, wijzig dan de status in accepting-second_number
(als status = accepting_second_number dan geven we een foutmelding!!)

Onclick Is-gelijk teken:
Als status = accepting_second_number, wijzig dan de status weer in accepting-first_number
Bereken bovendien de uitkomst van getal1 + (-, *, /) getal2 en toon dat aan de gebruiker
(als status = accepting_first_number dan geven we een foutmelding!!)
getal1 en getal2 weer gelijk aan 0 maken

Niet onbelangrijk is de form_activate routine, waarin we de beginsituatie moeten neerzetten:
- het programma begint in status accepting_first_number
- getal1 en getal2 zijn gelijk aan 0

De volgende stap is: dit in visual basic vertalen.
Daar heb ik helaas nog geen tijd voor gehad, maar volgens mij is dat nog het minst moeilijke deel van de hele klus.:)
Probeer jij dat anders eens.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan