Rumpf Implementierungen

Neue Frage »

Auf diesen Beitrag antworten »
proggerisBack Rumpf Implementierungen

hallo Guten Tag ich habe wieder bei einer neuen Aufgabe probleme:

Es soll eine Klasse CRectangle implementiert werden, die ein Rechteck modelliert. Das Rechteck wird durch die Eigenschaften „linke untere Ecke“, „rechte obere Ecke“ und ein „Füllzeichen“ beschrieben, das später für die graphische Darstellung (s. u.) verwendet wird. Die Klasse CPoint zur Repräsentation einer Koordinate ist bereits vorgegeben. Verändern Sie den Quellcode dieser Klasse nicht! Die Klassendefinition der Klasse CRectangle ist ebenfalls bereits vorgegeben. Beachten Sie die Hinweise in den Kommentaren der Klassendefinition.

Hier die rumpf implementierungen:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
#ifndef ASCIISCREENSOLUTION_MYCODE_CRECTANGLE_H_
#define ASCIISCREENSOLUTION_MYCODE_CRECTANGLE_H_

#include <ostream>
using namespace std;

#include "CPoint.h"
#include "CScreen.h"

/**
 * Diese Klasse beschreibt ein Rechteck in einem
 * Ganzzahl-Koordinatensystem über die Eigenschaften
 * "untere linke Ecke" und "obere rechte Ecke".
 *
 * Als zusätzliche Eigenschaft hat die Klasse ein Zeichen
 * (char) das bei der graphischen Darstellung als
 * Füllzeichen verwendet wird.
 */
class CRectangle
{
private:
	/** Die linke untere Ecke. */
	CPoint m_bottomLeft;
	/** Die rechte obere Ecke. */
	CPoint m_topRight;
	/** Das Füllzeichen für die graphische Darstellung. */
	char m_fillChar;

public:
	/**
	 * Erzeugt ein neues Rechteck mit linker unterer und
	 * rechter oberer Ecke bei (0,0) und dem angegebenen
	 * Füllzeichen.
	 */
	CRectangle(char fillChar = '#');

	/**
	 * Erzeugt ein neues Rechteck mit der angegebenen linken
	 * unteren und rechten oberen Ecken sowie dem angegebenen
	 * Füllzeichen.
	 *
	 * Beim Erzeugen wird die Zusicherung überprüft, dass die
	 * rechte obere Ecke rechts von und oberhalt der linken
	 * unteren Ecke liegen muss! Falls die x-Koordinate
	 * der rechten oberen Ecke nicht größer als die x-Koordinate
	 * der linken unteren Ecke ist, wird sie auf den Wert
	 * der x-Koordinate der linken unteren Ecke gesetzt. Falls
	 * die y-Koordinate der rechten oberen Ecke nicht größer als
	 * die y-Koordinate der linken unteren Ecke ist, wird sie auf
	 * dem Wert der y-Koordinate der linken unteren Ecke gesetzt.
	 */
	CRectangle(CPoint bottomLeft, CPoint topRight, char fillChar = '#');

	/**
	 * Weist den Eigenschaften "linke untere Ecke" und "rechte obere
	 * Ecke" neue Werte zu.
	 *
	 * Vor der Zuweisung wird die Zusicherung überprüft, dass die
	 * rechte obere Ecke rechts von und oberhalt der linken
	 * unteren Ecke liegen muss! Ist das nicht der Fall wird keines
	 * der Attribute verändert.
	 */
	void setCorners (CPoint bottomLeft, CPoint topRight);

	/**
	 * Liefert die linke untere Ecke des Rechtecks zurück.
	 */
	CPoint getBottomLeftCorner() const;

	/**
	 * Liefert die rechte obere Ecke des Rechtecks zurück.
	 */
	CPoint getTopRightCorner() const;

	/**
	 * Weist dem Füllzeichen den angegebene Wert zu.
	 */
	void setFillChar(char fillChar = '#');

	/**
	 * Liefert den Wert des Füllzeichens.
	 */
	char getFillChar() const;

	/**
	 * Prüft, ob die beiden Rechtecke in allen Eigenschaften übereinstimmen.
	 */
	bool operator== (const CRectangle& other) const;

	/**
	 * Zeichnet das Rechteck in das übergebene Bildschirmobjekt. Das heisst,
	 * es werden mit CScreen::setPoint die Werte aller "Punkte", die im 
	 * Bereich des Rechtecks liegen, auf das Füllzeichen des Rechtecks gesetzt.
	 */
	void draw(CScreen& screen) const;

