Notes in Hindi

Advanced User Defined Functions in Hindi

Makhanlal Chaturvedi University / BCA / VBA programming

Advanced User Defined Functions in Hindi

Advanced User Defined Functions in Hindi

Passing arguments in User Defined Functions in Hindi

User Defined Function का मतलब होता है – ऐसा Function जिसे हम खुद define करते हैं। जब हम कोई function बनाते हैं तो हम चाहते हैं कि वह कुछ values को ले और उन पर काम करे। इन values को हम "Arguments" या "Parameters" कहते हैं। ये arguments function के अंदर भेजे जाते हैं ताकि function उनके साथ कुछ calculation कर सके।

Function के अंदर arguments भेजने के दो तरीके होते हैं:

  • By Value: इसका मतलब है कि जो value भेजी जा रही है, उसकी copy function को मिलती है। Original value पर कोई असर नहीं होता।
  • By Reference: इसका मतलब है कि function को original value ही भेजी जाती है। अगर function उस value को बदलता है तो original value भी बदल जाती है।

उदाहरण के लिए:

Function AddNumbers(a As Integer, b As Integer) As Integer
    AddNumbers = a + b
End Function

ऊपर के function में हमने दो arguments – a और b – भेजे हैं। यह function दोनों को जोड़ कर result return करता है।

Returning values from User Defined Functions in Hindi

Function का सबसे बड़ा फायदा होता है कि वो कुछ काम करके उसका परिणाम (Result) वापस (Return) कर सकता है। जब कोई function calculation करता है या कोई विशेष जानकारी बनाता है, तो उसे वापस main program को भेजना होता है। इसे हम "Returning a value" कहते हैं।

Function से value return करने के लिए हमें function के नाम के बराबर result assign करना होता है। जैसे कि:

Function Square(num As Integer) As Integer
    Square = num * num
End Function

ऊपर के function में हम किसी भी संख्या का square निकाल सकते हैं। जब भी हम Square(5) लिखते हैं, तो यह 25 return करता है।

Return value का datatype function definition में ही लिखा जाता है जैसे As Integer, As String आदि। इससे compiler को पता चलता है कि function से किस प्रकार की value वापस आएगी।

Scope and lifetime of variables in User Defined Functions in Hindi

किसी भी variable का scope और lifetime यह तय करता है कि वह कहां तक मान्य (Valid) है और कब तक वह memory में रहता है।

User Defined Functions में तीन प्रकार के variable scopes होते हैं:

  • Local Variable: यह function के अंदर declare होता है और केवल उसी function में use किया जा सकता है। Function खत्म होते ही यह memory से हट जाता है।
  • Global Variable: यह function के बाहर declare किया जाता है ताकि सभी functions इसे use कर सकें। यह पूरे program में valid रहता है।
  • Static Variable: यह function के अंदर declare होता है लेकिन इसकी value function call के बाद भी बनी रहती है।

उदाहरण:

Function Counter() As Integer
    Static count As Integer
    count = count + 1
    Counter = count
End Function

हर बार जब आप Counter() call करेंगे तो यह पिछले count में 1 जोड़ देगा क्योंकि static variable अपनी value याद रखता है।

Nested and recursive User Defined Functions in Hindi

अब हम बात करते हैं थोड़ा advanced concept की – Nested Functions और Recursive Functions की।

Nested Functions

Nested Function वह होता है जिसमें एक function के अंदर दूसरा function call किया जाता है। ध्यान रहे कि VBA में directly एक function को function के अंदर define नहीं किया जा सकता, लेकिन हम call जरूर कर सकते हैं।

उदाहरण:

Function AreaOfCircle(radius As Double) As Double
    AreaOfCircle = PI() * radius * radius
End Function

Function PI() As Double
    PI = 3.14159
End Function

यहाँ हमने AreaOfCircle function के अंदर PI() नामक दूसरा function call किया है। यही Nested function call है।

Recursive Functions

Recursive Function वह होता है जो खुद को ही call करता है। यह तब उपयोग होता है जब कोई काम बार-बार self-repetition से किया जाना हो, जैसे factorial निकालना।

Factorial के लिए recursive function:

Function Factorial(n As Integer) As Integer
    If n = 1 Then
        Factorial = 1
    Else
        Factorial = n * Factorial(n - 1)
    End If
End Function

ऊपर दिए गए function में Factorial() खुद को बार-बार call करता है जब तक कि n = 1 नहीं हो जाता। इसे हम Recursion कहते हैं।

Additional Important Points

  • हर function की शुरुआत Function से होती है और अंत End Function से होता है।
  • Function का नाम meaningful होना चाहिए ताकि उसके काम को समझा जा सके।
  • Function हमेशा reusable होता है, इसलिए उसे बार-बार use किया जा सकता है।
  • Function से Program का Structure modular हो जाता है और Debug करना आसान होता है।

Variable Scope के लिए एक Comparison Table

Variable Type Declared Where Scope Lifetime
Local Function के अंदर सिर्फ उसी function में Function खत्म होते ही समाप्त
Global Module के बाहर पूरे module या program में Program के बंद होने तक
Static Function के अंदर सिर्फ उसी function में Program के बंद होने तक

Use Case: Function से किसी छात्र का ग्रेड निकालना

Function GetGrade(marks As Integer) As String
    If marks >= 90 Then
        GetGrade = "A+"
    ElseIf marks >= 75 Then
        GetGrade = "A"
    ElseIf marks >= 60 Then
        GetGrade = "B"
    ElseIf marks >= 40 Then
        GetGrade = "C"
    Else
        GetGrade = "Fail"
    End If
End Function

इस प्रकार से functions का उपयोग हम real-life situations में भी कर सकते हैं जैसे result calculation, salary computation, tax calculation आदि।

FAQs

User Defined Function वह function होता है जिसे user खुद define करता है किसी specific task को perform करने के लिए। यह Excel या VBA में custom logic apply करने के लिए इस्तेमाल किया जाता है।
Arguments function के parentheses () में दिए जाते हैं। जैसे Function Add(a As Integer, b As Integer) इस function में दो arguments pass हो रहे हैं - a और b।
VBA में function से value return करने के लिए function के नाम को result value assign कर देते हैं। जैसे MyFunction = result। इससे वह value function के बाहर चली जाती है।
Function के अंदर declared variable का scope सिर्फ उसी function तक होता है। वह function के बाहर use नहीं किया जा सकता। इसे Local variable कहते हैं।
Recursive Function वह होता है जो खुद को ही call करता है जब तक कोई condition पूरी न हो जाए। जैसे factorial निकालने के लिए Function Factorial(n) जो खुद को call करता है Factorial(n-1) के रूप में।
Static variable function के अंदर होता है लेकिन उसकी value function खत्म होने पर भी बनी रहती है, जबकि Global variable पूरे module या project में किसी भी function द्वारा use किया जा सकता है।

Please Give Us Feedback