OOP @ எழில்?

”எழில்” தமிழ் நிரல் மொழியைப் பற்றிய நமது அறிமுகப் பதிவுகளை பார்த்த நண்பர் ஒருவர் இப்படிக் கேட்டிருந்தார்:

நான் தற்போது OOP (Object Oriented Programming) கற்கும் முயற்சியில் இருக்கிறேன். “எழில்” அதற்கு உதவுமா?”

இது ஓர் அருமையான கேள்வி, சரியானபடி செயல்படுத்தினால் தமிழில் OOP என்பது மிக நல்ல முயற்சியாகவே இருக்கும்.

ஆனால் அதேசமயம், OOP என்பது புதிதாக நிரல் எழுதுகிறவர்கள், கற்றுக்கொள்கிறவர்களுக்கு ஏற்றது அல்ல, அந்த அளவு எளிமையானதும் அல்ல. சில அடிப்படைப் பயிற்சிகள் OOPயில் நேரடியாகத் தொடங்கினாலும், அது பரவலாக ஏற்றுக்கொள்ளப்படவில்லை.

”எழில்” குழுவின் நோக்கம் புதியவர்களைமட்டுமே மையமாகக் கொண்டிருப்பதால், தற்போது இதற்கான வாய்ப்பு இல்லை. ”எழில்” நிரல் மொழியின் அடிப்படை வசதிகள் அனைத்தும் சிறப்பாக அமைந்தபின்னர் நிச்சயமாக இதனைச் செய்யலாம்.

அதுவரை, (ஆங்கில வழியில்) OOP கற்றுக்கொள்ள விரும்புவோருக்கு நாங்கள் சிபாரிசு செய்பவை:

  • Standard Python language tutorial @ http://docs.python.org/2/tutorial/
  • Book: “A Byte of Python” (இது ஓர் இலவச நூல், ஆர்வமுள்ளவர்கள் அனுமதி பெற்று இதனைத் தமிழில் மொழிபெயர்க்கலாமே!)

இவை உங்களுக்குப் பயன்படும் என நம்புகிறோம். நன்றி!

உங்கள் கருத்துகள்: 2

சென்ற பாகத்தில் “எழில்” மொழியின் முக்கியச் சொற்களைப்பற்றிய மக்களின் வரவேற்பு சதவிகிதத்தைப் பார்த்தோம். இப்போது, அவற்றுக்காகப் பரிந்துரைக்கப்பட்டுள்ள மாற்றுச் சொற்கள் சிலவற்றைப் பார்க்கலாம்.

நாம் ஏற்கெனவே பார்த்தபடி, எல்லாரும் ஒரேமாதிரியான மாற்றுச் சொற்களைத் தரவில்லை. வந்தவற்றுள் சிறப்பாக இருந்த சிலவற்றைமட்டும் இங்கே குறிப்பிடுகிறோம். இவை “எழில்”க்கோ, வருங்காலத்தில் உருவாகக்கூடிய மற்ற தமிழ் நிரல் மொழிகளுக்கோ பயன்படக்கூடும் என்பது எங்கள் எண்ணம்.

முதலில் Print. இதற்கு இப்போது உள்ள சொல் ‘பதிப்பி’. பரிந்துரைக்கப்பட்டுள்ள பிரபலமான மாற்றுச் சொற்கள்:

  • அச்சிடு
  • அச்சடி
  • வெளியிடு

அடுத்து, Return, இதற்கு இப்போது உள்ள சொல் ‘பின்கொடு’. பரிந்துரைக்கப்பட்டுள்ள பிரபலமான மாற்றுச் சொற்கள்:

  • திருப்பு
  • பதில்கொடு
  • கொடு

மூன்றாவதாக, If / ElseIf / Else. இவற்றுக்கு இப்போது உள்ள சொற்கள், ‘ஆனால்’, ‘இல்லைஆனால்’ மற்றும் ‘இல்லை’. பரிந்துரைக்கப்பட்டுள்ள மாற்றுச் சொற்கள்:

  • ஒருவேளை, அல்லது
  • என்றால் / எனில்
  • இருந்தால், இல்லாவிடில், இல்லையென்றால்

நான்காவதாக, For. இதற்கு இப்போது உள்ள சொல் ‘ஆக’. பரிந்துரைக்கப்பட்டுள்ள மாற்றுச் சொற்கள்:

  • ஒவ்வொரு
  • இவ்வாறாக
  • முதல்… வரை

ஐந்தாவதாக, Do. இதற்கு இப்போது உள்ள சொல் ‘செய்’. இதற்கு மாற்றாக எந்தக் குறிப்பிடத்தக்க சொல்லும் பரிந்துரைக்கப்படவில்லை.

