Grundlagen für einen einfachen Rechner
Hallo Community,
ich wollte einen einfachen Rechner programmieren, aber ich finde kein Tuturial, dass mir einfach erklärt, wie ich dieses Schritt für Schritt mache. Ich möchte mir so eine Grundlage für die Programmierung für Windows Phones schaffen. Am besten einfaches Multiplizieren, Addieren, Subtrahieren und Dividieren. Da ich mich mit einfacher Matriezenberechnung für Windows Phone befassen möchte, wäre das sehr Hilfreich.
Vielleicht kann mir da jemand helfen. Vielen Dank im Vorraus
Agredo
AW: Grundlagen für einen einfachen Rechner
Hast du Visual Studio, Expression Blend und Windows Phone SDK ?
Anfangen würde ich mit Expression Blend: Dort kannst du dir die graphische Benutzeroberfläche zusammen ziehen. Also Buttons für zahlen Operationen usw. Alternativ kannst du auch eine reine Eingabe eine Textbox anbieten...
Wenn wenn du alle Elemente zusammen gestellt hast, solltest du zumindest dem Ausgabe-Fenster (z.B. Textbox) einen schönen Namen geben. Anschließend kannst du allen Buttons ein Klickereignis zuweisen. Am besten gleich ein Doppelklick auf das entsprechnde Feld im Editor, dann wird schon mal ein passender Methoden-Rumpf für dich erzeugt. Dort schreibst du dann für jeden Button deinen ganzen Kram rein...
Sollte ein Ergebnis für die Anzeige bereit sein, so kannst du es gleich ber <AusgabeTextBoxName>.Text = ergebnis.ToString() zuweisen, oder so ähnlich.
Ich hoffe, das konnte dir ein wenig weiterhelfen. Falls nicht melde dich, dann kann ich dir, evtl. ein Sample zusammenbasteln, vorrausgesetzt du bist nicht zu anspruchsvoll :D
AW: Grundlagen für einen einfachen Rechner
int input = Int32.Parse(textbox1.Text);
Das Int32.Parse funktioniert aber nur für ganzzahlige Eingaben und wenn kein Text drinnen steht. Sonst gibt es da einen Fehler.
AW: Grundlagen für einen einfachen Rechner
Vielen dank.
Den wert konnte ich jetzt auch wieder ausgeben durch textBlock.Text = input.ToStrin(); Ich bin sehr dankbar, aber ich würde mich freuen wenn ihr mir noch ein paar fragen beantworten könnt. Z.B. wie man eine Rechnung innerhalb eines Textblocks ausrechnet und ob es die Möglichkeit gibt wenn Z.B zb 2a+2b=4ab im textbloxk stehen die drei zahlen 2, 2 und 4 einzeln zu nutzen?
AW: Grundlagen für einen einfachen Rechner
Also am einfachsten hast du es sicher wenn du sobald der Benutzer auf ein Rechensymbol tippt den Wert zu parsen, der bisher drinnen steht Int32.Parse, zu speichern und dann die Operation auszuführen wenn er nach der zweiten Zahl auf = oder ein anderes Rechensymbol tippt (wie halt auf einem üblichen Taschenrechner).
Ansonsten wirst du den Text durchlaufen und die Zahlen so wieder zusammenbauen müssen. Für ein kurzes Codebeispiel wird das aber schon etwas sehr komplex. Wenn du dann Gleichungen lösen willst wie 2a + 2b = 4ab wirst du den entsprechenden Lösungsalgorithmus selbst implementieren müssen. Vorgefertigt gibt es das in den allermeisten Programmiersprachen nicht.
AW: Grundlagen für einen einfachen Rechner
Danke für deine Antwort. da ich aber noch ein Neuling bin weiß ich ehrlich gesagt nicht wie du das mit dem Parsen und speichern meinst.
Im grunde ging es mir hier nur um eine mathematische Grundlage weil stumpf Quellcodes kopieren hat auch keinen sinn wenn man sie nicht versteht. Ich versuche mich gerade da hin zu arbeiten, eine Gleichung durch das Gaußsche Eliminationsverfahren zu lösen. Daher würde ich gerne die einzelnen zahlen in einer Gleichung lösen wollen. Aber bevor das kommt muss ich erstmal ein mathematisches Verständnis mit c# aufbauen.
AW: Grundlagen für einen einfachen Rechner
huhu :)
mal ne frage am rande, hast du jemals programmiert? Java, c++ oder c?
also mit speichern meint StevieBallz sicherlich als variable zwischenspeichern.
da du ja aus einem Textfeld einen string bekommst, kannst du diesen auslesen und wie schon vorher beschrieben in eine Zahl umwandeln. damit du die zweite zahl einlesen kannst, ohne die erste zu verlieren, musst du die erste ja zwischenspeichern, weil wenn du das textfeld neu beschreibst, verlierst du die erste zahl. also eine Variable vom typ int anlegen, wie oben schon beschrieben:
int zahlEins = Int32.Parse(textbox1.Text);
oder eine andere möglichkeit wäre eben zwei textFelder (für zahl1 und zahl2) zu haben und diese einfach nacheinander auszulesen und danach die operation auszuführen.
hier ist ein ganz gutes tutorial über das programmieren für wp7. sind alles videos :)
haben mir auch am anfang sehr geholfen.
Link:
http://channel9.msdn.com/Series/Wind...ginners?page=1
MfG
nudels
AW: Grundlagen für einen einfachen Rechner
Ich habe mal vor mehreren Jahren angefangen c zu lernen, musste das aber aus Zeitgründen aufgeben, während meines Abiturs. nun wollte ich mich mal wieder ran wagen und eine kleine App welche mir in meinem Beruf durchaus nützlich sein kann schreiben um einige Sachen zu vereinfachen.
vielen Dank für die Videos.
Vielleicht kannst du mir noch erklären, wenn Buchstaben mit eingegeben werden gibt mir der Debugger immer eine Fehlermeldung. Liegt wahrscheinlich am integer, oder? Wenn ich zb 2a+3b habe kann ich die zwei dann als int zahleins und die drei als int zahlzwei speichern ohne noch klarzustellen dass int zahleins nicht überschrieben wird?
AW: Grundlagen für einen einfachen Rechner
Also, was ich machen möchte ist eine App, die mir dabei hilft Chemische Gleichungen aufzulösen.
Im grunde ist mein Ziel, mehrere Unbekannte in einer Gleichung zu lösen.
Also z.B.
2x + 3y - z = 1
x + 3y - z = 2
-2x + 2y + z = 4
und daraus dann
2x + 3y - 1z = 1
-3 y - 3z = -3
6z = 12
und jenes wäre durch eine Matriezenberechung zu lösen.
Da es bei Matriezen immer um multiplikatuion geht benötige ich halt die Grundlagen im Rechnen.
Um erst ein Mal ein Grundverständnis von der Windows Phone Programmierung zu bekommen, dachte ich mir - auch im Bezug auf die App- mit einem Rechner anzufangen.
Noch mal ein Danke an nudels, dessen Link mir bereits tiefere Einblicke in die Programmierung gebracht haben. Dennoch hoffe ich auch eure Unterstützung bei Fragen und so wie ich bisher einen Eindruck von diesem Forum bekommen habe, ist diese Hilfestellung immer vorhanden.