Stacks // Klausuraufgabe WICHTIG!! please help



  • Badestrand schrieb:

    Was soll denn das für ein Gebilde sein? Quellcode? Wenn ja, dann guck dir doch einfach mal die Stack-Funktionen an (http://cppreference.com/cppstack/index.html), da gibts auch push und pop. Ist also relativ straight-forward, nur die ge'pop'ten Werte müsstest du dir vorher noch zwischensichern, weißt du wie man Variablen deklariert?

    ja den Quellcode nach dem gefragt ist bräuchte ich..

    {
    #include <stack>
    int A4, A6, A7, A8;

    void pop(A4);

    }

    könnte das ganze so anfangen ???
    wie kann man die gepopten werte speichern ?

    thx

    mfg ma01



  • Bevor du poppst (🤡), kannst du den Wert, der oben auf dem Stapel liegt, mit "var.top()" abfragen und halt in der entsprechenden Variable speichern 🙂



  • #include <stack>
    int A4, A6, A7, A8;
    {

    var.top(A4);
    void pop(A4);
    var.top(A6);
    void pop(A6);
    var.top(A7);
    void pop(A7);

    push(A7);
    push(A6);
    push(A4);

    }

    komm ich der Sache so näher ??

    mfg ma01
    thx



  • Kompiliert's denn?
    edit: Kleiner Tipp: Guck dir mal die Funktion "top" an: http://cppreference.com/cppstack/top.html. Noch'n Tipp: Variablen weist du mit var = wert; bzw var = func(...); zu, das kannst du auch gleich schon bei der Initialisierung machen: int var = wert; bzw int var = func(...);



  • also zum allgemeinen Verständnis:
    die "pop" -Funktion entfernt das "top-Element" aus dem Stack
    die "top" -Funktion liefert dir eine Referenz auf das "top-Element"
    die "push"-Funktion fügt ein neues "top-Element" oben an



  • Kompiliert's denn?

    --------------------Konfiguration: test - Win32 Debug--------------------
    Kompilierung läuft...
    StdAfx.cpp
    Kompilierung läuft...
    test.cpp
    c:\test\test.cpp(20) : fatal error C1010: Unerwartetes Dateiende waehrend der Suche nach der Direktive fuer die vorkompilierte Header-Datei
    Fehler beim Ausführen von cl.exe.

    test.exe - 1 Fehler, 0 Warnung(en)

    spuckt mir visual c++ aus...

    #include <stack>
    int var1 = A4, var2 = A6, var3 = A7, var4 = A8;
    {

    var1.top();
    void pop(A6);
    var2.top();
    void pop(A6);
    var3.top();
    void pop(A7);

    push(A8);
    push(A7);
    push(A6);
    push(A4);

    }

    ???

    mfg ma01



  • an den Anfang der Datei

    #include "stdafx.h"
    

    setzen und die Meldung nicht mehr kommen.

    Achja
    @ Admins: Könnt ihr mal bitte eine Sperre für alle Beiträge mit "WICHTIG!!!" und "Klausur" im Titel einrichten? Das Forum ist doch nicht als Hausaufgaben-Forum gedacht. Nervt wenn man sich jede Woche auf's neue mit den Aufgaben von iwelchen Studenten rumschlagen muss.



  • hausübungen machen wir net für dich... 🙄

    schau auf der seite cppstack selber nach



  • Und dein Code:

    #include <stack>
    int var1 = A4, var2 = A6, var3 = A7, var4 = A8;
    {
    
    var1.top();
    void pop(A6);
    var2.top();
    void pop(A6);
    var3.top();
    void pop(A7);
    
    push(A8);
    push(A7);
    push(A6);
    push(A4);
    
    }
    

    wird nicht korrekt funktionieren 😛 Was nen Müll man sich aus den Fingern saugen kann ... ein Integer hat keine Funktion "top". Deine Funktionsdekleration von pop (3x) ist so nicht korrekt bzw. ich bezweifel das du das wolltest. usw.

    #include "stdafx.h"
    #include <iostream>
    #include <stack>
    
    int main()
    {
        std::stack<int> my_stack;
    }
    

    Jetzt kannst du per my_stack.pop bsw. die pop-Funktion aufrufen ...



  • #include <iostream>
    #include <stack>
    
    enum TR { A0, A1, A2, A3, A4, A5, A6, A7, A8, A9 };
    
    int main() {
    	std::stack<TR> s;
    
    	// Der gegebene Stack
    	s.push(A4);
    	s.push(A7);
    	s.push(A6);
    	s.push(A8);
    	// Im Stack ist nun: A4, A7, A6, A8
    
    	// Stack manipulieren...
    	s.pop();
    	s.pop();
    	s.pop();
    	s.push(A6);
    	s.push(A7);
    	s.push(A8);
    	// Im Stack ist nun A4, A6, A7, A8
    
    	// Beweis(Ausgabe erfolgt umgekehrt!):
    	while (!s.empty()) {
    		std::cout << "A" << s.top() << "\n";
    		s.pop();
    	}
    
    	return 0;
    }
    

    Komische Aufgabe...

    Viele Grüße,
    Patrick



  • ... WICHTIG!! please help

    Also sind alle anderen Threads hier unwichtig ? Und andere Anfragen wollen keine Hilfe ? 🙄 🙄

    Denk doch mal kurz über Threadtitel nach, bevor Du die Dramaqueen auspackst. :p

    Gruß,

    Simon2.

    P.S.: Du kannst ihn auch jetzt noch ändern...


Anmelden zum Antworten