サンプル投稿用掲示板 VB2005 〜 用トップページ VB6.0 用 トップページ
- 日時: 2010/01/07 15:00
- 名前: 花ちゃん
- ***********************************************************************************
* カテゴリー:[アルゴリズム][応用コード][] * * キーワード:関数,複素数型,虚数単位,2乗して負になる数,, * ***********************************************************************************
元質問:虚数iの演算 - たくたく 2004/12/25-21:05 No.1376
虚数iをVBで演算させたいんですけど、虚数iはVBにどのように入力すれば良いのですか? たぶん関数があるんでしょうけど、教えてください。
---------------------------------------------------------------------------------- Re: 虚数iの演算 - ねろ 2004/12/27-22:30 No.1388 ----------------------------------------------------------------------------------
割り算が面倒なのよね Private Type CompNo Realp As Single '実数部 Imagep As Single '虚数部 End Type Private Function Plus(a As CompNo, b As CompNo) As CompNo '足し算 Plus.Realp = a.Realp + b.Realp Plus.Imagep = a.Imagep + b.Imagep End Function Private Function Minus(a As CompNo, b As CompNo) As CompNo '引き算 Minus.Realp = a.Realp - b.Realp Minus.Imagep = a.Imagep - b.Imagep End Function Private Function Times(a As CompNo, b As CompNo) As CompNo '掛け算 Times.Realp = a.Realp * b.Realp - a.Imagep * b.Imagep Times.Imagep = a.Realp * b.Imagep + a.Imagep * b.Realp End Function
Private Function Divide(a As CompNo, b As CompNo) As CompNo '割り算 Dim b1 As CompNo '共訳複素数 Dim denomi As CompNo '分母 Dim nume As CompNo '分子
'共訳複素数 b1.Realp = b.Realp b1.Imagep = b.Imagep * (-1) denomi = Times(b, b1) '分母の計算 共訳複素数をかける nume = Times(a, b1) '分子の計算 共訳複素数をかける If denomi.Realp <> 0 Then '分母<>0の場合 Divide.Realp = nume.Realp / denomi.Realp Divide.Imagep = nume.Imagep / denomi.Realp Else Divide.Realp = 0 Divide.Imagep = 0 MsgBox ("分母が0になりました") End If End Function
'表示は参考につき大幅に省略 (^^; Private Sub Command1_Click() Dim a As CompNo, b As CompNo, c As CompNo a.Realp = Text1(0).Text a.Imagep = Text1(1).Text b.Realp = Text1(2).Text b.Imagep = Text1(3).Text c = Plus(a, b) '足し算 'c = Minus(a, b) '引き算 'c = Times(a, b) '掛け算 'c = Divide(a, b) '割り算 Text1(4).Text = c.Realp Text1(5).Text = c.Imagep End Sub
-------------------------------------------------- Re: 虚数iの演算 - LESIA 2004/12/27-18:06 No.1383 -------------------------------------------------- 複素数のクラスなら、こういうのがあります。
VB6用 http://www.vb-helper.com/howto_complex_number_class.html VB.NET用 http://www.vb-helper.com/howto_net_complex_number_class.html
|