Transcript for:
फंक्शंस की कार्यप्रणाली और उदाहरण

Hi everyone and welcome to the complete DSA series जिसके अंदर आज हम करने वाले हैं अपना next lecture which is going to be about functions अब DSA के अंदर इसके अलावा अगर आपको कोई और concept भी सीखना है तो वो इसी channel के उपर इस playlist के अंदर हमें available मिल जाएगा तो हम वहाँ से जाकर भी पढ़ सकते हैं तो when we talk about functions functions are a really simple concept functions basically give life to programming and everything in the coding world is majoritally done using functions, so functions का हमारे जो chapter होगा, it is going to be a very simple chapter, सबसे पहले शुरुवात ही कर देते हैं, define करने से कि एक function exactly होता क्या है, so basically in our program if we want to do some work again and again, again and again, so we write that work in the form of functions, and how does a function look like, a function looks like this, For example, we want to create a function जिसका काम है hello print करवाना या hello world print करवाना तो हम सबसे पहले function का return type बताते हैं function inherently जब हम function को समझते हैं तो हम उसे एक black box की तरह समझ सकते हैं जो कुछ input लेता है कुछ काम करता है और कुछ output return करता है अब ये जिस तरीके का output return करता है हमें उस output का type बताना पड़ता है for example, if there is a function which returns an integer value तो उसके type में हम लिखेंगे int, जैसे int main हम एक function लिखते हैं, जो return क्या करता है, यह return करता है value 0 को, तो इस तरीके से जो हमारा main function, जिसको हम हर class के अंदर लिखते हैं, which is the starting point of execution, it is actually a function, a plain and simple function, which has int as its return type, फिर हम लिखते हैं अपने function का नाम, जैसे इस function का नाम मैंने print hello दिया है, and then our curly braces, यह जो curly brace होता है, once again यह हमारा block of code होता है, जो हम function का पूरा काम बताने के लिए use करते हैं, और इस function के अंदर जो भी code लिखा जाता है, वो हमारे इस function का process हो जाता है, for example हमें बहुत बार अपनी code के अंदर we want to print hello, इस तरीके से हम hello print करना चाते हैं, फिर हमने दो variables लिए integer a, integer b, और दुबारा से हम hello को print करना चाते हैं, तो, let's suppose hello को print करने का यह जो काम है, यह हम बार-बार-बार-बार अपनी code के अंदर repeat करना चाहते हैं, तो इन line-o को, इस code को बार-बार लिखने की बजाय, what do we do? We convert the statement into a function, और function कैसे लिखते हैं? यह हमारा integer main function है, तो इसके बाहर हमें अपना दूसरा function लिखना पड़ेगा, let's suppose मेर जिसको हम कुछ इस तरीके से लिखते हैं जिसके अंदर हम अपना ये hello print करवाने का जो काम है उसे अब complete कर सकते हैं और हर function के साथ हमें उसका return type बताना होता है अगर ये function integer value return कर रहा होता है तो इसका return type int होता है जो functions कोई value return नहीं करते हैं उनका return type हम लिखते हैं void void का मतलब होता है this function does not return anything तो क्योंकि इस function सिफ print करवा रहा है कुछ return नहीं कर रहा है तो इसका return time void हो जाएगा, अब जब हमें print hello कभी भी करवाना है, तो हम यहाँ पर simply अपने function का नाम लिख सकते हैं, and उसे call कर सकते हैं, तो यह जो हमने यहाँ पर पूरे के पूरे function का logic लिखा, इस logic को कहते हैं function की, definition, मतलब हमने यहाँ function को define कर दिया, लेकिन, अगर मैं simply इस तरीके से अपने code को save करूँ, and run करूँ, तो मेरा code कोई भी output produce नहीं करेगा, क्यूं, क्योंकि function तब तक काम नहीं करता, जब तक function को call नहीं किया जाता, function को बुलाया नहीं जाता, और function basically हमारा helper है, और उस helper को कोई particular काम दे दिया गया है, for example, हमारे पास कोई cook है, तो खाना कब बनेगा, खाना तब बनेगा, when we are going to call up our cook and ask them to cook something for us, तब ही खाना बनने वाला है, ऐसा नहीं है कि cook हैं घर पे और उन्हें खाना बनाना आता है, ठीक है वो सारी skills हैं, पर तब तक नहीं बनेगा, जब तक हम उन्हें बुलाएंगे नहीं, और इसी चीज़ को programming के अंदर हम एक function call या function invoke करना कहते हैं, और function को कैसे call करते हैं, we basically write the name of the function, the name of the function is print hello, और फिर हम लगाते हैं अपने parenthesis और फिर लगाते हैं semicolon, तो इस तरीके से हमने function को call कर दिया, अब इसे अगर save करेंगे, let's clear this and run, तो इस बार हमारा function call होगा, call होगा तो हम यहाँ पर आ जाएंगे, control basically यहाँ आ जाएगा program का और हमारे पास hello screen पर print होकर आ जाएगा, and हम चाहें तो इस function को कितनी भी बार, call कर सकते हैं, जहां पर भी हमें hello print कराना होगा, वहाँ पर हम अपने function को call कर देंगे, और वहाँ पर जो भी function काम करता है, वो हमारे लिए बार बार repeat होता चला जाएगा, so this is how we create a simple function, अब कोई function चाहे तो किसी value को भी return कर सकता है, for example यह जो function है print hello, यह hello print करनी के बाद so it has to return an integer value, तो इस तरीके से जब ये value return करेगा, तो उसे हम चाहें तो किसी variable के अंदर भी store करा सकते हैं, int value is equal to this, तो जैसे print hello call होगा, पहले तो hello print होगा, then 3 return होगा, and this returned 3 is going to get stored in this value variable, और हम चाहें तो इस value को print भी कर सकते हैं, value हमारे पास return होके आई है, हमारे code ने क्या किया हमारे code ने पहले hello को print किया फिर value जो 3 आई थी उस value को return किया तो हमने उसे variable के अंदर store करा लिया and now we can use this value in any way अब हम चाहें तो function जो value return करता है उसे हम directly भी print करवा सकते हैं जैसे यही पर instead of storing it in a variable we can write a cout statement जहां पे इस तरीके से हम क्या करते हैं function को call कर लेत तो ये वाला code भी बिल्कुल वैसे ही काम करेगा, तो इस तरीके से हम functions को बना सकते हैं, functions को use कर सकते हैं, अब functions के अंदर एक और important concept होता है, जो हमें पता होना चाहिए, basically जब भी functions use होते हैं, तो we can also write parameters in them, अब function के लिए parameter क्या होता है, function के लिए parameter, हमने बात की थी function black box होता है, parameters, तो function parameters यानि कुछ variables को input लेता है और उनके उपर वो कुछ भी काम perform कर सकता है और ये जो मारे parameters होते हैं, इने हम in parenthesis के अंदर लिख रहे होते हैं हर एक parameter का पहले हम type बताते हैं, और फिर हम उसे एक नाम दे देते हैं, जैसे हम एक normal variable को नाम देते हैं जैसे for example, if you want to create a function that calculates the sum of two numbers, तो उसके लिए हम function को कैसे create करेंगे function हमें पता है, इसे दो numbers का sum calculate करना है, तो इसे हम नाम दे सकते हैं, sum, और इसके अंदर हम दो parameters, दो values input ले सकते हैं, integer a and integer b, and ये function क्या करेगा, ये एक variable बना लेगा, s is equal to a plus b, and it is going to return this s, तो इसका return type हो जाएगा integer, क्योंकि ये integer value को return कर रहा है, तो इस तरीके से हम एक function लिख सकते हैं, जो दो numbers का sum calculate करने का काम करता है, तो ये तो हमारी definition हो गई, how are we going to call this function, we'll basically write the function name, और फिर parenthesis के अंदर ही, सबसे पहले हम a की value pass करते हैं, फिर हम b की value pass करते हैं, जिसे a की value, let's suppose ह लिए जब भी हमें सम काल्कुलेट करने का काम करना है, हमें यह जो लाइन है, इसे हमें बार-बार लिखने की जरूरत नहीं है, हम सिंपली इस function को invoke कर सकते हैं, अब यहाँ पर सारे students के दिवाग में एक सवाल आना चाहिए, कि सम काल्कुलेट करने का काम तो बहुत easy होता है, basically functions का काम sum जैसी बहुत चुटी है, simple चीज़ें calculate करना नहीं होता, इसका reason यह है कि अभी तो हम बहुत simple examples के तुरूँ समझ रहे हैं कि function क्या होता है, लेकिन कल को हम बहुत सारी line वाला ऐसा code होगा, जिसको बार बार repeat करना चाहेंगे किस काम को, किसी काम में हो सकता है 10 lines हो, किसी काम में हो सकता है 5 lines of code हो, तो अगर एक program के अंदर हम बार बार बार बार वो 10 lines of code, 5 lines of code repeat करकर लिख रहे होंगे, तो उससे program की readability खराब होती है, और उससे problem आती है, programming के अंदर which is called redundancy, redundancy कहने का मतलब है कि code के अंदर कोई ऐसा काम था जिसको आप एक बार लिखके ही करवा सकते थे in the form of function, लेकिन वही code आपने बार बार बार बार repeat करके लिखा है, which is a sign of a bad programmer जो हमें नहीं बनना है, redundancy का मतलब होता है unnecessary repetition in the code, जिसको हमें avoid करना है शुरुवात तो वही के वही आपको उस काम का क्या करना है function create कर देना है कभी भी same line of code को as a good programmer हमें repeat कर कर के अपने program के अंदर नहीं लिखना है तो ये तो हमारा ऐसा function हो गया जो दो values का sum जो है उसे हमें return करके देता है हम चाहें तो ये जो दो values है इने float या इने double type का भी बना सकते हैं तो ये जो function होगा ये double sum जो है उसे return कर रहा होगा, तो कल को अगर हम 10.99 and 5.65 का sum calculate करना चाहें, तो वो हमारे पास print होकर आ जाएगा 16.64, अब जैसे हमने two numbers का sum calculate करने के लिए function बनाया, वैसे ही हम एक और function बना सकते हैं to calculate the minimum of two numbers, यहाँ पर pause करना है और एक बार खुद से इस function को लिखने की कोशिश of 2, minimum of 2 के अंदर, एक तो हम integer a लेंगे, एक integer b लेंगे, जो भी छोटी value होगी, उसे हम इस function से return करना चाहते हैं, तो minimum चेक करने के लिए हम चेक करते हैं, if a is less than or less than equal to, दोनों में ठीक होगा, अगर a b से कम है, तब तो a minimum है, else हम return कर देंगे b को, तो दोनों में से जो भी minimum होगा, वो इस function से return हो जाएगा, और हम c out कर देंगे, minimum is equal to, यहाँ पर लिख सकते हैं minimum of 2, and इसके अंदर pass कर देंगे हम 5 and 3, तो हमारे पास दोनों numbers का minimum print होकर आ जाएगा, which is going to be 3, अब यहाँ पर भी हमने 4 line लिखी हैं, पर यह जो 4 line का logic है, कभी भी अगर हमें आज के बाद minimum check करना हुआ, हम simply एक function मना सकते हैं, simply उस function को invoke कर सकते हैं, also हमारे function के अंदर ये जो values ली जाती है, इन values को हम parameters कहते हैं, और ये जो values हम pass करते हैं, जैसे 5 हमने pass किया, जो A के अंदर जाके store होगा, 3 हमने pass किया, जो B के अंदर जाके store होगा, तो ये जो values हम भेजते हैं, 3 and 5, इन values को हम अपने arguments कहते हैं, तो दोनों के लिए different different words हैं, जो use तो यहाँ पे उन्हीं values को copy किया जा रहे हैं, जबकि यह actual values थी, जिनने pass किया था function के अंदर, जो actual values होती हैं, जैसे 5 हो गया, 3 हो गया, यह मैं लिखकर भी बता देती हूँ, जैसे हमारे numbers हो गया, 1 हो गया, 10 हो गया, 15 हो गया, इस तरीके की जो values होती हैं, जो हमारे characters होते हैं यह जो values होती है, यह हमेशा वैसी की वैसी रहती है, change नहीं होती, तो इन values को technical terms के अंदर, हम अपने literals कहते हैं, literal का मतलब होता है, ऐसी चीज जो बिलकुल वैसी ही रहती है, जैसी वो है, one का मतलब one ही रहेगा, चायब C++ के अंदर लिखें, चायब Java के अंदर लिखें, तो सबसे पहला सवाल हमारी पास है to calculate the sum of numbers from 1 to n. तो हमें simply एक function बनाना है जिसके अंदर हम 1 से लेकर n तक का sum calculate कर रहे होंगे. अब क्योंकि n वैल्यू fix नहीं है तो n को हम as our parameter ले सकते हैं.

