restructure and add ipi texs

This commit is contained in:
2019-11-06 18:24:04 +01:00
parent e21da561fc
commit 8fd8d2a485
155 changed files with 129 additions and 0 deletions
@@ -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;
}