ஆறாவதாக, While. இதற்கு இப்போது உள்ள சொல் ‘வரை’. பரிந்துரைக்கப்பட்டுள்ள மாற்றுச் சொற்கள்:

  • அதுவரை
  • போது
  • அப்பொழுது / அதேவேளை

ஏழாவதாக, Until. இதற்கு இப்போது உள்ள சொல் ‘முடியேனில்’. பரிந்துரைக்கப்பட்டுள்ள மாற்றுச் சொற்கள்:

  • அதுவரை / அதுகாறும் / இதுவரை / இதுகாறும்
  • வரை
  • முடியும்வரை
  • மட்டும்

எட்டாவதாக, Function. இதற்கு இப்போது உள்ள சொல் ‘நிரல்பாகம்’. பரிந்துரைக்கப்பட்டுள்ள மாற்றுச் சொற்கள்:

  • நிரல்துணுக்கு
  • செயல்பாடு
  • செயல்கொத்து / செயற்கூறு / செயல்நிரல் / பணித்துண்டு
  • வேலை

ஒன்பதாவதாக, End. இதற்கு இப்போது உள்ள சொல் ‘முடி’. பரிந்துரைக்கப்பட்டுள்ள மாற்றுச் சொற்கள்:

  • நிறை
  • சுபம்
  • நிறுத்துக

நிறைவாக, Continue, Break, Select, Case, Otherwise. இவற்றுக்கு இப்போது உள்ள சொற்கள், ‘தொடர்’, ‘நிறுத்து’, ‘தேர்ந்தெடு’, ‘தேர்வு’, ‘ஏதேனில்’. பரிந்துரைக்கப்பட்டுள்ள மாற்றுச் சொற்கள்:

  • தொடர்க
  • நிறுத்துக / இடைநிறுத்து / தடை செய் / வெட்டு
  • தேர்ந்தெடுக்க
  • தெரிவு
  • இல்லையெனில் / வேறாயின் / மாறாக

இந்த மாற்றுச் சொற்கள் அனைத்தும் சுவாரஸ்யமானவைதான். ஆனால் என்னுடைய தனிப்பட்ட கணிப்பில் இவற்றில் எவையும் உறுதியாக மாற்றியே தீரவேண்டும் என்கிற அளவுக்கு மிக வலுவான(compelling)வையாக இல்லை.

என்னுடைய கருத்து இருக்கட்டும், ”எழில்” மொழியை உருவாக்கியுள்ள திரு. முத்தையா அண்ணாமலைதான் தற்போது புழக்கத்தில் உள்ள “எழில்” சொற்களைத் தேர்வு செய்தவர். அவர் இந்த மாற்றுச் சொற்களைப்பற்றி என்ன நினைக்கிறார்?

(தொடரும்)

உங்கள் கருத்துகள்: 1

எழில் மொழியில் பயன்படும் முக்கியமான சொற்களைப்பற்றிய உங்கள் கருத்துகளைக் கேட்டிருந்தோம். இந்தக் கணக்கெடுப்பில் ஆர்வத்துடன் பங்கேற்ற அனைவருக்கும் எங்கள் நன்றிகள்.

இந்த வாக்குகளின் அடிப்படையில் பார்க்கிறபோது, சில விஷயங்கள் தெளிவாகப் புரிகின்றன:

  • தற்போதுள்ள “எழில்” மொழிச் சொற்கள் பெரும்பாலும் சரியாகவே அமைந்திருப்பதாக மக்கள் கருதுகிறார்கள்
  • நாம் தந்திருந்த பதினாறு சொற்களில், இரண்டைத் தவிர மீதமுள்ள அனைத்தும் பெருவாரியான மக்களால் ஏற்றுக்கொள்ளப்பட்டிருந்தன, மீதமுள்ள அந்த இரண்டிலும்கூட, ’சரி’க்கும் ‘வேண்டாம்’க்கும் இடையே ஒரு கை விரல்களால் எண்ணும் அளவிலான வாக்கு வித்தியாசம்தான்
  • சில சொற்களுக்கு மாற்றுகள் பரிந்துரைக்கப்பட்டுள்ளன. ஆனால் அவை எல்லாம் ஒருமித்த கருத்துகளாக அமையவில்லை
  • தமிழ் வார்த்தை வளம் மிகுந்த ஒரு மொழி. இதற்குப் பதில் இன்னொன்று என்று பல சொற்களை நாம் சுட்டிக்காட்டமுடியும். ஆகவே, இதில் ஆச்சர்யம் ஏதும் இல்லை, இது தவறு, அது சரி என்பதற்கு வலுவான ஒரு காரணம் உள்ளதா என்பதைதான் கவனிக்கவேண்டும்

