Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

C++ Frage

  -1- -2- vorwärts >>>  
_Hausmeister - 31
Halbprofi (offline)

Dabei seit 03.2010
214 Beiträge

Geschrieben am: 15.12.2010 um 06:12 Uhr

Hallo Leute!

Ich programmier gerade ein Konsolen-Programm mit C++ das eine mathematische Formel verarbeitet. Bis jetzt steht diese Formel direkt im Quellcode, aber ich würde dem Anwender gerne die Möglichkeit geben, selbst die Formel ein zu geben, mit der er arbeiten will.
So ähnlich wie bei einem Taschenrechner.
Oder braucht man, wenn man solche Eingaben machen will eine GUI?

Ungefär klar was mein Problem ist?

Ich bin zwar mehr oder weniger Anfänger, aber ich bin auch offen für komplizerte Lösungen ;)

Danke schon mal!

Apocalypse now!!

scw - 42
Experte (offline)

Dabei seit 09.2002
1836 Beiträge
Geschrieben am: 15.12.2010 um 07:03 Uhr
Zuletzt editiert am: 15.12.2010 um 07:14 Uhr

Eine GUI benötigst du dazu nicht.
Du liest einfach die Formel ein, z.B. 3+6+2 und fängst dann an, den String zu parsen. Je nachdem, was du alles erlaubst wird es doch etwas komplizierter. Ich denke da gerade an Klammerung, Punkt vor Strich usw.
Ein Beispiel kann ich dir hier gerade allerdings nicht geben. Werden auch sicherlich mehrere Klassen..

EDIT: Du musst also zunächst einmal eine lexikalische Analyse machen und benötigst dazu natürlich einen entsprechenden Automaten, den du auch erst einmal entwickeln musst.

Klischeepunk - 41
Champion (offline)

Dabei seit 01.2005
8907 Beiträge

Geschrieben am: 15.12.2010 um 10:33 Uhr

Theoretisch ließe sich wohl mit ReadKey() einigermaßen geschickt arbeiten, da du einzelne Zeichen lesen, prüfen und verwerten kannst. Fang vllt erstmal mit +/- an, dabei ist nichts zu beachten außer "mach", dann kannste schritt für schritt den Rechner erweitern. Kann am ende natürlich lustig komplex werden.

Dieser Post wurde 2 mal ROT-13 verschlüsselt.

7bored - 34
Profi (offline)

Dabei seit 01.2008
845 Beiträge

Geschrieben am: 15.12.2010 um 10:46 Uhr

Zitat von Klischeepunk:

Theoretisch ließe sich wohl mit ReadKey() einigermaßen geschickt arbeiten, da du einzelne Zeichen lesen, prüfen und verwerten kannst. Fang vllt erstmal mit +/- an, dabei ist nichts zu beachten außer "mach", dann kannste schritt für schritt den Rechner erweitern. Kann am ende natürlich lustig komplex werden.


scanf () reicht doch vollkommen aus :D

Now is the time!

scw - 42
Experte (offline)

Dabei seit 09.2002
1836 Beiträge
Geschrieben am: 15.12.2010 um 10:47 Uhr

Ich würde dann aus de gefunden Tokens (=zusammengehörige Operationen) einen Baum aufbauen und den dann am Ende abarbeiten.
scw - 42
Experte (offline)

Dabei seit 09.2002
1836 Beiträge
Geschrieben am: 15.12.2010 um 10:56 Uhr

Zitat von Klischeepunk:

Theoretisch ließe sich wohl mit ReadKey() einigermaßen geschickt arbeiten, da du einzelne Zeichen lesen, prüfen und verwerten kannst. Fang vllt erstmal mit +/- an, dabei ist nichts zu beachten außer "mach", dann kannste schritt für schritt den Rechner erweitern. Kann am ende natürlich lustig komplex werden.


Man sollte aber schon im Design berücksichtigen, dass es mehr wie nur +/- gibt. Sonst hat man beim Erweitern das Problem, dass man das meiste erstmals wegwerfen darf.
Aber welche Anfänger (und auch sonstige "Coder") fangen an, Software zu designen??
7bored - 34
Profi (offline)

