SetGramsPerUnits()
==================

FUNKTION
--------
::

     void SetGramsPerUnits(int grams, int units);

DEFINIERT IN
------------
::

     /std/unit.c

ARGUMENTE
---------
::

     grams
          Gewicht in Gramm
     units
          Zahl der Einheiten

BESCHREIBUNG
------------
::

     Es wird festgelegt, wieviel eine bestimmte Menge der Einheiten wiegt.
     Eine einzelne Einheit wiegt grams/units Gramm.

RUeCKGABEWERT
-------------
::

     keiner

BEISPIELE
---------
::

     Vier Einheiten sollen 3 Gramm wiegen:

     SetGramsPerUnits(3,4);

SIEHE AUCH
----------
::

     SetCoinsPerUnits(), QueryCoinsPerUnits(), QueryGramsPerUnits(),
     /std/unit.c


Last modified: Wed May 8 10:25:09 1996 by Wargon