அதற்குமுன்னால், நாம் மக்கள் என்ன நினைக்கிறார்கள் என்று பார்த்துவிடலாம். அதன்பிறகு, இதுபற்றி “எழில்” மொழியை உருவாக்கியுள்ள திரு. முத்தையா அண்ணாமலை அவர்களின் கருத்துகளைக் கேட்கலாம்.

தரப்பட்ட பதினாறு சொற்களில், மிக அதிக எண்ணிக்கையில் மக்களுடைய ஒப்புதலைப் பெற்ற சொற்கள் இவை:

  • செய் : Do  (96%)
  • தொடர் : Continue (90%)
  • நிறுத்து : Break (90%)
  • தேர்ந்தெடு : Select (90%)
  • தேர்வு : Case (90%)
  • ஏதெனில் : Otherwise (90%)
  • முடி : End (84%)
  • ஆக : For (79%)
  • வரை : While (79%)
  • ஆனால் : If (71%)
  • இல்லைஆனால் : Else If (71%)
  • இல்லை : Else (71%)
  • பதிப்பி : Print (66%)
  • நிரல்பாகம் : Function (60%)
  • பின்கொடு : Return (48%)
  • முடியேனில் : Until (45%)

அடுத்து, ”எழில்” மொழியில் ஏற்கெனவே பயன்படுத்தப்பட்டுவரும் இந்தச் சொற்களுக்கு மாற்றாக மக்கள் சொன்ன சுவையான யோசனைகளைத் தொகுத்துப் பார்க்கலாம்.

(தொடரும்)

Excited to announce Rich text editor powered #Ezhil website (அழகான #எழில் நிரல் திருத்தி)!

Excited to announce Rich text editor powered #Ezhil website (அழகான #எழில் நிரல் திருத்தி)!

Today I’m excited to announce the new syntax highlighting in Ezhil web editor – for easy learning, and teaching computer programming in Tamil.

இன்று நான் உற்சாகமாக, புதிய அழகான #எழில் நிரல் திருத்தி அறிவிக்கிறேன். இது தமிழ் கணினி நிரலாக்க எளிதாக கற்றல், மற்றும் கற்பித்தல், எளிதில் செய்ய முடியும்

கற்க உகந்த மொழி

எந்த மொழியிலும் கணினி நிரல்களை எழுதுவதற்குச் சில அடிப்படைச் சொற்களை (keywords) நன்கு கற்பது அவசியம். ஆரம்ப நிலையில் அவை சுமார் பத்து முதல் இருபது சொற்களாகதான் இருக்கும்.

இந்தப் பின்னணியில் பார்க்கும்போது, தமிழ்மட்டுமே அறிந்த ஒரு மாணவர் இவற்றுள் எதை விரும்புவார்?

  • ஆங்கிலத்தில் ஏற்கெனவே நன்கு பரவலாகியுள்ள நிரல் மொழியைத் தமிழில் கற்றுக்கொண்டு, ஆங்கிலத்தில் நிரல்கள் எழுதுவது, இதற்காக அவர் ஆரம்பத்தில் சில ஆங்கிலச் சொற்களை மனப்பாடம்கூடச் செய்யவேண்டியிருக்கலாம், ஆனால் பின்னர் பிற நிரல் மொழிகளுக்குச் செல்லும்போது இந்தப் பயிற்சி அவருக்கு உதவும்
  • ”எழில்” போன்ற தமிழ் நிரல் மொழி ஒன்றைக் கற்றுக்கொண்டு தமிழிலேயே நிரல்கள் எழுதுவது, இதில் அவர் அந்த மொழியை நன்கு உணர்ந்து பின்பற்றுவார் என நம்பலாம். பின்னர் அவர் பிற (ஆங்கில) நிரல் மொழிகளுக்குச் செல்லும்போது ஒரு மாற்றத்துக்குத் தயாராகவேண்டியிருக்கும் (மொழிபெயர்ப்புபோல)

இவ்விரு மொழிகளும் அறிந்தவர்கள் இதுபற்றி என்ன நினைக்கிறீர்கள்? நம்முடைய முயற்சிகள் எந்தத் திசையில் இருக்கவேண்டும்?

