From Test-Scratch-Wiki

Translate: - English - 中文 
() * ()
() * ()
类别 运算类积木
形狀 椭圆形积木

() * () 积木是一个运算类积木且是一个椭圆形积木。它将两个数相乘并返回结果。在 Snap! 里, 它表示为 () × ().

数字可以直接输入,你也可以放入其他椭圆形积木。

这个积木可以放在自己里面——这样,他可以进行连乘或指数运算。

用法示例

在许多专案里,数字需要相乘,这积木可以做到。

() * () 积木的常见用法

  • 模拟计算器
變數 [结果 v] 設為 ((a) * (b))
  • 将列表里的数字相乘
變數 [结果 v] 設為 (1)
變數 [编号 v] 設為 (1)
重複 (清單 [数字 v] 的項目數 :: list) 次 
  變數 [结果 v] 設為 ((结果) * (清單第 (编号) 項項目\( [数字 v] \) :: list))
  變數 [编号 v] 改變 (1)
end
  • 数学方程式
([平方根 v] ((((y1) - (y2)) * ((y1) - (y2))) + (((x1) - (x2)) * ((x1) - (x2))))) // 勾股定理
  • 分数成倍增加
變數 [成绩 v] 設為 ((成绩) * (2))
當 @greenflag 被點擊
變數 [加速度 v] 設為 [0]
重複無限次 
  如果 <[空白 v] 鍵被按下?> 那麼 
    變數 [加速度 v] 改變 (2)
    變數 [加速度 v] 設為 ((加速度) * (0.87)) // 模拟因为摩擦力而减速
  end
end

科学计数法

Scratch 1.4 及更早版本,它有时通过将数字使用科学计数法来表示来节省空间。科学计数法通常是以 a*10b 的格式出现。 这些可以通过对其执行任何数学函数(例如加法)转换为正常数字。 所以,如果有一个变量叫做“数字”,它的值是3*103,如果你想让他以正常形式显示,你可以这样做:

((数字) + (0))

它会返回"3000".

应用

Main article: 互通积木


使用自然数的情况下,以下代码具有相同的功能,假设两个数分别是a和b。

變數 [结果 v] 設為 [0]
重複 (b) 次 
  變數 [结果 v] 改變 (a)
end

以下代码支持所有情况。a除以b的倒数等于a乘b。

如果 <(b) = (0)> 那麼 
  變數 [结果 v] 設為 [0]

  變數 [结果 v] 設為 ((a) / ((1) / (b)))
end

以下代码支持小数和负数。

刪除第 (全部 v) 項 \( [数值1的数字 v] \) // 准备
刪除第 (全部 v) 項 \( [数值2的数字 v] \)
刪除第 (全部 v) 項 \( [乘积的每一位 v] \)
變數 [乘积 v] 設為 [0]
變數 [小数点位置1 v] 設為 [0]
變數 [小数点位置2 v] 設為 [0]
詢問 [数值1] 並等待 //获取
如果 <(詢問的答案) < [0]> 那麼 
  變數 [计数 v] 設為 [1]
  變數 [1负? v] 設為 [y]

  變數 [计数 v] 設為 [0]
  變數 [1负? v] 設為 [n]
end
重複 (字串長度\( (詢問的答案) \)) 次 
  變數 [计数 v] 改變 (1)
  如果 <<(字串中第(计数)字\( (詢問的答案) \)) = [.]> 不成立> 那麼 
    新增項目 (字串中第 (计数) 字\( (詢問的答案) \)) \( [数值1的数字 v] \)
  
    變數 [小数点位置1 v] 設為 ( (字串長度\( (詢問的答案) \)) - (计数))
  end
end
詢問 [数值2] 並等待
如果 <(詢問的答案) < [0]> 那麼 
  變數 [计数 v] 設為 [1]
  變數 [2负 v] 設為 [y]

  變數 [计数 v] 設為 [0]
  變數 [2负 v] 設為 [n]
end
重複 (字串長度\( (詢問的答案) \)) 次 
  變數 [计数 v] 改變 (1)
  如果 <<(字串中第(计数)字\( (詢問的答案) \)) = [.]> 不成立> 那麼 
    新增項目 (字串中第 (计数) 字\( (詢問的答案) \)) \( [数值2的数字 v] \)
  
    變數 [小数点位置2 v] 設為 ((字串長度\( (詢問的答案) \)) - (计数))
  end
end
變數 [数值1 v] 設為 (数值1的数字 :: list)
變數 [数值2 v] 設為 (数值2的数字 :: list)
重複 (数值1) 次 
  變數 [乘积 v] 改變 (数值2)
end // 开始
變數 [小数点位置 v] 設為 ((小数点位置1) + (小数点位置2))
變數 [计数 v] 設為 [0]
重複 (字串長度\( (乘积) \)) 次 
  變數 [计数 v] 改變 (1)
  新增項目 (字串中第 (计数) 字\( (乘积) \)) \( [乘积的每一位 v] \)
end
如果 <<(小数点位置) = [0]> 不成立> 那麼 
  添加 [.] 為第 (([乘积的每一位 v]的长度 :: list) - ((小数点位置) - (1))) 項\( [乘积的每一位 v] \)
end
如果 <<<(1负) = [y]> 或 <(2负) = [y]>> 且 <<<(1负) = [y]> 且 <(2负) = [y]>> 不成立>> 那麼 
  添加 [-] 為第 (1 v) 項\( [乘积的每一位 v] \)
end
變數 [乘积 v] 設為 (乘积的每一位 :: list)

参见