	/**
	 * Gibt eine textuelle Darstellung des Rechtecks auf dem übergebenen
	 * Ausgabestrom aus. Das Format ist in der Aufgabenstellung beschrieben.
	 */
	friend ostream& operator<< (ostream& lhs, const CRectangle& rhs);
};

#endif /* ASCIISCREENSOLUTION_MYCODE_CRECTANGLE_H_ */



cpp

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
#include "CRectangle.h"

CRectangle::CRectangle(char fillChar)
{
	m_fillChar = fillChar;
}

CRectangle::CRectangle(CPoint bottomLeft, CPoint topRight, char fillChar)
{
	// Bitte implementieren
}

void CRectangle::setCorners(CPoint bottomLeft, CPoint topRight)
{
	// Bitte implementieren
}

CPoint CRectangle::getBottomLeftCorner() const
{
	// Bitte implementieren und dabei das return-Statement ersetzen.
	return CPoint();
}

CPoint CRectangle::getTopRightCorner() const
{
	// Bitte implementieren und dabei das return-Statement ersetzen.
	return CPoint();
}

void CRectangle::setFillChar(char fillChar)
{
	// Bitte implementieren
}

char CRectangle::getFillChar() const
{
	// Bitte implementieren und dabei das return-Statement ersetzen.
	return 0;
}

bool CRectangle::operator ==(const CRectangle& other) const
{
	// Bitte implementieren und dabei das return-Statement ersetzen.
	return false;
}

void CRectangle::draw(CScreen& screen) const
{
	// Bitte implementieren
}



Stimmt mein Konstruktor soweit ?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:

#include "CRectangle.h"

CRectangle::CRectangle(char fillChar)
{
	m_fillChar = fillChar;
}

CRectangle::CRectangle(CPoint bottomLeft, CPoint topRight, char fillChar)
{
	if(x.topRight<x.bottomLeft){

		m_x.bottomLeft = x.bottomLeft;
	}
	if(y.topRight<y.bottomLeft){

			m_y.bottomLeft = y.bottomLeft;
		}
}

void CRectangle::setCorners(CPoint bottomLeft, CPoint topRight)
{
	// Bitte implementieren
}

CPoint CRectangle::getBottomLeftCorner() const
{
	// Bitte implementieren und dabei das return-Statement ersetzen.
	return CPoint();
}

CPoint CRectangle::getTopRightCorner() const
{
	// Bitte implementieren und dabei das return-Statement ersetzen.
	return CPoint();
}

void CRectangle::setFillChar(char fillChar)
{
	// Bitte implementieren
}

char CRectangle::getFillChar() const
{
	// Bitte implementieren und dabei das return-Statement ersetzen.
	return 0;
}

bool CRectangle::operator ==(const CRectangle& other) const
{
	// Bitte implementieren und dabei das return-Statement ersetzen.
	return false;
}

void CRectangle::draw(CScreen& screen) const
{
	// Bitte implementieren
}


Ich hoffe jemand kann mir helfen?
 
Auf diesen Beitrag antworten »
eulerscheZahl

Ich habe den Verdacht, dass da etwas fehlt (z.B. CPoint.h und CScreen.h, CRectangle.h).
Lade bitte alles, was du hast, als .zip hoch.
Auf diesen Beitrag antworten »
proggerisBack

Es handelt sich um eine Übungsklausur .

Hab alles angehängt .

Stimmt aber der Konstruktor schon mal?
Auf diesen Beitrag antworten »
eulerscheZahl

"Die Klasse CScreen [...] ist bereits vorgegeben".
Wo ist die?
 
Auf diesen Beitrag antworten »
progger

Eine Klasse CScreen war bei der Klausur eigentlich nicht vorgegeben .

Aber ich habe als Lösung die header.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
#ifndef ASCIISCREENSOLUTION_MYCODE_CSCREEN_H_
#define ASCIISCREENSOLUTION_MYCODE_CSCREEN_H_

#include "CPoint.h"

/**
 * Dies Klasse repräsentiert einen Bereich von 80x24 "Punkten",
 * die als ein beliebiges Zeichen dargestellt werden können.
 */
class CScreen
{
private:
	/** Der Speicher für die Darstellung der Punkte. */
	char m_content[24*80];

public:
	/**
	 * Erzeugt eine neue Darstellung, bei der alle Punkte
	 * auf den Wert '.' gesetzt sind.
	 */
	CScreen();

	/**
	 * Setzt den angegebenen Punkt auf das angegebene Zeichen.
	 */
	void setPoint(CPoint point, char content);

	/**
	 * Gibt die Darstellung aus.
	 */
	void print() const;

