From Test-Scratch-Wiki
| () / () | |
() / ()
| |
| Category | ऑपरेटर्स |
| Type | रिपोर्टर |
| Introduced in | ११अक्टूबर०३ |
() / () ब्लॉक एक ऑपरेटर्स ब्लॉक और एक रिपोर्टर ब्लॉक है। ब्लॉक दूसरे मान को पहले से विभाजित करता है और परिणाम लौटाता है।
यदि पहला मान दूसरे से समान रूप से विभाज्य नहीं है, तो रिपोर्ट किए गए मान में दशमलव होंगे। इसके बजाय शेष खोजने के लिए, () मॉड () ब्लॉक का उपयोग करें।
संख्याओं को सीधे ब्लॉक में टाइप किया जा सकता है, या इसके बजाय रिपोर्टर ब्लॉक का उपयोग किया जा सकता है।
इस ब्लॉक को अपने अंदर ढेर किया जा सकता है — इसका उपयोग अधिक संख्याओं को फिट करने के लिए किया जा सकता है।
| ऑनलाइन संपादक में ० से विभाजित करने पर अनंत, NaN, या नकारात्मक अनंत प्राप्त होगा। यह इस पर निर्भर करता है कि अंश धनात्मक है, ० है, या ऋणात्मक है; क्रमश। किसी प्रोजेक्ट में नए संभावित परिवर्तन करने के लिए कभी-कभी इसका उपयोग अन्य ब्लॉकों के साथ किया जाता है। यदि १.४ ऑफ़लाइन संपादक पर प्रयास किया जाता है, तो यह एक स्क्रिप्ट त्रुटि देगा और स्क्रिप्ट को रोक देगा। |
उदाहरण उपयोग
कई प्रोजेक्ट में, संख्याओं को — से विभाजित किया जाना चाहिए, यह ब्लॉक काम करेगा।
() / () ब्लॉक के कुछ सामान्य उपयोग इस प्रकार हैं:
- कैलकुलेटर स्क्रिप्ट
if <(operation) = [division]> then set [answer v] to ((input1) / (input2)) end
- संख्याओं की विभाजन सूचियाँ
set [i v] to (1) repeat (length of [list v]) replace item (i) of [list v] with (round ((item (i) of [list v]) / (2)))
- गणितीय सूत्र
set [area v] to (((base) * (height)) / (2)) //एक त्रिभुज का क्षेत्रफल
समाधान
ब्लॉक को निम्नलिखित कोड के साथ दोहराया जा सकता है:
set [counter v] to [0]
set [dividend v] to []
set [decimal point v] to [0]
repeat (length of (a))
change [counter v] by (1)
if <(letter (counter) of (a)) = [.]> then
set [decimal point 1 v] to ((length of (a)) - (counter))
else
if <not <(letter (counter) of (a)) = [-]>> then
set [dividend v] to (join(dividend)(letter (counter) of (a)))
end
end
end
set [counter v] to [0]
set [divisor v] to [0]
set [decimal point 2 v] to [0]
repeat (length of (b))
change [counter v] by (1)
if <(letter (counter) of (b)) = [.]> then
set [decimal point 2 v] to ((length of (b)) - (counter))
else
if <not <(letter (counter) of (b)) = [-]>> then
set [divisor v] to (join(disivor)(letter (counter) of (b)))
end
end
end
set [remainder v] to []
set [calculating v] to []
set [conuter v] to [0]
repeat (. . .:: grey) // परिशुद्धता सेट करें
change [counter v] by (1)
if <(length of (dividend)) < (counter)> then
set [remainder v] to (join(remainder)(0))
else
set [remainder v] to (join(remainder)(letter (counter) of (dividend)))
end
set [greatest factor v] to [0]
repeat until <(remainder) < ((divisor) * (greatest factor))>
change [greatest factor v] by (1)
end
if <(remainder) < ((divisor) * (greatest factor))> then
change [greatest factor v] by (-1)
end
set [calculating v] to (join(calculating)(greatest factor))
set [remainder v] to ((remainder) - ((greatest factor) * (divisor)))
end
set [counter v] to [0]
set [quotient v] to []
repeat (length of (calculating))
change [counter v] by (1)
set [quotient v] to (join(quotient)(letter(counter) of (calculating)))
if <(((length of (dividend)) - (decimal point 1)) + (decimal point 2)) = (length of (quotient))> then
set [quotient v] to (join(quotient)[.])
end
end
if <not<<(a) < [0]> = <(b) < [0]>>> then
set [quotient v] to (join[-](quotient))
end
(quotient) वेरिएबल में भागफल शामिल होगा
एक अधिक संक्षिप्त समाधान यह है:
if <(b) < (0)> then set [result v] to (((a) * ([e^ v] of ((-1) * ([ln v] of ((-1) * (b)))):: operators)) * (-1)) else set [result v] to ((a) * ([e^ v] of ((-1) * ([ln v] of (b))):: operators)) end
यह कैसे काम करता है
आइए कथन के "अन्य" भाग में अभिव्यक्ति को देखें। यह अभिव्यक्ति है:
दोनों पक्षों को "ए" से विभाजित करें और प्राप्त करने के लिए दोनों पक्षों का प्राकृतिक लघुगणक लें:
लॉग से पहले नकारात्मक को लॉग में एक घातांक के रूप में फिर से लिखा जा सकता है, जैसे:
इसलिए:
क्योंकि ऋणात्मक संख्या का लॉग मौजूद नहीं है, सूत्र के "यदि" भाग में कथन ऐसा दिखावा करता है जैसे "बी" सकारात्मक है और फिर उत्तर को पलट देता है।
क्योंकि स्क्रैच "एलएन ० " को -इन्फिनिटी के रूप में रिपोर्ट करता है, आप इस अभिव्यक्ति का उपयोग करके शून्य से विभाजित कर सकते हैं और कोई त्रुटि नहीं मिलती।