Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Klammerberechnung

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
13.11.2006, 16:56 Uhr
Devill



Hi,
ich habe versucht einen Code zuschreiben der Klammern berechnen kann und es ist mir auch gelungen jedenfalls halbwegs. Gibt es eigentlich befehle für die Klammerrechung?
Hier ist mein Code was haltet ihr davon?


C++:

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

using namespace std;

char rechenzeichen,rechenzeichen1;
double zahl1 = 0, zahl2 = 0;

int main(int argc, char *argv[])
{
    cout << "\n\n Taschenrechner v 1.1"<<endl<<" copyright by John "<<endl<<" --------------------------- "<<endl;
    cout << " Bitte gebe den zu berechnenen Term ein. "<<"\n Um eine Klammer zu berechenen gebe am Anfang des Terms eine '0' ein! \n"<<" Um das Ergebnis anzuzeigen gebe '=' ein. \n\n";
    cout << " > ";
    cin >> zahl1;
    while (true)
    {            
        cin >> rechenzeichen;
        
        if(rechenzeichen == '(')
        {
            cin >> zahl1;
            while (true)
            {  
                cin >> rechenzeichen1;  
                if (rechenzeichen1 == ')')
                {  
                    cout << "\n Das Ergebnis der Klammer betraegt " << zahl1;  
                    break;
                }          
                cin >> zahl2;
                if (rechenzeichen1 == '+')
                {
                    zahl1 = zahl1 + zahl2;
                }
                if (rechenzeichen1 == '-')
                {
                    zahl1 = zahl1 - zahl2;
                }
                if (rechenzeichen1 == '*')
                {
                    zahl1 = zahl1 * zahl2;
                }
                if (rechenzeichen1 == '/')
                {
                    zahl1 = zahl1 / zahl2;
                }
            }
            cin >> rechenzeichen;              
        }
        if (rechenzeichen == '=')
        {
            cout << "\n Das Ergebnis lautet : "<<zahl1<<endl;
            break;
        }    
        cin >> zahl2;
        if (rechenzeichen == '+')
        {
            zahl1 = zahl1 + zahl2;
            
        }
        if (rechenzeichen == '-')
        {
            zahl1 = zahl1 + zahl2;
        }
        if (rechenzeichen == '*')
        {
            zahl1 = zahl1 * zahl2;
        }
        if (rechenzeichen == '/')
        {
            zahl1 = zahl1 / zahl2;
        }
    }
    cout << " --------------------------- "<<endl<<" Danke das sie mein Projekt getestet haben"<<endl<<" creat by John Icq xxx-xxx-xxx"<<endl;        
    getch();      
}


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.11.2006, 17:55 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Was du suchst ist vermutlich der Begriff "Grammatik"... Damit definierst du zunächst wie eine gültige Eingabe aussehen kann. Dann "parsed" du die semantisch wichtigen Informationen draus und schmeisst dann deinen rechner an.
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.11.2006, 21:20 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Da gibts Grammatiken für, haben wir u.A. in Algorithmik I gemacht damals, Theoretische Informatik I oder II kommt das auch dran
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.11.2006, 21:25 Uhr
Blubber2063



Naja aber wie man Parserbau dazu betreibt gibts eigentlich erst im Hauptstudium zuminest bei uns, kann dir gerne nen Link zu dem "Script" schicken von der Programmiersprachen und Systeme Basisveranstaltung die ich grad besuch, da wird Parserbau besprochen, allerdings solltest du dich damit vertraut machen was Kontextfreie Grammatiken sind und dir dann eine Grammatik überlegen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.11.2006, 21:30 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@Blubber2063
Brauchst du die Lösungen für den Opalcompiler/Interpreter?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.11.2006, 21:54 Uhr
Blubber2063



Du meinst für das Mini Opal das wir übers Semester schreiben sollen ? Falls ja den Code hätten wir zur Not auch noch, falls es nicht klappen sollte(was ich nicht glaube), Bruder von nem Komilitonen hat den Kurs vor 2 Jahren besucht . Aber woher hast du den, dachte du hast kein Info studiert, oder nur auf einer der vielen Seiten gefunden .
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
13.11.2006, 22:06 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


miniOpal... hieß das nicht myopal (statt ypsilon nen mü...)?

Ich hatte mich als Zweitstudium Info eingeschrieben und bin halt bis heute noch immatrikuliert (an der TU-Berlin kann man halt Dipl.Inf. werden ohne von Inf. ne Ahnung zu haben indem man entsprechend wählt. Bierbrauen und weiß was ich für nen Krempel alles)

Prüfungen hab ich sogar alle nebenbei gemacht. Mehr schlecht als recht aber bin jetzt durch... fehlt nur noch Diplomarbeit... Komme da nur wegen Arbeit überhaupt nicht zu...

Die Klausur zu dem Kurs ist übrigens erbärmlich einfach... Ich hab nichts gemacht und man durfte alles mit reinnehmen. War selten so schlecht vorbereitet und es hat für ne 1.7 gereicht. Problem war nur das wenn man gar keinen Plan hat und erst alles aus dem Unterlagen zusammenlesen muss nicht genug Zeit hat. Ist nen echtes 1.0er Fach wenn man die Zeit da reinsteckt aber wenn man die 1.0 haben will bekommt man die da auch...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 13.11.2006 um 22:09 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
13.11.2006, 22:58 Uhr
Blubber2063



Gut zu wissen, ja heisst glaub ich my Opal, war mir aber nicht ganz sicher wegen dem Namen, daher hab ichs selbst benannt . Allerdings hab ich gehört das dass nur beim Prof Pepper so sein soll, bei Mahr gibts nur Lambda Kalkühl rauf und runter, also nur Theorie, bah.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
13.11.2006, 23:14 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Jupp war bei ehemals Pepper. Ich glaub die die die Veranstalltung offiziel gemacht hat hieß Hofstedt oder so ähnlich. Weiß ich aber nicht so genau ich war nie bei der Vorlesung
--
...fleißig wie zwei Weißbrote
 
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: