Visual Basic: Brauche Hilfe bei einem Taschenrechner?

Hey Leute, ich mache gerade einen Taschenrechner in VB 6 und habe dabei zwei Probleme.

  1. Problem:

Der Taschenrechner kann höchstens drei Zahlen aufeinmal speichern. Bei der Eingabe steht zuerst die erste Zahl in der Anzeige des Taschenrechners, dann nur das erste Rechenzeichen, dann nur die zweite Zahl, dann nur das zweite Rechenzeichen, dann nur die dritte Zahl und wenn man dann wieder auf ein Rechenzeichen klickt, werden zu erst die drei Zahlen zusammengerechnet und dann erscheinen das Ergebnis und das nächste Rechenzeichen GLEICHZEITIG in der Anzeige. Mein Problem ist, dass wenn ich dann die nächste Zahl eingebe, dass dann eigentlich diese allein ohne das Ergebnis und das Rechenzeichen in der Anzeige erscheinen sollte, aber bei mir steht dann alles gleichzeitig in der Anzeige.

2 . Problem:

Wenn ich zwei Zahlen und ein Rechenzeichen eingebe und dann auf Gleich klicke, kommt das richtige Ergebnis raus, aber bei drei Zahlen nicht.

  1. Wenn man durch Null dividiert, soll in der Anzeige die Nachricht "Man darf nicht durch Null dividieren" erscheinen

Variablen, die ich benutzte:

Dim Zahl1 As Double

Dim Zahl2 As Double

Dim Zahl3 As Double

Dim Operation1 As String <-- für das erste Rechenzeichen

Dim Operation2 As String <-- für das zweite Rechenzeichen

Dim Ergebnis As Boolean <-- wird auf True gesetzt, wenn das Ergebnis alleine oder noch ein Rechenzeichen dazu in der Anzeige stehen

Dim Zahl1N As Boolean <-- werden alle drei benutzt, um zu sehen, ob eine Zahl positive oder negativ ist

Dim Zahl2N As Boolean

Dim Zahl3N As Boolean

Und die Anzeige des Taschenrechners heißt "edAnzeige"

Um das erste Problem zu lösen habe beim Code der Buttons für die Zahlen 0-9 folgendes geschrieben:

'Wenn ein Ergebnis und ein Rechenzeichen in der Anzeige stehen

ElseIf (Ergebnis = True) And (edAnzeige <> " ") And (Operation1 <> " ") And (Operation2 = " ") Then

edAnzeige = " "

Dadurch wurde das Problem bei den Rechenzeichen Mal und Geteilt gelöst, aber immer noch nicht bei Plus und Minus.

Hier ist der Teil des Codes, den ich für einen Fall beim Button geschrieben habe (2. Problem):

'Wenn die erste Zahl, ein Plus, die zweite Zahl, ein zweites Plus und eine dritte Zahl eingegeben wurde

ElseIf (edAnzeige <> " ") And (Operation1 = "+") And (Operation2 = "+") Then

Zahl3 = edAnzeige

edAnzeige = Zahl1 + Zahl2 + zahl3

Zahl1 = edAnzeige

Operation1 = ""

Operation2 = ""

Zahl1N = False

Zahl2N = False

Zahl3N = False

Ergebnis = True

Das hier habe ich beim Button für die Zahl 0 im Code geschrieben (Problem 3):

'Wenn durch Null dividiert wird

If (edAnzeige = " / ") Then

edAnzeige = "Man darf nicht durch Null dividieren"

Der Code für das dritte Problem klappt allerdings auch nicht.

Ich kann bei keinem der Codes irgendwelche Fehler entdecken. Deshalb hoffe ich, dass mir hier vielleicht jemand weiterhelfen kann.

LG Hiavatha8

Programm, programmieren, Informatik, Taschenrechner
Was bewirken diese Funktionen auf meinem Taschenrechner - Casio fx-87DE PLUS?

Wie schon oben gesagt habe ich einige Funktionen bei meinem Taschenrechner deren.. Nun ja, Funktion ich mir nicht bewusst bin. Vielleicht weiß ja jemand, um was es sich bei den Dingern handelt, Google gibt mir nur Online Taschenrechner und Schulhilfen.. Ich habe die Funktionen unten aufgelistet und hier noch ein Bild vom Taschenrechner Layout bei dem die Funktionen unterstrichen sind: http://imgur.com/a/4HcWN (Früher konnte man doch Bilder direkt hier hochladen, bin ich jetzt blöd oder wurde das entfernt? Na egal..)

Liste der Funktionen:
  • ° ' '' (Hat wohl etwas mit Miles, Feet, Inches zu tun? Bestätigung wäre gut)
  • : (Für Abtrennungen sorgt ja schon ";", also was ist das? Für "Von Zahl bis Zahl" scheint es auch nicht zu funktionieren, wird einfach wieder weggelöscht nachdem man = drückt)
  • Rnd (Hier kann man anscheinend nur eine einzige Nummer eingeben, und diese wird genau so zurückgegeben - auch bei Kommazahlen, also nix mit Runden)
  • DRG> (Ignoriert dies, ich fand heraus dass es sich hierbei um eine Umrechnungsfunktion von Radiant und dem Neumodischen Gradsystem in das normale Gradsystem handelt. )
  • Int | Intg (Verhalten sich scheinbar beide gleich, sie ignorieren die Kommastellen einer Zahl und geben dementsprechend die Natürliche Zahl zurück. Aber einen Unterschied muss es ja geben, nicht wahr?)
  • Pol (Verlangt zwei Zahlen und gibt dann Werte zurück, die ich mir nicht erklären kann. Bsp.: Pol(6;8) = {r=10; 0=58, 13010235} Das "0" hat einen waagerechten Strich in der Mitte und ist etwas kursiv geschrieben.)
  • Rec (Verlangt zwei Zahlen und gibt dann.. Koordinaten zurück? Bsp.: Rec(8;9) = {X = 7,901506725; Y = 1,25147572})
  • nPr | nCr (Erscheint auf dem Display als ein "P" bzw. als ein "C". Bisher habe ich mit allem was ich versuchte nur Syntaxfehler bekommen..)
  • GCD (Auf den ersten Blick scheint es so, als wenn diese Funktion zurückgibt, wie viel größer/kleiner eine Zahl sein muss sodass sie durch eine andere Teilbar ist. Man kann hier aber wohl nicht festlegen, welche Zahl durch welche geteilt werden soll. Bsp.: GCD(6; 8) = 2. Allerdings bin ich auch auf das hier gestoßen: GCD(5;8) = 1. Das hat doch weder etwas mit der Differenz, noch mit der Teilbarkeit zu tun, oder doch?))
  • LCM (Offensichtlich auch ähnlich zu GCD, aber die Ergebnisse werden wohl mit irgendetwas multipliziert? Bsp.: LCM(5;12) = 60 ; LCM(36;100) = 900. Die Zahlen in den Klammern können übrigends wieder Bedenkenlos ausgetauscht werden.)

Diese letzten Beiden könnte ich warscheinlich auch im Internetz finden, aber wo ich schon dabei bin..

  • hyp (Bringt mich in ein Menü mit den WInkelfunktionen mit einem h hinten dran. Was ist das?)
  • ~ (Das "Ist Rund.." Zeichen meine ich. Es funktioniert nicht so wie ich es erwartete: 6,565 ~ 6,565. Warum nicht 6,57 z.B.?)

So, das sind sie. Vielen dank im Vorraus falls sich irgendjemand mit dem nötigen Wissen findet!

Mathematik, Technik, Funktion, Berechnung, Taschenrechner, calculator

Meistgelesene Beiträge zum Thema Taschenrechner