வாங்க, நிரல் எழுதுவோம்!

 “எழில்” நிரல் மொழி நாம் நன்கு அறிந்த தமிழிலேயே நிரல்கள் எழுத வழிவகை செய்கிறது என்று பார்த்தோம். ஆனால், நம்முடைய முதல் நிரலை எப்படி எழுதுவது? நேரடியாகக் கணினியில் நிரல் எழுத உட்கார்ந்துவிடலாமா?

 நாம் ஒரு வீடு கட்டுகிறோம் என்று வைத்துக்கொள்வோம். முதல் வேலையாகச் செங்கலும் சிமெண்டுமாக நிலத்தில் இறங்கிவிடுகிறோமா? அதற்கு முன்னால் பல வேலைகள் உள்ளன:

  • நிலத்தைத் தீர்மானிப்பது
  • அங்கே என்ன கட்டப்போகிறோம் (வீடா, அலுவலகமா, கடையா, வேறு ஏதாவதா) என்று தீர்மானிப்பது
  • அதற்குத் திட்டம் போடுவது (Blueprint)
  • எங்கே சுவர்கள், எங்கே தூண்கள் என்று தீர்மானித்து, திட்டத்துக்கேற்ப அஸ்திவாரம் போடுவது
  • அதன்மீது வீட்டை எழுப்புவது
  • உள்ளே நுழைந்து எல்லாம் திருப்தியாக உள்ளதா என்று பார்ப்பது
  • நண்பர்கள், உறவினர்களுக்குச் சொல்லுவது

இதே ஏழு நிலைகள், கணினி நிரல் எழுதுவதிலும் உண்டு:

  • நிலத்தைத் தீர்மானிப்பதுபோல், இங்கே களத்தை, கணினி மொழியைத் தீர்மானிக்கிறோம்
  • எதைக் கட்டப்போகிறோம் என்று தீர்மானிப்பதுபோல், இங்கே என்ன நிரல் எழுதுவது எனத் தீர்மானிக்கிறோம்
  • திட்டம் போடுவதுபோல், இங்கே Algorithm எனப்படும் நிரல் வழிமுறையை எழுதுகிறோம்
  • அஸ்திவாரம் போடுவதுபோல், இங்கே pseudocode எனப்படும் மாதிரி நிரலை எழுதுகிறோம்
  • வீட்டை எழுப்புவதுபோல், இங்கே முழுமையான நிரலை எழுதுகிறோம்
  • உள்ளே நுழைந்து பார்ப்பதுபோல், இங்கே நாம் எழுதிய நிரலைப் பரிசோதிக்கிறோம் (Testing)
  • நண்பர்கள், உறவினர்களுக்குச் சொல்லுவதுபோல், இங்கே நம்முடைய நிரலை நிரந்தரமாகச் சேமித்துவைத்து வேண்டும்போதெல்லாம் பயன்படுத்துகிறோம்

இப்படி மொத்தமாகச் சொன்னால் குழப்பமாகதான் இருக்கும். அதற்குப் பதிலாக, இந்த ஏழு நிலைகளைப் பின்பற்றி, ஒரு மாதிரி நிரல் எழுதிப்பார்ப்போமா?

1. களத்தை, கணினி மொழியைத் தீர்மானிப்பது

இதில் நமக்குக் குழப்பமே வேண்டியதில்லை. “எழில்” மொழியைதான் பின்பற்றப்போகிறோம் என்று நாம் ஏற்கெனவே தீர்மானித்துவிட்டோம்.

ஆனால், அதை எங்கே எழுதுவது?

நம்முடைய விண்டோஸ் அல்லது லைனக்ஸ் வகைக் கணினியில் “எழில்” மொழியில் நிரல் எழுதலாம். ஆனால் அதற்கு நீங்கள் “எழில்” மென்பொருளை அந்தக் கணினியில் நிறுவியிருக்கவேண்டும். ஒருவேளை நீங்கள் இன்னும் அதனைச் செய்யவில்லை என்றால், http://www.ezhillang.orgக்கு வாருங்கள். அங்கே நீங்கள் “எழில்” மென்பொருளைத் தரவிறக்கம் செய்யலாம். அல்லது, நேரடியாக அங்கேயே நிரல் எழுதிச் சரி பார்க்கலாம்.

புதிதாக நிரல் எழுதுவோர் பயிற்சிக்காக http://www.ezhillang.orgலேயே நிரல் எழுதுவது நல்லது. அதில் நல்ல அனுபவம் ஏற்பட்டபிறகு நம் கணினியில் “எழில்”ஐ நிறுவிக்கொள்ளலாம்.

2. என்ன நிரல் எழுதுவது எனத் தீர்மானிப்பது

நீங்கள் உங்கள் விருப்பம்போல் எதற்கும் நிரல் எழுதலாம். இங்கே ஓர் எளிய உதாரணமாக, இரு எண்களுடைய சராசரியைக் கண்டறிவதற்கு நிரல் எழுதுவோம்.

