From Test-Scratch-Wiki

() मॉड () ब्लॉक ("मॉड" "मॉड्यूलो" का संक्षिप्त रूप है) एक ऑपरेटर्स ब्लॉक और एक रिपोर्टर ब्लॉक है। यह शेष की रिपोर्ट करता है जब पहला इनपुट दूसरे से विभाजित होता है। उदाहरण के लिए, जब पहले इनपुट में १० और दूसरे में ३ डाला जाता है, तो ब्लॉक १ रिपोर्ट करेगा; १० को ३ से विभाजित करने पर १ शेष बचता है।

() मॉड () मानता है कि भागफल (विभाजन का परिणाम) को हमेशा पूर्णांकित किया जाता है, भले ही वह नकारात्मक हो। उदाहरण के लिए, -१० मॉड ३ = २, -१ नहीं, क्योंकि भागफल -१०/३ को -४ तक पूर्णांकित किया जाता है, जिससे सकारात्मक शेष बचता है। यह अधिकांश में शेष ऑपरेटर से भिन्न है प्रोग्रामिंग भाषाएं, जो नकारात्मक भागफल को ० तक पूर्णांकित करती हैं, लेकिन स्मॉलटॉक में "//" और "\\" संदेशों के अनुरूप होती हैं।

उदाहरण उपयोग

यदि कोई परियोजना विभाज्यता परीक्षण कर रही है, तो () मॉड () ब्लॉक उपयोगी हो सकता है।

() मॉड () ब्लॉक के लिए कुछ सामान्य उपयोग:

  • जाँच करना कि क्या दो संख्याओं को बिना किसी शेषफल के विभाजित किया जाता है
if <((a) mod (b)) = [0]> then
    say [a is divisible by b]
else
    say [a is not divisible by b]
end
  • यह जाँचना कि कोई संख्या पूर्ण संख्या है या नहीं
if <((a) mod (1)) = [0]> then
    say [a is a whole number]
else
    say [a is not a whole number]
end
  • जाँच करना कि संख्याएँ विषम हैं या सम
if <((a) mod (2)) = [0]> then
    say [a is an even number]
else
    if <((a) mod (1)) = [0]> then
        say [a is an odd number]
    else
        say [a is not an integer]
    end
end
  • किसी सूची को बार-बार दोहराना:
when gf clicked
set [x v] to [0]
forever
    change [x v] by (1)
    say (item (x) of [list v])
    set [x v] to ((x) mod (length of [list v]))
end
  • स्क्रॉल करते समय बैकग्राउंड-स्प्राइट्स का पुन: उपयोग करना
when gf clicked
forever
    set x to (((x position) + (240)) mod (480))
end

समाधान

क्योंकि विभाजन का शेष भाग भागफल के भिन्नात्मक भाग से गुणा किया गया लाभांश है, ब्लॉक को निम्नलिखित कोड के साथ दोहराया जा सकता है (ए और बी इनपुट का प्रतिनिधित्व करते हैं):

((a) - ((b) * ([floor v] of ((a) / (b)))))

यदि वांछित परिणाम यह मानते हुए शेष है कि भागफल को ० की ओर पूर्णांकित किया गया है, तो एक स्क्रैचर या तो () मॉड () ब्लॉक का परिणाम ले सकता है और लाभांश को एक बार घटा सकता है, इस प्रकार:

if <((a) / (b)) < [0]> then
    set [r v] to (((a) mod (b)) - (b))
else
    set [r v] to ((a) mod (b))
end

या भागफल को ० तक पूर्णांकित करें और वहां से शेषफल की गणना करें:

set [q v] to ((a) / (b))
if <(q) > [0]> then
    set [q v] to ([floor v] of (q))
else
    set [q v] to ([ceiling v] of (q))
end
set [r v] to ((a) - ((b) * (q)))
Cookies help us deliver our services. By using our services, you agree to our use of cookies.