AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
数学とCAD −Delphi6
それでは、まず、Borland Delphi6日本語版が標準で持っている演算機能について、まとめておきましょう。
まずは、演算子と優先順位から。


 




 

括弧()で囲まれた式(12+34)*56 (12+34)が先に計算
関数sqrt(12.34)*56 sqrt(12.34)→×56
 - マイナス符号-12.3 -4 等
 * 掛け算
 / 実数の割り算
div 整数の割り算
mod 整数の割り算の余り
12*34 : 12×34 結果は408
12/34 : 12÷34 結果は0.3529…
100 div 3:100÷3=33余り1 結果は33
100 mod 3:100÷3=33余り1 結果は1
 + 足し算
 - 引き算
12+34 結果は46
56-78 結果は-22
まず注意しないといけないのは、ゼロで割り算(/,div,mod)をしてはいけないという事。もしこれを行うと「ゼロで除算」エラーが発生します。
数学では、ゼロで割った値というのは∞値になりますが、コンピュータでは、特殊な手法を行わない限り、∞値を扱う事はできません。
TEST001
 <ソースDownLoad>

例えば、Edit1に「100」、Edit2に「0」を入れて[=]をクリックすると、デバッグ環境では以下のようなエラーメッセージが出ます。

Windows上で普通に実行している時には、以下のようなエラーメッセージが出ます。

計算プログラムを作っている場合、予期しないタイミングでエラーメッセージが出たりしないための処置を、ちゃんと行っておくのが賢明です。
例えばこの場合、ゼロで割り算させないために、
if b <> 0 then
  c := a div b
else
  c := 0.0;
のように
 1.別の値(代替値)を使う
 2.別の式を使う
 3.自分でエラーメッセージを出すようにする
等のような対処方法がありますので、便宜に応じて使い分けてください。
 
さて、次に、Delphi6日本語版で使える数学関数について、見ておきましょう。
<計算ルーチン>
Abs 絶対値
|x|
Abs(-2.3) → 2.3
Abs(-157) → 157
Ceil切り上げ Ceil(-2.8) → -2
Ceil(2.8)  → 3
Ceil(-1.0) → -1
CompareValue大小関係2つの数値の大小関係を返す
DivMod除算剰余整数の除算・剰余の結果を一緒に返す
EnsureRange近い値指定された範囲内の値に最も近い値を返す
ExpeのX乗 Exp(10):e^10 → 2.718…^10
 → 22026.4657948067
Floor切り下げ Floor(-2.8) → -3
Floor(2.8)  →  2
Floor(-1.0) → -1
Frac 実数の
小数部
Frac(123.456)  → 0.456
Frac(-123.456) → -0.456
Frexp 引数値を仮数と指数に分離
InRange 引数値が指定された範囲にあるかどうかを示す
Int 実数の
整数部
Int(123.456)  → 123.0
Int(-123.456) → -123.0
IntPowerべき乗IntPower(Base,Exponent) Baseの,Exponentで指定した累乗を計算
Ldexpべき乗X*2^P(2をp乗した値をXに掛けた)値を計算
Ln自然対数実数式の自然対数(Ln(e)=1)を返す
LnXP1自然対数LnXP1関数は(X+1)の自然対数を返す
Log10対数Log10関数は,10を底とする対数を計算する
Log2対数Log2関数は,2を底とする対数を計算する
LogN対数LogN関数は,指定した底でXの対数を計算する
Max最大値Max関数は,2つの数値のうち大きい方の値を返す
Min最小値Min関数は,2つの数値のうち小さい方の値を返す
Pi 円周率
π
Pi=3.1415926535897932385
Poly Poly関数は変数多項式の値を計算
Powerべき乗Power関数は任意の数の任意の数による累乗を生成 Power(3,5):3^5
Round丸め Round関数は,実数Xを丸めて最も近い整数にした値を返す
(0.5は0、 1.5は2になる)
RoundTo丸め RoundTo関数は,「Banker's Rounding」を使って浮動小数点値を指定された桁数(10の累乗)に丸める
RoundTo(1234567, 3)→ 1234000
RoundTo(1.234, -2) → 1.23
RoundTo(1.235, -2) → 1.24
RoundTo(1.245, -2) → 1.24
SameValue比較SameValue関数は,2つの浮動小数点値が(およそ)等しいかどうかを示す
Sign符号 Sign(0)  → 0
Sign(100) → 1
Sign(-35) → -1
SimpleRoundTo丸め SimpleRoundTo関数は,非対称丸めを使って浮動小数点値を指定された桁数(10の累乗)に丸める
SimpleRoundTo(1234567, 3)→1234000
SimpleRoundTo(1.234, -2) →1.23
SimpleRoundTo(1.235, -2) →1.24
SimpleRoundTo(-1.235, -2)→-1.23
Sqr2乗Sqr(10):10^2 → 100
Sqrt平方根Sqrt(10):√10 → 3.16227…
Trunc切り捨て Trunc関数は,実数を切り捨てて整数にする
Trunc( 1.5) → 1
Trunc(-1.5) → -1
<三角関数ルーチン>
ArcCos指定された数値のアークコサイン(逆余弦)を計算
ArcCosh指定された数値のハイパボリックアークコサインを計算
ArcCot指定された数値のアークコタンジェントを計算
ArcCotH指定された数値のハイパボリックアークコタンジェントを計算
ArcCsc指定された数値のアークコセカントを計算
ArcCscH指定された数値のハイパボリックアークコセカントを計算
ArcSec指定された数値のアークセカントを計算
ArcSecH指定された数値のハイパボリックアークセカントを計算
ArcSin指定された数値のアークサインを計算
ArcSinh指定された数値のハイパボリックアークサインを計算
ArcTan指定された数値のアークタンジェント(逆正接)を計算
ArcTan2指定された数値のアークタンジェント (逆正接) の角度および象限を計算
ArcTanh指定された数値のハイパボリックアークタンジェントを計算
Cos角度のコサイン (余弦) を計算
Cosecant角度のコセカントを返す
Cosh角度のハイパボリックコサインを計算
Cot角度のコタンジェントを計算
Cotan角度のコタンジェントを返す
CotH角度のハイパボリックコタンジェントを計算
Csc角度のコセカントを返す
CscH角度のハイパボリックコセカントを返す
Hypot直角三角形の斜辺の長さを計算
Sec角度のセカントを計算
Secant角度のセカントを計算
SecH角度のハイパボリックセカントを計算
Sinラジアン単位の角のサイン(正弦)を返す
SinCos角のサイン(正弦)とコサイン(余弦)を返す
Sinh角のハイパボリックサイン(双曲線正弦)を返す
TanXのタンジェント(正接)を返す
TanhXのハイパボリックタンジェント(双曲線正接)を返す
参考:Borland Delphi6ヘルプ
 
※関数によって、入れてはいけない引数の値がありますので注意して下さい。
 
いろんな関数が提供されていますが(上記以外にも様々な関数があります)、必要なものだけを利用すれば良いし、必要としている機能を満たしていない関数は利用せずに代替手法を考える等、どのようなプログラミングをするかは、全て、貴方次第です。
 
CAD装置(1)
CAD装置(2)
メディア
AutoCADの
DIESELマクロ
CSV
DXF
PCES
IGES
STEP
数学とCAD
 ▲PREV
 ▼NEXT
CAD作ろ!
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015 By AFsoft All Rights Reserved.