ஆங்கிலத்தில் இதனை Program Objective என்பார்கள். அதாவது, நாம் எழுதப்போகும் நிரலின் நோக்கம் என்ன? அது எப்படிச் செயல்படவேண்டும்? இதைத் தெளிவாகத் தெரிந்துகொண்டால்தான், நாளைக்கே அதில் பிழைகள் ஏதும் இருந்தால் கவனித்துச் சரிப்படுத்தமுடியும்.

ஆக, நம்முடைய நிரலின் நோக்கம், இரண்டு எண்களின் சராசரியைக் கண்டுபிடிப்பது.

3. Algorithm / நிரல் வழிமுறை

நிரல் வழிமுறை என்பது, இந்த நோக்கத்தை நாம் எப்படி நிறைவேற்றப்போகிறோம் என்பதற்கான திட்டமிடல். அதாவது, படிப்படியாகச் சிந்திப்பது.

ஆங்கிலத்தில் Algorithm என்று அழைக்கப்படும் நிரல் வழிமுறையை எழுதுவதற்குப் பல வழிகள் உண்டு, அழகழகாக பொம்மை போட்டு எழுதுவதற்கு நிறைய toolsகூட உண்டு. அதையெல்லாம் நாம் பின்னால் கற்றுக்கொள்வோம். இப்போதைக்கு, ஒரு காகிதத்தில் 1, 2, 3 என்று எண் போட்டு எழுதினால் போதுமானது.

நம் நோக்கம், சராசரி கண்டுபிடிப்பது. அதற்கு உள்ளீடு (Input) என்ன?

இரண்டு எண்கள். நாம் அவற்றை எண்1, எண்2 என அழைப்போம்.

இந்த நிரலின் வெளியீடு (Output or Result) என்ன?

நாம் தந்த இரு எண்களின் சராசரிதான் அது. இந்த எண்ணை நாம் எண்3 என்று அழைப்போம்.

எண்1, எண்2 ஆகியவற்றை வைத்துக்கொண்டு நாம் எப்படி எண்3ஐக் கண்டறிவது? இதற்கான கணிதச் சூத்திரம் என்ன?

இரு எண்களின் சராசரி என்பது, அவற்றைக் கூட்டி இரண்டால் வகுப்பதுதான். அதாவது:

எண்3 = (எண்1 + எண்2) / 2

அவ்வளவுதான். நாம் நமது நிரல் வழிமுறையை எழுதிவிட்டோம். இதோ இப்படி:

உள்ளீடு: எண்1, எண்2

1. எண்1 என்ற எண்ணைப் பெறுக

2. எண்2 என்ற எண்ணைப் பெறுக

3. இவ்விரு எண்களையும் கூட்டுக

4. வந்த கூட்டுத் தொகையை இரண்டால் வகுக்க

5. கிடைத்த விடையை எண்3 எனச் சேமிக்க

6. திரையில் எண்3 என்ற விடையை அச்சிடுக

வெளியீடு: எண்3

இது ஒரு நேரடியான நிரல் வழிமுறை. அதாவது, ஒன்றுக்குப் பிறகு இரண்டு, அதன்பின் மூன்று என வரிசையில் செல்வது. சில நிரல் வழிமுறைகள் அவ்வாறின்றி குதித்துச் செல்லும், திரும்பிச் செல்லும் (உதாரணமாக, 1, 2, 10 அல்லது, 1, 2, 3, 4, 3, 4, 3, 4, 5 என்பதுபோல).

இப்படிப்பட்ட சிக்கலான நிரல் வழிமுறைகளை நாம் பின்னர் தெரிந்துகொள்வோம். இப்போதைக்கு நமது முதல் கணினி நிரலை எழுத இந்த எளிய வழிமுறை போதுமானது.

4. மாதிரி நிரல் எழுதுவது

ஒரு முக்கியமான கடிதத்தை எழுதுவதற்குமுன்னால் மனத்தில் அதை எழுதிப் பார்க்கிறோம், அல்லது ஒரு துண்டுக் காகிதத்தில் எழுதுகிறோம் அல்லவா? அதுபோல “எழில்” மொழியில் இந்த நிரலை எழுதுவதற்குமுன்னால், மாதிரி நிரல் ஒன்றை எழுதிப் பார்த்துவிடுவோம்.

இங்கே நாம் “எழில்” மொழியின் குறிச்சொற்களைச் சரியாகப் பயன்படுத்தவேண்டும் என்று அவசியம் இல்லை. சாதாரணத் தமிழில் எழுதினாலே போதும். இதோ இப்படி:

எண்1 பெறுக

எண்2 பெறுக

கூட்டுத்தொகை = எண்1 + எண்2

எண்3 = கூட்டுத்தொகை / 2

எண்3 அச்சிடுக

