Header Ads

ad728
  • New Updates

    Precedence of Operator


    Precedence of Operator

    ‘सी’ भाषा में हर Operator का एक प्राथमिकता का क्रम होता है | जिससे गणनाओं में होने वाली परेशानियां समाप्त हो जाती है | उदाहरण के लिए निम्न Expression देखें :

    11+23+20/6 – 4 = 5

    11+23+20/6 – 4 = 27

    11+23+20/6 – 4 = 33.33

    जिस परिणाम की हमें जरुरत है , वह इनमें से कौन है , ये पता लगाना बहुत ही मुश्किल हो जाएगा क्योंकि तीनों ही मान सही है | ऐसे में एक ऐसे क्रम की आवश्यकता हुई , जिससे यह पता चल सके कि पहले कौनसी गणना होगी व बाद में कौनसी , ताकि हमें प्राप्त होने वाला मान वही हो जो हम चाहते हैं |

    “सी” में इस प्रकार की परेशानी से बचने के लिए Operator को एक प्राथमिकता क्रम में व्यवस्थित किया गया | इसमें गणनाएं इस क्रम में होती है उसके Operands की गणना पहले होती है और जो Operator प्राथमिकता क्रम में बाद में आता है , उसके Operands की गणन बाद में होती है | प्राथमिकता क्रम सारणी निम्नानुसार है |


    Computer में जब किसी Arithmetical Expression Calculation के लिए Perform होता है , तब उस Expression में Use किए गए विभन्न प्रकार के Operators अपने Direction व प्राथमिकता क्रम के अनुसार Execute होते है | कोई Expression जिस तरह से विभन्न Steps में प्राथमिकता क्रम व Direction (Precedence and Associativity) के आधार पर Perform होकर एक Result Generate करता है , उन Steps की श्रृंखला को Operations की Hierarchy (Hierarchy of Operations) कहते है |

    कोई Expression किस क्रम व दिशा के आधार पर Execute होकर Accurate Result Generate करेगा , इसके लिए “C” Language में कुछ नियम निर्धारित किए गए है | ये नियम निम्नानुसार है |

    1. किसी Expression में यदि Parenthesis का प्रयोग किया गया हो , तो सबसे पहले उस Parenthesis का Expression Calculate होता है | साथ ही यदि एक से ज्यादा  Parenthesis Nested हो , तो सबसे पहले Inner Most यानी सबसे अंदर का Parenthesis Solve होता है और फिर क्रम से बाहर के Parenthesis  Solve होते है |

    2. जो Operator प्राथमिकता क्रम की सारणी में पहले आता है , वह Operator अपना Calculation पहले  करता है तथा जो Operator प्राथमिकता क्रम सारणी में बाद में आता है , वह अपना Operation बाद में Perform करता है | ठीक इसी तरह से सभी Operators उसी दिशा में Operations Perform करते है , जिस दिशा में उसे प्राथमिकता क्रम सारणी में दर्शाया गया है |

    किसी भी Arithmetical Expression में यदि * ,/ या % में से कोई Operator हो , तो सबसे पहले वही Operator अपना काम करता है | उसके बाद यदि Expression में + या में से कोई Operator हो तो वह Operator अपना काम करता है और सबसे अंत में = Operator अपना काम करता है | प्राथमिकता सारणी में हम देख सकते है कि केवल Unary Assignment Operators ही Right To Left Operation Perform करते है , शेष सभी Operator Left To Right दिशा में अपना काम करते है | उदाहरण वाले Expression में हम देख सकते है कि इसमें विभन्न प्रकार के Operators Result Generate करने के लिए Involved है | चुंकि , Unary Assignment Operators के अलावा सभी प्रकार कि Operators Left To Right दिशा में Expression में सबसे पहले (11*2) का Expression Execute होता है , जो मान 22 Generate करता है |

    अगले Step में (22/3) Expression Execute होता है , जो मान 7 Generate करता है | चुंकि इस Expression में अभी भी * / Operators है , इसलिए अगले Statement में Left To Right चलते हुए जो Operator सबसे पहले मिलता है वह (5/5) Expression में होता है , इसलिए अब ये Expression Execute होता है |

    फिर  Left to Right आगे बढते हुए अगले Operation में (6*6) मिलता है , और अपना काम पूरा करके 36 Generate करता है | अब हम देख सकते है कि चौथे Step वाले Expression में * , / या % में से कोई Operator  नहीं है , इसलिए फिर से Left to Right चलते हुए , अब + का Expression Execute होता है और इस Expression में सबसे पहले (7+1) Execute होकर  8 Generate होता है | फिर छठे Step में (7+36) से 43 Generate होता है और सातवें Step में (43 – 4) से 39 Generate होता है |

    चुंकि Assignment Operator सबसे बाद में Execute होता है और Right To left Execute होता है , इसलिए अंतिम Step (x=39) Expression Execute होता है और Variable x में मान 39 Store हो जाता है |

     

     

     

     

    No comments

    Post Top Ad

    ad728

    Post Bottom Ad

    ad728