stack in C++



  • drakon schrieb:

    Ein Stack ist ein Stapel, wie ein Teller Stapel, wo gilt FILA (Firs in, last out).

    Einen eigenen Stack könntest du mit der STL simulieren. In C++ hast du "direkt" eigentlich nichts damit zu tun..

    btw. Warum bis Morgen? Du wirst morgen ja kaum Vorlesungen haben. 😉

    Nein, das nicht aber wir müssen es per SVN bis 24:00 hochladen...



  • drakon schrieb:

    Einen eigenen Stack könntest du mit der STL simulieren. In C++ hast du "direkt" eigentlich nichts damit zu tun..

    Wieso nicht gleich std::stack? 😶



  • Es gibt kein 24:00 Uhr, nur 23:59 und 00:00 Uhr.



  • 😃



  • Danke mal für die Antworte, das hilft mir alles aber leider nicht wirklich weiter... kann mir nur jemand kurz ein Beispiel zeigen? Danke & Lg



  • Klugscheisser schrieb:

    Es gibt kein 24:00 Uhr, nur 23:59 und 00:00 Uhr.

    Du machst deinem Namem alle Ehre 👎



  • Selbst wenn man dir helfen wollte, könnte dir niemand helfen, da deine "Problembeschreibung" einfach ungenau ist. Du gehst nicht mal auf die dir gestellten Fragen ein. So wird das definitiv nichts! Solltest du also Interesse daran haben, dass dir wirklich jemnad hilft, solltest du dein exaktes Problem schildern. Erklär also erstmal, was du dir unter einem "Stack-Rechner" vorstellst.

    PS: Die Zeit läuft 😃 😃 😃



  • Ok, also das ganze soll so ausschauen: Ich gebe zwei Zahlen ein zb 27 und 45, dann soll man auf +, -, / oder * drücken und das Ergebnis soll geliefert werden. Also zuerst zwei zahlen auf den Stack legen und dann soll damit gerechnet werden.

    lg



  • Zeus schrieb:

    drakon schrieb:

    Einen eigenen Stack könntest du mit der STL simulieren. In C++ hast du "direkt" eigentlich nichts damit zu tun..

    Wieso nicht gleich std::stack? 😶

    Also ja.. Natürlich..;)

    Zum Problem.

    Ganz einfach 2 Zahlen einlesen und dann noch auf Zeichen warten und dann z.B per switch/case abfragen, welche gedrückt wurde und rechnen. Fertig. Das hast du in 10 Minuten.. 😉



  • Also ja.. Natürlich..;)

    Zum Problem.

    Ganz einfach 2 Zahlen einlesen und dann noch auf Zeichen warten und dann z.B per switch/case abfragen, welche gedrückt wurde und rechnen. Fertig. Das hast du in 10 Minuten.. ;)[/quote]

    ok, das ist schon klar aber das muss mit push auf einem Stack abgelegt werden, mit pop wieder geholt werden usw...



  • Ist doch völlig sinnlos, außer du willst dir einen kleinen Parser bauen, der zusammengesetzte Ausdrücke auflöst.



  • ich glaube er muss erst in 24 Stunden und 34 Minuten abgegeben haben



  • Bereits 23:22 Uhr schrieb:

    Ist doch völlig sinnlos, außer du willst dir einen kleinen Parser bauen, der zusammengesetzte Ausdrücke auflöst.

    Das ein Stackrechner nicht besonders sinnbringend ist weiß ich auch, aber das ist nun mal die Aufgabe...

    Wie kommst du jetzt bitte auf einen Parser???



  • Ach, egal.

    Hier kannst du nachlesen, wie man mit std::stack arbeitet:
    http://cppreference.com/cppstack/index.html



  • ok, das ist schon klar aber das muss mit push auf einem Stack abgelegt werden, mit pop wieder geholt werden usw...

    DAS ist völlig sinnlos. Oder was willst du mache? Nix mit Stack.
    Einen Parser brauchst du, wenn du was komplizierteres machen willst..



  • drakon schrieb:

    ok, das ist schon klar aber das muss mit push auf einem Stack abgelegt werden, mit pop wieder geholt werden usw...

    DAS ist völlig sinnlos. Oder was willst du mache? Nix mit Stack.
    Einen Parser brauchst du, wenn du was komplizierteres machen willst..

    Nochmal: Ich weiß das es sinnlos ist, ich mach das auch nicht zum Spaß am Samstag um 23:46, sondern das ist die Aufgabenstellung!



  • Würdest du für mich die Aufgabenstellung mal zitieren? Verstehe das bisher nicht wirklich.



  • Bereits 23:52 schrieb:

    Würdest du für mich die Aufgabenstellung mal zitieren? Verstehe das bisher nicht wirklich.

    Die aufgabenstellung geht über eine ganze Seite, man soll im allgemeinen einen Stack Rechner in ein Command-Design Pattern einbauen. Aber das kommt erst später. Zuerst sollt ich mal rausfinden, wie das ganze ohne Design-Pattern funktioniert.

    PS: Danke, dass du mich immer an die Uhrzeit erinnerst 😃 :p



  • Ganz rudimentär das, was ich bis jetzt verstehe, was du willst:

    int nr1,nr2;
    	char c;
    
    	std::cin >> nr1;
    	std::cin >> nr2;
    
    	std::cin >> c;
    
    	switch (c)
    	{
    	case '+':
    		std::cout << nr1+nr2;
    		break;
    	case '-':
    		std::cout << nr1-nr2;
    		break;
    	case '/':
    		std::cout << nr1/nr2;
    		break;
    	case '*':
    		std::cout << nr1*nr2;
    		break;
    	default:
    		std::cout << 0;
    
    	}
    


  • Ok, danke mal. Das hätt ich selber auch noch zusammengebracht. Also nochmal: Die zwei zahlen, sollen auf einen von mir angelegten Stack (Stapel) gelegt werden. Zuerst Zahl1, dann Zahl2.

    Dann: soll ein Operator eingegeben werden, also +,-,* oder / und dann soll die zahl1 mit der zahl2 entweder addiert, subtrahiert, multipliziert oder dividiert werden.

    Lg


Anmelden zum Antworten