இது ஒரு மாதிரி நிரல்தான். இதனை நாம் “எழில்” இணையத்தளத்தில் வைத்து இயக்கினால் விடை கிடைக்காது, பிழை(Error)தான் கிடைக்கும்.

அதனால் தவறில்லை. நம் நிரல் எப்படி இருக்கவேண்டும் என்று புரிந்துகொண்டுவிட்டோம் அல்லவா? அதுதான் நம் நோக்கம்.

5. முழுமையான நிரல் எழுதுவது

இதுதான் நம்முடைய ஏழு படிநிலைகளில் மிக முக்கியமானது. நம்மிடம் உள்ள மாதிரி நிரலை எடுத்துக்கொண்டு, ஒவ்வொரு வரியாக “எழில்” மொழிக்கு ஏற்றபடி அதனை மாற்றப்போகிறோம்.

இதற்குத் தேவையான உதவிக் குறிப்புகள், குறிச்சொற்கள், மாதிரி நிரல்கள் என அனைத்தும் “எழில்” இணையத் தளத்தில் கிடைக்கின்றன. அவற்றின் துணையோடு படிப்படியாக நாம் இதில் முன்னேறவேண்டும். ஒவ்வொரு வரியையும் சரியான “எழில்” மொழிக் கட்டளைகளாக மாற்றவேண்டும்.

உதாரணமாக, “எண்1 பெறுக” என்ற வரி இப்படி மாறும்:

எண்1 = 10

அடுத்து, “எண்2 பெறுக” என்ற வரி, இதுவும் எளிமையானதுதான்:

எண்2 = 6

மூன்றாவதாக, கூட்டுத்தொகை கணக்கிடுவது. இந்த வரி மாதிரி நிரலில் உள்ளதுபோலவே “எழில்” மொழியிலும் இயங்கும்:

கூட்டுத்தொகை = எண்1 + எண்2

நான்காவது வரியும் இதேபோல்தான், மாதிரி நிரலில் உள்ளது அப்படியே இங்கேயும் வரும்:

எண்3 = கூட்டுத்தொகை / 2

நிறைவாக, விடையை அச்சிடும் ஐந்தாவது வரி இப்படி மாறும்:

பதிப்பி “நீங்கள் தந்த எண்களின் சராசரி: “, எண்3

அவ்வளவுதான்! வாழ்த்துகள்! நீங்கள் உங்களது முதலாவது “எழில்” நிரலை எழுதிவிட்டீர்கள்:

எண்1 = 10

எண்2 = 6

கூட்டுத்தொகை = எண்1 + எண்2

எண்3 = கூட்டுத்தொகை / 2

பதிப்பி “நீங்கள் தந்த எண்களின் சராசரி: “, எண்3

6. நிரலைப் பரிசோதிப்பது

நாம் நிரல் எழுதிவிட்டோம். ஆனால் அது சரியாக இயங்குகிறதா என்று பார்க்கவேண்டுமே. இதற்கு நாம் “எழில்” மென்பொருளைப் பயன்படுத்தலாம், அல்லது, “எழில்” இணையத் தளத்துக்குச் செல்லலாம். இது நமது முதல் நிரல் என்பதால், அதனை நேரடியாக இணையத் தளத்தில் இயக்கிப் பார்ப்போம்.

உங்கள் இணைய உலாவி(Browser)ஐத் திறந்து http://ezhillang.org என்ற முகவரிக்குச் செல்லுங்கள். அங்கே “எழில் நிரல் எழுத Click Here” என்ற இணைப்பு காணப்படும். அதனை க்ளிக் செய்யுங்கள்.

இப்போது, மேலே நாம் காகிதத்தில் எழுதிய நிரலை அங்கே தட்டச்சு செய்யவேண்டும். உங்களுக்குத் தமிழ் தட்டச்சு செய்வது சிரமம் என்றால், அங்கே இதற்காகத் தரப்பட்டுள்ள விசேஷப் பொத்தான்களையோ தட்டச்சு உதவி நிரலையோ பயன்படுத்துங்கள்.

அடுத்து “நிரலை இயக்குங்கள்” என்ற பொத்தானை அழுத்துங்கள். இந்த விடை திரையில் தோன்றும்:

நீங்கள் தந்த எண்களின் சராசரி: , 8

வாழ்த்துகள்! உங்கள் நிரல் வெற்றிகரமாக இயங்குகிறது.

ஏதேனும் பிழைகள் இருந்தால், பிரச்னையில்லை, பின்னே சென்று அவற்றைச் சரி செய்து விடையைக் கண்டறியும்வரை நிறுத்தாதீர்கள்.

10, 6 என்ற எண்களுக்குப் பதில், வேறு சில எண்களை இட்டும் நீங்கள் பார்க்கலாம். சராசரி எண் எப்போதும் சரியாக வரவேண்டும்.

