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

■ このスレッドは過去ログ倉庫に格納されています
1BASIC
垢版 |
2006/01/09(月) 15:35:00
N人分のデータ(氏名、体重、身長、年齢)がDATA文で入力されているプログラムが
ある。これを用いて次のプログラムをBASICで作成しなさい
身長が160CM以上で170cm未満の人の名前を表示する
2008/02/15(金) 08:20:16
>>284
昔それの一般解出そうとして死んだなぁ

素朴な方法としては,5桁の数値を総当りする方法だな

maxcnt=0
theninit=0
for init=1 to 99999
  n=init
  cnt=0
  *loop
  if n=1 goto *out
  reminder=n mod 2: cnt=cnt+1
  if reminder=1 then n=n*3+1: cnt=cnt+1: print n: goto *loop
  if reminder=0 then n=n/2: cnt=cnt+1: print n: goto *loop
  *out
  if maxcnt<cnt then maxcnt=cnt: theninit=init
next
print "計算処理回数がもっとも多い値="; theninit
286N88互換
垢版 |
2008/02/19(火) 21:07:14
返信遅くなりました!
かなり参考になりました。
ありがとうございました!!
287デフォルトの名無しさん
垢版 |
2008/02/20(水) 21:07:56
文字列変数に[,]が入れたときに動作不良を起こさないのってどうすればいいの?
288デフォルトの名無しさん
垢版 |
2008/03/06(木) 11:03:29
次のフローチャートに入るものがなにか
わからないので、解答をどなたかお願いします;

問1
http://uproda11.2ch-library.com/src/1169912.jpg

問2
http://uproda11.2ch-library.com/src/1169913.jpg

見にくくて申し訳ありませんが
よろしくお願いします。
2008/03/06(木) 11:21:22
>>288
問1
(1)D(M)
(2)80
(3)C1+1 -> C1
(4)C2+1 -> C2
(5)C3+1 -> C3

問2
(1)D -> S
(2)N > 0
(3)D > B
(4)D < S
290デフォルトの名無しさん
垢版 |
2008/06/21(土) 05:20:35
長さが2cm、5cm、7cmの竹ひごがそれぞれたくさんあります。

 いま、これらの竹ひごを合計30本使って、1本の長い棒を作ることにします。(1本も使わない長さの竹ひごがあっても構いません)(※)

 では、 長い棒の長さとして考えられる数は何通りあるでしょうか。


※・・・例えば、「2cmを30本、5cmを0本、7cmを0本」なら60cm、「2cmを2本、5cmを10本、7cmを18本」なら180cmの長い棒ができますね。

この問題を解くためのプログラムを教えてください。お願いします。
291デフォルトの名無しさん
垢版 |
2008/06/21(土) 06:10:06
充足問題を解くのか
動的計画法でいいんかな
微妙に単調増加っぽいけど忘れた
2008/06/27(金) 00:55:42
質問しつれいします。
素数のリストを、有限の自然数N以下に限定しないで次々に書き出す
プログラムを書きたいのですが、どのようにすればいいのでしょうか?
Nを限定した時はDIMを使えば出来たのですが、上のような時はどうすればいいのか。
記憶容量は無視していいそうです。
どなたか回答お願いします。
2008/06/27(金) 16:28:08
>>292

100 ' SOSUU PRINT
110 N=1
120 'SOSUU TYEKKU
130 FOR M=2 TO N-1
140 IF (N MOD M) = 0 THEN GOTO 170
150 NEXT
160 PRINT N;
170 N=N+1
180 GOTO 120
300 END
2008/06/28(土) 00:43:23
メッセージの定義されていないエラーです。
行番号:130
と出て、71までの素数しか表示されないのですが・・・
せっかく答えていただいたのに文句言ってすいません。
どこを改良すればいいのでしょうか?
2008/06/28(土) 08:19:43
>>292
>記憶容量は無視していいそうです。

無限に大きい配列を用意すればいい。
2008/06/28(土) 23:17:12
>無限に大きい配列を用意すればいい。

