Difference between revisions of "Scilab/C2/Scripts-and-Functions/Hindi"

From Script | Spoken-Tutorial
Jump to: navigation, search
(Created page with "{| border = 1 |'''Time''' |'''Narration''' |- | 00.01 |Scripts and Functions with Scilab के स्पोकन ट्यूटोरियल में आपका...")
 
 
(6 intermediate revisions by 3 users not shown)
Line 2: Line 2:
  
 
|'''Time'''
 
|'''Time'''
 
 
|'''Narration'''
 
|'''Narration'''
 
  
 
|-
 
|-
Line 24: Line 22:
 
|-
 
|-
 
| 00.24
 
| 00.24
|ऐसी ही एक स्क्रिप्ट फाइल में लिखे कमांड्स को निष्पादित करने के लिए, स्क्रिप्ट फाइल के नाम के बाद, exec function का प्रयोग किया जा सकता है।
+
|ऐसी ही एक स्क्रिप्ट फाइल में लिखे कमांड्स को निष्पादित करने के लिए, स्क्रिप्ट फाइल के नाम के बाद, exec फंक्शन का प्रयोग किया जा सकता है।
  
 
|-
 
|-
Line 32: Line 30:
 
|-
 
|-
 
| 00.42
 
| 00.42
| .sci एक्सटेंशन वाली फाइलों में Scilab function या user defined functions शामिल होते हैं
+
| .sci एक्सटेंशन वाली फाइलों में Scilab फंक्शन या user defined फंक्शन्स शामिल होते हैं
  
 
|-
 
|-
Line 40: Line 38:
 
|-
 
|-
 
| 01.00
 
| 01.00
| .sce एक्सटेंशन वाली फाइलों में Scilab function तथा User defined functions शामिल होते हैं।
+
| .sce एक्सटेंशन वाली फाइलों में Scilab फंक्शन तथा User defined फंक्शन्स शामिल होते हैं।
  
 
|-
 
|-
Line 52: Line 50:
 
|-
 
|-
 
|01.27
 
|01.27
|कमांड प्रॉम्प्ट पर command pwd टाइप करने के द्वारा करंट वर्किंग डायरेक्टरी की जांच करें  
+
|कमांड प्रॉम्प्ट पर कमांड pwd टाइप करने के द्वारा करंट वर्किंग डायरेक्टरी की जांच करें  
  
 
|-
 
|-
Line 60: Line 58:
 
|-
 
|-
 
| 01.49
 
| 01.49
|मैंने पहले ही एक फाइल में commands टाइप कर ली हैं तथा इसे helloworld.sce के नाम से सेव कर लिया है, इसलिए मैं Open a file शॉर्टकट आईकन का प्रयोग करके उस फाइल को खोलूंगा।  
+
|मैंने पहले ही एक फाइल में कमांड्स टाइप कर ली हैं तथा इसे helloworld.sce के नाम से सेव कर लिया है, इसलिए मैं Open a file शॉर्टकट आईकन का प्रयोग करके उस फाइल को खोलूंगा।  
  
 
|-  
 
|-  
Line 96: Line 94:
 
|-
 
|-
 
| 03.02
 
| 03.02
|हम exec command का प्रयोग करके स्क्रिप्ट को सीधे scilab interpreter से भी निष्पादित कर सकते हैं तथा स्क्रिप्ट फाइल के लिए मार्ग प्रदान करते हैं:
+
|हम exec कमांड का प्रयोग करके स्क्रिप्ट को सीधे scilab interpreter से भी निष्पादित कर सकते हैं तथा स्क्रिप्ट फाइल के लिए मार्ग प्रदान करते हैं:
  
 
|-
 
|-
 
| 03.12
 
| 03.12
| जैसे exec ब्रैकेट्स में iडबल कोट्स में helloworld.sce जो फ़ाइल का नाम है और एंटर दबाएँ
+
| जैसे exec ब्रैकेट्स में i डबल कोट्स में helloworld.sce जो फ़ाइल का नाम है और एंटर दबाएँ
  
 
|-
 
|-
Line 112: Line 110:
 
|-
 
|-
 
| 03.39
 
| 03.39
|फंक्शन्स की परिभाषा की-वर्ड फंक्शन से शुरू होती है तथा की-वर्ड endfunction पर समाप्त होती है।
+
|फंक्शन्स की परिभाषा की-वर्ड फंक्शन से शुरू होती है तथा की-वर्ड end फंक्शन पर समाप्त होती है।
  
 
|-
 
