/* Rahmen für Aufgabe P-2-1 */

#include <???>              /* Header-Datei fuer die Ein-/Ausgabe */
#include <???>              /* Funktionen zur Stringbehandlung    */

/* Hier gut kommentieren! */
long fak_rec_bv(const long x) {
   ???
}

/* Hier gut kommentieren! */
long fak_it_bv(const long x) {
   ???
}

/* Hier gut kommentieren! */
long fak_it_br1(const long *x) {
   ???
}

/* Hier gut kommentieren! */
long fak_it_br2(long *x) {
   ???
}


/* Hier gut kommentieren! */
long fib_rec_bv(const long x) {
   ???
}

/* Hier gut kommentieren! */
long fib_it_bv(const long x) {
   ???
}

/* Hier gut kommentieren! */
long fib_it_br1(const long *x) {
   ???
}

/* Hier gut kommentieren! */
long fib_it_br2(long *x) {
   ???
}


int main(int argc, char* argv[]) {
   long zahl = 0;

   if (argc == ??? && strcmp(???, "fak") == 0) {
      sscanf(???, "%ld", ???); 
      printf("Vor dem Funktionsaufruf: zahl: %ld\n", zahl);

      printf("fak_rec_bv() ergibt %ld\n", fak_rec_bv(???));
      printf("Nach dem Funktionsaufruf: zahl: %ld\n", zahl);

      printf("fak_it_bv() ergibt %ld\n", fak_it_bv(???));
      printf("Nach dem Funktionsaufruf: zahl: %ld\n", zahl);
     
      printf("fak_it_br1() ergibt %ld\n", fak_it_br1(???));
      printf("Nach dem Funktionsaufruf: zahl: %ld\n", zahl);
     
      printf("fak_it_br2() ergibt %ld\n", fak_it_br2(???));
      printf("Nach dem Funktionsaufruf: zahl: %ld\n", zahl);
   }
   
   else if (argc == ??? && strcmp(???, "fib") == 0) {
      sscanf(???, "%ld", ???); 
      printf("Vor dem Funktionsaufruf: zahl: %ld\n", zahl);

      printf("fib_rec_bv() ergibt %ld\n", fib_rec_bv(???));
      printf("Nach dem Funktionsaufruf: zahl: %ld\n", zahl);

      printf("fib_it_bv() ergibt %ld\n", fib_it_bv(???));
      printf("Nach dem Funktionsaufruf: zahl: %ld\n", zahl);
     
      printf("fib_it_br1() ergibt %ld\n", fib_it_br1(???));
      printf("Nach dem Funktionsaufruf: zahl: %ld\n", zahl);
     
      printf("fib_it_br2() ergibt %ld\n", fib_it_br2(???));
      printf("Nach dem Funktionsaufruf: zahl: %ld\n", zahl);   
   }
   
   else {
      ???
   }
   return(0);
}