どうすればいいんでしょうか?
2008/06/29(日) 00:52:56
>>292

100 PRINT 2
110 PRINT 3
120 N=5
130 IF (N MOD 3)=0 THEN GOTO 190
140 I=6 :M=INT(SQR(N))+1
150 IF I>M THEN PRINT N :GOTO 190
160 IF (N MOD (I-1))=0 THEN GOTO 190
170 IF (N MOD (I+1))=0 THEN GOTO 190
180 I=I+6 :GOTO 150
190 N=N+2 :GOTO 130
2008/06/29(日) 01:09:48
できました!
これで単位落とさなくてすみそうです。
本当にありがとうございました。
2008/06/29(日) 08:36:57
できた、じゃなくてやってもらった、だろ。
300学生
垢版 |
2008/07/02(水) 14:07:14
プログラミングの授業でsin30°の値を出したときに0.499999616987256という値が出てきたのですが・・・
普通だったら0.5だがなぜこの値になったのか理由を示せといわれました。
自分には全然わからなかったので是非教えていただきたいのですが、
よろしいでしょうか?
2008/07/02(水) 18:13:21
大卒ニートによる回答
結論から言うと、計算時に誤差が発生しているから。
おそらくπが3.14159と定義されている。

三角関数(SINとか)は確か引数にラジアン単位で指定したような気がした。
ラジアンと度数の変換は「度数×円周率(π)÷180」で出来る。
円周率は無限小数だから、コンピュータ上でそのままの値を扱うのは困難。
なので、πはπそのものではなく、近い数値が割り当てられている。

10 p1=3.1415 : p2=3.14159 : p3=3.1415926535897
20 print sin(30*p1/180) : print sin(30*p2/180) : print sin(30*p3/180)
これの実行結果で発生する誤差を確認の事
302学生
垢版 |
2008/07/03(木) 00:49:58
本当にありがとうございます!
もしよければ、まだ他にsin(30)=0.499999616987256(なぜ0.5でないのか?)
可能性があるとしたら何かありませんか?
2008/07/03(木) 10:50:15
誤差以外に思い当たることはないなぁ。

処理系によって実装の仕方が違うと思うし、どのBASICなのか明示されてないから、これ以上詳しくはわからない。
パソコン上のBASICだと三角関数の引数にはラジアンで指定してやるのが普通。(だった気がする)
ポケコン上のBASICなら度数で指定してやれるものもあった気がする。使った事無いけど。

度数からラジアンに変換して計算する限り、誤差が発生する。
計算結果が小数点以下15位まで求められるのに、それよりもずっと低い精度でπが定義されてるとか。
十分な精度でπが定義されていれば、計算結果を修正して表示する処理系もある。(ような気がする)

もし、sin(30)と指定できて、0.49999616987256が帰って処理系があるとすれば、次のような感じではないだろうか。
・内部的には30°をラジアンに変換している
・変換に使用するπは3.14159と定義されている
・求まる答えは0.49999961698725570...である
・有効桁は小数点以下15位までなので、16位で四捨五入し、0.49999616987256が返ってくる。
もし、有効桁数が小数点以下5位あたりまでであれば、四捨五入されて0.5が返ってきたんじゃないかと。
304学生
垢版 |
2008/07/03(木) 12:00:30
本当にありがとうございます!
305デフォルトの名無しさん
垢版 |
2008/07/04(金) 14:10:01
BASICを勉強しているのは工業系の高校ですか?
普通科高校卒の僕はBASICの宿題がある事を今知りました
2008/07/04(金) 15:33:42
コラコラ、普通科でも数学でBASICやるぞ。
307デフォルトの名無しさん
垢版 |
2008/07/13(日) 16:34:53
質問です。次のようなプログラムを組むにはどうしたらいいのでしょうか?
どれか1つでもいいので分かる方お願いします。

1.八十八夜の月日を求めるプログラムをWHILE繰り返し分を使って作成し、実行しなさい
結果は次のように出力すること
この問題の八十八夜は 月 日となります

2.2の平方根を出力しなさい(二分法による平方根の計算) δ=0.0001とする

3.2の平方根を出力しなさい(ニュートン・ラプソン法による平方根の計算) δ=0.0001とする

308デフォルトの名無しさん
垢版 |
2008/07/14(月) 00:43:52
宿題してるんですけど質問させてください
10 for x=&h61 to &h7A
20 print chr$(x);
30 next x
40 end

run
abcdefghijklmnopqrstuvwxyz

になるんですけど
これを逆順に表示する方法ありますかね
10 for x=0 to 25
20 print chr$(122-x);
30 next x
40 end
な感じでもできるっちゃできるんですけど

アスキーコード?使ってできないですかね。
さっきベーシックはじめて触って苦戦してます。
教えていただきたいです。お願いいたします〜。
2008/07/14(月) 00:47:04
>>308
for x=&f7a to &h61 step -1 ってできなかったっけ?
310デフォルトの名無しさん
垢版 |
2008/07/14(月) 01:06:15
>>309
あ、できましたっ
ありがとうございました!w
2008/07/20(日) 16:57:54
等差数列のプログラムがうまくいかないので、御伝授下さい。


100 REM 等差数列
110INPUT N, A, D
120 S=N{2A+(N-1)*D}/2
130 PRINT "項数=" ; N
140 PRINT "初項=" ; A
150 PRINT "公差=" ; D
160 PRINT "総和=" ; S
170 END
2008/07/20(日) 17:26:19
>>311
> 110INPUT N, A, D
# 110 INPUT N, A, D

> 120 S=N{2A+(N-1)*D}/2
# S=N*(2*A+(N-1)*D)/2
2008/07/20(日) 18:33:58
>>312
ありがとうございます。
助かりました。
314デフォルトの名無しさん
垢版 |
2008/07/24(木) 16:28:20
C言語をBASICに翻訳するソフトをどこで手に入るか教えてください
2008/07/24(木) 22:24:59
>>314
http://www.google.co.jp/
2008/07/24(木) 22:33:52
いやいや、まずないと思うし
万が一あったとしてもBASICとして読んでもわからないプログラムに変換されてるだろ
2008/07/25(金) 00:22:26
まあ今時BASICなんて方言だらけだし
Cと互換性のあるBASICを自分で作っちゃえばいいんじゃね?
2008/07/25(金) 03:23:53
>>314
脳内。手作業でやる以外ないよ。
2008/07/27(日) 08:23:31
Cでマクロを使え

#define if(x) IF (x) THEN
#fefine for(x) FOR _Bas=1 TO x

とか
2008/07/27(日) 11:03:50
むしろアセンブラからBASICのpeek pokeに変換すればいいんでね?
321245
垢版 |
2008/08/05(火) 18:51:42
今日見たら間違えてたことに気が付いた

10 N=0
20 T=0
30 S=0
40 INPUT X
50 N=N+1
60 T=T+X
70 S=S+X^2
80 IF N=1 THEN 40
90 M=T/N
100 V=(S-T^2/N)/(N-1)
110 D= SQR V
120 PRINT "標本数",N
130 PRINT "平均",M
140 PRINT "分散",V
150 PRINT "標準偏差",D
160 GOTO 40
170 END

N = 標本数, T = 総和, S = 平方和, X = 変数
M = 平均, V = 分散, D = 標準偏差
322デフォルトの名無しさん
垢版 |
2008/09/16(火) 06:31:43
半径1の円に内接する正6・2^n角形の1辺の長さをa(n)とすると

a(n)+1=√2-√4-a^2(n)

である、この式を用いると、2から2に極めて近い値を引くことになり
計算の精度が失われる、そこでこの形を採用しないで

a(n)+1=a(n)/√2+√4-a^2(n)
を用いて計算する。

Q・この考え方にしたがってプログラムを作成し、πの近似値を計算せよ。

丸投げで悪いと思ってるんだ…でも自分じゃチンプンカンプンでさっぱりでした。

誰かわかる人頼みます。。。
2008/09/17(水) 02:35:56
>>322
10 A=1:FOR I=1 TO 10:A=A/SQR(2+SQR(4-A*A)):NEXT:PRINT "PI=";A*3072
324デフォルトの名無しさん
垢版 |
2008/09/26(金) 18:39:16
誰か綺麗な花火のプログラム作ってくれ・・・・
授業聞いてなかったから/(^o^)\
学校ではN88互換BASICとかいうの使ってた
325デフォルトの名無しさん
垢版 |
2008/09/26(金) 23:29:19
だれか頼むぜ・・・・・・・・・・・・やはり無理なのだろうか
326デフォルトの名無しさん
垢版 |
2008/09/27(土) 07:57:53
>>325
まずは自分で作ってうpしてね!
2008/11/15(土) 01:59:15
>>324
打ち上げ花火のつもり、縦線はヒューと花火が上がっていくところを表現し
その先端を中心に広がる3つの円はぱっと咲いた花火を表現

10 CLS
20 FOR I = 64 TO 576 STEP 64
30 X=I+12-24*RND : H = 50+RND(1)*100 : R = 50+RND(1)*50
40 CL = 1+RND(1)*7
80 LINE (X,400)-(X,H),CL
90 DR = R/3: R = DR : CF = 1+RND(1)*7
110 CIRCLE (X,H),R,CF
120 R = R + DR : CF = 1+RND(1)*7
130 CIRCLE (X,H),R,CF
150 R = R + DR : CF = 1+RND(1)*7
160 CIRCLE (X,H),R,CF
170 NEXT I
180 END

まあ何だ。以下を参考に自分で作った方がよさげですよ。
ttp://www.geocities.co.jp/Bookend-Kenji/7741/kesayume/photo/fireworks_basic.htm
2008/12/24(水) 06:29:24
>>327
ちなみにそれを実行するのに必要なのはどれですか?

Tiny Basicと仮称(十進)Basicじゃエラーになるけど・・・
2008/12/24(水) 08:17:35
>>329
N88-BASICか、99BASICならいくんじゃない?
試してないけど
2008/12/24(水) 08:50:16
>>327
スクリーンモードはいったいいくつなのよ
2008/12/24(水) 21:18:11
>>330
すいません。質問の意味すらわかりません。
BASIC面白そうだって思って始めようとしたのですがネット上に入門がほとんどない。
C言語の入門はネット上にいくらでもあるのに。
高校でやるならネット上に入門があってもいいような気もするけど。
で、何も知らないのにこのスレを見てロードしてみたと。

>>329
N88互換BASIC for Windowsでやっとこいった。
99BASICはコピペができなかったんで未確認。

たった13行であのグラフィックはすごいですね。

入門書探したけどJustBASICのチュートリアルぐらいしか見つからない。
英語だけど我慢してやってみる・・・
332デフォルトの名無しさん
垢版 |
2009/01/15(木) 06:14:14
サイコロを二つを10000回振って出た
合計の数(2〜12)を配列に記憶して、
最後に2〜12が何回出たか合計を表示するプログラム
basicで作ってください

提出今日までです…

サイコロ二つはa=rnd(6)+1:b=rnd(6)+1で作れって書いてあります
さっぱりわからないです…お願いします。。
2009/01/16(金) 08:21:34
>>332

10 DIM AR(10000)
20 FOR N=1 TO 10000 30
30 A=RND(6)+1:B=RND(6)+1
40 AR(N)=A+B
50 IF AR(N) >= 2 AND AR(N) <=12 THEN J=J+1
60 NEXT
70 PRINT J
80 END
334デフォルトの名無しさん
垢版 |
2009/01/21(水) 15:37:21
3×3行列ABの成分を入力し、それらの和の行列C、差の行列D、積の行列E
を計算するプログラムを作成せよ。
※DIM文、FOR〜NEXT文を使うこと。
※行列成分の入力にはFOR〜NEXT、とINPUT文(READ文)を組み
合わせること。

全くわからん・・・誰か・・・
335デフォルトの名無しさん
垢版 |
2009/01/21(水) 16:41:27
>>334
こういうことかな
1 rem 行列変数準備
2 dim a(3,3)
3 dim b(3,3)
4 dim c(3,3)
5 dim d(3,3)
6 dim e(3,3)
7 rem 行列A読み込み
8 for i = 1 to 3
9 for j = 1 to 3
10 read a(i,j)
11 next j
12 next i
13 rem 行列B読み込み
14 for i = 1 to 3
15 for j = 1 to 3
16 read b(i,j)
17 next j
18 next i

長いので続く
336デフォルトの名無しさん
垢版 |
2009/01/21(水) 16:42:21
>>335 続き
19 rem 行列計算
20 for i = 1 to 3
21 for j = 1 to 3
22 c(i,j) = a(i,j) + b(i,j)
23 d(i,j) = a(i,j) - b(i,j)
24 e(i,j) = a(i,j) * b(i,j)
25 next j
26 next i
50 rem 行列A-data
51 data 1,2,3
52 data 4,5,6
53 data 7,8,9
60 rem 行列B-data
61 data 1,2,3
62 data 4,5,6
63 data 7,8,9
337デフォルトの名無しさん
垢版 |
2009/01/21(水) 16:53:09
>>336 続き
input文を使うなら
10 read a(i,j) を
10 input "行列A(";i;",";j;")=",a(i,j)

16 read b(i,j) を
16 input "行列B(";i;",";j;")=",b(i,j)

にして
50 以下のdataを削除
338デフォルトの名無しさん
垢版 |
2009/01/21(水) 17:27:01
>>336
積の計算間違えた
19〜26をこちらに修正

19 rem 行列計算
20 for i = 1 to 3
21 for j = 1 to 3
22 c(i,j) = a(i,j) + b(i,j)
23 d(i,j) = a(i,j) - b(i,j)
24 for k = 1 to 3
25 e(i,j) = e(i,j) + a(i,k) * b(k,j)
26 next k
27 next j
28 next i
2009/01/21(水) 17:36:00
自然数k,p,qについて
k=mp+nq(m,nは「0以上の整数」)を満たす(m,n)の組の数をv(k)とするとき
p=3, q=7, kが1から100までのときの結果vの一覧を出力したいです
どのように書いたらいいですか?
2009/01/21(水) 17:59:15
>>334-338
ありがとうございます神様
341デフォルトの名無しさん
垢版 |
2009/01/21(水) 18:27:01
>>339
v(k)に複数のn,mがある可能性があるので
条件に一致した時に常時表示していくって感じで
こんなのは?

1 p = 3
2 q = 3
3 k_hit = 100
4 m_max = 100
5 n_max = 100
6 for m = 0 to m_max
7 for n = 0 to n_max
8 k = m * p + n * q
9 if k <= k_hit then print "k=";k;" m=";m;" n=";n
10 next n
11 next m
342デフォルトの名無しさん
垢版 |
2009/01/21(水) 18:35:13
>>341
微修正
2 q=7
9 if k=> 1 and k <= k_hit then print "k=";k;" m=";m;" n=";n
2009/01/21(水) 19:16:42
勝手に仕様を変更しないでくださいw
344デフォルトの名無しさん
垢版 |
2009/01/21(水) 19:29:26
表示されてるのがv(k)の一覧になってるんじゃないの?

1 p = 3
2 q = 7
3 k_hit = 100
4 m_max = 100
5 n_max = 100
6 dim v$(100)
7 for m = 0 to m_max
8 for n = 0 to n_max
9 k = m * p + n * q
10 if k => 1 and k <= k_hit then v$(k) = "(";m;",";n;") "
11 next n
12 next m
13 for k = 1 to k_hit
14 print "k=";k;" ";v$(k)
15 next
345デフォルトの名無しさん
垢版 |
2009/01/21(水) 19:35:34
>>344
6 dim v(100)
10 if k => 1 and k <= k_hit then v(k) = v(k) + 1
14 print "k=";k;" ";v(k)

組み合わせの個数だけが知りたいのなら上記3ヶ所をこのように変更するだけ
2009/01/22(木) 11:38:14
v$(k)の有効な要素数ってsize(v$(k))みたいな方法で取れないのかな
2009/01/22(木) 13:38:12
>>344
上書きして情報減ってるような
348デフォルトの名無しさん
垢版 |
2009/01/22(木) 14:28:32
>>344
>>347の言う通り
直すなら

10 if k => 1 and k <= k_hit then v$(k) = v$(k) + "(";m;",";n;") "

とでもすべきだな
349デフォルトの名無しさん
垢版 |
2009/01/22(木) 20:22:42
お願いします。

標準体重と実際の体重に対するコメントを表示するプログラムを作成する。
入力情報:名前name、身長(cm)h、体重(kg)w
出力情報:標準体重sw、コメント
プログラムの終了:名前が"end"のとき終了
標準体重:身長(m)^2*22

(コメント)
−20%未満:やせすぎ
−20%以上−10%未満:やややせている
−10%以上10%未満:正常
10%以上20%未満:やや太っている
20%以上:太りすぎ
350デフォルトの名無しさん
垢版 |
2009/01/23(金) 14:58:25
10 REM 標準体重計算
20 INPUT "名前=";NAME$
30 INPUT "身長(cm)=";H
40 INPUT "体重(kg)=";W
50 DEF_W = (H/100)^2 * 22
60 PRINT "標準体重=";DEF_W
70 CH_W = ((W / DEF_W) - 1) * 100
80 IF CH_W < -20 THEN PRINT "やせすぎ"
90 IF CH_W => -20 AND CH_W < -10 THEN PRINT "やややせている"
100 IF CH_W => -10 AND CH_W < 10 THEN PRINT "正常"
110 IF CH_W => 10 AND CH_W < 20 THEN PRINT "やや太っている"
120 IF CH_W => 20 THEN PRINT "太りすぎ"
130 IF NAME$ <> "end" THEN 20

もしかしたら
出題者の意図によっては
70 CH_W = W - DEF_W
なのかもしれないが、コメントの判断基準が%(割合)なので
このようにしてある

何かと疑問の残る問題文ではあったがたぶんこんな感じだと思う

↓↓↓疑問点↓↓↓
・コメントを出力するための値(BMI)が指定されていない
 コメント出力には BMI=体重(kg)/身長(m)^2 がよく用いられる

BMIについての参考資料
http://ja.wikipedia.org/wiki/%E6%A8%99%E6%BA%96%E4%BD%93%E9%87%8D
http://www.e-na.co.jp/passage/chek/
http://www11.plala.or.jp/jitensya-tuukin/diet/diet13_1.htm
351デフォルトの名無しさん
垢版 |
2009/01/25(日) 14:59:37
349です。
>>350
ありがとうございました。
352デフォルトの名無しさん
垢版 |
2009/01/31(土) 14:13:27
   A B C 合計 平均
1  80 90 85
2  75 87 54
3  95 78 45
4  58 98 85
合計
平均

