[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2004/12/25(Sat) 21:05
投稿者名:たくたく
Eメール:
URL :
タイトル:
虚数iの演算
初めまして、たくたくと申します。
超初心者ですので簡単なことかもしれませんが教えてください。

虚数iをVBで演算させたいんですけど、虚数iはVBにどのように入力すれば良いのですか?
たぶん関数があるんでしょうけど、教えてください。

投稿時間:2004/12/25(Sat) 21:16
投稿者名:ガッ
Eメール:
URL :
タイトル:
Re: 虚数iの演算
> 初めまして、たくたくと申します。
> 超初心者ですので簡単なことかもしれませんが教えてください。
>
> 虚数iをVBで演算させたいんですけど、虚数iはVBにどのように入力すれば良いのですか?
> たぶん関数があるんでしょうけど、教えてください。
俺はそういうクラスを知らないから、虚数はクラスで実装したりしてたぞ。
…まぁ、知らないだけだったとおもうが。

投稿時間:2004/12/27(Mon) 17:09
投稿者名:カムリン
Eメール:kamurin@hotmail.com
URL :
タイトル:
Re: 虚数iの演算
質問です。
(ネットで調べてみたけど解らなかったので)
> 虚数iをVBで演算させたいんですけど、虚数iはVBにどのように入力すれば良いのですか?
虚数って何?
虚数iって何?
虚数iの演算って何?

投稿時間:2004/12/27(Mon) 18:30
投稿者名:じゃんぬねっと
Eメール:
URL :http://f57.aaa.livedoor.jp/~jeanne/
タイトル:
Re^2: 虚数iの演算
こんにちは、じゃんぬねっと です。

> 虚数って何?
虚数とは、2 乗して負になる数のことです。

> 虚数iって何?
虚数の中でも 2 乗して -1 になる数を虚数単位 i として表します。
ですから「虚数i」という表現方法は御幣があるような...
i は「虚数単位」ですからねぇ...

> 虚数iの演算って何?
これは「複素数」の演算の間違いじゃないかと思います。

# いずれにしても、ないから探すのではなく自分で実装するクセを身に付けた方がいいですね > 元質問者さま

投稿時間:2004/12/28(Tue) 12:48
投稿者名:カムリン
Eメール:
URL :
タイトル:
Re^3: 虚数iの演算
回答ありがとうございます

投稿時間:2004/12/27(Mon) 17:38
投稿者名:K.J.K.
Eメール:akiya@koalanet.ne.jp
URL :
タイトル:
Re: 虚数iの演算
# 全角・半角文字の使い分けは適切に。

> 虚数iをVBで演算させたいんですけど、虚数iはVBにどのように入力すれば
> 良いのですか? たぶん関数があるんでしょうけど、教えてください。

VB6以前、VB.NET 2003(以前)のどちらでも、複素数を扱うための
クラス・ライブラリは、標準では実装されていません。

速度を追求するのでないのならば、複素数型をdouble x 2 辺りを使って
定義して、それぞれの演算子や関数を、自分で「関数として」実装すれば
済みますよね。

投稿時間:2004/12/27(Mon) 18:06
投稿者名:LESIA
Eメール:
URL :
タイトル:
Re: 虚数iの演算
> 初めまして、たくたくと申します。
> 超初心者ですので簡単なことかもしれませんが教えてください。
>
> 虚数iをVBで演算させたいんですけど、虚数iはVBにどのように入力すれば良いのですか?
> たぶん関数があるんでしょうけど、教えてください。

複素数のクラスなら、こういうのがあります。

VB6用
hhttp://www.vb-helper.com/howto_complex_number_class.html
VB.NET用
hhttp://www.vb-helper.com/howto_net_complex_number_class.html

投稿時間:2004/12/27(Mon) 22:30
投稿者名:ねろ
Eメール:
URL :
タイトル:
Re: 虚数iの演算
> 初めまして、たくたくと申します。
> 超初心者ですので簡単なことかもしれませんが教えてください。
>
> 虚数iをVBで演算させたいんですけど、虚数iはVBにどのように入力すれば良いのですか?
> たぶん関数があるんでしょうけど、教えてください。
割り算が面倒なのよね
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