BASICの宿題はお前にまかせた

■ このスレッドは過去ログ倉庫に格納されています
1BASIC
垢版 |
2006/01/09(月) 15:35:00
N人分のデータ(氏名、体重、身長、年齢)がDATA文で入力されているプログラムが
ある。これを用いて次のプログラムをBASICで作成しなさい
身長が160CM以上で170cm未満の人の名前を表示する
2006/07/04(火) 23:08:49
何で21世紀にもなってBASICの課題が存在してるの?
2006/07/04(火) 23:10:39
>>117
10 print "ばか ";
20 goto 10
とかで大丈夫かな?
120117
垢版 |
2006/07/04(火) 23:19:28
>>118
あるみたいです。

>>119
大丈夫じゃないですね・・・
関数をグラフィックにして簡単な動画を。
2006/07/04(火) 23:30:30
処理系も指定せずに関数をグラフィックにしてなんて言われてもな
2006/07/04(火) 23:39:23
>>121
117 は問題をあと5,6 回に分けて小出しにして来ると思うから、
しばらくは静観してた方がいいよ。
123117
垢版 |
2006/07/05(水) 00:12:28
処理系はおまかせするよ。
花火が打ちあがる様とかゴルフの球がカップに入るのとかを作ったりしてるヤシもいる。
124117
垢版 |
2006/07/05(水) 00:20:47
スマソ
処理系→(仮称)十進BASIC
125117
垢版 |
2006/07/05(水) 00:23:49
>>122
確かに小出しにしてる俺ガイル
126117
垢版 |
2006/07/05(水) 18:17:17
誰かおながい
2006/07/05(水) 20:22:55
あと二個くらい条件が増えるのかなぁ……
128117
垢版 |
2006/07/05(水) 20:54:29
>>127
もう増えないです。
簡単なのでいいのでどうかおながいします・・・
2006/07/05(水) 21:06:08
じゃあ、処理系 FBASIC ね
10 symbol(rnd*10,rnd*10),"BAKA",10,10,rnd*7
20 goto 10
もう条件は増えないからこれでおしまいだね。
130117
垢版 |
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

こんな感じのに手を加えてみてください。
2006/07/06(木) 03:52:12
>>127の言ったとおりだな。次は「XX日までにお願いします」とかかな?
2006/07/06(木) 12:58:10
basicでクイズゲームみたいなの作りたいんですけど、
input文を使いつつ時間制限を設けるにはどうすれば?
inputが入ると(入力画面になると)そこで命令がとまってしまうわけですが、
やはりbasicでは無理でしょうか?
2006/07/06(木) 14:15:06
on time gosub が使える BASIC があると思うので、その BASIC を使いなさい。
134デフォルトの名無しさん
垢版 |
2006/07/09(日) 18:31:48
>>132
INKEY$を使えばできるよ
2006/07/12(水) 13:41:26
>>134
あ、できました!
どうもどうも
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(←こんなようなの)

よろしくお願いします!!
2006/07/23(日) 16:40:04
誰かおながい
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
2006/07/23(日) 22:11:08
>>139
ありがとうございます!
桁数を自分で指定して計算させられるようにできませんでしょうか??
3桁以外も計算してみたいので。。。
わがままいって申し訳ございません・・・
よろしくお願いします!
2006/07/23(日) 22:39:12
>>140
求めたい桁数に合わせて自分で改造すれ
2006/07/23(日) 22:42:49
>>139
これだと、なんか余計なものまで表示されてるな。。。
>>137の言っているのは、
370とか、407みたいな、3桁の数の時はそれぞれの桁の数を3乗するってことだろ??

370=3^3+7^3+0^3とか。

ってことは>>139だとちょっと余分なものまで表示されてるぞ。
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ったって色々あるし、処理系によって文法も違うんだから。
2006/07/24(月) 01:43:18
>>143さん
ありがとうございます!
すみません。処理系を書くのをわすれていました。
当方は、UBASICを使用しておりまして、少し十進BASICとは異なるようです。。。
もしお時間がございましたら、そちらでも書いていただけたら幸いです。
2006/07/24(月) 15:10:40
>>143
さすがに桁が多くなると時間かかるなw
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の課題でこれだけわからないのでお願いします。
2006/08/04(金) 22:54:42
SQL文なら >>1 は、こんな感じ。

SELECT [Name] FROM DataTable WHERE [Height] >= 160 AND [Height] < 170
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
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

