<?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[Kleines Programm für mathematische Aufgaben schreiben]]></title><description><![CDATA[<p>Hallo.</p>
<p>Ich muss ein kleines Programm für die Shell/Terminal schreiben, welches mir einfach erlaubt eine Zahl einzugeben und danach eine Rechenoperation (+, -, *, /, <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f635.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--dizzy_face"
      title="%)"
      alt="😵"
    /> auszuführen.</p>
<p>Beispiel der auszuführenden Programmdatei (fettgedruckt = User-Eingabe):</p>
<p>Anfangszahl eingeben: <strong>3</strong><br />
= 3.000000**+4**<br />
= 7.000000**-15**<br />
= -8.000000**/1.3**<br />
= -6.153846**%4**<br />
= -2.000000***-5**<br />
= 10.000000**=**<br />
= 10.000000</p>
<p>Wie ihr seht, kann man direkt nach dem Ergebnis die nächste Operation eingeben, auf <strong>=</strong> soll das Programm mit dem Endergebnis beendet werden.<br />
Die ausführbare Programmdatei habe ich, muss eben ein gleiches Programm schreiben.<br />
Mein Problem ist jetzt dabei wie ich es hinbekomme, dass die Eingabe der Rechenoperation sich eben auf die vorhergehende Zahl bezieht. Eingaben soll ich nur über die Funktion <em>gets()</em> vornehmen.<br />
Kann mir jemand dabei helfen?</p>
<p>Gruß,<br />
Patrick <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/293728/kleines-programm-für-mathematische-aufgaben-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 04:52:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/293728.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 09 Oct 2011 14:16:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kleines Programm für mathematische Aufgaben schreiben on Sun, 09 Oct 2011 14:16:14 GMT]]></title><description><![CDATA[<p>Hallo.</p>
<p>Ich muss ein kleines Programm für die Shell/Terminal schreiben, welches mir einfach erlaubt eine Zahl einzugeben und danach eine Rechenoperation (+, -, *, /, <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f635.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--dizzy_face"
      title="%)"
      alt="😵"
    /> auszuführen.</p>
<p>Beispiel der auszuführenden Programmdatei (fettgedruckt = User-Eingabe):</p>
<p>Anfangszahl eingeben: <strong>3</strong><br />
= 3.000000**+4**<br />
= 7.000000**-15**<br />
= -8.000000**/1.3**<br />
= -6.153846**%4**<br />
= -2.000000***-5**<br />
= 10.000000**=**<br />
= 10.000000</p>
<p>Wie ihr seht, kann man direkt nach dem Ergebnis die nächste Operation eingeben, auf <strong>=</strong> soll das Programm mit dem Endergebnis beendet werden.<br />
Die ausführbare Programmdatei habe ich, muss eben ein gleiches Programm schreiben.<br />
Mein Problem ist jetzt dabei wie ich es hinbekomme, dass die Eingabe der Rechenoperation sich eben auf die vorhergehende Zahl bezieht. Eingaben soll ich nur über die Funktion <em>gets()</em> vornehmen.<br />
Kann mir jemand dabei helfen?</p>
<p>Gruß,<br />
Patrick <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2129247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2129247</guid><dc:creator><![CDATA[PatrickHH]]></dc:creator><pubDate>Sun, 09 Oct 2011 14:16:14 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Programm für mathematische Aufgaben schreiben on Sun, 09 Oct 2011 14:28:45 GMT]]></title><description><![CDATA[<p>PatrickHH schrieb:</p>
<blockquote>
<p><em>gets()</em></p>
</blockquote>
<p>Ist schon mal C, kein C++. Du schreibst dir 5 Funktionen add(), sub(), mul(), div() und mod(). Die Funktionen bekommen alle zwei Parameter und geben das Ergebnis der Operation zurück. Dann musst du nur noch die Befehle einlesen und entscheiden welche Funktion du aufrufen musst. Unter C würde sich eigentlich eher scanf() zum Einlesen anbieten..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2129249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2129249</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 09 Oct 2011 14:28:45 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Programm für mathematische Aufgaben schreiben on Sun, 09 Oct 2011 14:49:43 GMT]]></title><description><![CDATA[<p>Ich werde durch meine Fortbildung &quot;Programmieren in C++&quot; über C an C++ herangeführt, kann aber als Anfänger nicht wirklich beurteilen, wo der Übergang zwischen beiden ist.<br />
Die Funktion gets() ist Teil der Übung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2129257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2129257</guid><dc:creator><![CDATA[PatrickHH]]></dc:creator><pubDate>Sun, 09 Oct 2011 14:49:43 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Programm für mathematische Aufgaben schreiben on Sun, 09 Oct 2011 14:56:03 GMT]]></title><description><![CDATA[<p>PatrickHH schrieb:</p>
<blockquote>
<p>Ich werde durch meine Fortbildung &quot;Programmieren in C++&quot; über C an C++ herangeführt, kann aber als Anfänger nicht wirklich beurteilen, wo der Übergang zwischen beiden ist.</p>
</blockquote>
<p>Das geht ganz einfach. Alles, was total kryptisch aussieht, ist C++. Oder du guckst einfach <a href="http://www.cplusplus.com/reference/" rel="nofollow">hier</a> nach, wo die Funktion gelistet wird.</p>
<p>gets() sollte eigentlich nicht verwendet werden, da es keine Bereichsprüfung besitzt. Das Äquivalent wäre dann fgets(). (Einfach in der oben genannten Referenz nachgucken, dort stehen zu vielen Funktionen auch gleich einfach Anwendungsbeispiele.)</p>
<p>Die Funktionen oben lesen nur Text ein. Mit Text kannst du aber nicht rechnen, das heißt du musst diesen erst noch in Zahlen umwandeln. Auch hier bietet die C Standardbibliothek etwas: <a href="http://www.cplusplus.com/reference/clibrary/cstdlib/atof/" rel="nofollow">http://www.cplusplus.com/reference/clibrary/cstdlib/atof/</a></p>
<p>Damit kannst du dann rechnen. Wie man Funktionen erstellt, Variablen erstellt und Schleifen benutzt weißt du aber schon?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2129259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2129259</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 09 Oct 2011 14:56:03 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Programm für mathematische Aufgaben schreiben on Sun, 09 Oct 2011 15:58:52 GMT]]></title><description><![CDATA[<p>Eigentlich schon. Habe die 5 Funktionen als <em>float</em> deklariert, aber der Compiler meldet mir zurück, dass das keine Funktionen sind. Habe in letzter Zeit so viel neues gelesen, dass ich wegen der Informationsmenge jetzt die ersten Sachen wieder aufarbeiten muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2129277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2129277</guid><dc:creator><![CDATA[PatrickHH]]></dc:creator><pubDate>Sun, 09 Oct 2011 15:58:52 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Programm für mathematische Aufgaben schreiben on Sun, 09 Oct 2011 16:03:36 GMT]]></title><description><![CDATA[<p>Poste am besten mal deinen Code-Ansatz und die genaue Meldung deines Compilers. Dann müssen wir nicht die Kristallkugel des Forums bemühen, die hat schon genug zu tun. <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/2129278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2129278</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 09 Oct 2011 16:03:36 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Programm für mathematische Aufgaben schreiben on Sun, 09 Oct 2011 16:11:44 GMT]]></title><description><![CDATA[<p>Habe eben nochmal neu angefangen, blicke heute wohl nicht mehr durch ...</p>
<pre><code>#include &lt;stdio.h&gt;

void main(void)
{
  float zahl;
  int i;
  float add, sub, mul, div, mod;

  add (zahl+i);
  sub (zahl-i);
  mul (zahl*i);
  div (zahl/i);
  mod (zahl%i); 

 printf(&quot;\n\t Anfangszahl eingeben:     &quot;);
 gets(zahl);
 printf(&quot;\n\t = %8.6f&quot;,zahl);
</code></pre>
<p>Compiler:</p>
<blockquote>
<p>e1_4.c: In function ‘main’:<br />
e1_4.c:12:7: error: called object ‘add’ is not a function<br />
e1_4.c:13:7: error: called object ‘sub’ is not a function<br />
e1_4.c:14:7: error: called object ‘mul’ is not a function<br />
e1_4.c:15:7: error: called object ‘div’ is not a function<br />
e1_4.c:16:12: error: invalid operands to binary % (have ‘float’ and ‘int’)<br />
e1_4.c:16:7: error: called object ‘mod’ is not a function<br />
e1_4.c:21:2: error: incompatible type for argument 1 of ‘gets’<br />
/usr/include/stdio.h:632:14: note: expected ‘char *’ but argument is of type ‘float’</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2129281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2129281</guid><dc:creator><![CDATA[PatrickHH]]></dc:creator><pubDate>Sun, 09 Oct 2011 16:11:44 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Programm für mathematische Aufgaben schreiben on Sun, 09 Oct 2011 16:19:57 GMT]]></title><description><![CDATA[<p>Tja, dein Compiler hat völlig recht. (Welche Überraschung. :D)<br />
Funktionen backt man so:</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;

double add(double a, double b)
{
  return a + b;
}

int main() // void main() ist ungültig.
{
  printf(&quot;%f&quot;, add(5, 8)); // Ja, %f ist auch für double. %d steht für eine Dezimalzahl.
  return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2129284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2129284</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 09 Oct 2011 16:19:57 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Programm für mathematische Aufgaben schreiben on Sun, 09 Oct 2011 16:39:42 GMT]]></title><description><![CDATA[<p>Deine Methode kenne ich noch garnicht.<br />
Kann man nicht auch alle Funktionen zusammenfassen?</p>
<pre><code>double  add, sub, mul, div, mod
</code></pre>
<p><em>return</em> kommt in meinen Lektionen erst später. Mir ist es nur nebenbei durch das lesen von Texten im Netz bekannt. In den Übungen sollen wir ja möglichst nur das verwenden, was in der bisherigen Fortbildung vorgekommen ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2129286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2129286</guid><dc:creator><![CDATA[PatrickHH]]></dc:creator><pubDate>Sun, 09 Oct 2011 16:39:42 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Programm für mathematische Aufgaben schreiben on Sun, 09 Oct 2011 16:56:49 GMT]]></title><description><![CDATA[<p>PatrickHH schrieb:</p>
<blockquote>
<p>Kann man nicht auch alle Funktionen zusammenfassen?</p>
</blockquote>
<p>Funktionen sind keine Variablen! Das sind eigentlich Grundlagen. Du kannst das alles aber auch einfach ohne Funktionen machen, wenn dir das lieber ist. Die Grundstruktur sieht dann so aus:</p>
<pre><code class="language-cpp">#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;

int main()
{
  char buf[256];
  double current;

  printf(&quot;Anfangszahl eingeben: &quot;);
  fgets(buf, sizeof(buf), stdin);
  current = atof(buf);

  while (buf[0] != '=')
  {
    printf(&quot;= %f&quot;, current);
    fgets(buf, sizeof(buf), stdin);
    switch (buf[0])
    {
    case '+':
      current += atof(buf + 1); // In buf steht jetzt z.B. &quot;+5&quot;. Dann steht in buf + 1 nur noch &quot;5&quot;.
    ...
    default:
      // Unbekanntes Zeichen, Fehlermeldung.
    }
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2129290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2129290</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 09 Oct 2011 16:56:49 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Programm für mathematische Aufgaben schreiben on Sun, 09 Oct 2011 16:51:19 GMT]]></title><description><![CDATA[<p>Ja, das hast Du recht, eigentlich sind das Grundlagen. Höre jetzt auch auf für heute und mache morgen nach der Arbeit weiter.</p>
<p>Viel Dank erstmal für Deine Hilfe <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/2129292</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2129292</guid><dc:creator><![CDATA[PatrickHH]]></dc:creator><pubDate>Sun, 09 Oct 2011 16:51:19 GMT</pubDate></item></channel></rss>