:Revision=3
:html
<<
128.130
Math-Objekt|Math
--
Das IP-Objekt Math stellt trigonometrische und andere mathematische Funktionen bereit.
>>
<<
128.130.1
Funktionen des Math-Objekts|Funktionen
--
>>
<<
128.130.1.1
Math.Sin|Sin
--
<!DEF>
function <!TW>Math.Sin (rOP1 : real) : real;
<!TXT>
Berechnet den Sinus von <!PW>rOP1.

 <!PW>rOP1 wird im Bogenma angegeben.
>>
<<
128.130.1.2
Math.Cos|Cos
--
<!DEF>
function <!TW>Math.Cos (rOP1 : real) : real;
<!TXT>
Berechnet den Cosinus von <!PW>rOP1.

 <!PW>rOP1 wird im Bogenma angegeben.
>>
<<
128.130.1.3
Math.Tan|Tan
--
<!DEF>
function <!TW>Math.Tan (rOP1 : real) : real;
<!TXT>
Berechnet den Tangens von <!PW>rOP1.

 <!PW>rOP1 wird im Bogenma angegeben.

<!CODE>
Result := Sin(rOP1) / Cos(rOP1)
<!TXT>
>>
<<
128.130.1.4
Math.CoTan|CoTan
--
<!DEF>
function <!TW>Math.CoTan (rOP1 : real) : real;
<!TXT>
Berechnet den Cotangens von <!PW>rOP1.

 <!PW>rOP1 wird im Bogenma angegeben.

<!CODE>
Result := 1 / Tan(rOP1)
<!TXT>
>>
<<
128.130.1.5
Math.ArcSin|ArcSin
--
<!DEF>
function <!TW>Math.ArcSin (rOP1 : real) : real;
<!TXT>
Berechnet den inversen Sinus von <!PW>rOP1.

<!STBL>
<tr bgcolor=f0f0f0><td>Wertebereich<!>
<!c><!SW>-1 &lt;= <!PW>rOP1 &lt; 1<!>
<!ETBL>

Der Rckgabewert wird im Bogenma angegeben und liegt im Bereich <b>[-Pi/2..Pi/2]</b>.
>>
<<
128.130.1.6
Math.ArcCos|ArcCos
--
<!DEF>
function <!TW>Math.ArcCos (rOP1 : real) : real;
<!TXT>
Berechnet den inversen Cosinus von <!PW>rOP1.

<!STBL>
<tr><td bgcolor=f0f0f0>Wertebereich<!>
<!c>-1 &lt;= <!PW>rOP1 &&lt; 1<!>
<!ETBL>

Der Rckgabewert wird im Bogenma angegeben und liegt im Bereich <b>[0..Pi]</b>.
>>
<<
128.130.1.7
Math.ArcTan|ArcTan
--
<!DEF>
function <!TW>Math.ArcTan (rOP1 : real) : real;
<!TXT>
Berechnet den Arcustangens von <!PW>rOP1.

Der Rckgabewert wird im Bogenma angegeben.
>>
<<
128.130.1.8
Math.Log10|Log10
--
<!DEF>
function <!TW>Math.Log10 (rOP1 : real) : real;
<!TXT>
Berechnet den dekadischen Logarithmus von <!PW>rOP1.

<!STBL>
<tr><td bgcolor=f0f0f0>Wertebereich<!>
<!c><!PW>rOP1 &gt; 0<!>
<!ETBL>
>>
<<
128.130.1.9
Math.Log2|Log2
--
<!DEF>
function <!TW>Math.Log2 (rOP1 : real) : real;
<!TXT>
Berechnet den Logarithmus zur Basis 2 von <!PW>rOP1.

<!STBL>
<tr><td bgcolor=f0f0f0>Wertebereich<!>
<!c><!PW>rOP1 &gt; 0<!>
<!ETBL>
>>
<<
128.130.1.10
Math.Log|Log
--
<!DEF>
function <!TW>Math.Log (rOP1 : real) : real;
<!TXT>
Berechnet den natrlichen Logarithmus (zur Basis e) von <!PW>rOP1.

<!STBL>
<tr><td bgcolor=f0f0f0>Wertebereich<!>
<!c><!PW>rOP1 &gt; 0<!>
<!ETBL>

<!DEF>
function <!TW>Math.Log (rOP1, rBasis : real) : real;
<!TXT>
Berechnet den Logarithmus zur Basis <!PW>rBasis von <!PW>rOP1.

<!STBL>
<tr><td bgcolor=f0f0f0>Wertebereich<!>
<!c><!PW>rOP1 &gt; 0<!>
<!c><!PW>rBasis &gt; 0<!>
<!ETBL>
>>
<<
128.130.1.11
Math.Sqr|Sqr
--
<!DEF>
function <!TW>Math.Sqr (rOP1 : real) : real;
<!TXT>
Berechnet das Quadrat von <!PW>rOP1.
>>
<<
128.130.1.12
Math.Power|Power
--
<!DEF>
function <!TW>Math.Power (rBasis, rExponent : real) : real;
<!TXT>
Erhebt rBasis in die <!PW>rExponent-te Potenz

