Hi everyone and today we are going to start with our next chapter which is going to be about variables, data types and operators. Now apart from this chapter, अगर हमें DSA के concepts में कोई और concept भी सीखना है, तो वो हमें इसी channel के उपर, इस playlist के अंदर available मिल रहा होगा. तो वहाँ से जाकर हम सीख सकते हैं.
अल्सो ये जो हमारी पूरी DSA series रहेगी, इससे regarding जितने भी हमारे updates होगी, जैसे lectures का schedule हो गया, तो वो सब हम इस Twitter account के उपर share कर रहे होंगे, जिसका link भी आपको नीचे description box के अंदर दिया गया है, तो हम चाहें तो इसे भी जाकर check कर सकते हैं. और हमारी सीरीज से related जितने भी आपकी progress होगी उसे भी आप इसी same account के साथ share कर सकते हैं तो शिरुआत करते हैं अपने lecture 2 के साथ Hi everyone and welcome to PNA college और आज हम start करने वाले हैं अपना lecture 2 in our DSA series जिसके अंदर अब हम C++ के अंदर programming करना सीख रहे होंगे यानि finally अब हम अपने code को लिखना start करेंगे अब code को लिखने के लिए सबसे पहली चीज़ जो हम करने वाले है that is to write our first C++ program अब इस program को लिखने से पहले कुछ basic चीज़े हैं जिनका हमें पता होना चाहिए सबसे पहले तो हमें पता होना चाहिए कि C++ के अंदर output कैसे produce करते हैं output produce करने का मतलब है कि अगर मुझे अपनी code के तुरू अपनी screen पर कुछ print करवाना है तो इसके लिए हम एक statement use करते हैं which is this statement we basically use this cout C out कहने का मतलब है कि हम कुछ output कराना चाते हैं, तो हम C out लिखते हैं, उसके बाद हम इस तरीके से 2 less than के symbol लगाते हैं, फिर हम double quotes के अंदर जो भी चीज लिखते हैं, वो वैसे के वैसे हमारी screen पर आकर print हो जाती है, यह जो statement यहाँ पर हमें दिखाई दे रही है, इसे हम एक output statement केस sensitive language है, case sensitive कहने का मतलब है, कि अगर मैंने यहाँ पर यह C, small में, lower case में लिखा हुआ है, तो हमें code के अंदर भी इसे lower case में ही लिखना है, हम अगर capital C लिख देंगे, C out कीजिएगे, तो हमारे पास error आ जाएगा, तो जो भी चीज जैसे भी दिखाई जा रही है, जो चीज lower case में है, जो चीज upper case में है, हमें case change नहीं करना, तो इस चीज़ पर हम पहले दियान देते हुए चल सकते हैं, C++ हो गया, Java हो गया, Python हो गया, यह सारी case sensitive language हैं, और अगर SQL जैसी language की बात करें, या फिर HTML की बात करें, तो यह हमारी non case sensitive languages होती हैं, अब ठीक है हमने समझ लिया, इस line से हम output print करवा सकते हैं, पर output को print करवाने के लि जब हम Visual Studio Code को first time start करते हैं, तो हमारे पास इस तरीके की starting window आती है, यह जो नीचे वाला recent section है, यह आपके पास नहीं आ रहा होगा, यह generally तब आता है, जब हम काफी time से VS Code को use कर रहे हैं, तो इस welcome window को यहां से जाकर हमें cross कर देना है, and we basically have to go to this explorer icon, let me enlarge my screen, तो यह जो left में हमारे हम basically इस open folder पर click करके अपने folder को open करेंगे, folder को open करने के लिए, I am going to open this folder called YouTube series, इस open folder पर click करने के बाद, हम कोई भी folder है, उसे select कर सकते हैं, हम चाहें तो कोई नया folder भी अपने लिए create कर सकते हैं, let's suppose मैंने अपने लिए एक नया folder create किया, called YouTube series, अब जैसे ये folder मेरे लिए create हो गया, चाहे आप Mac पर हैं, चाहे आप Windows पर हैं, you can create a new folder and you can open this folder, तो फिर क्या होगा, VS Code के अंदर ये folder open हो जाएगा, कुछ options हमारे पास आएगे, हम इसको yes कर सकते हैं, no भी कर सकते हैं, कोई फरक नहीं पड़ेगा, and ये welcome window को भी हम यहां से cross कर और इस folder के अंदर, अब हम चाहें तो कोई नई file भी create कर सकते हैं, by clicking on this icon हम नई folder भी create कर सकते हैं, अब क्योंकि हमें directly code लिखना शुरू करना है, तो हम एक file create करने वाले हैं, इस new file पर click करके, I am going to create a file called code.cpp, इस code.cpp में यह जो code है, यह मेरी file का नाम है, जो file का नाम कुछ भी C++ की जितनी भी files होती हैं, उन सारी files की extension होती है.cpp. जैसे text files जो होती हैं, उनकी extension.txt होती है, java files की extension.java होती है, python files की extension.py होती है, HTML की extension.html होती है, तो इस तरीके से file की extension देखके हम पता कर सकते हैं, कि उसमें किस तरीके का code लिखा हुआ है, तो जैसे ही मैंने इसे किया, हम enter कर सकते हैं, and I have created this file called code.cpp, तो अब हम चाहें तो इस panel को close कर सकते हैं, और basically जितना भी हमारा C++ का code है, वो अब हम इस file के अंदर लिखने वाले हैं, अब इस file के अंदर, I am going to write a line, C out, जिसको हमने discuss किया था, और इसके अंदर let's suppose मुझे print करवाना है अपना college, तो मैंने क्या किया, मैंने C out लिखा, मैंने इस तरीके से दो less than के symbol लिखे, और मैंने double quotes के अंदर अपना college लिखा, और जैसे हम कोई भी statement लिखते हैं code के अंदर, हमें हमेशा इसे end करना ह but semicolon in C++ is very similar to full stop in English, English के अंदर जो period होता है, जो sentence के end पर लगता है, उसका C++ equivalent होता है हमारे पास semicolon, या Hindi में जो पूर्ण विराम लगता है, तो उसकी जगह हमारे C++ का जो पूर्ण विराम होता है, उसको हम अपना terminator कहते हैं, अब ये तो हो गई मेरी output statement, लेकिन अभी ये जो statement है, और in fact आपके VS Code में red lines आ रही होंगी जो हमारा Visual Studio Code का setup है वो हमें पहले बता रहा है कि हमारे Code के अंदर कुछ error है in fact इस पर अगर हम hover करेंगे तो हम देख भी पाएंगे this declaration has no storage class or type specifier यह कुछ error आ रहा है पर यह Code अभी इसलिए work नहीं करेगा क्योंकि हमें कुछ-कुछ additional चीजें हैं जो हर एक C++ Code के अंदर लिखनी पड़ती हैं पर मुझे और भी statements लिखनी पड़ेंगी जिसमें से सबसे पहली चीज जो हम अपने C++ के code के अंदर add करते हैं, that is our main function, अब ये main function क्या होता है, जैसे flow chart के अंदर जो भी हमने solution लिखे थे, तो solutions को लिखने के लिए हमने हमेशा start के साथ शुरुवात की थी, तो code के अंदर जो main function होता है, that is like the start in flow chart, सारा का सारा जो code execute हो वैसे functions के बारे में बाद में हमारा dedicated chapter आएगा, तो अभी जादा tension लेने की ज़रूरत नहीं है कि function क्या होता है, उसको हम बाद में पढ़ेंगे, अभी के लिए बस यह याद रखना है कि एक main function नाम की चीज़ होती है, जो हमें हमेशा लिखनी होती है, और main function को कैसे लिखते है इस तरीके से हमारा main function code के अंदर लिखा जाता है, let us write the main function, मैंने लिख दिया int main, and इस तरीके से यह जो cout वाली line है, इसको cut करके हम यहाँ पर paste कर देंगे, इसे और थोड़ा सा zoom in कर देते हैं, तो यह मेरा पूरा का पूरा main function हो गया, तो main function को लिखने के बीचे हमारा जो objective हो और इन lines को हम लिखते हैं, अपने code के, अपने program के, अपनी file के top पर, सबसे पहली line होती है, hash include iostream, अब यह hash include iostream क्या होता है, बहुत ही technical भाषा में मैं आपको बताऊं, तो hash include iostream को हम अपना pre-processor directive कहते हैं, पर pre-processor directive के विवाद मैं उतना detail में नहीं जाओंगी, basically यह एक statement है, जो हम compilation से पहले ही अपने compiler को कुछ बात बता रहे हैं, और ये बात हम ये बता रहे हैं कि एक IO stream नाम की file है जिसके अंदर ये cout का logic लिखा हुआ है, अभी C++ को नहीं पता cout का logic का है, cout कैसे काम करेगा, cout का काम print करवाना है या input लेना है या क्या है, वो compiler को नहीं पता, compiler को कब पता चलेगा, जब हम इस IO stream को include करेंगे अपनी file के तो अब इसको याद करने की भी ज़रूरत नहीं है, आपको धीरे धीरे खुदी आदत हो जाएगी, second line जो हम लिखते है, it is called using namespace std, अब namespace का क्या मतलब होता है, basically जब भी हम code लिख रहे होते हैं, ऐसा तो है नहीं कि cout बहुत ही unique चीज है, हो सकता है हमारे पास एक file हो जिसके अंदर एक cout लिखा हुआ है, या फिर जैसे Cout होता है, वैसे आगे जाके हम पढ़ेंगे, हमारे पास एक Cin भी होता है, तो let's suppose Cin भी अलग-अलग files के अंदर लिखा हुआ है, अब compiler को कैसे पता कि उसको ये वाला Cout यूज़ करना है, ये वाला यूज़ करना है, ये वाला यूज़ करना है, तो basically हम उसे अभी के लिए imagine करना है कि वो सिर्फ एक file है जिसमें कई सारी चीजों का logic लिखा हु� जिस name space को हम use करना चाते हैं, उसका नाम std है, तो हमने simply बताया है कि हम use करना चाते हैं पूरे code के अंदर एक name space जिसका नाम है std, वैसे अगर हम चाहें तो ये line अपने code से हटाना चाहें तो बिलकुल हटा सकते हैं, बस फिर हर बार जब भी हम cout लिखेंगे या कुछ और लि STD basically C++ का standard namespace होता है जिसको हमने उपर ही include कर लिया है ये दोनों लाइनों का मतलब अगर शुरुआत में complicated लगे तो बहुत ही natural सी चीज़ है बढ़ दिरे दिरे बार बार हम इनका syntax लिखेंगे तो हमें आदित हो जाएगी तो ये generally इतना हमारा code होता है जिसको हम हर बार हर एक C++ फाइल के अंदर लिख रहे होंगे इसके साथ में एक और additional चीज़ होती है वो additional चीज़ होती है कि जो हमने पूरा का पूरा अपना काम लिख लिया काम मतलब कुछ भी प्रिंट करवाने का काम उसके बाद हम हमेशा एक return 0 लिखते हैं, return 0 के बिना हमारा code बिलकुल run कर जाएगा, लेकिन क्योंकि इस function का काम है एक integer value को return करना, तो last में हम एक integer value यानि 0 को return कर रहे हैं, यह जो statement मैंने बोली, इसका मतलब अगर हमें completely सबझ नहीं आ रहा, पर यह return 0 statement लिखना एक अच्छे programmer की निशानी होती है, तो हमने complete सारी चीज़ों को लिख लिया है, तो यहां से सबसे पहली चीज जो हमें पता चली होगी कि अगर हमें सिर्फ print करवाने का भी काम करना पड़ता है code के अंदर तो भी हमें काफी सारी extra line लिखनी पड़ती है ताकि compiler हमारा काम समझ सके हम जो करवाना चाते हैं उसे समझ सके और उसे execute कर सके तो यह तो हमने अपना यहाँ पर कई सारे different different options होंगे, debug console, output हो गया, हमें इस terminal पर जाना है, terminal पर हमारे पास हमारे folder का नाम भी आ रहा होगा, हमारे पास हमारी पूरी machine का नाम भी आ रहा होगा, तो जब आपके folder का नाम सही दिखा रहा है, मतलब terminal में सारी चीज़ें ठीक चल रही हैं, अब सबसे पहले जब भी हम किसी भी file को run करना जाते हैं, जब भी हम किसी भी code को run करना जाते हैं, वो दो stages के अंदर run करता है, कैसे run करता है, सबसे पहले तो हमें उस code को compile करना पड़ता है, तो सबसे पहली stage होती है, जिसमें compiler, उस code को compile करता है, compile करने का मतलब होता है, कि code के अंदर basic चीज़ें देखना, आपने सारी चीज़ें सही तो लिखी हैं न, कोई गलती तो नहीं है, जो C++ के rules होते हैं, उन सारे rules को हम follow कर रहे हैं न, तो compile करने के लिए, हमें यहाँ पर statement लिखनी होती है, terminal के अंदर, G++, जिससे हम अपने C++ compiler को invoke कर रहे हैं, हमारी file का नाम है code.cpp, तो हम इसे enter कर देंगे, अगर कोई भी error नहीं आया, successfully enter हो गया, तो मतलब हमारा code successfully compile कर गया, जैसे ही हमारा जो C++ का code होता है, code.cpp file है, जैसे ही compiler ने उसे compile कर दिया, तो compiler उसके लिए बना देता है एक नई executable file, इसका logic हमने lecture 1 में भी discuss किया था, कि computer को C++ समझ में नहीं आती, computer क और binary कहने का मतलब है कि इस पूरे code को फिर मुझे एक binary file के अंदर, executable file के अंदर convert करना पड़ेगा, और वो convert करने का काम होता है compiler का, तो अब आपके system में उसी same folder के अंदर, एक executable file बन गई होगी, इस file को हम देख भी सकते हैं, जैसे यहाँ पर मैं explorer पर अगर click करूँ, तो मेर और.out फाइल Mac users के लिए बनती है, तो depending upon the system हमारे पास अलग extension की फाइल बन गई होगी, पर eventually चाहे exe हो, चाहे out हो, यह एक executable फाइल है, जिसको run किया जाता है, तो अगर अब मुझे इस फाइल को run करना है, हम run किसको करते हैं, हम run अपनी executable फाइल को करते हैं, तो इस फाइल क जैसे हमने enter किया हमारे पास यह same चीज print होकर आ गई अपना college, तो यहाँ पर हमने अपना college लिखा था, as it is हमारे पास यहाँ पर अपना college print होकर आ गया, वैसे तो हमारा code दो stages में run करता है, first stage is compilation, second stage is execution या running का stage, लेकिन इन दोनों को हम combine भी कर सकते हैं, combine करने का मतलब है कि हम simply और second command है dot slash a dot out, तो इसको मैंने enter किया, तो इस बार एक ही line में मेरा code पहले compile हुआ, उसके बाद मेरा code run हो गया, और उसका जो output है मेरे पास आकर print हो गया, अगर terminal को कभी भी हम clear करना चाहते हैं, तो उसके लिए हम simply clear command लिख सकते हैं, और हमारे terminal से सारी commands गायब हो जाएंगी, अगर हम पुरानी command को वापस लाना चाहते हैं, तो हमारी keyboard के उपर जो arrow keys होती हैं, उसमें से उपर वाली, upwards वाली arrow key अगर हम press करेंगे, तो पुरानी command आजाएगी, एक बार और press करेंगे, उससे पुरानी आजाएगी, एक बार और press करेंगे, उससे पु डाउनवर्ड्स प्रेस करेंगे तो नई वाली हमारे पास कमांड आ जाएंगी, तो दुबारा कोड को रन करना है, तो दुबारा हम इसे प्रेस कर सकते हैं, अब कुछ और प्रिंट करवाने की कोशिश करते हैं, लेट सपोस इस बार अपना कॉलेज की जगे मुझे प्रिंट change करना है code को और उसे execute करना है तो अगर उसे हम run कर पाए हैं मतलब अभी तक चीज़े हमारे लिए completely clear है अब जब भी हम ये print करवा रहे हैं output screen बर ये percentage जैसा अजीब सा sign हमारे पास आ रहा है ये sign ये symbol basically हमारे पास इसलिए आ रहा है क्योंकि हमने last में कोई end line character नहीं दिया end line character कहने का मतलब है कि जब हम google docs use करते हैं या जब हम Microsoft word use करते हैं तो code में next line पे आने के लिए हमें enter press करना पड़ता है या जो Mac users हैं उन्हें return press करना पड़ता है तो उससे हम क्या हो जाते हैं next line पे आ जाते हैं वैसे ही जब हम कुछ भी print करवाते हैं और print करवाने के बाद अगर हम next line पर आना चाहते हैं तो next line पर आने का तरीका होता है कि हम लिखते हैं cout और let's suppose हमने यहाँ पे कुछ print करवा दिया उसके बाद हम एक और set of less than less than character लिखेंगे और हम लिखेंगे endl और फिर semicolon तो इसका मतलब है ये जो output print हो जाए उसके बाद मुझे एक end of line चाहिए, मतलब मैं चाहता हूँ या मैं चाहती हूँ कि मेरा जो आगे का सारा output है वो सब next line में चला जाए, तो इसको भी एक बार करके देखते हैं, और जैसे ही मैंने यहाँ पर end of line किया, वैसे ही क्या होगा, कि हम यहाँ पर लिख दें backslash n हम double quotes के अंदर यह backslash symbol होता है पीछे से आगे की तरफ आता है और यह n हो गया तो backslash n कहने का मतलब है कि हम एक next line character चाहिए इसका भी output बिल्कुल same होगा कोई difference नहीं है अब वैसे बहुत जादा अगर deep dive करें तो generally जो backslash n होता है वो थोड़ा सा हलका सा faster होता है as compared to n line तो generally जब हम data structures, algorithms पर move कर जाएंगे, और जब या competitive programming या कोई और चीज़ें कर रहे हैं, तो you can prefer backslash n as compared to end line, पर अभी के लिए, सीखते टाइम कोई फरक नहीं पड़ता, और majority times मैं end line नहीं लिखने वाली हूँ, क्योंकि उसको मेरे लिए type करना जाधा easy है, तो ये जो backslash n है, हम चाहें तो इसे अपने, इस output के साथ भी लिख सकते हैं, वो completely same होने वाला है, अगर हम backslash n के बाद, कुछ print करवाते हैं, let's suppose मैंने लिखा from अपना college, ये मेरा hello world हो गया, ये मेरा backslash n हो गया, फिर मैंने लिखा from अपना college, तो backslash n के बाद, जो भी हम लिखेंगे, वो next line पर print होगा, let's check it, तो hello world print हो गया, तो backslash n आ गया, और क्योंकि last में हमने backslash n नहीं दिया, तो इसलिए percentage sign दुबारा हमारे पास आ गया, तो यह trailing character को अगर हम हटाना जाते हैं, तो उसके लिए हमेशा last में हमें या तो end line देना पड़ेगा, या फिर हमें backslash end देना पड़ेगा, हम चाहें तो कुछ भी दे सकते हैं, अल्सो अगर हमें multiple चीजें एक ही line पर print करवानी हैं, see out मैंने किया अपना college, उसके बाद मैंने एक space दिया, that is hello world, and उसके बाद end of line. तो ये सारी की सारी चीज़ें same line पर print होगी, क्योंकि बीच में ना end of line आया, ना बीच में backslash n आया, and इसे clear करेंगे, पहले अपना college आएगा, space, फिर hello world आएगा, and then next line, अब यहाँ पर एक बार pause करना है, and what do you have to do, आपको अपना जो first name है, whatever your first name, मैं अपना नाम लेकर example देकर और आपको see out statement एक ही लिखनी है, एक single statement से, आपको इस तरीके से दो line में output लेकर आना है, एक बार pause करना है, और खुद से इस तरीके से अपने first and last name को print करवाने की कोशिश करनी है, also जब हम अपने first program की बात कर रहे हैं, तो एक और चीज भी discuss कर लेते हैं, basically अगर हम इस line को हटा दें, तो यह जो बचा हुआ पूरा का पूरा code है, इस code को हम एक special नाम देते हैं, हम इस code को कहते हैं boilerplate code, boilerplate code कहने का मतलब है कि यह starting code है, जो हमेशा लिखा ही लिखा जाएगा, चाहे आप कोई भी सवाल क्यों ना solve कर रहे हो, तो generally हर एक DSA question के अंदर हम comments code का part नहीं होते, comments को compiler ignore कर देता है, comments में हमें कोई rule follow नहीं करने पड़ते, basically comments को compiler के लिए नहीं, humans के लिए लिखा जाता है, जैसे एक बड़ी organization है, बड़ी company में अगर बहुत सारे developers काम कर रहे हैं, और हर कोई अपना code लिख रहा है, अब कोई नया developer अगर team के अंदर आता है, पॉइंट ऑफ एग्जीक्यूशन तो यहां से किसी नए डेवलपर को पढ़कर समझ आ जाएगा कि हमारे जो एग्जीक्यूशन है वह यहां है कि यह कोमेंट है तो comments को generally VS Code green color से दिखाता है, और generally most of the editors green color से अपने comments को दिखा रहे होते हैं, वैसे comment करने का एक और shortcut भी होता है, हम एक साथ अगर control slash को press करें, तो line automatically comment हो जाएगी, या Mac users के लिए command slash को अगर press करें, तो line automatically comment हो जाएगी, और ऐसे ही दुबारा press करें, अगर मुझे पूरे के पूरी file को एक साथ comment करना है, और control slash या command slash दबा देना है, तो इस तरीके से हमारे comments work करते हैं, अब ये तो हमने बात कर ली कि boilerplate code क्या होता है, हम output कैसे करा सकते हैं, हम comment कैसे करा सकते हैं, next important चीज जिस पर हम बढ़ने वाले हैं, तो वो होते हैं हमारे variables, तो variables काफी important crux होते हैं C++ programming का, अब variable कहने का क्या मतलब है, variables वैसे हमने already use की होंगे math के अंदर, math के अंदर अगर हमे y is equal to 5, तो यह जो a होता है, यह जो x होता है, यह जो y होता है, इनही को math के अंदर variables कहते हैं, और इनही को C++ के अंदर भी हम variables कहते हैं, जैसे अगर मुझे age है मेरे पास, मुझे age 25 store करनी है, तो मैं एक variable बना सकती हूँ age, और उसके अंदर equal to 25 करके अपनी value 25 को store करा सकती हूँ तो basically मैंने एक age variable बना दिया, जिसके अंदर value store हो जाएगी 25, तो variable क्या होता है, variable एक container होता है, जिसके अंदर हम कोई भी data store करा सकते हैं, जरूरी नहीं यह data कोई number हो, यह data कोई character भी हो सकता है, let's suppose मुझे अपना grade store कराना है, तो grade is equal to A, जब भी characters लिखते हैं C++ के अंदर, तो single quote के अंदर लिखते हैं, single character, जब भी बहुत सारे characters लिखने हैं, A, B, C, D, तो यह general convention है, जो सिर्फ C++ नहीं, हम Java के अंदर, या दूसरी languages के अंदर भी follow करते हैं, तो इस तरीके से, हम अपनी variables को create कर सकते हैं, अच्छा, जब भी हमने कभी code के अंदर लिखा, जैसे let's suppose this is my code, इस code के अंदर मैंने लिखा, age is equal to 25, यह मैंने एक variable को create किया, पर let's suppose मैंने variable बना दिया, age is equal to 25, वैसे ही, क्या होगा computer की memory के अंदर मतलब ये जो 25 है ये कहा जाके store होगा basically computer की जो memory है यानि computer की जो ram है उसे हम एक box की तरह imagine कर सकते हैं इस box के अंदर different different slots होते हैं different different spaces होती हैं या फिर इसे imagine कर सकते हैं बड़ी सी कोई जगए है जिसके अंदर किसी ने plots बहुत सारे रही हैं तो इसके अंदर multiple containers होते हैं let's suppose एक ये container हो गया एक ये container हो गया एक ये container हो गया, ये जगें हैं सारी की, सारी memory के अंदर, और ये physically exist करती है computer की memory, तो जैसे ही मैंने लिखा age is equal to 25, एक कोई जगे होगी, जो age नाम के variable को, age क्या है, variable का नाम है, allocate हो जाएगी, और उस जगे पर 25 वाली value जाकर store हो जाएगी, जैसे ही मैंने लिखा grade is equal to a, तो एक हमारा जो grade A है उसकी value जाकर store हो जाएगी, तो जब भी हम variables को define करते हैं programming के अंदर, memory के अंदर वो इस तरीके से जाकर actually space जो है उसको occupy करते हैं, तो variable का English के अंदर मतलब होता है, जो चीज वेरी करती रहती है, जो चीज change कर सकती है, मतलब हो सकता है कल को ये age बढ़के 26 हो जाए, या 28 हो जाए, लेकिन हम इस age variable का नाम same रख सकते हैं, हम उस container का नाम same रख सकते हैं, उसके अंदर की value कल को हो सकता है, change हो जाए, अब जो हमा तो इस तरीके से अलग-अलग हम variables बना सकते हैं, और उनके अंदर कुछ-कुछ values को हम store करवा सकते हैं, अब जब भी हम variable का नाम define करते हैं, वो नाम या तो underscore के साथ start होना चाहिए, या वो a से लेके z तक, किसी ना किसी English character के साथ start होना चाहिए, ऐसा नहीं है कि हम digit के साथ start कर देंगे, और फिर अपने variable को 9 age, हमें हमेशा या तो underscore के साथ start करना है, variable names को C++ के अंदर हम एक special term देते हैं, which is called identifier, तो identifier का मतलब होता है, जो नाम हमने दिया है, as a programmer, तो यह जो age नाम है, इस variable को यह मैंने दिया है, तो यह age identifier है, पर जैसे इंट हो गया, इंट तो मैंने नहीं दिया as a programmer, तो यह int identifier नहीं है, तो हमारे variables के नाम को हम identifiers कहते हैं, अब जब भी हम variable define करते हैं, हमेशा, 100% of the times, हमेशा हमें variable के साथ उसका data type, बताना होता है, data type इसलिए बताना होता है, ताकि compiler जान सके कि आप अपने variable में किस type का data store कराना चाहते हैं, जैसे for example, मुझे अगर value store करानी है 25, और मैंने उसके लिए एज नाम का variable बना दिया, तो मुझे बताना पड़ेगा कि ये value किस type की है, अब मुझे already पता है 25 is what, 25 is an integer value int, integer वो values होती हैं value नहीं होती, जो complete numbers वो negative भी हो सकता है, positive भी हो सकता है, zero भी हो सकता है, तो मैं हमेशा लिखूंगी int age is equal to 25, जैसे यहाँ पर मैंने जो age variable बनाया था, इसके अंदर अभी error आ रहा है, पर मैंने जैसे इंट लिख दिया, and इसे save कर दिया, अब कोई error नहीं है, अब यह complete statement है, और यह बिल्कुल execute करे variables को print करवाने के लिए, अगर मैंने double quotes में लिखा, इस तरीके से age, तो एक बार देखते हैं क्या print होगा, तो हमारे लिए age ही print हो जाएगा, मतलब double quotes के अंदर जो चीज लिखी जाती है, वो वैसे के वैसे print होती है, पर मुझे तो age की value print करवानी है, तो उसके लिए मुझे इन double quotes को हटाना पड़ेगा, तो C++ का compiler समझ जाएगा, तो मैं integer age की बात कर रही हूँ, और integer age के अंदर value 25 है, let us save it again, and run the code, तो इस बार हमारे पास output में आया है value 25 के equal, तो इस तरीके से variables को हम print भी करवा सकते हैं, उनको हम calculation के लिए भी use कर सकते हैं, तो ये तो हो गया हमारा integer data type, अब integer data type internally memory के अंदर 4 bytes की जगए लेता है, ये जो मैंने 4 bytes बोला, इसका क्या मतलब है, अभी जो मैं बताने वाली ह 10 बार बात कर लिये होगी कि computers 0-1 number system पर चलते हैं computer को सिर्फ electrical signal 0-1 समझ में आता है तो computer के जो दिमाग की math होती है computer के जो अंदर की math होती है वो हमारी वाली normal math नहीं होती computer की जो math है वो binary number system को follow करती है बाद में binary number systems पे हम पूरा chapter पढ़ेंगे computers binary number system को follow करते हैं और binary number system में एक जो single digit होता है, वो या तो zero हो सकता है, या फिर वो one हो सकता है, और इस single digit को हम कहते हैं अपनी bit, single digit को bit कहा जाता है, यह याद रखना है, अगर हम 8 bits ले ले, तो उसे हम अपनी एक byte कह देते हैं, 8 bits मतलब, यहाँ पर एक bit आएगी, यहाँ दूसरी आएगी, तीसरी, चौथ binary number आता है जिसमें सिर्फ 0 और 1 है, इसको हम एक byte कह देते हैं, तो 4 bytes कहने का मतलब है कि हमारे पास इस तरीके के 4 sets हैं, मतलब हमारे पास 8 into 4, 32 bits की जगए है एक integer number को store कराने के लिए, अब अभी अगर ये math आपको उतनी जादा clear ना हो तो गबराने की बात नहीं है, बाद में binary number system हम पढ़ेंगे तो और detail में इन सारे topics को discuss करेंगे, और अभी के लिए हम ये समझ सकते हैं कि integer के अंदर हमारे पास 4 bytes की जगह होती है, तो जब भी integer declare होता है, मतलब जब भी हमने code के अंदर लिख दिया, कि मेरे पास एक integer variable है age, जिसके अंदर value stored है 25, तो memory के अंदर क्या होता है, memory के अंदर इस तरीके की bits की, 32 spaces reserve हो जाती हैं, चाहे उनको सबको आप use मत करो, पर वो reserve हो जाती हैं, और फिर उसमें जाके 25 को हम store करवाते हैं, in the form of zeros and ones, 25 ऐसे कहा, ऐसे 25 store नहीं होता, सिर्फ 0 और 1 की form में 25 को convert करके store किया जाता है, अगर exactly हमें 25 का binary form जानना हो, तो वो होता है 11001, यह 25 का binary form होता है, वो binary number system वाले chapter में पढ़ेंगे, तो memory के अंदर 25 store नहीं होता, memory के अंदर 11001 store होता है, तो इस तरीके से हमारी computer की जो memory है, वो काम करती है, तो हर एक data type का अपना मतलब होता है, और वो मतलब यह होता है कि कितनी जगे memory के अंदर reserve होनी चाहिए इस particular variable के लिए, in fact इस चीज को हम check भी कर सकते हैं, check करने के लिए, let us clear this, तो check करवाने के लिए हम लिखते है size of and फिर अपने parenthesis, तो size of एक function होता है, जो किसी भी value का size print करवाता है, bytes के अंदर, तो इस चीज को हम print करवा सकते हैं, functions क्या होते हैं, उसको बाद में देखेंगे, and इसे अब अगर मैं print करवा हूँ, तो मेरे पास value print होकर आएगी, 4, 4 का मतलब है, कि यह जो age नाम का variable है, क्योंकि इसका data type integer है, तो यह 4 bytes की जगे लेता है memory के अंदर, इसके अलावा और भी हमारे पास different different data types होते हैं, next जो हमारे पास data type होता है, वो होता है character, care data type, कार डेटा टाइप के अंदर हम single characters को store करवाते हैं, यह जो memory के अंदर जगे occupy करता है, that is equal to 1 byte, character को store करवाने के लिए, हम simply लिख सकते हैं, let's suppose मुझे character grade store करवाना है, तो grade और फिर single quotes, let's suppose my grade is equal to A, तो मैंने car grade is equal to A को store करवा दिया, हम चाहें तो इस grade को भी हम print करवा सकते हैं, ए आ जाएगा, ए हमारे पास print हो कर आ गया, हम चाहें तो यहाँ पर lower case में भी ए लिख सकते हैं, तो हमारे पास lower case वाला ए print हो कर आ जाएगा, अब numbers के लिए तो काफी straightforward होता है, कि जैसे 25 को हमने convert कर दिया 11001 के अंदर, तो हमें पता है कि number को number के अंदर, ठीक है, बाद में हम आज का वैल्यू निकाली जाती है और फिर उस आज का वैल्यू को मेमोरी के अंदर स्टोर कराए जाता है यह काम हमें नहीं करना पड़ता यह काम ऑटोमाटिकली हो रहा है अभी बस मैं आपको उसके पीछे की स्टोरी दिखाने की कोशिश कैरेक्टर के लिए एक नंबर डिसाइड होता है कि भाई यह जो ए है इसका नंबर है 65 यह फिक्स है इसका नंबर जो बी है इसका नंबर है 66 अ जो C है, उसका number है 67, उसी तरीके से अगर हम small a, b, c, d, इनके numbers consider करें, तो यह जो small a होता है, इसका number होता है 97, small b का number होता है 98, small c का number होता है 99, and so on, तो जब compiler इस A को memory के अंदर store करा रहा होगा, तो memory के अंदर वो A को store नहीं कराएगा, वो इस 65 को 0, 1 के अंदर convert करेगा, और फि जिसको बाद में हम detail में समझने वाले हैं कि ASCII values को हम कैसे use कर सकते हैं, हमारे dedicated chapter होगा strings के बारे में, जिसमें हम बहुत सारे operations करेंगे इन characters पर using these ASCII values, पर अभी के लिए एक छोटा सा glimpse हमें मिल गया, कि memory के अंदर हमारे जो characters होते हैं, वो किस तरीके से stored होते हैं, also memory के अंद अभी तक integer के अंदर हम किसी भी number जैसे 25 हो गया, जैसे 100 हो गया, उसको store करा सकते हैं, लेकिन अगर हमें ऐसा कोई variable बनाना हुआ, तो price जिसके अंदर value है 100.99, decimal value हो गयी, तो जैसे हमारे पास floating values आ जाती हैं, इनको हम floating values कहते हैं, decimal के साथ वाली values को, तो floating values के लिए हमारे पास पाई हमारे पास क्या होता है, पाई math के अंदर होता है 3.14, तो इसमें decimal value आ जाती है, तो इस तरीके से हम अपना floating variable बना सकते हैं, अब जब भी हम float variables को define करते हैं, उनकी value लिखने के बाद हमें हमेशा वहाँ पर f लिखना होता है, small f लिख सकते हैं, capital f लिख सकते हैं, basically जब तक हम ये नहीं लिखते, तब तक compiler assume करता है कि हम कोई double value लिखना चाहें, पर हम double नहीं लिखना चाहें, हमारा data type float है, तो हम यहाँ पर f लिख देते हैं, तो यह हमने floating value को define कर लिया, यहाँ पर pi, pi लिख सकते हैं, मैंने इसे capital इसलिए लिखा है, क्योंकि generally pi एक constant होता है, और generally programming, अच्छे जो software engineers होते हैं, वो अगर कोई भी constant variable define करते हैं, जिसकी value change नहीं हो सकती, क्योंकि pi की value हमेशा 3.14 ही रही तो वो जो variables होते हैं उनको capital से generally code के अंदर दिखाया जाता है, इसे clear कर लेते हैं and run करते हैं तो इस बार मेरे पास 3.14 print हो करा गया, तो यह हमारा float data type हो गया, float भी 4 bytes की जो space है वो occupy करता है memory के अंदर, next है bool, bool is going to be something interesting क्योंकि यह शायद यह programming क या ये false store करवाएगा, इसके अंदर दो ही values हो सकते हैं, true या false, और ये जो memory लेता है, वो होती है एक byte की memory, जैसे for example, मैंने एक boolean variable बनाया, and इसके लिए मैंने लिख दिया is safe, is it safe, is it safe के लिए या तो value true हो सकती है, तो इसके लिए हम small t से true लिख देंगे, या फिर value false हो सकती ह तो हमारे पास true या false print होकर नहीं आता, internally जो true value होती है, it translates to 1, and जो false value होती है, it translates to 0, मतलब जब हम false को, अब ये false है इस से, इसको जब हम print करवाएंगे, तो हमारे पास 0 print होगा, या फिर इसको अगर हम true करके print करवाएंगे, तो हमारे पास 1 print होगा, क्योंकि जब memory के अंदर true या false store होता है, तो true या false store नहीं होता, तो जब memory के अंदर true store करना होता है, तो computer one store करता है, जब memory के अंदर zero false store करना होता है, तो computer zero store करता है, तो that is why जब हम इन्हें print करवाते हैं, हमारे पास true false नहीं आता, हमारे पास zero और one वाली values print हो कराती हैं, तो यह हमारा Boolean data type हो गया, called double, double का size float के double होता है, by default, कोई भी number अगर हम लिखेंगे, जैसे मैंने लिख दिया 100.99, तो यह जो number है, यह by default एक double number होगा, तो हम लिख सकते हैं double price is equal to 100.99, तो इस तरीके से मैंने एक double variable को create कर दिया, तो majority code हम जो लिखते हैं, वो इन ही data types को use करके लिख रहे होते हैं, और यह जो हमारे सारे के सारे data types हो बाद में हम non primitive data types भी पढ़ेंगे, जिसके अंदर हम arrays पढ़ रहे होंगे, जिसके अंदर हम string को पढ़ रहे होंगे, and और भी data types पढ़ेंगे, पर ये हमारे primitive, यानि सबसे basic वाले data types होते हैं, तो इन ही 5 data types को हम बार बार अपने programs के अंदर use कर रहे होंगे, तो ये त सबसे पहला होता है type conversion और दूसरा होता है type casting, conversion कैसा process होता है, conversion एक implicit process होता है, implicit मतलब वो programmer को हमें नहीं करना पड़ता, वो compiler automatically कर देता है, automatically कहने का मतलब है, जब भी हम एक छोटे type की value को किसी large type की value के अंदर convert करना चाहते हैं, तो यह process automatic है, इसमें कोई data loss तो हो नहीं रहा, let's 3.14 store कराये था, और ये 3.1 कितनी memory के अंदर store हुआ था, float की memory होती है, वो होती है 4 bytes की, तो ये 4 bytes की memory के अंदर store हो गया था, अब इसे मुझे अगर double के अंदर convert करना है, तो double तो बड़ा data type है, अब 8 bytes की memory के अंदर 4 bytes का data तो बहुत असानी से जाके store हो जाएगा, आदी memory बच और क्या example हो सकता है इसका, जिसे मान लो मुझे किसी character की value को convert करना है to some integer value, तो वो process बहुत असान है क्योंकि character एक byte लेता है, integer चार byte लेता है, एक byte के data को चार byte की जगे में fit करना बहुत असान है, इसका example भी देखते हैं, let's create two variables, या in fact एक single variable create करते हैं, मैंने लिया अपना grade, औ और simply लिखेंगे integer value is equal to grade, जब हम इस तरीके से लिखते हैं, तो C++ के अंदर क्या होता है, right side की जो value होती है, वो left में आकर store हो जाती है, जैसे जब हमने grade define किया, तो यह right का a जो है, यह इस variable के अंदर जाकर store हो गया, तो अब हमारे पास integer value आ गई होगी, जब हम c out करवाएंगे वही value मेरे पास आकर print हो गई है, अगर यहाँ पर small a होता, तो small a की sky value 97 होती है, तो जब इस character को हम integer के अंदर convert करेंगे, तो I am going to get 97 in output, तो इससे हमें एक चीज और confirm हो रही है कि हाँ memory के अंदर ascii values ही जाके print हो रही है, सही बताये था, उसके साथ में हमें ये भी दिख रहा है कि implicit conversion, हमें कुछ करना नहीं पड़ा, हमें तो बस बताना है कि इसकी value भाई इसमें जाके store कर दो, compiler ने automatically store कर दी, अब जैसे type conversion implicit होता है, हमारे पास एक और term होती है called type casting, जो explicit होता है, explicit मतलब type casting programmer manually करता है, automatically compiler नहीं करता है, जब भी हम किसी एक type से दूसरे type के अंदर convert करना चाते हैं, तो उस चीज़ को हम as a programmer force भी कर सकते हैं, बले compiler allow कर रहा हो या ना कर रहा हो, और generally type casting जो use होती है, वो big data type से small data type के अंदर data को convert करने के लिए use होती है, जैसे for example हमने बनाया एक double variable called price, तो price के अंदर हमने store कर दिया 100.99, अब हम एक integer variable new price के अंदर, price की value store करना चाते हैं, तो अब हम चाहते हैं कि जो double है, यह integer में typecast हो जाए, तो basically बड़ी value को हम छोटी value में typecast करना चाते हैं, तो इसके लिए हम लिख सकते हैं यहाँ पर इस तरीके से int, तो यह हमारी एक double value है, जिसको हम int में typecast करने की कोशिश कर रहे हैं, और यह typecast करने के तो हमारे पास हमारे नई price की value आकर print हो जाएगी, which is 100. अब unlike math, math के अंदर तो क्या होता है?
Math के अंदर अगर किसी ने लिख दिया 100.99, तो इसको round off करके हम 101 लिख सकते हैं, लेकिन C++ में ऐसा नहीं होता. C++ में चाहे 100 के point के बाद कितने भी 9 लगे हूँ, वो सारे के सारे कट हो जाएगे, और सिर्फ decimal से पहले वाला जो number है, उसको integer के अंदर store किया जाता है, यह बहुत important चीज है. C++ के अंदर चाहे आप 100.01 ले, चाहे आप 100.9999 ले, दोनों को जब integer के अंदर typecast किया जाएगा, तो दोनों की ही value 100 निकल कर आ रही होगी, तो यह जो decimal के बाद वाली values होती है, completely ignore होती है, so this is an example of typecasting, typecasting हम generally काफी सारे different data के लिए कर सकते हैं, और typecasting को हम आगे देखेंगे कि कैसे हम use कर सकते हैं practically typecasting को, पर इस तरीके से conversion and typecasting हो सकती है, important चीज याद रखने वाली यह है कि conversion implicit होता है compiler करके देता है, type casting explicit होती है, मतलब explicit मतलब अलग से, जिसको हमें as a programmer करना पड़ता है, तो यह तो हमने type casting को पढ़ लिया, next हम पढ़ने वाले हैं कि कैसे C++ के अंदर हम input ले सकते हैं, शुरुआत में first lecture में हमने बात की थी, कि हमारे जो भी program हम लिखते हैं C के अंदर, उसके अंदर कुछ ना कुछ logic लिखा होता है, और इस logic का एक ही काम होता है, कि इसे कुछ input लेना है, उस पे कुछ operation perform करने है, और फिर कुछ output return करना है, तो अब हमने output return करना सीख लिया, हमने थोड़ा बात logic करना भी सीख लिया है, कि किस तरीके से हम typecast कर सकते हैं, किस तरीके से variables बना सकते हैं, अब हम बात करते हैं, हम input कैसे ले सकते हैं values को, values को input लेने के लिए, जैसे हमने cout लिखा था output के लिए, वैसे ही हम लिखते हैं cin for input, और हम फिर लिखते हैं, अपने greater than, greater than वाली दो symbol, और फिर जिस भी variable के अंदर हम वो data store कराना चाते हैं, हम उस variable का नाम लिख देते हैं, for example हमारे पास एक age variable है, पर अभी हमारे पास age की value नहीं है, तो हमने यहीं पर semicolon लगा दिया, और बस code को बता दिया कि age नाम का एक integer variable एक जिस्ट करता है, अभी इस age के अंदर कोई value नहीं ह वहाँ कर print हो सकती है, हो सकता है zero भी print हो जाए, हो सकता है random garbage value print हो जाए, तो यहाँ पर मेरे पास random कुछ भी value आगे print हो गई है, इसको हम garbage value कहते हैं, तो अब अगर age की value, मुझे user से चाहिए, user से value लेने का मतलब होता है, जैसे हम कोई website use करते हैं, हम Google Chrome पर जाकर चीज़ें search कर तो user कुछ भी value input कर सकता है, तो value input लेने के लिए, let's suppose मैंने पहले cout किया, enter the age, इस तरीके से मैंने cout कर दिया, and in fact यहाँ पर, यह next line नहीं देते, and यहाँ पर हम c in कर सकते हैं age, तो basically cout करके हम बता रहे हैं, यह चीज़ enter करो, और c in में हम उस जो भी data आया होगा, उसको age नाम के variable में store करवा रहे हैं, और फिर cout करवा देते हैं, your age is, और यहाँ पर हम अपनी age की value को print करवा सकते हैं, I hope यह इतना part हमें समझ में आया होगा, क्योंकि C outcome बहुत बार लिख चुके हैं, तो एक बार इस code को run करते हैं, मेरे पास पहले तो print होकर आया है, enter the age, अब जब तक मैं कुछ input नहीं enter करूँगी, code आगे नहीं बढ़ेगा, तो मुझे कुछ input enter करना पड़ेगा, let's suppose मैंने enter किया age is equal to 25, यहाँ पे type करके, जैसे इसको enter करेंगे, वैसे अब ये line execute हो जाएगी, your age is 25, तो इस तरीके से हम input, output तो हम लिख सकते हैं enter the price, तो यहाँ पर हमारे पास price enter हो जाएगा, और price कोई floating या कोई double value हो सकती है, और फिर हम क्या कर देंगे, हम लिख देंगे your, या you entered price equal to, and यहाँ पर हम price की value को print करवा देंगे, let's save it, clear it, and run, हमारा price let's suppose हमने 99.99 enter किया, तो you entered, price is equal to 99.99 इस तरीके से input भी लेना बहुत असान होता है सिर्फ scene लिखना पड़ता है output भी देना बहुत असान होता है सिर्फ see out लिखना पड़ता है ये जो हमारे operators होते हैं ये overloaded operators इनको हम कहते हैं पर overloading हमें अभी समझ में नहीं आएगी वो object orientation का concept है object orientation भी अभी हम dedicated chapter करेंगे जिसमें detail में बात करेंगे ये जो scene see out होते हैं कुछ students को confusion की होती है कि ये functions होते हैं पर see in, see out actually functions नहीं होते, यह global objects होती है, objects क्या होती है, उसको भी हम अपने object orientation वाले chapter में करेंगे, तो यह सारी चीजों के बारे में, अभी काफी सारी ऐसी चीज़ें हैं, जिनको आपको बस भरोसा करके, faith करके सीखना पड़ेगा कि हाँ ठीक है, अभी हम ABCD सीख रहे हैं, अभी हम A and the सीख रहे हैं, जो हमने की थी, उनका क्या logic था, तो अब यहां तक हमने input को खतम कर लिया है, तो अब next एक और बहुत ही important concept जिसको हम cover करेंगे, यह है हमारे operators, operators का काम होता है कुछ operation को perform करना, operators को हमने math के अंदर भी किया हुआ है, math के अंदर हम लिखते थे a plus b, तो इसमें यह plus क्या होता था, यह plus एक operator होता था, हम लिखते थ तो इस तरीके से math के अंदर हमने बहुत सारे operator सीखें, वैसे ही C++ के अंदर भी काफी सारे operators होते हैं, जिसमें से first type of operator होते है arithmetic operators, arithmetic operators का काम होता है mathematical, calculations को perform करना, arithmetic operators में एक plus हो जाता है, एक minus हो जाता है, एक multiply होता है जिसको हम ये star वाले symbol से दिखाते हैं, star symbol को हम asterisk कहते हैं, औ ये चारों तो हमने math में पड़े हुए हैं, इनको use करना बहुत असान है, in fact जल्दी से एक demonstration भी ले लेते हैं, let's suppose हमारे पास दो values हैं, integer a is equal to 5 and integer b is equal to 10, in fact इन values को हम यहीं पर लिख सकते हैं, b is equal to 10, एक single line में comma से separate करके हम multiple variables define कर सकते हैं, same type के, तो अब मुझे c out करना है, सबस int sum is equal to a plus b, मैंने क्या किया, a plus b, दो variables दिये, और उनका sum calculate किया, और अब मैं इस sum को print करवा सकती हूँ, let's run this code, तो मेरे पास 15 आकर print हो गया, अब यहाँ पर sum create करने की बजाए, मैं directly यहाँ पर a plus b भी लिख सकती थी, parenthesis के साथ, तो directly a plus b की value मेरे पास print हो करा जाती, तो यहाँ let's clear it, let's run, the sum is equal to 15, तो ये plus हो गया, ऐसे ही हम minus कर सकते हैं, minus को क्या कहेंगे, minus को कहेंगे difference is equal to, तो a minus b, या a को 10 कर लेते हैं, b को 5 कर लेते हैं, तो फिर value positive आ जाएगी, 10 minus 5 क्या होगा, 5 के equal होगा, तो sum इस बार 15 हो गया, difference हमारे पास 5 हो गया, ऐसे ही हम दोनों को multiply भी कर सकते हैं, multiply करने के लिए, multiplication को product कहते हैं, a, into b लिख सकते हैं, चाहें तो space भी दे सकते हैं, चाहें तो बिना space के भी लिख सकते हैं, यह asterisk star symbol होता है, जो हमें दोनों का multiplication देता है, product हो गया, 5 into 10, 10 into 5, 50 के equal, ऐसे हम divide भी कर सकते हैं, divide जब हम करेंगे, तो हमारे पास quotient आएगा, या division कह लेते हैं, इसको ज़्यादा complicate न 2 print हो कराएगा, इसको clear कर लेते हैं, run करते हैं, तो division में हमारे पास 2 print हो करा गया, अब ये तो 4 काफी basic mathematical operation है, इसके अलावा एक और हमने सीखा था last class के अंदर, which is the remainder operator, remainder operator को हम modulo कहते हैं, तो अगर हम a modulo b लिखते हैं, तो यह हमें a को जब हम b से divide करेंगे, तो हमारे पास क्या remainder बचेगा, उस remainder की value लाकर देता है, तो जब हम 10 को 5 से divide करेंगे, तो remainder 0 बचता है, तो एक बार देखते हैं, modulo का क्या answer हमारे पास आएगा, this is supposed to be modulo, modulo के ल और इसका answer आना चाहिए 0 के equal, clear this and run, तो modulo आ गया है 0 के equal, अगर यहाँ एक ही जगे 11 होता, 10 नहीं होता, तो 11 divided by 5 का जो remainder होता है, वो 1 के equal होता है, तो इस बार हमारे पास value आ जाएगी, 1 के equal, तो इस तरीके से हमारे different different जो arithmetic operators होते हैं, तो हमारे पास यह major 5 arithmetic operations होते हैं, अब इसमें से जो हमारा division operator होता है, जैसे let's suppose अगर हम math के अंदर 5 को 2 से divide करते हैं, integer 5 को integer 2 से divide करते हैं, तो answer हमारे पास आता है 2.5, या फिर अगर हम 10 को 3 से divide करते हैं, तो answer हमारे पास आता है 3.33 इस तरीके से, लेकिन C plus 10 के अंदर ऐसा नहीं होता, C plus 10 के अंदर अगर हम 5 को 2 से divide करेंगे, तो हमारे पास answer आए decimal के बाद वाले हिस्से को completely cut कर दिया जाता है, उसको देखते हैं एक बार होते हुए, let's suppose हम c out कराना चाहते हैं, we want to c out 5 divided by 2, तो यहाँ पर जब हम hover करेंगे, मुझे पता है 5 क्या है, integer value है, 2 क्या है, यह भी integer value है, तो जब इनको divide किया जाएगा, तो जब integer को integer के साथ divide करते है एक integer value ही आता है, तो इसी लिए integer के अंदर decimal नहीं होंगे, तो इन decimal को पूरा ignore कर देंगे, round off नहीं करेंगे math की तरह, तो इसे जब हम run करेंगे, तो we are going to get a value of 2, not 2.5, लेकिन let's suppose अगर हमें किसी case में 2.5 चीज़ होता, 2.5 लाने के लिए, हमें फिर integer को integer से divide करने की जगे, या तो हमें float को integer से divide करना पड़ेगा, या हमें double को integer से divide करना पड़ेगा, या फिर इसका opposite करना पड़ेगा, या तो integer को float से divide कर दो, या integer को double से divide कर दो, तो जब भी division होता है, जब भी add होता है, subtract होता है, multiply होता है, तो दोनों अगर different different data types हैं, जैसे यहां different data types हैं, तो उनमें से जो बड़े वाला data type होता है, result उसी के अंदर आएगा, तो अगर integer को float से divide क point जादा होते हैं, precision जादा होती है, तो इसलिए इसको हम बड़ा data type लेंगे, तो इनका result भी float होगा, इस तरीके का division होगा, तो result डबल होगा, इस तरीके का division होगा, result float होगा, इस तरीके का division होगा, result डबल होगा, और ये सिर्फ division के अंदर नहीं, multiplication या दूसरे operations के अंदर भी ऐ 2, या तो हम इस तरीके से लिखें, फिर a और b को divide करें, तो एक तो ये तरीका है, answer के अंदर 2.5 लाने का, a divided by b, तो answer के अंदर इस बार 2.5 आ गया, एक और तरीका है कि अगर कभी हमारे पास direct values होती हैं, 5 divided by 2, तो किसी भी एक value को हम type cast कर सकते हैं, यहां हमें समझ में आएगा तो मैंने 2 को type cast कर दिया to double, तो अब जो मेरा answer होगा, मुझे अब ये A और B यूज़ करने की ज़रूरत नहीं है, अब जो answer होगा, वो फिर से 2.5 आएगा, क्योंकि इस बार integer को double के साथ divide किया जा रहा है, तो इस तरीके से type casting हमें help करती है, जब हमारे पास integer value होती है, अच्छा जब हम type casting करते हैं, integer answer is equal to, इसी value को ले लेते हैं, और answer को print करवाते हैं, let's save it and run it, यहाँ पे answer 2 आएगा, यहाँ पे answer 2.5 नहीं आएगा, और उसका reason क्या है, उसका reason यह है कि ठीक है, right side में तो आपने अपना double value का answer निकाल लिया था, 2.5, लेकिन जब left में उस 2.5 को इस variable के अंदर store किया जाएगा, तो यह variable तो integer type का है, तो जब 2.5 को आप एक छोटे container integer के अंदर store करोगे, तो definitely decimal point हट जाएंगे, तो इसलिए answer के अंदर decimal point print होकर नहीं आए, तो जब भी चीज़े हो रही होती हैं, प्रोग्राम्स के अंदर, उनके पीछे हमेशा एक logic होता है, और वो logic समझना बहुत important होता है, सिर्फ ऐसे ही ले नहीं लेना, हम अगले lecture के अंदर cover करें, या उससे अगले lecture के अंदर cover करें, लेकिन हर एक चीज़ का program के अंदर, fixed logic होता ही होता है तो ये तो हो गए हमारी arithmetic operators इसके बाद बात करते हैं relational operators की relational operators भी math में हमने कहीं कहीं देखे होंगे relational operator में एक आता है less than, एक होता है less than equal to, एक होता है greater than, एक होता है greater than equal to, तो यह तो चार main होते हैं, जब भी हमें equal to चेक करना होता है, math के अंदर तो हम लिखते हैं, A क्या B के equal है, लेकिन C++ के अंदर हम लिखते हैं, क्या A B के equal है, हम double equal to use करते हैं, क्योंकि जो single equal to होता है, वो let's suppose answer 20 है, तो जब right side की value left side में assign की जाती है, भेजी जाती है, तो उसे assignment कहते हैं, तो check करने के लिए हम double equal to use करते हैं, तो एक relational operator double equal to होता है, और एक होता है not equal to, not equal to के लिए हम लिखते हैं exclamation और equal to, तो इसको हम पढ़ते कैसे हैं, exclamation का मतलब है not, और आगे equal to, तो ये हमारे different relational operators हैं, relational operator answer में, या तो true return करते हैं, या फिर false return करते हैं, यह fix होता है, जैसे for example, relational operators को एक बार use करके देखते हैं, मुझे अगर print करवाना है, 3 less than 5, तो इस statement को जब हम लिखते हैं, तो इसे हमें ऐसे पढ़ना है, क्या 3 less than 5 है, obviously 3 less than 5 है, तो answer क्या होना चाहिए, answer होना चाहिए true, answer होना चाहिए हमारे पास print होकर आ जाएगा 1, पर इसी का अगर हम opposite लिख दें, क्या 3 greater than 5 है, तो obviously 3 greater than 5 नहीं है, तो इसका answer false होना चाहिए, और false कैसे print होकर आएगा, false print होकर आएगा as 0, तो इस बार हमारे पास value print होकर आएगी as 0, तो इस तरीके से हमारे less than और greater than काम करते हैं, जैसे less than greater than होत less than equal to 3 है, less than तो नहीं है, पर equal to है, तो answer तो true ही होना चाहिए, तो इसे save कर लेते हैं, run करते हैं, तो last में हमारे पास print होकर आएगी true value, जैसे less than equal to होता है, ऐसे greater than equal to होता है, अब double equal to देखते हैं, अगर मैं see out करूं, 3 क्या 3 के equal है, तो इस case में true print होकर आना चाहिए, इन्हें comment out कर देते हैं, क्या 3 3 के equal है, yes, 3 is equal to 3, तो 1 आएगा, पर क्या 3 5 के equal है, 5 के equal नहीं होता, उस case में false आएगा, क्या 3 5 के not equal है, क्या 3 और 5 अलग-अलग है, yes, 3 और 5 अलग-अलग है, तो इस case में हमारे पास true आएगा, कि 3 5 के equal नहीं है, यह सच बात है, तो इस case में true print करवा दो, लेकिन 3 3 के equal नहीं है, यह तो गलत बात है, यह तो false तो इस तरीके से हमारे relational operators काम करते हैं, and they are pretty straightforward, बिल्कुल math जैसा ही logic काम करता है, तो कभी भी अगर हम values को compare करना चाते हैं, उनकी बीच में relation देखना चाते हैं, कौन सी value छोटी है, कौन सी value बड़ी है, तो हम इन operators को use करते हैं, और ये operators हमेशा एक Boolean value को return करते हैं, तो ये तो हो गए relational operators, इसके अलावा हमारे पास logical operators भी होते हैं, logical operators में हमारे पास 3 logical operators होते हैं, एक को हम कहते है logical और, एक को हम कहते है logical and, एक को हम कहते है logical not, logical or होता है ये, दो सीधी line, इसको हम logical or कहते है, इसको technical भाषा में हम pipe operator कहते है, क्योंकि straight line है, तो we call it a pipe, तो double pipe जब हम use करते है, तो logical or होता है, double ampersand, क्या बोला मैंने and को, मैंने and को बोला ampersand, इसको ampersand symbol बोलते है, पर इसको and भी बोल स तो इसको logical and कहते हैं, और जब हम एक single exclamation लिखते हैं, इसको हम logical not कहते हैं, अब logical not सबसे आसान होता है, इसको देख लेते हैं सबसे पहले, logical not क्या कहता है, logical not कहता है कि अगर आपका answer true है, तो मैं इसको false कर दूँगा, और आपका answer false है, तो मैं इसको true कर दूँगा, जैसे for example, म जो बहुत logical भी है, 1 आ गया, लेकिन जब मुझे इसका opposite चाहिए, कि नहीं, मुझे तो अगर ये true होता है, तो मुझे false चाहिए, तो मैं आगे not लगा देती हूँ, और not के बाद answer 0 में convert हो जाएगा, या फिर मुझे पता है, कि 3 less than 1 नहीं होता, इसका answer false होना चाहिए, तो एक true के एक खुला गया, तो इस तरीके से logical not, जो भी answer होता है, उसको reverse करके दे देता है, उसका not करके दे देता है, ऐसे ही हमारे पास logical or होता है, अब logical or and logical and, इनका जो logic है, वो हमें अगले chapter के अंदर, मतलब जब हम conditional statements पढ़ेंगे, conditional statements पढ़ेंगे, तब हमें clear होगा, कि क्यों इन basically let's suppose अगर हमें बहुत सारे हमारे पास statements है, एक मेरे पास ये statement है, एक statement कह रही है कि 3 बही greater than 1 होता है, दूसरी statement कह रही है 5 greater than 3 होता है, ये दो statements है मेरे पास, मैं चाहती हूँ कि दोनों में से अगर कोई भी statement सच हो जाए, तो मेरे पास final answer true आ जाए, ठीक है, एक false हो गई, पर तो मुझे पता है 3 greater than 1 होता है, ये तो मुझे true दे देगा, 5 greater than 3 होता है, ये भी मुझे true दे देगा, तो तो final answer true आना चाहिए, और अगर यहाँ पर 3 greater than 5 भी होता, let's suppose यहाँ 3 greater than 5 होता है, तो मुझे पता है ये तो false होता है, 3 greater than 5 हो नहीं सकता, पर फिर भी final answer क्या आएगा, मतलब और को use करना है, इसको देख भी लेते हैं कैसे use करते हैं, जैसे मैंने लिखा 3 less than 1 होता है, तो ये obviously एक false statement है, and और और मैंने लिख दिया 3 less than 5 होता है, and इन सब को एक बड़े parenthesis के अंदर लिख देते हैं, तो 3 less than 1 ये false है, 3 less than 5 ये true है, एक false है एक true है, तो मेरा final answer क्या हैगा, मेरा final answer true के equal है, और अगर दोनों ही false हो गए, यहाँ पे भी less than 1 हो गया, तब final answer 0 आएगा, false आएगा, लेकिन दोनों में से एक भी सच हो जाता है, तो final answer true आएगा, and इसका opposite होता है, logical and कहता है, कि सारे के सारी statements जब सच होंगी, तब ही final answer true होना चाहिए, left भी सच हो, right भी सच हो, जैसे 3 greater than 1 हो� final answer एंपरसेंट एंपरसेंट में true आना चाहिए, तो true आएगा, लेकिन अगर एक को भी हमने जूट कर दिया, 3 greater than 4 लिख दिया, तो उस case में answer 0 हो जाएगा, उस case में answer false हो जाएगा, तो इस तरीके से हमारे different different operators काम करते हैं, in fact और और and की, वैसे और and को detail में, हम next chapter के अंदर बात करेंगे, let's suppose और के अंदर, अगर statement 1, अगर हमारा input 1 यह अगर हमारा result है यह हमारा input 1 है यह input 2 है अगर statement 1 true है statement 2 भी true है तो भी result true आएगा अगर यह true है और यह false है तो भी result true आएगा अगर यह false है यह true है तो भी result true आएगा जब दोनों false होंगे तब ही final answer मेरा false के equal होगा और and का logic क्या कहता है and का logic कहता है कि अगर यह म लेकिन दोनों में से एक भी false हो गया तो ये false हो जाएगा, दोनों के दोनों false हैं तो भी ये false रहेगा, तो true सिर्फ तब आएगा जब दोनों के दोनों true हो, तो ये difference होता है or and and के अंदर, अब operators में arithmetic, relational, logical operator हमने पढ़ लिया, इसके अलावा एक और operator होता है, जिसको हम कहते है bit जिनको हम पढ़ते हैं, अब एक सवाल चोटा सा हम सॉल करने वाले हैं, हमें calculate करना है sum of two numbers, sum of two numbers calculate करने का logic हमने already flowchart pseudo code में देख रखा है, basically पहला step क्या होगा, कि हम input करेंगे a and b, अपने two numbers, second step होगा, कि हम sum calculate करेंगे a plus b, third step होगा, कि मुझे print करवाना है अपने sum को, तो ये बस इसको code के अंदर convert करना है कैसे convert करेंगे बहुत इसान होने वाला है in fact यहाँ पे आप lecture को pause भी कर सकते हैं और खुद से इसका पूरा logic लिख सकते हैं सबसे पहले तो दो variables define करेंगे a और b पहले a को input लेंगे enter a तो scene हो जाएगा a फिर इसी को copy कर लेते हैं फिर हम b को enter कर वाएंगे तो b enter हो जाएगा फिर एक variable ले लेते हैं sum is equal to a plus b, कुछ नहीं गया, बस pseudo code में जो line थी, उनको as it is बस c plus plus के logic में convert करते जा रहे हैं, पुरा logic बहुत असान है, बस जो syntax है syntax मतलब syntax एक शब्द है जो आप बार-बार सुनेंगे मुझसे, syntax का मतलब है rules of programming, rules of C++, बस उसको C++ के rules के according हम लिख रहे हैं, and finally c out कर देंगे, sum is equal to sum and finally end line, let's save it, let's run it, तो enter A, A में मैंने enter किया 3, enter B, B में मैंने enter किया 10, तो sum is equal to 13, हमारे पास 13 print हो गया है, तो हमने यह पूरा एक program बना लिया है, जो input भी लेता है, जो कुछ operation भी perform करता है, sum करने का, और जो कुछ output भी return करता है, तो overall यही program का structure होगा, problem जो है, वो चाहे कितनी मुश्किल से मुश्किल हो जाए, structure वही रहेगा, कुछ input लेना है, कुछ काम करना है, और कुछ output return करना है, जिसको हम और next level advanced चीजों तक लेकर जाने वाले हैं, operators के अंदर, हम एक और special type of operator होते हैं, जिसको पढ़ते हैं, we call it unary operator, unary operators क्या होते हैं, unary operator से पहले binary operator समझते हैं, binary में by का मतलब होता है 2, unary में you का मतलब होता है 1, binary operator वो operators होते हैं, जो दो numbers को use करके कोई operation perform करते हैं, जैसे अगर मुझे add करना है, तो add करने के लिए मुझे a और b दो numbers चेह सिर्फ एक number को तो add कर नहीं सकते, दो numbers तो चाहिए होंगे, तो plus क्या हो गया, plus binary operator हो गया, मुझे minus करना है तो भी दो number चाहिए, मुझे multiply करना है तो भी दो number चाहिए, मुझे divide करना है तो भी दो number चाहिए, तो इन सारे operators को जो अभी तक हमने पढ़े, इनको binary operators कहते हैं, तो अब unary operators क्या होते हैं, unary operators को एक ही operand चाहिए होता है, basically जब हम programming कर रहे होंगे, loops, जब हम पढ़ेंगे next chapter के अंदर, तो जब हम loop करते हैं, तो एक operation है, जो coding के अंदर हमें बार-बार करना पड़ता है, और वो operation होता है a is equal to a plus 1 का, या i is equal to i plus 1 का, या something, कोई variable है, is equal to variable plus 1 का, तो बार-बार-बार-बार हमें variables के अंदर plus 1 करना होता है, क्यों करना होता है, क्यों जैसे pseudo code वाले chapter में हमने sum of n numbers निकालने का logic सीखा है, या prime number का सीखा, तो वहाँ पे बार-बार हमें किसी variable के अंदर plus 1 करना पड़ रहा था, तो जब हमें इस तरीके की statement लिखनी होती है, बार-बार plus 1 करना होता है, तो हम उसको लिखने का एक shortcut अपनाते हैं, which we call a++, तो a++ का मतलब होता है कि a के अंदर हम plus 1 करने की कोशिश कर रहे हैं, तो ये प्लस प्लस क्या होता है ये प्लस प्लस मेरा increment unary operator होता है इस प्लस प्लस को पहले से ही पता है कि इसका second जो number है वो one ही होगा हमेशा तो ये जब हम a++ लिखते हैं तो प्लस प्लस को सिफ एक ही number चाहिए तो इसको हम unary operator कहते हैं अब प्लस प्लस जो है वो दो तरीके से दोनों का मतलब थोड़ा सा अलग होता है, A++ लिखने का मतलब है क्योंकि इसमें प्लस प्लस बाद में आता है, इसको लिखने का मतलब है कि पहले हम काम करेंगे, बाद में हम अपडेट करेंगे, इसको मैं भी करके दिखाओंगी लॉजिकली की और डीटेल में, और क्योंकि let's suppose मैंने एक variable बनाया है a is equal to 10, इससे clear कर लेते हैं, अब मैंने लिखा integer b is equal to a++, अब ये जो statement है, इसमें दो चीज़े हो रही हैं, सबसे पहला तो यहाँ पे काम हो रहा है, काम क्या है, काम है right side से b के अंदर कोई value आ जाए, ये मेरा काम है, दूसरी चीज़ जो इस statement के अंद तो plus plus अगर बाद में लगा है, तो क्या होगा, पहले काम होगा, फिर update होगा, पहले काम होगा मतलब, पहले इस b के अंदर value जाएगी, तो b के अंदर अगर value पहले जाएगी, तो जब हम c out करवाएंगे b को, तो b के अंदर a की पुरानी value जाएगी, तो b के अंदर a की पुरान 11 print हो कराएगा, तो B में 10 print होगा, A में 11 print होगा, इसको in fact हम print करवा कर भी देख सकते हैं, A is equal to and B is equal to let's save it, let's run, तो b तो 10 है, a 11 है, तो I hope इसके पीछे काम है, logic समझ में आया होगा, कि जब मैंने लिखा int b is equal to a++, तो यहाँ पे दो काम हो रहे थे, तो दो काम में से काम सबसे पहले होगा, यह main वाला काम, main वाला काम मतलब पहले b नाम का variable create होगा, उसके अंदर a की पुरानी value आ तो update होगा तो यहाँ 11 आ जाएगा, तो finally b के अंदर 10 होगा, a के अंदर 11 होगा, यह तो हो गया a के बाद plus plus लिखने का मतलब, plus plus a, यहाँ पे हम इसका उल्टा भी लिख सकते हैं, कि हम लिख दें, int b is equal to plus plus a, अब जब int b is equal to plus plus a हमने लिखा है, तो उस case में क्या होगा, अगर मेरे पास int a is equal to 10 है, यह मेरी memory है, this is a जिसके अंदर 10 है, मैंने लिखा int b is equal to plus plus a, तो यहाँ पे काम क्या हो रहे है, काम हो रहा है कि मैं B variable create करना चाहरी हूँ, update किसको करने, update A को करने की कोशिश करने है, तो plus plus A कहता है पहले update करो, A को update करना था, तो पहले A को update करके 11 करो, उसके बाद काम करो, काम क्या है, B को create करना, तो B फिर memory में जाके create होगा, और अब B के तो पहले update होगा, उसके बाद काम होगा, तो update होके पहले a की value 11 बनेगी, फिर b के अंदर जो value assign होगी, वो भी 11 होगी, तो इस बार जब print करवाएंगे, तो b भी 11 है और a भी 11 है, तो यह plus plus a and a plus plus के बीच का difference होता है, इन में से जो a plus plus होता है, इसे हम कहते है post increment operator और जो plus plus a होता है, इसको हम कहते है pre increment operator, post का मतलब होता है, बाद में, क्योंकि plus plus बाद में आ रहा है, pre का मतलब होता है, पहले क्योंकि plus plus पहले आ रहा है, तो ये हमारे post and pre increment operator होते हैं, अब जैसे increment operators होते हैं, वैसे ही decrement operator होते हैं, इनका काम होता है, minus 1 कर देना, इनको भी देख लेते हैं, जैसे मेरे पास post decrement operator है, वो होगा a minus minus, a minus minus का मतलब होता है, a is equal to a minus 1, और जैसे, pre-decrement operator है, इसका मतलब है minus minus a, minus minus a का भी मतलब a is equal to a minus 1 होता है बस अगर यह किसी statement में use हो जाए तो यहाँ पे पहले काम होता है फिर update होता है, यहाँ पे पहले update होता है, फिर काम होता है यह difference आ जाता है इसको भी एक बार देख लेते हैं, और इस बार print करने से पहले ही हम अपने output को predict करने की कोशिश करेंगे let's suppose a 10 है, इन्हें हटा लेते हैं a अभी 10 है A को अगर मैंने किया minus minus A, तो जब minus minus पहले आएगा, पहले update होगा, तो A update होके क्या हो जाएगा, A update होके 9 हो जाएगा, तो यहाँ आजाएगा 9, तो जब A की updated value पी के अंदर assign होगी, तो B भी 9 हो जाएगा, तो यहाँ भी 9 आजाएगा, जब print करवाएंगे, तो दोनों के अं� तो ए अपडेट होके 9 हो जाएगा, सेफ करेंगे, रन करेंगे, तो इस बार 10 and 9 print होंगे, ए की value तो हमेशा same ही रहेगी, अपडेट तो होना ही होना है, चाहे अपडेट पहले हो, चाहे अपडेट बाद में हो, अपडेट तो हमेशा होगी value, लेकिन काम पहले होगा या बाद पर जैसे हम loops को पढ़ लेंगे, इसका use आपको perfectly clear हो जाएगा, कि क्यों हमने ये सारी पूरी जो कहानी है, उसको इतना detail में पढ़ाए, ये topic generally काफी लोग skip कर देते हैं, पर ये मैंने आपको second lecture के अंदर ही इसलिए बता दिये, क्योंकि ये बहुत important topic है, और ऐसे ही logic हैं, ये अभी से ही हमारा दिमाग उस direction में, तो ये हमने अपने unary operators को cover कर लिये, तो एक बार देख लेते हैं हमने आज क्या क्या पढ़ा हमने आज पढ़ा कि C++ के अंदर input, output किस तरीके से लिया जा सकता है हमने पढ़ा हमारे variables कैसे काम करते हैं हमारे data types किस तरीके से काम करते हैं हमारे operators कैसे काम करते हैं जब हम variables, data types को use करते हैं तो memory के अंदर किस तरीके से हमारा data store हो रहा होता है साथ के साथ operators के बाद हमने unary operators को भी कवर किया है, तो ये different different चीज़े हैं, जो आज के section में हमने पढ़ी हैं, plus एक तरीके से हमने complete program बनाना सीखा है, कि कैसे input, output, operations का जो एक mixture है, वो एक complete program हम लिख सकते हैं C++ के अंदर, तो I hope कि ये जो logic है, ये हमें समझ में आया होगा, आज का जो lecture है, वो हमें समझ में आया होगा, एक दो चीज़े हैं, जो मैं आपको as a homework problem दूँगी, सबसे पहला तो जैसे हमने sum of two numbers किया, आपके लिए homework problem है, कि you have to build a calculator program एक तरीके से, जो difference भी कर पाए, जो product भी निकाल पाए, multiplication भी कर पाए, जो division भी कर पाए, और जो modulo भी कर पाए, तो sum तो हमने करी लिया था, आपको इन चारों के लिए, operators हमें already पता है, arithmetic operators यूज़ करने, तो you have to write a calculator like program, जो हमारे लिए सारे के सारे operations perform कर पाए, अब यहाँ पर lecture 2 हमारा खतम होता है, तो if you have successfully completed lecture 2, तो आप जाकर लिख सकते हैं comments के अंदर, आपनी आज की date और आपने lecture 2 को successfully complete कर लिया है, इसके साथ में you can also let me know कि lecture 2 के अंदर कौन-कौन सी चीज़ें हैं जो हमें अच्छी लगी, कौन-कौन सी चीज़ें हैं जो हमें उतनी अच्छी नहीं लगी, या what was our biggest learning from this lecture, कौन सी नई