<?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[problem bei einigen berechnungen]]></title><description><![CDATA[<p>erstmal an alle ein großes hallllo <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>so nun mein problem, ich füg mal schnell den quellcode ein:<br />
bis jetzt funktioniert alles so wie ich es mir vorstelle. nur leider rechnet mein gaussverfahren (steht weiter unten im code) noch falsch und ich find den fehler irgendwie gerade nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    />. kann mir da vielleicht jemand weiterhelfen?</p>
<pre><code>#include &quot;stdafx.h&quot;
#include &lt;stdio.h&gt;
#include &lt;math.h&gt;
#include &lt;iostream.h&gt;
#define max 10 

void main()
{
    int spalten_a, ispalten;   //spalten matrix a
    int zeilen_a;   //zeilen matrix a
    int spalten_b;   //spalten matrix b
    int zeilen_b;   //zeilen matrix b
	int zeilen_vektor;   //zeilen vektor v
	int i,j,k,l;       
    int matrixA[max][max]; //erste Matrix
    int matrixB[max][max]; //zweite Matrix
    int matrixC[max][max]; //ergebnis Matrix
	int vektorU[max];	   //erster Vektor
	int vektorV[max];      //zweiter Vektor
	int vektorW[max];      //ergebnisvektor
	char ende;

	float matrixAg[max][max];
	float vektorN[max];      // LGS ergebnis
	float vektorX[max];    // gesuchte Nullstellen
	int m;

    do
	{
// Eingabe der 2 Matrizen

	while(1){

      /*  cout &lt;&lt; &quot;Gib die Dimensionen der Matrizen ein (min. 1, max. &quot;&lt;&lt; max &lt;&lt; &quot; ):&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot; &lt;&lt; endl;*/
        cout &lt;&lt; &quot;Gib die Dimensionen der Matrizen ein:&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Wieviele Zeilen hat die Matrix A ?&quot; &lt;&lt; endl; 
		cout &lt;&lt; &quot;Zeilen: &quot;;
		cin &gt;&gt; zeilen_a;
		cout &lt;&lt; &quot;Wieviele Spalten hat die Matrix A ?&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Spalten: &quot;;
		cin &gt;&gt; spalten_a;
		cout &lt;&lt; &quot;\nWieviele Zeilen hat die Matrix B ?&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Zeilen: &quot;;
		cin &gt;&gt; zeilen_b;
        cout &lt;&lt; &quot;Wieviele Spalten hat die Matrix B ?&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Spalten: &quot;;
		cin &gt;&gt; spalten_b;
		ispalten = spalten_a;

// mit dieser endlosschleife wird die eingabe solange wiederholte bis die matrizen den richtigen wert haben
// also in diesem beispiel 3x3, weil define max 3.

     if(spalten_a==zeilen_b)
		 break;

        else 
			cout &lt;&lt; &quot;Die Matrizen lassen sich so nicht Multiplitzieren gib neue Werte ein !!!\n&quot;;
    }

// wenn die matrizen den richtigen wert haben gehts hier weiter
    cout &lt;&lt; &quot;\nMatrix A hat das Format &quot; &lt;&lt; spalten_a &lt;&lt; &quot; x &quot; &lt;&lt; zeilen_a &lt;&lt; endl;
    cout &lt;&lt; &quot;Matrix B hat das Format &quot; &lt;&lt; spalten_b &lt;&lt; &quot; x &quot; &lt;&lt; zeilen_b &lt;&lt; endl;
    cout &lt;&lt; &quot;\nBelege die Matrix A mit &quot; &lt;&lt; spalten_a*zeilen_a &lt;&lt; &quot; Werten:&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot;;

// Matrix A belegen
    for (i=0; i&lt;zeilen_a; i++)
    {    
		cout &lt;&lt; &quot;\nZeile &quot; &lt;&lt; i+1 &lt;&lt; &quot; = &quot;; 

		for (j=0; j&lt;spalten_a; j++)

			cin &gt;&gt; matrixA[i][j];
    } 

 // Matrix A zur kontrolle ausgeben
   cout &lt;&lt; &quot;\n\tMatrix A:&quot;;
	for (i = 0; i &lt; zeilen_a; i++)
    {    
		  cout &lt;&lt; &quot;&quot; &lt;&lt; endl;

		for (j=0; j&lt;spalten_a; j++)

			cout &lt;&lt; &quot;\t&quot; &lt;&lt;matrixA[i][j];

    } 

	cout &lt;&lt; &quot;\n\nBelege die Matrix B mit &quot; &lt;&lt; spalten_b*zeilen_b &lt;&lt; &quot; Werten:&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot;;

// Matrix B belegen
    for (i = 0; i &lt; zeilen_b; i++)
    {    
		cout &lt;&lt; &quot;\nZeile &quot; &lt;&lt; i+1 &lt;&lt; &quot; = &quot;; 

		for (j=0; j&lt;spalten_b; j++)

			cin &gt;&gt; matrixB[i][j];
    } 

// Matrix B zur kontrolle ausgeben
    cout &lt;&lt; &quot;\n\tMatrix B:&quot;;
	for (i=0; i&lt;zeilen_b; i++)
    {    
		cout &lt;&lt; &quot;&quot; &lt;&lt; endl; 

		for (j=0; j&lt;spalten_b; j++)

			cout &lt;&lt; &quot;\t&quot; &lt;&lt; matrixB[i][j];

    }

	cout &lt;&lt; &quot;\n\n&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;Berechnung (Mulitplikation mit Falk- Schema) der beiden Matrizen:&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot; &lt;&lt; endl;

// Matrix berechnen (multiplikation)

for (k=0; k&lt;zeilen_a; ++k) 
      for (l=0; l&lt;spalten_b; ++l){
        int s = 0;
        for (int h=0; h&lt;spalten_a; ++h)
          s = s + matrixA[k][h] * matrixB[h][l];
        matrixC[k][l] = s;
      }

	for (k=0; k&lt;zeilen_a; k++)
    {    
		cout &lt;&lt; endl; 
        for (l=0; l&lt;spalten_b; l++)
            cout &lt;&lt; &quot;\t&quot; &lt;&lt; matrixC[k][l];

    }

// Vektor-Multiplikation
cout &lt;&lt; &quot;\n\nVektormultiplikation:&quot; &lt;&lt; endl;
cout &lt;&lt; &quot;*********************&quot; &lt;&lt; endl;
cout &lt;&lt; &quot;\nWieviele Zeilen haben die Vektoren?&quot; &lt;&lt; endl;
cout &lt;&lt; &quot;Vektorzeilen: &quot;;
cin &gt;&gt; zeilen_vektor;

// Vektor u belegen
cout &lt;&lt; &quot;\nVektor u: &quot;&lt;&lt;endl;
for(i=0; i&lt;zeilen_vektor; i++)
{
	cout &lt;&lt; &quot;Zeile &quot; &lt;&lt; i+1 &lt;&lt; &quot; = &quot;;
	cin &gt;&gt; vektorU[i];

}

// Vektor u zur Kontrolle ausgeben
cout &lt;&lt; endl;
cout &lt;&lt; &quot;\n\tVektor u:&quot;;
for(i=0;i&lt;zeilen_vektor;i++)
{
	cout &lt;&lt; &quot;&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;\t&quot; &lt;&lt;vektorU[i];

}

// Vektor v belegen
cout &lt;&lt; endl &lt;&lt; endl;
cout &lt;&lt; &quot;Vektor v: &quot;&lt;&lt;endl;
for (j=0; j&lt;zeilen_vektor; j++)
{
	cout &lt;&lt; &quot;Zeile &quot; &lt;&lt; j+1 &lt;&lt; &quot; = &quot;;
	cin &gt;&gt; vektorV[j];
}

// Vektor v zur Kontrolle ausgeben
cout &lt;&lt; &quot;\n\tVektor v:&quot;;
for(j=0;j&lt;zeilen_vektor;j++)
{
	cout &lt;&lt; &quot;&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;\t&quot; &lt;&lt;vektorV[j];
}
cout &lt;&lt; endl;
// Vektor Multiplikation

for(k=0;k&lt;zeilen_vektor;k++)
{
	vektorW[k]=vektorU[k]*vektorV[k];
}

cout &lt;&lt; &quot;\nErgebnis: Vektor u * Vektor v&quot;&lt;&lt;endl;
cout &lt;&lt; &quot;=============================&quot;&lt;&lt;endl;

cout &lt;&lt; &quot;\n\tVektor w:&quot;;
for(l=0;l&lt;zeilen_vektor;l++)
{
	cout &lt;&lt; &quot;\n&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;\t&quot; &lt;&lt; vektorW[l];
}

cout &lt;&lt; endl &lt;&lt; endl;;

// Gaussverfahren

/*****************************************************/

	float f;

	// Eingabe von a und b ...

	cout &lt;&lt; &quot;Gaussverfahren (in der Form A*x=b):&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;\nWieviele Zeilen hat die Matrix ?&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;Zeilen: &quot;;
	cin &gt;&gt; zeilen_a;
	cout &lt;&lt; &quot;Wieviele Spalten hat die Matrix ?&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;Spalten: &quot;;
	cin &gt;&gt; spalten_a;
	cout &lt;&lt; &quot;Matrix eingeben:&quot; &lt;&lt; endl;	
// Matrix eingeben
    for (i=0; i&lt;zeilen_a; i++)
    {    
		cout &lt;&lt; &quot;\nZeile &quot; &lt;&lt; i+1 &lt;&lt; &quot; = &quot;; 

		for (j=0; j&lt;spalten_a; j++)

			cin &gt;&gt; matrixAg[i][j];
    } 

// Matrix zur kontrolle ausgeben
   cout &lt;&lt; &quot;\n\tMatrix A:&quot;;
	for (i = 0; i &lt; zeilen_a; i++)
    {    
		  cout &lt;&lt; &quot;&quot; &lt;&lt; endl;

		for (j=0; j&lt;spalten_a; j++)

			cout &lt;&lt; &quot;\t&quot; &lt;&lt;matrixAg[i][j];

    } 

// Vektor n ausgeben
cout &lt;&lt; &quot;\n\nVektor x:&quot; &lt;&lt; endl;
for(i=0;i&lt;zeilen_a /*zeilen_vektor*/ ;i++)
{
	cout &lt;&lt; &quot;x&quot; &lt;&lt; i+1 &lt;&lt; &quot; = ?&quot; &lt;&lt; endl;

}

// Vektor b belegen  (Ergebnisvektor)
//cout &lt;&lt; &quot;\n\nWieviele Zeilen hat der Vektor ?&quot; &lt;&lt; endl;
//cout &lt;&lt; &quot;Zeilen: &quot;;
//cin &gt;&gt; zeilen_vektor;
cout &lt;&lt; &quot;\n\nVektor b (&quot; &lt;&lt; zeilen_a &lt;&lt; &quot; Zeilen):&quot;&lt;&lt;endl;
for(i=0; i&lt;zeilen_a /*zeilen_vektor*/; i++)
{
	cout &lt;&lt; &quot;Zeile &quot; &lt;&lt; i+1 &lt;&lt; &quot; = &quot;;
	cin &gt;&gt; vektorN[i];

}

// Vektor b zur Kontrolle ausgeben
cout &lt;&lt; &quot;\n\tVektor b:&quot;;
for(i=0;i&lt;zeilen_a /*zeilen_vektor*/ ;i++)
{
	cout &lt;&lt; &quot;&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;\t&quot; &lt;&lt;vektorN[i];

}

	//In Dreiecksform bringen:
	cout &lt;&lt; &quot;\n\nBerechnung&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;**********&quot; &lt;&lt; endl;

	for (k = 0; k &lt; zeilen_a; ++k)
	for (l = k+1; l &lt; zeilen_a; ++l) 
	{
		f = matrixAg[l][k]/matrixAg[k][k];

		for (m = k; m&lt;zeilen_a; ++m)
			matrixAg[l][m] = matrixAg[l][m] - f*matrixAg[k][m];

		vektorN[l] = vektorN[l] - f*vektorN[k];
	}
//Rückrechnung (x-Werte berechnen):
for (k = zeilen_a-1; k&gt;=0; --k) 
{
	float z = vektorN[k];

	for (l=k+1; l&lt;zeilen_a; ++l)
	z = z - vektorX[l]*matrixAg[k][l];
	vektorX[k] = z/matrixAg[k][k];
}
// Ausgabe von vektorX ...

cout &lt;&lt; endl;	
for (l=0;l&lt;zeilen_a;l++)	
cout &lt;&lt; &quot;\t&quot; &lt;&lt; &quot;x&quot; &lt;&lt; l+1 &lt;&lt; &quot; = &quot; &lt;&lt; vektorX[k] &lt;&lt; endl;

//}

/*****************************************************/

// Weiter?
	  cout &lt;&lt; &quot;\nWeiter (j/n): &quot;;
	  cin &gt;&gt; ende;
	  cout &lt;&lt; &quot;\n&quot; &lt;&lt; endl;
	  }while(ende != 'n');

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/183517/problem-bei-einigen-berechnungen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 09:34:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183517.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 05 Jun 2007 18:11:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to problem bei einigen berechnungen on Tue, 05 Jun 2007 18:36:48 GMT]]></title><description><![CDATA[<p>erstmal an alle ein großes hallllo <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>so nun mein problem, ich füg mal schnell den quellcode ein:<br />
bis jetzt funktioniert alles so wie ich es mir vorstelle. nur leider rechnet mein gaussverfahren (steht weiter unten im code) noch falsch und ich find den fehler irgendwie gerade nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    />. kann mir da vielleicht jemand weiterhelfen?</p>
<pre><code>#include &quot;stdafx.h&quot;
#include &lt;stdio.h&gt;
#include &lt;math.h&gt;
#include &lt;iostream.h&gt;
#define max 10 

void main()
{
    int spalten_a, ispalten;   //spalten matrix a
    int zeilen_a;   //zeilen matrix a
    int spalten_b;   //spalten matrix b
    int zeilen_b;   //zeilen matrix b
	int zeilen_vektor;   //zeilen vektor v
	int i,j,k,l;       
    int matrixA[max][max]; //erste Matrix
    int matrixB[max][max]; //zweite Matrix
    int matrixC[max][max]; //ergebnis Matrix
	int vektorU[max];	   //erster Vektor
	int vektorV[max];      //zweiter Vektor
	int vektorW[max];      //ergebnisvektor
	char ende;

	float matrixAg[max][max];
	float vektorN[max];      // LGS ergebnis
	float vektorX[max];    // gesuchte Nullstellen
	int m;

    do
	{
// Eingabe der 2 Matrizen

	while(1){

      /*  cout &lt;&lt; &quot;Gib die Dimensionen der Matrizen ein (min. 1, max. &quot;&lt;&lt; max &lt;&lt; &quot; ):&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot; &lt;&lt; endl;*/
        cout &lt;&lt; &quot;Gib die Dimensionen der Matrizen ein:&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Wieviele Zeilen hat die Matrix A ?&quot; &lt;&lt; endl; 
		cout &lt;&lt; &quot;Zeilen: &quot;;
		cin &gt;&gt; zeilen_a;
		cout &lt;&lt; &quot;Wieviele Spalten hat die Matrix A ?&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Spalten: &quot;;
		cin &gt;&gt; spalten_a;
		cout &lt;&lt; &quot;\nWieviele Zeilen hat die Matrix B ?&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Zeilen: &quot;;
		cin &gt;&gt; zeilen_b;
        cout &lt;&lt; &quot;Wieviele Spalten hat die Matrix B ?&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Spalten: &quot;;
		cin &gt;&gt; spalten_b;
		ispalten = spalten_a;

// mit dieser endlosschleife wird die eingabe solange wiederholte bis die matrizen den richtigen wert haben
// also in diesem beispiel 3x3, weil define max 3.

     if(spalten_a==zeilen_b)
		 break;

        else 
			cout &lt;&lt; &quot;Die Matrizen lassen sich so nicht Multiplitzieren gib neue Werte ein !!!\n&quot;;
    }

// wenn die matrizen den richtigen wert haben gehts hier weiter
    cout &lt;&lt; &quot;\nMatrix A hat das Format &quot; &lt;&lt; spalten_a &lt;&lt; &quot; x &quot; &lt;&lt; zeilen_a &lt;&lt; endl;
    cout &lt;&lt; &quot;Matrix B hat das Format &quot; &lt;&lt; spalten_b &lt;&lt; &quot; x &quot; &lt;&lt; zeilen_b &lt;&lt; endl;
    cout &lt;&lt; &quot;\nBelege die Matrix A mit &quot; &lt;&lt; spalten_a*zeilen_a &lt;&lt; &quot; Werten:&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot;;

// Matrix A belegen
    for (i=0; i&lt;zeilen_a; i++)
    {    
		cout &lt;&lt; &quot;\nZeile &quot; &lt;&lt; i+1 &lt;&lt; &quot; = &quot;; 

		for (j=0; j&lt;spalten_a; j++)

			cin &gt;&gt; matrixA[i][j];
    } 

 // Matrix A zur kontrolle ausgeben
   cout &lt;&lt; &quot;\n\tMatrix A:&quot;;
	for (i = 0; i &lt; zeilen_a; i++)
    {    
		  cout &lt;&lt; &quot;&quot; &lt;&lt; endl;

		for (j=0; j&lt;spalten_a; j++)

			cout &lt;&lt; &quot;\t&quot; &lt;&lt;matrixA[i][j];

    } 

	cout &lt;&lt; &quot;\n\nBelege die Matrix B mit &quot; &lt;&lt; spalten_b*zeilen_b &lt;&lt; &quot; Werten:&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot;;

// Matrix B belegen
    for (i = 0; i &lt; zeilen_b; i++)
    {    
		cout &lt;&lt; &quot;\nZeile &quot; &lt;&lt; i+1 &lt;&lt; &quot; = &quot;; 

		for (j=0; j&lt;spalten_b; j++)

			cin &gt;&gt; matrixB[i][j];
    } 

// Matrix B zur kontrolle ausgeben
    cout &lt;&lt; &quot;\n\tMatrix B:&quot;;
	for (i=0; i&lt;zeilen_b; i++)
    {    
		cout &lt;&lt; &quot;&quot; &lt;&lt; endl; 

		for (j=0; j&lt;spalten_b; j++)

			cout &lt;&lt; &quot;\t&quot; &lt;&lt; matrixB[i][j];

    }

	cout &lt;&lt; &quot;\n\n&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;Berechnung (Mulitplikation mit Falk- Schema) der beiden Matrizen:&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot; &lt;&lt; endl;

// Matrix berechnen (multiplikation)

for (k=0; k&lt;zeilen_a; ++k) 
      for (l=0; l&lt;spalten_b; ++l){
        int s = 0;
        for (int h=0; h&lt;spalten_a; ++h)
          s = s + matrixA[k][h] * matrixB[h][l];
        matrixC[k][l] = s;
      }

	for (k=0; k&lt;zeilen_a; k++)
    {    
		cout &lt;&lt; endl; 
        for (l=0; l&lt;spalten_b; l++)
            cout &lt;&lt; &quot;\t&quot; &lt;&lt; matrixC[k][l];

    }

// Vektor-Multiplikation
cout &lt;&lt; &quot;\n\nVektormultiplikation:&quot; &lt;&lt; endl;
cout &lt;&lt; &quot;*********************&quot; &lt;&lt; endl;
cout &lt;&lt; &quot;\nWieviele Zeilen haben die Vektoren?&quot; &lt;&lt; endl;
cout &lt;&lt; &quot;Vektorzeilen: &quot;;
cin &gt;&gt; zeilen_vektor;

// Vektor u belegen
cout &lt;&lt; &quot;\nVektor u: &quot;&lt;&lt;endl;
for(i=0; i&lt;zeilen_vektor; i++)
{
	cout &lt;&lt; &quot;Zeile &quot; &lt;&lt; i+1 &lt;&lt; &quot; = &quot;;
	cin &gt;&gt; vektorU[i];

}

// Vektor u zur Kontrolle ausgeben
cout &lt;&lt; endl;
cout &lt;&lt; &quot;\n\tVektor u:&quot;;
for(i=0;i&lt;zeilen_vektor;i++)
{
	cout &lt;&lt; &quot;&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;\t&quot; &lt;&lt;vektorU[i];

}

// Vektor v belegen
cout &lt;&lt; endl &lt;&lt; endl;
cout &lt;&lt; &quot;Vektor v: &quot;&lt;&lt;endl;
for (j=0; j&lt;zeilen_vektor; j++)
{
	cout &lt;&lt; &quot;Zeile &quot; &lt;&lt; j+1 &lt;&lt; &quot; = &quot;;
	cin &gt;&gt; vektorV[j];
}

// Vektor v zur Kontrolle ausgeben
cout &lt;&lt; &quot;\n\tVektor v:&quot;;
for(j=0;j&lt;zeilen_vektor;j++)
{
	cout &lt;&lt; &quot;&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;\t&quot; &lt;&lt;vektorV[j];
}
cout &lt;&lt; endl;
// Vektor Multiplikation

for(k=0;k&lt;zeilen_vektor;k++)
{
	vektorW[k]=vektorU[k]*vektorV[k];
}

cout &lt;&lt; &quot;\nErgebnis: Vektor u * Vektor v&quot;&lt;&lt;endl;
cout &lt;&lt; &quot;=============================&quot;&lt;&lt;endl;

cout &lt;&lt; &quot;\n\tVektor w:&quot;;
for(l=0;l&lt;zeilen_vektor;l++)
{
	cout &lt;&lt; &quot;\n&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;\t&quot; &lt;&lt; vektorW[l];
}

cout &lt;&lt; endl &lt;&lt; endl;;

// Gaussverfahren

/*****************************************************/

	float f;

	// Eingabe von a und b ...

	cout &lt;&lt; &quot;Gaussverfahren (in der Form A*x=b):&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;\nWieviele Zeilen hat die Matrix ?&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;Zeilen: &quot;;
	cin &gt;&gt; zeilen_a;
	cout &lt;&lt; &quot;Wieviele Spalten hat die Matrix ?&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;Spalten: &quot;;
	cin &gt;&gt; spalten_a;
	cout &lt;&lt; &quot;Matrix eingeben:&quot; &lt;&lt; endl;	
// Matrix eingeben
    for (i=0; i&lt;zeilen_a; i++)
    {    
		cout &lt;&lt; &quot;\nZeile &quot; &lt;&lt; i+1 &lt;&lt; &quot; = &quot;; 

		for (j=0; j&lt;spalten_a; j++)

			cin &gt;&gt; matrixAg[i][j];
    } 

// Matrix zur kontrolle ausgeben
   cout &lt;&lt; &quot;\n\tMatrix A:&quot;;
	for (i = 0; i &lt; zeilen_a; i++)
    {    
		  cout &lt;&lt; &quot;&quot; &lt;&lt; endl;

		for (j=0; j&lt;spalten_a; j++)

			cout &lt;&lt; &quot;\t&quot; &lt;&lt;matrixAg[i][j];

    } 

// Vektor n ausgeben
cout &lt;&lt; &quot;\n\nVektor x:&quot; &lt;&lt; endl;
for(i=0;i&lt;zeilen_a /*zeilen_vektor*/ ;i++)
{
	cout &lt;&lt; &quot;x&quot; &lt;&lt; i+1 &lt;&lt; &quot; = ?&quot; &lt;&lt; endl;

}

// Vektor b belegen  (Ergebnisvektor)
//cout &lt;&lt; &quot;\n\nWieviele Zeilen hat der Vektor ?&quot; &lt;&lt; endl;
//cout &lt;&lt; &quot;Zeilen: &quot;;
//cin &gt;&gt; zeilen_vektor;
cout &lt;&lt; &quot;\n\nVektor b (&quot; &lt;&lt; zeilen_a &lt;&lt; &quot; Zeilen):&quot;&lt;&lt;endl;
for(i=0; i&lt;zeilen_a /*zeilen_vektor*/; i++)
{
	cout &lt;&lt; &quot;Zeile &quot; &lt;&lt; i+1 &lt;&lt; &quot; = &quot;;
	cin &gt;&gt; vektorN[i];

}

// Vektor b zur Kontrolle ausgeben
cout &lt;&lt; &quot;\n\tVektor b:&quot;;
for(i=0;i&lt;zeilen_a /*zeilen_vektor*/ ;i++)
{
	cout &lt;&lt; &quot;&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;\t&quot; &lt;&lt;vektorN[i];

}

	//In Dreiecksform bringen:
	cout &lt;&lt; &quot;\n\nBerechnung&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;**********&quot; &lt;&lt; endl;

	for (k = 0; k &lt; zeilen_a; ++k)
	for (l = k+1; l &lt; zeilen_a; ++l) 
	{
		f = matrixAg[l][k]/matrixAg[k][k];

		for (m = k; m&lt;zeilen_a; ++m)
			matrixAg[l][m] = matrixAg[l][m] - f*matrixAg[k][m];

		vektorN[l] = vektorN[l] - f*vektorN[k];
	}
//Rückrechnung (x-Werte berechnen):
for (k = zeilen_a-1; k&gt;=0; --k) 
{
	float z = vektorN[k];

	for (l=k+1; l&lt;zeilen_a; ++l)
	z = z - vektorX[l]*matrixAg[k][l];
	vektorX[k] = z/matrixAg[k][k];
}
// Ausgabe von vektorX ...

cout &lt;&lt; endl;	
for (l=0;l&lt;zeilen_a;l++)	
cout &lt;&lt; &quot;\t&quot; &lt;&lt; &quot;x&quot; &lt;&lt; l+1 &lt;&lt; &quot; = &quot; &lt;&lt; vektorX[k] &lt;&lt; endl;

//}

/*****************************************************/

// Weiter?
	  cout &lt;&lt; &quot;\nWeiter (j/n): &quot;;
	  cin &gt;&gt; ende;
	  cout &lt;&lt; &quot;\n&quot; &lt;&lt; endl;
	  }while(ende != 'n');

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1299509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299509</guid><dc:creator><![CDATA[Nolbelt]]></dc:creator><pubDate>Tue, 05 Jun 2007 18:36:48 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei einigen berechnungen on Tue, 05 Jun 2007 18:26:23 GMT]]></title><description><![CDATA[<p>erste Hilfe:</p>
<p>Beschreib den Fehler (Was macht das Programm was es deiner Meinung nach nicht machen soll). &quot;geht nich&quot; ist keine Fehlerbeschreibung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299519</guid><dc:creator><![CDATA[bored]]></dc:creator><pubDate>Tue, 05 Jun 2007 18:26:23 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei einigen berechnungen on Tue, 05 Jun 2007 18:33:09 GMT]]></title><description><![CDATA[<p>jo, stimmt.<br />
also bei der gaussberechnung sollen eigentlich unbekannte nullstellen berechnet werden. er berechnet auch irgendwas, aber dann doch das falsche. es kommen z.b. bei einer 4x4 matrix mit zugehörigen vektor 4 mal die selben (falschen) werte raus. ansonsten läuft das programm <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>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299523</guid><dc:creator><![CDATA[Nolbelt]]></dc:creator><pubDate>Tue, 05 Jun 2007 18:33:09 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei einigen berechnungen on Tue, 05 Jun 2007 19:39:36 GMT]]></title><description><![CDATA[<p>Hi,<br />
erstmal meckern:</p>
<p>Warum ballerst du denn den ganzen Quellcode der Matrixmultiplikation vorweg, wenn der Fehler beim Gaussverfahren ist ?<br />
Unnötig viel Quellcode erschwert die Fehlersuche, erst recht für einen, der das alles nicht selbst programmiert hat, logisch ne?<br />
Quellcode lesen ist nicht gerade wie Bildzeitung lesen, wenn du verstehst was ich meine.</p>
<ul>
<li></li>
</ul>
<p>Ansonsten scheint die Bildung der Dreiecksmatrix und die Rückrechnung ok zu sein, du brauchst eigentlich nur in der Zeile 301<br />
vektorX[k] durch vektorX[l] zu ersetzen, dann klappt das mit dem Gaußschen Algorithmus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Tipp: Debugger benutzen oder Inhalt der Variablen zwischendurch am besten in einer extra Funktion anzeigen lassen.</p>
<p>Gruuuuuuhuuuß,<br />
p.</p>
<p>Gruß, p.<br />
<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>
]]></description><link>https://www.c-plusplus.net/forum/post/1299565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299565</guid><dc:creator><![CDATA[proggingmania]]></dc:creator><pubDate>Tue, 05 Jun 2007 19:39:36 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei einigen berechnungen on Wed, 06 Jun 2007 00:34:46 GMT]]></title><description><![CDATA[<p>hi Nolbelt,</p>
<pre><code>Das ist falsch: for (m = k; m&lt;zeilen_a; ++m)

Das ist richtig: for (m = zeilen_a-1; m &gt;= k; m--)
</code></pre>
<p>vg tesu</p>
<p>Hier noch ein Beispiel für einen Gaussalgo mit Pivotsuche und Zeilentausch. Die Dreieckszerlegung und Aufrechnung der Unbekannten xi wirds du im Code leicht finden. Pivot und Zeilentausch kannst du ja überspringen. Anstelle a(j,i) denkst du dir a[j][i]. (Es ist halt eine Methode aus einem Klassentemplate, das ich vor kurzem geschrieben habe. Es funktioniert fehlerfrei, ist allerdings noch nicht so optimal programmiert.)</p>
<pre><code class="language-cpp">// Gauss with pivoting to solve Ax=r
template &lt;class T&gt; bool matrix&lt;T&gt;::gsolver (matrix&lt;T&gt;&amp; a, matrix&lt;T&gt;&amp; r, matrix&lt;T&gt;&amp; x)
/*
 Solution of A*x=r by original Gauss algorithm with pivoting
 a - coefficient matrix, will be overwritten
 r - right side vector, will be overwritten
 x - resulting vector

 return
 true  - success
 false - singular matrix

 Further reading: Carl Friedrich Gauss: Disquisitiones arithmeticae. Hannover(1801).
*/

{ int i, j, k, p, n=a.ncols; T h, e = matrix&lt;T&gt;::getSingularLimit();
  for (i = 0; i&lt;n; i++)
  {
     p = i;
     for (j = i+1; j&lt;n;j++)                                      /* get pivot */
       if (fabs ( a ( p, i ) ) &lt; fabs ( a ( j , i ) )) p = j;
     if (p != i)
     {                                                       /* exchange rows */
      for (k = i; k&lt;n; k++)
      {
        h= a ( i, k ); a ( i, k )= a ( p, k ); a ( p, k )= h;
      }
      h = r ( i ); r ( i ) = r ( p ); r ( p ) = h;
     }
     for (j = i + 1; j&lt;n;j++)
       if (e * fabs ( a ( j, i ) ) &lt; fabs(a ( i, i )))
       { h = a ( j, i ) / a ( i, i ); r ( j ) = r ( j ) - h * r ( i );
         for (k = n-1; k &gt;= i; k--) a ( j, k ) = a ( j, k ) - h * a ( i, k );
       }
        else {a.rank(i+1); return false;}                  /* singular matrix */
  }
  for (j = n-1; j&gt;=0;j--)
   { h = T(0);
     for (i = j + 1; i &lt; n; i++) h = h + a ( j, i ) * x(i);
     h = r ( j ) - h;
     if (e * fabs ( h ) &lt; fabs( a ( j, j ) )) x(j) = h  / a ( j, j );
       else {a.rank(i+1); return false;}                   /* singular matrix */
   }
  a.rank(n); return true;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1299683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299683</guid><dc:creator><![CDATA[tesuji]]></dc:creator><pubDate>Wed, 06 Jun 2007 00:34:46 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei einigen berechnungen on Wed, 06 Jun 2007 15:40:29 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15036">@proggingmania</a><br />
stimmt schon. ich werds mir fürs nächste mal merken <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
der vergleich mit der bildzeitung ist gut <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15591">@tesuji</a><br />
danke für den code. ich werde ihn auch mal ausprobieren <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>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300168</guid><dc:creator><![CDATA[Nolbelt]]></dc:creator><pubDate>Wed, 06 Jun 2007 15:40:29 GMT</pubDate></item></channel></rss>