てくの電卓
Home > EZアプリ(BREW(R))

最初に入っているプログラム
equation.icl
(X1,X2)の範囲で、二分法により解を求める。DEFN[1]で方程式を定義している
000 Rad
001 P(X1=)
002 HALT
003 STM[1]
004 P(X2=)
005 HALT
006 STM[2]
007 0
008 STM[3]
009 STM[13]
010 1e-8
011 STM[10]
012 M[1]
013 FN[1]
014 STM[11]
015 M[2]
016 FN[1]
017 STM[12]
018 M[11]
019 *
020 M[12}
021 =
022 IF(X>0)
023 P(INVALID RANGE)
024 EXIT
025 ENDIF
026 M[2]
027 -
028 M[1]
029 =
030 WHILE(X>M[10])
031 (
032 M[1]
033 +
034 M[2]
035 )
036 /
037 2
038 =
039 STM[3]
040 M[3]
041 FN[1]
042 STM[13]
043 M[11]
044 *
045 M[13]
046 =
047 IF(X>0)
048 M[3]
049 STM[1]
050 M[13]
051 STM[11]
052 ELSE
053 M[3]
054 STM[2]
055 M[13]
056 STM[12]
057 ENDIF
058 M[2]
059 -
060 M[1]
061 =
062 WEND
063 M[3]
064 DEFN[1]
065 exp
066 -
067 2
068 =
069 FEND
lms.icl
最小2乗法。入力:Nはデータ数、X(I)とY(I)は各々のデータ。出力:aは傾き、bは切片
000 0
001 STM[7]
002 STM[8]
003 STM[9]
004 STM[10]
005 STM[11]
006 1
007 STM[0]
008 P(N=)
009 HALT
010 STM[1]
011 FOR[0,1]
012 M[0]
013 P(X(#)=)
014 HALT
015 STM[2]
016 M[0]
017 P(Y(#)=)
018 HALT
019 STM[3]
020 M[3]
021 sqr
022 =
023 STM[4]
024 M[2]
025 *
026 M[3]
027 =
028 STM[5]
029 M[2]
030 sqr
031 =
032 STM[6]
033 M[2]
034 ADM[7]
035 M[3]
036 ADM[8]
037 M[4]
038 ADM[9]
039 M[5]
040 ADM[10]
041 M[6]
042 ADM[11]
043 M[0]
044 NEXT
045 M[1]
046 *
047 M[11]
048 -
049 M[7]
050 sqr
051 =
052 STM[12]
053 IF(X=0)
054 P(INFINITE)
055 EXIT
056 ENDIF
057 (
058 M[1]
059 *
060 M[10]
061 -
062 M[8]
063 *
064 M[7]
065 )
066 /
067 M(12)
068 =
069 P(a=#)
070 HALT
071 (
072 M[11]
073 *
074 M[8]
075 -
076 M[10]
077 *
078 M[7]
079 )
080 /
081 M[12]
082 =
083 P(b=#)
simpson.icl
シンプソンの数値積分。Y=sin(X):X=(0,PI)。正確な値は2である。M[9]に経過時間(ミリ秒)が格納される
000 P(N= )
001 HALT
002 STM[1]
003 tmms
004 STM[9]
005 RAD
006 0
007 STM[2]
008 PI
009 STM[3]
010 M[3]
011 -
012 M[2]
013 =
014 /
015 M[1]
016 =
017 STM[4]
018 0
019 STM[0]
020 STM[5]
021 FOR[0,1]
022 M[0]
023 IF(X=0)
024 1
025 ELIF(X=M[1])
026 1
027 ELSE
028 mod
029 2
030 =
031 IF(X=0)
032 2
033 ELSE
034 4
035 ENDIF
036 ENDIF
037 STM[6]
038 M[2]
039 +
040 M[0]
041 *
042 M[4]
043 =
044 sin
045 *
046 M[6]
047 =
048 ADM[5]
049 NEXT
050 M[5]
051 *
052 M[4]
053 /
054 3
055 =
056 STM[7]
057 tmms
058 -
059 M[9]
060 =
061 STM[9]
062 M[7]
diff.icl
2点(X1,Y1)、(X2,Y2)を通る直線と、点(X0,Y0)との距離を求める。垂線の足の座標が、メモリM[16]とM[17]に収められる
000 P(X0=)
001 HALT
002 STM[10]
003 P(Y0=)
004 HALT
005 STM[11]
006 P(X1=)
007 HALT
008 STM[12]
009 P(Y1=)
010 HALT
011 STM[13]
012 P(X2=)
013 HALT
014 STM[14]
015 P(Y2=)
016 HALT
017 STM[15]
018 (
019 M[10]
020 -
021 M[12]
022 )
023 *
024 (
025 M[14]
026 -
027 M[12]
028 )
029 +
030 (
031 M[11]
032 -
033 M[13]
034 )
035 *
036 (
037 M[15]
038 -
039 M[13]
040 )
041 =
042 STM[2]
043 (
044 M[14]
045 -
046 M[12]
047 )
048 sqr
049 +
050 (
051 M[15]
052 -
053 M[13]
054 )
055 sqr
056 =
057 STM[3]
058 M[2]
059 /
060 M[3]
061 =
062 STM[4]
063 M[4]
064 *
065 (
066 M[14]
067 -
068 M[12]
069 )
070 +
071 M[12]
072 =
073 STM[16]
074 M[4]
075 *
076 (
077 M[15]
078 -
079 M[13]
080 )
081 +
082 M[13]
083 =
084 STM[17]
085 (
086 M[16]
087 -
088 M[10]
089 )
090 sqr
091 +
092 (
093 M[17]
094 -
095 M[11]
096 )
097 sqr
098 =
099 sqrt
100 STM[18]
hb.icl
3桁の数当てゲーム。XXX=で3桁の数値を入力する。各桁に入る数値は1縲鰀9(0は含まない)。各桁の数値は全て異なる。数を当てるか10回トライで終了。HIT = 桁位置・数値ともに同じである数。BROW = 桁位置は異なるが同じ数値が別の桁位置に含まれる数
000 1
001 STM[90]
002 10
003 STM[99]
004 0
005 WHILE(X=0)
006 FN[1]
007 STM[1]
008 WEND
009 WHILE(X>=0)
010 FN[1]
011 STM[2]
012 IF(X>0)
013 IF(X!=M[1])
014 BREAK
015 ENDIF
016 ENDIF
017 WEND
018 WHILE(X>=0)
019 FN[1]
020 STM[3]
021 IF(X>0)
022 IF(X!=M[1])
023 IF(X!=M[2])
024 BREAK
025 ENDIF
026 ENDIF
027 ENDIF
028 WEND
029 FOR[90,99]
030 0
031 STM[50]
032 STM[51]
033 P(Num=XXX)
034 HALT
035 STM[0]
036 /
037 100
038 =
039 int
040 STM[11]
041 M[0]
042 mod
043 100
044 =
045 STM[0]
046 /
047 10
048 =
049 int
050 STM[12]
051 M[0]
052 mod
053 10
054 =
055 STM[13]
056 M[11]
057 IF(X=M[1])
058 1
059 ADM[50]
060 ELIF(X=M[2])
061 1
062 ADM[51]
063 ELIF(X=M[3])
064 1
065 ADM[51]
066 ENDIF
067 M[12]
068 IF(X=M[2])
069 1
070 ADM[50]
071 ELIF(X=M[1])
072 1
073 ADM[51]
074 ELIF(X=M[3])
075 1
076 ADM[51]
077 ENDIF
078 M[13]
079 IF(X=M[3])
080 1
081 ADM[50]
082 ELIF(X=M[1])
083 1
084 ADM[51]
085 ELIF(X=M[2])
086 1
087 ADM[51]
088 ENDIF
089 3
090 IF(X=M[50])
091 IF(X>=M[90])
092 P(Great!)
093 ELSE
094 P(Good!)
095 ENDIF
096 HALT
097 BREAK
098 ELSE
099 M[50]
100 P(Hit=#)
101 HALT
102 M[51]
103 P(Brow=#)
104 HALT
105 ENDIF
106 NEXT
107 M[1]
108 *
109 100
110 +
111 M[2]
112 *
113 10
114 +
115 M[3]
116 =
117 DEFN[1]
118 rand
119 *
120 10
121 =
122 int
123 FEND
prime.icl
入力した値以下で最大の素数を求める。入力値が大きすぎるとエラーで終了する。およそ100000以下
000 P(UpperLimit=)
001 HALT
002 STM[99]
003 sqrt
004 int
005 /
006 2
007 =
008 int
009 STM[98]
010 1
011 STM[97]
012 STM[95]
013 STM[94]
014 89
015 STM[96]
016 2
017 STM[0]
018 FOR[94,98]
019 2
020 ADM[95]
021 M[95]
022 sqrt
023 int
024 STM[93]
025 0
026 STM[92]
027 1
028 STM[91]
029 M[97]
030 -
031 1
032 =
033 STM[90]
034 FOR[91,90]
035 M[91]
036 STI
037 M[95]
038 mod
039 RMI
040 =
041 IF(X=0)
042 1
043 STM[92]
044 BREAK
045 ENDIF
046 RMI
047 IF(X>M[93])
048 BREAK
049 ENDIF
050 NEXT
051 M[92]
052 IF(X=0)
053 M[97]
054 STI
055 M[95]
056 STMI
057 1
058 ADM[97]
059 M[97]
060 IF(X>M[96])
061 P(Too Large UL)
062 EXIT
063 ENDIF
064 ENDIF
065 NEXT
066 M[99]
067 /
068 2
069 =
070 int
071 STM[98]
072 *
073 2
074 =
075 +
076 1
077 =
078 STM[95]
079 1
080 STM[94]
081 FOR[94,98]
082 -2
083 ADM[95]
084 M[95]
085 sqrt
086 int
087 STM[93]
088 0
089 STM[92]
090 1
091 STM[91]
092 M[97]
093 -
094 1
095 =
096 STM[90]
097 FOR[91,90]
098 M[91]
099 STI
100 M[95]
101 mod
102 RMI
103 =
104 IF(X=0)
105 1
106 STM[92]
107 BREAK
108 ENDIF
109 RMI
110 IF(X>M[93])
111 BREAK
112 ENDIF
113 NEXT
114 M[92]
115 IF(X=0)
116 BREAK
117 ENDIF
118 NEXT
119 M[95]
npv.icl
[NPV]=投資の正味現在価値/n=期間(年)/rate=割引率/value1=支払額(-)/value2...=収益額(+)
000 0
001 STM[5]
002 1
003 STM[0]
004 P(n=)
005 HALT
006 STM[1]
007 P(rate=(per))
008 HALT
009 STM[2]
010 FOR[0,1]
011 P(value=)
012 HALT
013 STM[3]
014 M[3]
015 /
016 (
017 1
018 +
019 M[2]
020 /
021 10
022 sqr
023 )
024 pow
025 M[0]
026 =
027 ADM[5]
028 NEXT
029 P(NPV=)
030 HALT
031 M[5]
fvpv.icl
1.[FV]将来価値/n=期間(年)/rate=金利(%)/value=現在価値 2.[PV]現在価値/n=期間(年)/rate=金利(%)/value=将来価値
000 3
001 STM[9]
002 1
003 STM[1]
004 2
005 STM[2]
006 0
007 WHILE(X!=M[9])
008 P(1.FV 2.PV 3.END)
009 HALT
010 STM[0]
011 M[0]
012 IF(X=M[9])
013 BREAK
014 ENDIF
015 P(n=)
016 HALT
017 STM[3]
018 P(rate=)
019 HALT
020 STM[4]
021 M[0]
022 IF(X=M[1])
023 P(value=)
024 HALT
025 STM[5]
026 M[5]
027 *
028 (
029 1
030 +
031 M[4]
032 /
033 10
034 sqr
035 )
036 pow
037 M[3]
038 =
039 STM[6]
040 P(FV=)
041 HALT
042 M[6]
043 HALT
044 ELIF(X=M[2])
045 P(FV=)
046 HALT
047 STM[7]
048 M[7]
049 /
050 (
051 1
052 +
053 M[4]
054 /
055 10
056 sqr
057 )
058 pow
059 M[3]
060 =
061 STM[8]
062 P(PV=)
063 HALT
064 M[8]
065 HALT
066 ENDIF
067 WEND
068 P(END)
chkrand.icl
乱数発生関数 rand の一様性のチェック。10000個の乱数を発生させる。出力される10個の値は、0から0.1、0.1縲鰀0.2、...の発生頻度
000 MAC
001 1
002 STM[0]
003 10000
004 STM[1]
005 FOR[0,1]
006 rand
007 *
008 10
009 =
010 floor
011 +
012 90
013 =
014 STI
015 1
016 ADMI
017 NEXT
018 90
019 STM[2]
020 99
021 STM[3]
022 FOR[2,3]
023 M[2]
024 STI
025 RMI
026 HALT
027 NEXT
stopwtch.icl
とても簡単なストップウォッチ
000 P(start)
001 HALT
002 tmms
003 STM[0]
004 P(stop)
005 HALT
006 tmms
007 -
008 M[0]
009 =
010 /
011 1000
012 =
Izumi Cyber Networks Inc.