Dabei seit 01.2008
845 Beiträge

Geschrieben am: 15.12.2010 um 11:21 Uhr

Zitat von scw:

Zitat von Klischeepunk:

Theoretisch ließe sich wohl mit ReadKey() einigermaßen geschickt arbeiten, da du einzelne Zeichen lesen, prüfen und verwerten kannst. Fang vllt erstmal mit +/- an, dabei ist nichts zu beachten außer "mach", dann kannste schritt für schritt den Rechner erweitern. Kann am ende natürlich lustig komplex werden.


Man sollte aber schon im Design berücksichtigen, dass es mehr wie nur +/- gibt. Sonst hat man beim Erweitern das Problem, dass man das meiste erstmals wegwerfen darf.
Aber welche Anfänger (und auch sonstige "Coder") fangen an, Software zu designen??


was meinst du mit design berücksichtigen?
er will eine konsolenanwendung :D
da muss man kein design berücksichtigen :D da fügt man einfach was in den quellcode ein und fertig :D

Now is the time!

bredator - 41
Champion (offline)

Dabei seit 03.2008
5319 Beiträge

Geschrieben am: 15.12.2010 um 11:31 Uhr

Zitat von 7bored:

Zitat von scw:

Zitat von Klischeepunk:

Theoretisch ließe sich wohl mit ReadKey() einigermaßen geschickt arbeiten, da du einzelne Zeichen lesen, prüfen und verwerten kannst. Fang vllt erstmal mit +/- an, dabei ist nichts zu beachten außer "mach", dann kannste schritt für schritt den Rechner erweitern. Kann am ende natürlich lustig komplex werden.


Man sollte aber schon im Design berücksichtigen, dass es mehr wie nur +/- gibt. Sonst hat man beim Erweitern das Problem, dass man das meiste erstmals wegwerfen darf.
Aber welche Anfänger (und auch sonstige "Coder") fangen an, Software zu designen??


was meinst du mit design berücksichtigen?
er will eine konsolenanwendung :D
da muss man kein design berücksichtigen :D da fügt man einfach was in den quellcode ein und fertig :D


Nicht wirklich. Gutes Design zeichnet sich durch saubere Struktur aus, die man beliebig erweitern kann. Einfach was in den Code reinhauen und bei der nächsten Erweiterung kann man alles nochmal neu machen...

Lache nicht über jemanden, der einen Schritt zurück macht. Er könnte Anlauf nehmen.

scw - 42
Experte (offline)

Dabei seit 09.2002
1836 Beiträge
Geschrieben am: 15.12.2010 um 11:39 Uhr

Zitat von 7bored:

Zitat von scw:


Man sollte aber schon im Design berücksichtigen, dass es mehr wie nur +/- gibt. Sonst hat man beim Erweitern das Problem, dass man das meiste erstmals wegwerfen darf.
Aber welche Anfänger (und auch sonstige "Coder") fangen an, Software zu designen??


was meinst du mit design berücksichtigen?
er will eine konsolenanwendung :D
da muss man kein design berücksichtigen :D da fügt man einfach was in den quellcode ein und fertig :D


Ich rede von Softwaredesign (siehe Wikipedia). So ein Softwaredesign kann man z.B. mit UML machen.
7bored - 34
Profi (offline)

Dabei seit 01.2008
845 Beiträge

Geschrieben am: 15.12.2010 um 11:40 Uhr

Zitat von scw:

Zitat von 7bored:

Zitat von scw:


Man sollte aber schon im Design berücksichtigen, dass es mehr wie nur +/- gibt. Sonst hat man beim Erweitern das Problem, dass man das meiste erstmals wegwerfen darf.
Aber welche Anfänger (und auch sonstige "Coder") fangen an, Software zu designen??


was meinst du mit design berücksichtigen?
er will eine konsolenanwendung :D
da muss man kein design berücksichtigen :D da fügt man einfach was in den quellcode ein und fertig :D


