エレファント・コンピューティング調査報告

極限に関する順序を論理プログラミングの手法を使って指定することを目指すブロクです。

ビジュアルプログラミング(18)

プログラム電卓(Blockly)(6)

プログラム電卓(Blockly)」の説明の続きです。各領域の番号は「ビジュアルプログラミング(14) - エレファント・コンピューティング調査報告」を参照してください。

「足し算・引き算」の使い方

(11)のリストから「足し算・引き算」を選択すると(12)の領域にサンプルのテキスト(JSON)が表示されます。その後(10)のボタンを押すと(2)の領域に「足し算・引き算」のサンプルが表示されます。

  • ボタン1 : (4)の領域の  a b x に任意の自然数を指定して、(3)の「1」のボタンを押すと、(4)の領域に  c=a+b d=a-b が表示され、(5)の領域に  a x 桁の10進数で書いたときの各桁が、(6)の領域に  b x 桁の10進数で書いたときの各桁が表示されます。
  • ボタン2 : ボタン1の後、(3)の「2」のボタンを押すと、10進数の足し算が実行されます。これは筆算の足し算と同様の方法で行われます。最後の桁の繰り上がりは無視されます。
  • ボタン3 : ボタン1の後、(3)の「3」のボタンを押すと、(6)の領域の各桁を、 9 からその数を引いたものに変換します。
  • ボタン4 : (3)の「4」のボタンを押すと、(6)の領域に  0,0,\cdots,0,1 (最後の桁だけ  1)をセットします。
  • ボタン5 : ボタン1の後、(3)の「5」のボタンを押すと、ボタン3、ボタン2、ボタン4、ボタン2を順に実行することにより、 a \geq b のとき10進数の引き算が実行されます。5桁の場合を考えると、ボタン3、ボタン2で  a + (99999 - b) = a - b + 99999 となります。その後ボタン4、ボタン2で本来なら  a - b + 99999 + 1 = a - b + 100000 となるのですが、最後の繰り上がりは無視されるので  a - b となります。

「掛け算・割り算」の使い方

(11)のリストから「掛け算・割り算」を選択すると(12)の領域にサンプルのテキスト(JSON)が表示されます。その後(10)のボタンを押すと(2)の領域に「掛け算・割り算」のサンプルが表示されます。

  • ボタン1 : (4)の領域の  a b x に任意の自然数を指定して、(3)の「1」のボタンを押すと、(4)の領域に  c=a \times b が表示され、(7)の領域に  a x 桁の10進数で書いたときの各桁が、(6)の領域に  b x 桁の10進数で書いたときの各桁が表示されます。(5)の領域にはすべての桁に  0 が表示されます。
  • ボタン2 : (4)の領域の  a b x に任意の自然数を指定して、(3)の「2」のボタンを押すと、(4)の領域に  c=a \div b d a b で割った余りが表示され、(5)の領域に  a x 桁の10進数で書いたときの各桁が、(6)の領域に  b x 桁の10進数で書いたときの各桁が表示されます。(7)の領域にはすべての桁に  0 が表示されます。
  • ボタン3 : (3)の「3」のボタンを押すと、(5)の領域に(6)の領域を足します。
  • ボタン4 : (3)の「4」のボタンを押すと、(5)の領域から(6)の領域を引きます。
  • ボタン5 : (3)の「5」のボタンを押すと、(7)の領域の1の位が  0 でなければ、1の位を  1 減らして (5)の領域に(6)の領域を足します。(7)の領域の1の位が  0 ならば(5)の領域と(7)の領域を右に回転します。これは掛け算の一つの段階となります。
  • ボタン6 : (3)の「6」のボタンを押すと、(5)の領域が(6)の領域以上ならば、(7)の領域の1の位を  1 増やして (5)の領域から(6)の領域を引きます。(5)の領域が(6)の領域より小さければ(5)の領域と(7)の領域を左に回転します。これは割り算の一つの段階となります。
  • ボタン7 : (3)の「7」のボタンを押すと、ボタン5を一周するまで繰り返します。これで掛け算ができます。
  • ボタン8 : (3)の「8」のボタンを押すと、ボタン6を一周するまで繰り返します。これで割り算ができます。