<!CODE>
Result := rBasis<sup>rExponent</sup>
<!TXT>
>>
<<
128.130.1.13
Math.Sqrt|Sqrt
--
<!DEF>
function <!TW>Math.Sqrt (rOP1 : real) : real;
<!TXT>
Berechnet die Quadratwurzel von <!PW>rOP1.

<!STBL>
<tr><td bgcolor=f0f0f0>Wertebereich<!>
<!c><!PW>rOP1 &gt;= 0<!>
<!ETBL>
>>
<<
128.130.1.14
Math.Root|Root
--
<!DEF>
function <!TW>Math.Root (rOP1, rBasis : real) : real;
<!TXT>
Berechnet die <!PW>rBasis-te Wurzel von <!PW>rOP1.

<!CODE>
Result := rOP1<sup>1/rBasis</sup>
<!TXT>
>>
<<
128.130.1.15
Math.BcdToDecimal|BcdToDecimal
--
<!DEF>
function <!TW>Math.BcdToDecimal (rOP1 : real) : real;
<!TXT>
Betrachtet <!PW>rOP1 als BCD-Wert und berechnet die dezimale Entsprechung.

Das Ergebnis liegt im Bereich <b>[0..99]</b>

<!STBL>
<tr><td bgcolor=f0f0f0>Wertebereich<!>
<!c>0 &lt;= <!PW>rOP1 &lt;= 153  bzw.<br>
        $00 &lt;= <!PW>rOP1 &lt;= $99<!>
<!ETBL>
>>
<<
128.130.1.16
Math.DecimalToBcd|DecimalToBcd
--
<!DEF>
function <!TW>Math.DecimalToBcd (rOP1 : real) : real;
<!TXT>
Wandelt <!PW>rOP1 von einer Dezimalzahl in einen BCD-Wert.

Das Ergebnis liegt im Bereich <b>[0..153]</b> bzw., <b>[$00 .. $99]</b>

<!STBL>
<tr><td bgcolor=f0f0f0>Wertebereich<!>
<!c>0 &lt;= <!PW>rOP1 &lt;= 99<!>
<!ETBL>
>>
<<
128.130.1.17
Math.DegToRad|DegToRad
--
<!DEF>
function <!TW>Math.DegToRad (rOP1 : real) : real;
<!TXT>
Konvertiert einen Winkel von Grad in das Bogenma.

<!CODE>
Result := rOP1 * Pi / 180
<!TXT>
>>
<<
128.130.1.18
Math.RadToDeg|RadToDeg
--
<!DEF>
function <!TW>Math.RadToDeg (rOP1 : real) : real;
<!TXT>
Konvertiert den angegebenen Winkel <!PW>rOP1 vom Bogenma (Rad) in das Gradma.