こんな感じ
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 命令はそんな配列を使うために使うのさ。
2006/09/30(土) 15:43:52
>>151
サンクス!そのままだと構文エラー出まくるんで何とか意味理解してみる…

>>152
なるほど…配列からバラバラに引き出せるとはなんと便利な…
2006/09/30(土) 16:03:15
>>151-152
出来ました!
配列使うとホントに無駄が無いんですね…ありがとうございました!
2006/09/30(土) 16:09:36
>>154
考え方が逆でして、今回は無駄があるところを配列を使って纏められただけです
なので有効性を考えずに配列を使うのはバカの一つ覚えになりますぉ
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です。
2006/10/23(月) 10:14:20
http://dobon.net/vb/dotnet/index.html
で色々探してみて
2006/10/25(水) 08:59:57

ありがとうありがとうありがとう ほんまありがとう めちゃ助かった!!!
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の積の計算のプログラムをおそえてくださーーーい
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
2006/12/01(金) 15:48:01
>>164
いやもう帰っていいよ
ほんとに
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
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
2006/12/06(水) 10:34:52
>>168
tatalとはなでふおどろおどろしきこと哉
170デフォルトの名無しさん
垢版 |
2006/12/06(水) 12:54:45
>>169
すいません、言ってる事がわかりません><
2006/12/07(木) 07:33:16
> 何処か写し間違えがあるかもしれませんが
> tatal=total+arari
> tatal=total+arari
> tatal=total+arari
172デフォルトの名無しさん
垢版 |
2006/12/07(木) 09:53:38
>>171
その通りです。誰か助けてください><
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以下の全ての完全数を、
 プログラムを作って求めよ』

教えてくださいお願いします!!
175Nw
垢版 |
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刻みとする)

自分でやるべきなのですが、分からなくて・・
早急に解答が欲しいのですが、教えて頂ける方がおられましたら
どうか宜しくお願いします
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
2006/12/08(金) 02:58:25
>>175
10 PRINT "糞して寝ろ"
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)のグラフを描く
プログラムを教えてください。どうかお願いします。
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で出来るものをお願いします。
書き忘れててすいません。
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
183デフォルトの名無しさん
垢版 |
2006/12/10(日) 18:00:28
>>182
psetやlineを使わないといけないみたいなんです。
たびたびで本当に申し訳無いんですが、
どうかお願いします。
2006/12/10(日) 19:09:21
>>183
条件は最初に全部書け
て言うかもう問題文全部そのまま晒せ
185デフォルトの名無しさん
垢版 |
2006/12/10(日) 20:16:49
>>184
本当に申し訳無いです・・・
問題文は、
1.xの値を-2〜2変化したときの、関数f(x)=sin(1/x)のグラフを作成しなさい。
2.xの値を0〜4変化したときの、関数f(x)=cos(x^2)のグラフを作成しなさい。
です。
この課題が出される前に説明されたことは、
locate、line、pset、circleについてです。
2006/12/10(日) 22:31:19
>>185
>1.xの値を-2〜2変化したときの、関数f(x)=sin(1/x)のグラフを作成しなさい。
100 cls:line(0,0)-(400,200),7,b:line(0,100)-(400,100),7:line(200,0)-(200,200),7
120 locate 25,7:print"0":locate 0,7:print"-2":locate 50,7:print"2":
123 locate 25,0:print"1":locate 25,13:print"-1"
136 for x=-2 to 2 step 0.001:if x<>0 then pset(x*100+200,100-sin(1/x)*100)
140 next:end

