電たくそろばん   

電たくで足し算をして、そろばんの動かし方をたしかめよう。  電たくそろばん.mwx

の下を左クリックすると
コマが動いて、数字が入力されます。
が動いて計算します。

ちょくせつ、数字をいれても
が動いて計算します。
 
<プログラミング>電たくそろばんのもと.mwxを左クリックしてはじめましょう。
 
 

手順を記述します。

 ---- 電卓を左クリック ----
手順は 数字入力 :数値
間は 0
数字Fは 1
もし 計算F = 1 「最初の数、 書き入れる :数値 電卓窓は 最初の数 電卓→そろばん 最初の数」
もし 計算F > 1 「次の数、 書き入れる :数値 電卓窓は 次の数 電卓→そろばん 次の数」
終わり

手順は 演算+
演算かめ、 形は 1
次の数は "
電卓窓は "
計算Fは 2
始める「PIKO」
ごはさん2
終わり

手順は 演算-
演算かめ、 形は 2
次の数は "
電卓窓は "
計算Fは 3
始める「PIKO」
ごはさん2
終わり

手順は 答えは
もし 最初の数 = " 「最初の数は 0」
もし 次の数 = " 「次の数は 0」
もしどちらかを 計算F < 3
「電卓窓は 最初の数 + 次の数」 「電卓窓は 最初の数 - 次の数」

もし 電卓窓 < 0 「止まる」
始める「PIKO」
ごはさん2
待つ 15
間は 5
電卓→そろばん 最初の数
始める「PIKO」
待つ 10
もしどちらかを 計算F < 3
「電卓→そろばん+ 最初の数 次の数」
「電卓→そろばん- 最初の数 次の数」
もし 最初の数 = 0 「最初の数は "」
もし 次の数 = 0 「次の数は "」
もし 電卓窓 = 0 「電卓窓は "」
間は 0
始める「PIKO」
終わり


---- 最初の数をそろばんに左から表示 ③----
手順は 電卓→そろばん- :基数 :加算数
もし :基数 - :加算数 < 0 「PIKO 止まる」
桁数は 数 :基数
桁数2は 数 :加算数
それぞれのすうじをやる 「i 桁数2」

間は 5
DUMMYは ワード "00000 :基数 - (べき乗 10 桁数2 - :i - 1) * 整数 (:加算数 / べき乗 10 桁数2 - :i - 1) 
1桁を右から DUMMY
待つ 20 

終わり
---- 最初の数をそろばんに右から表示 ②----
手順は 電卓→そろばん+ :基数 :加算数
桁数2は 数 :加算数
それぞれのすうじをやる 「i 桁数2」

間は 5
1桁を右から :基数 + (べき乗 10 桁数2 - :i - 1) * 整数 (:加算数 / べき乗 10 桁数2 - :i - 1)


終わり

手順は 1桁を右から :電卓の数
桁数は 数 :電卓の数
それぞれのすうじをやる 「i 桁数」

そろばん べき乗 10 :i 最後 :電卓の数
仮の名前は 「電卓の数 最後以外 :電卓の数」
もし 間 > 0 「待つ 間」
もし 空か :電卓の数 「止まる」

終わり

---- 最初の数をそろばんに左から表示 ①----
手順は 電卓→そろばん :電卓の数
桁数は 数 :電卓の数
それぞれのすうじをやる 「i 桁数」

そろばん べき乗 10 桁数 - :i - 1 最初 :電卓の数
仮の名前は 「電卓の数 最初以外 :電卓の数」
;もし 間 > 0 「待つ 間」
もし 空か :電卓の数 「止まる」

終わり

---- そろばんの1桁を表示 ----
手順は そろばん :桁 :桁の値
もし 空か :桁の値 「止まる」
もし :桁 > 99999 「止まる」

カメは ワード "桁 :桁
元値は 形
もし 反対 :桁の値 + 1 = 元値 「始める「DI」」
形は :桁の値 + 1
カメは ワード :桁 "の位
形は :桁の値 + 1
もし 反対 :桁の値 + 1 = 元値 「もし 間 > 0 「待つ 間」」
終わり

手順は ごはさん
全部「形は 1」
最初の数は "
次の数は "
電卓窓は "
計算Fは 1
数字Fは 0
そろばんFは 0
演算かめ、 形は 1
終わり

手順は ごはさん2
カメは 「桁10000 桁1000 桁100 桁10 桁1 10000の位 1000の位 100の位 10の位 1の位」
形は 1

終わり
---- そろばんを左クリック ----
手順は IN :桁
そろばんFは 1
チェック1の位 (最後 マウスの位置) - 縦の位置
終わり

手順は チェック1の位 :駒位置
元値は 形
値は やる (ワード "チェック 形 "| | :駒位置)
仮の名前は 「桁の値 値」
形は 値 + 1
もしどちらかを 形 = 元値 「始める「CHI」」「始める「DI」」
カメは ワード :桁 "の位 形は :桁の値 + 1
そろばん→電卓
終わり