<!CODE>
Result := rOP1 / Pi * 180
<!TXT>
>>
<<
128.130.1.19
Math.Min|Min
--
<!DEF>
function <!TW>Math.Min (rOP1, rOP2 : real) : real;
<!TXT>
Vergleicht die zwei Werte und gibt den kleineren Wert zurck.
>>
<<
128.130.1.20
Math.Max|Max
--
<!DEF>
function <!TW>Math.Max (rOP1, rOP2 : real) : real;
<!TXT>
Vergleicht die zwei Werte und gibt den greren Wert zurck.
>>
<<
128.130.1.21
Math.MaxValue|MaxValue
--
<!DEF>
function <!TW>Math.MaxValue (vVector : vector) : real;
<!TXT>
Gibt den grten Wert im Vektor zurck.
>>
<<
128.130.1.22
Math.MinValue|MinValue
--
<!DEF>
function <!TW>Math.MinValue (vVector : vector) : real;
<!TXT>
Gibt den kleinsten Wert im Vektor zurck.
>>
<<
128.130.1.23
Math.Random|Random
--
<!DEF>
function <!TW>Math.Random;
<!TXT>
Liefert einen Zufallswert im Bereich <b>[0 .. 1[</b>.

<!DEF>
function <!TW>Math.Random (rRange : real) : real;
<!TXT>
Liefert einen Integer-Zufallswert im Bereich <b>[0 .. rRange[</b>.
>>

<<
128.130.1.24
Math.FloatToBin|FloatToBin
!128.130.1.25
--
<!DEF>
function <!TW>Math.FloatToBin (rFloatType, rValue : real [; rRevert : real]) : vector;
<!TXT>
Liefert die Prozessor-interne binre Darstellung des Wertes <!PW>rValue - also die Bytes, durch die der Wert <!PW>rValue im Computer abgebildet wird.

 <!PW>rFloatType whlt den Datentyp aus, der fr die Konvertierung benutzt wird:
<!STBL>
<tr bgcolor=f0f0f0 align=center><td><b>rFloatType</b><!><b>Name</b><!><b>Gre</b><!>
<!c>1<!>Real48<sup>*</sup><!r>6 Byte<!>
<!c>2<!>Single<!r>4 Byte<!>
<!c>3<!>Double<!r>8 Byte<!>
<!c>4<!>Extended<!r>10 Byte<!>
<!c>5<!>Comp<sup>**</sup><!r>8 Byte<!>
<!c>6<!>Byte<sup>**</sup><!r>1 Byte<!>
<!c>7<!>Word<sup>**</sup><!r>2 Byte<!>
<!c>8<!>DWord<sup>**</sup><!r>4 Byte<!>
<!c>9<!>PicFloat<sup>***</sup><!r>4 Byte<!>
<!ETBL>

<!REM>
 <sup>*</sup>Type 1 corresponds to the Borland Float-Typ "Real" in Pascal, resp. "Real48" in Delphi.
 <sup>**</sup>Diese Typen untersttzen keine Nachkommastellen.
 <sup>***</sup>Der Typ 9 ist die in den SerIO-Modulen verwendete Darstellung der Fliekommawerte.
<!TXT>

Ist <!PW>rRevert angegeben und <!RW>TRUE, so wird die sich bergebene Bytefolge als MSB first ausgewertet, ansonsten (Default) LSB first.
Typ 9 hat gegenber allen anderen Typen eine gegenlufige Anordnung der Bytes. Daher gilt hier: Ist <!PW>rRevert <!RW>TRUE, ergibt LSB first, ansonsten (Default) MSB first.
>>

<<
128.130.1.25
Math.BinToFloat|BinToFloat
!128.130.1.24
--
<!DEF>
function <!TW>Math.BinToFloat (rFloatType : real; vByteVect : vector [; rRevert : real]) : real;
<!TXT>
Betrachtet die Bytes im Vektor <!PW>vByteVect als binre Darstellung eines Real Wertes und liefert diesen Wert zurck. Der Bytevektor muss exakt so viele Bytes beinhalten, wie fr den durch <!PW>rFloatType gewhlten Typen ntig sind.

 <!PW>rFloatType whlt den Datentyp aus, der fr die Konvertierung benutzt wird:
<!STBL>
<tr bgcolor=f0f0f0 align=center><td><b>rFloatType</b><!><b>Name</b><!><b>Gre</b><!>
<!c>1<!>Real48<sup>*</sup><!r>6 Byte<!>
<!c>2<!>Single<!r>4 Byte<!>
<!c>3<!>Double<!r>8 Byte<!>
<!c>4<!>Extended<!r>10 Byte<!>
<!c>5<!>Comp<!r>8 Byte<!>
<!c>6<!>Byte<!r>1 Byte<!>
<!c>7<!>Word<!r>2 Byte<!>
<!c>8<!>DWord<!r>4 Byte<!>
<!c>9<!>PicFloat<sup>**</sup><!r>4 Byte<!>
<!ETBL>

<!REM>
 <sup>*</sup>Der Typ 1 entspricht dem Borland Float-Typ &quot;Real&quot; in Pascal, bzw. &quot;Real48&quot; in Delphi
 <sup>**</sup>Der Typ 9 ist die in den SerIO-Modulen verwendete Darstellung der Fliekommawerte.
<!TXT>

Ist <!PW>rRevert angegeben und <!RW>TRUE, so wird die sich bergebene Bytefolge als MSB first ausgewertet, ansonsten (Default) LSB first.
Typ 9 hat gegenber allen anderen Typen eine gegenlufige Anordnung der Bytes. Daher gilt hier: Ist <!PW>rRevert <!RW>TRUE, LSB first, ansonsten (Default) MSB first.
>>

<<
128.130.2
Prozeduren des Math-Objekts|Prozeduren
--
>>
<<
128.130.2.1
Math.Randomize|Randomize
--
<!DEF>
procedure <!TW>Math.Randomize;
<!TXT>
Setzt den Ausgangswert des Zufallszahlengenerators auf einen quasizuflligen Ausgangswert. Benutzt wird der High-Performance Counter des PCs (in etwa wie die Systemzeit, aber sehr viel feiner aufgelst).

Dieser Befehl kann einmal (und einmal reicht!) gesetzt werden, wenn die Zufallszahlen nicht nachvollziehbar sein sollen.

<!DEF>
procedure <!TW>Math.Randomize (rRandSeed : real);
<!TXT>
Setzt den Ausgangswert des Zufallszahlengenerators den Ausgangswert <!PW>rRandSeed.
Fr ein und denselben Wert fr <!PW>rRandSeed ist die im folgenden generierte Kette von Zufallszahlen immer identisch. Fr statistiche Analysen oder Tests von Algorithmen lassen sich so nachvollziehbare Folgen von Zufallszahlen schaffen.
>>
