From Test-Scratch-Wiki
() * () ब्लॉक एक ऑपरेटर्स ब्लॉक और एक रिपोर्टर ब्लॉक है। ब्लॉक दिए गए दो मानों को गुणा करता है और परिणाम की रिपोर्ट करता है।
संख्याओं को सीधे ब्लॉक में टाइप किया जा सकता है, या इसके बजाय रिपोर्टर ब्लॉक का उपयोग किया जा सकता है।
इस ब्लॉक को अपने अंदर रखा जा सकता है - इसका उपयोग इसमें अधिक संख्याएँ फिट करने या घातांक की गणना करने के लिए किया जा सकता है।
उदाहरण उपयोग
कई प्रोजेक्ट में, संख्याओं को गुणा किया जाना चाहिए; यह ब्लॉक काम करेगा.
() * () ब्लॉक के लिए कुछ सामान्य उपयोग:
- स्क्रिप्ट जिनमें गणना की आवश्यकता होती है
set [result v] to ((a) * (b))
- Multiplying lists of numbers
set [result v] to (1) set [item v] to (1) repeat (length of [numbers v]) set [result v] to ((result) * (item (item) of [numbers v])) change [item v] by (1) end
- गणित के सूत्र
([sqrt v] of ((((y1) - (y2)) * ((y1) - (y2))) + (((x1) - (x2)) * ((x1) - (x2))))) //पाइथागोरस प्रमेय
- स्कोर गुणक
set [score v] to ((score) * (2))
- वेग
when gf clicked set [velocity v] to [0] forever if <key (space v) pressed?> then change [velocity v] by (2) set [velocity v] to ((velocity) * (0.87)) //घर्षण मंदी का अनुकरण करता है
- फैक्टोरियल की गणना
when gf clicked ask (Number) and wait set [counter v] to (answer) repeat ((answer) - (1)) change [counter v] by [-1] set [output v] to ((output) * (counter))
वैज्ञानिक संकेतन
स्क्रैच १.४ और पिछले संस्करणों में, यह कभी-कभी स्थान बचाने के लिए बहुत बड़ी संख्याओं को वैज्ञानिक संकेतन में परिवर्तित करता है। वैज्ञानिक संकेतन केवल ए*१०बी के रूप में संख्या है। इन्हें जोड़ने जैसे कोई गणितीय कार्य करके इन्हें सामान्य संख्या में परिवर्तित किया जा सकता है। इसलिए यदि "संख्या" नामक चर का मान ३*१०३ है और आप इसे एक सामान्य संख्या के रूप में प्रदर्शित करना चाहते हैं, तो आप इसे इस प्रकार बदल सकते हैं:
((number) + (0))
इसके बाद यह "३०००" रिपोर्ट करेगा।
समाधान
प्राकृतिक संख्याओं के साथ, इस ब्लॉक को निम्नलिखित कोड के साथ दोहराया जा सकता है, यह मानते हुए कि ए पहली पूर्ण संख्या है और बी दूसरी पूर्ण संख्या है:
set [product v] to [0] repeat (b) //जहां बी एक पूर्ण संख्या होनी चाहिए (नकारात्मक नहीं और इसमें दशमलव नहीं है) change [product v] by (a) end
निम्नलिखित कोड सभी मामलों के लिए काम करता है (सशर्त के साथ)। यह व्युत्क्रम से विभाजित होता है, जो गुणा करने के बराबर होता है।
set [product v] to ((a) / ((1) / (b)))
निम्नलिखित कोड दशमलव के साथ ऋणात्मक संख्याओं को स्वीकार करता है:
delete all of [num1 numbers v] delete all of [num2 numbers v] delete all of [product digits v] set [dec pos 1 v] to [0] set [count v] to [0] repeat (length of (a)) change [count v] by (1) if <not<(letter (count) of (a)) = [-]>> then if <(letter (count) of (a)) = [.]> then set [dec pos 1 v] to ((length of (a)) - (count)) else add (letter (count) of (a)) to [num1 numbers v] end end end set [dec pos 2 v] to (0) set [count v] to (0) repeat (length of (b)) change [count v] by (1) if <not <(letter (count) of (b)) = [-]>> then if <(letter (count) of (b)) = [.]> then set [dec pos 2 v] to ((length of (b)) - (count)) else add (letter (count) of (b)) to [num2 numbers v] end end end set [num1 v] to (num1 numbers) set [num2 v] to (num2 numbers) set [product v] to [0] repeat (num1) change [product v] by (num2) end set [decimal position v] to ((dec pos 1) + (dec pos 2)) set [count v] to [0] repeat (length of (product)) change [count v] by (1) add (letter (count) of (product)) to [product digits v] end repeat until <[0] < ((length of [product digits v]) - ((decimal position) - (1)))> insert (0) at (1) of [product digits v] end insert [.] at ((length of [product digits v]) - ((decimal position) - (1))) of [product digits v] if <not <<(a) < [0]> = <(b) < [0]>>> then insert [-] at (1) of [product digits v] end set [product v] to ((product digits) + (0))