/* Loesung der Aufgabe 1-15 (1-13 in der 3. Auflage) */
/* Eine Tabell mit Funktionswerten erstellen         */

#include <stdio.h>
#include <math.h>

int main(void)
{
  double xmin, xmax, dx, x;
  double y;
  int i = 0;   /* um die Ausgabezeilen mitzuzaehlen */
  printf("Funktionsberechnung y = f(x) = sin(2x)\n");

  printf("Anfangswert xmin: ");
  scanf("%lf", &xmin);
  printf("Schrittweite  dx: ");
  scanf("%lf", &dx);
  printf("Endwert     xmax: ");
  scanf("%lf%*c", &xmax);
  /* %*c ueberliest das Zeilenendezeichen (Eingabetaste)
     sonst wuerde das Programm nach den ersten 20 Zeilen
     nicht anhalten
  */

  printf("%s%s",
    "Die Ausgabe haelt nach 20 Funktionswerten an\n",
    "und das Programm wartet auf die Eingabetaste\n\n");

  printf("   x \t   f(x)\n");

  for (x = xmin; x <= xmax; x = x + dx) {
    y = sin(2*x);
    printf("%6.2f\t %6.2f\n", x, y);
    i++;
    /* nach jeweils zwanzig Zeilen anhalten,
       i % 20, der Rest der Division, ist fuer jedes Vielfache von 20 Null */
    if(i % 20 == 0) getchar();
  }

  return 0;
}