	/**
	 * Löscht die Darstellung. Alle Zeichen werden wieder auf
	 * '.' gesetzt.
	 */
	void clear();
};

#endif /* ASCIISCREENSOLUTION_MYCODE_CSCREEN_H_ */



Mann muss die Klasse CScreen selbst machen
Auf diesen Beitrag antworten »
progger

Stimmt der Konstruktor ?
Auf diesen Beitrag antworten »
eulerscheZahl

Nein.
Ich habe jetzt keine Lust, mir das alles in eine compilierfähige Form zusammenzukopieren, aber das ist offensichtlich falsch:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
CRectangle::CRectangle(CPoint bottomLeft, CPoint topRight, char fillChar)
{
	if(x.topRight < x.bottomLeft) {
		m_x.bottomLeft = x.bottomLeft;
	}
	if(y.topRight < y.bottomLeft) {
		m_y.bottomLeft = y.bottomLeft;
	}
}

  • du ignorierst fillChar
  • Was ist x.topRight? Du meinst wohl topRight.x
  • Was machst du denn, wenn die Ungleichung nicht erfüllt ist? Dann solltest du die x (bzw. y) Werte tauschen
  • Was ist mit m_topRight? Das setzt du nirgends.
Auf diesen Beitrag antworten »
progger

Ich habe nicht genau verstanden was ich da bei dem filchar genau beachten soll ?

Vertstehe die Kommentare nicht so ganz
Auf diesen Beitrag antworten »
progger

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:

CRectangle::CRectangle(CPoint bottomLeft, CPoint topRight, char fillChar)
{
       m_topRight= topRight;
	if(x.topRight < x.bottomLeft) {
		m_bottomLeft.x = bottomLeft.x;
	}
if(x.topRight > x.bottomLeft) {
		m_bottomLeft.y = bottomLeft.y;
	}
	if(y.topRight < y.bottomLeft) {
		m_bottomLeft.y = bottomLeft.y;
	}
if(y.topRight > y.bottomLeft) {
		m_bottomLeft.x = bottomLeft.y;
	}

}



So besser ?


m_fillChar = fillchar;

Soll ich das machen für fillchar?
Auf diesen Beitrag antworten »
progger

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
CRectangle::CRectangle(CPoint bottomLeft, CPoint topRight, char fillChar)
{
       m_topRight= topRight;
	if(topRight.x < bottomLeft.x) {
		m_bottomLeft.x = bottomLeft.x;
	}
if(topRight.x > bottomLeft.x) {
		m_bottomLeft.y = bottomLeft.y;
	}
	if(topRight.y < bottomLeft.y) {
		m_bottomLeft.y = bottomLeft.y;
	}
if(topRight.y > bottomLeft.y) {
		m_bottomLeft.x = bottomLeft.y;
	}

}



So besser ?


m_fillChar = fillchar;

Soll ich das machen für fillchar?
Auf diesen Beitrag antworten »
progger

Stimmt es so eulersche zahl ?
Auf diesen Beitrag antworten »
progger

Hat der einzige helfer eulersche zahl auch das forum verlassen ? großes Grinsen
Auf diesen Beitrag antworten »
eulerscheZahl

Nein, ihn hat nur die Motivation verlassen (die Aufgabe ist nicht besonders spannend).

Zitat:
m_fillChar = fillchar;

Ja, beachte aber die Groß-/Kleinschreibung.

Du machst für m_bottomLeft eine Prüfung, m_topRight weist du direkt zu.
Dabei vergisst du den Fall topRight.x == bottomLeft.x.
Was du tun sollst weiß ich nicht, habe den besagten Kommentar nicht gefunden, wenn ein Parameter die Zusicherung verletzt.
Auf diesen Beitrag antworten »
progger

Steht das nicht hier?

Rectangle(CPoint bottomLeft, CPoint topRight, char fillChar = '#');