7. நிரலைச் சேமித்துவைப்பது

ஒருமுறை நிரல் எழுதியபிறகு, அதனை நாம் திரும்பத் திரும்பப் பலமுறை இயக்கவேண்டியிருக்கலாம். இதற்காக, நாம் அதனைக் கோப்பாகச் சேமித்துவைப்பது அவசியம்.

“எழில்” மொழியில் எழுதப்படும் நிரல்கள் அனைத்தும் “.n” என்ற நீட்சியுடன் சேமிக்கப்படவேண்டும். உதாரணமாக, இது சராசரி குறித்த நிரல் என்பதால் இதனை “average.n” என்று சேமிக்கலாம்.

இதற்கு நீங்கள் உங்கள் கணினியில் உள்ள notepad போன்ற ஒரு text editorஐத் திறக்கவேண்டும். அதற்குள் உங்கள் நிரலைத் தட்டச்சு செய்யலாம், அல்லது மேலே நாம் “எழில்” இணையத் தளத்தில் தட்டச்சு செய்ததைப் பிரதியெடுத்து ஒட்டலாம்.

பின்னர், அதனைச் சேமிக்கும்போது, இந்த விவரங்களைத் தரவேண்டும்:

  • பெயர்: average.n
  • சேமிக்கும் இடம்: உங்கள் விருப்பப்படி
  • Encoding: UTF-8

இதுபோல் நீங்கள் எத்துணை “.n” கோப்புகளை வேண்டுமானாலும் சேமிக்கலாம். பின்னர் வேண்டியபோது அவற்றை எடுத்துப் பயன்படுத்தலாம்.

பயிற்சி:

இதுவரை நாம் பார்த்த அதே ஏழு படிநிலைகளைப் பின்பற்றி, இந்த வகைகளில் நிரல்கள் எழுதிப் பாருங்கள்:

  • ஓர் எண்ணின் வர்க்கத்தைக் கண்டறிதல்
  • ஓர் எழுத்துச் சரத்தில் எத்தனை எழுத்துகள் உள்ளன என்று கண்டறிதல்
  • தரப்படும் மூன்று எண்களில் மிகச் சிறியது எது என்று கண்டறிதல்

இவ்வகை எளிய நிரல்களை எழுதி நன்கு பழகியபிறகு, நீங்கள் இன்னும் சிக்கலான நிரல்களை எழுதத் தொடங்கலாம். அதற்கான உதவிக் குறிப்புகள் அனைத்தையும் “எழில்” இணையத் தளமே உங்களுக்கு வழங்குகிறது.

தொடர்ந்து எழுதுங்கள். வெற்றிக்கு வாழ்த்துகள்!

என். சொக்கன்

ஹானொய் இன் கோபுரம் (Tower of Hanoi)

ஹனோய் கோபுரம் அறிமுக கணினி அறிவியலில் ஒரு சிறந்த பிரச்சனை. (Tower of Hanoi is a classic introductory computer science problem) see: http://en.wikipedia.org /wiki/Tower_of_Hanoi

பிரச்சனை நோக்கம், பின்வரும் நிலைமைகளின் கீழ், அச்சு # 3 மது # 1, முதல் வட்டுகள் அனைத்து நகர்த்த உள்ளது

R1: ஒரு சிறிய வட்டு பெரிய வட்டு மேல் உட்கார முடியாது
R2: நீங்கள் தற்காலிக அச்சு இரண்டு அச்சு ஏதாவது பயன்படுத்தலாம்
R3: நீங்கள் செய்ய முடியும் நகர்வுகள் எண்ணிக்கை இல்லை

Goal of the problem is to move all of disks from peg #1, to peg #3, under the following conditions,

  1. R1: Only a smaller disk can sit on top of the larger disk
  2. R2: You may use any of two pegs as temporary store
  3. R3: There is no limit on number of moves you can make