|-
Line 148: Line 146:
 
|-
 
|-
 
| 04.47
 
| 04.47
|एक बार फंक्शन के लोड हो जाने पर, उस फंक्शन में विशेष आर्ग्युमेंट पास करके इसे किसी भी अन्य Scilab function की तरह कहा जा सकता है।   
+
|एक बार फंक्शन के लोड हो जाने पर, उस फंक्शन में विशेष आर्ग्युमेंट पास करके इसे किसी भी अन्य Scilab फंक्शन की तरह कहा जा सकता है।   
  
 
|-
 
|-
Line 176: Line 174:
 
|-
 
|-
 
| 05.51
 
| 05.51
|यहाँ आप देख सकते है कि function polar2rect के लिए x और y आउटपुट पैरामीटर हैं तथा r और theta इनपुट पैरामीटर हैं।  
+
|यहाँ आप देख सकते हैं कि फंक्शन polar2rect के लिए x और y आउटपुट पैरामीटर हैं तथा r और theta इनपुट पैरामीटर हैं।  
  
 
|-
 
|-
 
| 06.06
 
| 06.06
| मैं exec विकल्प का प्रयोग करके इस function को Scilab में लोड करूँगा   
+
| मैं exec विकल्प का प्रयोग करके इस फंक्शन को Scilab में लोड करूँगा   
  
 
|-
 
|-
 
| 06.21
 
| 06.21
|एक बार function लोड हो जाने पर, हमें function को कॉल करने की आवश्यकता होती है। इस function को दो इनपुट आर्ग्युमेंट एवं दो आउटपुट आर्ग्युमेंट की आवश्यकता होती है।
+
|एक बार फंक्शन लोड हो जाने पर, हमें फंक्शन को कॉल करने की आवश्यकता होती है। इस फंक्शन को दो इनपुट आर्ग्युमेंट एवं दो आउटपुट आर्ग्युमेंट की आवश्यकता होती है।
  
 
|-
 
|-
Line 208: Line 206:
 
|-
 
|-
 
| 07.38
 
| 07.38
|इसे करते हुए कृपया याद रखें कि डिफ़ॉल्ट रूप से एक फंक्शन में परिभाषित किए गए सभी वैरिएबल लोकल होते हैं, और एक विशेष फंक्शन में प्रयुक्त इन वैरिएबल्स का स्कोप फंक्शन परिभाषा के endfunction की-वर्ड के साथ समाप्त होता है।
+
|इसे करते हुए कृपया याद रखें कि डिफ़ॉल्ट रूप से एक फंक्शन में परिभाषित किए गए सभी वैरिएबल लोकल होते हैं, और एक विशेष फंक्शन में प्रयुक्त इन वैरिएबल्स का स्कोप फंक्शन परिभाषा के end फंक्शन की-वर्ड के साथ समाप्त होता है।
  
 
|-
 
|-
Line 248: Line 246:
 
|-
 
|-
 
| 08.53
 
| 08.53
| Scilab in-line functions बनाने की अनुमति देता है तथा विशेष रूप से तब उपयोगी होता है जब function
+
| Scilab in-line फंक्शन बनाने की अनुमति देता है तथा विशेष रूप से तब उपयोगी होता है जब फंक्शन की बॉडी छोटी होती है  
की बॉडी छोटी होती है  
+
  
 
|-
 
|-
 
| 09.02
 
| 09.02
|इसे deff() function की मदद से किया जा सकता है।
+
|इसे deff() फंक्शन की मदद से किया जा सकता है।
  
 
|-
 
|-
Line 265: Line 262:
 
|-
 
|-
 
| 09.19
 
| 09.19
|Deff कमांड Scilab में function को परिभाषित करता है और इसे लोड भी करता है।
+
|Deff कमांड Scilab में फंक्शन को परिभाषित करता है और इसे लोड भी करता है।
  
 
|-
 
|-
Line 277: Line 274:
 
|-
 
|-
 
| 09.41
 
| 09.41
|मैं inline.sci नामक एक फाइल खोलूँगा जहाँ मैंने inline function लिखा है
+
|मैं inline.sci नामक एक फाइल खोलूँगा जहाँ मैंने inline फंक्शन लिखा है
  
 
|-
 
