<?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 mit Arraybefüllung]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich arbeite mit dynamischen Arrays und mir passiert es leider immer noch viel zu oft, dass ich entweder in ein nicht vorhandenes Element oder in zu wenige Elemente schreibe. Genau so geht es mir auch jetzt:</p>
<pre><code class="language-cpp">double size = Graph1-&gt;xMax * 50;   //xMax == 15 --&gt; size == 750
 double* x = new double[size],
       * y = new double[size];
 int i = 0;
 double rn = Graph1-&gt;xMin,          //xMin == -15
        end   =  Graph1-&gt;xMax,
        stp   = (ABS(rn) + end + 1) / size; //ABS --&gt; Betrag

 end  -= stp;
 //Diese Berechnungen sind für die Schrittweite zuständig, damit jedes Elemet des Arrays korrekt beschrieben wird

 while(rn &lt; end+1)
 {
  x[i] = rn;
  y[i] = sin(rn);
  i++;
  rn+=stp;
 //Das letzte Element (x[749], y[749]) ist stets mit 0 gefüllt. Ich finde den Fehler nicht
 }
 Graph1-&gt;DrawGraph(x,y,size);
 delete[] x, y;
}
</code></pre>
<p>Ich finde den Fehler in meinen Berechnungen nicht. Wenn xMax == 10 und xMin == -10 ist, dann funktioniert komischerweise alles.</p>
<p>Könnt ihr mir da helfen?</p>
<p>Vielen Dank<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/259397/problem-mit-arraybefüllung</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 21:18:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/259397.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 22 Jan 2010 11:52:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Arraybefüllung on Fri, 22 Jan 2010 12:17:27 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich arbeite mit dynamischen Arrays und mir passiert es leider immer noch viel zu oft, dass ich entweder in ein nicht vorhandenes Element oder in zu wenige Elemente schreibe. Genau so geht es mir auch jetzt:</p>
<pre><code class="language-cpp">double size = Graph1-&gt;xMax * 50;   //xMax == 15 --&gt; size == 750
 double* x = new double[size],
       * y = new double[size];
 int i = 0;
 double rn = Graph1-&gt;xMin,          //xMin == -15
        end   =  Graph1-&gt;xMax,
        stp   = (ABS(rn) + end + 1) / size; //ABS --&gt; Betrag

 end  -= stp;
 //Diese Berechnungen sind für die Schrittweite zuständig, damit jedes Elemet des Arrays korrekt beschrieben wird

 while(rn &lt; end+1)
 {
  x[i] = rn;
  y[i] = sin(rn);
  i++;
  rn+=stp;
 //Das letzte Element (x[749], y[749]) ist stets mit 0 gefüllt. Ich finde den Fehler nicht
 }
 Graph1-&gt;DrawGraph(x,y,size);
 delete[] x, y;
}
</code></pre>
<p>Ich finde den Fehler in meinen Berechnungen nicht. Wenn xMax == 10 und xMin == -10 ist, dann funktioniert komischerweise alles.</p>
<p>Könnt ihr mir da helfen?</p>
<p>Vielen Dank<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843202</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Fri, 22 Jan 2010 12:17:27 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Arraybefüllung on Fri, 22 Jan 2010 12:17:49 GMT]]></title><description><![CDATA[<p>...gelöscht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843204</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Fri, 22 Jan 2010 12:17:49 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Arraybefüllung on Fri, 22 Jan 2010 12:35:53 GMT]]></title><description><![CDATA[<p>doubles sind keine genauen Datentypen, und 31/750 lässt sich binär halt nicht genau abspeichern.</p>
<p>Wahrscheinlich ginge es mit etwas wie</p>
<pre><code class="language-cpp">while(rn - end - 1 &lt; epsilon)
</code></pre>
<p>mit epsilon beispielsweise 1e-6, aber es erscheint mir sinnvoller, i von 0 bis 749 laufen zu lassen und rn im Schleifenkörper aus Graph1-&gt;xMin + stp * i zusammenzusetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843235</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Fri, 22 Jan 2010 12:35:53 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Arraybefüllung on Fri, 22 Jan 2010 13:03:59 GMT]]></title><description><![CDATA[<p>Ich will ja nicht penetrant wirken, aber irgendwie habe ich den Eindruck, dass kein C++ Lehrbuch die vernünftige Umgehensweise mit der STL anspricht. Mit der STL und TR1/boost kommt man fast immer ohne new/delete aus, wenn du deine beiden dynamischen Arrays durch eine Kombination aus Point Struktur und std::vector ersetzt kann man Folgendes machen:</p>
<pre><code class="language-cpp">#include &lt;cmath&gt;
#include &lt;vector&gt;
#include &lt;iostream&gt;
#include &lt;iomanip&gt;
#include &lt;iterator&gt;
#include &lt;algorithm&gt;

struct Point
{
	double	x_;
	double	y_;

	Point() : x_( 0.0 ), y_( 0.0 )
	{
	}

	Point( double x, double y ) : x_( x ), y_( y )
	{
	}
};

std::ostream&amp; operator&lt;&lt;( std::ostream&amp; os, const Point&amp; point )
{
	os &lt;&lt; &quot;(&quot; &lt;&lt; std::fixed &lt;&lt; std::setprecision( 3 ) &lt;&lt; point.x_ &lt;&lt; &quot; , &quot;
				 &lt;&lt; std::fixed &lt;&lt; std::setprecision( 3 ) &lt;&lt; point.y_ &lt;&lt; &quot;)&quot;;
	return os;
}

struct SineGenerator
{
	double			Value_;     	// Aktueller Wert
	double			Increment_;		// Inkrement nach jeder Iteration

	SineGenerator( double Start, double Increment ) :
		Value_( Start ),
		Increment_( Increment )
	{
	}

	Point operator()()
	{
		Point point( Value_, std::sin( Value_ ) );
		Value_ += Increment_;
		return point;
	}
};

int main()
{
	std::vector&lt;Point&gt; v( 20 );
	std::generate( v.begin(), v.end(), SineGenerator( 15.0, 0.02 ) );

	std::copy( v.begin(), v.end(), std::ostream_iterator&lt;Point&gt;( std::cout, &quot;\n&quot; ) );
}
</code></pre>
<p>Ist doch wirklich schöner zu lesen und intuitiv zu begreifen, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843248</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Fri, 22 Jan 2010 13:03:59 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Arraybefüllung on Fri, 22 Jan 2010 13:33:34 GMT]]></title><description><![CDATA[<p>Hallo ihr beiden,<br />
vielen Dank für eure Hilfe. Mit dem folgenden Schleifenkopf funktioniert es:</p>
<pre><code class="language-cpp">while (i &lt; size) {...}
</code></pre>
<p>Ich gebe DocShoe recht, doch da ich noch nicht mit der STL gearbeitet habe, möchte ich das jetzt nicht machen. Ich setze mich irgendwann dafür eigens hin und bringe mir das bei.</p>
<p>Vielen Dank<br />
lg, freakC++</p>
<p>edit: Außerdem müssste ich die Methode &quot;DrawGraph&quot; wieder komplett umschreiben, da diese nur Arrays nimmt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843275</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Fri, 22 Jan 2010 13:33:34 GMT</pubDate></item></channel></rss>