|
> No.3138[元記事へ]
続き
> 福島工業高等専門学校 情報処理教育センター
気になるもの、、、
第3回
1.
INPUT PROMPT "球の半径r=": R
PRINT "表面積="; 4*PI*R*R
END
2.
INPUT PROMPT "t=": t
PRINT 9.8*t*t/2
END
3.
INPUT PROMPT "時速(単位は㎞)a=": a
PRINT "秒速"; a*1000/3600; "m"
END
4.
INPUT PROMPT "身長(単位はm)a=": a
INPUT PROMPT "体重(単位は㎏)b=": b
LET BMI=b/(a*a)
PRINT "BMI="; BMI
IF BMI>=25 THEN
PRINT "太りすぎかも"
ELSE
IF BMI<18 THEN
PRINT "やせすぎ"
ELSE
PRINT "標準"
END IF
END IF
END
5.
INPUT PROMPT "水A[g]=": A
INPUT PROMPT "食塩B[g]=": B
PRINT B*100/(A+B); "%"
END
6.
SET WINDOW -5,5,-5,5
DRAW AXES
FOR x=-4 TO 4 STEP 0.5
PLOT LINES: x,0; 0,x
NEXT x
END
9.
INPUT PROMPT "正の整数n=": N
FOR i=1 TO n
PRINT INT(RND*(11-2+1))+2 !2から11まで
NEXT i
END
13.
FOR a=1 TO 9
FOR b=1 TO 9
PRINT b; "×"; a; "="; b*a
NEXT b
NEXT a
END
第4回
6.
INPUT PROMPT "n!=": n
LET T=1 !nの階乗(n!)
FOR i=1 TO n
LET T=T*i
NEXT i
PRINT T
END
(別解)実際は2以上でOK
INPUT PROMPT "n!=": n
LET T=1 !nの階乗(n!)
FOR i=2 TO n
LET T=T*i
NEXT i
PRINT T
END
12.
INPUT PROMPT "ax^2+bx+c=": a,b,c
SET WINDOW -5,5, -5,5 !表示範囲
DRAW grid !座標を表示する
FOR x=-5 TO 5 STEP 0.1
PLOT LINES: x,(a*x+b)*x+c;
NEXT x
PLOT LINES
END
第5回
11.
INPUT PROMPT "5桁の自然数n=": N
FOR i=1 TO 5
PRINT STR$(MOD(N,10));
!!PRINT USING "#": MOD(N,10);
LET N=INT(N/10)
NEXT i
PRINT
END
12.
SET WINDOW -1,11,-1,11
INPUT PROMPT "n=": N
PLOT LINES: 0,0; 10,0; 10,10; 0,10; 0,0
SET AREA COLOR 1 !黒色
IF MOD(N,2)=1 THEN !奇数なら、中央の目
IF N=1 THEN SET AREA COLOR 4 !赤色
DRAW DISK WITH SCALE(1)*SHIFT(5,5)
END IF
IF N>1 THEN !斜め右
DRAW DISK WITH SCALE(1)*SHIFT(8,8)
DRAW DISK WITH SCALE(1)*SHIFT(2,2)
END IF
IF N>3 THEN !斜め左
DRAW DISK WITH SCALE(1)*SHIFT(2,8)
DRAW DISK WITH SCALE(1)*SHIFT(8,2)
END IF
IF N=6 THEN !中央の左右
DRAW DISK WITH SCALE(1)*SHIFT(2,5)
DRAW DISK WITH SCALE(1)*SHIFT(8,5)
END IF
END
15.
RANDOMIZE
DIM C(0 TO 365) !発生回数
FOR i=1 TO 40
LET A=INT(RND*365)+1 !1から365まで
PRINT A
LET C(A)=C(A)+1 !+1する
NEXT i
PRINT
FOR i=1 TO 365 !小さい順に表示する
IF C(i)>0 THEN
PRINT i;
IF C(i)>1 THEN PRINT "○";
PRINT
END IF
NEXT i
END
21.
SET WINDOW -10,210,-10,210
DIM X(5),Y(5)
DATA 0, 0 !頂点(x,y)
DATA 200, 0
DATA 200,200
DATA 0,200
FOR i=1 TO 4 !読み込む
READ X(i),Y(i)
NEXT i
LET X(5)=X(1)
LET Y(5)=Y(1)
FOR C=1 TO 6 !6個の正方形
FOR i=1 TO 4 !4辺を描く
PLOT LINES: X(i),Y(i); X(i+1),Y(i+1)
LET X(i)=(X(i)+X(i+1))/2 !次の正方形の頂点位置
LET Y(i)=(Y(i)+Y(i+1))/2
NEXT i
LET X(5)=X(1)
LET Y(5)=Y(1)
NEXT C
END
第6回
10.
DATA 水曜日,木曜日,金曜日,土曜日,日曜日,月曜日,火曜日
DIM Y$(0 TO 6)
MAT READ Y$
INPUT PROMPT "平成23年9月c日=": c
PRINT Y$(MOD(c,7))
END
12.
FOR N=1 TO 30
LET A=INT(N/10)*10-N !nの1の位を得る
LET B=INT(N*N/10)*10-N*N !n^2の1の位を得る
IF A=B THEN PRINT N
NEXT N
END
(別解)差が0となる
FOR N=1 TO 30
LET A=N*N-N
IF INT(A/10)*10-A=0 THEN PRINT N
NEXT N
END
(別解)MOD関数
FOR N=1 TO 30
IF MOD(N*N-N,10)=0 THEN PRINT N
NEXT N
END
13.
DIM A(3)
INPUT PROMPT "a(1)=": A(1)
INPUT PROMPT "a(2)=": A(2)
INPUT PROMPT "a(3)=": A(3)
INPUT PROMPT "n=": N
FOR i=1 TO 3
LET T=MOD(i+N-1,3)+1
PRINT A(T);
NEXT i
END
第7回
3.
INPUT PROMPT "a>0、a=": A
PRINT SQR(SQR(A))
END
9.
DATA 5,8,7,3,2,5,0,9,6,4,7,1,3,2,7
INPUT PROMPT "n=": N
DIM A(N)
LET S=0
FOR i=1 TO N !n個のデータ
READ A(i) !読み込む
PRINT A(i); !表示する
LET S=S+A(i) !集計する
NEXT i
PRINT
PRINT "合計="; S
PRINT "平均="; S/N
END
13.
第7回の問10を参照のこと。
DATA 5,8,7,3,2,5,0,9,6,4,7,1,3,2,7
INPUT PROMPT "n=": N
DIM A(N)
FOR i=1 TO N !n個のデータを読み込む
READ A(i)
PRINT A(i);
NEXT i
PRINT
FOR i=1 TO N-1 !並べ替え
FOR J=i+1 TO N
IF A(i)<A(J) THEN !a(i)とa(J)を入れ替える
LET W=A(i)
LET A(i)=A(J)
LET A(J)=W
END IF
NEXT J
NEXT i
FOR i=1 TO N !結果を表示する
PRINT A(i);
NEXT i
PRINT
END
参考 順位付け
DATA 5,8,7,3,2,5,0,9,6,4,7,1,3,2,7
INPUT PROMPT "n=": N
DIM A(N)
FOR i=1 TO N !n個のデータを読み込む
READ A(i)
PRINT A(i);
NEXT i
PRINT
DIM R(N)
FOR i=1 TO N !最初はすべて1位とする
LET R(i)=1
NEXT i
FOR i=1 TO N-1 !順位を付ける ※組合せ C(n,2)
FOR J=i+1 TO N
IF A(i)>A(J) THEN !小さい方を+1する
LET R(J)=R(J)+1
ELSE
IF A(i)<A(J) THEN LET R(i)=R(i)+1
END IF
NEXT J
NEXT i
FOR i=1 TO N !結果を表示する
PRINT R(i);
NEXT i
PRINT
END
14.
INPUT PROMPT "n=": n
LET T=1 !nの階乗(n!)
LET S=1
FOR i=1 TO N
LET T=T*i
LET S=S+1/T
NEXT i
PRINT S
END
(別解)
n=5のとき、
1 +1/1! +1/2! +1/3! +1/4! +1/5!
=(5*4*3*2*1 +5*4*3*2 +5*4*3 +5*4 +5 +1) / 5!
と変形する。
INPUT PROMPT "n=": n
LET T=1 !分母 n!
LET S=1 !分子
FOR i=N TO 1 STEP -1
LET T=T*i
LET S=S+T
NEXT i
PRINT S/T
END
(別解)
n=5のとき、
1 +1/1! +1/2! +1/3! +1/4! +1/5!
=1+1/1*(1+1/2*(1+1/3*(1+1/4*(1+1/5))))
と変形する。
INPUT PROMPT "n=": n
LET S=1
FOR i=N TO 1 STEP -1
LET S=S/i+1
NEXT i
PRINT S
END
(別解)
n=5のとき、
1 +1/1! +1/2! +1/3! +1/4! +1/5!
=1 +1/1*(1+1/2*(1+1/3*(1+1/4*(1+1/5(1+0)))))
と変形する。
INPUT PROMPT "n=": n
LET S=0
FOR i=N TO 1 STEP -1
LET S=(S+1)/i
NEXT i
PRINT S+1
END
15.
SET WINDOW -1,11, -1,11 !表示範囲
DRAW grid !座標を表示する
LET H0=10
FOR t=0 TO 1.4 STEP 0.1
LET H=H0-4.9*t*t
DRAW CIRCLE WITH SCALE(0.1)*SHIFT(1,H)
NEXT t
END
17.
第4回の問14を参照のこと。
INPUT PROMPT "n≧2、n=": n
FOR i=2 TO n
FOR J=2 TO i-1 !割り切れるかどうか
IF MOD(i,J)=0 THEN EXIT FOR
NEXT J
IF J>i-1 THEN !すべてで割り切れない場合
PRINT i; "は素数"
ELSE
PRINT i; "は素数でない"
END IF
NEXT i
END
参考
INPUT PROMPT "n≧2、n=": n
PRINT " 2 は素数"
FOR i=3 TO n
IF MOD(i,2)=0 THEN !素数2で割り切れるなら
PRINT i; "は素数でない"
ELSE
LET R=INT(SQR(i)) !√iまでの奇素数で割り切れるかどうか
FOR J=3 TO R STEP 2
IF MOD(i,J)=0 THEN EXIT FOR
NEXT J
IF J>R THEN !すべてで割り切れない場合
PRINT i; "は素数"
ELSE
PRINT i; "は素数でない"
END IF
END IF
NEXT i
END
18.
INPUT PROMPT "n≧2、n=": n
LET C=0
FOR i=2 TO n
FOR J=2 TO i-1 !割り切れるかどうか
IF MOD(i,J)=0 THEN EXIT FOR
NEXT J
IF J>i-1 THEN !すべてで割り切れない場合
IF C=0 THEN PRINT STR$(i); ELSE PRINT ","; STR$(i);
LET C=C+1
END IF
NEXT i
PRINT " の"; C; "個"
END
20.
DATA 5,8,7,3,2,5,0,9,6,4,7,1,3,2,7
INPUT PROMPT "n=": N
DIM A(N)
FOR i=1 TO N !n個のデータを読み込む
READ A(i)
NEXT i
LET M=A(1) !最大値
FOR i=2 TO N
IF A(i)>M THEN LET M=A(i)
NEXT i
SET WINDOW -1,N+1, -1,M+1 !表示範囲
DRAW AXES !座標を表示する
FOR i=1 TO N !縦棒グラフ
SET AREA COLOR i
IF A(i)<>0 THEN PLOT AREA: i-1,0; i,0; i,A(i); i-1,A(i)
NEXT i
END
|
|