提供: Japanese Scratch-Wiki
このきじは ひらがなでよめません。ごめんなさい。編集者向け:作成する

演算ブロックの代用ブロックの一覧表である。
ブロック | 回避策 |
---|---|
((a) + (b))
|
((a) - ((b) * (-1))) または ((a) - ((0) - (b))) または [答え v] を (a) にする [答え v] を (b) ずつ変える |
((a) - (b))
|
((a) + ((b) * (-1))) または ((a) + ((b) / (-1))) または ((a) + ([-] と (b))) または ((a) + ((0) - (b))) または [答え v] を () にする [答え v] を ((-1) * ()) ずつ変える 「--3」のような数字はScratchによって0と評価されてしまうため、3番目の回避策はbの値が正の場合のみ機能する。回避するためには最後の引数"b"に |
(() * ())
|
[num1 numbers v] のすべてを削除する //セットアップ [num2 numbers v] のすべてを削除する [積数字 v] のすべてを削除する [積 v] を [0] にする [dec pos 1 v] を [0] にする [dec pos 2 v] を [0] にする もし <(答え) < [0]> なら [カウント v] を [1] にする [no 1 negative v] を [y] にする でなければ [カウント v] を [0] にする [no 1 negative v] を [n] にする end ([] の長さ) 回繰り返す [カウント v] を (1) ずつ変える もし <<(() の (カウント)番目の文字) = [.]> ではない> なら (() の (カウント) 番目の文字) を [num1 numbers v] に追加する でなければ [dec pos 1 v] を (((答え) - (カウント)) の長さ) にする end end もし <[] < [0]> なら [カウント v] を [1] にする [no 2 negative v] を [y] にする でなければ [カウント v] を [0] にする [no 2 negative v] を [n] にする end ([] の長さ) 回繰り返す [カウント v] を (1) ずつ変える もし <<(() の (カウント) 番目の文字) = [.]> ではない> なら (() の (カウント) 番目の文字) を [num2 numbers v] に追加する でなければ [dec pos 2 v] を (((答え) - (カウント)) の長さ) にする end end [num1 v] を (num1 numbers) にする [num2 v] を (num2 numbers) にする (num1) 回繰り返す //スタート [積 v] を (num2) ずつ変える end [小数点位置 v] を ((dec pos 1) + (dec pos 2)) にする [カウント v] を [0] にする ((積) の長さ) 回繰り返す [カウント v] を (1) ずつ変える ((積) の (カウント) 番目の文字) を [積数字 v] に追加する end もし <<(小数点位置) = [0]> ではない> なら [積数字 v] の (([積数字 v] の長さ) - ((小数点位置) - (1))) 番目に[.] を挿入する end もし <<<(no 1 negative) = [y]> または <(no 2 negative) = [y]>> かつ <<<(no 1 negative) = [y]> かつ <(no 2 negative) = [y]>> ではない>> なら [積数字 v] の (1 v) 番目に [-] を挿入する end [積 v] を (積数字) にする または ((a) / ((1) / (b))) //"a"と"b"の積 または もし <(a) < [0]> なら ([絶対値 v] \( (a) \) ::operators) 回繰り返す [積 v] を ((0) - (b)) ずつ変える end でなければ [積 v] を [0] にする (a) 回繰り返す [積 v] を (b) ずつ変える end end |
(() / ())
|
[被除数数字 v] のすべてを削除する [商 v] のすべてを削除する [被除数 v] を [] にする [除数 v] を ([絶対値 v] \( () \) ::operators) にする [no2 neg v] を <[] < [0] > にする もし <(被除数) < [0] > なら [カウント v] を [1] にする でなければ [カウント v] を [0] にする end [no1 neg v] を <(被除数) < [0] > にする ((被除数) の長さ) 回繰り返す [カウント v] を (1) ずつ変える もし <((被除数) の (カウント) 番目の文字) = [.]> なら [被除数 dec v] を (((被除数) - (カウント)) の長さ) にする でなければ ((被除数) の (カウント) 番目の文字) を [被除数数字 v] に追加する end end ((10) - (被除数 dec)) 回繰り返す [0] を [被除数数字 v] に追加する end もし <((除数) を四捨五入) = (除数)> なら [dec pos v] を [0] にする でなければ [カウント v] を [0] にする <((被除数) の (カウント) 番目の文字) = [.]> まで繰り返す [カウント v] を (1) ずつ変える end [dec pos v] を (((除数) - (カウント)) の長さ) にする [被除数 v] を ((被除数) * ((dec pos) の [10 ^ v]::operators)) にする [除数 v] を (((除数) * ((dec pos) の [10 ^ v]::operators)) を四捨五入) にする end [カウント v] を [0] にする [現在処理中 v] を [] にする //これはスペースではなく、空文字列。 ([被除数数字 v] の長さ) 回繰り返す [カウント v] を (1) ずつ変える [現在処理中 v] を ((現在処理中) と ([被除数数字 v] の (カウント) 番目)) にする [回 v] を [9] にする <((除数) * (回)) < ((現在処理中) + (1))> まで繰り返す [回 v] を (-1) ずつ変える (回) を [商 v] に追加する::list [現在処理中 v] を ((現在処理中) - ((除数) * (回))) にする end [商 v] の (([商 v] の長さ) - (8)) 番目 に [.] を挿入する::list <<<((商) の [最後 v] 番目::operators) = [.]> または <<<((商) の [最後 v] 番目::operators) = [0]> かつ <((商) を四捨五入) = (商)>> かつ <(商) に [.] が含まれる>>> ではない> まで繰り返す [商 v] から ([商 v] の長さ::list) 番目を削除する::list <<<([商 v] の (1 v) 番目) = [0]> ではない> または <([商 v] の (2 v) 番目) = [.]>> まで繰り返す [商 v] から (1 v) 番目をから削除する::list end end end または もし <(b) < [0]> なら [商 v] を (((a) * (((-1) * (((-1) * (b)) の [ln v]::operators)) の [e ^ v]::operators)) * (-1)) にする でなければ [商 v] を ((a) * (((-1) * ((b) の [ln v]::operators)) の [e ^ v]::operators)) にする end |
<(a) < (b)>
|
<<<(a) > (b)> または <(a) = (b)>> ではない> |
<(a) = (b)>
|
<<<(a) < (b)> または <(a) > (b)>> ではない> または [リスト v] のすべてを削除する //大文字と小文字を区別 (a) を [リスト v] に追加する もし <[リスト v] に (b) が含まれる> なら ... end |
<(a) > (b)>
|
<<<(a) < (b)> または <(a) = (b)>> ではない> |
<<. . .::gray> かつ <. . .::gray>>
|
もし <. . .::gray> なら もし <. . .::gray> なら . . . end end または <<<<. . .::gray> ではない> または <<. . .::gray> ではない>> ではない> または [var v] を [0] にする <(var) = [1]> まで繰り返す . . . //ブロックは、c型ブロックの中に入れる。 もし <> なら [var v] を [1] にする end //this works for all current boolean-accepting block または もし <. . .::gray> なら もし <. . .::gray> なら [return v] を [true] にする でなければ [return v] を [false] にする end でなければ [return v] を [false] にする |
<<. . .::gray> または <. . .::gray>>
|
もし <. . .::gray> なら . . . でなければ もし <. . .::gray>なら . . . end end または <<<<. . .::gray> ではない> かつ <<. . .::gray> ではない>> ではない> または もし <. . .::gray> なら [return v] を [true] にする でなければ もし <. . .::gray> なら [return v] を [true] にする でなければ [return v] を [false] にする |
<<. . .::gray> ではない>
|
<(. . .) = [false]> または もし <. . .::gray> なら //(ここにはブロックを入れない) でなければ . . . |
((. . .) と (. . .)
|
[カウント v] を [0] にする [final v] を [] にする ((a) の長さ) 回繰り返す // aは最初の入力 [カウント v] を (1) ずつ変える ((a) の (カウント) 番目の文字)を[final v]に追加する end [カウント v] を (0) にする ((b) の長さ) 回繰り返す // bは2番目の入力 [カウント v] を (1) ずつ変える ((b) の (カウント) 番目の文字) を [final v] に追加する end [final v] を (final) にする //これが最終的な文字列 または //これは両方が整数でbが正の場合にのみ動作する。 [return v] を [] にする ([] の長さ) 回繰り返す [return v] を ((return) * (10)) にする end [return v] を () ずつ変える |
((. . .::gray) の (1) 番目の文字)
|
//これは1以上の整数に対してのみ機能する。 もし <(. . .) > [0]> なら [return v] を [] にする (((. . .) - (1)) の長さ) 回繰り返す [return v] を (((return) / (10)) の [切り下げ v]::operators) にする end でなければ [return v] を [-] にする end // |
[] の長さ
|
[return v] を [1] にする <([] の ((return) + (1)) 番目の文字) = []> まで繰り返す [return v] を (1) ずつ変える end |
(() を () で割った余り)
|
もし <(((a) / (b)) を四捨五入) > ((a) / (b))> なら [余り v] を ((a) - (((((a) / (b)) - (0.5))を四捨五入) * (b))) にする でなければ [余り v] を ((a) - ((((a) / (b)) を四捨五入) * (b))) にする end |
(() を四捨五入)
|
[report v] を [] にする [カウント v] を [1] にする <<((num) の (カウント) 番目の文字) = [.]> または <(カウント) = ((num) の長さ)>> まで繰り返す [report v] を ((report) と ((num) の (カウント) 番目の文字)) にする [カウント v] を (1) ずつ変える end もし <<((num) の (カウント) 番目の文字) = [.]> かつ <((num) の ((カウント) + (1)) 番目の文字) > [4]>> なら [report v] を (1) ずつ変える end または [return v] を [0] にする [b v] を [] にする <([絶対値 v] \( (b) \) ::operators)<[1]>まで繰り返す{ もし <[] < [0]> なら [return v] を (1) ずつ変える [b v] を (-1) ずつ変える でなければ [return v] を (-1) ずつ変える [b v] を (1) ずつ変える }::control または 定義 (#) を四捨五入 [カウント v] を [1] にする <((#) の (カウント) 番目の文字) = [.] > まで繰り返す [カウント v] を[1] ずつ変える end [カウント v] を [1] ずつ変える もし <((#) の (カウント) 番目の文字) = [5]> なら [round v] を ((#) の [切り上げ v]::operators) にする でなければ もし <((#) の (カウント) 番目の文字) > [5]> なら [round v] を ((#) の [切り上げ v]::operators) にする でなければ もし <((#) の (カウント) 番目の文字) < [5]> なら [round v] を ((#) の [切り下げ v]::operators) にする end end end |
(() の [10 ^ v]::operators)
|
絶対値: [出力 v] を (入力) にする もし<(出力) < [0]> なら [出力 v] を ((-1) * (出力)) にする end または [出力 v] を ((((入力) * (入力)) の [平方根 v]::operators) + (0)) にする 平方根: [出力 v] を (入力) にする <(出力) = (入力)> まで繰り返す [出力 v] を ((((出力) * (出力)) + (入力)) / ((2) * (出力))) にする end または [出力 v] を (((0.5) * ((入力) の [ln v]::operators)) の [e ^ v]::operators) にする ln (自然対数): [出力 v] を (((入力) の [log v]::operators) / (([1] の [e ^ v]::operators) の [log v]::operators)) にする e ^: [出力 v] を (((入力) * (2.718281828459)) の [10 ^ v]::operators) にする log (base 10): [出力 v] を (((入力) の [ln v]::operators) / ([10] の [ln v]::operators)) にする 10 ^: [出力 v] を (((入力) * ([10] の [ln v]::operators)) の [e ^ v]::operators) にする 切り下げ: [出力 v] を (((入力) - (.5)) を四捨五入) にする ceil: [出力 v] を (((入力) + (.49999999)) を四捨五入) にする sin: [出力 v] を (((90) - (入力)) の [cos v]::operators) にする cos: [出力 v] を (((90) - (入力)) の [sin v]::operators) にする tan: [出力 v] を (((入力) の [sin v]::operators) / ((入力) の [cos v]::operators)) にする |
<() に () が含まれる::operators>
|
文字列に指定文字列が含まれているか調べるを参照のこと |