Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Komplexer Taschenrechner

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
04.11.2006, 20:38 Uhr
~Devilll
Gast


Hi,
also ich habe in der letzten Zeit versucht einen komlexeren Taschenrechner zu coden!
Doch mir ist es nicht gelungen habt ihr Tips wo ich mehr zu diesem Thema erfahren könnte,
es geht mir hauptsächlich um Terme mit Klammern und Variablen.
Danke im Voraus
Devil
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.11.2006, 20:43 Uhr
Blubber2063



D.h. du willst Formeln parsen ? Falls dem so ist dürfte LL1 Gramatik sein. Mal ein bischen schaun ob du nicht Literatur zu Parserbau findest.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.11.2006, 21:18 Uhr
~Devilll
Gast


Also um genau zu sein würde ich gerne ein Programm schreiben das lineare Gleichung löst,
so etwas zum Beispiel:

//So hießt die Aufgabe!
|2*(x+y)=71|
|x+13=17 |

// Und so sollte das gelöst werden:
|2x+2y=75|
|x+13=y | *2 //Der Befehl

|2x+2y=75|
|2x+26=2y| //Die Aufgabe nach dem ausgeführtem Befehl

2x+2y+26=75 |-26 //Berechnung von x
4x =49 |/4
x =12,25

12,25+13=y //Berechnung von y
25,25 =y


So sollte das ganze ablaufen!
Hat jemand einen guten rat dazu?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
04.11.2006, 21:22 Uhr
~Devilll
Gast


Sorry für den doppel Post aber ich kann ja keine Beiträge bearbeiten!
Die Aufgabe heißt so:

|2*(x+y)=75|
|x+13=y |
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
04.11.2006, 22:40 Uhr
Blubber2063



D.h. du willst das schrittweise machen ? Also wenn du dir das parsieren der Formeln sparen willst, kannst du bei linearen Gleichungen auch einfach faktoren zu den Variablen abfragen lassen, jeweis immer in der Rheinfolge wie die Variablen auftreten und dann dann die Konstante. Welches Verfahren willst du denn zur Lösung der Gleichungssysteme benutzen ?
Falls du wirklich auch nicht normierte Ausdrücke eingeben können willst solltest du dir auf jeden Fall anschauen wie man einen Parser baut, sonst kriegst du da schnell gewisse Probleme.

Dieser Post wurde am 04.11.2006 um 22:42 Uhr von Blubber2063 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
04.11.2006, 23:02 Uhr
~Devilll
Gast


Also ich werde es auf jeden fall so machen das die zwischen Schritte der Gleichung angezeigt werden, auch wenn es schwerer ist. Als Verfahren werde ich wie oben, das Einsetzungsverfahren nehemen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
06.11.2006, 08:39 Uhr
ao

(Operator)



Zitat von ~Devilll:
Also ich werde es auf jeden fall so machen

Das ist natürlich deine freie Entscheidung, aber es gibt andere Verfahren, die sich für eine Programmierung viel besser eignen, und zwar wegen des Verfahrens selber, nicht wegen der schrittweisen Ausgabe.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
06.11.2006, 16:15 Uhr
Devill



Welches Verfahren ist den am einfachsten zu Programmieren?
Und was haltet ihr von meinem Taschenrechner Source der beherscht aber momentan erst die 4 Grundrechenarten!


Code:


#include <iostream>
#include <conio.h>

using namespace std;

double ergebnis = 0;
double zahl = 0;
char rechenzeichen;

int main()
{
    
    cout << "\n\n Taschenrechner v 1.1"<<endl<<" copyright by John "<<endl<<" --------------------------- "<<endl;
    cout << " Das Programm ist so aufgebaut das sie als erstes eine Zahl,"<<endl<<" dann das Rechenzeichen und dann wieder eine Zahl eingeben muessen."<<endl<<" Um das Ergebnis zu erhahlten muessen sie einfach '=' eingeben"<<endl<<endl;
    cout << " > ";
    cin >> ergebnis;
  
    while (true)
    {
        cout << " > ";
        cin >> rechenzeichen;
        if (rechenzeichen == '=')
        {
            cout << "\n Das Ergebnis lautet : "<<ergebnis<<endl;
            break;
        }                    
        cout<<" > ";
        cin >> zahl;
        
        if (rechenzeichen == '+')
        {
            ergebnis = ergebnis + zahl;            
        }
        if (rechenzeichen == '-')
        {
            ergebnis = ergebnis - zahl;  
        }
        if (rechenzeichen == '/')
        {
            ergebnis = ergebnis /zahl;
        }
        if (rechenzeichen == '*')
        {
            ergebnis = ergebnis * zahl;
        }        
    }
    cout << " --------------------------- "<<endl<<" Danke das sie mein Projekt getestet haben"<<endl<<" creat by John"<<endl;  
    getch();
}  



Dieser Post wurde am 28.01.2009 um 22:42 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
06.11.2006, 16:44 Uhr
ao

(Operator)



Zitat von Devill:
Welches Verfahren ist den am einfachsten zu Programmieren?

Zum Beispiel dieses hier: http://de.wikipedia.org/wiki/Cramersche_Regel unter der Voraussetzung, dass das Gleichungssystem eine eindeutige Lösung hat.

Andere Verfahren siehe hier.

Dieser Post wurde am 06.11.2006 um 16:44 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
12.11.2006, 21:08 Uhr
Devill



Also in den letzten Tagen habe ich versucht solch einen code zuschreiben doch es ist nicht wirklich etwas brauchwürdigs herausgekommen kann mir vill jamand sagen wo ich einen tutorial zum bau eines parser bekommen könnte?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: