身長が160CM以上で170cm未満の人の名前を表示する 0006デフォルトの名無しさん2006/01/15(日) 16:41:53 10 READ $NAME 20 READ $WAIT 30 READ $HEIGHT 40 READ $OLD 60 IF ($HEIGHT>=160)*($HEIGHT<170) THEN PRINT $NAME;$CHR(13) 50 IF (READ<>"END")*($WAIT<>0)*($HEIGHT<>0)*($OLD<>0) THEN 10 70 END 100 REM --BODY INFORMATION-- 110 DATA "SUZUKI",67,150,15 120 DATA "SATOU",80,180,24 130 DATA "ITO",74,170,18 140 DATA "TANAKA",90,190,20 150 DATA "YAMADA",45,168,16 160 DATA "SIMIZU",68,165,18 170 DATA END,0,0,0 180 REM --INFORMATION END-- 0007デフォルトの名無しさん2006/01/15(日) 16:44:31 $の位置が逆じゃね? 0008デフォルトの名無しさん2006/01/15(日) 16:55:11 デバッグしますた。(´・ω・`)ショボーン
10 READ NAME$ 20 READ WAIT 30 READ HEIGHT 40 READ OLD 60 IF (HEIGHT>=160)*(HEIGHT<170) THEN PRINT NAME$;CHR$(13) 50 IF (NAME$<>"END")*(WAIT<>0)*(HEIGHT<>0)*(OLD<>0) THEN 10 70 END 100 REM --BODY INFORMATION-- 110 DATA "SUZUKI",67,150,15 120 DATA "SATOU",80,180,24 130 DATA "ITO",74,170,18 140 DATA "TANAKA",90,190,20 150 DATA "YAMADA",45,168,16 160 DATA "SIMIZU",68,165,18 170 DATA END,0,0,0 180 REM --INFORMATION END-- 0009デフォルトの名無しさん2006/01/15(日) 17:02:15 MZ-1200 SP-5030なら上で動くはずだけど、下の場合は動かない。 でも、Tiny Basic for Windowsだとエラーがでた。 下でないとエラーが出る。
10 READ NAME$ 20 READ WAIT 30 READ HEIGHT 40 READ OLD 50 IF (HEIGHT>=160) and (HEIGHT<170) THEN PRINT NAME$;CHR$(13) 60 IF (NAME$<>"END") and (WAIT<>0) and (HEIGHT<>0) and (OLD<>0) THEN 10 70 END 80 REM --BODY INFORMATION-- 110 DATA "SUZUKI",67,150,15 120 DATA "SATOU",80,180,24 130 DATA "ITO",74,170,18 140 DATA "TANAKA",90,190,20 150 DATA "YAMADA",45,168,16 160 DATA "SIMIZU",68,165,18 170 DATA "END",0,0,0 180 REM --INFORMATION END-- 0010BASIC2006/01/15(日) 20:31:18 N人分のデータ(氏名、体重、身長、年齢)がDATA文で入力されているプログラムが ある。これを用いて次のプログラムをBASICで作成しなさい
年齢が30歳以下の人の、体重と身長の平均値を計算し表示する 0011デフォルトの名無しさん2006/01/15(日) 20:56:11 1 N=10 2 FOR I=1 TO N: READ NA$,W,H,A:IF A<=30 THEN WA=WA+W: HA=HA+H: M=M+1:NEXT 3 IF M<>0 THEN PRINT "30歳以下の平均体重、身長:"; WA/M, HA/M 4 DATA (以下略) 0012デフォルトの名無しさん2006/01/15(日) 23:06:54 お願いします。
期日が迫っているので、だれか早くこたえてくれ!! 0055デフォルトの名無しさん2006/01/25(水) 11:17:34 問題は DATA 文が65536 行あるって点だな。 0056デフォルトの名無しさん2006/01/26(木) 18:29:37>>54 110 N=5 120 INPUT "氏名:";S$ 130 FOR I=1 TO N 140 READ A$,B$,C$ 150 IF S$="氏名" THEN PRINT "住所と電話番号":END 160 NEXT 170 END 180 DATA "鈴木","北海道","AAAA-BB-CCCC" 190 DATA "佐藤","埼玉県","DDD-EEE-FFFF" 200 DATA "伊藤","奈良県","GGG-HHH-IIII" 210 DATA "田中","福岡県","JJJJ-KK-LLLL" 220 DATA "山田","沖縄県","MMMM-NN-OOOO" 0057BASIC2006/02/04(土) 13:46:27 三角関数の値を0度から180度まで計算するプログラム を作成しなさい(FORーNEXTを用いて) ただし、R=3.14159/180とすると、sin(R*30)でsin30度の 値を求めることができる。
値を 0058デフォルトの名無しさん2006/02/04(土) 13:59:11 >値を sin(R*30) = 0.499999616987256 0059デフォルトの名無しさん2006/02/04(土) 19:21:23 プログラミングの勉強をしようと思って、インターネットを使っていろいろ試してみた。 それで最終的にTinyBASICに落ち着いた。 他にもVB.NET・ActiveBasic・REALbasicがあるのを知っている。 その中からTinyBASICを選んだ俺の選択は正しかったですか? 0060デフォルトの名無しさん2006/02/05(日) 06:54:57>>57 10 goto 20 20 for i=0 to 180:print sin(3.1415926535897932384626433832795028841971693993751/180*i):next 30 rem sin関数ってラジアンなんですか? 0061デフォルトの名無しさん2006/02/07(火) 18:42:41 お願いします。
1.SQR(N)を用いて、2から10までの自然数について、 Nとその平方根を表示するプログラムつくれ ヒント:fo 〜 next
100 ' 1. 110 FOR N=2 TO 10: PRINT N, SQR(N): NEXT 120 ' 2. 130 INPUT "N=";N: S=0: FOR I=1 TO N: S=S+I: NEXT: PRINT S, N*(N+1)/2 140 ' 3. 150 S=10: FOR D=0 TO 180 STEP S: PRINT D, SIN(D*3.14/180), SIN((180-D)*3.14/180): NEXT 0063612006/02/07(火) 19:53:48>>62 ありがとうございました。 0064デフォルトの名無しさん2006/02/08(水) 14:39:42>>59 There are a lot of roads that can be chosen. However, the aimed top is one. 0065デフォルトの名無しさん2006/02/10(金) 02:05:17 ぬるぽ 0066デフォルトの名無しさん2006/02/14(火) 02:02:30 _ ┌――─┴┴─――┐ │ セルフサービス .│ └―――┬┬─――┘ ││ ./ ゛゛'゛'゛ / / | \/ \ \ \ノ
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 0074デフォルトの名無しさん2006/05/17(水) 21:55:41 -------------------------- 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 0075デフォルトの名無しさん2006/05/17(水) 21:56:43 -------------------------- Private Sub Command12_Click() tasu = Val(Text1.Text) hiku = Val(Text1.Text) kakeru = Val(Text1.Text) waru = Val(Text1.Text)
Select Case Val(Text1.Text)
Case 1 Select Case Val(Text1.Text)
Case 1 tasu = tasu + a Text1.Text = tasu
Case 2 tasu = tasu + b Text1.Text = tasu
Case 3 tasu = tasu + c Text1.Text = tasu
Case 4 tasu = tasu + d Text1.Text = tasu
Case 5 tasu = tasu + e Text1.Text = tasu 0076デフォルトの名無しさん2006/05/17(水) 21:57:22 Case 6 tasu = tasu + f Text1.Text = tasu
Case 7 tasu = tasu + g Text1.Text = tasu
Case 8 tasu = tasu + h Text1.Text = tasu
Case Else tasu = tasu + i Text1.Text = tasu 0077702006/05/19(金) 00:56:45 やはり難しいのでしょうかね 弟の高校の課題っぽいんですが、Cで作ったら全然違うとのこと 資料を送ってもらったらBASICっぽいのですが、BASICなんて分からないです… gcmとかlcmで一発で動いてくれるようなコマンドはないのでしょうかね… 0078デフォルトの名無しさん2006/05/20(土) 03:36:37>>77 なあなあ、お前完全に>>72に騙されてるんだが。 0079デフォルトの名無しさん2006/05/20(土) 11:13:57>>78 誰も書いてくれないので難しいものなのかなと思いましたが そんなわけないですよね。
#include <stdio.h> int lcm(int x,int y,int z); main() { int a,b,c,d; printf("整数aを入力 "); scanf("%d",&a); printf("整数bを入力 "); scanf("%d",&b); printf("整数cを入力 "); scanf("%d",&c); d = lcm(a,b,c); printf("%d と %d と %d の最小公倍数は %d です。\n",a,b ,c,d); } int lcm(int x,int y,int z) { int answer; answer = x; while(1){ if(answer % y == 0 && answer % z == 0) break; answer += x; } return answer; } 0081デフォルトの名無しさん2006/05/20(土) 12:39:42>>80 残りのUI関係は自分でやっとくれ。
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 0082デフォルトの名無しさん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 0083デフォルトの名無しさん2006/05/20(土) 15:41:02>>81-82 ありがとうございました。 0084デフォルトの名無しさん2006/05/25(木) 23:18:38 ピクチャーボックスにrgbを使って上から順に明るい色から暗い色の グラディエーションを表示するプログラムの作成お願いします。 0085デフォルトの名無しさん2006/05/25(木) 23:59:32 嫌です。 0086デフォルトの名無しさん2006/05/29(月) 20:32:36 好きな数字を入力して、その1部や全体が連続して居ないか調べて、 もしあればその部分を知らせるプログラムお願いしますm_ _m
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 0089862006/05/29(月) 23:02:07>>88 ありがとうございます 0090デフォルトの名無しさん2006/06/12(月) 15:39:03>>50 腹抱えてワロタ 0091デフォルトの名無しさん2006/06/15(木) 22:56:25 プログラムに時間の間を与えるにはどうすればいいんでしょうか? たとえば実行してから1秒後に"1秒経過しました"と表示させる場合とか。 0092デフォルトの名無しさん2006/06/16(金) 00:20:11>>91 つ TIME$ 0093デフォルトの名無しさん2006/06/16(金) 18:00:01>>91 1 sleep(1000) 2 print "1秒経過しました" 0094912006/06/17(土) 00:14:03>>93 サーンクス!! 0095デフォルトの名無しさん2006/06/18(日) 16:40:09 beep音て変えれないの? 0096デフォルトの名無しさん2006/06/18(日) 16:52:14>>95 つ play 0097デフォルトの名無しさん2006/06/19(月) 00:32:40 BEEP音でPCM再生とか昔あったなぁ 0098デフォルトの名無しさん2006/06/19(月) 01:55:56 a=FIX(RND(1)*10):b=FIX(RND(1)*10) c=a+b PRINT c
ちなみに>>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 で 0104デフォルトの名無しさん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 0105デフォルトの名無しさん2006/06/21(水) 12:17:43 PRINT "個数";N PRINT "合計";S PRINT "最大値";MAX PRINT "最小値";MIN PRINT "平均"; PRINT USING"#####.#":MEAN END らしい…分からんてorz 0106デフォルトの名無しさん2006/06/24(土) 00:10:54 同じ行内で文字色を変えるにはどうすればいいんですか? たとえば PRINT "赤""青" の赤を赤色、青を青色にする感じです。
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
よろしくお願いします!! 0138デフォルトの名無しさん2006/07/23(日) 16:40:04 誰かおながい 0139デフォルトの名無しさん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 0140名無しさん2006/07/23(日) 22:11:08>>139 ありがとうございます! 桁数を自分で指定して計算させられるようにできませんでしょうか?? 3桁以外も計算してみたいので。。。 わがままいって申し訳ございません・・・ よろしくお願いします! 0141デフォルトの名無しさん2006/07/23(日) 22:39:12>>140 求めたい桁数に合わせて自分で改造すれ 0142名無しさん2006/07/23(日) 22:42:49>>139 これだと、なんか余計なものまで表示されてるな。。。 >>137の言っているのは、 370とか、407みたいな、3桁の数の時はそれぞれの桁の数を3乗するってことだろ??
370=3^3+7^3+0^3とか。
ってことは>>139だとちょっと余分なものまで表示されてるぞ。 0143デフォルトの名無しさん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でやった。
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 0151デフォルトの名無しさん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
自分でやるべきなのですが、分からなくて・・ 早急に解答が欲しいのですが、教えて頂ける方がおられましたら どうか宜しくお願いします 0176デフォルトの名無しさん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 0177デフォルトの名無しさん2006/12/08(金) 02:58:25>>175 10 PRINT "糞して寝ろ" 0178デフォルトの名無しさん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
0179デフォルトの名無しさん2006/12/10(日) 00:07:39 xの値が-2〜2変化したときの、関数f(x)=sin(1/x)のグラフと、 xの値が0〜4変化したときの、関数f(x)=cos(x^2)のグラフを描く プログラムを教えてください。どうかお願いします。 0180デフォルトの名無しさん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 0181デフォルトの名無しさん2006/12/10(日) 15:14:22>>180 やってもらった後で大変申し訳無いんですが、 N88互換BASICで出来るものをお願いします。 書き忘れててすいません。 0182デフォルトの名無しさん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 0183デフォルトの名無しさん2006/12/10(日) 18:00:28>>182 psetやlineを使わないといけないみたいなんです。 たびたびで本当に申し訳無いんですが、 どうかお願いします。 0184デフォルトの名無しさん2006/12/10(日) 19:09:21>>183 条件は最初に全部書け て言うかもう問題文全部そのまま晒せ 0185デフォルトの名無しさん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についてです。 0186デフォルトの名無しさん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 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次方程式を解きなさい。 値は自作する。
どうかよろしくお願いします! 0189デフォルトの名無しさん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
どうしてもわかりません・・・ どうか宜しくお願いします。 0192デフォルトの名無しさん2006/12/25(月) 23:17:33>>191 >>340193デフォルトの名無しさん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 0194デフォルトの名無しさん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)」との論理積 を代入する という意味になる。
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 02012002007/01/06(土) 22:04:49 計算法的なやりかたとしては、f(x) = tan(x)-c/xとおいて,f(x)を微分し,f'(x)=g(x) = 1/cos(x)2+c/x2とお くと思います。 よろしくおねがいします。 0202デフォルトの名無しさん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 02032002007/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」と書くのでしょうか?。 02042002007/01/06(土) 23:30:06 ごめんなさい。最後の行だけ訂正します
Let Iapp=1.33 Let Ei=0 Let Cs=1 Let Rs=0.001 Input "Cを入力してください。",CtL Input "Rを入力してください。",RtL For t = 1 to 1300 For n=1 to 100 Let a=n*PI() Let c=Cs/CtL DEF f(x)=TAN(x)-c/x DEF g(x)=COS(x)^(-2)+c*x^(-2) LET x=a LET E=0.000001 DO LET x1=x-f(x)/g(x) IF ABS(x1-x)<E THEN EXIT DO LET x=x1 LOOP S=0 S=S+cos(X1)*EXP(-t*X1^2/RtL/CtL)/(X1*((CtL+Cs)*sin(X1)+X1*CtL*cos(X1))) Next n V=Ei+1/1000*(Iapp*(Rs+2*t/(2*CtL+Cs)+RtL*CtL^2*(8*CtL+5*Cs)/(6*(2*CtL+Cs)^2)-2*RtL^2*S)) Print V Next t END 02212172007/01/27(土) 01:57:24 問題点がわかりました。 級数の数を決定するステップでFor文を使用してしまった為に、 tanx=c/xがちゃんと計算できてないだけでした。 しかし、For文の他に何度も計算させるコマンドがわかりません。 どうしたら良いでしょうか?。 0222デフォルトの名無しさん2007/01/27(土) 01:59:14 IF と GOTO 使え。 それが基本(w 0223デフォルトの名無しさん2007/01/27(土) 02:03:14 DO LOOP DO WHILE LOOP WHILE LOOP UNTIL
アドバイスありがとうございました。 自分で調べてやってみましたが、どうもまだ違うようです。 どこを間違えたのでしょうか?。 また手直しをしてください。お願いします。 ↓ 02252172007/01/27(土) 02:26:36 Print"Rs(単位 Ω)=(=γ*RtL)=",Rs Print"Cs(単位 F)=(=θ*CtL)=",Cs Input "CtLを入力してください(単位 F).",CtL Input "RtLを入力してください(単位 Ω).",RtL Print "Emeas/V" For t = 1 to 1300 n=0 While n <=100 n=n+1 Let a=n*PI() Let c=Cs/CtL DEF f(x)=TAN(x)-c/x DEF g(x)=COS(x)^(-2)+c*x^(-2) LET x=a LET E=0.000001 DO LET x1=x-f(x)/g(x) IF ABS(x1-x)<E THEN EXIT DO LET x=x1 LOOP S=0 S=S+cos(x1)*EXP(-t*X1^2/RtL/CtL)/(x1*((CtL+Cs)*sin(x1)+x1*CtL*cos(x1))) Wend Emeas=Ei+1/1000*(Iapp*(Rs+2*t/(2*CtL+Cs)+RtL*CtL^2*(8*CtL+5*Cs)/(6*(2*CtL+Cs)^2)-2*RtL^2*S)) Print a Next t END 0226デフォルトの名無しさん2007/01/27(土) 03:05:34>>225 何をしたいのかよくわからんな。 ニュートン法か? 計算の元になる文献かPDFへのリンクを貼ってくれないか?
0234デフォルトの名無しさん2007/01/30(火) 12:01:21 ニュートン法を教えてください 0235デフォルトの名無しさん2007/01/30(火) 21:09:54>>234 DEF f(x) = x^2 - 2 DEF df(x) = 2*x LET EPS = 0.000001 LET IMAX = 1000 LET x = 2 FOR i=1 TO IMAX LET x1 = x - f(x) / df(x) IF ABS(x1 - x) < EPS THEN EXIT FOR LET x = x1 NEXT i IF i < IMAX THEN PRINT x1 END 0236デフォルトの名無しさん2007/02/02(金) 23:51:26 10CLEAR :CLS 20DIM A(2),B(2) 30FOR J=0 TO 2 40A(J)= RND 6-1 50NEXT 60*MAIN 70LOCATE 0,0 80FOR J=0 TO 2 90IF B(J)=0 LET A(J)=(A(J)+1) MOD 6 100PRINT MID$ ("$*\7+&",A(J)+1,1); 110NEXT 120C= ASC INKEY$ -49 130IF C>-1 AND C<3 IF B(C)=0 LET D=D+1,B(C)=1 140IF D<3 GOTO *MAIN 150IF A(0)=A(1) AND A(1)=A(2) PRINT " GOOD" 160CALL 48381 170GOTO 10
どうやって解けばいいでしようか どなたかお願いします 0239デフォルトの名無しさん2007/02/18(日) 15:51:52>>238 100 CLS 3:DIM D(6):FOR I=1 TO 6:D(I)=0:NEXT I:RANDOMIZE 10 110 FOR I=1 TO 100:N=INT(RND*6)+1:D(N) = D(N) + 1:NEXT I 120 LINE (100,10)-(100,300),7:LINE(100,300)-(580,300),7 130 FOR I=1 TO 6:LOCATE 11+10*I,19:PRINT I;:NEXT I 140 FOR I=0 TO 6:LOCATE 9,18-I*3:PRINT I*5;:NEXT I 150 PSET(180,300-D(1)*10),7 160 FOR I=1 TO 6 170 LINE-(I*80+100,300-D(I)*10),7 180 LOCATE I*10+10,18-INT(D(I)*3/5):PRINT D(I); 190 NEXT I 200 LOCATE 0,20 0240デフォルトの名無しさん2007/02/18(日) 17:41:25>>239 遅くなりました!有り難うございます 0241デフォルトの名無しさん2007/02/25(日) 18:31:08 簡単な自分の好きなゲームを2つ作りなさい。 ただし数当てゲームは無しとする。
10 REM TAIPINGU GE-MU 20 A$ = "RENSYUU SHITAI MOZIRETSU" 30 PRINT A$ 40 INPUT B$ 50 IF A$ = B$ THEN 80 60 PRINT "TIGAIMASU" 70 GOTO 30 80 PRINT "OWARI" 90 END
100 'NOURYOKU TORE-NINGU 110 SCREEN 0,1:CONSOLE ,,0,1:CLS 3:DEFINT A-Z 130 SIZ = 9:MAX = 100 : WAITCOUNT =10000 140 RANDOMIZE VAL(RIGHT$(TIME$,2)) 150 FOR I=0 TO SIZ 160 Q(I) = RND(MAX):ANS = ANS + Q(I) 170 NEXT 180 FOR I=0 TO SIZ 190 PRINT Q(I) 200 GOSUB *SWAIT 210 CLS 220 NEXT 230 INPUT "GOUKEI";G$ 240 IF VAL(G$) = ANS THEN PRINT "SEIKAI!":END 250 PRINT "ZANNEN!":END 300 *SWAIT 310 FOR S=0 TO WAITCOUNT :NEXT 320 RETURN 0243デフォルトの名無しさん2007/02/25(日) 20:43:42>>241 10 REM 4,6で左右移動 20 CONSOLE 0,14,0,1:CLS 3:X=320:Y=199:K=0:W=0 30 A$=INKEY$ 40 IF A$="4" THEN X=X-1:IF X<0 THEN X=0 50 IF A$="6" THEN X=X+1:IF X>639 THEN X=639 60 FOR I=1 TO 10:PSET(RND(1)*640,399),3:NEXT 70 ROLL 1 'ActiveBasicの場合は ROLL 0,-1 80 IF POINT(X,Y)=3 THEN PRINT "走行距離";K;"m":END ELSE K=K+1 90 PSET(X,Y),1:FOR I=1 TO W:NEXT:GOTO 30
100 REM じゃんけんゲーム 110 CLEAR:DIM A$(3),B$(3),H(3,3),S(3) 120 A$(1)="グー":A$(2)="チョキ":A$(3)="パー":S(1)=0:S(2)=0:S(3)=0 130 B$(1)="あいこ":B$(2)="あんたの勝ち":B$(3)="あんたの負け" 140 H(1,1)=1:H(1,2)=2:H(1,3)=3:H(2,1)=3:H(2,2)=1:H(2,3)=2:H(3,1)=2:H(3,2)=3:H(3,3)=1 150 CLS:PRINT "じゃんけんゲーム" 160 INPUT "(1:グー, 2:チョキ, 3:パー, 0:やめる)"; N1 170 IF N1=0 THEN GOTO 220 ELSE IF N1>=1 AND N1<=3 THEN GOTO 190 180 GOTO 160 190 N2=INT(RND(1)*3)*Z+N1-1:IF N2<1 THEN N2=3 200 K=H(N1,N2):S(K)=S(K)+1 210 PRINT "あんた:";A$(N1), "俺:"A$(N2)," ";B$(K):PRINT:GOTO 160 220 PRINT S(2);"勝", S(3);"敗", S(1);"引き分け":END 0244デフォルトの名無しさん2007/02/28(水) 00:14:40 ありがとうございます! おかげさまでとても助かりました! 0245デフォルトの名無しさん2007/03/22(木) 23:32:51 統計の平均と標準偏差をポケコン(PC-G850)で計算したいんだけど、 プログラムをすっかり忘れたので教えて。
どうしてもわかりません… お願いします。 0262デフォルトの名無しさん2008/01/24(木) 15:07:13 10 OPTION BASE 1 20 FOR I=1 TO 5 30 FOR K=1 TO 5 40 READ A(I,K) 50 NEXT:NEXT 60 GOTO 0 0263デフォルトの名無しさん2008/01/24(木) 19:05:09 VISUAL BASIC で学生人数の平均を出す プログラムを作りたいのですが、どういうようなコードを 書けばいいかわかりません・・・・・。 コマンドボタンを押すと、Text欄に社員が10人の平均が出力されるような・・・ものです。 自分何とかで調べたのですが、演算(+, /, * )を使うまではわかりました。 0264デフォルトの名無しさん2008/01/24(木) 19:05:41 訂正 社員でなく学生です 0265デフォルトの名無しさん2008/01/24(木) 21:04:14 問題12 xの値を0〜360度、10度刻みで変化したときの、関数f(x)=sin(x)、f(x)=cos(x)のグラフを同画面上に描きなさい。 N88互換BASICでよろしくお願いします。 0266デフォルトの名無しさん2008/01/24(木) 23:02:23>>265 10 CLS 20 YS1=INT(-100*SIN(0)+200) 30 YC1=INT(-100*COS(0)+200) 40 X=0 50 FOR I=10 TO 360 STEP 10 60 S=3.14159/180*I 70 YS2=INT(-100*SIN(S)+200) 80 YC2=INT(-100*COS(S)+200) 90 LINE(X,YS1)-(I,YS2),2 100 LINE(X,YC1)-(I,YC2),3 110 YS1=YS2 120 YC1=YC2 130 X=I 140 NEXT I 150 LINE(0,200)-(360,200),1 160 END 0267デフォルトの名無しさん2008/01/25(金) 07:10:38>>266 ありがとう御座いました。 0268デフォルトの名無しさん2008/01/29(火) 15:53:57 これ最短でゴールするようにプログラムつくってくれませんか? できればゴール後パフォーマンスもお願いします
http://imepita.jp/20080129/5649900269デフォルトの名無しさん2008/01/29(火) 23:57:59 国旗(何でもよし。でもちょっとだけ手間かかるほうがいいかも)2つ書くプログラミングと、 簡単なゲームのプログラミング(それか実行押すと絵が変わるのとかの)どなたかお願いします!! 単位かかってて切実です・・・ お願いします! 0270デフォルトの名無しさん2008/01/30(水) 01:18:44>>269 フランスとチェコの国旗(N88互換BASIC用) 10 CLS 20 LINE(15,100)-(115,300),1,BF 30 LINE(115,100)-(215,300),7,BF 40 LINE(215,100)-(315,300),2,BF 50 FOR Y=100 TO 200 60 XM=225+Y 70 LINE(325,Y)-(XM,Y),1 80 LINE(XM,Y)-(625,Y),7 90 NEXT Y 100 FOR Y=200 TO 300 120 XM=625-Y 120 LINE(325,Y)-(XM,Y),1 130 LINE(XM,Y)-(625,Y),2 140 NEXT Y 150 END 0271デフォルトの名無しさん2008/01/30(水) 08:49:06 268 はライントレーサーです お願いします 0272デフォルトの名無しさん2008/01/31(木) 04:53:44>>268は、ライントレーサーでハードウェアの仕様もAPIもわからずに、 どうやって解けとwwwww
丸投げにもほどがあるwwww 0273デフォルトの名無しさん2008/02/07(木) 04:53:46 TINY Basic について a1=√(1/2) a2=√(1/2)×√((1/2)+(1/2)√(1/2)) a3=√(1/2)×√((1/2)+(1/2)√(1/2)) ×√((1/2)+(1/2)((1/2)+(1/2)√(1/2))) … とするとき、 nを入力すればanが出力されるプログラムってどう書くのですか? 0274デフォルトの名無しさん2008/02/07(木) 09:32:12 WAITってw 0275デフォルトの名無しさん2008/02/07(木) 12:09:57>>272 式を生成するんじゃなくて数値を計算するんだよね? こんな感じでどうかな。 n = 1 Do Until n = 0 Input "n (0で終了)"; n If n<> 0 Then Print A(n) Loop End Function A(n) If n = 1 Then A = Sqr(1/2) Else A = A(n-1) * Sqr(B(n)) End If End Function Function B(n) If n = 1 Then B = Sqr(1/2) Else B = 1/2 + 1/2 * B(n-1) End If End Function 0276デフォルトの名無しさん2008/02/07(木) 12:19:38>>272じゃなくて>>273だった。 02772732008/02/07(木) 12:41:36>>275 ご協力ありがとうございます。 申し訳ありません… "2/an を出力" でした。 "print 2/A(n)"と書きかえればよろしいでしょうか。 2/anの極限はπ(=3.1415…)になるそうですが… 02782732008/02/07(木) 12:47:33 たびたびすみません。 a3=√(1/2)×√((1/2)+(1/2)√(1/2)) ×√((1/2)+(1/2)√((1/2)+(1/2)√(1/2))) です。すみません 0279デフォルトの名無しさん2008/02/07(木) 13:46:29 3行直せば大丈夫。
If n<> 0 Then Print A(n) → If n > 0 Then Print 2/A(n) B = Sqr(1/2) → B = 1/2 B = 1/2 + 1/2 * B(n-1) → 1/2 + 1/2 * Sqr(B(n-1))
0308デフォルトの名無しさん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 な感じでもできるっちゃできるんですけど
アスキーコード?使ってできないですかね。 さっきベーシックはじめて触って苦戦してます。 教えていただきたいです。お願いいたします〜。 0309デフォルトの名無しさん2008/07/14(月) 00:47:04>>308 for x=&f7a to &h61 step -1 ってできなかったっけ? 0310デフォルトの名無しさん2008/07/14(月) 01:06:15>>309 あ、できましたっ ありがとうございました!w 0311デフォルトの名無しさん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 0312デフォルトの名無しさん2008/07/20(日) 17:26:19>>311 > 110INPUT N, A, D # 110 INPUT N, A, D
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
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 0334デフォルトの名無しさん2009/01/21(水) 15:37:21 3×3行列ABの成分を入力し、それらの和の行列C、差の行列D、積の行列E を計算するプログラムを作成せよ。 ※DIM文、FOR〜NEXT文を使うこと。 ※行列成分の入力にはFOR〜NEXT、とINPUT文(READ文)を組み 合わせること。
全くわからん・・・誰か・・・ 0335デフォルトの名無しさん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
長いので続く 0336デフォルトの名無しさん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 0337デフォルトの名無しさん2009/01/21(水) 16:53:09>>336 続き input文を使うなら 10 read a(i,j) を 10 input "行列A(";i;",";j;")=",a(i,j)
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 0339デフォルトの名無しさん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の一覧を出力したいです どのように書いたらいいですか? 0340デフォルトの名無しさん2009/01/21(水) 17:59:15>>334-338 ありがとうございます神様 0341デフォルトの名無しさん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 0342デフォルトの名無しさん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 0343デフォルトの名無しさん2009/01/21(水) 19:16:42 勝手に仕様を変更しないでくださいw 0344デフォルトの名無しさん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 0345デフォルトの名無しさん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)
もっと効率の良いアルゴリズムがあるのかもしれん 0379デフォルトの名無しさん2009/07/30(木) 12:41:36 basicって今時文法を覚えてる人いないよね 0380デフォルトの名無しさん2009/07/30(木) 13:09:51 BASICの文法っても、10個ほどのコマンドを覚えるだけだから.... 関数なんかはそのつど取説を参照するし 0381デフォルトの名無しさん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 0382デフォルトの名無しさん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
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
0391デフォルトの名無しさん2009/08/25(火) 11:19:29 DEF FNCSTR$(A!) = MID$(STR$(A!), 2+(A!<0)) こんな感じだっけ・・・うろ覚え 0392デフォルトの名無しさん2009/08/25(火) 12:29:06>>388 マルチすんな 0393デフォルトの名無しさん2009/08/26(水) 21:19:54 十進BASICでのコンビネーションの計算をお願いします!! 0394デフォルトの名無しさん2009/09/03(木) 10:47:52 BASIC繁栄時代があったらしい 0395デフォルトの名無しさん2009/09/04(金) 18:54:18 変数名.N$ って、何を指したっけ? 0396デフォルトの名無しさん2009/09/04(金) 19:42:33 $は文字変数を意味する。 0397デフォルトの名無しさん2009/09/05(土) 19:40:10>>393 つ COMB(n,r) 0398デフォルトの名無しさん2009/09/23(水) 12:28:54 なあ、セーブ機能付きレジ打ちのプログラム打ちたいんだが お前らならどんなプログラム打つ? 0399デフォルトの名無しさん2009/09/23(水) 12:42:45 お前はプログラミングに向いてない 0400デフォルトの名無しさん2009/09/23(水) 16:38:53 できたらやってあげたいがな… 0401デフォルトの名無しさん2009/09/26(土) 18:41:31>>398 テストの前日になって質問ですかw とりあえず学校こなくていいよ 0402デフォルトの名無しさん2009/09/29(火) 17:37:29 覆面算 ルール1 文字はそれぞれの桁の文字を表す ルール2 異なる文字は異なる数字を表し、同じ文字は同じ数字を表す ルール3 左端の数字は0ではない ルール4 (パズルとしては)答えが一つとなる 下のプログラムはルール2を完全に考慮していない。 個々の文字は互いに異なるという条件があるからである。 この条件を取り入れるにはこのプログラムをどのように 直したらよいか。該当箇所の変更前と変更後を答えよ。 Option Explicit Sub ex3() Dim a As Integer, b As Integer, c As Integer, d As Integer Dim x As Integer, y As Integer, z As Integer For a = 1 To 9 For b = 0 To 9 For c = 0 To 9 For d = 1 To 9 x = a * 100 + b * 10 + b y = d * 100 + d * 10 + c z = a * 1000 + a * 100 + a * 10 + d If x + y = z Then MsgBox "a=" & a & ", b = " & b & ", c = " & c & ", d = " & d End If Next d Next c Next b Next a End Sub 0403デフォルトの名無しさん2009/10/03(土) 16:39:57 @subを用いて2つの分母の異なった(2/3+5/7など)分数の和を計算するプログラムを作成せよ。 実行結果は約分すること
A Functionを用いてヘロンの公式を実装せよ。 三辺の長さから3角形の面積を求める ただし、3編の長さより三角形が成立しない場合は、除外する仕様とせよ
For x=0 to 255 For y=0 to 255 For z=0 to 255 Z=z IF Z>=Zmin Z<=Zmax then X=10*(x-128)+Xc Y=10*(y-128)+Yc PSET(X,Y),RGB(x,y,z) Endif Next z Next y Next x
H:色相(0<= H =<360,H=H+360×n) 主波長 360度モデル) H=60*(G-B)/(MAX(R,G,B)-MIN(R,GB))+0 if MAX(R,G,B)=R H=60*(B-R)/(MAX(R,G,B)-MIN(R,GB))+120 if MAX(R,G,B)=G H=60*(R-G)/(MAX(R,G,B)-MIN(R,GB))+240 if MAX(R,G,B)=B H=0 赤 H=120 緑 H=240 黄
S:彩度(0<= S <=1) 主波長の頻度分布 円柱モデル) S=(MAX(R,G,B)-MIN(R,G,B))/MAX(R,G,B) S=0 無彩色 0< S =< 1 有彩色 S=1 純色 円錐モデル) S=MAX(R,G,B)-MIN(R,G,B) S=0 無彩色 0< S =< 1 有彩色 S=1 純色
V:明度・強度(0<= V =<1) 総スペクトルパワー・最大振幅 逆円錐) V=max(R,G,B) V=1 純色 0< V <1 通常色 V=0 黒
総労働時間123時間30分 などという用に作りたいのですが、 timeserial関数を使って計算したところ24時間以降はまた1になってしまいます。 何かいい方法はないでしょうか? 0500デフォルトの名無しさん2010/09/11(土) 00:28:19 ↑ 解決しました。すいません dim t as date dim c as double
End Sub ---------------------------------------------------------------- End Subより手前に書かなければ、有効な範囲でなくなるため呼び出せません。 Exit Subで区切っておかないと、最後にサブルーチンが実行されてしまいます。 0512デフォルトの名無しさん2010/09/18(土) 14:43:14 サブルーチンをプロシージャに独立させてしまい、callで呼び出す方法 (サブルーチンで共通処理だけさせる) -------------------------------- Sub......
............... Call A ..............
End Sub ----------------- Sub A
..............
End Sub 0513デフォルトの名無しさん2010/09/18(土) 15:02:38 Sub A(ByVal 引数)と指定しておけば、Call A(引数)を使用することで、 プロシージャ(サブルーチン)に引数を送って処理の際に利用できます。 By ValとBy Refでは、呼び出し元の値を変更できないのかできるのかが異なります。
Function Aは、何らかの引数をもらって処理を行い、何らかの戻り値を返します。 Functionでは戻り値を直接式に代入できます。 ---------------------------------- Sub......
C=A(10)
End Sub ----------------- Function A(ByVal B)
A=B*3.14 Exit Function
End Function ---------------------------------- 関数Aのルーチンでは、引数(B=10)に3.14を乗算する処理をしていますので、Cには戻り値(計算結果の31.4)が代入されます。 0514デフォルトの名無しさん2010/09/18(土) 18:17:10 Functionの使い方は何となくわかりましたが、SubのBy ValとBy Refの違いがよくわかりません。