/**
* Weist den Eigenschaften "linke untere Ecke" und "rechte obere
* Ecke" neue Werte zu.
*
* Vor der Zuweisung wird die Zusicherung überprüft, dass die
* rechte obere Ecke rechts von und oberhalt der linken
* unteren Ecke liegen muss! Ist das nicht der Fall wird keines
* der Attribute verändert.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
CRectangle::CRectangle(char fillChar)
{
	m_fillChar = fillChar;
}

CRectangle::CRectangle(CPoint bottomLeft, CPoint topRight, char fillChar)
{
	if(x.topRight<x.bottomLeft){

		m_x.bottomLeft = x.bottomLeft;
	}
	if(y.topRight<y.bottomLeft){

			m_y.bottomLeft = y.bottomLeft;
		}
	m_fillChar = fillChar;
}

Auf diesen Beitrag antworten »
eulerscheZahl

Das hatte ich übersehen.
Jetzt fängst du schon wieder mit x.topRight an. Das ist falsch.

Sollte etwa so gehen.
code:
1:
2:
3:
4:
m_bottomLeft.x = min(bottomLeft.x, topRight.x);
m_bottomLeft.y = min(bottomLeft.y, topRight.y);
m_topRight.x = max(bottomLeft.x, topRight.x);
m_topRight.y = max(bottomLeft.y, topRight.y);

offen bleibt, ob man das so setzen darf (x und y könnten ja private sein, habe die Klasse CPoint nicht gefunden).
Auf diesen Beitrag antworten »
progger

Was machst du da genau mit dem min und max in der Aufgabe?

verwirrt
Auf diesen Beitrag antworten »
eulerscheZahl

min berechnet das Minimum, max das Maximum.
Mit min(bottomLeft.x, topRight.x); finde ich ich x-Wert, der weiter links liegt.
Auf diesen Beitrag antworten »
progger

void setCorners (CPoint bottomLeft, CPoint topRight);

/**
* Liefert die linke untere Ecke des Rechtecks zurück.

Ich verstehe nicht welche Zusicherung die meinen ?

Vielleicht die die wir gerade implementiert haben ?

void setCorners (CPoint bottomLeft, CPoint topRight){

if(m_bottomLeft.x = min(bottomLeft.x, topRight.x)){

m_bottomLeft = bottomLeft;

}





Und für topRight diese Zusicherung beachten ?
m_topRight.x = max(bottomLeft.x, topRight.x); ?

Diese Aufgabe ist irgendwie schwer zu verstehen?

}
Auf diesen Beitrag antworten »
eulerscheZahl

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
	/**
	 * Weist den Eigenschaften "linke untere Ecke" und "rechte obere
	 * Ecke" neue Werte zu.
	 *
	 * Vor der Zuweisung wird die Zusicherung überprüft, dass die
	 * rechte obere Ecke rechts von und oberhalt der linken
	 * unteren Ecke liegen muss! Ist das nicht der Fall wird keines
	 * der Attribute verändert.
	 */

Wie prüfst du, ob die eine Ecke links oberhalb der anderen ist? Was muss für den x Wert gelten und was für y?
Du brachst hier kein min oder max, einfach nur > und <.

