<?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[Definition während Laufzeit?]]></title><description><![CDATA[<p>Hallo, ich habe ein Problem mit der grundsätzlichen Rangehenweise an eine Sache. Und zwar möchte ich, einfach gesagt eine Art Taschenrechner programmieren der auch mit mathematischen Funktionen umgehen können soll, wie z.B. dem Integrieren einer Funktion. Eine Methode zu schreiben die mir eine Funktion integriert ist kein Problem, ich mache das ungefähr nach dem Prinzip:</p>
<pre><code class="language-cpp">double integrate(double x0,double a, double b)
{
   ... 
   y=x0+2
   h=(b-a)/N

   for(int i=1;i&lt;N;i++)
   {  
      y+=(x0+i*h)+2    //Hier heißt integrierende Funktion dann eben y(x)=x+2
   }
}
</code></pre>
<p>Irgenwie so! Mein Problem ist nun, dass ich gerne das Programm so gestalten möchte, dass wärend der Laufzeit die zu integrierende Funktion definiert werden kann, also obige Methode eine Konsoleneingabe z.B. der Form 4*x*x+x-3 integrieren kann. Dazu muss ich ja aber irgendwie den Eingegebenen String der ja aber Konstanten, Variablen und mathematischen Operatoren darstellen soll in die Methode reinkriegen, so dass die dieses eingegebene y(x) integrieren kann. Für Hilfe zur Rangehensweise an dieses Problem wäre ausgiebige Dankbarkeit garantiert! <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/212956/definition-während-laufzeit</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 14:15:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/212956.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 May 2008 16:53:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Definition während Laufzeit? on Mon, 12 May 2008 16:53:31 GMT]]></title><description><![CDATA[<p>Hallo, ich habe ein Problem mit der grundsätzlichen Rangehenweise an eine Sache. Und zwar möchte ich, einfach gesagt eine Art Taschenrechner programmieren der auch mit mathematischen Funktionen umgehen können soll, wie z.B. dem Integrieren einer Funktion. Eine Methode zu schreiben die mir eine Funktion integriert ist kein Problem, ich mache das ungefähr nach dem Prinzip:</p>
<pre><code class="language-cpp">double integrate(double x0,double a, double b)
{
   ... 
   y=x0+2
   h=(b-a)/N

   for(int i=1;i&lt;N;i++)
   {  
      y+=(x0+i*h)+2    //Hier heißt integrierende Funktion dann eben y(x)=x+2
   }
}
</code></pre>
<p>Irgenwie so! Mein Problem ist nun, dass ich gerne das Programm so gestalten möchte, dass wärend der Laufzeit die zu integrierende Funktion definiert werden kann, also obige Methode eine Konsoleneingabe z.B. der Form 4*x*x+x-3 integrieren kann. Dazu muss ich ja aber irgendwie den Eingegebenen String der ja aber Konstanten, Variablen und mathematischen Operatoren darstellen soll in die Methode reinkriegen, so dass die dieses eingegebene y(x) integrieren kann. Für Hilfe zur Rangehensweise an dieses Problem wäre ausgiebige Dankbarkeit garantiert! <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1507593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507593</guid><dc:creator><![CDATA[Patrice079]]></dc:creator><pubDate>Mon, 12 May 2008 16:53:31 GMT</pubDate></item><item><title><![CDATA[Reply to Definition während Laufzeit? on Mon, 12 May 2008 17:21:13 GMT]]></title><description><![CDATA[<p>Keine Ahnung, obs was einfacheres gibt, beim Compilerbau macht man es mit<br />
<a href="http://de.wikipedia.org/wiki/Lexikalischer_Scanner" rel="nofollow">http://de.wikipedia.org/wiki/Lexikalischer_Scanner</a><br />
<a href="http://de.wikipedia.org/wiki/Parser" rel="nofollow">http://de.wikipedia.org/wiki/Parser</a><br />
usw...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507615</guid><dc:creator><![CDATA[naja]]></dc:creator><pubDate>Mon, 12 May 2008 17:21:13 GMT</pubDate></item><item><title><![CDATA[Reply to Definition während Laufzeit? on Mon, 12 May 2008 17:23:16 GMT]]></title><description><![CDATA[<p><a href="http://www.codeproject.com/KB/string/SParser.aspx" rel="nofollow">http://www.codeproject.com/KB/string/SParser.aspx</a></p>
<p>Schau dir beispielsweise mal diesen Code an. Hilft dir sicherlich weiter. = )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507618</guid><dc:creator><![CDATA[adsf09]]></dc:creator><pubDate>Mon, 12 May 2008 17:23:16 GMT</pubDate></item><item><title><![CDATA[Reply to Definition während Laufzeit? on Mon, 12 May 2008 17:39:36 GMT]]></title><description><![CDATA[<p>vielleicht für dieses Problem ein wenig zu aufgeblasen aber im allgemeinen<br />
bietet sich boost-spirit an!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507628</guid><dc:creator><![CDATA[Basingstoke]]></dc:creator><pubDate>Mon, 12 May 2008 17:39:36 GMT</pubDate></item><item><title><![CDATA[Reply to Definition während Laufzeit? on Mon, 12 May 2008 19:02:10 GMT]]></title><description><![CDATA[<p>Ok, scheint doch keine ganz triviale Geschichte zu sein! Danke Euch allen schonmal, für die Antworten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507689</guid><dc:creator><![CDATA[Patrice079]]></dc:creator><pubDate>Mon, 12 May 2008 19:02:10 GMT</pubDate></item><item><title><![CDATA[Reply to Definition während Laufzeit? on Mon, 12 May 2008 20:54:44 GMT]]></title><description><![CDATA[<p>Nein, ist es wirklich nicht. C++ ist keine Scriptsprache, wo ein beliebiger String einfach in einen ausführbaren Ausdruck umgewandelt werden kann. C++ ist eine Compilersprache, das bedeuted dass jeder ausdruck in dem Moment wo du deine exe ausführst bereits ausgewertet ist. Du kannst also deinen Code nichtmehr nachträglich verändern.</p>
<p>Du musst also nun Code schreiben, der die Aufgabe hat den eingelesenen String zu parsen und ihn in ein Format zu bringen das du dann verarbeiten kannst.</p>
<p>Wie das Format aussieht? nun, das ist deine Sache. Für einfache Polynome würde sich aber ein einfaches array anbieten in dem du die koeffizienten speicherst.</p>
<p>Die verarbeitende Funktion um einen Funktionswert auszurechnen wäre dann in etwa so:</p>
<pre><code class="language-cpp">//koeffizienten des polynoms. position gibt grad an, also ist koeffizienten[0]
//der koeffizient des konstanten teil des polynoms
//x^2+2x+3 wäre also das array {3,2,1}
std::vector&lt;double&gt; koeffizienten;

double calc(int x)//funktionswert an stelle x
{
    double xpow=1;
    double result=0;
    for(int i=0;i&lt;koeffizienten.size();++i)
    {
        result+=koeffizienten[i]*xpow;
        xpow*=x;
    }
    return result;
}
</code></pre>
<p>wie du den String nun in den vector kriegst ist deine Sache, allerdings ist boost::spirit eigentlich eine gute wahl, weil es in diesem Fall recht schnell gemacht sein sollte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507755</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Mon, 12 May 2008 20:54:44 GMT</pubDate></item></channel></rss>