तो कैसे बनाएंगे function? Let us create a function. इस return type is going to be void because we don't really need to return anything, इसे नाम हम दे सकते हैं sum n, and इसके अंदर integer n हमारे पास as a parameter आ रहा होगा, अब कभी भी हमें 1 से लेकर n तक का sum calculate करना होता है, तो वो process हमें already आता है, sum variable ले लेंगे, which is going to start from 0, फिर हम एक for loop बना लेंगे, integer i equals 1 से start कर सकते हैं, less than equal to n, i plus plus, and हर बार sum के and यहां से return कर देंगे, हम चाहें तो अपना sum return भी कर सकते हैं, if we don't really want to print it inside the function, हम चाहें तो integer करके इसे return भी कर सकते हैं, अभी के लिए इसको return कर लेते हैं, अब let's suppose हमें sum calculate करना है, sum n के through, from 1 to 5, वो हमारे पास calculate होकर आ जाएगा, और कल को अगर इसी sum को हम calculate करना चाहते हैं from 1 to 10, वो भी हमारे पास calculate होकर आ जाएगा, 1 to 5 तक का sum 15 होने वाला है, 1 to 10 तक का sum 55 होने वाला है, तो it is really easy to write functions, अब अगर यही same, काम हमें दो बार कराना होता, तो ये जो पूरा को पूरा for loop है, इसको हमें दो बार लिखना होता अपनी code के अंदर, जिससे redundancy आती, तो उसी problem को, redundancy की problem को solve करनी की कोशिश हमारे functions करते हैं, in fact majority of the code जो companies के अंदर लिखा जाता है, ऐसा generally companies के अंदर नहीं होता, कि सारा का सारा एक और सवाल आप solve करते हैं, which is to calculate n factorial, अब n factorial वैसे तो मैंने आपको homework में भी दिया था, to solve हमारे loops वाले chapter में, अब n factorial क्या होता है, n factorial is multiplying all the numbers 1 through n, तो 1 से लेकर n तक सारे numbers को multiply करेंगे, जैसे for example 4 factorial is going to be 1 into 2 into 3 into 4, this value is going to be equal to 24, तो factorial निकालने का जो process होता है, it is very similar to sum निकालने का process, factorial निकालने के लिए हम एक variable ले लेते हैं, factorial, जिसको initialize करते हैं 1 के साथ, जिसे कभी भी sum निकालना है, तो sum को हमेशा initialize करते हैं 0 के साथ, क्यूं, क्यूंकि 0 ऐसी value है, जिसके अंदर आप कुछ भी add करोगे, answer हमेशा second value ही ह factorial, कभी भी multiplication ऐसे करना हो तो 1 से initialize करना है, sum निकालना हो तो 0 से initialize करना है, यह बहुत basic चीज मैंने आपको बताई है अब factorial निकालने के लिए हम basically एक loop चलाएंगे 1 से लेकर n तक तो हम एक for loop लिख सकते हैं, जिसमें i की value 1 से start हो रही है, 1 less than equal to n, i plus plus, हर बार factorial में क्या होता है, हर बार factorial में हमारे i की value multiply होती है, तो factorial into equal to, हम लिख सकते हैं अपना i, यह हमारा for loop हो गया, और last में हम return कर सकते हैं, अपनी factorial की value को, तो integer value ही होगी हमारा factorial, तो उसी value को हम return करेंगे, तो इस logic को एक बार code के अंदर convert करते हैं, और यह बहुत simple logic होने वाला है, factorial calculate करने के लिए, एक function बना लेते हैं, factorial n, factorial n के अंदर हम एक integer value लेंगे n, सबसे पहले तो factorial variable बना लेते हैं, जिसको initialize करेंगे 1 के साथ, फिर एक loop चला लेते हैं, i is equal to 1 से n तक, i plus plus, हर बार factorial is going to be factorial into n, इसी को short में लिखने का तरीका है, factorial into equal to n, not n, i, यहाँ पर भी, i हम लिखते हैं, and last में we are going to return our factorial value, so this is the entire function to calculate n factorial, हम चाहें तो calculate कर सकते हैं, factorial n for 4, and factorial n for let's suppose 5, clear it and save, तो factorial of 4 होता है 24, factorial of 5 होता है 120, तो यह बिलकुल सही values हमारे पास आकर print हो गई है, और यहाँ तक आपको समझ आ गया होगा कि functions को लिखना कितना easy है, कितना simple है, कोई as such difficulty नहीं है इस पूरी चीज़ में, next हम पढ़ने वाले हैं कि जब भी हम एक function को create करते हैं, what actually happens in the computers memory, basically अभी तक हमने इस तरीके का एक format देखा है कि हमने एक integer main function बनाया है, इस तरीके का, और सम के अंदर हम क्या कर रहे हैं, integer a and integer b इन values को pass कर रहे हैं, और हम directly return कर सकते हैं a plus b का sum, इस तरीके से directly sum return हो सकता है, तो main function क्या करता है, main function हमारे sum function को call करता है, और इसे values 3 and 5 pass करता है, जिसके basis पर वे कुछ sum calculate करेंगे, और यहां से है return 0, तो इस तरीके का हम एक example लेते हैं, अब जो functions होते हैं, functions memory के अंदर कहां पर store होते हैं, सबसे पहले उसकी बात करते हैं, हमारे जो computer की memory होती है, specifically C++ के context में हम बात कर रहे हैं, we have two types of memory, सबसे पहली जो हमारे पास memory होती है, इस memory को हम कहते हैं हमारी stack memory, stack के बारे में बाद में जाकर हम पूरा को पूरा एक chapter करेंगे, because stack is a really important data structure, stack एक type का data structure होता है, data structure का मतलब होता है एक ऐसा structure, एक ऐसी चीज जो data को store कराती है, तो stack क्या करता है, stack data को store कराता है, stack को अगर real life के अंदर आपने देखा होगा कि books के उपर, books के उपर, books के उपर, बहुत सारी books रखी होती हैं, तो इसको हम एक stack of books कहते हैं, तो stack में चीज़ें एक के उपर, एक के उपर, एक layer में store होती हैं, एक होता है हमारा stack और एक होता है हम allocation के लिए use होती है, stack जो होता है वो generally static allocation के लिए use होता है, अब dynamic allocation क्या होता है, static allocation क्या होता है वो हमें समझ में नहीं आएगा, वो हम बाद वाले chapters में जाके पढ़ेंगे, तो generally हमारे जो functions होते हैं, ये सारे के सारे stack के अंदर आकर store हो रहे होते हैं, stack के अंदर कैसे store होते हैं, जैसे for example code कहां से शुरू होता है, हमारा जो भी program है, उसका starting point हमेशा main function होता है, यहाँ पर कई लोग सोच रहे होंगे, जैसे sum को तो main function ने call कर दिया, लेकिन main function को कौन call करता है, main function को automatically compiler ही internally call करता है, उसे हमें नहीं call करना पड़ता है, तो जब main function को first time automatically call जाती है, तो उसके लिए यहाँ पर एक layer create हो जाती है stack memory के अंदर, और इस layer को हम कहते हैं अपना stack frame, और stack frame के अंदर जाकर main function का जो पूरा logic है, main function की जो related information है, data है, वो जाकर store हो जाता है, जैसे for example ये तो बहुत simple सा main function है, अगर main function के अंदर और कोई variables होते हैं, जैसे main function के अंदर कोई variable होता है, integer x is equal to 25, तो ये variable कहां पे memory occupy करता है, ये variable इस stack frame के अंदर memory occupy करता है, तो ये जो variable है x is equal to 25, यहाँ पर आकर store हो रहा होता, computer की memory के अंदर, तो यह हमारा main function हो गया, अब main function जैसे ही sum function को call लगाएगा, तो हमारे जो program का control है, program का control कहने का मतलब है, कि flow, अब यह वाला काम हो गया, तो अब यह वाला काम करने के लिए, तो जब भी sum function को call किया जाएगा, जब भी किसी function को call किया जाता है, तो जैसे इस function को call करेंगे, वैसे ही वो इस stack memory के अंदर आकर अपनी जगे ले लेगा, तो sum function क्या करेगा, sum function यहाँ पर आएगा, और stack के अंदर sum function के लिए यह जगे जो है, वो allocate हो जाएगी, अब sum function के जो variables हैं, वो सारे के सारे यहाँ पर आकर store होंगे, जैसे sum function में integer a है, and integer पूरी story से हमें तीन चीज़ें सीखने को मिलती हैं सबसे पहला तो every function is stored in the stack memory in the form of stack frames दूसरा function के जो सारे के सारे related variables होते हैं, वो उनहीं के साथ function के पूरे logic के साथ ही stack frame के अंदर आते हैं, तो functions जो है वो stack, इसे हम call stack कहते हैं, तो functions call stack के अंदर memory occupy करते हैं और उनका data वहाँ पर store होता है, and third important चीज कि जहां पर भी अभी हमारा control है, मतलब जिस current function के अंदर अभी हम है, हमारे top of the stack में वही current function होता है, जैसे ही दो numbers का sum calculate हो गया 8, और जैसे हमने return कर दिया, तो return करके control क्या करेगा, return करके control वापस यहाँ पर आ जाएगा, और जैसे control यहाँ पर वापस आए, वैसे ही क्या होगा, stack frame के अंदर यह वाला function, main function को 8 value return कर देगा, और खुद इस stack से बाहर हो जाएगा, तो अब जब हम वापस यहाँ पर main function के अंदर आ जाएंगे, तो main function के अंदर के ही variables हमारे पास available होंगे, main function के अंदर अगर हम यह integer ए, integer भी इस तरीके की values, या इसके अंदर भी अगर हमने कोई variable अगर define किया होगा, तो उसको main function के अंदर access नहीं कर सकते, main function के अंदर access इसलिए नहीं कर सकते, जैसे for example, मैंने एक function मनाया, let's call it void fun, void fun function के अंदर, मैंने कोई variable बनाया है, integer x is equal to 25, तो ये 25 मैंने बनाया है, यहाँ पर चाहें तो 25 को c out भी कर सकते हैं, x, अब हम क्या करेंगे, main function से इस fun function को call करेंगे, और fun function को call करने के बाद, अपने x को print करवाने की कोशिश करेंगे, तो let's do it, तो अब क्या हुआ, हमारे पार शिरुवात में ही एरर आ गया कि use of undeclared identifier, identifier variables and functions के नाम को हम कहते हैं, कि जो x हमने लिखा है, compiler हमें बता रहा है कि यह x तो exist ही नहीं करता, यहाँ पे जो x है, यह exist ही नहीं करता, x तो कहां exist करता, इस fun function के अंदर exist करता है, अब क्योंकि fun function से हम बाहर आ गए यहाँ पर, तो fun function तो delete हो गया, तो उसका x भी delete हो गया memory से, तो अब यहाँ पर x exist नहीं करता है, तो इस तरीके से हमारे functions जो हैं, वो memory के अंदर कुछ इस तरीके से function करते हैं, जो भी हमारा current function होता है, वो हमेशा stack के top पर रहता है, जैसे for example ये जो sum function है, अगर ये किसी और function को भी call कर रहा होता, यहाँ पर let's suppose कोई और function होता, int abc, और sum function के अंदर हम क्या करते हैं, return करने से पहले, अगर abc को call करते हैं, तो, पहले हमारा sum function आता, उसके बाद एक और stack frame में हमारा ABC function आता, तो functions इस तरीके से एक दूसरे को call करते हैं, तो stack के अंदर वो जगए occupy करते रहते हैं, फिर function जब value return करते हैं, तो उपर से हट जाते हैं, यह value return करेगा, तो यह भी हट जाएगा, और finally main function जब return 0 कर देता है, तो यह भी हमारे stack frame से हट जाता है, और finally हमारा जो पूरा को पूरा stack होता है, वो खाली हो जाता है, also functions के अंदर यह जो return statement होती है, यह एक तरीके से final statement होती है, कोई भी काम जो return statement के बाद लिखा जाता है function के अंदर, वो कभी पूरा नहीं होता, जैसे if this is my fun function, and यहाँ पर, if I have returned value 2, इसे 2 कर देते हैं, and इसका return type integer रख देते हैं, और यहाँ पर, अगर मैं print कराने की कोशिश करूँ hello, तो यह जो hello है, यह कभी भी print नहीं हो रहा होगा, अगर हम fun function को call करें, फन function call होगा, return होगी to value और इस statement तक हम कभी पहुँचते ही नहीं है, तो हमेशा याद रखना है कि किसी भी function की return statement अगर आपने लिख दी, तो वो last statement ही होनी चाहिए, उसके बाद कभी कोई काम आपको नहीं करवाना है, अगर हम एक void return type रखते हैं अपने function का, तो हम चाहें तो empty return statement भी लिख सकते हैं, यह return statement किसी value को return नहीं कर रही, यह return statement control को return कर रही है, control कहने का मतलब होता है कि अभी हम program के अंदर कहां पर हैं, जिसे for example आपने कोई बड़ा सा program लिखा, if this some condition, यहाँ पे some condition लिख सकते हैं, उसके बाद else अपने लिखा, यहाँ पे some condition लिख सकते हैं, अब आप चाहते हैं जो second वाली condition है, अगर ये true हो जाती है, तो उस case में आप इस code से ही, इस function से ही return करना चाहते हैं, तो इस तरीके से अपने पूरे program के बीच में भी, हम कहीं पर return कर सकते हैं, तो जैसे हम ये return लिख देंगे, तो return statement को बिना किसी value के return किये भी, अब next एक और important concept पढ़ते हैं, related to functions, which is pass by value, pass by value कहने का मतलब है, let's suppose, हमने एक function बनाया, यह अपने पुराने function को देखते हैं which was the sum function अब let's suppose यह पुराने functions हटा देते हैं let's suppose हमने function मनाया है sum sum function के अंदर हमारे पास दो variables आते हैं integer a and integer b और फिर हम क्या करते हैं फिर हम इस a और b का sum जो है वो return करते हैं तो इस तरीके से हमारा sum function काम करते हैं तो जब भी sum function के अंदर हम कोई value पास करते हैं 5 and 4 तब तो हमें पता है 5 is A के अंदर जाके store हो जाएगा, 4 is B के अंदर जाके store हो जाएगा, बहुत straightforward है, लेकिन let's suppose यहाँ पर main function के अंदर हमने कोई variable define किया, x is equal to 5 and y is equal to 4, तो हम क्या कर रहे हैं, अपने x और y को यहाँ पर pass कर रहे हैं, तो जब हम see out करेंगे अपना sum, पर internally यह जो parameters and argument है, हम नहीं, integer, यह ऐसे ऐसे कह देते हैं, हमने main function के अंदर 2 values बनाई, x is equal to 5, y is equal to 4, तो memory के अंदर यह जो 5 and 4 हैं, इन्होंने कोई जगे घेरी होगी, memory के अंदर यहाँ पे x होगा जिसने 5 जगे ली होगी, यहाँ पे y होगा जिसने 4 जगे ली होगी, तो जब main function हमारे sum function को call करता है और sum के अंदर values आती हैं a and b, तो इस a के अंदर x की value आएगी, which is going to be 5, b के अंदर y की value आएगी, which is going to be 4, तो इस तरीके से जब भी arguments भेजे जाते हैं और वो parameter बनते हैं हमारे function के अंदर, तो एक तरीके से वो जो arguments हैं, उनकी copy बनती है function के लिए, ये sum function का data है, ये हमारी main function का data है, तो जब भी हम इन values को भेजते हैं, तो हमारे पास एक a बनेगा with the value 5, and एक b बनेगा with the value 4, तो पुरा इसको अगर एक और level up करके देखें तो for example यहाँ पर हम इन variables को भी a और b ही नाम देते थे, x और y नहीं दिया, अब a और b दिया, तो यह जो a और b हम यहाँ पर pass कर रहे हैं, और यह जो a और b यहाँ पर use हो रहे हैं, यह दोनों अलग-अलग a और b हैं, कुछ नहीं करना, सिर् a is equal to 5, b is equal to 5, a, b, तो जब भी हम main function से अपने sum function को call लगाते हैं, तो ये a, b, जो है इनकी copy बनती है memory के अंदर, memory के अंदर हर एक variable का अपना कुछ address होता है, जैसे for example इसका address है 100, 100 address को हम ऐसे समझ सकते हैं, जैसे हमारे हर एक घर का address होता है, तो वैसे ही memory में जगे का address होता है, इसका address अगर 100 है, इसका address अगर 200 है, तो memory के अंदर, अंदर ये जो A है ये किसी और address पे बनाओगा ये जो B है ये भी किसी और address पे बनाओगा और जब sum function के अंदर हम है तो हम इन ही दोनों A और B को use कर रहे हैं तो कोई भी change अगर हम इन दोनों AB के अंदर करते हैं तो वो original के अंदर reflect नहीं करेगा जैसे for example ये जो A है इसकी value बढ़ा कर अगर मैं 15 कर दूं, B की value बढ़ा कर अगर मैं 14 कर दूं, तो original के अंदर कोई change नहीं आएगा main function में, जैसे यहाँ पर sum return करने से पहले, अगर A को बढ़ा कर मैं कर दूं A plus 10, and B को बढ़ा कर मैं कर दूं B plus 10, और फिर यह जो values हैं, sum को print नहीं कराते हैं, बस simply हम sum of A and B को call करेंगे, अगर फाइव था और हमने फाइव पास किया था, तो अब हमारे A की value 15 हो जानी चाहिए, B की value 14 हो जानी चाहिए, तो जब हम return करेंगे, sum of A plus B, तो हमारे पास क्या sum return होना चाहिए, हमारे पास sum तो return होगा 29 के equal, या in fact इस sum को print भी करवा लेते हैं, तो हमें confirmation हो जाएगा, sum तो और बी को प्रिंट करवानी की कोशिश करेंगे, तो values हमारे पास 15, 14 नहीं होंगी, values यही वाली values होंगी, जो main function के अंदर है, एक value 5 होगी, एक value 4 होगी, और इसी phenomena को हम कहते हैं pass by value, दो तरीके से हम arguments को pass कर सकते हैं, एक होता है pass by value, और एक होता है pass by reference, pass by reference का मतलब होता है कि हम मतलब हम इसका address ही pass कर देते हैं, तो जो भी 15 होगा, वो इसी 100 वाले address के उपर ही आकर change होगा, तो pass by reference अभी हमें उतना समझ में नहीं आएगा, pass by reference को हम pointers वाला जो chapter है, उसको करने के बाद समझेंगे, तो हमें और detail में समझ में आएगा, तो अभी के लिए हम focus कर रहे हैं सिर्फ pass by value पर, pass by value का मतलब होता है कि we are going to create a copy of the argument which is passed to the function, तो जो भी changes function करता है, वो calling function, मतलब main function के अंदर reflect नहीं करते, वो सिर्फ यही तक ही सीमित रहते हैं, इसके लिए एक और I am going to give you a question, जैसे for example, हमने एक function बनाया integer fun, integer fun एक variable लेता है x, यह इसको कह सकते है change x, यहाँ पे क्या करते हैं, हम x की value को change कर देते हैं, to 2 into x, और यहाँ हम c out कर रहे हैं x, is equal to अपने x की value, main function के अंदर क्या कर रहे हैं, main function के अंदर एक integer x हम बनाएंगे, ���िसकी value है 5 के equal, and यहां से हम change करेंगे, x को using this function, और दुबारा से हम main function के अंदर भी x की value को print करवाएंगे, यहाँ पर एक बार pause करना है, और आपको बताना है, कि इस पूरे के पूरे code का क्या output आने वाला है, तो output की अगर बात करें, x के अंदर 5 है value, तो यह हमारा main function है, जिसने x बनाया है equal to 5, तो यह main function की memory में जाके 5 जाकर store हो जाएगा, अब main function जब call करेगा अपने fun function को, या change x function को, इस फंक्शन इस चेंज एक्स चेंज एक्स के अंदर क्या होगा चेंज एक्स के अंदर एक्स की एक और कॉपी बनेगी एड सम अदर आइड्रेस वह आइड्रेस कुछ नहीं हो सकता है पुरानी वैल्यू जो है यहां पर आकर कॉपी हो जाएगी कॉपी क्यों ही क्योंकि नॉर्मल वेरिबल्स के अंदर हमारे पास पास बाय वैल्यू होता है तो वैल्यू हमारे पास कॉपी हो गई और अब हम एक्स की वैल्यू को x is equal to 2 into x, यह जो x है यहाँ पर हटके, यह value हो जाएगी 10 के equal, और सबसे पहले हमारे पास print हो कर आएगा 10, second number पे, जब हम वापस जाएगे main function के अंदर, main function के अंदर अभी भी x की value 5 है, तो second line में हमारे पास x की value print होगी 5 के equal, तो बहले 10 print होगा, फिर 5 print होगा, इसको verify भी कर सक तो x is equal to 10, and उसके बाद x is equal to 5, तो इस तरीके से हम verify भी कर सकते हैं कि pass by value कैसे work करता है, generally अगर हम कोई भी integer pass करेंगे, boolean variable pass करेंगे, हम कोई भी float pass करेंगे, double pass करेंगे, character pass करेंगे, तो यह जो सारे के सारे हमारे variables होते हैं, normal variables, यह हमेशा pass by value होते हैं, और generally अगर हम vector की बात करें, आगे जाकर हम vector पढ़ेंगे, हम अपनी link list की बात करें, हम अपने stack की बात करें, यह सारे के सारे हमारे data structures होने वाले हैं, तो generally STL, C++ STL हमारी library होती है, standard template library, जिसको बाद में जाकर हम सीखेंगे, तो C++ STL के अंदर, जो हमारे इस तरीके के data structures होते हैं, उनको जब हम pass करते हैं, तो ये सारे pass by reference होते हैं, pass by reference को बाद में सीखेंगे, पर अभी के लिए यह याद रखना है, कि primitive data type variables को जब हम pass करते हैं, तो वो हमेशा pass by value हो रहे होते हैं, which is going to be an interesting one, we have to calculate the sum of digits of a number, for example हमारे पास एक number है num is equal to 145 तो इसके digits का हमें sum calculate करके return करना है in the form of a function तो digits का sum हो जाएगा 1 plus 4 plus 5 this is going to be equal to 10 तो कैसे हम किसी ���ी number के digits का sum return कर सकते हैं तो numbers के जब भी हमें individual digits निकालने होते हैं तो उसके लिए एक fixed तरीका होता है, and that process is कि हमें digits का sum निकालने से पहले तो digits निकालने पड़ेंगे, पहले हमें इस 5 को अलग करना पड़ेगा, फिर हमें इस 4 को अलग करना पड़ेगा, फिर हमें इस 1 को अलग करना पड़ेगा, अगर हमने अलग अलग digits को निकाल लिया किसी भी number के लिए, तो कुछ नहीं करना, बस इन digits का sum ले लेना है, तो क्या हम ऐसा करें, कि हमें बार बार किसी number का digit पता चल जाए, क्या हम कह सकते हैं कि किसी भी number का, अगर मैं 10 के साथ remainder ले लूँ modulo ले लूँ तो मेरे पास उस number का last digit आ जाएगा जैसे 145 है 145 जब 10 से divide होगा तो हमारे पास quotient आएगा 14 और remainder में रह जाएगी value 5 के equal हमें already पता है तो 145 को जब 10 से modulo लेंगे हमारे पास answer आएगा 5 अब मुझे next कौन सा remainder चाहिए अब मुझे next remainder में चाहिए 4 तो क्यों ना मैं अपने number को change करके 14 बना दू और 14 का दुबारा मैं 10 के साथ मॉडिलो ले लूँ, 14 का 10 के साथ मॉडिलो लूँगी तो दुबारा से मेरा आंसर आ जाएगा 4 के equal, अब मैं अपने number को दुबारा change करके 1 बना दू, फिर 1 का दुबारा 10 के साथ मॉडिलो ले लूँ, तो इस बार मेरे पास आंसर आ जाएगा 1 उसका मैं modulo लेना चाहती हूँ 10 के साथ ताकि मेरे पास क्या आ जाए ताकि मेरे पास remainder आ जाए और remainder ही क्या है remainder ही मेरा digit है जिस digit को मैं अपने sum के अंदर add करना चाहती हूँ अब जैसे ही मेरे पास ये remainder आ गया अब मैं क्या चाहती हूँ अब मैं चाहती हूँ ये जो last digit ये ज मुझे पता है 145, 10 के साथ divide करके quotient दे देगा 14 और remainder में दे देगा 5, तो कभी भी किसी number से अगर बचे हुए number को और last digit को हमें अलग-अलग करना होता है, तो number का जब हम modulo लेंगे तब तो हमारे पास last digit आ जाएगा, और number को जब 10 से divide कर देंगे तो हमारे पास बचाओगा number आ जाएगा, तो यह एक rule होता है, यह बहुत simple math की चीज़ है, तो पहला step अगर था कि हमें last digit चेगे था, हमें अपना last digit चेगे था number का, तो मैं simply number को कर सकती हूँ, number divided by 10 की equal, तो number क्या होगा number change हो जाएगा और बार बार ये जो last digit मेरे पास आ रहा है अब मैं चाहूँ तो इसे print करवा सकती हूँ उसका sum ले सकती हूँ उसका multiplication ले सकती हूँ अब हम इसके साथ कोई भी काम कर सकते हैं त logic basically ऐसा दिखेगा कि एक तो हम अपना digit sum ले सकते हैं, let's call it digit sum जिसको initialize कर सकते हैं 0 के साथ, हम एक while loop लगा सकते हैं, जब तक मेरा जो number है, number के अंदर जो भी value मैंने store की है, जब तक मेरा number greater than 0 है, तब तक मुझे अपने while loop को run करके इन दोनों कामों को कराना है, हम चाहते तो for loop भी बना सकते थे, while loop भी बना सकते थे, इस particular सवाल के लिए, while loop को समझना थोड़ा सा जादा easy रहेगा, तो while use कर रहे हैं, basically मुझे कब तक 145 को divide करते रहना है, यह एक बड़ा number ले लेते है, let's suppose मेरे पास यह number होता, पहले इसका मैं 0 वाला digit निकालती, 1, 2, 4, 5 रह जाता, फिर मैं 1, 2, 4, 5 से 5 निकाल लेती, तो 1, 2, 4 रह जाता, फिर मैं 1, 2, 4 से 4 निकाल लेती, तो 1, 2 रह जाता, 1, 2 से 2 निकाल ले 1 को finally 10 से divide करेंगे तो last में answer हमेशा 0 के equal आएगा तो तब तक loop को run करेंगे जब तक number की value greater than 0 है और तब तक loop को run करके हमें इन दोनों कामों को perform करना है सबसे पहले तो last digit निकाल लेंगे तो last digit is going to be our number modulo 10 उसके बाद number को ही divide कर देंगे by 10 ताकि number छोटा हो जाए अब इस last digit को हम अपने digit sum के अंदर add कर सकते हैं तो digit sum plus equal to our last digit, तो यह value add हो जाएगी, और last में जाके हम c out करा देंगे अपना, जो भी हमारा digit sum रहा होगा, तो इस तरीके से हम सारे के सारे digits का sum निकाल सकते हैं for a particular number, एक example के तुरू इसको test भी कर लेते हैं, जैसे for example मैंने number लिया 2356, 2356 के लिए सबसे पहले तो remainder निकलेगा, remainder निकलेग या in fact इस sum को यहाँ पर लिख लेते हैं, यह हमारा sum है, जिसके अंदर 6 add हो गया, अब 6 add हो गया, तो इस number को जब हम 10 से divide करेंगे, तो 6 हट जाएगा, 2, 3, 5 बचेगा, फिर 5 निकाल लेंगे, 5 sum के अंदर add हो गया, यह हट जाएगा, तो 2, 3 बचेगा, उसमें से 3 निकाल लें let's call it integer sum of digits, sum of digits के अंदर मेरे पास एक number आएगा, num, जिसका हम sum of digits निकालना चाहते हैं, तो एक ले लेते हैं, integer digit sum, initialize कर देंगे zero के साथ, जब तक हमारा number greater than zero है, तब तक हमें क्या करना है, सबसे पहले तो last digit निकाल लेंगे, तो last digit is going to be number modulo 10, उसके बाद number को ही छोटा कर देंगे, तो number is equal to, divide equal to 10, and finally, अपने digit sum के अंदर add कर सकते हैं, हम अपने last digit को, and यहाँ से return कर देंगे, अपना digit sum, let's save it, main function के अंदर, हमें c out करना है, sum is equal to, sum of digits, जिसके अंदर हम अपना same number pass कर सकते हैं, 2, 3, 5, 6, जिसका answer हमें पता है, 16 के equal आना चाहिए, तो इससे check करेंगे, the sum is going to be equal to 16. तो इस तरीके से किसी भी number के सारे digits का sum निकालना possible है.

