提供: Japanese Scratch-Wiki

(色)
53行目: 53行目:
 
  [x v] を (1) ずつ変える
 
  [x v] を (1) ずつ変える
 
((x) 番目([リスト v])) と言う
 
((x) 番目([リスト v])) と言う
[x v] を ((x) を ([list v] の長さ) で割った余り) にする
+
[x v] を ((x) を ([list v] の長さ::list) で割った余り) にする
 
</scratchblocks>
 
</scratchblocks>
  

2017年8月9日 (水) 08:59時点における版

() を () で割った余り
(() を () で割った余り)
カテゴリ 演算
タイプ

() を () で割った余りブロック(演算ブロック/値ブロック)とは、1つめの値を2つめの値で割ったときの余りを返すブロックである。たとえば、1つめの値として10を、2つめの値として3を入れた場合、このブロックは1を返す (10÷3の余りは1なので)。

マイナスの数を扱う場合、注意が必要である。このブロックの返す値の符号は、割る数(2つめの値)と同じになる。 たとえば、-10 を 3 で割った余りは 2となり、-1ではない。これは割り算の答え(商)を-4として「3 × -4 = -12」を考え、 「-10 - (-12) = 2」としているからである。一方、10 を -3 で割った余りは -2で あり 1ではない。これは割り算の答えを-4として、「-3 × -4 = 12」を考え、「10 - 12 = -2」としているからである。

よくある使用例

このブロックは、割り算の余りを使って処理を変えるプロジェクトで使用される。

よくある使用例は次のとおり:

  • 割り算の結果に余りが出るかどうかを調べる
もし <((a) を (b) で割った余り) = [0]> なら
   [a は b で割り切れる] と言う
でなければ
   [a は b で割り切れない] と言う
end
  • ある数が整数かどうかを調べる
もし <((a) を (1) で割った余り) = [0]> なら
   [a は整数] と言う
でなければ
   [a は整数じゃない] と言う
end
  • ある数が偶数か奇数かを調べる
もし <((a) を (2) で割った余り) = [0]> なら
   [a は偶数] と言う
でなければ
もし <((a) を (1) で割った余り) = [0]> なら
   [a は奇数] と言う
でなければ
   [a は整数じゃない] と言う
end
end


  • リスト内の項目の何度も繰り返し取り出す
@ がクリックされたとき
[x v] を [0] にする
ずっと
 [x v] を (1) ずつ変える
((x) 番目([リスト v])) と言う
[x v] を ((x) を ([list v] の長さ::list) で割った余り) にする
  • 画面がスクロールしたとき、画面の外にいるスプライトを再利用する
@ がクリックされたとき
ずっと
x座標を (((x座標) + (240)) を (480) で割った余り) にする

別のブロックによる表現

詳細は「代用ブロック一覧」を参照

このブロックと同様の結果は、次のコードで実現できる (変数 余り に値が入る):

もし <(((a) / (b)) を四捨五入) > ((a) / (b))> なら 
[余り v] を ((a) - (((((a) / (b)) - (0.5))を四捨五入) * (b))) にする 
でなければ
[余り v] を ((a) - ((((a) / (b)) を四捨五入) * (b))) にする
end

() を () で割った余りブロックで負の数を使う機会は滅多にないと思うが、可能ではある。 1つめの数にマイナスの値、2つめの数にプラスの値を指定した場合、余りとして返されるのはプラスの値である。 負の数が必要な場合は、余りから2つめの数を引けば良い。これをコードで表すと次のようになる:

もし <(a) < (0)> なら
もし <(b) > (0)> なら
[余り v] を (((a) を (b) で割った余り) - (b)) にする
でなければ
[余り v] を ((a) を (b) で割った余り) にする
end
でなければ
[余り v] を ((a) を (b) で割った余り) にする

参照