|
You last visited: Today at 18:53
Advertisement
Brüche kürzen C++ ?
Discussion on Brüche kürzen C++ ? within the C/C++ forum part of the Coders Den category.
02/15/2012, 14:39
|
#1
|
elite*gold: 558
Join Date: Jan 2010
Posts: 22,777
Received Thanks: 10,525
|
Brüche kürzen C++ ?
Hey Guyz.
Hat jemand von euch eine Class für das Kürzen von Brüchen in C++ ?
Meine Class sieht wie folgt aus:
Code:
class Bruch
{
public:
Bruch()
{
zaehler=0;
nenner=0;
}
Bruch(int zae)
{
zaehler=zae;
nenner=0;
}
Bruch(int zae, int nenn)
{
zaehler=zae;
nenner=nenn;
}
int getZaehler()
{
return zaehler;
}
int getNenner()
{
return nenner;
}
void setZaehler(int zae)
{
zaehler=zae;
}
void setNenner(int nenn)
{
nenner=nenn;
}
Bruch operator + (Bruch bruch2)
{
Bruch erg;
erg.setZaehler(zaehler * bruch2.getNenner() + nenner * bruch2.getZaehler());
erg.setNenner(nenner * bruch2.getNenner());
return erg;
}
Bruch operator - (Bruch bruch2)
{
Bruch erg;
erg.setZaehler(zaehler * bruch2.getNenner() - nenner * bruch2.getZaehler());
erg.setNenner(nenner * bruch2.getNenner());
return erg;
}
Bruch operator * (Bruch multiplikand)
{
Bruch erg;
erg.setZaehler(zaehler * multiplikand.getZaehler());
erg.setNenner(nenner * multiplikand.getNenner());
return erg;
}
Bruch operator / (Bruch divisor)
{
Bruch erg;
erg.setZaehler(zaehler * divisor.getNenner());
erg.setNenner(nenner * divisor.getZaehler());
return erg;
}
protected:
private:
int zaehler;
int nenner;
};
Main.cpp:
Code:
#include <iostream>
#include "actions.h"
using namespace std;
int main()
{
Bruch bruch1;
Bruch bruch2;
Bruch bruch3;
Bruch erg;
int z, n, swi;
cout << "Bruch1 definieren" << endl;
cout << "Zaehler:" << endl;
cin >> z;
bruch1.setZaehler(z);
cout << "Nenner:" << endl;
cin >> n;
cout << endl;
bruch1.setNenner(n);
cout << "Bruch2 definieren" << endl;
cout << "Zaehler:" << endl;
cin >> z;
bruch2.setZaehler(z);
cout << "Nenner:" << endl;
cin >> n;
cout << endl;
bruch2.setNenner(n);
do
{
cout << endl << "Welche Rechenoperation?" << endl;
cout << "0. End it." << endl;
cout << "1. Bruch 1 & 2 multiplizieren." << endl;
cout << "2. Bruch 1 & 2 dividieren." << endl;
cout << "3. Bruch 1 & 2 subtrahieren." << endl;
cout << "4. Bruch 1 & 2 addieren." << endl;
cin >> swi;
switch(swi)
{
case 1:
erg = bruch1*bruch2;
cout << "Ergebnis:" << erg << endl;
break;
case 2:
erg = bruch1/bruch2;
cout << "Ergebnis:" << erg << endl;
break;
case 3:
erg = bruch1-bruch2;
cout << "Ergebnis:" << erg << endl;
break;
case 4:
erg = bruch1+bruch2;
cout << "Ergebnis:" << erg << endl;
break;
default:
break;
}
}
while(swi!=0);
return 0;
}
Kann mir da schnell jemand helfen?
Danke,
4LPH4!
|
|
|
02/15/2012, 14:54
|
#2
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
|
Brüche kürzen gehört ja wohl zu den absolute Grundlagen der Mathematik. Du willst mir ernsthaft sagen, dass du das nicht kannst?
Hier haste was in java ;o
Code:
public class RationaleZahl {
private long zaehler;
private long nenner;
public RationaleZahl(long zaehler) {
this.zaehler = zaehler;
this.nenner = 1;
}
public RationaleZahl(long zaehler, long nenner) {
this.zaehler = zaehler;
this.nenner = nenner;
}
private long kgv(long a, long b) {
return a * (b / euclid(a, b));
}
public RationaleZahl addiere(RationaleZahl zahl) {
long neuerNenner = kgv(this.nenner, zahl.nenner);
long neuerZaehler = (this.zaehler * (neuerNenner / this.nenner))
+ (zahl.zaehler * (neuerNenner / zahl.nenner));
return new RationaleZahl(neuerZaehler, neuerNenner);
}
private long euclid(long a, long b) {
return b == 0
? a
: euclid(b, a % b);
}
public RationaleZahl kuerze() {
long teiler = euclid(this.zaehler, this.nenner);
return new RationaleZahl(this.zaehler / teiler, this.nenner / teiler);
}
public String gibAlsText() {
RationaleZahl zahl = this.kuerze();
return zahl.nenner == 1
? "" + zahl.zaehler
: zahl.zaehler + "/" + zahl.nenner;
}
}
|
|
|
02/15/2012, 15:05
|
#3
|
elite*gold: 558
Join Date: Jan 2010
Posts: 22,777
Received Thanks: 10,525
|
Ich kann kürzen, nur nicht in C++ ausprogrammieren.
Da ich noch relativ neu in C++ bin, und keine Ahnung von Java habe, hilft mir dein post leider nicht weiter.
|
|
|
02/15/2012, 15:30
|
#4
|
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
|
Wie würdest du es denn auf dem Papier machen?
Schreib' dir Schritt für Schritt auf wie du das Problem lösen würdest, dann wird dir auch klar was du codetechnisch machen musst.
Probleme erkennen und in Teilaufgaben aufteilen -> Das macht einen guten Programmierer aus.
|
|
|
02/15/2012, 15:59
|
#5
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
|
Quote:
Originally Posted by 4LPH4!
Ich kann kürzen, nur nicht in C++ ausprogrammieren.
Da ich noch relativ neu in C++ bin, und keine Ahnung von Java habe, hilft mir dein post leider nicht weiter.
|
Ich bitte dich, die Java syntax ist so ähnlich. Den Ablauf erkennt man auf jedenfall.
|
|
|
02/15/2012, 16:04
|
#6
|
elite*gold: 0
Join Date: Nov 2009
Posts: 343
Received Thanks: 45
|
Operatoren überladen und dann soetwas fragen, das ist schon dreist :P
|
|
|
02/15/2012, 16:26
|
#7
|
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 572
|
Ich glaube euklid hatte einen algorythmus fur den grösten gemeinsamen teiler natürlicher zahlen entwickelt, ich denke dass sollte dir als Hilfestrllung reichen
|
|
|
02/15/2012, 18:01
|
#8
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
|
Quote:
Originally Posted by warfley
Ich glaube euklid hatte einen algorythmus fur den grösten gemeinsamen teiler natürlicher zahlen entwickelt, ich denke dass sollte dir als Hilfestrllung reichen
|
Exakt, diesen habe ich ihm sogar schon gepostet
|
|
|
02/15/2012, 18:08
|
#9
|
elite*gold: 558
Join Date: Jan 2010
Posts: 22,777
Received Thanks: 10,525
|
Quote:
Originally Posted by Nightblizard
Wie würdest du es denn auf dem Papier machen?
Schreib' dir Schritt für Schritt auf wie du das Problem lösen würdest, dann wird dir auch klar was du codetechnisch machen musst.
Probleme erkennen und in Teilaufgaben aufteilen -> Das macht einen guten Programmierer aus.
|
Yoah, habs mir erarbeitet. ;<
Quote:
Originally Posted by MoepMeep
Ich bitte dich, die Java syntax ist so ähnlich. Den Ablauf erkennt man auf jedenfall.
|
Hat mir geholfen, danke.
Quote:
Originally Posted by yihaaa
Operatoren überladen und dann soetwas fragen, das ist schon dreist :P
|
:d
Quote:
Originally Posted by warfley
Ich glaube euklid hatte einen algorythmus fur den grösten gemeinsamen teiler natürlicher zahlen entwickelt, ich denke dass sollte dir als Hilfestrllung reichen
|
(:
|
|
|
02/15/2012, 19:22
|
#10
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
|
Ich halte es für äußerst gefährlich, den Nenner mit 0 zu initialisieren.
Mach doch einfach nur Konstruktoren, die mindestens den Nenner verlangen und bei 0 einen Fehler zurückgeben, um dem vorzubeugen.
|
|
|
02/16/2012, 14:42
|
#11
|
elite*gold: 558
Join Date: Jan 2010
Posts: 22,777
Received Thanks: 10,525
|
Quote:
Originally Posted by MrSm!th
Ich halte es für äußerst gefährlich, den Nenner mit 0 zu initialisieren.
Mach doch einfach nur Konstruktoren, die mindestens den Nenner verlangen und bei 0 einen Fehler zurückgeben, um dem vorzubeugen.
|
Hab ich schon umgeschrieben, ty.
|
|
|
|
Similar Threads
|
Musik Kürzen
05/11/2011 - Music - 3 Replies
Hey, Leute auf anfrage von nem friend zeig ich euch wie man musik kürzt.
Also ich mein das so wenn euer lied nur 4minuten geht die audio datei 5minuten dann kann das schon nerven :facepalm:
Wie man sie kürzt?Recht simpel.
Jeder von euch müsste den windows movie maker aufm pc haben.
Dann importiert ihr die gewünschte musik und geht auf die stelle wo eure musik vorbei geht.Dann drückt ihr auf trennen,Dann könnt ihr den rechten teil löschen da er ja keine musik beinhaltet.. dann noch auf film...
|
Ob ich aufgenomme vid kürzen kann so das es max 2 gb ist für youtubE
09/18/2010 - Video Art - 3 Replies
Ich hab ein problem und hoffe hier kann mir jemand schnell helfen hab was aufgenommen in pc spiel dauert c.a 6 bis 7 minuten aber ist 2.6gb ka warum so groß ist mit fraps aufgenommen kann ich es irgendwie auf 2 gb senken ohne das vid zu schneiden will es nämlich bei youtube hochladen =(
|
Internet auslastung kürzen
08/25/2010 - Technical Support - 3 Replies
Hoi
nun mal kurz ich und meine Familie sind zu 3 in Internet unterwegs nun verbraucht einer zuviel und die andern beiden leiden drunter
nun such ich ein Programm was bei dem einen die Kapazität kürz so das er z.b nur noch 200KB benutzen kann und die andern beiden vollen zugriff drauf haben
Router FRITZ!Box Fon WLAN 7050
der besagte Pc läuft unter XP
|
Cooldown kürzen?
07/15/2010 - 4Story - 20 Replies
Leute ich will mit bogenschütze pvp eqi uppen , aber man muss ja immer 90sek warten kann man das irgendwie verringern? hilfe wäre nett
|
signaturen bitte kürzen!
04/16/2006 - Main - 0 Replies
moin, muss sagen manche signaturen sind wirklich einfach zu lang bzw haben zuviele bilder! Ich habs echt leid mir in jeder 10. sig 20 bilder angucken zu müssen die über die halbe seite gehen. könntet ihr nich einfach max 300x100 oder so an bildern machen und dann nur 1 in der sig? wären n1.
|
All times are GMT +2. The time now is 18:53.
|
|