|-
Line 285: Line 282:
 
|-
 
|-
 
| 09.57
 
| 09.57
|जैसा कि पूर्व में उल्लेख किया गया है कि पहली स्ट्रिंग function declaration को परिभाषित करती है तथा दूसरी स्ट्रिंग function के 'स्टेटमेंट्स' को परिभाषित करती है।
+
|जैसा कि पूर्व में उल्लेख किया गया है कि पहली स्ट्रिंग फंक्शन डिक्लैरेशन को परिभाषित करती है तथा दूसरी स्ट्रिंग फंक्शन के 'स्टेटमेंट्स' को परिभाषित करती है।
  
 
|-
 
|-
 
| 10.13
 
| 10.13
|हम इस function को Scilab एडिटर में लोड करेंगे तथा 90 के degrees2radians और 45 के  degrees2radians मान निकालने में इसका प्रयोग करेंगे।
+
|हम इस फंक्शन को Scilab एडिटर में लोड करेंगे तथा 90 के degrees2radians और 45 के  degrees2radians मान निकालने में इसका प्रयोग करेंगे।
  
 
|-
 
|-
Line 297: Line 294:
 
|-
 
|-
 
| 11.00
 
| 11.00
|यह function की "recursive" calling है।  
+
|यह फंक्शन की "recursive" calling है।  
  
 
|-
 
|-
Line 321: Line 318:
 
|-
 
|-
 
| 11.52
 
| 11.52
|.sci फाइल एक्सटेंशन वाली फाइलें फंक्शन फाइलें होती हैं, जो function स्टेटमेंट के साथ शुरू होती हैं।
+
|.sci फाइल एक्सटेंशन वाली फाइलें फंक्शन फाइलें होती हैं, जो फंक्शन स्टेटमेंट के साथ शुरू होती हैं।
  
 
|-
 
|-
Line 341: Line 338:
 
|-
 
|-
 
| 12.33
 
| 12.33
| यह स्पोकन ट्यूटोरियल फ्री एंड ओपन सोर्स सॉफ्टवेयर इन साइंस एंड इंजीनियरिंग एजुकेशन (एफओएसएसईई) द्वारा बनाया गया है।
+
| यह स्पोकन ट्यूटोरियल फ्री एंड ओपन सोर्स सॉफ्टवेयर इन साइंस एंड इंजीनियरिंग एजुकेशन (FOSSEE) द्वारा बनाया गया है।
  
 
|-
 
|-
Line 357: Line 354:
 
|-
 
|-
 
| 13.06
 
| 13.06
| आईआईटी बॉम्बे से मैं अनुराधा अमृतकर आपसे विदा लेती हूँ।
+
| आईआईटी बॉम्बे से मैं यश वोरा आपसे विदा लेता हूँ।
|-
+
  
 
|-
 
|-
 
| 13.10
 
| 13.10
 
| हमारे साथ जुड़ने के लिये धन्यवाद। अलविदा
 
| हमारे साथ जुड़ने के लिये धन्यवाद। अलविदा

Latest revision as of 12:49, 9 January 2015

