Dim a As Integer Dim b As Integer Dim c As Integer Dim d As Integer Dim e As Integer Dim f As Integer Dim g As Integer Dim h As Integer Dim i As Integer Dim j As Integer Dim tasu As Integer Dim hiku As Integer Dim kakeru As Integer Dim waru As Integer
-------------------------- Private Sub Command1_Click() Text1.Text = "0 End Sub -------------------------- Private Sub Command10_Click() Text1.Text = "9" End Sub -------------------------- Private Sub Command11_Click() a = Val(Text1.Text) b = Val(Text1.Text) c = Val(Text1.Text) d = Val(Text1.Text) e = Val(Text1.Text) f = Val(Text1.Text) g = Val(Text1.Text h = Val(Text1.Text i = Val(Text1.Text) j = Val(Text1.Text) Text1.Text = "" End Sub
Function lcm(ByVal x As Integer, ByVal y As Integer, ByVal z As Integer) As Integer Dim answer As Integer answer = x Do If ((answer Mod y = 0) And (answer Mod z = 0)) Then Exit Do answer = answer + x Loop lcm = answer End Function
ちなみに>>100は DIM A(6) RANDOMIZE FOR J=1 TO 1000 LET S=INT(RND*6)+1 IF S=1 THEN LET A(1)=A(1)+1 IF S=2 THEN LET A(2)=A(2)+1 IF S=3 THEN LET A(3)=A(3)+1 IF S=4 THEN LET A(4)=A(4)+1 IF S=5 THEN LET A(5)=A(5)+1 IF S=6 THEN LET A(6)=A(6)+1 NEXT J FOR J=1 TO 6 PRINT J;" ";A(J) NEXT J END で
>>101は DIM A(500) LET N=1 RANDOMIZE DO LET P=INT(RND*500) IF P=250 THEN EXIT DO IF P>180 AND P<470 THEN PRINT P;" "; LET A(N)=P LET N=N+1 LET S=S+P END IF LOOP LET N=N-1 LET K=1 FOR J=2 TO N IF A(J)>A(K) THEN LET K=J NEXT J LET MAX=A(K) LET K=1 FOR J=2 TO N IF A(J)<A(K) THEN LET K=J NEXT J LET MIN=A(K) LET MEAN=S/N
SET WINDOW 0,10,-1,10 SET POINT STYLE 4 LET t=0 LET dx=0 LET x=10 LET dt=0.0125 LET g=-9.8 LET f=1 DO WHILE t<10 LET t=t+dt LET ox=x LET odx=dx LET x=ox+odx*dt LET dx=odx+g*dt PRINT "x=";x;"dx=";dx CLEAR PLOT POINTS : t,x IF x<0 AND f=1 THEN LET f=0 LET dx=-0.6*dx END IF IF x>0 AND f=0 THEN LET f=1 loop END
mcisound "open "+chr$(34)+"D:\test.wav"+chr$(34)+" type waveaudio alias test mcisound "play test notify",at Do if at=1 then mcisound "stop test":mcisound "seek test to start":mcisound "play test notify",at:at=0: Loop
>>137 110 I0=0:FOR I1=1 TO 9:FOR I3=1 TO 9:FOR I5=1 TO 9:FOR I2=1 TO 9 120 FOR I4=1 TO 9:FOR I8=1 TO 9 130 I6=I8^I5+I4^I3+I2^I1:I7=100*I8+10*I4+I2 140 IF I7=I6 THEN I0=I0+1:PRINT I0,I8;"^";I5;"+";I4;"^";I3;"+";I2;"^";I1;"=";I6 150 NEXT:NEXT:NEXT:NEXT:NEXT:NEXT 160 END
ベキ乗の指数を桁数に合わせるなら DIM n(11) MAT n = ZER INPUT keta IF keta<0 OR 10<keta THEN STOP LET n(keta) = 1 DO FOR i=1 TO keta+1 LET n(i) = n(i) + 1 IF n(i) >= 10 THEN LET n(i)=0 ELSE EXIT FOR NEXT i IF n(keta+1)<>0 THEN EXIT DO LET x = 0 LET y = 0 FOR i=1 TO keta LET x = x + n(i)^keta LET y = y + n(i)*(10^(i-1)) NEXT i IF x=y THEN FOR i=keta TO 2 STEP -1 PRINT "("; n(i); "^"; keta;") + "; NEXT i PRINT "("; n(1); "^"; keta; ") ="; x END IF LOOP END 昔のM$系ではループ処理がめどいので十進BASICでやった。
MAT n = ZER → FOR I=1 TO 11: N(I)=0: NEXT DO 〜 LOOP → WHILE 1 〜 WEND または GOTO を使った無限ループ EXIT FOR, EXIT DO → それぞれ FORループ, DO〜LOOPループを抜けるGOTO IF 〜 END IF → 1行の IF文にまとめる
↓これ出して突っ返されました 10 input "サイコロの目=",d 20 if d=0 goto 110 30 if d=1 then a=a+1 40 if d=2 then b=b+1 50 if d=3 then c=c+1 60 if d=4 then e=e+1 70 if d=5 then f=f+1 80 if d=6 then g=g+1 90 if d>6 then print "無効な数値" 100 goto 10 110 print "1の目",a,"回 2の目",b,"回 3の目",c,"回 4の目",e,"回 5の目",f,"回 6の目",g,"回" 120 end
dim dice(6) loop: input "サイコロの目=",d id d=0 then goto exit if 1<=d and d<=6 then dice(d)=dice(d)+1: goto loop print "無効な数値" goto loop exit: for i=1 to 6 print i;"の目=";dice(i) next
n=FreeFile() i=0 FileOpen(n,"data.dat",OpenMode.Input) Do While Not EOF(n) input(n,a(i)) i +=1 loop FileClose(n) としたとき、ファイルを指定("data.dat")するのではなくて、ファイルダイアログで指定したいのです。 おねがいします。 vb.netです。
標準正規分布を使った仕入れ最適問題です。(Windows板N88BASIC) 1個40円で仕入れ100円で売る。売れ残った物は1個15円で引き取ってもらう。 統計によれば1日に売れる物は平均800標準偏差120の正規分布に従っている。 1日にいくつ仕入れれば利益が最大になるか。 プログラムの一部を下に書きます。何処か写し間違えがあるかもしれませんがよろしくお願いします。 (s:仕入れtotal:粗利計k:客数a:余りの部数) for s=600 to 1000 step 20 total=0 for day=1 to 500 gosub *nomal(所定の正規分布乱数を作ってrに入れて戻る) k=int(120*r+80) if s<=k then (何処かの行番号) arari=100*s-40*s else a=s-k arari=100*k-40*s+15*a tatal=total+arari next day
>>168 XT=0:XS=0 FOR S=600 TO 1000 STEP 20 TOTAL=0: KT=0 FOR DAY=1 TO 500 GOSUB *NOMAL K=INT(120*R+800) IF S<=K THEN ARARI=100*S-40*S ELSE A=S-K ARARI=100*K-40*S+15*A END IF TOTAL=TOTAL+ARARI: KT=KT+K NEXT DAY IF TOTAL>XT THEN XT=TOTAL:XS=S PRINT "仕入れ/日: ";S,"粗利計:";TOTAL,"客数平均:";KT/500 NEXT S PRINT "利益が最大になったのは";XS;"個仕入れたとき" END *NOMAL R=(RND+RND+RND+RND+RND+RND+RND+RND+RND+RND+RND+RND)-6 RETURN