この、縦横の合計平均を十進BASICで誰かお願いできないでしょうか?
月曜にテストあるんで・・・
353デフォルトの名無しさん
垢版 |
2009/02/12(木) 18:45:39
f(x)=x^4-2.03790x^3-15.4245x^2+15.6696x+35.4936=0
の最大解をニュートン法で求めよ。 という課題が出て困ってます。
誰か教えてください。  無理ならニュートン法での4次方程式の解き方
だけでもいいので教えてください。
2009/02/13(金) 20:44:16
>>353
十進数BASIC用
100 LET X=5
110 LET E=1E-5
120 DO
130 LET X0=X
140 LET FX0=X^4-2.03790*X^3-15.4245*X^2+15.6696*X+35.4936
150 LET FDX=4*X^3+3*( -2.03790) *X^2+2*( -15.4245) *X+15.6696
160 LET X=X0-FX0/FDX
170 LET FX=X^4-2.03790*X^3-15.4245*X^2+15.6696*X+35.4936
180 PRINT X ;FX
190 LET DFX = ABS(FX-FX0)
200 LOOP WHILE DFX > E
210 END
355デフォルトの名無しさん
垢版 |
2009/02/15(日) 12:19:52
>>354 
ありがとうございました しかし110行で「Eをここに書けません」と出たので110行目を消したできたんですけど
110行目を消しても問題ないですかね?
356デフォルトの名無しさん
垢版 |
2009/02/15(日) 12:23:39
>>354
あと一応結果は4.・・・というのが左に7個と右にいろいろ出ました
2009/02/15(日) 19:01:31
それは本気で言ってるのか?
計算ループの終了条件に使われてるんだから、消して良いわけないだろ。
358デフォルトの名無しさん
垢版 |
2009/02/15(日) 20:03:39
でも消さないと実行できなかったんですけど・・・
ちなみに十進ベーシックです
359デフォルトの名無しさん
垢版 |
2009/02/15(日) 20:08:46
すみません今、実行できました。 
LET E=1 E-5
^ここにスペースを入れてしまったので実行できなかったんですね
ありがとうございました
360デフォルトの名無しさん
垢版 |
2009/02/15(日) 20:21:10
次の連立一次方程式の解をGaussの消去法で求めよ。(有効数字8桁)
3421a+1234b+736c+124d=365
1202a+3575b+874c+210d=256
422a+543b+3428c+428d=444
116a+256b+488c+3627d=868
というのもあるのですが、よかったら教えてくれませんか?
361デフォルトの名無しさん
垢版 |
2009/02/15(日) 20:23:04
すみません
359の「ここ」というのはE=1とE-5の間のことです
2009/02/16(月) 15:08:53
いまだに BASIC の宿題ってポケコン?
2009/02/17(火) 01:00:09
>>360
長いのでC宿題スレのロダに上げといた。結果が科学的表記法で表示されるのは
有効数字8桁で表示するため、7.5102566E-02=7.5102566*10^-2=0.075102566
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8891.txt
364デフォルトの名無しさん
垢版 |
2009/02/17(火) 18:45:53
>>362
高校の選択学習とかいう留年にかかわる面倒な課題ですわ
365デフォルトの名無しさん
垢版 |
2009/02/17(火) 18:47:24
>>363
ありがとうございます
一通り終わってまたわからなかったら聞きに来ますね
366デフォルトの名無しさん
垢版 |
2009/02/17(火) 21:37:40
>>362
今時ポケコンは無いだろ、N88互換BASICとか十進数BASIC辺りじゃね。
367デフォルトの名無しさん
垢版 |
2009/02/20(金) 22:16:10
ファイルに文字列で CHAR$(00) を混ぜて出力しようとしたけど無理だった。
BASICじゃー &h00 をファイルに出力するって出来なかったのかぁ。
2009/02/21(土) 18:26:55
ファイルに文字列で CHA$(00) を混ぜて出力できた。
2009/02/23(月) 16:34:13
CHR$ のことを言ってるんだろうか…。
370デフォルトの名無しさん
垢版 |
2009/04/28(火) 07:15:12
>>360
答え出ますた
a= 0.051810637
b= -0.014019252
c= 0.067333510
d= 0.223948590
です。
371デフォルトの名無しさん
垢版 |
2009/07/19(日) 01:02:31
10 input "n,b";n,b
20 x=1
30 f=x^n-b
40 d1=n*x^(n-1)
50 x1=x-f/d1
60 e=1*10^(-6)
70 if abs(f)<e then goto 100
80 x=x1
85 print x
90 goto 30
100 end

ニュートン法でbのn乗根を求めるプログラム。
これを、bを与えたときx/(x^2+1)=bとなるxを求めるプログラムに書き換えなさい。
また、そのように改変した理由も述べよ。

