Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

C++

Workshop – Taschenrechner

Testen Sie unsere 2017 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Anhand dieses Beispiels lernen Sie die praktische Umsetzung des bisher Erlernten. Sehen Sie die Umsetzung des Taschenrechners und bekommen Sie Tipps vom Trainer, die Sie dabei unterstützen.

Transkript

Nun gibt es in der C++ Bibliothek natürlich auch Mathematik, die cmath includiertes und ich habe Ihnen hier mal ein sehr komplexes Beispiel damit aufgebaut, nämlich einen kompletten Taschenrechner. Und es ist jetzt so ein bisschen eine Hausaufabe sich da nachher durchzubeißen, weil sonst bräuchten wir hier wirklich viel Zeit und ich möchte es auch mal wirklich offen lassen. Ich hole das hier mal grade rüber. Ich zeige Ihnen dazu mal ein paar Ansätze, wie das überhaupt gemacht ist. Also der Taschenrechner kann nicht nur die Grundfunktionen, Klammer auf, Klammer zu, sondern auch Funktionen. Da kann man nämlich sehr schön diese Mathe-Bibliothek auch zeigen und ausprobieren. Wir haben plus, minus, mal, division, klammer auf, klammer zu und so wieter hier als sogenantes Token. Wenn ich sowas bauen will, so ein Formelrechner muss ich erst einmal das Eingegebene analysieren, da macht man im Prinzip mit einem Parser beziehungsweise mit einem Scanner tur man erst einmal die einzelnen Token isolieren, sowas habe ich hier aufgenaut, der liefert hier einen Token zurück get_token auf einen char** ptr wird gezeigt, nämlich da wo unser Scanner seine Daten herholt. Da muss ich ja stückchenweise durch den Eingangsdatensatz, das steht dann in einem Buffer drin, durchwühlen. Und jetzt prüft der erst einmal am Anfang ab,habe ich ein plus eingegeben, dann ist es token = plus, ein minus dann und so weiter. Das ist alles ganz gut, bei den einzelnen Zeichen geht es schon. Jetzt muss man aufpassen bei einem digit, wenn also eine Zahl vorliegt, dann muss ich hier natürlich gucken, wie ich das zur einer Zahl zusammenbaue und das macht man hier zu enem State System, da habe ich hier state=1, da merke ich mir, was ist passiert? Kam ein Komma, kam ein Punkt, und wenn ein Punkt kam, dann weiß ich es sind die Nachkommastellen und so läuft er hier automatisch durch dieses System durch bis er die geamte Zahl erkannt hat. Nun und dann wird das einfach abgespeichert. Einmal der Wert natürlich und der Token ist dann numerisch, das merke ich mir an dieser Stelle. So und dann, wenn einfach numerische Zahlen kommen, dann könnte es eine Variable sein zum Beispiel oder eben auch eine Funktion, nur Funktionen können wir hier gebrauchen, deshalb merke ich mir function. Das Ganze Leerzeichen werden dann ignoriert, habe ich damit. Und j netzt geht es eigentlich in die rekursiven Funktionen, das Ganze wird rekursiv aufgelöst, und zwar fängt man da mit factor an, das ist eine Vorwärtsdeklaration von expression, factor ist wenn ein minus gekommen ist, dann hole ich mir das nächste Token und liefere das Ergebnis als minus factor, also rekursiv die gleiche Funktion. Wenn es numeisch ist, kann ich mir einfach den Wert nehmen. Ist es ein ein Token ein klammauf, dann muss ich mir ein expression holen, wenn klammzu fehlt habe ich ein Fehler, ansonsten einfach das nächste Token einlesen, und bei einer Funktion prüfe ich hier ab welche funktion dann hier vorliegt, das kann klammauf it mehreren Werten oder mit einem Wert sein, das kann man nämlich hier auch noch machen. Und dann prüfe ich anschließend den Namen der Funktion sin, dan rechne ich das hier gleich aus, cos, tan, tanh, sinh und so weiter habe ich hier mal eine ganze Reihe von Funktionen vorgesehen, die man da verwenden kann und das Ergebnis am Schluss hier dann berechnet. Nun reicht der factor nicht, man braucht hier noch einen term. Das Ganze steuert mir nämlich nachher die Bindungsstärke, Punkt vor Strich geht ja zum Beispiel, Also erstmal term. Term kann eben sein ein Malzeichen und dann kann ein weiteres Token kommen und ich rechte den Faktor aus und multipliziere das dann einfach mit den Ergebnis, die kann eine Division sein und fertig, mehr haben wir hier bei uns nicht. Und beri der expression ist es so, da habe ich ein plus oder ein minus und rechne dann den entsprechenden Term aus. Dadurch wird erst der Term berechnet und dann erst die Addition oder Subtraktion, so dass dan Punkt vor Strich dann gilt, und do_formel ist schließlich unser Hauptteil. Das berechnet nun das Ganze, holt sich ein Token ab und liefert dann einfach mit expression das Ergebnis aus. Im Hauptrogramm ist es jetzt einfach aufzurufen, Zeile holen, die ich eingebe, strlen, chekin und wenn gößer 0, Formel berechnen, Ergebnis ausgeben. Und das probieren wir jetzt mal hier am Schirm aus, ob das auch wirklich so funktioniert. Da mache ich mal was ganz einfaches, 3+4. Das ist doch schon mal ganz schön. 3 7 + 1* geht auch, sin <10, da muss man natürlich gucken in welchem Bereich, das angegeben wird, 3.141 zum Beispiel, das ist hier in Radiant und so können Sie dann cos <1.57+ 2.345, was auch immer Sie berechnnen können, das wird dann hier entsprechend auch umgerechnet, das Ganze kann man auch mit Klammern machen 2 <3+4*, zum Beispiel sowas kann ich hier auch berechnen. Oder einzelne Werte gehen natürlich auch. Wenn ich hier leer eingebe bin ich fertig.

C++

Machen Sie sich mit den einfachen Grundlagen zu C++ vertraut und lernen Sie anhand zahlreicher Übungs- und Codebeispiele die Klassenkonzepte, Prozeduren und Funktionen kennen.

9 Std. 3 min (143 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Video-Training auf DVD mit Bonusmagazin

+ Tutorial to go: Mit Videos für iPod, iPhone & Co.

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!