Zitat:
if(m_bottomLeft.x = min(bottomLeft.x, topRight.x)){

Eine Zuweisung in einer if Abfrage ist wirklich keine gute Idee.
Auf diesen Beitrag antworten »
progger

Das sind doch diese bedingungen oder ?

In dem vorigen code :

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
CRectangle::CRectangle(CPoint bottomLeft, CPoint topRight, char fillChar)
{
       m_topRight= topRight;
	if(topRight.x < bottomLeft.x) {
		m_bottomLeft.x = bottomLeft.x;
	}
if(topRight.x > bottomLeft.x) {
		m_bottomLeft.y = bottomLeft.y;
	}
	if(topRight.y < bottomLeft.y) {
		m_bottomLeft.y = bottomLeft.y;
	}
if(topRight.y > bottomLeft.y) {
		m_bottomLeft.x = bottomLeft.y;
	}

}



Soll ich diese bedingungen einbauen?
Auf diesen Beitrag antworten »
progger

Stimmt meine Idee so eulersche Zahl?
Auf diesen Beitrag antworten »
eulerscheZahl

Nein.
Auf diesen Beitrag antworten »
progger

Gute Antwort großes Grinsen

Wie prüfst du, ob die eine Ecke links oberhalb der anderen ist?

Ich weiss es nicht .

Woran merke ich denn dass die Ecke links oberhalb ist?
Auf diesen Beitrag antworten »
eulerscheZahl

Ich sehe ehrlich gesagt die Schwierigkeit nicht.
Ein Punkt ist unten links von einem anderen, wenn sein x und y Wert kleiner sind als der des anderen Punktes.
Und das "wenn" noch ins Englische übersetzen, mehr ist das nicht.
code:
1:
2:
3:
4:
if (bottomLeft.x <= topRight.x && bottomLeft.y <= topRight.y) {
	m_bottomLeft = bottomLeft;
	m_topRight = topRight;
}
Auf diesen Beitrag antworten »
progger

Die Aufgabe ist wiklich langweilig irgendwie großes Grinsen

großes Grinsen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
#include "CRectangle.h"

CRectangle::CRectangle(char fillChar)
{
	m_fillChar = fillChar;
}

CRectangle::CRectangle(CPoint bottomLeft, CPoint topRight, char fillChar)
{
       m_topRight= topRight;
	if(topRight.x < bottomLeft.x) {
		m_bottomLeft.x = bottomLeft.x;
	}
if(topRight.x > bottomLeft.x) {
		m_bottomLeft.y = bottomLeft.y;
	}
	if(topRight.y < bottomLeft.y) {
		m_bottomLeft.y = bottomLeft.y;
	}
if(topRight.y > bottomLeft.y) {
		m_bottomLeft.x = bottomLeft.y;
	}






}

void CRectangle::setCorners(CPoint bottomLeft, CPoint topRight)
{
	if (bottomLeft.x <= topRight.x && bottomLeft.y <= topRight.y) {
		m_bottomLeft = bottomLeft;
		m_topRight = topRight;
	}
}

CPoint CRectangle::getBottomLeftCorner() const
{
	// Bitte implementieren und dabei das return-Statement ersetzen.
	return m_BottomLeftCorner();
}

CPoint CRectangle::getTopRightCorner() const
{
	// Bitte implementieren und dabei das return-Statement ersetzen.
	return m_TopRightCorner();
}

void CRectangle::setFillChar(char fillChar)
{
	// Bitte implementieren
}

char CRectangle::getFillChar() const
{
	// Bitte implementieren und dabei das return-Statement ersetzen.
	return 0;
}

bool CRectangle::operator ==(const CRectangle& other) const
{
	// Bitte implementieren und dabei das return-Statement ersetzen.
	return false;
}

void CRectangle::draw(CScreen& screen) const
{
	// Bitte implementieren
}






Stimmen die get und set Methoden?
Auf diesen Beitrag antworten »
progger

ne Idee Zahl ?
Auf diesen Beitrag antworten »
eulerscheZahl

code:
1:
2:
3:
4:
5:
6:
7:
void CRectangle::setCorners(CPoint bottomLeft, CPoint topRight)
{
	if (bottomLeft.x <= topRight.x && bottomLeft.y <= topRight.y) {
		m_bottomLeft = bottomLeft;
		m_topRight = topRight;
	}
}

ja, das stimmt.

code:
1:
2:
3:
4:
5:
CPoint CRectangle::getBottomLeftCorner() const
{
	// Bitte implementieren und dabei das return-Statement ersetzen.
	return m_BottomLeftCorner();
}

das ist falsch, du hast keine Funktion m_BottomLeftCorner().
Richtig wäre return m_bottomLeft;.

Für topRight gilt das selbe.
Auf diesen Beitrag antworten »
progger

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
CPoint CRectangle::getBottomLeftCorner() const
{
	// Bitte implementieren und dabei das return-Statement ersetzen.
	return m_bottomLeft();
}

CPoint CRectangle::getTopRightCorner() const
{
	// Bitte implementieren und dabei das return-Statement ersetzen.
	return m_topRight();
}






code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
void CRectangle::setFillChar(char fillChar)
{
	m_fillChar = fillChar;
}

char CRectangle::getFillChar() const
{
	// Bitte implementieren und dabei das return-Statement ersetzen.
	return m_fillChar;
}




Kannst du bisschen versuchen zu erklären was man bei der f) machen muss ?

Verstehe nicht so genau was die wollen großes Grinsen
Auf diesen Beitrag antworten »
eulerscheZahl

code:
1:
2:
3:
4:
5:
CPoint CRectangle::getBottomLeftCorner() const
{
	// Bitte implementieren und dabei das return-Statement ersetzen.
	return m_bottomLeft();
}

Das ist falsch. m_bottomLeft ist keine Funktion, sondern eine Variable. Deshalb kommen da auch keine Klammern dahinter.

Operatorüberladung hatten wir schon hier: C++ Einführung
Auf diesen Beitrag antworten »
net

Einfach mittels Cout ausgeben ?

Mist alles wieder vergessen großes Grinsen
Auf diesen Beitrag antworten »
progger

Hast du tipps wie ich das machen kann euler?
Auf diesen Beitrag antworten »
eulerscheZahl

Das sind wir schon bei einer früheren Frage von dir durchgegangen.
Mein Tipp: nachschauen und auf das aktuelle Problem anpassen.
Zum Programmieren Lernen gehört auch zu lernen, selbstständig Dinge nachschlagen zu können. Wenn ich kompliziertere Dinge mache, lande ich fast immer auf stackoverflow.
 
Neue Frage »
Antworten »


Verwandte Themen