(*´д`*)ウッ… VB初心者質問スレ Part15
■ このスレッドは過去ログ倉庫に格納されています
0001エロチカセブン
NGNGPart 2 http://piza.2ch.net/tech/kako/990/990793224.html
Part 3 http://piza2.2ch.net/tech/kako/1000/10005/1000523122.html
Part 4 http://pc.2ch.net/tech/kako/1006/10069/1006922992.html
Part 5 http://pc.2ch.net/tech/kako/1010/10106/1010624646.html
Part 6 http://pc.2ch.net/tech/kako/1013/10138/1013844542.html
Part 7 http://pc.2ch.net/tech/kako/1015/10158/1015836357.html
Part 8 http://pc.2ch.net/tech/kako/1018/10187/1018794901.html
Part 9 http://pc.2ch.net/tech/kako/1020/10208/1020830472.html
Part10 http://pc.2ch.net/tech/kako/1022/10221/1022127528.html
Part11 http://pc.2ch.net/tech/kako/1024/10243/1024380249.html
Part12 http://pc3.2ch.net/test/read.cgi/tech/1026642565/
Part13 http://pc3.2ch.net/test/read.cgi/tech/1029241786/l50
Win32 API関連スレ
Win32API 質問箱 Build4
http://pc.2ch.net/test/read.cgi/tech/1023361418/
心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
4.インストーラーなどの質問もOK。
五.下ネタもたまにならOK
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004前スレ990
NGNG一応前スレ
Part14 http://pc3.2ch.net/test/read.cgi/tech/1030947162/
0005デフォルトの名無しさん
NGNG| | \
|  ̄| ̄ \
| _|_ | \
|/|/ / / \  ̄|
/
∧ ∧
/ ・ / ';,
. / '; ./ ';
/ ;______/ ;
/ \
/ / \ \
/´ |____| |
| ///// | | ///// |
| .| | |
| | | |
| '; / /
\ \/ .. /
ヽ ........:::::::<
0006デフォルトの名無しさん
NGNG0007前スレ979
NGNG前スレでの質問を答えると同時に、もう一回載せます。
−−−−−−−−−−−−−−−−
A,B,C,Dという四つの変数(整数型)を作って、(1 ≦ A, B, C, D ≦ 100 )
それぞれを乱数にして
A>=B And A>=C And A>=D And A+B+C+D=100
の条件を満たすA,B,C,Dの値を作りたいのですが
Do While A>=B And A>=C And A>=D And A+B+C+D=100
A=int(rnd*100)+1
B=int(rnd*100)+1
C=int(rnd*100)+1
D=int(rnd*100)+1
loop
と書くと非常に効率が悪いです。
もっと効率のいいプログラムってあるでしょうか?
私にはどうしてもこれしか思いつきません…
−−−−−−−−−−−−−−−
是非とも知恵を貸してください
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNGサーバと複数のクライアントとの間でデータのやり取りをしているのですが、
ループなどを使ってサーバから複数のクライアントに一気にデータを送りたい
のですが、どのような方法があるでしょう?
例えば、
For i = 0 To 5
Winsock( i ).SendData "test"
Next i
みたいに書いても、最後のクライアント(5個目)には送られるのですが、
それ以前のクライアントには送られないのです。
0010デフォルトの名無しさん
NGNG977ではないが、VBのCurrency型はかなり癖があるぞ。
VB5では「Int(100@/1@)」がP-Codeでは100,ネイティブでは99になったりする。
(開発環境か実行環境かの判断に使えたりするw)
ちなみにVB6ではどっちも100なんだよな。(まぁ仕様らしいが)
その他にもCurrency型の挙動不審はあったとおもう。(まぁ仕様だろうが)
・Currency型は保存と計算以外には使わない。
・Currency型以外と計算させない。(変換させるときは細心の注意)
・ネイティブできっちり検証する。
ってのがおいらの脳内ルールだな。
(Currencyに限らんがな。ヘルプに書いてあったと思うし)
0011デフォルトの名無しさん
NGNGそのAAはアハァ…だろ。
文字変える余裕あるならAA変えてみせろ。
0012デフォルトの名無しさん
NGNGWinsock( i ).SendData "test"
の後にDoEventsいれたら?
0013デフォルトの名無しさん
NGNGサンプルを作ってみた。
Private Sub Command1_Click()
Dim A As Integer
Dim B As Integer
Dim C As Integer
Dim D As Integer
Dim n As Integer
Dim datenow As Date
A = Int((100 - 0 + 1) * Rnd() + 0)
B = Int(((100 - A) - 0 + 1) * Rnd() + 0)
C = Int(((100 - (A + B)) - 0 + 1) * Rnd() + 0)
D = 100 - (A + B + C)
datenow = Now()
Debug.Print datenow; "A ="; A
Debug.Print datenow; "B ="; B
Debug.Print datenow; "C ="; C
Debug.Print datenow; "D ="; D
Debug.Print datenow; "A + B + C + D ="; A + B + C + D
End Sub
これじゃだめなのかな?
001413
NGNGDim n As Integer
を脳内あぼーんして読んでください。
スマソ
0015前スレ977
NGNG>Currency型の変数をFor文の制御変数に使っちゃだめよん。
の理由は、正常にループできない範囲があるから。
214748辺りの値からおかしくなるらしい。(V友より)
以下のコードを試すと暴走します。
Dim i As Currency
For i = 214747 To 214748
Debug.Print i
Next
0016デフォルトの名無しさん
NGNG> A,B,C,Dが自然数だったら、
> n = 100
> A = int( rnd * ( n - n / 4 -2 )) + n / 4
> B = int( rnd * iif( A >= n / 2 - 1, n - A - 2 , n / 2 - 1 )) + 1
> C = int( rnd * iif(( A + B ) >= n / 2, n - ( A + B ) - 1, n / 2 - 1 )) + 1
> D = n - A - B - C
> かな ?
ダメ。A = 25, B = 1, C = 1, D = 73 とかなるよ。B, C, D の下限値も必要。
A が決まっている時は、n = A + B + C + D ≦ 3A + B だから、n - 3A ≦ B が下限値となる。(もちろん 1 ≦ B も必要だよ。)
同様に、A, B が決まっている時は、n = A + B + C + D ≦ 2A + B + C だから n - 2A - B ≦ C が下限値。
0018デフォルトの名無しさん
NGNG( ゚Д゚)お!出来ました。
ありがとうございます。
0019デフォルトの名無しさん
NGNGおいおい今さら何を。
0020デフォルトの名無しさん
NGNG>前スレの978、984へ
これ読める?
0021前スレ999
NGNGn = 100
D = int(rnd * (n / 2 - 1)) + 1
C = int(rnd * ( n / 2 - D )) + 1
B = iif((D + C) =< (n + 2)/ 3, int(rnd * (int((n - (D + C))/ 2))) + 1, int(rnd * (n - 2 * (D + C) + 1)) + 1)
A = n - D - C - B
これでどう?
心配なので50000回ぐらい試してみたけど、一度も例外なしだった。
0022デフォルトの名無しさん
NGNG1000 名前:デフォルトの名無しさん 投稿日:02/09/23 00:00
次スレ
http://pc3.2ch.net/test/read.cgi/tech/1032706491/l50
なんかすげー
0023前すれの1000
NGNG0024HAIRETU
NGNGsub Fget
for l=0 to 15
call Lget(l,add(l*32))
next
end sub
のように配列のN番目を引数にして、addのNからN+31にLgetで値を設定したいのですが
Lget(i,add())のように配列全体をわたすのはできますが、
配列の途中を渡すことができません。
Lget(i,add(),i*32)としてインデックスを別に引数として渡すことは
できますが、VBではこのような方法しかないのでしょうか?
0025デフォルトの名無しさん
NGNG002617
NGNG■ このスレッドは過去ログ倉庫に格納されています