<?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[korrekturleser für matrix-vektormultiplikation gesucht]]></title><description><![CDATA[<p>hallo,</p>
<p>für eine aufgabe musste ich ein programm schreiben, das matrizen mit vektoren multipliziert. ich habe nun schon einige stunden damit verbracht, bekomme aber leider kein laufendes programm zustande. der quelltext ist meiner meinung nahezu vollständig und größtenteils korrekt, aber es werden einige syntaxfehler drinnen sein, die ich als anfänger nicht finde bzw. nicht korrigieren kann.</p>
<p>hat jemand lust sich das ding (120 zeilen) mal anzuschauen?</p>
<p>möchte es nicht unbedingt öffentlich posten, da es einerseits ziemlich groß ist und andererseits nicht unbedingt von dem betreuer gefunden werden soll <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<p>danke und gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/231461/korrekturleser-für-matrix-vektormultiplikation-gesucht</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 21:14:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/231461.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 11 Jan 2009 10:40:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to korrekturleser für matrix-vektormultiplikation gesucht on Sun, 11 Jan 2009 10:40:35 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>für eine aufgabe musste ich ein programm schreiben, das matrizen mit vektoren multipliziert. ich habe nun schon einige stunden damit verbracht, bekomme aber leider kein laufendes programm zustande. der quelltext ist meiner meinung nahezu vollständig und größtenteils korrekt, aber es werden einige syntaxfehler drinnen sein, die ich als anfänger nicht finde bzw. nicht korrigieren kann.</p>
<p>hat jemand lust sich das ding (120 zeilen) mal anzuschauen?</p>
<p>möchte es nicht unbedingt öffentlich posten, da es einerseits ziemlich groß ist und andererseits nicht unbedingt von dem betreuer gefunden werden soll <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<p>danke und gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1643261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1643261</guid><dc:creator><![CDATA[blattmacher]]></dc:creator><pubDate>Sun, 11 Jan 2009 10:40:35 GMT</pubDate></item><item><title><![CDATA[Reply to korrekturleser für matrix-vektormultiplikation gesucht on Sun, 11 Jan 2009 13:50:41 GMT]]></title><description><![CDATA[<p>Wenn du so konservativ mit deinem Code umgehst, dann wird das hier wahrscheinlich nix. Allerdings hatten wir Matrizen hier schon des öfteren und kannst dich mal mit der Forensuche (oder eher mit google) auf die Suche machen.</p>
<p>Ansonsten üb dich mal mit dem Debugger. Viel mehr kann ich so jetzt auch nicht sagen.. Aber der Debugger ist dein Freund und mit dem an der Hand + sehr viel Zeit kannst du grundsätzlich alles finden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1643369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1643369</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 11 Jan 2009 13:50:41 GMT</pubDate></item><item><title><![CDATA[Reply to korrekturleser für matrix-vektormultiplikation gesucht on Sun, 11 Jan 2009 14:53:05 GMT]]></title><description><![CDATA[<p>AUFGABENSTELLUNG</p>
<p>Implementieren Sie zwei Klassen matrix und vector.<br />
Die Klasse matrix soll folgendes enthalten (verwenden Sie keine inline Funktionen):<br />
- Als private Datenelement:<br />
- Ein (n x n)-dimensionales Feld daten mit n2 Komponenten vom Typ double**.<br />
- Eine Variable n vom Typ int, die die Dimension des Feldes abspeichert.<br />
- Als public Elementfunktionen:<br />
- Einen Konstruktor mit einem Argument vom Typ int, für die Dimension der Martix<br />
und einen Argument vom Typ double zur Initialisierung der Komponenten. Dabei soll jede Komponente der Matrix den Wert des Arguments vom Typ double erhalten. Des Weiteren achten Sie darauf, dass die Matrix dynamisch erzeugt wird. Als Default-Wert soll Null gewählt werden.<br />
- Eine Elementfunktion norm() ohne Argumente mit Ergebnistyp double, die die Spaltenbetragssummennorm des aufrufenden Objektes berechnet.<br />
- Einen Multiplikationsoperator * mit einem Argument vom Typ vector und Ergebnistyp vector, der das Produkt einer Matrix mit einem Vektor, wie oben beschrieben, berechnet.<br />
- Als friend Funktion:<br />
- Einen Operator &gt;&gt; zur Eingabe einer Matrix von einem istream. Dabei soll die Matrix zeilenweise eingelesen werden.</p>
<p>Implementieren Sie die Klasse vector, die folgendes enthalten soll (verwenden Sie keine inline Funktionen):<br />
- Als private Datenelement:<br />
- Ein Feld daten mit n Komponenten vom Typ double*.<br />
- Als public Elementfunktionen:<br />
- Einen Konstruktor mit einem Argument vom Typ int, für die Dimension des Vektors und einen Argument vom Typ double zur Initialisierung der Komponenten. Dabei soll jede Komponente des Vektors den Wert des Arguments erhalten. Des Weiteren achten Sie darauf, dass der Vektor dynamisch erzeugt wird. Als Default-Wert soll Null gewählt werden.<br />
- Einen Indexoperator [] mit einem Argument vom Typ int. Bei Aufruf des Operators [] mit dem aktuellen Argument i soll als Ergebnis eine Referenz auf die i-te Komponente des Feldes zurückgegeben werden. Falls i nicht im gültigen Indexbereich liegt, soll durch den Funktionsaufruf exit(1) das Programm abgebrochen werden. Dies dient später zum Einlesen des Vektors.<br />
- Als friend Funktionen:<br />
- Einen Operator &lt;&lt; zur Ausgabe eines Vektors.<br />
- Den Multiplikationsoperator der oben beschriebenen Klasse matrix.<br />
Schreiben Sie ein Hauptprogramm, das ein Objekt A vom Typ matrix und ein Objekt b vom Typ vector definiert und einliest. Danach soll die Spaltenbetragssummennorm von A und das Produkt A*b von A und b ausgegeben werden. Bei erfolgreicher Beendigung des Programms soll<br />
der Wert 0 an das Betriebssystem zurückgegeben werden. Vergessen Sie nicht allen dynamisch allokierten Speicherplatz wieder zu löschen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1643393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1643393</guid><dc:creator><![CDATA[blattmacher]]></dc:creator><pubDate>Sun, 11 Jan 2009 14:53:05 GMT</pubDate></item><item><title><![CDATA[Reply to korrekturleser für matrix-vektormultiplikation gesucht on Sun, 11 Jan 2009 14:58:13 GMT]]></title><description><![CDATA[<p>CODE</p>
<p>#include &lt;iostream&gt;<br />
using namespace std;</p>
<p>class vector;</p>
<p>class matrix<br />
{<br />
private:<br />
int n;<br />
double** daten;</p>
<p>public:<br />
matrix(int n, double = 0);<br />
~matrix();<br />
double norm();<br />
vector operator *(vector x);</p>
<p>friend istream&amp; operator &gt;&gt; (istream&amp; is, matrix&amp; x);<br />
};</p>
<p>class vector<br />
{<br />
private:<br />
int n;<br />
double* daten;</p>
<p>public:<br />
vector(int n, double = 0);<br />
~vector();<br />
double&amp; operator [](int i);</p>
<p>friend vector matrix::operator *(vector x);<br />
friend ostream&amp; operator &lt;&lt; (ostream&amp; os, vector&amp; x);<br />
};</p>
<p>matrix::matrix(int n, double defaultzero)<br />
{<br />
double** daten = new double* [n];<br />
for(int i=0; i&lt;n; i++) daten[i] = new double [n];</p>
<p>for(int i=0; i&lt;n; i++) for(int j=0; j&lt;n; j++) daten[i][j]=defaultzero;<br />
}</p>
<p>matrix::~matrix()<br />
{<br />
for(int i=0; i&lt;n; i++) delete[] daten[i];<br />
delete[] daten;<br />
}</p>
<p>double matrix::norm()<br />
{<br />
double* summe = new double [n];</p>
<p>for(int j=0; j&lt;n; j++) summe[j]=0;</p>
<p>for(int j=0; j&lt;n; j++) for(int i=0; i&lt;n; i++) summe[j] += daten[i][j];</p>
<p>for(int j=n-1; j&gt;=0; j--) summe[j]=max(summe[j],summe[j+1]);</p>
<p>double ret = summe[0];</p>
<p>delete[] summe;</p>
<p>return ret;<br />
}</p>
<p>vector matrix::operator *(vector x)<br />
{</p>
<p>}</p>
<p>istream&amp; operator &gt;&gt; (istream&amp; is, matrix&amp; x)<br />
{<br />
cout &lt;&lt; &quot;Bitte geben Sie die Matrix zeilenweise ein! \n \n&quot;;</p>
<p>for(int i=0; i&lt;x.n; i++) for(int j=0; j&lt;x.n; j++) is &gt;&gt; x.daten[i][j];</p>
<p>return is;<br />
}</p>
<p>double&amp; vector::operator [](int i)<br />
{<br />
if(i&gt;=n) exit(1);<br />
return daten[i];<br />
}</p>
<p>ostream&amp; operator &lt;&lt; (ostream&amp; os, vector&amp; x)<br />
{<br />
for(int i=0; i&lt;x.n; i++) os &lt;&lt; x.daten[i] &lt;&lt; &quot;\n&quot;;</p>
<p>return os;<br />
}</p>
<p>vector::vector(int n, double defaultzero)<br />
{<br />
double* daten = new double[n];</p>
<p>for(int i=0; i&lt;n; i++) daten[i]=defaultzero;<br />
}</p>
<p>vector::~vector()<br />
{<br />
delete[] daten;<br />
}</p>
<p>int main()<br />
{<br />
int dim;<br />
cout &lt;&lt; &quot;Bitte geben Sie die Dimension ein! \n \n&quot;;<br />
cin &gt;&gt; dim;<br />
cout &lt;&lt; &quot;\n&quot;;</p>
<p>matrix A(dim);<br />
vector b(dim);</p>
<p>cin &gt;&gt; A;<br />
for(int i=0; i&lt;dim; i++) cin &gt;&gt; b[i];</p>
<p>cout &lt;&lt; A.norm();</p>
<p>vector l(dim);<br />
l = A*b;<br />
cout &lt;&lt; l;</p>
<p>system(&quot;PAUSE&quot;);<br />
return 0;<br />
}</p>
<p>PROBLEM</p>
<p>wie man seht fehlt mir einerseits die eine elementfunktion noch und andererseits scheint das bisher programmierte auch nicht zu laufen. wenn ich beispielsweise eine matrix erstelle und einlesen oder einen vektor erstelle und ausgeben möchte, stürzt das programm direkt ab. diese funktionen beinhalten also wahrscheinlich auch einige fehler, die ich aber nicht finden kann, weil mir das mit der syntax alles nicht so verständlich ist.</p>
<p>ich hoffe jemand kann mir sagen, wo jeweils das problem liegt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1643398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1643398</guid><dc:creator><![CDATA[blattmacher]]></dc:creator><pubDate>Sun, 11 Jan 2009 14:58:13 GMT</pubDate></item><item><title><![CDATA[Reply to korrekturleser für matrix-vektormultiplikation gesucht on Mon, 12 Jan 2009 18:43:21 GMT]]></title><description><![CDATA[<blockquote>
<p>möchte es nicht unbedingt öffentlich posten, da es einerseits ziemlich groß ist und andererseits nicht unbedingt von dem betreuer gefunden werden soll <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
</blockquote>
<p>...wenn der Betreuer überhaupt nach sowas im Internet guggt - nach der Qualität von Skript und Übungsblättern zu urteilen, eher nicht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Ich leide mit Dir, und habs jetzt nach langer Arbeit selbst fertig.. Wenn ich Dir also helfen kann... Bin leider nicht an der Uni, weil ich zur Zeit krank bin.</p>
<p>Werd mir den Code mal anschauen und vergleichen. Du hast aber auch schon ne Menge Mühe reingesteckt... Ich schaus mal durch...</p>
<p>Bist du eigentlich TeMa oder hörst Du freiwillig? Oder gibts noch mehr arme Schlucker, die das hören müssen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1644105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1644105</guid><dc:creator><![CDATA[mitleidender]]></dc:creator><pubDate>Mon, 12 Jan 2009 18:43:21 GMT</pubDate></item><item><title><![CDATA[Reply to korrekturleser für matrix-vektormultiplikation gesucht on Mon, 12 Jan 2009 19:20:00 GMT]]></title><description><![CDATA[<p>Zeile 56 (in meinem Editor):</p>
<pre><code class="language-cpp">for(int j=0; j&lt;n; j++) for(int i=0; i&lt;n; i++) summe[j] += daten[i][j];
</code></pre>
<p>Es muss die <strong>Betrags</strong>spaltenwieauchimmernorm sein, also Betrag (fabs()) um die Daten und dazu &lt;cmath&gt; einbinden.</p>
<p>Zeile 58:</p>
<pre><code class="language-cpp">for(int j=n-1; j&gt;=0; j--) summe[j]=max(summe[j],summe[j+1]);
</code></pre>
<p>Das funktioniert so nicht. Die Schleife fängt bei n-1 an. Dann ist summe[j+1] nicht definiert, denn summe[n] gibt es nicht.</p>
<pre><code class="language-cpp">vector matrix::operator *(vector x)
{

}
</code></pre>
<p>Das ist ein Dreizeiler. Den kriegste locker hin, wenn Du den Rest bis hierher so schadlos überstanden hast!</p>
<p>Zeile 81:</p>
<pre><code class="language-cpp">double&amp; vector::operator [](int i)
{
if(i&gt;=n) exit(1);
</code></pre>
<p>Funktioniert deshalb nicht, weil n undefiniert ist. Lt Aufgabenstellung ist die Variable n in der Vektorklasse gar nicht vorgesehen. Du hast sie intelligenterweise selbst hinzugefügt, aber vergessen, im Konstruktor den übergebenen Wert zu speichern.</p>
<p>Guter Tip, den ich hier im Forum bekommen habe: Member-Variablen, also Variablen, die direkt zum Objekt gehören, mit einen Präfix (ich nehme immer m_) kennzeichnen.</p>
<p>Dein Problem ist, dass Du hier (Zeile 94)</p>
<pre><code class="language-cpp">vector::vector(int n, double defaultzero)
</code></pre>
<p>als Argument den Integer n übergibst. Der &quot;lebt&quot; aber nur solange, bis der Konstruktor beendet ist, also sobald das Objekt erschaffen wurde. Frag weiter nach, wenn Dus nicht verstehst, ich hatte da auch so meine Probleme...</p>
<p>Das wars fürs Erste, vielleicht tuts danach ja schon. Allgemein würde ich dir empfehlen, ab und an mehr Text auszugeben, damit Du, wenn das Programm läuft, auch weißt, was es tut und getan hat. Vor allem dann, wenn du nach Programmierfehlern suchst...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1644123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1644123</guid><dc:creator><![CDATA[mitleidender]]></dc:creator><pubDate>Mon, 12 Jan 2009 19:20:00 GMT</pubDate></item><item><title><![CDATA[Reply to korrekturleser für matrix-vektormultiplikation gesucht on Wed, 14 Jan 2009 16:03:51 GMT]]></title><description><![CDATA[<p>danke, bin mittlerweile auch durch.</p>
<p>aber einen fehler hab ich noch im nachhinein gefunden dank deines kommentars <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>weißt du, ob und wo es alte klausuren gibt?</p>
<p>wenn nicht, dann verrat mir doch bitte den link zu diesem mathe-forum.</p>
<p><a href="mailto:ali09@partybombe.de" rel="nofollow">ali09@partybombe.de</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1645506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1645506</guid><dc:creator><![CDATA[blattmacher]]></dc:creator><pubDate>Wed, 14 Jan 2009 16:03:51 GMT</pubDate></item></channel></rss>