手順は そろばん→電卓
カメは "桁10000
仮の名前は 「5位 形 - 1」 もし :5位 = 0 「仮の名前は 「5位 "」」
カメは "桁1000
仮の名前は 「4位 形 - 1」 もし :4位 = 0 「仮の名前は 「4位 "」」
カメは "桁100
仮の名前は 「3位 形 - 1」 もし :3位 = 0 「仮の名前は 「3位 "」」
カメは "桁10
仮の名前は 「2位 形 - 1」 もし :2位 = 0 「仮の名前は 「2位 "」」
カメは "桁1
仮の名前は 「1位 形 - 1」 もし :1位 = 0 「仮の名前は 「1位 "」」
もしどちらかを 計算F < 2
「最初の数は (ワード :5位 :4位 :3位 :2位 :1位) 電卓窓は 最初の数」
「次の数は (ワード :5位 :4位 :3位 :2位 :1位) 電卓窓は 次の数」
終わり

手順は チェック1 :駒位置
もし :駒位置 > 107 「表示 5」
もし :駒位置 > 1 「表示 0」
もし :駒位置 > -35 「表示 1」
もし :駒位置 > -70 「表示 2」
もし :駒位置 > -104 「表示 3」
もし :駒位置 > -120 「表示 4」
終わり
手順は チェック2 :駒位置
もし :駒位置 > 107 「表示 6」
もし :駒位置 > 45 「表示 1」
もし :駒位置 > 28 「表示 0」
もし :駒位置 > -35 「表示 1」
もし :駒位置 > -70 「表示 2」
もし :駒位置 > -104 「表示 3」
もし :駒位置 > -120 「表示 4」
終わり
手順は チェック3 :駒位置
もし :駒位置 > 107 「表示 7」
もし :駒位置 > 45 「表示 2」
もし :駒位置 > 28 「表示 0」
もし :駒位置 > -6 「表示 1」
もし :駒位置 > -70 「表示 2」
もし :駒位置 > -104 「表示 3」
もし :駒位置 > -120 「表示 4」
終わり
手順は チェック4 :駒位置
もし :駒位置 > 107 「表示 6」
もし :駒位置 > 45 「表示 1」
もし :駒位置 > 28 「表示 0」
もし :駒位置 > -6 「表示 1」
もし :駒位置 > -35 「表示 2」
もし :駒位置 > -104 「表示 3」
もし :駒位置 > -120 「表示 4」
終わり
手順は チェック5 :駒位置
もし :駒位置 > 107 「表示 9」
もし :駒位置 > 45 「表示 4」
もし :駒位置 > 28 「表示 0」
もし :駒位置 > -6 「表示 1」
もし :駒位置 > -41 「表示 2」
もし :駒位置 > -75 「表示 3」
もし :駒位置 > -120 「表示 4」  
終わり
手順は チェック6 :駒位置
もし :駒位置 > 80 「表示 5」
もし :駒位置 > 63 「表示 0」
もし :駒位置 > 0 「表示 5」
もし :駒位置 > -35 「表示 6」
もし :駒位置 > -70 「表示 7」
もし :駒位置 > -104 「表示 8」
もし :駒位置 > -120 「表示 9」  
終わり
手順は チェック7 :駒位置
もし :駒位置 > 80 「表示 6」
もし :駒位置 > 63 「表示 1」
もし :駒位置 > 28 「表示 5」
もし :駒位置 > -35 「表示 6」
もし :駒位置 > -70 「表示 7」
もし :駒位置 > -104 「表示 8」
もし :駒位置 > -120 「表示 9」  
終わり
手順は チェック8 :駒位置
もし :駒位置 > 80 「表示 7」
もし :駒位置 > 63 「表示 2」
もし :駒位置 > 28 「表示 5」
もし :駒位置 > -6 「表示 6」
もし :駒位置 > -70 「表示 7」
もし :駒位置 > -104 「表示 8」
もし :駒位置 > -120 「表示 9」  
終わり
手順は チェック9 :駒位置
もし :駒位置 > 80 「表示 8」
もし :駒位置 > 63 「表示 3」
もし :駒位置 > 28 「表示 5」
もし :駒位置 > -6 「表示 6」
もし :駒位置 > -41 「表示 7」
もし :駒位置 > -104 「表示 8」
もし :駒位置 > -120 「表示 9」  
終わり
手順は チェック10 :駒位置
もし :駒位置 > 80 「表示 9」
もし :駒位置 > 63 「表示 4」
もし :駒位置 > 28 「表示 5」
もし :駒位置 > -6 「表示 6」
もし :駒位置 > -41 「表示 7」
もし :駒位置 > -75 「表示 8」
もし :駒位置 > -120 「表示 9」  
終わり