tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル計算結果を表示
記事No11334
投稿日: 2008/02/05(Tue) 18:17
投稿者mae
Text に計算結果を出したいのですが、うまくいきません。
どこがいけないのでしょうか??

Private Sub Form_Click()
Dim i As Single
Dim q1 As Single
Dim q As Single

Do While i <= 1000
q1 = q + 1
Text1.Text = "q1"
q1 = q

i = i + 1
Loop
End Sub


この場合だったら、Text1に1000と出てほしいのですが、
結果はq1とでます。
教えてください・・・

[ツリー表示へ]
タイトルRe: 計算結果を表示
記事No11335
投稿日: 2008/02/05(Tue) 18:21
投稿者花ちゃん
> Private Sub Form_Click()
> Dim i As Single
> Dim q1 As Single
> Dim q As Single
>
> Do While i <= 1000
> q1 = q + 1
この場合、q1 はいくつになっていますか?

> Text1.Text = "q1"

q1 は文字列ですか?  変数ですか?

> q1 = q

ここで、q1 はいくつになりますか?

>
> i = i + 1
> Loop
> End Sub

F8 キーを押して1行づつ実行して、計算の結果がどうなるか確認して見て下さい。

一度下記を試して見て下さい。
Private Sub Command1_Click()
   Dim Total As Integer
   Dim i     As Long
   For i = 1 To 10
      Total = Total + i
      Debug.Print Total
   Next i
End Sub

[ツリー表示へ]
タイトルRe^2: 計算結果を表示
記事No11338
投稿日: 2008/02/05(Tue) 20:10
投稿者mae
花ちゃんさん返信ありがとうございます!!
いま色々試しているところなんですが、
まだできてません・・・
もう少しやってみます。
最終的には、点をランダムに動かして、
どこのエリアにたくさんいたか、統計を取るのが
目標なんですが、上のプログラムができればできそうですよね!!

[ツリー表示へ]
タイトルRe^3: 計算結果を表示
記事No11340
投稿日: 2008/02/06(Wed) 01:12
投稿者しんご
maeさんが最初に書かれたプログラムについて。
1001回ループさせていますが

1."q1"という文字列を1001回テキストボックスに書き込んでいること
2.「q」は常に「0」であること
3.「q1」は常に「0」か「1」のどちらかであること

上記3つは理解できていますか?

> 最終的には、点をランダムに動かして、
> どこのエリアにたくさんいたか、統計を取るのが目標なんですが、

とありますが、

1.rnd関数
2.エリアが2次元とすれば2次元配列でカウント

は理解できますか?たとえば5×5のエリアだとした場合

Dim Count(1 to 5,1 to 5) as Long

などと定義する。rnd関数を2つ用意して1〜5をランダムに出力させる。
2つの1〜5を2次元配列に組み込んで、該当する配列に1を加える。

あとは1000回なり1万回なり10万回なりループさせてみて
結果を見てみる。もちろん収束するはずですが・・・

[ツリー表示へ]
タイトルRe^4: 計算結果を表示
記事No11367
投稿日: 2008/02/08(Fri) 23:11
投稿者mae
しんごさん!!
お礼の返事が遅れてしまってすみません。
ようやく理解できました!
難しいとこはあったんですが、理想だったものができました。
本当にありがとうございました。

[ツリー表示へ]