Tower of Hanoi (Ref: http://en.wikipedia.org/wiki/Tower_of_Hanoi)
Tower of Hanoi
(Ref: http://en.wikipedia.org/wiki/Tower_of_Hanoi)

How can you solve this problem ?

  1.  Let us reduced the size of the problem to 1 disk on the peg #1.
  2. We can make a drawing like [1,0,0].
  3. We can simply move the disk 1 from peg #1 to peg #3, and we have completed the problem!
  4. That was easy. [0,0,1].
  1. For 2 disks how do you solve it?
  2. We initially have [1 2, 0, 0]. we want to get to [0,0,1 2]
  3. By moving smaller disk 1 from peg #1, to peg #2, we have [2, 1, 0].
  4. Now your situation is same as problem with 1-disk on peg #1, and 1-disk on peg #2 which we will ignore temporarily.
  5. Next we can move either of disks from peg #1 or peg #2 to peg #3. However the rule, R1, requires us to move the peg #1 disk as it is the larger disk and it should go at bottom.
  6. Now your configuration is like, [0,1,2]
  7. Clearly the final step is to move disk #1 from peg #2 to peg #3, on top of the existing disk #2. Now your configuration is [0,0,1 2]. Solved!

So what does the general solution look like, for n-disks? Well the problem has a dynamic-programming structure, where solving smaller problems, inductively, leads to solution of the larger problem.

  1. Here, you need to move all n-1 smaller disks from peg #1 to peg #2,  and to do that, you will use peg #3 as temporary.
  2. Once you have achieved this, you have to move disk-n from peg #1 to peg #3.
  3. Now move (1,2, … n-1) disks from peg #2 to peg #3 using the peg #1 as intermediate.

This is a recursive solution and harder to visualize at first reading, but you will eventually get the hang of it.

Move 1,2,3 disks from peg #1 to peg #2, with peg #3 as intermediate. Move disk 4 from peg #1 to peg #4. Then move all disks from peg #2 to peg #3 using peg #1 as intermediate.
Move 1,2,3 disks from peg #1 to peg #2, with peg #3 as intermediate. Move disk 4 from peg #1 to peg #4. Then move all disks from peg #2 to peg #3 using peg #1 as intermediate.

The follow program describes the Ezhil program solution to Tower of Hanoi problem,

# (C) 2013 Ezhil Language Project
# Tower of Hanoi – recursive solution

நிரல்பாகம் ஹோனாய்(வட்டுகள், முதல்அச்சு, இறுதிஅச்சு,வட்டு)

@(வட்டுகள் == 1 ) ஆனால்
பதிப்பி  “வட்டு ” + str(வட்டு) + “ஐ \t  (” + str(முதல்அச்சு) + ”  —> ” +  str(இறுதிஅச்சு)+ “) அச்சிற்கு நகர்த்துக.”
இல்லை

@( [“இ”, “அ”,  “ஆ”]  இல் அச்சு ) ஒவ்வொன்றாக
@( (முதல்அச்சு != அச்சு)  && (இறுதிஅச்சு  != அச்சு) ) ஆனால்
நடு = அச்சு
முடி

முடி

# solve problem for n-1 again between src and temp pegs                      ஹோனாய்(வட்டுகள்-1, முதல்அச்சு,நடு,வட்டுகள்-1)

# move largest disk from src to destination
ஹோனாய்(1, முதல்அச்சு, இறுதிஅச்சு,வட்டுகள்)

# solve problem for n-1 again between different pegs
ஹோனாய்(வட்டுகள்-1, நடு, இறுதிஅச்சு,வட்டுகள்-1)
முடி
முடி

ஹோனாய்(4,”அ”,”ஆ”,0)

Try this program online, at, ezhillang.org Alternative solution by @tshrinivasan can be found towers_of_hanoi.n

Solution is illustrated in Fig. 2, with following output,

வட்டு 1ஐ       (அ  —> இ) அச்சிற்கு நகர்த்துக.
வட்டு 2ஐ       (அ  —> ஆ) அச்சிற்கு நகர்த்துக.
வட்டு 1ஐ       (இ  —> ஆ) அச்சிற்கு நகர்த்துக.
வட்டு 3ஐ       (அ  —> இ) அச்சிற்கு நகர்த்துக.
வட்டு 1ஐ       (ஆ  —> அ) அச்சிற்கு நகர்த்துக.
வட்டு 2ஐ       (ஆ  —> இ) அச்சிற்கு நகர்த்துக.
வட்டு 1ஐ       (அ  —> இ) அச்சிற்கு நகர்த்துக.
வட்டு 4ஐ       (அ  —> ஆ) அச்சிற்கு நகர்த்துக.
வட்டு 1ஐ       (இ  —> ஆ) அச்சிற்கு நகர்த்துக.
வட்டு 2ஐ       (இ  —> அ) அச்சிற்கு நகர்த்துக.
வட்டு 1ஐ       (ஆ  —> அ) அச்சிற்கு நகர்த்துக.
வட்டு 3ஐ       (இ  —> ஆ) அச்சிற்கு நகர்த்துக.
வட்டு 1ஐ       (அ  —> இ) அச்சிற்கு நகர்த்துக.
வட்டு 2ஐ       (அ  —> ஆ) அச்சிற்கு நகர்த்துக.
வட்டு 1ஐ       (இ  —> ஆ) அச்சிற்கு நகர்த்துக.

I hope you had fun!