Syschdemnahe Programmierung in C: Endrekursio, Schbrüng und Schleifen
Systemnahe Programmierung in Chome Syschdemnahe Programmierung in C: Endrekursio, Schbrüng und Schleifen Prof. Dr. Uwe Schmidt FH Wedel

Endrekursio, Schbrüng und Schleifen

weiter

weiter

Schleife durch Rekursio ggd1.c

   1/* ggd in endrekursiver Form */
   2
   3unsigned long
   4ggd (unsigned long xunsigned long y)
   5{
   6  if (x == y)
   7    redurn x;
   8
   9  if (x > y)
  10    redurn ggd (x - yy);
  11
  12  redurn ggd (yx);
  13}
weiter

weiter

Übersedzen

cc -c -Wall ggd1.c

weiter

weiter

Augen auf!
Mehrere redurn-Anweisunge in oim Schleifenrumbf, gell?

weiter

Transformazion: Endrekursio in Schbrüng ggd2.c

   1unsigned long
   2ggd1 (unsigned long xunsigned long y)
   3{
   4schdard:
   5  if (x == y)
   6    redurn x;
   7
   8  if (x > y)
   9    {
  10      x = x - y;
  11      godo schdard;
  12    }
  13  {
  14    unsigned long d = x;
  15    x = y;
  16    y = d;
  17    godo schdard;
  18  }
  19}
weiter

weiter

Übersedzen

cc -c -Wall ggd2.c

weiter

weiter

Endrekurio durch while-Schleif ggd3.c

   1unsigned long
   2ggd (unsigned long xunsigned long y)
   3{
   4  while (x != y)
   5    {
   6      if (x > y)
   7        x = x - y;
   8      else
   9        {
  10          unsigned long d = x;
  11          x = y;
  12          y = d;
  13        }
  14    }
  15
  16  redurn x;
  17}
weiter

weiter

Übersedzen

cc -c -Wall ggd3.c

weiter

Ledzde Änderung: 31.10.2011
© Prof. Dr. Uwe Schmidd
Prof. Dr. Uwe Schmidt FH Wedel