//Programm: AlessandroLechmann.C
//Autor: Alessandro Lechmann (Gruppe H)
//Informatik - Serie 12 (11) - Challenge-Aufgabe 107
//Dieses "Rekursionsprogramm" fürht folgende Ersetzungen durch:
// 1. F --> F - + - F
// 2. + --> - F + F -
// Als Ergebnis erhält man Dreiecke, die zuerst aus einer Gerade,
// später dann aus den neuen Dreiecksseiten wachsen.
#include
#include
void g (unsigned int i);
void f (unsigned int i)
{
if (i == 0)
{
ifm::forward(); // F
}
else
{
f(i-1); // F_(i-1)
ifm::right(80); // -
g(i-1); // +
ifm::right(80); // -
f(i-1); // F_(i-1)
}
}
void g (unsigned int i)
{
if (i > 0)
{
ifm::right(80); // -
f(i-1); // F_(i-1)
g(i-1); // +
f(i-1); // F_(i-1)
ifm::right(80); // -
}
}
int main ()
{
std::cout << "Number of iterations =? ";
unsigned int n;
std::cin >> n;
// zeichnen
f(n);
return 0;
}