Stacks // Klausuraufgabe WICHTIG!! please help
-
Hi,
mein erster post hier
von daher macht mich bitte auf Fehler meiner Seits aufmerksam.THXalso ich schreibe am Freitag eine Klausur in C++, und Programmieren ist zumindest bisher nicht wirklich mein Ding...
habe hier eine Klausur von früher von der ich weiß dass sie ziemlich genau so ist wie die die ich bekommen werde
ihr würdet mir nen rießen Gefallen tun wenn ihr mir bei der ein oder anderen Aufgabe helfen könntet
allein werd ich wohl nicht drauf kommen ...
Problem bei mir ist zumeist mehr die Syntax als das Verständnis für das VerfahrenAufgabe:
Gegeben sei ein Stack s mit folgendem Inhalt (A4 sei das Top-Element):
A4
A7
A6
A8Welche minimalen Stack-Operationen (top(), pop(), push(TR r)) müssen wenigstens angewendet werden, um s so zu manipulieren, dass er am Ende die folgende Gestalt besitzt:
A4
A6
A7
A8Verwenden Sie C++ Syntax. Sie dürfen dabei voraussetzen, dass die Variable s vom Typ stack bereits existiert und die Ausgangsgestalt besitzt. Die Elemente seien vom Typ TR:
{
}
Aufgabe Ende:
zwischen die Klammern soll die Lösung ...
das Verfahren (denke ich zumindest ist mir klar)
sprich ...
pop(a4);
pop(a7);
pop(a6);
push(A7);
push(A6);
push(A4);ihr würdet mir rießig helfen wenn ihr das "Gebilde" darum mir posten könntet .. denke es kann sich da nicht um sehr viel handeln (sind nur 7cm zwischen den klammern für die Lösung frei)
THX
mfg ma01
-
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?
-
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 mitvar = wert;bzwvar = func(...);zu, das kannst du auch gleich schon bei der Initialisierung machen:int var = wert;bzwint 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...