>2.xの値を0〜4変化したときの、関数f(x)=cos(x^2)のグラフを作成しなさい。
100 cls:line(0,0)-(400,200),7,b:line(0,100)-(400,100),7:
122 locate 1,7:print"0":locate 50,7:print"4"
126 locate 1,0:print"1":locate 0,13:print"-1"
137 for x=0 to 4 step 0.001:if x<>0 then pset(x*100,cos(x^2)*100+100)
140 next:end
2006/12/11(月) 19:56:50
>>186
何度もご迷惑をおかけしました・・・
ありがとうございます。
188デフォルトの名無しさん
垢版 |
2006/12/25(月) 02:16:06
1.次の連立一次方程式を解きなさい。
    2x+ y+ z=2
  { 2x+2y+ z=4
    x+ y+3z=1

処理は以下の手順で行なう。
@  2  1  1  2
A  2  3  1  4
B  1  1  3  -1    処理方法             処理順
-------------------------------------------------------
C  1 0.5 0.5  1    @を2(=a11)で割る           1
D  0  2  0  2    Cを2(=a21)倍し、Aから引く     2
E  0 0.5 2.5  -2    Cを1(=a31)倍し、Bから引く     3
-------------------------------------------------------
F  1  0 0.5 0.5    Gを0.5(=a12)倍し、Cから引く    2
G  0  1  0  1    Dを2(=a22)で割る           1
H  0  0 2.5 -2.5    Gを0.5(=a32)倍し、Eから引く    3
-------------------------------------------------------
I  1  0  0  1    Kを0.5(=a13)倍し、Fから引く    2
J  0  1  0  1    Kを0(=a23)倍し、Gから引く     3
K  0  0  1  -1    Hを2.5(=a33)で割る          1

2.作成したプログラムの一部を変更して6元連立1次方程式を解きなさい。
  値は自作する。

どうかよろしくお願いします!
2006/12/25(月) 03:17:41
1.
100 N=3
110 DIM A(N,N+1)
120 '
130 FOR J=1 TO N: FOR K=1 TO N+1: READ A(J,K): NEXT K: NEXT J
140 FOR J=1 TO N: FOR K=1 TO N+1: PRINT A(J,K);:NEXT K: PRINT: NEXT J:PRINT
150 '
160 FOR I=1 TO N
170 T = A(I,I): FOR K=1 TO N+1: A(I,K) = A(I,K) / T: NEXT K
180 FOR J=1 TO N
190 IF J<>I THEN T = A(J,I): FOR K=1 TO N+1: A(J,K) = A(J,K) - T*A(I,K):NEXT K
200 NEXT J
210 FOR J=1 TO N: FOR K=1 TO N+1: PRINT A(J,K);:NEXT K: PRINT: NEXT J:PRINT
220 NEXT I
230 '
240 FOR I=1 TO N: PRINT A(I,N+1): NEXT I
250 '
260 DATA 2, 1, 1, 2
270 DATA 2, 3, 1, 4
280 DATA 1, 1, 3, -1

2.
100 N=3 → N=6
2006/12/25(月) 16:00:53
>>189
ありがとうございます!
191デフォルトの名無しさん
垢版 |
2006/12/25(月) 22:32:47
問.整数n(49以下の奇数とする)を入力し、寸法nの魔方陣を作成し表示しなさい。
   魔方陣とは1からn^2までの整数n×nの正方行列の形にならべたもので、
   それぞれの行要素、列要素の和、および対角線の和が等しいものをいう。
   プログラムは寸法nが奇数の場合、ド・ラ・ルーブルの方法を用いる。
   その方法は以下である。
   結果は、n=3、n=7、「適当な次元」の3つを提出する。

  ○1 ○    ○1 ○    ○1 ○     1.第1行中央列に1を書く。
  ○○○ →  ○○○ →  3○○     2.次の数字を右斜め上に書く。
  ○○○    ○○2     ○○2    2.を適用できない場合は、以下の規則に従う。
                            3.右斜め上にすでに数字がある場合と、
    ○1○    ○1 6    ○1 6        右斜め上が右上隅の角である場合、
 → 3○○ → 3 5○ → 3 5 7        今書いた数字の真下に書く。
    4○2    4○2    4○ 2      4.右斜め上が上側に出る場合、
                              1つ右の列の最下段に書く。
    8 1 6    8 1 6 15         5.右斜め上が右側に出る場合、
 →  3 5 7 →  3 5 7 15 ←行の和     1つ上の行の最左端に書く。
    4 ○2    4 9 2 15
            15 15 15 15 ←対角線の和
              ↑
             列の和

どうしてもわかりません・・・
どうか宜しくお願いします。
2006/12/25(月) 23:17:33
>>191
>>34
193デフォルトの名無しさん
垢版 |
2006/12/26(火) 17:22:44
>>192
>>34を参考にして繰り返し内の文を簡単にしようと
自分でやってみたんですが、このように表示されてしまいます→ 0 1 0
おかしい所の訂正をお願いします。                  0 0 0
                                        0 0 0
100 color 0,7:cls
110 dim a(99,99)
120 input "n";n
130 if n mod 2=0 then print "( ´,_ゝ`)プッ":end
140 x=n\2+1:y=1
150 for i=1 to n*n
160  a(y,x)=i
170  if i mod n=0 then y=y+1 else goto 180
180  if y=1 then y=n and x=x+1 else goto 190
190  if x=n then y=y-1 and x=1 else goto 200
200  if y<>1 and x<>n then y=y-1 and x=x+1
210 next i
220 for i=1 to n
230  for j=1 to n
240   print a(i,j);
250  next j
260 print
270 next i
280 end
2006/12/26(火) 19:30:22
>>193
170〜200行

何もせずに次の行に行くときは「else goto NNN」は不要。

複数の文を続けて書くときは「:」で区切ること。
and は論理演算子なので、例えば180行目の「y=n and x=x+1」は
y に n を代入し、x に x+1 を代入する
ではなく
y に n と 「x と x+1が等しいかどうかの結果(常に偽=0)」との論理積 を代入する
という意味になる。

x, y の移動先の判別も少々怪しい。
まずx, yを次の位置に移動させておいて、その位置が n×n のマス目から外れていれば
補正するようにした方が良い。
2006/12/26(火) 21:41:34
>>194
できました!
アドバイスありがとうございます。
196デフォルトの名無しさん
垢版 |
2006/12/27(水) 15:07:46
明日までの宿題ができなくて困ってます。
どなたかBASICに詳しい方教えていただけないでしょうか。

電卓のプログラミングなんですが、
一応1+2=3や5×3=15のような簡単な計算はできるようになりました。

しかし、=のあとに数字を打って新しく計算を始めたり
(例えば1+2=7−8=という計算をしたとき、37−8=というようになってしまう)
1+2+3=という計算をするときに、1+2+と打った時点で電卓に3が表示されなくて、
3+3=6という計算結果にすることができません。

どなたかお願いします。
2006/12/27(水) 15:43:43
>196
=を選んだ時点でStringに入れていて
そのまま計算を続行してるからですよ

計算処理時は計算対象が何の変数に入っているのか
解るようにしておきましょう
198デフォルトの名無しさん
垢版 |
2006/12/27(水) 16:15:19
>>197
出来ました!
これで提出できます。
本当にありがとうございました!!
199デフォルトの名無しさん
垢版 |
2007/01/04(木) 19:46:43
ヨーグレット
200デフォルトの名無しさん
垢版 |
2007/01/06(土) 21:16:30
どなたか助けてください。
簡単なことなようなのに、どうしてもできないのです。

”tanX=c/X”を求めようとして調べている間に「高校数学の窓」というページを見つけ、
質問「1126」で下記のようなプログラムを見つけましたが、
このプログラムは”tanX=c/X”ではなくて”tanX=X”を求めるプログラムなのです。
自分で”tanX=c/X”用にアレンジしようとしたのですが、どうして良いのかわかりません。
Basicに詳しいどなたか、どういう風に書き換えればよいのか教えてください。
どうぞよろしくお願いします。

DEF f(x)=x-tan(x)
DEF g(x)=-(tan(x))^2 ! g(x)=f'(x)
INPUT a
LET x=a
LET E=0.000001
DO
LET x1=x-f(x)/g(x)
PRINT x1
IF ABS(x1-x)<E THEN EXIT DO
LET x=x1
LOOP
END
201200
垢版 |
2007/01/06(土) 22:04:49
計算法的なやりかたとしては、f(x) = tan(x)-c/xとおいて,f(x)を微分し,f'(x)=g(x) = 1/cos(x)2+c/x2とお
くと思います。
よろしくおねがいします。
2007/01/06(土) 22:24:11
>>200-201
そこまで考えたのなら、そのまま書いて試してみればいいじゃない。

DEF f(x)=TAN(x)-c/x
DEF g(x)=COS(x)^(-2)+c*x^(-2) ! g(x)=f'(x)
INPUT c, a
LET x=a
LET E=0.000001
DO
LET x1=x-f(x)/g(x)
PRINT x1
IF ABS(x1-x)<E THEN EXIT DO
LET x=x1
LOOP
END
203200
垢版 |
2007/01/06(土) 22:58:42
>>202
ありがとうございます!!。
できてるっぽいです!!。
Basicの言語がわからないので、とても困っていました。
私は「1/cos(x)2+c/x2」をそのままプログラムへ入れました。
やはり表記法が変でしたか・・・?。
ずうずうしくて恐縮なのですが、もう一つ教えてください。
f(x) = tan(x)-c/xとおいた場合の、f(x)の微分「f'(x)=g(x) = 1/(cos(x))^2+c/x^2」と書くのでしょうか?。
204200
垢版 |
2007/01/06(土) 23:30:06
ごめんなさい。最後の行だけ訂正します

f(x) =c/x-tan(x)おくと,f(x)の微分は,f'(x)=g(x) = -c/x^2-1/(cos(x))^2で正しいのでしょうか?。
2007/01/07(日) 00:00:29
http://ja.wikipedia.org/wiki/%E5%BE%AE%E5%88%86
206デフォルトの名無しさん
垢版 |
2007/01/17(水) 05:11:57
正月早々に近所の創価学会員一家が夜逃げしたことがわかりました。この夜逃げは私の住む地域で騒ぎになりました。
創価学会の人たちが「あの一家は信心が無かった」と宣伝して回っていますが真っ赤な嘘です。近所ではよく知られた熱心な信者でした。
羽振りの良い時期にはおだて上げて散々使いまわして、いざ破綻になれば他人事で切り捨てる。
創価学会というのは冷酷な組織だということがつくづくわかりました。

追記 アムウェイやスリムドカン等の代理店をやっていた時期もあったそうです。
http://money4.2ch.net/test/read.cgi/manage/1158633593/
2007/01/18(木) 13:27:41
http://c-docomo.2ch.net/test/-/tech/1165167516/162
208デフォルトの名無しさん
垢版 |
2007/01/23(火) 23:44:57
xの値を0度〜360度、刻み10度で変化したときの、
関数f(x)=sin(x)、f(x)=cos(x)のグラフを作成しなさい。
(1つの画面に2つのグラフを描く、演算子はlocate、line、circle、psetのみ)

よろしくお願いします!!><

2007/01/24(水) 00:03:35
>演算子はlocate、line、circle、psetのみ
難しすぎて出来ません!!><
210208
垢版 |
2007/01/24(水) 00:28:59
>>209
あっ!図形を描くために使う演算子がlocate、line、circle、psetのみであって
for文とか四則演算子も使えます!よろしくお願いします!!
211デフォルトの名無しさん
垢版 |
2007/01/24(水) 01:14:01
>図形を描くために使う演算子がlocate、line、circle、psetのみ
難しすぎて出来ません!!><
2007/01/24(水) 16:20:38
漸化式の計算ってどうすんの?
2007/01/24(水) 22:26:06
>>212
つ for
214デフォルトの名無しさん
垢版 |
2007/01/25(木) 05:54:54
計算したいものがありまして、
見よう見まねでプログラムを作っていますが、どうしてもコンパイルできません。
また、式の最初のπ以降のカッコ内は元の式では、1/n^2exp(-(t*n^2*PI()^2/R/C/L^2))となっています。
For文をうまく組み込めばこの部分ももっと級数を増やして計算できるのかもしれませんが、
組み方もわからないので、非常に困っています。

どなたか手直し等をしてくださいませんか?。
よろしくお願いいたします。


Let I=1.33
Let L=1
Let E=0.0008

Input "Cを入力してください。",C
Input "Rを入力してください。",R

For t=1 to 2500

V=E+/1000*(I*(t/C*L+R*L/3-2*R*l/PI()^2*(1/1^2/EXP(1^2*PI()^2*t/R/C/L^2)+1/2^2/EXP(2^2*PI()^2*s/R/C/L^2)+1/3^2/EXP(3^2*PI()^2*t/R/C/L^2)))))

Print V

Next t

2007/01/25(木) 17:04:45
>>214

E+/1000 ←ここがおかしい
2007/01/25(木) 17:08:03
十進BASICはこれで動いた。意図する式かどうかは

Let I=1.33
Let L=1
Let E=0.0008

Input PROMPT "Cを入力してください。":C
Input PROMPT "Rを入力してください。":R

For t=1 to 2500

LET V=E/1000*(I*(t/C*L+R*L/3-2*R*l/PI^2*(1/1^2/EXP(1^2*PI))))^2*t/R/C/L^2+1/2^2/EXP(2^2*PI^2*s/R/C/L^2)+1/3^2/EXP(3^2*PI^2*t/R/C/L^2)

Print V

NEXT t
END
2007/01/25(木) 21:05:55
>>213
遅かったがサンクスw
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況