Ich rede von Softwaredesign (siehe Wikipedia). So ein Softwaredesign kann man z.B. mit UML machen.


abe auch das kann man einfach erweitern :

Now is the time!

scw - 42
Experte (offline)

Dabei seit 09.2002
1836 Beiträge
Geschrieben am: 15.12.2010 um 11:43 Uhr
Zuletzt editiert am: 15.12.2010 um 11:43 Uhr

Zitat von 7bored:

Zitat von scw:



Ich rede von Softwaredesign (siehe Wikipedia). So ein Softwaredesign kann man z.B. mit UML machen.


abe auch das kann man einfach erweitern :


Was? Software, die nicht designed wurde?
Darf ich dich fragen, ob du schonmal ein größeres Softwareprojekt erstellt bzw. in einem mitgearbeitet hast?
7bored - 34
Profi (offline)

Dabei seit 01.2008
845 Beiträge

Geschrieben am: 15.12.2010 um 11:46 Uhr

was ich sagen wollte,

bei größeren softwareprojekten braucht man natürlich ein uml diagramm etc.
aber auch diese diagramme lassen sich einfach erweitern.

man muss doch kein komplett neues design aufsetzen, nur weil eine funktion dazukommt

Now is the time!

scw - 42
Experte (offline)

Dabei seit 09.2002
1836 Beiträge
Geschrieben am: 15.12.2010 um 11:48 Uhr

Zitat von 7bored:

was ich sagen wollte,

bei größeren softwareprojekten braucht man natürlich ein uml diagramm etc.
aber auch diese diagramme lassen sich einfach erweitern.

man muss doch kein komplett neues design aufsetzen, nur weil eine funktion dazukommt


Das ist klar. Aber wenn man einfach drauf los hackt, kommt oft nur irgendwas dabei raus, das sich nur schwer erweitern lässt. Hab sowas schon zu oft gesehen!
7bored - 34
Profi (offline)

Dabei seit 01.2008
845 Beiträge

Geschrieben am: 15.12.2010 um 11:51 Uhr

Zitat von scw:

Zitat von 7bored:

was ich sagen wollte,

bei größeren softwareprojekten braucht man natürlich ein uml diagramm etc.
aber auch diese diagramme lassen sich einfach erweitern.

man muss doch kein komplett neues design aufsetzen, nur weil eine funktion dazukommt


Das ist klar. Aber wenn man einfach drauf los hackt, kommt oft nur irgendwas dabei raus, das sich nur schwer erweitern lässt. Hab sowas schon zu oft gesehen!

ja schon :D
Aber bei einem Taschenrechner ist ein uml Diagramm wohl eher als Übung für größere Projekte zu verstehen. Und nicht, um festzustellen, wo welche Funktion was macht :D
Bei sowas geht das auch im Kopf :D finde ich zumindest :D

Now is the time!

scw - 42
Experte (offline)

Dabei seit 09.2002
1836 Beiträge
Geschrieben am: 15.12.2010 um 11:54 Uhr
Zuletzt editiert am: 15.12.2010 um 11:56 Uhr

Zitat von 7bored:


ja schon :D
Aber bei einem Taschenrechner ist ein uml Diagramm wohl eher als Übung für größere Projekte zu verstehen. Und nicht, um festzustellen, wo welche Funktion was macht :D
Bei sowas geht das auch im Kopf :D finde ich zumindest :D


Auch mit Klammerung, *, /, ^ ?

EDIT: UML ist übrigens viel mehr, wie nur Klassendiagramme ;-)
Colt-45 - 37
Halbprofi (offline)

Dabei seit 09.2009
279 Beiträge

Geschrieben am: 15.12.2010 um 11:57 Uhr

Frag doch einfach Yasin, der hat bestimmt einen guten Lösungsansatz!
btw: gibts von ihm eigentlich neue Threads?

I said Colt 45 and two zigzags, baby that's all we need...

  -1- -2- vorwärts >>>
 

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -