<?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[Taschenrechner für Brüche in 3 separaten Dateien]]></title><description><![CDATA[<p>Hallo,<br />
ich soll diesen Code</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;
struct Bruch {
int a; //Zaehler
int b; //Nenner

};
int main () {
int x;
struct Bruch op1 = {0,1}, op2 = {0,1};
struct Bruch Erg_n;

cout &lt;&lt; &quot;Operation eingeben +,-,*,/&quot; &lt;&lt; endl;
cin &gt;&gt; x;

cout &lt;&lt; &quot;Zeahler und Nenner eingeben:&quot; &lt;&lt; endl;
cin &gt;&gt; op1.a &gt;&gt; op1.b;

cout &lt;&lt; &quot;Zeahler und Nenner eingeben:&quot; &lt;&lt; endl;
cin &gt;&gt; op2.a &gt;&gt; op2.b;

// Addition
if ( x == 1) {
Erg_n.b = op1.b*op2.b;
Erg_n.a = op1.a*op2.b + op2.a*op1.b;
}

// Subtraktion
if ( x == 2) {
Erg_n.b = op1.b*op2.b;
Erg_n.a = op1.a*op2.b - op2.a*op1.b;
}

// Multiplikation
if ( x == 3) {
Erg_n.b = op1.b*op2.b;
Erg_n.a = op1.a*op2.a;
}

// Division
if ( x == 4) {
Erg_n.b = op1.b*op2.a;
Erg_n.a = op1.a*op2.b;
}

int r;
int z=Erg_n.a;
int q=Erg_n.b;

do {
	r = z%q;
	z = q;
	q = r;
} while (q !=0);

cout &lt;&lt; Erg_n.a/z &lt;&lt; &quot; / &quot; &lt;&lt; Erg_n.b/z &lt;&lt; endl;

return (0);
}
</code></pre>
<p>aufteilen in<br />
1. Funktionsimplementierungen<br />
2. Funktionsprototypen<br />
3. Taschenrechner – Anwendung, ruft Funktionen aus Funktionsimplementierungen auf</p>
<p>Schreiben Sie die<br />
Funktionsdefinitionen in eine separate Implementierungsdatei und die<br />
Funktionsprototypen in eine separate Headerdatei!<br />
Verwenden Sie folgende Funktionssignaturen:<br />
 bruch bplus(bruch x, bruch y)<br />
 bruch bminus(bruch x, bruch y)<br />
 bruch bmal(bruch x, bruch y)<br />
 bruch bdurch(bruch x, bruch y)<br />
 void bkuerzen (bruch &amp;x)</p>
<p>Ich hab mich fast 2 Stunden versucht einzulesen usw.<br />
Aber ich komm nicht im ansatz weiter, kann mir jemand einen Lösungansatz bzw. einen Vorschlag geben wie ich anfangen soll?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/311631/taschenrechner-für-brüche-in-3-separaten-dateien</link><generator>RSS for Node</generator><lastBuildDate>Mon, 03 Aug 2026 11:30:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/311631.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 10 Dec 2012 16:51:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Mon, 10 Dec 2012 16:51:53 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich soll diesen Code</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;
struct Bruch {
int a; //Zaehler
int b; //Nenner

};
int main () {
int x;
struct Bruch op1 = {0,1}, op2 = {0,1};
struct Bruch Erg_n;

cout &lt;&lt; &quot;Operation eingeben +,-,*,/&quot; &lt;&lt; endl;
cin &gt;&gt; x;

cout &lt;&lt; &quot;Zeahler und Nenner eingeben:&quot; &lt;&lt; endl;
cin &gt;&gt; op1.a &gt;&gt; op1.b;

cout &lt;&lt; &quot;Zeahler und Nenner eingeben:&quot; &lt;&lt; endl;
cin &gt;&gt; op2.a &gt;&gt; op2.b;

// Addition
if ( x == 1) {
Erg_n.b = op1.b*op2.b;
Erg_n.a = op1.a*op2.b + op2.a*op1.b;
}

// Subtraktion
if ( x == 2) {
Erg_n.b = op1.b*op2.b;
Erg_n.a = op1.a*op2.b - op2.a*op1.b;
}

// Multiplikation
if ( x == 3) {
Erg_n.b = op1.b*op2.b;
Erg_n.a = op1.a*op2.a;
}

// Division
if ( x == 4) {
Erg_n.b = op1.b*op2.a;
Erg_n.a = op1.a*op2.b;
}

int r;
int z=Erg_n.a;
int q=Erg_n.b;

do {
	r = z%q;
	z = q;
	q = r;
} while (q !=0);

cout &lt;&lt; Erg_n.a/z &lt;&lt; &quot; / &quot; &lt;&lt; Erg_n.b/z &lt;&lt; endl;

return (0);
}
</code></pre>
<p>aufteilen in<br />
1. Funktionsimplementierungen<br />
2. Funktionsprototypen<br />
3. Taschenrechner – Anwendung, ruft Funktionen aus Funktionsimplementierungen auf</p>
<p>Schreiben Sie die<br />
Funktionsdefinitionen in eine separate Implementierungsdatei und die<br />
Funktionsprototypen in eine separate Headerdatei!<br />
Verwenden Sie folgende Funktionssignaturen:<br />
 bruch bplus(bruch x, bruch y)<br />
 bruch bminus(bruch x, bruch y)<br />
 bruch bmal(bruch x, bruch y)<br />
 bruch bdurch(bruch x, bruch y)<br />
 void bkuerzen (bruch &amp;x)</p>
<p>Ich hab mich fast 2 Stunden versucht einzulesen usw.<br />
Aber ich komm nicht im ansatz weiter, kann mir jemand einen Lösungansatz bzw. einen Vorschlag geben wie ich anfangen soll?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2278991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2278991</guid><dc:creator><![CDATA[Karold]]></dc:creator><pubDate>Mon, 10 Dec 2012 16:51:53 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Mon, 10 Dec 2012 17:57:58 GMT]]></title><description><![CDATA[<p>Bist du ein Kollege von dem hier?<br />
<a href="http://www.c-plusplus.net/forum/311628" rel="nofollow">http://www.c-plusplus.net/forum/311628</a><br />
Da habt ihr aber einen feinen Kurs :xmas2: .</p>
<p>Falls du irgendeine Aussicht auf Beantwortung deiner Frage haben möchtest, solltest du dir dringend mal den ersten Link in meiner Signatur (und Folgelinks) durchlesen. Einfach nur deine Hausaufgaben und &quot;Weh mir! Ich habe keine Ahnung was ich tun soll.&quot; ist bloß ein Garant für blöde Witze.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279008</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 10 Dec 2012 17:57:58 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Mon, 10 Dec 2012 18:30:51 GMT]]></title><description><![CDATA[<blockquote>
<p>dem hier?</p>
</blockquote>
<p>Es muss wohl heißen &quot;der hier&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Ist selten, aber es passiert auch mal das eine weibliche Gestalt sich ins Programmierforum verirrt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279027</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 10 Dec 2012 18:30:51 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Mon, 10 Dec 2012 18:35:19 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Es muss wohl heißen &quot;der hier&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Ist selten, aber es passiert auch mal das eine weibliche Gestalt sich ins Programmierforum verirrt.</p>
</blockquote>
<p>There are no girls on the internet. :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279031</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 10 Dec 2012 18:35:19 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Mon, 10 Dec 2012 18:36:40 GMT]]></title><description><![CDATA[<p>das sagst du dem kleinen schnellsprizer sone? <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="😃"
    /><br />
mutig mutig...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279032</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 10 Dec 2012 18:36:40 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Mon, 10 Dec 2012 18:56:14 GMT]]></title><description><![CDATA[<p>Ich versuch mich schon den ganzen Tag daran, aber kann mir jemand sagen wo hier der Fehler ist?</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;
struct Bruch {
int a; //Zaehler
int b; //Nenner

};
int main () {
int x;
struct Bruch op1 = {0,1}, op2 = {0,1};
struct Bruch Erg_n;

cout &lt;&lt; &quot;Operation eingeben +,-,*,/&quot; &lt;&lt; endl;
cin &gt;&gt; x;

cout &lt;&lt; &quot;Zeahler und Nenner eingeben:&quot; &lt;&lt; endl;
cin &gt;&gt; op1.a &gt;&gt; op1.b;

cout &lt;&lt; &quot;Zeahler und Nenner eingeben:&quot; &lt;&lt; endl;
cin &gt;&gt; op2.a &gt;&gt; op2.b;

// Addition
if ( x == 1) {
Erg_n.b = op1.b*op2.b;
Erg_n.a = op1.a*op2.b + op2.a*op1.b;
}

// Subtraktion
if ( x == 2) {
Erg_n.b = op1.b*op2.b;
Erg_n.a = op1.a*op2.b - op2.a*op1.b;
}

// Multiplikation
if ( x == 3) {
Erg_n.b = op1.b*op2.b;
Erg_n.a = op1.a*op2.a;
}

// Division
if ( x == 4) {
Erg_n.b = op1.b*op2.a;
Erg_n.a = op1.a*op2.b;

int r;
int z=Erg_n.a;
int q=Erg_n.b;

do {
	r = z%q;
	z = q;
	q = r;
} while (q !=0);

cout &lt;&lt; Erg_n.a/z &lt;&lt; &quot; / &quot; &lt;&lt; Erg_n.b/z &lt;&lt; endl;
}
return (0);
}
</code></pre>
<pre><code>bruch kuerzen (bruch x)
{
int a, b, r;
bruch ergebnis =x;
if (!x.z){
ergebnis.n = 1;
return (ergebnis);
}
// Kürzen ... return (ergebnis);
int r;
int z=Erg_n.a;
int q=Erg_n.b;

do {
	r = z%q;
	z = q;
	q = r;
} while (q !=0);

cout &lt;&lt; Erg_n.a/z &lt;&lt; &quot; / &quot; &lt;&lt; Erg_n.b/z &lt;&lt; endl;

return (ergebnis);
}
</code></pre>
<p>Ich bekomm immer den Fehler<br />
g++ -Wall 1.cpp 3.cpp -o 3.exe<br />
1.cpp:1:1: Fehler: »bruch« bezeichnet keinen Typ</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279038</guid><dc:creator><![CDATA[Karold]]></dc:creator><pubDate>Mon, 10 Dec 2012 18:56:14 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Mon, 10 Dec 2012 19:01:08 GMT]]></title><description><![CDATA[<p>C++ unterscheidet Groß- und Kleinschreibung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279040</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 10 Dec 2012 19:01:08 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Mon, 10 Dec 2012 19:53:23 GMT]]></title><description><![CDATA[<p>Karold schrieb:</p>
<blockquote>
<p>...<br />
aufteilen in<br />
1. Funktionsimplementierungen<br />
2. Funktionsprototypen<br />
3. Taschenrechner – Anwendung, ruft Funktionen aus Funktionsimplementierungen auf</p>
<p>Schreiben Sie die<br />
Funktionsdefinitionen in eine separate Implementierungsdatei und die<br />
Funktionsprototypen in eine separate Headerdatei!<br />
Verwenden Sie folgende Funktionssignaturen:<br />
 bruch bplus(bruch x, bruch y)<br />
 bruch bminus(bruch x, bruch y)<br />
 bruch bmal(bruch x, bruch y)<br />
 bruch bdurch(bruch x, bruch y)<br />
 void bkuerzen (bruch &amp;x)</p>
<p>Ich hab mich fast 2 Stunden versucht einzulesen usw.<br />
Aber ich komm nicht im ansatz weiter, kann mir jemand einen Lösungansatz bzw. einen Vorschlag geben wie ich anfangen soll?</p>
</blockquote>
<p>Hallo Karold,</p>
<p>Willkommen im C++-Forum.<br />
Vorne weg eine Frage: Sollst/Willst du C oder C++ lernen?</p>
<p>In C++ würde man eine <a href="http://www.josuttis.com/cppbuch/1771bsp.pdf" rel="nofollow">struct Bruch</a> schreiben, die über arithmetische Operatoren verfügt. Wie das genau geht, ist z.B. <a href="http://magazin.c-plusplus.net/artikel/%DCberladung%20von%20Operatoren%20in%20CPlusPlus%20%28Teil%201%29" rel="nofollow">hier</a> beschrieben.</p>
<p>:xmas2: Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279058</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Mon, 10 Dec 2012 19:53:23 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Tue, 11 Dec 2012 07:54:14 GMT]]></title><description><![CDATA[<p>Jetzt bin ich wenigstens schon weiter, aber ich häng jetzt und find meinen Fehler nicht, wäre super wenn jemand drüberschauen könnte.</p>
<p>Header</p>
<pre><code>//Datentyp Bruch
typedef struct bruch
{
int a;
int b;
int n;
int z;
} bruch;
//Funktionen
bruch bplus(bruch x, bruch y);
bruch bminus(bruch x, bruch y);
bruch bmal(bruch x, bruch y);
bruch bdurch(bruch x, bruch y);
void bkuerzen (bruch &amp;x);
void print_bruch (const bruch x);
</code></pre>
<p>Main</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;bruch_fun.h&quot;
using namespace std;

int main (){

char rechenop=' ';
struct bruch zahl1={0,0};
struct bruch zahl2={0,0};
struct bruch erg={1,1};

do
{
cout &lt;&lt; &quot;Geben Sie die gewuenschte Operation ein:&quot; &lt;&lt; endl;
cout &lt;&lt; &quot;+ = Addition&quot; &lt;&lt; endl;
cout &lt;&lt; &quot;- = Subtraktion&quot; &lt;&lt; endl;
cout &lt;&lt; &quot;: = Division&quot; &lt;&lt; endl;
cout &lt;&lt; &quot;* = Multiplikation&quot; &lt;&lt; endl;
cin &gt;&gt; rechenop;
cout &lt;&lt; &quot;Geben Sie bitte Bruch1 ein:&quot; &lt;&lt; endl;
cin &gt;&gt; zahl1.z &gt;&gt; zahl1.n;
cout &lt;&lt; &quot;Geben Sie bitte Bruch2 ein:&quot; &lt;&lt; endl;
cin &gt;&gt; zahl2.z &gt;&gt; zahl2.n;
{

// Addition
if(rechenop=='+')
{
erg.n = zahl1.n*zahl2.n;
erg.z = zahl1.z*zahl2.n + zahl2.z*zahl1.n;
}

// Subtraktion
if(rechenop=='-')
{
erg.n = zahl1.n*zahl2.n;
erg.z = zahl1.z*zahl2.n - zahl2.z*zahl1.n;
}

// Multiplikation
if(rechenop=='*')
{
erg.n = zahl1.n*zahl2.n;
erg.z = zahl1.z*zahl2.n;
}

// Division
if (rechenop==':') 
{
erg.n = zahl1.n*zahl2.z;
erg.z = zahl1.z*zahl2.n;
}

//Kuerzen
int r;
int z=erg.z;
int q=erg.n;

do {
	r = z%q;
	z = q;
	q = r;
} while (q !=0);

cout &lt;&lt; erg.z/z &lt;&lt; &quot; / &quot; &lt;&lt; erg.n/z &lt;&lt; endl;

return (0);
}
</code></pre>
<p>2te zu einbindende datei mittels<br />
g++ -Wall Code2.cpp code3.cpp -o calculator.exe</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;
struct bruch {
int z; //Zaehler
int n; //Nenner

};
int main () {
int x;
struct bruch zahl1 = {0,1};
struct bruch zahl2 = {0,1};
struct bruch erg;

cout &lt;&lt; &quot;Operation eingeben +,-,*,/&quot; &lt;&lt; endl;
cin &gt;&gt; x;

cout &lt;&lt; &quot;Zeahler und Nenner eingeben:&quot; &lt;&lt; endl;
cin &gt;&gt; zahl1.z &gt;&gt; zahl1.n;

cout &lt;&lt; &quot;Zeahler und Nenner eingeben:&quot; &lt;&lt; endl;
cin &gt;&gt; zahl2.z &gt;&gt; zahl2.n;

// Addition
if ( x == 1) {
erg.n = zahl1.n*zahl2.n;
erg.z = zahl1.z*zahl2.n + zahl2.z*zahl1.n;
}

// Subtraktion
if ( x == 2) {
erg.n = zahl1.n*zahl2.n;
erg.z = zahl1.z*zahl2.n - zahl2.z*zahl1.n;
}

// Multiplikation
if ( x == 3) {
erg.n = zahl1.n*zahl2.n;
erg.z = zahl1.z*zahl2.z;
}

// Division
if ( x == 4) {
erg.n = zahl1.n*zahl2.z;
erg.z = zahl1.z*zahl2.n;
}

//Kuerzen
int r;
int z=erg.z;
int q=erg.n;

do {
	r = z%q;
	z = q;
	q = r;
} while (q !=0);

cout &lt;&lt; erg.z/z &lt;&lt; &quot; / &quot; &lt;&lt; erg.n/z &lt;&lt; endl;

return (0);
}
</code></pre>
<p>Und ich werde bestimmt noch probleme mit dem &quot;Main()&quot; bekommen weil sich das überlagert, hab vesucht des irgendwie wegzunehmen, aber des haut nicht hin <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=":/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279143</guid><dc:creator><![CDATA[Karold]]></dc:creator><pubDate>Tue, 11 Dec 2012 07:54:14 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Tue, 11 Dec 2012 08:12:37 GMT]]></title><description><![CDATA[<p>Karold schrieb:</p>
<blockquote>
<p>Jetzt bin ich wenigstens schon weiter, aber ich häng jetzt und find meinen Fehler nicht, wäre super wenn jemand drüberschauen könnte.</p>
<p>Header</p>
<pre><code>//Datentyp Bruch
typedef struct bruch
{
int a;
int b;
int n;
int z;
} bruch;
</code></pre>
</blockquote>
<p>.. und Du bist sicher, dass Euer Kurs irgendwas mit C++ zu tun hat?</p>
<p>Karold schrieb:</p>
<blockquote>
<p>Und ich werde bestimmt noch probleme mit dem &quot;Main()&quot; bekommen weil sich das überlagert, hab vesucht des irgendwie wegzunehmen, aber des haut nicht hin <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=":/"
      alt="😕"
    /></p>
</blockquote>
<p>das ist ganz leicht zu lösen. Lösche einfach die Datei code3.cpp - das ist doppelt.</p>
<p>2.Listing Zeile 24 - das '{' ist zu viel</p>
<p>2.Listing Zeile 66 fehlt</p>
<pre><code>} while( cin );
</code></pre>
<p>Es fehlt die Implementierung der Funktionen <code>bplus</code> , <code>bminus</code> , usw.und deren Aufruf.</p>
<p>:xmas2:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279147</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Tue, 11 Dec 2012 08:12:37 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Tue, 11 Dec 2012 08:21:56 GMT]]></title><description><![CDATA[<p>Warum hast du in dem Bruch &quot;a&quot;, &quot;b&quot;, &quot;n&quot;, und &quot;z&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279150</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 11 Dec 2012 08:21:56 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Tue, 11 Dec 2012 08:32:02 GMT]]></title><description><![CDATA[<p>daddy_felix schrieb:</p>
<blockquote>
<p>Warum hast du in dem Bruch &quot;a&quot;, &quot;b&quot;, &quot;n&quot;, und &quot;z&quot;?</p>
</blockquote>
<p>Weil ich die Variablen in der Header definiern muss, sonst hauts nicht hin.</p>
<p>Werner Salomon schrieb:</p>
<blockquote>
<p>.. und Du bist sicher, dass Euer Kurs irgendwas mit C++ zu tun hat?</p>
</blockquote>
<p>Es heißt Erinführung in die Programmierung und C++ ist das Thema <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="😃"
    /> aber naja unser Dozent ist einfach nicht das wahre, hör ich einfach von zu vielen Seiten</p>
<p>[quote=&quot;Werner Salomon&quot;]<br />
Es fehlt die Implementierung der Funktionen <code>bplus</code> , <code>bminus</code> , usw.und deren Aufruf.<br />
/quote]</p>
<pre><code>if(calcType=='+')
{
erg=bplus(zahl1,zahl2);
bkuerzen(erg);
print_bruch(erg);
}
</code></pre>
<p>So so so sah ein teil vom code aus bis ichs geändert habe, aber wie kann ich blus usw implementieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279152</guid><dc:creator><![CDATA[Karold]]></dc:creator><pubDate>Tue, 11 Dec 2012 08:32:02 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Tue, 11 Dec 2012 08:38:10 GMT]]></title><description><![CDATA[<p>Karold schrieb:</p>
<blockquote>
<p>daddy_felix schrieb:</p>
<blockquote>
<p>Warum hast du in dem Bruch &quot;a&quot;, &quot;b&quot;, &quot;n&quot;, und &quot;z&quot;?</p>
</blockquote>
<p>Weil ich die Variablen in der Header definiern muss, sonst hauts nicht hin.</p>
</blockquote>
<p>Ich meine, wofür brauchst du vier Member? &quot;n&quot; und &quot;z&quot; sind vermutlich &quot;nenner&quot; und &quot;zaehler&quot;, aber was sollen &quot;a&quot; und &quot;b&quot; sein?</p>
<p>--&gt; Hinweis: aussageklräftige Bezeichner wählen. Jeder, der deinen Code liest, wird es dir danken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279153</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 11 Dec 2012 08:38:10 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Tue, 11 Dec 2012 08:38:28 GMT]]></title><description><![CDATA[<p>Wenn ich mittels<br />
$g++ –Wall Code2.cpp code3.cpp -o calculator.exe die Taschenrechner–Anwendung erzeugen soll, wie kann man das problem mit den &quot;main()&quot; umgehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279154</guid><dc:creator><![CDATA[Karold]]></dc:creator><pubDate>Tue, 11 Dec 2012 08:38:28 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Tue, 11 Dec 2012 08:42:30 GMT]]></title><description><![CDATA[<p>Karold schrieb:</p>
<blockquote>
<p>Wenn ich mittels<br />
$g++ –Wall Code2.cpp code3.cpp -o calculator.exe die Taschenrechner–Anwendung erzeugen soll, wie kann man das problem mit den &quot;main()&quot; umgehen?</p>
</blockquote>
<p>du brauchst genau <strong>eine</strong> &quot;main&quot;-Funktion in deinem Projekt. Unabhängig vom Compiler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279155</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279155</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 11 Dec 2012 08:42:30 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Tue, 11 Dec 2012 08:44:06 GMT]]></title><description><![CDATA[<p>Jetzt seh ichs grad a und b waren von testvariablen die ich eingefügt habe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279156</guid><dc:creator><![CDATA[Karold]]></dc:creator><pubDate>Tue, 11 Dec 2012 08:44:06 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Tue, 11 Dec 2012 08:50:40 GMT]]></title><description><![CDATA[<p>wenn ich jetzt ein Testprogramm schreibe, dass drüberläuft um alles zu testen stehs bei mir so da</p>
<pre><code>#include &lt;iostream&gt; 
#include &quot;bruch_fun.h&quot; 
using namespace std; 

int main () { 
// ein Testprogramm für kuerzen() 
bruch x={3,4}, y={5,6}, z={1,0};
z = bplus(x, y);
if (z.z != 19 || z.n!=12)
cout &lt;&lt; &quot;Fehler bei bplus&quot; &lt;&lt; endl; 
}
</code></pre>
<p>Nur muss ich ja wieder main() verwenden <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=":/"
      alt="😕"
    /><br />
Ich komm einfach nicht drumrum<br />
wenn ich dann beide compile is wieder der main fehler, ich kanns aber ned weglassen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279159</guid><dc:creator><![CDATA[Karold]]></dc:creator><pubDate>Tue, 11 Dec 2012 08:50:40 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Tue, 11 Dec 2012 08:59:28 GMT]]></title><description><![CDATA[<p>Karold schrieb:</p>
<blockquote>
<p>Jetzt bin ich wenigstens schon weiter, aber ich häng jetzt und find meinen Fehler nicht, wäre super wenn jemand drüberschauen könnte.</p>
</blockquote>
<p>Mit einer genaueren Beschreibung wird es für die anderen einfacher, dir zu helfen.</p>
<p>Aber warum definierst du die Struktur 2mal? Dann auch noch inkonsistent! Einmal mit 2 Datenelementen und einmal mit 4 Datenelementen. Das ist eine ODR-Verletzung. Du kannst in der einen cpp-Datei doch auch einfach noch deinen Header inkludieren. Um eine Struktur zu definieren benutzen wir in C++ auch kein typedef!</p>
<p>Karold schrieb:</p>
<blockquote>
<pre><code class="language-cpp">struct bruch zahl1={0,0};
struct bruch zahl2={0,0};
struct bruch erg={1,1};
</code></pre>
</blockquote>
<p>In C++ musst du auch struct nicht immer vor dem Struct-Namen schreiben.</p>
<p>Verwende doch mal sinnige Namen. a, b für Zähler und Nenner ist eine schlechte Wahl. Genauso wie code2.cpp und code3.cpp.</p>
<p>Vorschlag:</p>
<p>bruch.hpp</p>
<pre><code class="language-cpp">#ifndef BRUCH_HPP_INCLUDED
#define BRUCH_HPP_INCLUDED

struct bruch
{
    long zaehler, nenner;

    bruch(long z=0)  // Default- und Konvertierungs-Konstruktor
    : zaehler(z), nenner(1)
    {}

    bruch(long z, long n)
    : zaehler(z), nenner(n)
    {}
};

bruch operator+(bruch links, bruch rechts);
bruch operator-(bruch links, bruch rechts);
bruch operator*(bruch links, bruch rechts);
bruch operator/(bruch links, bruch rechts);
bruch kuerzen(bruch b);
void print(bruch b);

#endif
</code></pre>
<p>bruch.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; // fuer print
#include &quot;bruch.hpp&quot;

bruch operator+(bruch links, bruch rechts)
{
    :::
}
bruch operator-(bruch links, bruch rechts)
{
    :::
}
bruch operator*(bruch links, bruch rechts)
{
    :::
}
bruch operator/(bruch links, bruch rechts)
{
    :::
}
bruch kuerzen(bruch b)
{
    :::
}
void print(bruch b)
{
    using namespace std;
    :::
}
</code></pre>
<p>main.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;bruch.hpp&quot;

using namespace std;

int main()
{
  :::
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2279160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279160</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 11 Dec 2012 08:59:28 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Tue, 11 Dec 2012 09:01:44 GMT]]></title><description><![CDATA[<p>Karold schrieb:</p>
<blockquote>
<p>Nur muss ich ja wieder main() verwenden <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=":/"
      alt="😕"
    /><br />
Ich komm einfach nicht drumrum<br />
wenn ich dann beide compile is wieder der main fehler, ich kanns aber ned weglassen</p>
</blockquote>
<p>--&gt;</p>
<p>daddy_felix schrieb:</p>
<blockquote>
<p>du brauchst genau <strong>eine</strong> &quot;main&quot;-Funktion in deinem Projekt. Unabhängig vom Compiler.</p>
</blockquote>
<p>Hinweis: Projekt != Datei</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279161</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 11 Dec 2012 09:01:44 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Tue, 11 Dec 2012 09:01:57 GMT]]></title><description><![CDATA[<p>Karold schrieb:</p>
<blockquote>
<p>Nur muss ich ja wieder main() verwenden <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=":/"
      alt="😕"
    /><br />
Ich komm einfach nicht drumrum<br />
wenn ich dann beide compile is wieder der main fehler, ich kanns aber ned weglassen</p>
</blockquote>
<p>Nur dass ich Dich recht verstehe.<br />
Du hast eine Header-Datei mit der Definition von Bruch und einigen Prototypen</p>
<pre><code class="language-cpp">// bruch.h
// definiert die Klasse Bruch
// und deklariert Funktionsprototypen

#ifndef BRUCH_H
#define BRUCH_H
struct Bruch{
  int z;
  int n;
};

// gibt einen Bruch nach std::cout aus
void print_bruch(const Bruch&amp;);
#endif
</code></pre>
<p>Dann hast Du eine Datei mit den Implementierungen der Funktionen:</p>
<pre><code class="language-cpp">// bruch.cc

#include &lt;iostream&gt;  // std::cout
#include &quot;bruch.h&quot;

// gibt einen Bruch nach std::cout aus
void print_bruch(const Bruch&amp; b){
  std::cout &lt;&lt; b.z &lt;&lt; '/' &lt;&lt; b.n &lt;&lt; '\n';
}
</code></pre>
<p>Und dann hast Du eine(!) weitere Quelldatei mit Deinem Programmcode</p>
<pre><code class="language-cpp">#include &quot;bruch.h&quot;

int main(){
  Bruch b = { 47, 11 }; // siebenundvierzig-elftel
  print_bruch(b);
}
</code></pre>
<p>Und dann dengelst Du alles zusammen:</p>
<pre><code>FurbleWurble@sinsemilla /tmp $ g++ -c bruch.cc -o bruch.o
FurbleWurble@sinsemilla /tmp $ g++ -o test test.cc bruch.o
FurbleWurble@sinsemilla /tmp $ ./test 
47/11
FurbleWurble@sinsemilla /tmp $
</code></pre>
<p>Genau eine <code>main()</code> Funktion...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279162</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Tue, 11 Dec 2012 09:01:57 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Tue, 11 Dec 2012 10:24:47 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#ifndef BRUCH_HPP_INCLUDED
#define BRUCH_HPP_INCLUDED

struct bruch
{
    long zaehler, nenner;

    bruch(long z=0)  // Default- und Konvertierungs-Konstruktor
    : zaehler(z), nenner(1)
    {}

    bruch(long z, long n)
    : zaehler(z), nenner(n)
    {}
};

bruch operator+(bruch links, bruch rechts);
bruch operator-(bruch links, bruch rechts);
bruch operator*(bruch links, bruch rechts);
bruch operator/(bruch links, bruch rechts);
bruch kuerzen(bruch b);
void print(bruch b);

#endif
</code></pre>
</blockquote>
<p>Das mit den bruch operator+ usw ist nicht die Aufgabe, abgesehen davon versteh ich das nochweniger als das was ich gerade mache</p>
<p>Zum Verständnis</p>
<pre><code>Header bruch.h

//Datentyp Bruch
typedef struct bruch
{
int n; // Zähler
int z; // Nenner
} bruch;
//Funktionen
bruch bplus(bruch x, bruch y);
bruch bminus(bruch x, bruch y);
bruch bmal(bruch x, bruch y);
bruch bdurch(bruch x, bruch y);
void bkuerzen (bruch &amp;x);
void print_bruch (const bruch x);
</code></pre>
<pre><code>Funktionsimplementierungen bruch.cpp MAIN

#include &lt;iostream&gt; 
#include &quot;bruch_fun.h&quot; 
using namespace std; 

int main (){ 

char rechenop=' '; 
bruch zahl1={0,0}; 
bruch zahl2={0,0}; 
bruch erg={1,1}; 

do 
{ 
cout &lt;&lt; &quot;Geben Sie die gewuenschte Operation ein:&quot; &lt;&lt; endl; 
cout &lt;&lt; &quot;+ = Addition&quot; &lt;&lt; endl; 
cout &lt;&lt; &quot;- = Subtraktion&quot; &lt;&lt; endl; 
cout &lt;&lt; &quot;: = Division&quot; &lt;&lt; endl; 
cout &lt;&lt; &quot;* = Multiplikation&quot; &lt;&lt; endl;
cout &lt;&lt; &quot;E = Ende&quot; &lt;&lt; endl;
cin &gt;&gt; rechenop;
if(rechenop=='E')
return(0);
cout &lt;&lt; &quot;Geben Sie bitte Bruch1 ein:&quot; &lt;&lt; endl; 
cin &gt;&gt; zahl1.z &gt;&gt; zahl1.n; 
cout &lt;&lt; &quot;Geben Sie bitte Bruch2 ein:&quot; &lt;&lt; endl; 
cin &gt;&gt; zahl2.z &gt;&gt; zahl2.n;

// Addition 
if(rechenop=='+') 
{ 
erg.n = zahl1.n*zahl2.n; 
erg.z = zahl1.z*zahl2.n + zahl2.z*zahl1.n;
} 

// Subtraktion 
if(rechenop=='-') 
{ 
erg.n = zahl1.n*zahl2.n; 
erg.z = zahl1.z*zahl2.n - zahl2.z*zahl1.n; 
} 

// Multiplikation 
if(rechenop=='*') 
{ 
erg.n = zahl1.n*zahl2.n; 
erg.z = zahl1.z*zahl2.n; 
} 

// Division 
if (rechenop==':') 
{ 
erg.n = zahl1.n*zahl2.z; 
erg.z = zahl1.z*zahl2.n; 
} 

//Kuerzen 
int r; 
int z=erg.z; 
int q=erg.n; 

do { 
    r = z%q; 
    z = q; 
    q = r; 
} while (q !=0); 

cout &lt;&lt; erg.z/z &lt;&lt; &quot; / &quot; &lt;&lt; erg.n/z &lt;&lt; endl; 

}
while(rechenop!='E');
return (0); 
}
</code></pre>
<pre><code>test_bruch.cpp Testanwendung für Ihre Funktionen

#include &lt;iostream&gt; 
#include &quot;bruch_fun.h&quot; 
using namespace std; 

int main () { 
// ein Testprogramm für kuerzen() 
bruch x={3,4}, y={5,6}, z={1,0};
z = bplus(x, y);
if (z.z != 19 || z.n!=12)
cout &lt;&lt; &quot;Fehler bei bplus&quot; &lt;&lt; endl; 
}
</code></pre>
<p>Jetzt muss ich &quot;Schreiben Sie danach ein Programm, das diese Tests automatisch durchführt und Sie über eventuell fehlgeschlagene Tests informiert.&quot;<br />
Das dann so &quot;g++ –Wall test_bruch.cpp bruch.cpp –o test.exe&quot; compilet wird.</p>
<p>Wie kann ich die Test umschreiben. dass er</p>
<pre><code>bruch x={3,4}, y={5,6}, z={1,0};
z = bplus(x, y);
if (z.z != 19 || z.n!=12)
cout &lt;&lt; &quot;Fehler bei bplus&quot; &lt;&lt; endl;
</code></pre>
<p>durchführt und mir Fehler meldet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279181</guid><dc:creator><![CDATA[Karold]]></dc:creator><pubDate>Tue, 11 Dec 2012 10:24:47 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Tue, 11 Dec 2012 10:28:39 GMT]]></title><description><![CDATA[<p>in der bruch.cpp brauchst du keine main. Dort musst du nur die Funkjtionen definieren, die du in bruch.h deklariert hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279184</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 11 Dec 2012 10:28:39 GMT</pubDate></item><item><title><![CDATA[Reply to Taschenrechner für Brüche in 3 separaten Dateien on Tue, 11 Dec 2012 10:34:53 GMT]]></title><description><![CDATA[<p>Karold schrieb:</p>
<blockquote>
<p>Das mit den bruch operator+ usw ist nicht die Aufgabe</p>
</blockquote>
<p>Das ist mir ehrlich gesagt egal. Ich will ja auch nicht deine Hausaufgabe machen. In erster Linie solltest du darin erkennen können, wie man den &quot;Kram&quot; auf mehrere Dateien aufteilt, wie ein Header aussieht und wo der überall inkludiert wird.</p>
<p>Du sollst in bruch.cpp deine Operationen plus, minus, kuerzen, u.s.w. definieren, keine main-Funktion! Deine main-Funktion gehört woanders hin.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2279185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2279185</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 11 Dec 2012 10:34:53 GMT</pubDate></item></channel></rss>