Difference between revisions of "C-and-C++/C3/Strings/Malayalam"

From Script | Spoken-Tutorial
Jump to: navigation, search
Line 44: Line 44:
 
|-
 
|-
 
| 00.44
 
| 00.44
|“string”ന്റെ  size = string  ന്റെ നീളം  + 1.
+
|“string”ന്റെ  size = stringന്റെ നീളം  + 1.
 
|-
 
|-
 
| 00.49
 
| 00.49
Line 170: Line 170:
 
|-
 
|-
 
| 03.48
 
| 03.48
|എഡിറ്ററിലേക്ക്  തിരികെ വരുക ,അതേ ഉദാഹരണം ഉപയോഗിക്കാം.
+
|എഡിറ്ററിലേക്ക്  തിരികെ വരുക, അതേ ഉദാഹരണം ഉപയോഗിക്കാം.
 
|-
 
|-
 
| 03.52
 
| 03.52
|ആദ്യമായി '''shift, ctrl , s ''' ഒരുമിച്ച്  പ്രസ്  ചെയ്യുക.  
+
|ആദ്യമായി '''shift, ctrl, s ''' ഒരുമിച്ച്  പ്രസ്  ചെയ്യുക.  
 
|-
 
|-
 
| 03.58
 
| 03.58
Line 188: Line 188:
 
|-
 
|-
 
| 04.11
 
| 04.11
|'''= “ double quottesന്  ഉള്ളില്‍  “Spoken- Tutorial”; '''ടൈപ്പ് ചെയ്യുക.
+
|'''= “ double quottesന്  ഉള്ളില്‍  “Spoken- Tutorial” ; '''ടൈപ്പ് ചെയ്യുക.
 
|-
 
|-
 
| 04.20
 
| 04.20
Line 212: Line 212:
 
|-
 
|-
 
| 04.44
 
| 04.44
|string.c യുടെ ഔട്ട്‌പുട്ട്  ഫയല്‍  “str” നീക്കം ചെയ്യപ്പെടാതെയിരിക്കാന്‍    ഇവിടെ  “str2” ഉപയോഗിക്കുന്നു.
+
|string.cയുടെ ഔട്ട്‌പുട്ട്  ഫയല്‍  “str” നീക്കം ചെയ്യപ്പെടാതെയിരിക്കാന്‍    ഇവിടെ  “str2” ഉപയോഗിക്കുന്നു.
 
|-
 
|-
 
| 04.54
 
| 04.54
Line 356: Line 356:
 
|-
 
|-
 
| 07.18
 
| 07.18
|ആദ്യം,'''shift, ctrl ,S''' ഒരുമിച്ച് പ്രസ്‌ ചെയ്യുക.
+
|ആദ്യം '''shift, ctrl, S''' ഒരുമിച്ച് പ്രസ്‌ ചെയ്യുക.
 
|-
 
|-
 
| 07.25
 
| 07.25
Line 401: Line 401:
 
|-
 
|-
 
| 08.36
 
| 08.36
| '''format specifier''','''\n ''' എന്നിവ നീക്കം ചെയ്യുക.  
+
| '''format specifier''', '''\n ''' എന്നിവ നീക്കം ചെയ്യുക.  
 
|-
 
|-
 
| 08.40
 
| 08.40
Line 446: Line 446:
 
|-
 
|-
 
| 09.47
 
| 09.47
|'''Enter the string'''എന്ന് കാണുന്നു.
+
|'''Enter the string''' എന്ന് കാണുന്നു.
 
|-
 
|-
 
| 09.50
 
| 09.50
Line 476: Line 476:
 
|-
 
|-
 
| 10.14
 
| 10.14
|'''string '''ന്റെ ഡിക്ലറേഷന്‍.  
+
|'''string'''ന്റെ ഡിക്ലറേഷന്‍.  
 
|-
 
|-
 
| 10.16
 
| 10.16
Line 482: Line 482:
 
|-
 
|-
 
|10.20
 
|10.20
|'''string '''ന്റെ initialization.
+
|'''string'''ന്റെ initialization.
 
|-
 
|-
 
| 10.21
 
| 10.21
|ഉദാഹരണം:'''char strname[30] = “Talk To A Teacher”'''
+
|ഉദാഹരണം: '''char strname[30] = “Talk To A Teacher”'''
 
