Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Objekt Programmierung » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 10 Beiträge
Man23

Danke Eule
eulerscheZahl

Ja, das war Aufgabe 3.

Es gibt noch eine Funktion clear, aber die ist bei mir noch kürzer als print.
Man23

Ich bin jetzt leider im Moment ein wenig verwirrt .

Ist das jetzt die ganze Aufgabe?
eulerscheZahl

Das "heute" hat ja nicht mehr geklappt.
code:
1:
2:
3:
4:
5:
void CRingBuffer::print()
{
	for(int i = 0; i < m_cntFilled; i++)
		std::cout << *(m_pBuffer + ((i + m_idxRead) % m_nSize)) << std::endl;
}

Du darfst den Wert von m_idxRead zwar abfragen, der Variable aber keinen neuen Wert zuweisen.
Man23

Auf m_idxRead und m_idxWrite darfst du dabei nur lesend zugreifen.

Wie soll ich das genau machen ?

Kannst du mir das sagen?

Muss heute fertig werden.
eulerscheZahl

In der Aufgabenstellung heißt es, dass print mittels cout den Inhalt des RingBuffers ausgeben soll, davon bist du weit entfernt.
Du brauchst eine Schleife, in der cout verwendet wird. Auf m_idxRead und m_idxWrite darfst du dabei nur lesend zugreifen.
Man23

Die Methode print soll nur die Elemente ausgeben, die tatsächlich im Ringpuffer
gespeichert sind. Schreiben Sie den Code für die Schleife auf, die auf alle gespeicherten Elemente
zugreift und diese mit cout ausgibt (die gespeicherten Elemente sind alle Elemente, die mit put in den
Buffer geschrieben, aber noch nicht mit get ausgelesen wurden). Lese- und Schreib-Index dürfen dabei
nicht verändert werden!

Ist diese Aufgabenstellung nicht komplett programmiert ?

Was fehlt da noch?

Waren meine ideen komplett falsch?
eulerscheZahl

Das ist nicht das ganze Programm, aber get und put habe ich dir programmiert.

Dateianhang:
zip CRingBuffer.zip (1,25 KB, 469 mal heruntergeladen)
Man23

Ja deine Vermutung ist richtig Euler.

Das Problem ist das ich nicht weiß welcher Code wo stehe soll , daher auch meine Frage .

Hast du paar Gips wie ich weiter vorgehen soll ?
eulerscheZahl RE: Objekt Programmierung

Der Teil steht im Nirgendwo:
Zitat:
if( m_nsize == 10){

cout << 'Puffer voll' << endl;


}

if(m_nsize == 0 ) {

cout << 'leer ' << endl;
}

das muss in eine Funktion rein.
Außerdem ist C++ case-sensitive, das heißt er macht einen Unterschied, ob du m_nSize oder m_nsize schreibst.


Zitat:
void print(){


int m_nSize;
int m_cntFilled = x;
//j
int* m_pBuffer = 0;
int m_idxWrite = 0;
int m_idxRead = 0;
}

Zu welcher Klasse gehört die Funktion denn?
CRingBuffer::print()
Wenn du die Variablen hier neu anlegst, "verdeckst" du damit die Klassenvariablen, dabei müsstest du nur darauf zugreifen.


Zu Aufgabe 2:
es muss sowohl für voll, als auch für leer gelten: m_idxWrite == m_idxRead
Ich vermute, dass m_nSize angibt, wie viel Speicherplatz zur Verfügung steht und m_cntFilled angibt, wie viele beschieben sind, richtig?
dann: leer für m_cntFilled == 0, voll für m_cntFilled == m_nSize.
Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen.