Tastatureingaben
-
Hi ich will nen Taschenrechner programmieren ( nen komplexen ) also mit potenz, sinus cosinus usw........
und jetzt wollte ich wissen obs ne andere möglichkeit gibt als strings zu filtern um zb ein minus oder pluszeichen in eine formel einzulesen. Also dass der PC direkt das Zeichen erkennt.
Ausserdem wüsst ich gern wie man von Funktionen zu anderen Funktionen "springt" in einem Programm ( hab mich noch nicht richtig schlau gemacht da drüber srry wenns ne blöde frage ist )
Mfg Seryoga und Danke für die Tipps
-
Beantwortet vieleicht das deine Fragen?
Auszug aus meinem Programm:
(Was ich kopiert und dann verändert habe
)int rechnomat(void) { char rechnung[64],_operator; float erster_wert,zweiter_wert,resultat; int mult,cnt; do{ system("CLS"); cout << "Wilkommen bei Rechnomat!!!\n\n\n\n"; cout << "Bitte geben sie ihren Term ein und best"<< ae <<"tigen mit <Enter>: \n\n"; fflush(stdin); gets(rechnung);cnt=(int)strlen(rechnung)-1; mult=1; zweiter_wert=0; while(rechnung[cnt]>='0'&&rechnung[cnt]<='9'){ zweiter_wert+=(rechnung[cnt]&0x0f)*mult; mult*=10; cnt--; } _operator=rechnung[cnt]; cnt--; mult=1; erster_wert=0; while(cnt>=0){ erster_wert+=(rechnung[cnt]&0x0f)*mult; mult*=10; cnt--; } switch(_operator){ case '#': resultat=pow(erster_wert,zweiter_wert); break; case '+': resultat=erster_wert+zweiter_wert; break; case '-': resultat=erster_wert-zweiter_wert; break; case '*': resultat=erster_wert*zweiter_wert; break; case '/': resultat=erster_wert/zweiter_wert; break; case '~': resultat=sqrt(erster_wert); } printf("\nDas Ergebnis von: %f %c %f\nIst gleich: %f\n\n\n\n\n",erster_wert,_operator,zweiter_wert,resultat); cout << "Dr" << ue << "cken sie q um zum Men" << ue << " zur" << ue << "ck zu gelangen.\n"; cout << "Wenn sie Weitermachen m" << oe << "chten dr" << ue << "cken bitte Enter.\n\n"; } while(getchar()!='q'); return 0; }Entschuldigung wenn ich dich falsch verstanden hatte!!!
Gruß Jermuk
EDIT: Sinus ist sin(x)
Cosinus ist cos(x)
Tangens ist tan(x)
Quadratwurzel ist sqrt(x)
Hochrechnen ist (x,y)
-
Ja das ist eine Lösung.... danke erst mal

aber ich hab nen direkten bezug gemeint zu der Tastatur..... also was müsste man z. B. machen um druck, einfügen, entfernen usw abzufragen???
Geht das auch ohne den einzulesenden String zu prüfen?
-
Seryoga schrieb:
Ja das ist eine Lösung.... danke erst mal

aber ich hab nen direkten bezug gemeint zu der Tastatur..... also was müsste man z. B. machen um druck, einfügen, entfernen usw abzufragen???
Geht das auch ohne den einzulesenden String zu prüfen?Das geht leider aus meinem Wissensgebiet raus

Aber du hast mich neugierig gemacht
Gruß jermuk
-
Du könntest die Tastatureingaben z.B. mit OnKeyDown abfangen und auswerten. In etwa so macht das der Windows Rechner ja auch. Er merkt sich quasi den Rechenoperator.
Seryoga schrieb:
Ausserdem wüsst ich gern wie man von Funktionen zu anderen Funktionen "springt" in einem Programm ( hab mich noch nicht richtig schlau gemacht da drüber srry wenns ne blöde frage ist )
Was meinst du damit?
-
Also ich mein wenn man ein paar Funktionen definiert hat wie man die dann aufruft und wieder schließt.
-
Seryoga schrieb:
Also ich mein wenn man ein paar Funktionen definiert hat wie man die dann aufruft und wieder schließt.
Beispiel:
main() { . . . deinefunktion(); } deinefunktien() { return (x=x*x); }Ungefähr so?
-
Mach dich doch mal mit Syntaxanalyse kundig.
Also mit lexikalischer Analyse, bei der man einzelne Einheiten erkennt.
Und dann mit Syntaxanalyse, die einen Syntaxbaum erstellt, der schliesslich
ausgewertet wird. Viel Spass...
-
Ist bestimmt ne gute Idee aber das Zeug das ich aus meinem Buch rauslesen kann bringt so gesehn lernmäßig nicht viel.... empfiehlt jmd nen guten Link mit Beispielen bitte?
Danke im Voraus