|-
 
|-
 
| 10.26
 
| 10.26
|ഒരു അസ്സിഗ്ന്മെന്റ്
+
|ഒരു അസ്സൈൻമെന്റ്
 
|-
 
|-
 
| 10.28
 
| 10.28
Line 512: Line 512:
 
|-
 
|-
 
| 10.54
 
| 10.54
|കുടുതല്‍ വിവരങ്ങള്‍ക്കായി, ദയവായി, '''contact@spoken-tutorial.org''' ല്‍ ബന്ധപ്പെടുക.
+
|കുടുതല്‍ വിവരങ്ങള്‍ക്കായി, ദയവായി, '''contact@spoken-tutorial.org'''ല്‍ ബന്ധപ്പെടുക.
 
|-
 
|-
 
|11.01
 
|11.01

Revision as of 11:55, 17 June 2014

Time Narration


00.01 C, C++ലെ Strings എന്ന സ്പോകെന്‍ ട്യൂട്ടോറിയലിലേക്ക് സ്വാഗതം.
00.06 ഇവിടെ പഠിക്കുന്നത്,
00.08 എന്താണ് string ?
00.10 stringന്റെ ഡിക്ലറെഷന്‍.
00.13 stringന്റെ intialization.
00.15 stringന് ചില ഉദാഹരണങ്ങള്‍ .
00.17 ചില സ്വാഭാവികമായ തെറ്റുകളും അവ തിരുത്തുന്നതും.
00.22 ഇതിനായി ഉപയോഗിക്കുന്നത്,
00.25 Ubuntu Operating System version 11.04
00.29 gcc , g++ Compiler version 4.6.1 .
00.35 stringsന്റെ ആമുഖത്തോടെ തുടങ്ങാം.
00.38 ഒരൊറ്റ ഡേറ്റ ഐറ്റം ആയ ക്യാരക്റ്റെഴ്സിന്റെ ഒരു നിരയാണ് string”.
00.44 “string”ന്റെ size = stringന്റെ നീളം + 1.
00.49 എങ്ങനെ, ഒരു string ഡിക്ലയര്‍ ചെയ്യാമെന്ന് നോക്കാം.
00.52 അതിനുള്ള ഘടന
00.55 char, string name, size
00.59 char ഡേറ്റ ടൈപ്പ് ആണ്, string name stringന്റെ പേര്, എന്നിട്ട് അതിന്റെ size ഇവിടെ കൊടുക്കുക.
01.06 ഉദാഹരണം: ഇവിടെ size 10 ആയ character string names ഡിക്ലയര്‍ ചെയ്യുന്നു.
01.13 ഒരു ഉദാഹരണം നോക്കാം.
01.15 നേരത്തെ ടൈപ്പ് ചെയ്തിട്ടുള്ള പ്രോഗ്രാം തുറക്കാം.
01.19 നമ്മുടെ ഫയലിന്റെ പേര് string.c
01.23 ഈ പ്രോഗ്രാമില്‍, യൂസറില്‍ നിന്ന് ഒരു string ഇന്‍പുട്ട് ആയി സ്വീകരിച്ച് പ്രിന്റ്‌ ചെയ്യുന്നു.
01.29 ഇപ്പോള്‍ കോഡ് വിശദമാക്കാം.
01.32 ഇവ ഹെഡര്‍ ഫയലുകളാണ്.
01.34 string.hല്‍ string കൈകാര്യം ചെയ്യാന്‍ ഉപയോഗിക്കുന്ന declarations, functions, constants എന്നിവ ഉള്‍കൊള്ളുന്നു.
01.43 നമ്മള്‍ “string functions” ഉപയോഗിക്കുമ്പോള്‍ ഈ ഹെഡര്‍ ഫയല്‍ ഉള്‍പ്പെടുത്തണം.
01.47 ഇത് മെയിന്‍ ഫങ്ഷന്‍.
01.49 ഇവിടെ size 30 ആയ ഒരു string, “strname” ഡിക്ലയര്‍ ചെയ്യുന്നു.
01.55 ഇവിടെ നമ്മള്‍ യൂസറില്‍ നിന്ന് ഒരു string സ്വീകരിക്കുന്നു.
01.58 ഒരു string റീഡ് ചെയ്യാനായി format specifier %sഓട് കൂടിയ scanf() function ഉപയോഗിക്കാം.
02.05 stringന്റെ കൂടെ spaces ഉള്‍പ്പെടുത്താന്‍ caret ചിഹ്നവും \n ഉം ഉപയോഗിക്കുന്നു.
02.11 എന്നിട്ട് string പ്രിന്റ്‌ ചെയ്യുന്നു.
02.13 ഇത് റിട്ടേണ്‍ സ്റ്റേറ്റ്മെന്റ്.
02.16 സേവ് ക്ലിക്ക് ചെയ്യുക.
02.18 പ്രോഗ്രാം എക്സിക്യൂട്ട് ചെയ്യട്ടെ.
02.20 Ctrl, Alt, T ഒരുമിച്ച് പ്രസ് ചെയ്ത് ടെർമിനല്‍ തുറക്കുക.
02.30 കംപൈല്‍ ചെയ്യാന്‍ gcc space string.c space -o space str ടൈപ്പ് ചെയ്യുക.
02.37 എന്റര്‍ പ്രസ്‌ ചെയ്യുക.
02.40 എക്സിക്യൂട്ട് ചെയ്യാന്‍ ./str ടൈപ്പ് ചെയ്യുക.
02.43 എന്റര്‍ കൊടുക്കുക
02.46 ഇവിടെ Enter the string എന്ന് കാണുന്നു.
02.49 Talk To A Teacher ടൈപ്പ് ചെയ്തിട്ട്
02.56 എന്റര്‍ കൊടുക്കുക.
02.58 ഔട്ട്‌പുട്ട്, The string is Talk To A Teacher കാണുന്നു.
03.03 സ്ലൈഡിലേക്ക് തിരിച്ചു വരുന്നു.
03.06 ഇതുവരെ stringന്റെ ഡിക്ലറേഷനെ കുറിച്ചാണ് പഠിച്ചത് .
03.10 ഇപ്പോള്‍ ഒരു string എങ്ങനെ initialize ചെയ്യാമെന്ന് നോക്കാം.
03.13 ഇതിന്റെ ഘടന
03.16 char var_name[size] = “string”;
03.20 ഉദാഹരണം :size 10 ഉള്ള character string “names” ഡിക്ലയര്‍ ചെയ്ത് “Priya” എന്ന string നല്കുന്നു.
03.28 മറ്റൊരു ഘടന
03.31 char var_name[ ] = സിംഗിള്‍ quotesനുള്ളില്‍ {'S', 't', 'r', 'i', 'n', 'g'}
03.36 ഉദാഹരണം : char names[10] = സിംഗിള്‍ quotesനുള്ളില്‍ {'P', 'r', 'i', 'y', 'a'}
03.42 ആദ്യത്തെ ഘടന എങ്ങനെ ഉപയോഗിക്കുമെന്ന് ഒരു ഉദാഹരണത്തിലൂടെ കാണാം.
03.48 എഡിറ്ററിലേക്ക് തിരികെ വരുക, അതേ ഉദാഹരണം ഉപയോഗിക്കാം.
03.52 ആദ്യമായി shift, ctrl, s ഒരുമിച്ച് പ്രസ് ചെയ്യുക.
03.58 stringinitialize എന്ന പേരോടെ ഫയല്‍ സേവ് ചെയ്യുക.
04.03 സേവ് ക്ലിക്ക് ചെയ്യുക.
04.06 string, initialize ചെയ്യാം.
04.08 അഞ്ചാമത്തെ വരിയില്‍
04.11 = “ double quottesന് ഉള്ളില്‍ “Spoken- Tutorial” ; ടൈപ്പ് ചെയ്യുക.
04.20 സേവ് ക്ലിക്ക് ചെയ്യുക.
04.22 നമ്മള്‍ ഈ സ്ട്രിംഗ് പ്രിന്റ്‌ മാത്രം ചെയ്യുന്നതിനാല്‍, ഈ രണ്ട് വരികള്‍ നീക്കം ചെയ്യുന്നു.
04.27 സേവ് ക്ലിക്ക് ചെയ്യുക.
04.30 എക്സിക്യൂട്ട് ചെയ്യാം.
04.31 ടെര്‍മിനലിലേക്ക് തിരിച്ചു വരിക.
04.33 കംപൈല്‍ ചെയ്യാനായി
04.35 gcc space stringinitialize.c space -o space str2 ടൈപ്പ് ചെയ്യുക.
04.44 string.cയുടെ ഔട്ട്‌പുട്ട് ഫയല്‍ “str” നീക്കം ചെയ്യപ്പെടാതെയിരിക്കാന്‍ ഇവിടെ “str2” ഉപയോഗിക്കുന്നു.
04.54 എന്റര്‍ പ്രസ് ചെയ്യുക .
04.56 എക്സിക്യൂട്ട് ചെയ്യാനായി ./str2 ടൈപ്പ് ചെയ്യുക.
05.00 ഔട്ട്‌പുട്ട്, "The string is Spoken-Tutorial" എന്ന് കാണുന്നു.
05.06 നമുക്ക് സംഭവിക്കാനിടയുള്ള ചില സ്വാഭാവികമായ തെറ്റുകള്‍ നോക്കാം.
05.09 പ്രോഗ്രാമിലേക്ക് തിരിച്ച് പോകാം.
05.11 ഇവിടെ stringന്റെ സ്പെല്ലിങ് sting എന്ന് നല്കുന്നു.
05.16 സേവ് ക്ലിക്ക് ചെയ്യുക.
05.18 എക്സിക്യൂട്ട് ചെയ്യട്ടെ.
05.19 ടെര്‍മിനലിലേക്ക് തിരികെ വരുക.
05.21 നേരത്തേതു പോലെ കംപൈല്‍ ചെയ്യുക.
05.23 ഒരു fatal എറര്‍ കാണുന്നു.
05.25 sting.h: no such file or directory
05.28 compilation terminated
05.30 പ്രോഗ്രാമിലേക്ക് തിരികെ വരാം.
05.32 ഇതെന്തന്നാല്‍ sting.h എന്ന ഹെഡര്‍ ഫയല്‍ കണ്ടെത്താന്‍ കംപൈലറിന് കഴിയുന്നില്ല.
05.39 അതിനാല്‍ എറര്‍ തരുന്നു.
05.41 എറര്‍ കണ്ടുപിടിക്കാം.
05.43 ഇവിടെ r ടൈപ്പ് ചെയ്യുക.
05.45 സേവ് കൊടുക്കുക.
05.46 വീണ്ടും എക്സിക്യൂട്ട് ചെയ്യാം.
05.47 ടെര്‍മിനലിലേക്ക് തിരിച്ചു വരിക.
05.50 നേരത്തേതു പോലെ കംപൈലും എക്സിക്യൂട്ടും ചെയ്യുക.
05.54 ഇത് പ്രവർത്തിക്കുന്നു!
05.56 മറ്റൊരു സ്വാഭാവികമായ തെറ്റ് നോക്കാം.
05.59 പ്രോഗ്രാമിലേക്ക് തിരികെ വരുക.
06.02 ഇവിടെ charന് പകരം int കൊടുക്കുന്നു.
06.06 സേവ് ക്ലിക്ക് ചെയ്യുക.
06.07 എന്ത് സംഭവിക്കുന്നുവെന്ന് നോക്കാം.
06.09 ടെര്‍മിനലിലേക്ക് പോകാം.
06.11 prompt വൃത്തിയാക്കാം.
06.15 നേരത്തേത് പോലെ കംപൈല്‍ ചെയ്യുക.
06.17 ഈ എറര്‍ കാണുന്നു.
06.19 Wide character array initialized from non-wide string
06.24 format %s expects argument of type 'char, ' but argument 2 has type 'int'
06.32 പ്രോഗ്രാമിലേക്ക് തിരികെ വരാം.
06.36 ഇതെന്തന്നാല്‍ നമ്മള്‍ stringന്റെ format specifier ആയ  %s ഉപയോഗിച്ചു.
06.42 എന്നിട്ട് integer ഡേറ്റ ടൈപ്പിലൂടെ ഇത് initialize ചെയ്യുന്നു.
06.47 എറര്‍ തിരുത്താം.
06.49 ഇവിടെ char ടൈപ്പ് ചെയ്യുക.
06.51 സേവ് ക്ലിക്ക് ചെയ്യുന്നു.
06.53 എക്സിക്യൂട്ട് ചെയ്യട്ടെ. ടെര്‍മിനലിലേക്ക് തിരിച്ചു വരിക.
06.56 നേരത്തേത് പോലെ കംപൈലും എക്സിക്യൂട്ടും ചെയ്യുക.
07.00 ഇത് പ്രവര്‍ത്തിക്കുന്നു.
07.03 ഇതേ പ്രോഗ്രാം C++ല്‍ എങ്ങനെ എക്സിക്യൂട്ട് ചെയ്യാമെന്ന് നോക്കാം.
07.08 പ്രോഗ്രാമിലേക്ക് തിരിച്ചു വരിക.
07.11 string.c ഫയല്‍ തുറക്കട്ടെ.
07.15 ഇവിടെ കോഡ് എഡിറ്റ്‌ ചെയ്യാം.
07.18 ആദ്യം shift, ctrl, S ഒരുമിച്ച് പ്രസ്‌ ചെയ്യുക.
07.25 ഇപ്പോള്‍ .cpp എക്സ്റ്റന്‍ഷനോടെ ഫയല്‍ സേവ് ചെയ്യാം.
07.29 സേവ് ക്ലിക്ക് ചെയ്യുക.
07.33 ഹെഡര്‍ ഫയല്‍ iostream ആയി മാറ്റുന്നു.
07.38 യൂസിംഗ് സ്റ്റേറ്റ്മെന്റ് ഉള്‍പ്പെടുത്തുക.
07.43 സേവ് ക്ലിക്ക് ചെയ്യുന്നു.
07.47 ഈ ഡിക്ലറേഷന്‍ നീക്കം ചെയ്യാം.
07.50 എന്നിട്ട് ഒരു string variable ഡിക്ലയര്‍ ചെയ്യുന്നു.
07.53 string space strname semicolon ടൈപ്പ് ചെയ്യുക.
07.59 സേവ് ക്ലിക്ക് ചെയ്യുക.
08.02 printf സ്റ്റേറ്റ്മെന്റ് മാറ്റി cout സ്റ്റേറ്റ്മെന്റ് കൊടുക്കുക.
08.07 അടയ്ക്കുന്ന ബ്രാക്കറ്റ് നീക്കം ചെയ്യുക.
08.11 scanf സ്റ്റേറ്റ്മെന്റ് നീക്കം ചെയ്തിട്ട് getline തുറക്കുന്ന ബ്രാക്കറ്റ് അടയ്ക്കുന്ന ബ്രാക്കറ്റ് ബ്രാക്കറ്റിനുള്ളില്‍, (cin, strname) ടൈപ്പ് ചെയ്യുക.
08.24 അവസാനം ഒരു semicolon കൊടുക്കുക.
08.28 വീണ്ടും, printf സ്റ്റേറ്റ്മെന്റിന് പകരം cout statement.
08.36 format specifier, \n എന്നിവ നീക്കം ചെയ്യുക.
08.40 comma നീക്കം ചെയ്യുന്നു.
08.42 രണ്ട് തുറക്കുന്ന angle ബ്രാക്കറ്റുകള്‍ ടൈപ്പ് ചെയ്യുക, ഇവിടെ ബ്രാക്കറ്റ് നീക്കം ചെയ്യുന്നു.
08.49 രണ്ട് തുറക്കുന്ന angle ബ്രാക്കറ്റുകള്‍ ടൈപ്പ് ചെയ്ത്, ഡബിള്‍ quotesനുള്ളില്‍ \n കൊടുക്കുക.
08.54 എന്നിട്ട് സേവ് ചെയ്യുക.
08.58 ഇവിടെ string വേരിയബിള്‍ 'strname' ഡിക്ലയര്‍ ചെയ്യുന്നു.
09.03 C++ല്‍ format specifier ഉപയോഗിക്കാത്തതിനാല്‍ , strname സ്ട്രിംഗ് വേരിയബിള്‍ ആണെന്ന് കംപൈലറിന് മനസിലാകണം.
09.13 ഇന്‍പുട്ടില്‍ നിന്നും characters എക്സ്ട്രാക്റ്റ് ചെയ്യാനായി getline ഉപയോഗിക്കുന്നു.
09.18 എന്നിട്ട് അവയെ string ആയി സ്റ്റോര്‍ ചെയ്യുന്നു.
09.22 പ്രോഗ്രാം എക്സിക്യൂട്ട് ചെയ്യാനായി ടെര്‍മിനലിലേക്ക് തിരിച്ചു വരിക.
09.27 prompt വൃത്തിയാക്കട്ടെ.
09.30 കംപൈല്‍ ചെയ്യാന്‍,
09.32 g++ space string.cpp space -o space str3 ടൈപ്പ് ചെയ്യുക.
09.39 എന്റര്‍ പ്രസ് ചെയ്യുക.
09.41 എക്സിക്യൂട്ട് ചെയ്യാന്‍ ./str3 ടൈപ്പ് ചെയ്ത് എന്റര്‍ കൊടുക്കുക.
09.47 Enter the string എന്ന് കാണുന്നു.
09.50 ഞാന്‍ Talk To A Teacher എന്ന് കൊടുക്കുന്നു.
09.55 എന്റര്‍ പ്രസ്‌ ചെയ്യുക.
09.57 ഔട്ട്‌പുട്ട്
09.59 "The string is Talk To A Teacher " എന്ന് കാണുന്നു.
10.03 ഔട്ട്‌പുട്ട്, C കോഡിന് സമാനമാണെന്ന് കാണാം.
10.07 ഇപ്പോള്‍ നമുക്ക് സ്ലൈഡിലേക്ക് തിരിച്ചു വരാം.
10.10 ചുരുക്കത്തില്‍,
10.11 ഇവിടെ പഠിച്ചത്,
10.13 Strings
10.14 stringന്റെ ഡിക്ലറേഷന്‍.
10.16 ഉദാഹരണം:char strname[30]
10.20 stringന്റെ initialization.
10.21 ഉദാഹരണം: char strname[30] = “Talk To A Teacher”
10.26 ഒരു അസ്സൈൻമെന്റ്
10.28 രണ്ടാമത്തെ ഘടന ഉപയോഗിച്ച് ഒരു string പ്രിന്റ്‌ ചെയ്യാനുള്ള ഒരു പ്രോഗ്രാം എഴുതുക.
10.34 ഇവിടെ ലഭ്യമായ വീഡിയോ കാണുക.
10.37 ഇതു സ്പോകെന്‍ ട്യൂട്ടോറിയല്‍ പ്രൊജക്റ്റിനെ സംഗ്രഹിക്കുന്നു.
10.40 നല്ല ബാന്‍ഡ് വിഡ്ത്ത് ഇല്ലെങ്കില്‍, ഡൌണ്‍ലോഡ് ചെയ്ത് കാണാവുന്നതാണ്.
10.44 സ്പോകെന്‍ ട്യൂട്ടോറിയല്‍ പ്രൊജക്റ്റ്‌ ടീം,
10.46 സ്പോകെന്‍ ട്യൂട്ടോറിയലുകള്‍ ഉപയോഗിച്ച് വര്‍ക്ക് ഷോപ്പുകള്‍ നടത്തുന്നു.
10.49 ഓണ്‍ലൈന്‍ ടെസ്റ്റ്‌ പാസ്സാകുന്നവര്‍ക്ക് സര്‍ട്ടിഫികറ്റുകള്‍ നല്കുന്നു.
10.54 കുടുതല്‍ വിവരങ്ങള്‍ക്കായി, ദയവായി, contact@spoken-tutorial.orgല്‍ ബന്ധപ്പെടുക.
11.01 സ്പോകെന്‍ ട്യൂട്ടോറിയല്‍ പ്രൊജക്റ്റ്‌, ടോക്ക് ടു എ ടീച്ചര്‍ പ്രൊജക്റ്റിന്റെ ഭാഗമാണ്.
11.04 ഇതിനെ പിന്താങ്ങുന്നത് "നാഷണല്‍ മിഷന്‍ ഓണ്‍ എഡ്യൂക്കേഷന്‍ ത്രൂ ICT, MHRD, ഗവന്മെന്റ് ഓഫ് ഇന്ത്യ".
11.12 ഈ മിഷനെ കുറിച്ചുള്ള കുടുതല്‍ വിവരങ്ങള്‍ ഇവിടെ ലഭ്യമാണ്.
11.16 ഈ ട്യൂട്ടോറിയല്‍ വിവര്‍ത്തനം ചെയ്തത് ദേവി സേനന്‍, IIT Bombay.
11.20 ഞങ്ങളോട് സഹകരിച്ചതിന് നന്ദി.

Contributors and Content Editors

Devisenan