b. アンペアの法則
1.プロジェクトElectMagのビジュアル・ビルダーを起動する。
2.「パーツ」->「新規作成」をクリックする。
アンペアの法則は電磁気学に含まれるので、ElectMag.vbbのVBBファイルに
これから作成するパーツAmpereを格納する。
3.パーツの作成
非ビジュアル・パーツ |
|
Ampereパーツの機能設定 |
|
クラス名 |
Ampere |
説明 |
アンペアの法則を用いた計算 |
ファイル名 |
ElectMag(電磁気学、electromagnetism) |
パーツ・タイプ |
非ビジュアル・パーツ |
基底クラス |
IStandardNotifier |
.hpvファイル |
"Ampere.hpv" |
.cpvファイル |
"Ampere.cpv" |
インクルード・ファイル |
なし |
Coulombパーツ | |||
属性 |
タイプ |
コメント |
優先 |
current |
double |
電流 |
O |
magneticField |
double |
磁界 |
O |
distance |
double |
距離 |
O |
アクション |
タイプ |
パラメータ |
|
calc |
int |
int n |
O |
4.「ファイル」->「保管および生成」->「フィーチャー・ソース」をクリックし、
Ampere.cpvとAmpere.hpvを自動作成する。
5.calc(int n) を修正する。
int Ampere::calc(int n)
{
double pi=3.1415627;
switch (n)
{
case 1:
setCurrent( 2.0*pi*iDistance*iMagneticField );
break;
case 2:
if( iDistance==0.0 ) // 例外処理
{
IString errorText = IString( "距離がゼロです" );
IException exc( errorText, 0, IException::unrecoverable );
ITHROW( exc );
}
setMagneticField( iCurrent/2.0/pi/iDistance );
break;
case 3:
if( iMagneticField==0.0 ) // 例外処理
{
IString errorText = IString( "磁界がゼロです" );
IException exc( errorText, 0, IException::unrecoverable );
ITHROW( exc );
}
setDistance( iCurrent/2.0/pi/iMagneticField );
break;
}
return 0; // 計算に成功すると0を戻す。
}
6.あとでパーツCoulombを使えるように、覚え書きをCoulomb.html
またはCoulomb.txtに書いておく。
パーツ Ampereの説明
アンペアの法則
current=2.0*pi*distance*magneticField
変数
電流:current [A]
磁界:magneticField [A/m]
距離:distance [m]
定数
円周率:pi=3.1415927
三つの変数のうち、二つを与え、残りの一つが求められる。
Coulombパーツ | |||
属性 |
タイプ |
コメント |
優先 |
current |
double |
電流 |
O |
magneticField |
double |
磁界 |
O |
distance |
double |
距離 |
O |
アクション |
タイプ |
パラメータ |
|
calc |
int |
int n |
O |
calc(int n)について
n=1の場合、currentが求められる。
n=2の場合、magneticFieldが求められる。
n=3の場合、distanceが求められる。
n=1の場合、分母がゼロになるとき、例外処理を行う。
計算に成功すると0を戻す。
例外処理のメッセージが含まれている。
必要なファイル |
||
ElectMag.vbb |
Ampere.cpv |
Ampere.hpv |