
SetCoinsPerUnits()
******************


FUNKTION
========

   void SetCoinsPerUnits(int coins, int units);


DEFINIERT IN
============

   /std/unit.c


ARGUMENTE
=========

   coins
        Zahl der Muenzen
   units
        Zahl der Einheiten


BESCHREIBUNG
============

   Es wird festgelegt, wieviel eine bestimmte Menge der Einheiten kostet.
   Eine einzelne Einheit kostet coins/units Muenzen.


RUeCKGABEWERT
=============

   keiner


BEMERKUNGEN
===========

   Bei der Preisberechnung wird abgerundet. Hat man also ein Verhaeltnis
   von einer Muenze pro zwei Einheiten, so ist der Preis einer einzelnen
   Einheit 0!


BEISPIELE
=========

   Eine Einheit soll 3.5 Muenzen wert sein:

   /* 7 Muenzen / 2 Einheiten = 3.5 Muenzen / Einheit */
   SetCoinsPerUnits(7,2);


SIEHE AUCH
==========

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

Last modified: Wed May 8 10:24:57 1996 by Wargon
