1 名前:BASIC mailto:fh [2006/01/09(月) 15:35:00 ] N人分のデータ(氏名、体重、身長、年齢)がDATA文で入力されているプログラムが ある。これを用いて次のプログラムをBASICで作成しなさい 身長が160CM以上で170cm未満の人の名前を表示する
82 名前:デフォルトの名無しさん mailto:sage [2006/05/20(土) 12:43:19 ] おまけ: ユークリッドの互除法を使った場合 Function gcd(ByVal a As Integer, ByVal b As Integer) As Integer Dim c As Integer Do While b <> 0 c = a Mod b a = b b = c Loop gcd = a End Function Function lcm(ByVal a As Integer, ByVal b As Integer) As Integer lcm = a * b / gcd(a, b) End Function Function lcm3(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer) As Integer Dim d As Integer d = lcm(a, b) lcm3 = lcm(c, d) End Function
83 名前:デフォルトの名無しさん mailto:sage [2006/05/20(土) 15:41:02 ] >>81-82 ありがとうございました。
84 名前:デフォルトの名無しさん mailto:sage [2006/05/25(木) 23:18:38 ] ピクチャーボックスにrgbを使って上から順に明るい色から暗い色の グラディエーションを表示するプログラムの作成お願いします。
85 名前:デフォルトの名無しさん mailto:sage [2006/05/25(木) 23:59:32 ] 嫌です。
86 名前:デフォルトの名無しさん [2006/05/29(月) 20:32:36 ] 好きな数字を入力して、その1部や全体が連続して居ないか調べて、 もしあればその部分を知らせるプログラムお願いしますm_ _m たとえば、
87 名前:デフォルトの名無しさん mailto:sage [2006/05/29(月) 20:33:49 ] 「2112」なら、1が連続してるので1を 「19529523」なら952が連続してるので952をといった風です すみません。切れましたorz
88 名前:デフォルトの名無しさん mailto:sage [2006/05/29(月) 21:12:46 ] >>86 (仮称)十進BASIC INPUT s$ LET m=LEN(s$) FOR n=1 TO INT(m/2) FOR i=1 TO m-n+1 IF s$(i:i+n-1) = s$(i+n:i+2*n-1) THEN PRINT s$(i:i+n-1) END IF NEXT i NEXT n END
89 名前:86 mailto:sage [2006/05/29(月) 23:02:07 ] >>88 ありがとうございます
90 名前:デフォルトの名無しさん mailto:sage [2006/06/12(月) 15:39:03 ] >>50 腹抱えてワロタ
91 名前:デフォルトの名無しさん mailto:sage [2006/06/15(木) 22:56:25 ] プログラムに時間の間を与えるにはどうすればいいんでしょうか? たとえば実行してから1秒後に"1秒経過しました"と表示させる場合とか。
92 名前:デフォルトの名無しさん mailto:sage [2006/06/16(金) 00:20:11 ] >>91 つ TIME$
93 名前:デフォルトの名無しさん mailto:sage [2006/06/16(金) 18:00:01 ] >>91 1 sleep(1000) 2 print "1秒経過しました"
94 名前:91 mailto:sage [2006/06/17(土) 00:14:03 ] >>93 サーンクス!!
95 名前:デフォルトの名無しさん mailto:sage [2006/06/18(日) 16:40:09 ] beep音て変えれないの?
96 名前:デフォルトの名無しさん mailto:sage [2006/06/18(日) 16:52:14 ] >>95 つ play
97 名前:デフォルトの名無しさん mailto:sage [2006/06/19(月) 00:32:40 ] BEEP音でPCM再生とか昔あったなぁ
98 名前:デフォルトの名無しさん [2006/06/19(月) 01:55:56 ] a=FIX(RND(1)*10):b=FIX(RND(1)*10) c=a+b PRINT c のときのcの一桁目の数だけPRINTするにはどうすればいいんでしょうか? 文字列じゃないんでRIGHT$ではエラーになってしまいます・・・
99 名前:デフォルトの名無しさん mailto:sage [2006/06/19(月) 20:06:10 ] >>98 PRINT (c MOD 10) で出来るはず。
100 名前:デフォルトの名無しさん [2006/06/21(水) 09:03:00 ] 乱数を使用し、サイコロを千回振り、1から6までの出現率を求めるプログラムの作成 十進BASICで頼む10時まで…
101 名前:デフォルトの名無しさん [2006/06/21(水) 09:11:18 ] 180から470の範囲に入る乱数を発生させ、 250が発生したときに乱数の発生を止め、 範囲に入ったものの数、合計、平均、最大値、最小値を求めるプログラムの作成 これも頼む…
102 名前:デフォルトの名無しさん mailto:sage [2006/06/21(水) 10:56:57 ] >>100-101 もう答えても遅いのか? でも100はなんとなくわかるが、101の「180から470の乱数を発生」 がわからんかもしれん。 1000までの乱数で180〜470以外を無視する感じでいいんだろうか。
103 名前:デフォルトの名無しさん mailto:sage [2006/06/21(水) 12:13:45 ] >>102 もう終わった… 中途半端な感じで提出してしまったが… ちなみに>>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 で
104 名前:デフォルトの名無しさん mailto:sage [2006/06/21(水) 12:16:13 ] >>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
105 名前:デフォルトの名無しさん mailto:sage [2006/06/21(水) 12:17:43 ] PRINT "個数";N PRINT "合計";S PRINT "最大値";MAX PRINT "最小値";MIN PRINT "平均"; PRINT USING"#####.#":MEAN END らしい…分からんてorz
106 名前:デフォルトの名無しさん mailto:sage [2006/06/24(土) 00:10:54 ] 同じ行内で文字色を変えるにはどうすればいいんですか? たとえば PRINT "赤""青" の赤を赤色、青を青色にする感じです。 あー、ホントだれか頼むよ。
107 名前:デフォルトの名無しさん mailto:sage [2006/06/24(土) 00:26:44 ] 環境がわからんが、 PRINT "赤"; 表示色を変える処理(COLOR 7とか) PRINT "青" じゃ駄目?
108 名前:デフォルトの名無しさん mailto:sage [2006/06/24(土) 10:57:26 ] >>107 それだと 赤 青 と表示されるけど、俺がしたいのは 赤青 と表示させるやつなのね…。 やっぱ無理なのかなー。 ちなみに俺の使ってるのは結構古い ActiveBasic ver2.56です。 授業で配布されたヤツだしやっぱ新しいのにしようかなぁ…。
109 名前:デフォルトの名無しさん mailto:sage [2006/06/24(土) 12:38:21 ] 100 FOR I=0 TO 7 110 COLOR I: PRINT MID$("イロイッカイズツ",I*2+1,2); 120 NEXT I 130 PRINT 140 COLOR 7
110 名前:107 mailto:sage [2006/06/24(土) 15:46:08 ] ActiveBasicってセミコロン無視されるの?"赤青"って1行にならない? ↓ココ PRINT "赤";
111 名前:デフォルトの名無しさん mailto:sage [2006/06/24(土) 21:10:06 ] なるけど>>106 が理解していないだけ。
112 名前:106 mailto:sage [2006/06/25(日) 08:22:00 ] >>110 セミコロンの正しい使い方を学んだ。 トンクス!
113 名前:デフォルトの名無しさん mailto:sage [2006/06/29(木) 02:43:55 ] 改行の入った文字列はどうやって読み込ませればいいんでしょうか? 例えば A$="Λ Λ" "(゚Д゚)" といった風です。 やはり変数を2つ使って2行に分けるしかないんですか?
114 名前:デフォルトの名無しさん mailto:sage [2006/06/29(木) 07:26:27 ] >>113 10 A$="Λ Λ"+CHR$(13)+CHR$(10)+"(゚Д゚)" 20 PRINT A$
115 名前:113 mailto:sage [2006/06/29(木) 17:52:39 ] >>114 ありがとうございました!助かりました!
116 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 10:16:55 ] 変数の色の指定とかってできないんですか? A$=赤 みたいな感じです…
117 名前:デフォルトの名無しさん [2006/07/04(火) 23:05:15 ] 課題なんです。 何か動くのを作れってゆう課題なんです。 そこで、何かお願いします!
118 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 23:08:49 ] 何で21世紀にもなってBASICの課題が存在してるの?
119 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 23:10:39 ] >>117 10 print "ばか "; 20 goto 10 とかで大丈夫かな?
120 名前:117 [2006/07/04(火) 23:19:28 ] >>118 あるみたいです。 >>119 大丈夫じゃないですね・・・ 関数をグラフィックにして簡単な動画を。
121 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 23:30:30 ] 処理系も指定せずに関数をグラフィックにしてなんて言われてもな
122 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 23:39:23 ] >>121 117 は問題をあと5,6 回に分けて小出しにして来ると思うから、 しばらくは静観してた方がいいよ。
123 名前:117 [2006/07/05(水) 00:12:28 ] 処理系はおまかせするよ。 花火が打ちあがる様とかゴルフの球がカップに入るのとかを作ったりしてるヤシもいる。
124 名前:117 [2006/07/05(水) 00:20:47 ] スマソ 処理系→(仮称)十進BASIC
125 名前:117 [2006/07/05(水) 00:23:49 ] >>122 確かに小出しにしてる俺ガイル
126 名前:117 [2006/07/05(水) 18:17:17 ] 誰かおながい
127 名前:デフォルトの名無しさん mailto:sage [2006/07/05(水) 20:22:55 ] あと二個くらい条件が増えるのかなぁ……
128 名前:117 [2006/07/05(水) 20:54:29 ] >>127 もう増えないです。 簡単なのでいいのでどうかおながいします・・・
129 名前:デフォルトの名無しさん mailto:sage [2006/07/05(水) 21:06:08 ] じゃあ、処理系 FBASIC ね 10 symbol(rnd*10,rnd*10),"BAKA",10,10,rnd*7 20 goto 10 もう条件は増えないからこれでおしまいだね。
130 名前:117 [2006/07/06(木) 02:36:11 ] (仮称)十進BASIC 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 こんな感じのに手を加えてみてください。
131 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 03:52:12 ] >>127 の言ったとおりだな。次は「XX日までにお願いします」とかかな?
132 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 12:58:10 ] basicでクイズゲームみたいなの作りたいんですけど、 input文を使いつつ時間制限を設けるにはどうすれば? inputが入ると(入力画面になると)そこで命令がとまってしまうわけですが、 やはりbasicでは無理でしょうか?
133 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 14:15:06 ] on time gosub が使える BASIC があると思うので、その BASIC を使いなさい。
134 名前:デフォルトの名無しさん [2006/07/09(日) 18:31:48 ] >>132 INKEY$を使えばできるよ
135 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 13:41:26 ] >>134 あ、できました! どうもどうも
136 名前:デフォルトの名無しさん mailto:sage [2006/07/18(火) 21:43:05 ] waveファイルをリピート再生したいんですけど 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 名前:名無しさん [2006/07/23(日) 13:55:30 ] 各桁の数字に、桁数乗したものの和が、 元の数字になるものを求める。こんなものをBASICで書いてもらえませんでしょうか?? 1^3+5^3+3^3=153(←こんなようなの) よろしくお願いします!!
138 名前:デフォルトの名無しさん mailto:age [2006/07/23(日) 16:40:04 ] 誰かおながい
139 名前:デフォルトの名無しさん mailto:sage [2006/07/23(日) 17:38:09 ] >>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
140 名前:名無しさん mailto:age [2006/07/23(日) 22:11:08 ] >>139 ありがとうございます! 桁数を自分で指定して計算させられるようにできませんでしょうか?? 3桁以外も計算してみたいので。。。 わがままいって申し訳ございません・・・ よろしくお願いします!
141 名前:デフォルトの名無しさん mailto:sage [2006/07/23(日) 22:39:12 ] >>140 求めたい桁数に合わせて自分で改造すれ
142 名前:名無しさん mailto:age [2006/07/23(日) 22:42:49 ] >>139 これだと、なんか余計なものまで表示されてるな。。。 >>137 の言っているのは、 370とか、407みたいな、3桁の数の時はそれぞれの桁の数を3乗するってことだろ?? 370=3^3+7^3+0^3とか。 ってことは>>139 だとちょっと余分なものまで表示されてるぞ。
143 名前:デフォルトの名無しさん mailto:sage [2006/07/24(月) 00:14:24 ] ベキ乗の指数を桁数に合わせるなら 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でやった。 つーか、質問する時はどの処理系でやるのかまで指定しろよ。 BASICったって色々あるし、処理系によって文法も違うんだから。
144 名前:名無しさん mailto:age [2006/07/24(月) 01:43:18 ] >>143 さん ありがとうございます! すみません。処理系を書くのをわすれていました。 当方は、UBASICを使用しておりまして、少し十進BASICとは異なるようです。。。 もしお時間がございましたら、そちらでも書いていただけたら幸いです。
145 名前:名無しさん mailto:age [2006/07/24(月) 15:10:40 ] >>143 さすがに桁が多くなると時間かかるなw
146 名前:デフォルトの名無しさん mailto:sage [2006/07/24(月) 22:00:55 ] >>144 さすがにあんたのためだけにソフト入れて試してる暇はない。 大して特殊なことはしてないから自分で直せ。 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文にまとめる UBASICはどうか知らんが、これで大抵の処理系で実行できるだろう。
147 名前:デフォルトの名無しさん [2006/08/03(木) 18:39:50 ] Format関数で通貨記号付きで、3桁ごとのカンマ区切り、且つ小数点以下切捨てで変数を出力する、Format関数を書け VisualBasicの課題でこれだけわからないのでお願いします。
148 名前:デフォルトの名無しさん mailto:sage [2006/08/04(金) 22:54:42 ] SQL文なら >>1 は、こんな感じ。 SELECT [Name] FROM DataTable WHERE [Height] >= 160 AND [Height] < 170
149 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 11:06:43 ] あとは SQL を BASIC で実装すればおしまいだね。
150 名前:デフォルトの名無しさん [2006/09/30(土) 13:48:49 ] サイコロを何回も投げて次々出目を入力した時に各自の出た回数を表示するプログラムを作れ ただし入力終了の合図は0を入力した時とする 一晩頑張りましたがdim使えの一言で突っ返されました 習い始めで全く理解出来ません…誰かお願いします ↓これ出して突っ返されました 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
151 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 14:52:12 ] basicは完全に忘れちゃったので、概要だけ 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 こんな感じ
152 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 15:11:30 ] 同じ様なデータに番号つけて扱うのが配列。 例えば a という配列があったとしたら a の 1 番目の要素は a(1) a の 2 番目の要素は a(2) a の 3 番目の要素は a(3) って感じ。 で、ここからポイント。 ★配列の何番目を使いたいかを示す番号(添字という)★ ★には、変数を使うことが出来る。。。★ 例えば a1, a2, a3 という変数を作って d 番目の変数を使いたいからって ad なんてやってもそれは別の変数になってしまう。 ところが配列の場合は a(d) と書けば「a という配列の d 番目」を使える。 dim 命令はそんな配列を使うために使うのさ。
153 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 15:43:52 ] >>151 サンクス!そのままだと構文エラー出まくるんで何とか意味理解してみる… >>152 なるほど…配列からバラバラに引き出せるとはなんと便利な…
154 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 16:03:15 ] >>151-152 出来ました! 配列使うとホントに無駄が無いんですね…ありがとうございました!
155 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 16:09:36 ] >>154 考え方が逆でして、今回は無駄があるところを配列を使って纏められただけです なので有効性を考えずに配列を使うのはバカの一つ覚えになりますぉ
156 名前:句読点書けないバカをサマージャンボする俺 ◆9NQzQ21lx. mailto:sage [2006/09/30(土) 16:35:45 ] >>155
157 名前:デフォルトの名無しさん [2006/10/23(月) 10:10:56 ] ファイルダイアログみたいなのでファイル指定して、読み込みたいのですが だれか御教授ください。 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です。
158 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 10:14:20 ] dobon.net/vb/dotnet/index.html で色々探してみて
159 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 08:59:57 ] ↑ ありがとうありがとうありがとう ほんまありがとう めちゃ助かった!!!
160 名前:デフォルトの名無しさん mailto:age [2006/10/30(月) 20:48:24 ] VB.netについてです。 ボタン1を押すと”別ウィンドウに”グラフが描画されるようにしたいのですが、どなたか御教授ください。 Form1にはボタンがあって、それを押すと別のフォームが出現して、そこにあるpictureBoxにグラフが出力できるようにしたいのです。
161 名前:デフォルトの名無しさん [2006/11/10(金) 16:01:33 ] F-BASICのエラーなんですが ビルド方法が指定されていません。 て出るんですけどどうすれば解決されるんでしょうか
162 名前:なぽ [2006/11/29(水) 04:55:15 ] 4行4列の行列AとBの積の計算のプログラムをおそえてくださーーーい
163 名前:デフォルトの名無しさん mailto:sage [2006/11/29(水) 23:45:00 ] >>162 MAT C = A * B
164 名前:デフォルトの名無しさん [2006/11/30(木) 19:26:32 ] 問.2次元配列を使用して以下の計算をしなさい。 行の和→ 01 02 03 04 05 06 07 08 09 10 55 列 11 12 13 14 15 16 17 18 19 20 155 ←和は出せたのですが、 の ・ ここに表示させる方法が 和 ・ 分かりません。 ↓ ・ 91 92 93 94 95 96 97 98 99 100 955 460 470 ・・・・・ 5050 01 02 03 04 05 06 07 08 09 10 0 11 12 13 14 15 16 17 18 19 20 10 ・ 29 ←これは全然分かりません。 ・ 81 ・ 91 92 93 94 95 96 97 98 99 100 414 0 91 173 ・・・・・ 505 ↑右斜め下方向の和 どうかお願いしますm(_ _)m
165 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 15:48:01 ] >>164 いやもう帰っていいよ ほんとに
166 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 01:39:48 ] >>164 10 DIM A(11,11):N=10:FOR I=1TO N:FOR J=1TO N: A(I,J)=(I-1)*N+J:NEXT:NEXT:Z=0:FOR I=1TO N:X=0:Y=0: 20 FOR J=1TO N:X=X+A(I,J):Y=Y+A(J,I):NEXT:A(I,N+1)=X:A(N+1,I)=Y:Z=Z+X:NEXT:A(N+1,N+1)=Z:FOR I=1TO N+1: 30 FOR J=1TO N+1:PRINT USING" ####";A(I,J);:NEXT:PRINT:NEXT:FOR I=1 TO N+1:X=0:Y=0:FOR J=I TO N: 40 X=X+A(J,J-I+1):Y=Y+A(J-I+1,J):NEXT:A(N+1,N-I+2)=X:A(N-I+2,N+1)=Y:NEXT:FOR I=1TO N+1:FOR J=1TO N+1: 50 PRINT USING" ####";A(I,J);:NEXT:PRINT:NEXT
167 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 00:10:16 ] >>166 ありがとうございます! 助かりました。
168 名前:何卒よろしくお願いします [2006/12/06(水) 09:32:13 ] 標準正規分布を使った仕入れ最適問題です。(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
169 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 10:34:52 ] >>168 tatalとはなでふおどろおどろしきこと哉
170 名前:デフォルトの名無しさん [2006/12/06(水) 12:54:45 ] >>169 すいません、言ってる事がわかりません><
171 名前:デフォルトの名無しさん mailto:sage [2006/12/07(木) 07:33:16 ] > 何処か写し間違えがあるかもしれませんが > tatal=total+arari > tatal=total+arari > tatal=total+arari
172 名前:デフォルトの名無しさん [2006/12/07(木) 09:53:38 ] >>171 その通りです。誰か助けてください><
173 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 01:47:00 ] >>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
174 名前:デフォルトの名無しさん [2006/12/08(金) 01:53:23 ] プログラミング自体全然分かってないです(>_<) それでも課題はやらなきゃいけない・・・・ 誰か助けてください その@ 『入力された3桁の自然数aに対し、aの一の位、十の位、 百の位の和Sと、Sを3で割ったときの余りを表示する プログラムを作れ』 そのA 『自然数nに対し、n以外の正の約数の和がnに等しいと き、nを完全数という。10,000以下の全ての完全数を、 プログラムを作って求めよ』 教えてくださいお願いします!!
175 名前:Nw [2006/12/08(金) 02:15:02 ] BASICで書いて頂けませんか? 10: 20: ってな感じで・・ 1.数A,B,Cを入力してA>BかつB>CならA*B*Cの計算を、A>BかつB≦Cなら A+B+Cの値を、A≦BならA/B+Cの値を求めるプログラム。 2.1+2+3+・・・・+X の合計が初めて200を超える X の値を表示するプログラム。 3.1,3,5,7,9,・・・・, X までの和を求め、和が1000を超えない X の最大値を表示するプログラム。 4.X,Yを入力し、X=1でY=2なら"A"と、X=3でY=4なら"B"と、X=5でY=6なら"C"と表示し、 上記以外の数字の組み合わせを入れたときはプログラムの最初に戻るプログラム。 5.2つの数XとYを入力し、両方マイナスのときは√(X*Y)を、どちらか一方がプラスのときはX*Yを、 両方プラスのときはX/Yのそれぞれの値を表示するプログラム。 6.自然数MからNmでの和と平均を求めるプログラム。(NとMの値は入力するものとし、M<Nとする) S=M+・・・・+N 7.Y=3X^3 +2X^2 +X +15 において、Xの値を-10から10まで、0.5刻みで変化させてYの値を求めるプログラム。 8.AAB+BB=BAA つまり、(100×A+10×A+B)+(10×B×B)=(100×B+10×A+A)となるAとBを 求めるプログラム。(A,Bは一桁の整数) 9.ABA×B=BCBつまり(100×A+10×B+A)×B=(100×B+10×C+B)となるA,B,Cを求めるプログラム。 10.三角形の辺A,B,Cにおいて、それぞれを1から20まで変化させたとき、直角三角形となる組み合わせをすべて 求めるプログラム。 11.Y=6X^2 - 5X - 9 の式において、-10≦X≦10 の範囲でYの最大値を求めるプログラム。 (Xは、0.2刻みとする) 自分でやるべきなのですが、分からなくて・・ 早急に解答が欲しいのですが、教えて頂ける方がおられましたら どうか宜しくお願いします
176 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 02:56:23 ] >>174 >>174 >その@ 100 INPUT "N";N 110 W=(N MOD 10)+(INT(N/10) MOD 10)+(INT(N/100) MOD 10) 120 PRINT W, W MOD 3 >そのA 100 FOR A=1 TO 10000 110 C=0 120 FOR B=1 TO A-1 130 IF ((A MOD B) = 0) THEN C=C+B 140 NEXT 150 IF C=A THEN PRINT A 160 NEXT
177 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 02:58:25 ] >>175 10 PRINT "糞して寝ろ"
178 名前:デフォルトの名無しさん mailto:sage [2006/12/09(土) 04:21:21 ] >>175 11 INPUT A,B,C:IF A>B AND B>C THEN PRINT A*B*C ELSE IF A>B AND B<=C THEN PRINT A+B+C ELSE PRINT A/B+C 21 X=X+1:T=T+X:IF T>200 THEN PRINT X ELSE 21 31 FOR I=1 TO 500 STEP 2:T=T+I:IF T>1000 THEN PRINT I-2 ELSE NEXT 41 INPUT X,Y:IF X=1 AND Y=2 THEN PRINT "A" ELSE IF X=3 AND Y=4 THEN PRINT "B" ELSE IF X=5 AND Y=6 THEN PRINT "C" ELSE 10 51 INPUT X,Y:IF X<0 AND Y<0 THEN PRINT SQR(X*Y) ELSE IF X>=0 AND Y>=0 THEN PRINT X*Y ELSE PRINT X/Y 61 INPUT M,N:IF M<N THEN PRINT (N^2-M^2+M+N)/2,(N+M)/2 71 FOR I=-100 TO 100 STEP 5:X=I/10:PRINT 3*X^3+2*X^2+X+15:NEXT 81 FOR A=1 TO 9:FOR B=1 TO 9:IF A*99=B*88 THEN PRINT A,B 82 NEXT:NEXT 91 FOR A=1 TO 9:FOR B=1 TO 9:FOR C=1 TO 9:IF (A*101+B*10-101)*B=C*10 THEN PRINT A,B,C 92 NEXT:NEXT:NEXT 101 FOR A=1 TO 20:FOR B=1 TO 20:FOR C=1 TO 20:IF A*A+B*B=C*C OR B*B+C*C=A*A OR C*C+A*A=B*B THEN PRINT A,B,C 102 NEXT:NEXT:NEXT 111 YM=-1.E23:FOR I=-100 TO 100 STEP 2:X=I/10:Y=6*X^2-5*X-9:IF Y>YM THEN YM=Y 112 NEXT: PRINT YM
179 名前:デフォルトの名無しさん [2006/12/10(日) 00:07:39 ] xの値が-2〜2変化したときの、関数f(x)=sin(1/x)のグラフと、 xの値が0〜4変化したときの、関数f(x)=cos(x^2)のグラフを描く プログラムを教えてください。どうかお願いします。
180 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 01:54:40 ] >>179 ! f(x) = sin(1/x) DEF f(x) = SIN(1/x) SET WINDOW -2,2,-2,2 DRAW GRID(0.5,0.5) FOR x=-2 TO 2 STEP 0.01 WHEN EXCEPTION IN PLOT LINES: x, f(x); USE PLOT LINES END WHEN NEXT x END ! f(x) = cos(x^2) DEF f(x) = COS(x^2) SET WINDOW -0.1,4,-2.05,2.05 DRAW GRID(0.5,0.5) FOR x=0 TO 4 STEP 0.01 WHEN EXCEPTION IN PLOT LINES: x, f(x); USE PLOT LINES END WHEN NEXT x END
181 名前:デフォルトの名無しさん [2006/12/10(日) 15:14:22 ] >>180 やってもらった後で大変申し訳無いんですが、 N88互換BASICで出来るものをお願いします。 書き忘れててすいません。
182 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 16:09:45 ] >>181 100 DIM A$(21):ON ERROR GOTO 130 110 FOR I=1 TO 41:A$(I)=SPACE$(20)+"|"+SPACE$(20):NEXT:A$(11)=STRING$(20,"-")+"+"+STRING$(20,"-") 120 FOR I=-20 TO 20:J=INT(SIN(10/I)*10):MID$(A$(11-J),I+21,1)="*":NEXT:FOR I=1 TO 21:PRINT A$(I):NEXT:END 130 RESUME NEXT 100 DIM A$(21):ON ERROR GOTO 130 110 FOR I=1 TO 41:A$(I)="|"+SPACE$(40):NEXT:A$(11)="+"+STRING$(40,"-") 120 FOR I=0 TO 40:J=INT(COS(I*I/100)*10):MID$(A$(11-J),I+1,1)="*":NEXT:FOR I=1 TO 21:PRINT A$(I):NEXT:END 130 RESUME NEXT