restructure and add ipi texs
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
#include "fcpp.hh"
|
||||
|
||||
struct Rational {
|
||||
int zaehler;
|
||||
int nenner;
|
||||
} ;
|
||||
|
||||
// Abstraktion: Konstruktor und Selektoren
|
||||
|
||||
Rational erzeuge_rat (int z, int n)
|
||||
{
|
||||
Rational t;
|
||||
t.zaehler = z;
|
||||
t.nenner = n;
|
||||
return t;
|
||||
}
|
||||
|
||||
int zaehler (Rational q)
|
||||
{
|
||||
return q.zaehler;
|
||||
}
|
||||
|
||||
int nenner (Rational q)
|
||||
{
|
||||
return q.nenner;
|
||||
}
|
||||
|
||||
// Arithmetische Operationen
|
||||
|
||||
Rational add_rat (Rational p, Rational q)
|
||||
{
|
||||
return erzeuge_rat(
|
||||
zaehler(p)*nenner(q)+zaehler(q)*nenner(p),
|
||||
nenner(p)*nenner(q));
|
||||
}
|
||||
|
||||
Rational sub_rat (Rational p, Rational q)
|
||||
{
|
||||
return erzeuge_rat(
|
||||
zaehler(p)*nenner(q)-zaehler(q)*nenner(p),
|
||||
nenner(p)*nenner(q));
|
||||
}
|
||||
|
||||
Rational mul_rat (Rational p, Rational q)
|
||||
{
|
||||
return erzeuge_rat(zaehler(p)*zaehler(q),
|
||||
nenner(p)*nenner(q));
|
||||
}
|
||||
|
||||
Rational div_rat (Rational p, Rational q)
|
||||
{
|
||||
return erzeuge_rat(zaehler(p)*nenner(q),
|
||||
nenner(p)*zaehler(q));
|
||||
}
|
||||
|
||||
void drucke_rat (Rational p)
|
||||
{
|
||||
print(zaehler(p),"/",nenner(p),0);
|
||||
}
|
||||
|
||||
int main ()
|
||||
{
|
||||
Rational p = erzeuge_rat(3,4);
|
||||
Rational q = erzeuge_rat(5,3);
|
||||
drucke_rat(p); drucke_rat(q);
|
||||
|
||||
// p*q+p-p*p
|
||||
Rational r = sub_rat(add_rat(mul_rat(p,q), p),
|
||||
mul_rat(p,p));
|
||||
drucke_rat(r);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user