/*************************************************************/
/* File:     vb-func1.c
/* Status:   14-mrt-2002, pfk.
/* Functie:  Verschil tussen void en niet-void functie.
/*************************************************************/

#include <stdio.h>

/*-----------------------------------------------------------*/
/* Functie van type "void" geeft resultaat via parameter 
/* "uitkomst" terug.
/* Het adres van "uitkomst" wordt hierbij gebruikt, of, 
/* anders gezegd, "uitkomst" wordt als pointer doorgegeven.
/*-----------------------------------------------------------*/
void kwadrateer (int grondtal, int *uitkomst)
{
  *uitkomst = grondtal * grondtal;
}

/*-----------------------------------------------------------*/
/* Functie van type "int" geeft resultaat als functiewaarde 
/* terug.
/*-----------------------------------------------------------*/
int kwadraatberekenen (int grondtal)
{
  return (grondtal * grondtal);
}

/*************************************************************/
/* Hoofdprogramma.
/*************************************************************/
int main ()
{
  int basis, kwadraat, kwadraatkwadraat;

  printf ("\nGeef geheel grondtal om kwadraat te berekenen: ");
  scanf  ("%d", &basis);

  kwadrateer (basis, &kwadraat);
  printf ("\nKwadraat van %d is %d.\n", basis, kwadraat);

  kwadraatkwadraat = kwadraatberekenen (kwadraat);
  printf ("\nKwadraat van %d is %d.\n",
          kwadraat, kwadraatkwadraat);

  kwadraat = kwadraatberekenen (basis);
  printf ("\nKwadraat van %d is %d.\n\n", basis, kwadraat);

  return (0);
}