Time Narration
00.01 Scripts and Functions with Scilab के स्पोकन ट्यूटोरियल में आपका स्वागत है।
00.06 Scilab में फाइल प्रारूपों के एक संक्षिप्त परिचय के साथ आरम्भ करते हैं।
00.12 जब कई कमांड्स निष्पादित की जानी होती हैं, तो इन स्टेटमेंट्स को Scilab एडिटर के साथ एक फाइल में लिखना अधिक सुविधाजनक हो सकता है।
00.21 इन्हें SCRIPT फाइलें कहा जाता है।
00.24 ऐसी ही एक स्क्रिप्ट फाइल में लिखे कमांड्स को निष्पादित करने के लिए, स्क्रिप्ट फाइल के नाम के बाद, exec फंक्शन का प्रयोग किया जा सकता है।
00.34 सामान्यतः इन फाइलों का एक्सटेंशन, इनकी सामग्री के आधार पर .sce या .sci होता है।
00.42 .sci एक्सटेंशन वाली फाइलों में Scilab फंक्शन या user defined फंक्शन्स शामिल होते हैं
00.51 इन फाइलों को निष्पादित करना Scilab environment में फंक्शनों को लोड करता है (किन्तु उन्हें निष्पादित नहीं करता है), जबकि
01.00 .sce एक्सटेंशन वाली फाइलों में Scilab फंक्शन तथा User defined फंक्शन्स शामिल होते हैं।
01.08 कृपया याद रखें कि .sce and .sci के रूप में एक्सटेंशन के नामकरण की परंपरा नियम नहीं हैं, अपितु scilab समुदाय द्वारा पालन की जाने वाली एक परंपरा है।
01.21 कंप्यूटर पर Scilab Console विंडो खोलते हैं।
01.27 कमांड प्रॉम्प्ट पर कमांड pwd टाइप करने के द्वारा करंट वर्किंग डायरेक्टरी की जांच करें
01.35 scilab console विंडो के टास्क बार पर जाएँ तथा scilab एडिटर को खोलने के लिए एडिटर विकल्प पर क्लिक करें
01.49 मैंने पहले ही एक फाइल में कमांड्स टाइप कर ली हैं तथा इसे helloworld.sce के नाम से सेव कर लिया है, इसलिए मैं Open a file शॉर्टकट आईकन का प्रयोग करके उस फाइल को खोलूंगा।
02.03 helloworld.sce फाइल को सेलेक्ट करें तथा ओपन पर क्लिक करें
02.10 आप नयी फाइल में कमांड्स टाइप कर सकते हैं तथा इस फाइल को फाइल मेन्यू के माध्यम से helloworld.sce के रूप में करंट वर्किंग डायरेक्टरी में सेव कर सकते हैं।
02.20 scilab एडिटर के मेन्यू बार पर एक्जीक्यूट बटन पर जाएँ तथा Load into scilab विकल्प को सेलेक्ट करें।
02.29 यह फाइल को scilab console में लोड करेगा।
02.34 console में फाइल लोड करने के बाद स्क्रिप्ट आउटपुट प्रदर्शित करती है जैसा कि आप देख सकते है:
02.43 इसमें कमांड्स तथा संबंधित कमांड्स के लिए प्राप्त आउटपुट, दोनों शामिल होते हैं।
02.49 अब a की वैल्यू को बदलकर 1 करें।
02.55 एडिटर में, फाइल मेन्यू पर जाएँ, तथा सेव पर क्लिक करें
03.02 हम exec कमांड का प्रयोग करके स्क्रिप्ट को सीधे scilab interpreter से भी निष्पादित कर सकते हैं तथा स्क्रिप्ट फाइल के लिए मार्ग प्रदान करते हैं:
03.12 जैसे exec ब्रैकेट्स में i डबल कोट्स में helloworld.sce जो फ़ाइल का नाम है और एंटर दबाएँ
03.31 स्क्रिप्ट फाइल exec फंक्शन के प्रयोग के साथ समान आउटपुट प्रदान करती है।
03.37 अब फंक्शन्स के बारे में बात करते हैं:
03.39 फंक्शन्स की परिभाषा की-वर्ड फंक्शन से शुरू होती है तथा की-वर्ड end फंक्शन पर समाप्त होती है।
03.46 मैंने पहले ही scilab एडिटर का प्रयोग करके function.sci में एक फंक्शन फाइल सेव कर ली है।
03.57 मैं वह फाइल खोलूँगा
04.03 जैसा कि आपने देखा कि फंक्शन यहां परिभाषित किया गया है।
04.08 इसमें डिग्रीज़ आउटपुट पैरामीटर हैं और रेडियन इनपुट पैरामीटर है
04.21 radians2degrees नामक फंक्शन्स के लिए।
04.26 मैं एक्जीक्यूट मेन्यू विकल्प का प्रयोग करके इस फंक्शन को Scilab में लोड करूँगा।
04.40 फंक्शन अब scilab कंसोल में लोड हो गया है।
04.44 इसे exec कमांड का प्रयोग करके भी लोड किया जा सकता है।
04.47 एक बार फंक्शन के लोड हो जाने पर, उस फंक्शन में विशेष आर्ग्युमेंट पास करके इसे किसी भी अन्य Scilab फंक्शन की तरह कहा जा सकता है।
04.56 परसेंट चिन्ह का एक मेंटल नोट बनायें तथा इसके प्रयोग का कारण याद करें।
05.02 अब हम %pi/2 के radians2degrees और (%pi/4) के radians2degrees के लिए मान निकालते हैं।
05.17 परसेंट pi/2 (%pi/2) एवं radians2degrees परसेंट pi by 4 (%pi/4)
05.28 अब हम एक से अधिक इनपुट और आउटपुट आर्ग्युमेंट वाला एक फंक्शन देखेंगे।
05.33 यह फंक्शन इनपुट आर्ग्युमेंट के रूप में पोलर कोऑर्डिनेट्स लेता है तथा आउटपुट आर्ग्युमेंट के रूप में रेक्टेंगुलर कोऑर्डिनेट्स देता है।
05.44 मैं वह फाइल खोलूँगा जिसे मैंने पहले ही टाइप कर लिया है
05.51 यहाँ आप देख सकते हैं कि फंक्शन polar2rect के लिए x और y आउटपुट पैरामीटर हैं तथा r और theta इनपुट पैरामीटर हैं।
06.06 मैं exec विकल्प का प्रयोग करके इस फंक्शन को Scilab में लोड करूँगा
06.21 एक बार फंक्शन लोड हो जाने पर, हमें फंक्शन को कॉल करने की आवश्यकता होती है। इस फंक्शन को दो इनपुट आर्ग्युमेंट एवं दो आउटपुट आर्ग्युमेंट की आवश्यकता होती है।
06.31 इसलिए r = 2;
06.37 थीटा = 45
06.44 और अब हम इसे कहेंगे x1 comma y1 आउटपुट पैरामीटर्स इक्वल टू फंक्शन नेम polar2rect ब्रैकेट में r comma theta और एंटर दबाएँ
07.25 आप x1 और y1 की वैल्यू देखेगें
07.29 Scilab की आकर्षक विशेषताओं में से एक यह है कि आप एक सिंगल .sci file में कई फंक्शन्स को परिभाषित कर सकते हैं।
07.38 इसे करते हुए कृपया याद रखें कि डिफ़ॉल्ट रूप से एक फंक्शन में परिभाषित किए गए सभी वैरिएबल लोकल होते हैं, और एक विशेष फंक्शन में प्रयुक्त इन वैरिएबल्स का स्कोप फंक्शन परिभाषा के end फंक्शन की-वर्ड के साथ समाप्त होता है।
07.55 इस विशेषता का लाभ यह है कि हम विभिन्न फंक्शन्स में एक ही वैरिएबल नामों का प्रयोग कर सकते हैं।
08.05 ये वैरिएबल्स तब तक मिश्रित नहीं होंगें, जब तक हम ग्लोबल विकल्प का प्रयोग नहीं करते।
08.10 ग्लोबल वैरिएबल्स के बारे में और अधिक जानने के लिए help global टाइप करें
08.18 कृपया ध्यान दें कि यदि एक फंक्शन के अंदर किसी भी वैरिएबल को "देखा" या निरीक्षण किया जा रहा है, तो disp की आवश्यकता होती है
08.26 एक फंक्शन फाइल के अंदर, आप स्वयं के लिए एक स्टेटमेंट के अंत में सेमीकॉलन (;) लगाने के प्रभाव की जांच कर सकते हैं
08.34 इसे disp स्टेटमेंट के लिए भी चेक करें।
08.38 inline फंक्शन्स:
08.39 फंक्शन कोड के सेगमेंट होते हैं, जिनमें लोकल वैरिएबल्स के साथ साथ सुपरिभाषित इनपुट एवं आउटपुट होता है।
08.46 एक फंक्शन को परिभाषित करने का सबसे आसान तरीका `deff ' कमांड का उपयोग करना है
08.53 Scilab in-line फंक्शन बनाने की अनुमति देता है तथा विशेष रूप से तब उपयोगी होता है जब फंक्शन की बॉडी छोटी होती है
09.02 इसे deff() फंक्शन की मदद से किया जा सकता है।
09.07 यह दो स्ट्रिंग पैरामीटर लेता है
09.10 पहली स्ट्रिंग फंक्शन के इंटरफेस को परिभाषित करती है तथा दूसरी स्ट्रिंग फंक्शन के स्टेटमेंट्स को परिभाषित करती है।
09.19 Deff कमांड Scilab में फंक्शन को परिभाषित करता है और इसे लोड भी करता है।
09.26 स्पष्टतया एक्जीक्यूट मेन्यू विकल्प द्वारा deff कमांड का प्रयोग करके परिभाषित किए गए फंक्शन को लोड करने की कोई आवश्यकता नहीं है।
09.34 इस अवधारणा की व्याख्या करने के लिए हम एक उदाहरण देखते हैं:
09.41 मैं inline.sci नामक एक फाइल खोलूँगा जहाँ मैंने inline फंक्शन लिखा है
09.51 मैं एडिटर विंडो को रिसाइज़ करूंगा।
09.57 जैसा कि पूर्व में उल्लेख किया गया है कि पहली स्ट्रिंग फंक्शन डिक्लैरेशन को परिभाषित करती है तथा दूसरी स्ट्रिंग फंक्शन के 'स्टेटमेंट्स' को परिभाषित करती है।
10.13 हम इस फंक्शन को Scilab एडिटर में लोड करेंगे तथा 90 के degrees2radians और 45 के degrees2radians मान निकालने में इसका प्रयोग करेंगे।
10.54 एक फंक्शन, न केवल अपने आतंरिक अन्य फंक्शनों को, बल्कि स्वयं को भी कॉल कर सकता है।
11.00 यह फंक्शन की "recursive" calling है।
11.03 उदाहरण के लिए, एक इंटीजर के फ़ैक्टोरियल की गणना करने के लिए एक फंक्शन लिखते समय इसकी आवश्यकता होती है।
11.10 आइये Scilab में फाइल प्रारूपों पर चर्चा को आगे बढ़ाते हैं:
11.14 जैसा कि पूर्व में उल्लेख किया गया है कि SCILAB में, दो प्रकार के फाइल प्रारूपों, SCE फ़ाइल प्रारूप तथा SCI फ़ाइल प्रारूप, का प्रयोग किया जाता है।
11.23 .sce फाइल एक्सटेंशन वाली फाइलें स्क्रिप्ट फाइलें हैं, जिनमें वे SCILAB कमांड्स शामिल होती है जिन्हें आप एक इंटरैक्टिव प्रकार के SCILAB सेशन के दौरान प्रविष्ट करते हैं।
11.35 उनमें फंक्शन को लिखने में प्रयोग की गयी कमेंट्स लाइनें भी शामिल हो सकती हैं तथा वे स्क्रिप्ट को एक्जीक्यूट करने के लिए EXEC कमांड का प्रयोग भी कर सकते हैं।
11.52 .sci फाइल एक्सटेंशन वाली फाइलें फंक्शन फाइलें होती हैं, जो फंक्शन स्टेटमेंट के साथ शुरू होती हैं।
12.00 एक अकेली .sci फाइल में कई फंक्शन परिभाषायें हो सकती हैं जिनमें बहुत से SCILAB स्टेटमेंट शामिल होते हैं, जो फंक्शन आर्ग्युमेंट पर या आउटपुट वैरिएबल पर संक्रियाएं करते हैं, जिसके बाद उनका मूल्यांकन किया जाता है।
12.20 यह हमें Scilab में Scripts and Functions के स्पोकन ट्यूटोरियल की समाप्ति पर लाता है।
12.25 Scilab में कई अन्य फंक्शन हैं, जिन्हें अन्य स्पोकन ट्यूटोरियल में शामिल किया जाएगा।
12.31 Scilab लिंक्स देखते रहें।
12.33 यह स्पोकन ट्यूटोरियल फ्री एंड ओपन सोर्स सॉफ्टवेयर इन साइंस एंड इंजीनियरिंग एजुकेशन (FOSSEE) द्वारा बनाया गया है।
12.40 FOSSEE प्रोजेक्ट पर अधिक जानकारी http://fossee.in या http://scilab.in से प्राप्त की जा सकती है
12.50 भारत सरकार के एमएचआरडी, आईसीटी के माध्यम से राष्ट्रीय शिक्षा मिशन द्वारा समर्थित।
12.56 अधिक जानकारी के लिए http://spoken-tutorial.org/NMEICT-Intro पर जाएँ
13.06 आईआईटी बॉम्बे से मैं यश वोरा आपसे विदा लेता हूँ।
13.10 हमारे साथ जुड़ने के लिये धन्यवाद। अलविदा

Contributors and Content Editors

Devraj, Sakinashaikh, Shruti arya