Next एक और question हम solve करते हैं. The question is to calculate binomial coefficient for given n and r values. अब binomial coefficient हमने math के अंदर पढ़ा होगा, binomial coefficient exactly क्या होता है, mathematical concept होता है, उसके मैं अभी जादा detail में नहीं जाओंगी, हमें simply इस value को calculate करना है. Basically binomial coefficient को हम लिखते हैं n, c, r की form में, जहांपे n और r कोई भी number हो सकता है.

Let's suppose n is equal to 8 and r is equal to 2. So, NCR कहता है कि binomial coefficient NCR is equal to n factorial divided by n minus r factorial. तो यह हमारे पास formula होता है और इसके लिए हमें solve करना है. जैसे अगर हमें दिया हुआ 8C2, n की value 8 है, r की value 2 है, तो कैसे calculate करेंगे?

हम 8 factorial को divide करेंगे अपने 2 factorial and 8 minus 2 factorial के साथ. This is going to be 8 factorial divided by 2 factorial into 6 factorial. अब 8 जो होता है, 8 is 8 into 7 into 6 factorial, तो इस 6 factorial से 6 factorial कट जाएगा, यहाँ पर 4 आ जाएगा, तो 4 into 7, this is going to be equal to 28, तो NCR जहाँ पर N8 R2 है, उसकी value होती है, हमारे पास 28, एक और example हम ले सकते हैं, जैसे let's suppose हमें 6C3 calculate करना हुआ, जहाँ N की value 6 है और R की value 3 है, तो this is going to be 6 factorial divided by 3 factorial divided by 3 factorial, तो यह value हो जाएगी 6 into 5 into 4 divided by 3 factorial, this is 6, तो 3 factorial 6 होता है, and यह finally हमारे पास आ जाएगी value 20 के equal, तो इस तरीके से हम किसी भी factorial को calculate कर सकते हैं, अब ncr calculate करने के लिए सबसे असान चीज, जो किसी भी number का factorial निकालना होता है, उसको तो हमने already बना रखा है, हमें already पता है, अगर मेरे पास कोई भी number n हो, या कोई भी number x हो, कुछ भी number हो, सबसे पहले उससे हम n का factorial निकालेंगे, फिर हम r का factorial निकालेंगे, फिर हम n-r का factorial निकालेंगे, और उसके बाद simply हमें बस divide करना है, तो आप चाहें तो यहाँ पर pause करके, आप खुद से भी इसका पूरा code लिख सकते हैं, it is going to be very simple, तो code की अगर बात करें, तो code के लिए सबसे पहले तो हमें अपना एक factorial function लिखना पड़ेगा, factorial of integer n, हम एक factorial बना लेते हैं, initialize करेंगे 1 के साथ, for integer i equals 1, i less than equal to n, i plus plus, हमेशा factorial into equal to i होता है, last में हम return कर देंगे factorial की value को, तो हमारा function हो गया, जो किसी भी number का factorial calculate कर देता है, अब हमें अगर given है कि हमारा n है 8 के equal, and हमारा r है 2 के equal, तो कैसे calculate करेंगे, तो हमें basically 3 terms calculate करनी है, ये term हमारी numerator की term है, ये दोनों terms हमारी denominator की term है, तो सबसे पहले तो factorial of n calculate कर लेते हैं factorial of n is equal to factorial function के अंदर हम अपने n की value पास कर देंगे बस हो गया है यहाँ पर calculate और यह बहुत simple है कुछ नहीं किया already एक जो function था उसको मैंने reuse कर लिया in fact binomial coefficient के लिए भी एक function मना लेते है called ncr ncr के अंदर हम n पास करेंगे अपना r पास करेंगे और यह जो सारे काम है यह इस function के अंदर हम करते हैं तो ncr function के अंदर हम basically अपना n, c, r calculate करने के लिए, यहाँ पर n और r pass करेंगे, और यह function क्या कर रहा है, यह एक function है, जो इस function को use कर रहा है, तो इस तरीके से functions एक दूसरे को use कर सकते हैं, तो यहाँ पर पहले factorial n calculate कर लिया, इसी तरीके से factorial r calculate कर लेते हैं, बस r की value pass करनी है, हमें factorial n minus n minus r, nmr इसे मैं लिख रही हूँ, which means n minus r, इसे calculate करना है, तो इसको भी हमने calculate कर लिया, तो final value क्या हो जाएगी, final value हो जाएगी factorial of n divided by factorial of r into factorial of, n-r, and यह जो value है, इसे हम कर देंगे यहां से return, बहुत simple है, पहले नीचे के जो denominator में दोनों terms है, यह multiply हो जाएंगी, और उपर वाली से divide होकर value return हो जाएगी, इस सवाल को मैंने इसलिए नहीं कराया, ताकि हम binomial coefficient के बारे में जान जाएं, इस सावाल को मैंने सिर्फ इसलिए कर आये, ताकि हम एक practical use case देखेंगे, कैसे main function किसी दूसरे function को call कर सकता है, और वो function किसी तीसरे function को call कर सकता है, और चाहे तो ये भी किसी दूसरे function को भी call कर सकता है, and in fact आगे जाके हम recursion जब पढ़ेंगे, recursion एक बहुत important concept होता है, recursion में हम देखेंगे कि एक function, खुदी ही को बार बार भी call कर सकता है, तो पूरा का पूरा जो recursion है, पूरी की पूरी, जो आधे से जादा programming है, वो recursion के उपर based होती है, कि कैसे एक function, खुदी ही को बार बार बार बार call करके, कोई काम perform करता है, let us see out our final answer, 28K equal 8C2, अगर n की value 6 हो जाती, r की value 3 हो जाती, तो इस case में answer हमारे पास आ जाता 20 के equal. तो इस तरीके से हम binomial coefficient को calculate करने के लिए भी अपना कोई function बना सकते हैं. तो next एक बार summarize कर लेते हैं, कि आज हमने क्या क्या पढ़ा.

