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
Function Add(a As Integer, b As Integer) इस function में दो arguments pass हो रहे हैं - a और b।
MyFunction = result। इससे वह value function के बाहर चली जाती है।
Function Factorial(n) जो खुद को call करता है Factorial(n-1) के रूप में।