From Test-Scratch-Wiki
Round () | |
round ()
| |
Category | ऑपरेटर्स |
Type | रिपोर्टर |
घुमाव () ब्लॉक एक ऑपरेटर ब्लॉक और एक रिपोर्टर ब्लॉक है। यह ब्लॉक अंक को सबसे पास के पूर्णांक पर राउंड ऑफ़ करता है। यह राउंडिंग के निम्न नियमों का पालन करता है। जो दशमलव .५ या उससे बड़े हों, उन्हें राउंड अप किया जाता है, जो दशमलव .५ से काम हों, उन्हें राउंड डाउन किया जाता है।
उदाहरण उपयोग
जिन प्रोजेक्ट्स में दशमलव का उपयोग होता है, उनमें कई बार राउंड करना पड़ता है-यह ब्लॉक यही कार्य करता है। आमतौर पर किए जाने वाले इस ब्लॉक के कुछ प्रयोग नीचे दिए गए हैं-
- गणक, जिसमें कोई उपयोगकर्ता संख्या को राउंड ऑफ़ कर सके
define calculate if <(operator) = [addition]> then set [answer v] to ((value1) + (value2)) end if <(operator) = [round]> then set [answer v] to (round (value)) end ... when this sprite clicked calculate
- पता करना यदि दो अंक एक सामान हैं
set [close? v] to <([abs v] of ((round (value1)) - (round (value2)))) < (2)> //one of many methods
- गेम्स में स्कोर को सबसे पास के पूर्णांक पर राउंड ऑफ़ करना
set [score v] to (round (score))
- 'दोहराएँ ()' ब्लॉक में डाले जाने वाली वैल्यू को पूर्णांकित करना, क्योंकि वैल्यू एक पूर्ण संख्या होनी चाहिए
repeat (round (2.3840462816)) ... end
- माउस कर्सर को माइनस्वीपर जैसे गेम्स में पोजीशन करना
- ग्रिड पे स्नैप करना
when gf clicked forever go to x: ((round ((mouse x) / (25))) * (25)) y: ((round ((mouse y) / (25))) * (25))
दूसरा तरीका
"Ceiling" और "Floor" ब्लॉक्स का उपयोग एक अंक को राउंड करने के लिए किया जा सकता है:
([floor v] of ((number) + (0.5))) //round a number
"floor" and "ceiling" को '() mod ()' ब्लॉक से रेप्लिकेट किया जा सकता है:
((number) - ((number) mod (1))) //round down (floor) ((number) + ((1) - ((number) mod (1)))) //round up (ceiling)
or
if <(n) > (0)> then set [rounded v] to (((n) + (0.5)) - (((n) + (0.5)) mod (1))) else set [rounded v] to ((((n) - (0.5)) - (((n) - (0.5)) mod (1))) + (1)) end
ब्लॉक को दोहराने का दूसरा तरीका '() के () अक्षर' और 'जोड़ें () और ()' का उपयोग करने से है।
set [report v] to [ ] set [count v] to [0] repeat until <<(letter (count) of (num)) = [.]> or <(count) = (length of (num))>> set [report v] to (join (report) (letter (count) of (num))) change [count v] by (1) end if <<(letter (count) of (num)) = [.]> and <(letter ((count) + (1)) of (num)) > [4]>> then change [report v] by (1) end
सुझाव
कुछ स्क्रैचर्स को ऐसा रिपोर्टर ब्लॉक चाहिए जो एक नंबर-प्लेस तक राउंड करे। यह ब्लॉक सभी यूज़ेस को और एक्यूरेट बना देगा। वह इस प्रकार दिखाई देगा:
(round (number) to the nearest (base)::operators)
इसे संख्या को स्थानांतरित करके (10 से गुणा या भाग करके), राउंड ऑफ़ करने, और फिर मूल ऑपरेशन को फ़िर रिवर्स कर रेप्लिकेट किया जा सकता है।
((round ((number) * ([10^ v] of (number of places):: operators))) / ([10^ v] of (number of places):: operators))
or even this:
((round ((round what) / (to the nearest))) * (to the nearest))
कुछ स्क्रैचर्स ने इस ब्लॉक को इस प्रकार बनाने का सुझाव दिया।
([round v] of ():: operators)