आज हमने पढ़ा कि हमारे functions क्या होते हैं, functions के अंदर return को किस तरीके से use कर सकते हैं, function के parameters क्या होते हैं, function के arguments क्या होते हैं, तो यह हमारे basics of a function हो गए. जैसे factorial कैसे calculate होता है, sum कैसे calculate होता है. हमारा binomial coefficient किस तरीके से calculate होता है, हम digits का sum कैसे calculate कर सकते हैं, जो काफी सारे important concepts हैं, उसके साथ में हमने जाना कि functions memory के अंदर किस तरीके से work करते हैं, and call by value का क्या मतलब होता है, आगे जाके हम call by reference भी देखेंगे, अब ये सारी की सारी हमारी summary हो गई है आज के lecture की, and I hope कि आज के lecture से functions के बारे में हमने बहुत सारी चीज़ें सीखी होंगी, अब साथ के साथ I am going to give you some homework problems, सबसे पहले you have to write a function to check if a number is prime or not, very straight forward, then you have to write a function to print all prime numbers from 1 to a given n, जैसे n की value अगर 5 दी है, तो 1, 2, 3, 4, 5 में से, मुझे पता है, या in fact इसे 1 नहीं करेंगे, क्योंकि 1 ना prime होता है, ना composite होता है, तो 2 to n से, तो 2 एक prime number होता है, 3 एक prime number होता है, 5 एक prime number होता है, तो 2 से लेकर n तक जितने भी prime numbers हैं उनको आपको print करवाना है, and the third question is to write a function to print nth Fibonacci, Fibonacci क्या होता है, Fibonacci के बारे में आप जाकर पढ़ सकते हैं, Fibonacci को हम आगे की classes में वैसे देख भी रहे होंगे, पर Fibonacci हमारी एक series होती है numbers की, Fibonacci series होती है 0, 1, 1, 2, 3, 5, 8, 13, and इस तरीके से, basically Fibonacci के अंदर हर एक जो number होता है, वो अपने पिछले 2 numbers का sum होता है, हर एक जो number होता है, वो अपने पिछले दो numbers का sum होता है, तो इस तरीके की हमारी Fibonacci series होती है, जिसमें ये जो term होती है, 0, इसको हम अपनी 0th term कहते हैं, ये इसको अपनी 1st term कहते हैं, similarly, ये हमारी 2nd term होगी, 3rd होगी, 4th होगी, 5th होगी, 6th होगी, 7th होगी, तो आपको कोई भी अगर n की value दी गई है, जैसे for example n is equal to 4 है, तो 0, 1, 2, 3, 4, ये हमारी 4th Fibonacci term है, equal to 3, तो आपको किसी भी given value of n के लिए अपनी n-th Fibonacci term को print करवाना है, तो कैसे एक loop लगाकर हम Fibonacci को print करवा सकते हैं, वो आपके लिए एक homework problem है, इसके बारे में आप चाहें तो search कर सकते हैं, online what is Fibonacci, how to calculate the n-th Fibonacci, तो आपके लिए एक अच्छी काफी self learning वाला process हो जाएगा, also एक और चीज़ जो मैं आपको homework problem दूगी, that is going to be switch statement, conditional statements का ही एक part होता है, basically अगर हमारे पास कभी कुछ ऐसी situation होती है जिसमें बहुत सारे cases होते हैं, जैसे मेरे पास कोई variable हो गया character ch, तो character ch में अगर a है तो एक काम होना चाहिए, b है, तो दूसरा काम होना चाहिए, c है, तो तीसरा काम होना चाहिए, d है, तो चौथा काम होना चाहिए, e है, तो अलग बी वाले case में जो भी हमने काम लिखा होगा वो सच हो जाएगा, तो switch statement बहुत easy होती है, बहुत बच्चों वाली होती है, अगर functions और loops और nested loops, patterns हमने complete कर लिया है, तो switch बिल्कुल आपको बच्चों वाली चीज लगेगी, मैं मज़ाग भी नहीं कर रही, बहुत simple लगेगी, it's switch जो statements होती हैं, उनको DSA के अंदर हम कभी भी use नहीं करेंगे, बहुत simple होती है, पर कभी-कभी हो सकता है, आपकी college की classes में पूछ लें, college की exams में पूछ लें, पर यह बहुत simple चीज़ है, तो इसको मैं class के अंदर cover नहीं करूँगी, क्योंकि हम अपनी placement oriented, internship oriented DSA कर रहे हैं, तो this is going to be very simple, which we are not going to use in the future, तो इसको आप खुद जाकर as homework problem complete कर सकते हैं, कि you have completed switch on your own, and you have also completed these homework problems.

तो आज अगर हमने lecture को अच्छे से complete कर लिया है, तो नीचे आज की date डाल देनी है, you can write that you have completed this lecture successfully, and homework problems को भी complete करने के बाद, mark कर देना है कि इस date में, इस time में आपने homework problems को complete कर लिया है, तो आज के lecture हमारा इतना ही था, what was your favorite part, you can let me know in the comments, also you can let me know on Twitter, till then keep learning and keep exploring.