この問題、わかる人いますか?;;
2009/07/19(日) 10:44:39
低脳
373デフォルトの名無しさん
垢版 |
2009/07/19(日) 13:11:42
f(x) = x^n - b を
f(x) = x/(x^2 + 1) - b に

d1(x) = n*x^(n - 1) を
d1(x) = 1/(x^2 + 1) - 2*x^2*/((x^2 + 1)^2)に

変えたらいいんじゃね?

でも b > 0.5 や b < -0.5 では 解けないかもな
2009/07/26(日) 20:26:02
すみません
問3. M個のデータのうち、その2番目の小さいデータと同じデータの個数を求めるアルゴリズムの流れ図を示せ。
という問題なんですが、だれか簡単に説明してくれませんか(´・ω・`)
375デフォルトの名無しさん
垢版 |
2009/07/27(月) 01:24:57
>>374
プログラムでいうと ↓ な具合です

(defun countm (l)
(let ((n (car (remove (car (sort l #'<)) l))))
(length (remove-if #'(lambda (x) (/= x n)) l))))


仮に

>(defvar d '(3 9 8 0 8 0 6 6 8 2 6 6 1 4 0 9 1 5 1 8 9 7 1 8 8 1 5 5 8 5))
>(countm d)
とすると

5
>
となります。
2009/07/27(月) 01:46:25
↑スレタイ読めバカ
2009/07/27(月) 06:55:43
BASIC最近さわってねーから
「M個のデータのうち、その2番目の小さいデータと同じデータの個数を求める」関数って無かったっけ?
それがあれば f=「 M個のデータのうち、その2番目の小さいデータと同じデータの個数を求める」 っておいて
M個のデータ→f→2番目の小さいデータと同じデータの個数
になるんだけど
2009/07/27(月) 09:31:29
@M個のデータの全部を検索して一番小さいデータの値を求める。
AM個のデータの全部を検索して二番目に小さいデータの値を求める。
BM個のデータの全部を検索して二番目に小さいデータの個数を求める。

もっと効率の良いアルゴリズムがあるのかもしれん
379デフォルトの名無しさん
垢版 |
2009/07/30(木) 12:41:36
basicって今時文法を覚えてる人いないよね
2009/07/30(木) 13:09:51
BASICの文法っても、10個ほどのコマンドを覚えるだけだから....
関数なんかはそのつど取説を参照するし
2009/07/30(木) 13:13:53
max1=a(1) : max2 = a(1) : temp
for i=2 to m
if a(i) > max1 then temp = max1 : max1 = a(i) : max2 = temp
if a(i) > max2 and a(i) < max1 then max2 = a(i)
next i
382デフォルトの名無しさん
垢版 |
2009/08/02(日) 02:01:54
10 dim a(10,11)
20 m=3
30 n=m+1
40 for i=1 to m
50 for j=1 to n
60 read d
70 a(i,j)=d
80 next j
90 next i
100 for k=1 to m
110 p=a(k,k)
120 for j=k to n
130 a(k,j)=a(k,j)/p

続く…
383デフォルトの名無しさん
垢版 |
2009/08/02(日) 02:02:55
>>382続き

140 next j
150 for i=1 to m
160 if (i-k)=0 then goto 210
170 a1=a(i,k)
180 for j=k to n
190 a(i,j)=a(i,j)-a1*a(k,j)
200 next j
210 next i
220 next k
230 for i=1 to m
240 print "x(";i;")=",a(i,n)
250 next i
260 end
270 data 2,1,-3,1,4,1,-2,4,3,2,-1,6

問:4元の連立方程式を実際に解いてみよ。
またこのプログラムで計算できない連立方程式の例を与え,その理由を述べよ。


わかる方、お願いします!!
2009/08/02(日) 13:36:42
とりあえず解けるかどうかは実行してみればいいとして
不能解か多重解か作ればいいの?
x+y+z+w=1
2x+2y+2z+2w=2
3x+3y+3z+3w=3
4x+4y+4z+4w=4
とか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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