From Test-Scratch-Wiki
() < () ब्लॉक एक ऑपेरेटर्स ब्लॉक और बूलियन ब्लॉक है। एक वैल्यू जब दूसरी वैल्यू से कम हो, तो यह ‘ट्रू’ रिपोर्ट करता है। अगर ऐसा न हो, तो यह ‘फॉल्स’ रिपोर्ट करता है।
यह ब्लॉक वर्णानुसार अंकों और स्ट्रिंग्स की तुलना कर सकता है। स्क्रैच १.३ और पहले के वर्शनों में यह केवल अंकों की तुलना कर सकता था।
उदाहरण उपयोग
इस ब्लॉक के आमतौर पर किए जाने वाले कुछ उपयोग:
- छाँटना
- चीज़ को लिस्ट में डालने के लिए
set [i v] to [1]
repeat until <<(i) > (length of [scores v])> or <(item (i) of [scores v]) < (score)>>
change [i v] by (1)
end
insert (score) at (i) of [scores v]
- अंकों या अक्षरों को इवैल्यूएट करने के लिए
if <(score) < (5)> then
say [Poor job.] for (1) secs
stop [this script v]
end
if <(item (i) of [scores v]) < (10)> then
say [Well done.] for (1) secs
stop [this script v]
end
say [Great!] for (1) secs
- चरों को कम्पैर करने के लिए
if <(score 1) < (score 2)> then
say [Player 2 wins!]
else
say [Player 1 wins!]
end
- यह जाँचने के लिए कि वैल्यू दी गई सीमा के अंदर है या नहीं
ask [Please rate my cookies from 1 to 10.] and wait
repeat until <not <<(answer) < [1]> or <(answer) > [10]>>>
ask [Please rate my cookies from 1 to 10.] and wait
end
तुलना
अंकों की तुलना
अंकों की तुलना तब ही होगी अगर बहुत बड़ा नंबर न हो।
set [number 1 v] to [100] set [number 2 v] to [101] say <(number 1) < (number 2)> for (2) seconds // returns true set [number 1 v] to [100000000000000000] set [number 2 v] to [100000000000000001] say <(number 1) < (number 2)> for (2) seconds // returns false
यह तब ही होता है, जब अंकों को स्ट्रिंग के रूप में स्टोर किया गया है, न कि कैलकुलेट किया गया।
यह उदाहरण उन अंकों की तुलना करता है जो स्ट्रिंग के रूप में स्टोर किए गए हैं, परन्तु उन में साइन और डेसीमल पॉइंट नहीं है।
set [number 1 v] to [100000000000000000] ask [The answer is "100000000000000001"] and wait set [number 2 v] to (answer) if <(length of (number 1)) = (length of (number 2))> then say <(join (number 1) [a]) < (join (number 2) [a])> for (2) seconds // returns true else say <(length of (number 1)) < (length of (number 2))> for (2) seconds end
यह इसलिए काम करता है क्योंकि यह स्क्रैच को टेक्स्ट कम्पैरिसन करने के लिए फ़ोर्स करता है। (अंक कम्पैरिसन के बजाए)
टेक्स्ट की तुलना
टेक्स्ट की तुलना वर्णानुसार की जाती है:
<[a] < [b]> // returns true <[b] < [a]> // returns false
खली वैल्यू
खली वैल्यू को दूसरी वैल्यू से सदा छोटा समझा जाएगा है:
<[] < (10)> // returns true <(10) < []> // returns false
दूसरा तरीका
इस ब्लॉक को रेप्लिकेट करने का तरीका है:
<(b) > (a)>
से लघु और समतूल्य
कभी-कभी यह जानना ज़रूरी होता है कि वैल्यू दूसरी वैल्यू से छोटी है या समतूल्य है, पर ऐसा करने के लिए ब्लॉक नहीं होता है। ऐसा करने का तरीका है:
<not <(a) > (b)>>