<?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[vektoren und void funktion]]></title><description><![CDATA[<p>Hallo, ich soll einen vektor normalisieren und das als eine void funktion darstellen, die einzelnen unterprogramme funktionieren, aber mir fehlt noch das verständnis, wie ich das alles an eine void funktion übergeben soll. Mein versuch war folgender</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;math.h&gt;

using namespace std;

double Norm(const vector&lt;double&gt; &amp;v){

double c = 0;
for (int k=0; k&lt;v.size(); ++k)
    c=c + v[k]*v[k];

return sqrt(c);
}

vector&lt;double&gt;Divis(const vector&lt;double&gt; &amp;v,double f){

vector &lt;double&gt; v2(v.size());
 for (int k=0; k&lt;v.size(); ++k)
	v2[k]=v[k]/f;

return v2;

}

void Normalize(vector&lt;double&gt; &amp;v){
double d = Norm(v);
v = Divis(v,d);

}

int main (){

cout&lt;&lt;&quot;Wie lang soll der Vektor sein?&quot;&lt;&lt;'\n';
int i; 
cin&gt;&gt;i;
cout&lt;&lt;&quot;Geben Sie einzelnen Komponenten nacheinander ein!&quot;&lt;&lt;'\n';
vector &lt;double&gt; v(i);
 for (int k=0; k&lt;v.size(); ++k)
	cin&gt;&gt;v[k];

vector &lt;double&gt; v1 = Normalize(v);
cout&lt;&lt;'\n';
for (int k=0; k&lt;v1.size(); ++k)
  cout&lt;&lt;v1[k]&lt;&lt;'\n';

}
</code></pre>
<p>Da bekomm ich aber diesen fehler</p>
<pre><code>50:33: error: conversion from ‘double’ to non-scalar type ‘std::vector&lt;double&gt;’ requested
</code></pre>
<p>Kann mir bitte jemand erklären was ich falsch mache.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/304723/vektoren-und-void-funktion</link><generator>RSS for Node</generator><lastBuildDate>Sun, 09 Aug 2026 09:53:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304723.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 13 Jun 2012 08:48:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to vektoren und void funktion on Wed, 13 Jun 2012 08:48:43 GMT]]></title><description><![CDATA[<p>Hallo, ich soll einen vektor normalisieren und das als eine void funktion darstellen, die einzelnen unterprogramme funktionieren, aber mir fehlt noch das verständnis, wie ich das alles an eine void funktion übergeben soll. Mein versuch war folgender</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;math.h&gt;

using namespace std;

double Norm(const vector&lt;double&gt; &amp;v){

double c = 0;
for (int k=0; k&lt;v.size(); ++k)
    c=c + v[k]*v[k];

return sqrt(c);
}

vector&lt;double&gt;Divis(const vector&lt;double&gt; &amp;v,double f){

vector &lt;double&gt; v2(v.size());
 for (int k=0; k&lt;v.size(); ++k)
	v2[k]=v[k]/f;

return v2;

}

void Normalize(vector&lt;double&gt; &amp;v){
double d = Norm(v);
v = Divis(v,d);

}

int main (){

cout&lt;&lt;&quot;Wie lang soll der Vektor sein?&quot;&lt;&lt;'\n';
int i; 
cin&gt;&gt;i;
cout&lt;&lt;&quot;Geben Sie einzelnen Komponenten nacheinander ein!&quot;&lt;&lt;'\n';
vector &lt;double&gt; v(i);
 for (int k=0; k&lt;v.size(); ++k)
	cin&gt;&gt;v[k];

vector &lt;double&gt; v1 = Normalize(v);
cout&lt;&lt;'\n';
for (int k=0; k&lt;v1.size(); ++k)
  cout&lt;&lt;v1[k]&lt;&lt;'\n';

}
</code></pre>
<p>Da bekomm ich aber diesen fehler</p>
<pre><code>50:33: error: conversion from ‘double’ to non-scalar type ‘std::vector&lt;double&gt;’ requested
</code></pre>
<p>Kann mir bitte jemand erklären was ich falsch mache.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222637</guid><dc:creator><![CDATA[Namal]]></dc:creator><pubDate>Wed, 13 Jun 2012 08:48:43 GMT</pubDate></item><item><title><![CDATA[Reply to vektoren und void funktion on Wed, 13 Jun 2012 08:55:27 GMT]]></title><description><![CDATA[<p>In Zeile 50 gibt's keine doubles.</p>
<p>Noch'ne Bemerkung am Rande: Find's irgendwie blöd, dass Normalize nicht direkt auf dem Eingabevektor arbeitet und stattdessen über Divis ein komplett neuer Vektor erzeugt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222641</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 13 Jun 2012 08:55:27 GMT</pubDate></item><item><title><![CDATA[Reply to vektoren und void funktion on Wed, 13 Jun 2012 08:55:09 GMT]]></title><description><![CDATA[<p>Die nummerierung ist hier um eine zeile verrutscht. Es ist die zeile 49 gemeint.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222644</guid><dc:creator><![CDATA[Namal]]></dc:creator><pubDate>Wed, 13 Jun 2012 08:55:09 GMT</pubDate></item><item><title><![CDATA[Reply to vektoren und void funktion on Wed, 13 Jun 2012 08:59:37 GMT]]></title><description><![CDATA[<p>Normalize gibt doch gar nichts zurück, also kannst du den Aufruf auch nicht als Initialisierer für v1 verwenden.</p>
<p>Aber ich rate mal, dass das, was du hier zeigst, nicht dein wahres Programm ist. Das &quot;double&quot; da klingt eher so, als wenn du Norm mit Normalize verwechselt hättest -- also zusätzlich zum eigentlichen Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222645</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 13 Jun 2012 08:59:37 GMT</pubDate></item><item><title><![CDATA[Reply to vektoren und void funktion on Wed, 13 Jun 2012 08:58:01 GMT]]></title><description><![CDATA[<p>Namal schrieb:</p>
<blockquote>
<p>Die nummerierung ist hier um eine zeile verrutscht. Es ist die zeile 49 gemeint.</p>
</blockquote>
<p>Trotzdem ist das nicht die Fehlermeldung zum Code. In Zeile 49 gibt es auch keine doubles. Es gibt aber eine Funktion ohne Rückgabewert, deren Rückgabewert du einem vector&lt;double&gt; zuweisen möchtest. Finde den Widerspruch im letzten Satz und du hast dein Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222647</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 13 Jun 2012 08:58:01 GMT</pubDate></item><item><title><![CDATA[Reply to vektoren und void funktion on Wed, 13 Jun 2012 09:10:29 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Namal schrieb:</p>
<blockquote>
<p>Die nummerierung ist hier um eine zeile verrutscht. Es ist die zeile 49 gemeint.</p>
</blockquote>
<p>Trotzdem ist das nicht die Fehlermeldung zum Code. In Zeile 49 gibt es auch keine doubles. Es gibt aber eine Funktion ohne Rückgabewert, deren Rückgabewert du einem vector&lt;double&gt; zuweisen möchtest. Finde den Widerspruch im letzten Satz und du hast dein Problem.</p>
</blockquote>
<p>Ja vielen dank! ich habe jetzt die zeile 49 einfach zu</p>
<pre><code class="language-cpp">Normalize(v);
</code></pre>
<p>geändert, jetzt gehts.Das war mein denkfehler, ich wusste nicht dass man es so machen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222652</guid><dc:creator><![CDATA[Namal]]></dc:creator><pubDate>Wed, 13 Jun 2012 09:10:29 GMT</pubDate></item><item><title><![CDATA[Reply to vektoren und void funktion on Wed, 13 Jun 2012 09:14:53 GMT]]></title><description><![CDATA[<p>Namal schrieb:</p>
<blockquote>
<p>geändert, jetzt gehts.Das war mein denkfehler, ich wusste nicht dass man es so machen kann.</p>
</blockquote>
<p>Dann stellt sich die Gegenfrage, wieso du die Funktion bewusst so geschrieben hast, obwohl du deine anderen Funktionen genau andersrum gemacht hast. Du wirst doch wohl nicht abgeschrieben haben, oder <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2222655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222655</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 13 Jun 2012 09:14:53 GMT</pubDate></item><item><title><![CDATA[Reply to vektoren und void funktion on Wed, 13 Jun 2012 09:22:12 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Namal schrieb:</p>
<blockquote>
<p>geändert, jetzt gehts.Das war mein denkfehler, ich wusste nicht dass man es so machen kann.</p>
</blockquote>
<p>Dann stellt sich die Gegenfrage, wieso du die Funktion bewusst so geschrieben hast, obwohl du deine anderen Funktionen genau andersrum gemacht hast. Du wirst doch wohl nicht abgeschrieben haben, oder <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>
</blockquote>
<p>Na die aufgabe war vorher eine funktion für die norm und eine funktion für multiplikation eines vektors zu schreiben. Und dann kamm das als nächste aufgabe, mir ist bewusst, dass man das genauso mit const &lt;vector&gt; schreiben kann. Aber die aufgabe ist speziell so gestellt denk ich, sonst macht void keinen sinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222658</guid><dc:creator><![CDATA[Namal]]></dc:creator><pubDate>Wed, 13 Jun 2012 09:22:12 GMT</pubDate></item></channel></rss>