<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Modulare Programmgestaltung, Vektor]]></title><description><![CDATA[<p>Guten Abend zusammen,</p>
<p>folgendes ist meine Aufgabenstellung:</p>
<blockquote>
<p>Entwerfen und implementieren Sie ein C/C++- Modul zum Arbeiten mit dreidimensionalen Vektoren. Das Modul soll in der Datei vektor.cpp<br />
implementiert werden und über seine Schnittstelle (Datei vektor.h) die folgenden Funktionalitäten bereitstellen:</p>
<p>Ausgabe eines Vektors auf dem Bildschirm</p>
<p>Berechnung des Skalarprodukts zweier Vektoren</p>
<p>Addition zweier Vektoren</p>
<p>Berechnung der Länge eines Vektors</p>
<p>Berechnung des Winkels (in Grad) zwischen zwei Vektoren</p>
<p>Definieren Sie zunächst einen neuen Datentyp VektorT, durch den ein Vektor<br />
mit seinen x-, y- und z-Koordinaten beschrieben werden kann. Legen Sie fernen die Funktionsprototypen der Schnittstellenfunktionen fest bevor<br />
Sie mit der Implementierung des Moduls beginnen. Testen<br />
Sie Ihr Modul indem Sie es in der Datei main.cpp<br />
inkludieren und aus dem Hauptprogramm<br />
aufrufen.</p>
</blockquote>
<p>So habe ich nun wie folgt eine vektor.cpp, eine main.cpp und eine vektor.h Datei angelegt.</p>
<p>Allerdings komme ich gerade absolut nicht mehr weiter.<br />
Ist es zunächst überhaupt richtig die neue Datenstruktur VektorT in der vektor.h Datei anzulegen?<br />
Und dann habe ich probiert erstmal einen Vektor auszugeben, allerdings scheiter ich schon daran da ich nicht weiß, welche Parameter ich übergeben muss.</p>
<p>Ich wäre super dankbar wenn jemand hier mal einmal drüber schauen könnte um mir ein paar Hilfestellungen zu geben.</p>
<p>Liebe Grüße <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p><strong>vektor.cpp</strong></p>
<pre><code>#include &lt;iostream&gt;
#include &lt;cmath&gt;
#include &quot;vektor.h&quot;

using namespace std;

void vek_ausgabe(VektorT Vek1)
{

	cout &lt;&lt; &quot;x-Koordinate: &quot; &lt;&lt; Vek1.x &lt;&lt; endl;
	cout &lt;&lt; &quot;y-Koordinate: &quot; &lt;&lt; Vek1.y &lt;&lt; endl;
	cout &lt;&lt; &quot;z-Koordinate: &quot; &lt;&lt; Vek1.z &lt;&lt; endl;

}

double vek_skalarpro(const VektorT Vek1, const VektorT Vek2)
{
	//VektorT Vek1, Vek2;
	double skalarpro=(Vek1.x*Vek2.x + Vek1.y*Vek2.y + Vek1.z*Vek2.z);
	return skalarpro;
}

VektorT vek_addition(const VektorT Vek1, const VektorT Vek2)
{
	VektorT Vek3;

	Vek3.x= Vek1.x+Vek2.x;
	Vek3.y= Vek1.y+Vek2.y;
	Vek3.z= Vek1.z+Vek2.z;

	return Vek3;
}

double vek_betrag(const VektorT)
{
	VektorT Vek;
	double laenge = sqrt((Vek.x*Vek.x) + (Vek.y*Vek.y) + (Vek.z*Vek.z));
	return laenge;
}

double vek_winkel(const VektorT Vek1, const VektorT Vek2)
{
	//VektorT Vek1, Vek2;
	double winkel = (vek_skalarpro(Vek1, Vek2)/(vek_betrag(Vek1)*vek_betrag(Vek2)));
	return winkel;
}
</code></pre>
<p><strong>vektor.h</strong></p>
<pre><code>struct VektorT
{ 
	int x,y,z;
};

void vek_ausgabe();
double vek_skalarpro(const VektorT, const VektorT);
VektorT vek_addition(const VektorT , const VektorT);
double vek_betrag(const VektorT);
double vek_winkel(const VektorT, const VektorT);
</code></pre>
<p><strong>main.cpp</strong></p>
<pre><code>#include &lt;iostream&gt;
#include &quot;vektor.h&quot;

void vek_ausgabe(VektorT);
double vek_skalarpro(const VektorT, const VektorT);
VektorT vek_addition(const VektorT , const VektorT);
double vek_betrag(const VektorT);
double vek_winkel(const VektorT, const VektorT);

int main()

{
	VektorT Vektor1, Vektor2;

	Vektor1.x = 1;
	Vektor1.y = 4;
	Vektor1.z = 3;

	Vektor2.x = 2;
	Vektor2.y = 6;
	Vektor2.z = 12;

	void vek_ausgabe(Vektor1);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/337484/modulare-programmgestaltung-vektor</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 23:23:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/337484.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 05 Apr 2016 18:23:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Modulare Programmgestaltung, Vektor on Tue, 05 Apr 2016 18:26:09 GMT]]></title><description><![CDATA[<p>Guten Abend zusammen,</p>
<p>folgendes ist meine Aufgabenstellung:</p>
<blockquote>
<p>Entwerfen und implementieren Sie ein C/C++- Modul zum Arbeiten mit dreidimensionalen Vektoren. Das Modul soll in der Datei vektor.cpp<br />
implementiert werden und über seine Schnittstelle (Datei vektor.h) die folgenden Funktionalitäten bereitstellen:</p>
<p>Ausgabe eines Vektors auf dem Bildschirm</p>
<p>Berechnung des Skalarprodukts zweier Vektoren</p>
<p>Addition zweier Vektoren</p>
<p>Berechnung der Länge eines Vektors</p>
<p>Berechnung des Winkels (in Grad) zwischen zwei Vektoren</p>
<p>Definieren Sie zunächst einen neuen Datentyp VektorT, durch den ein Vektor<br />
mit seinen x-, y- und z-Koordinaten beschrieben werden kann. Legen Sie fernen die Funktionsprototypen der Schnittstellenfunktionen fest bevor<br />
Sie mit der Implementierung des Moduls beginnen. Testen<br />
Sie Ihr Modul indem Sie es in der Datei main.cpp<br />
inkludieren und aus dem Hauptprogramm<br />
aufrufen.</p>
</blockquote>
<p>So habe ich nun wie folgt eine vektor.cpp, eine main.cpp und eine vektor.h Datei angelegt.</p>
<p>Allerdings komme ich gerade absolut nicht mehr weiter.<br />
Ist es zunächst überhaupt richtig die neue Datenstruktur VektorT in der vektor.h Datei anzulegen?<br />
Und dann habe ich probiert erstmal einen Vektor auszugeben, allerdings scheiter ich schon daran da ich nicht weiß, welche Parameter ich übergeben muss.</p>
<p>Ich wäre super dankbar wenn jemand hier mal einmal drüber schauen könnte um mir ein paar Hilfestellungen zu geben.</p>
<p>Liebe Grüße <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p><strong>vektor.cpp</strong></p>
<pre><code>#include &lt;iostream&gt;
#include &lt;cmath&gt;
#include &quot;vektor.h&quot;

using namespace std;

void vek_ausgabe(VektorT Vek1)
{

	cout &lt;&lt; &quot;x-Koordinate: &quot; &lt;&lt; Vek1.x &lt;&lt; endl;
	cout &lt;&lt; &quot;y-Koordinate: &quot; &lt;&lt; Vek1.y &lt;&lt; endl;
	cout &lt;&lt; &quot;z-Koordinate: &quot; &lt;&lt; Vek1.z &lt;&lt; endl;

}

double vek_skalarpro(const VektorT Vek1, const VektorT Vek2)
{
	//VektorT Vek1, Vek2;
	double skalarpro=(Vek1.x*Vek2.x + Vek1.y*Vek2.y + Vek1.z*Vek2.z);
	return skalarpro;
}

VektorT vek_addition(const VektorT Vek1, const VektorT Vek2)
{
	VektorT Vek3;

	Vek3.x= Vek1.x+Vek2.x;
	Vek3.y= Vek1.y+Vek2.y;
	Vek3.z= Vek1.z+Vek2.z;

	return Vek3;
}

double vek_betrag(const VektorT)
{
	VektorT Vek;
	double laenge = sqrt((Vek.x*Vek.x) + (Vek.y*Vek.y) + (Vek.z*Vek.z));
	return laenge;
}

double vek_winkel(const VektorT Vek1, const VektorT Vek2)
{
	//VektorT Vek1, Vek2;
	double winkel = (vek_skalarpro(Vek1, Vek2)/(vek_betrag(Vek1)*vek_betrag(Vek2)));
	return winkel;
}
</code></pre>
<p><strong>vektor.h</strong></p>
<pre><code>struct VektorT
{ 
	int x,y,z;
};

void vek_ausgabe();
double vek_skalarpro(const VektorT, const VektorT);
VektorT vek_addition(const VektorT , const VektorT);
double vek_betrag(const VektorT);
double vek_winkel(const VektorT, const VektorT);
</code></pre>
<p><strong>main.cpp</strong></p>
<pre><code>#include &lt;iostream&gt;
#include &quot;vektor.h&quot;

void vek_ausgabe(VektorT);
double vek_skalarpro(const VektorT, const VektorT);
VektorT vek_addition(const VektorT , const VektorT);
double vek_betrag(const VektorT);
double vek_winkel(const VektorT, const VektorT);

int main()

{
	VektorT Vektor1, Vektor2;

	Vektor1.x = 1;
	Vektor1.y = 4;
	Vektor1.z = 3;

	Vektor2.x = 2;
	Vektor2.y = 6;
	Vektor2.z = 12;

	void vek_ausgabe(Vektor1);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2492389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492389</guid><dc:creator><![CDATA[Stars_nStripes]]></dc:creator><pubDate>Tue, 05 Apr 2016 18:26:09 GMT</pubDate></item><item><title><![CDATA[Reply to Modulare Programmgestaltung, Vektor on Tue, 05 Apr 2016 18:38:16 GMT]]></title><description><![CDATA[<p>Stars_nStripes schrieb:</p>
<blockquote>
<p>So habe ich nun wie folgt eine vektor.cpp, eine main.cpp und eine vektor.h Datei angelegt.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Und was genau ist das Problem? Der Code ist zwar nicht gut, aber du hast ja durchaus was hinbekommen. In der Aufgabe steht sinnigerweise C/C++. Der Code schaut aber eher nach C++ aus (cout und so), also ist wohl eher eine Klasse mit Methoden gewollt.<br />
So an sich sollte dein Code aber auch halbwegs funktionieren (habs mir nicht genau angeschaut).</p>
<p>p.s. In der main.cpp solltest du das void vor vec_ausgabe natürlich weglassen, fällt mir grad auf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492394</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Tue, 05 Apr 2016 18:38:16 GMT</pubDate></item><item><title><![CDATA[Reply to Modulare Programmgestaltung, Vektor on Tue, 05 Apr 2016 18:42:54 GMT]]></title><description><![CDATA[<p>Grundsätzlich okay so. Einige Fehlerchen sind drin:</p>
<p>1. vektor.cpp, Zeile 37: <code>Vek</code> wolltest du wohl als Funktionsargument einbauen<br />
2. vektor.h, Zeile 7: Parameter vergessen, vergleiche Zeile 8 in vektor.cpp<br />
3. main.cpp, Zeilen 5-9: kein richtiger Fehler, aber redundante Deklarationen, sind bereits über vektor.h inkludiert<br />
4. mainc.pp, Zeile 24: das <code>void</code> muss beim Funktionsaufruf weg, das ist nur bei der Deklaration von Belang.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492395</guid><dc:creator><![CDATA[lassebl]]></dc:creator><pubDate>Tue, 05 Apr 2016 18:42:54 GMT</pubDate></item><item><title><![CDATA[Reply to Modulare Programmgestaltung, Vektor on Wed, 06 Apr 2016 06:16:24 GMT]]></title><description><![CDATA[<p>Noch etwas:</p>
<p>Was du in <code>vek_winkel()</code> berechnest, ist nicht der Winkel zwischen den Vektoren, sondern der Kosinus des Winkels.<br />
Um den Winkel zu erhalten, musst du auf diesen Wert noch den inversen Kosinus anwenden ( <code>acos()</code> ).</p>
<p>Und noch zwei Tips:<br />
1. Es empfiehlt sich bei diesen Funktionen (nicht immer!) für die Parameter konstante Referenzen zu nehmen ( <code>const VektorT&amp;</code> ).<br />
So müssen die Vektoren beim Funktionsaufruf nicht kopiert werden, sondern es wird direkt auf den übegebenen Vektoren gearbeitet.<br />
Wenn dir Referenzen noch nichts sagen sollten, ist es so allerdings auch eine ordentliche Lösung.<br />
2. Es lässt sich etwas Code sparen und die Funktion <code>vek_betrag()</code> elegant mithilfe des Skalarprodukts formulieren:</p>
<pre><code>double laenge = sqrt(vek_skalarpro(Vek, Vek));
</code></pre>
<p>Veilleicht empfindest empfindest du das ja auch als etwas übersichtlicher.</p>
<p>Gruss,<br />
Finnegan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492420</guid><dc:creator><![CDATA[Finnegan]]></dc:creator><pubDate>Wed, 06 Apr 2016 06:16:24 GMT</pubDate></item></channel></rss>