அலகு I
பாடம் 4
நெறிமுறையின் யுக்திகள்
கற்றலின் நோக்கங்கள்
இந்தப் பாடப்பகுதியைக் கற்றபின் மாணவர்கள் அறிந்துக் கொள்வது,
•
நெறிமுறையின் அடிப்படை மற்றும் தொழில்நுட்ப தொலைநோக்குப் பற்றி அறிதல்.
•
நெறிமுறையின் செயல்திறன், நேரம் மற்றும் இடசிக்கல் ஆகியவற்றைப் பற்றிப் புரிந்து கொள்ளுதல்.
•
தேட மற்றும் வரிசைப்படுத்துவதற்கான நெறிமுறைகளை உருவாக்குதல் மற்றும் ஆய்வு செய்தல்.
•
நெறிமுறை அணுகுமுறை மூலம் மாறும் நிரலாக்கத்தைக் கற்றல்.
நிரல் நெறிமுறையின் யுக்திகள் - ஓர் அறிமுகம்
ஒரு குறிப்பிட்ட செயலை நிறைவேற்றுவதற்கான வரையறுக்கப்பட்ட கட்டளைகளின்
தொகுப்பு நெறிமுறையாகும். கொடுக்கப்பட்ட சிக்கலைத் தீர்க்கும் படிநிலை உடைய செய்முறை
ஆகும். நெறிமுறையை எந்தவொரு பொருத்தமான நிரலாக்க மொழியிலும் செயல்படுத்த முடியும்.
நிரல் நெறிமுறையில் உள்ளீடு, வெளியீடு இருக்க வேண்டும். மேலும்
பின்வரும் பண்புகளையும் பூர்த்தி செய்ய வேண்டும். வரையறுக்கும் தன்மை, உண்மை தன்மை
மற்றும் செயல்திறத் தன்மை ஆகியவை தரவு கட்டமைப்புகள் மூலம் தரவு நிர்வகிக்கப்படுகிறது
மற்றும் திறமையாக கையாளப்படுகிறது. இத்தகைய தரவு கட்டமைப்புகளிலிருந்து தரவைச் சேமித்து,
கையாளவும் மற்றும் மீட்டெடுக்கவும் நெறிமுறைகளை உருவாக்கலாம். தரவு கட்டமைப்புக்கு
எடுத்துக்காட்டு: அணிகள், கட்டுருக்கள், List, tuples, dictionary இன்னும் பிற நிரல்
நெறிமுறையைப் பயன்படுத்தி திறமையாக குறிக்கக்கூடிய சில முக்கிய செயல்கள் பின்வருமாறு
தேடல் வரிசைமுறைத்
மற்றும் தேடல் இருமத்தேடல் மூலம் தரவு கட்டமைப்பில் உள்ள ஒரு உருப்படியைத் தேட.
வரிசையாக்கம் ஒரு
குறிப்பிட்ட முறையில் வழிமுறைகளைப் பயன்படுத்தி உருப்படிகளை வரிசைப்படுத்த முறைகளாக
குமிழி வரிசையாக்கம் செருகும் வரிசையாக்கம், தேர்ந்தெடுப்பு வரிசைப்பாக்கம் போன்றவை
செருகுதல் தரவு
கட்டமைப்பில் ஒரு உருப்படியைச் (களை) செருகுவதற்கு.
மேம்படுத்துதல்
தரவு
கட்டமைப்பில் தற்பொழுது உள்ள ஒரு உருப்படியை மேம்படுத்த.
நீக்குதல் தரவு
கட்டமைப்பில் தற்பொழுதுள்ள ஒரு உருபடி (களை) நீக்க.
ஒரு நெறிமுறையை வரையறுக்கும் முறையை நெறிமுறை யுக்தி என்கிறோம். கொடுக்கப்பட்ட n-ன் தொடர் பெருக்கலைக் காணும் உதாரணத்தை எடுத்துக் கொள்வோம். தொடர்பெருக்கலைக் கணக்கிடும் செயற்கூறினை வரையறுப்பதன் மூலம் இதைச் செய்ய முடியும். பிறகு, தேவைப்படும் சுழற்சியின் எண்ணிக்கை வரும் வரை, அந்த செயற்கூறை தற்சுழற்சி செயற்கூறாக அழைக்க வேண்டும்.
நெறிமுறை
என்ற சொல், கணித பாடப்புத்தகத்தை எழுதிய பெர்சியன் எழுத்தாளர் Abu Jafar Mohammed
ibn Musa al Khowarizmi (c. 825 AD(CE)), இருந்து பெறப்பட்டது. நெறிமுறை என்ற சொல்லுக்கு
ஒரு சிக்கலைத் தீர்க்கும் வழி என்பதைக் குறிப்பதாகும்.
பின்வரும் பண்புகளை நெறிமுறைகள் கொண்டிருக்க வேண்டும்.
உள்ளீடு
பூஜ்ஜியம்
அல்லது அதிக எண்ணிக்கையில் வழங்கப்பட வேண்டும்.
வெளியீடு குறைந்தபட்சம்
ஒன்றாவது உருவாக்கப்பட வேண்டும்.
எல்லையுற்றது வரையறுக்கப்பட்ட
எண்ணிக்கையிலான படிநிலைகளில் நெறிமுறை நிறுத்தப்பட வேண்டும்.
வரையறுத்தல் அனைத்து செயல்பாடுகளும் நன்றாக வரையறுக்கப்பட் வேண்டும்.
எடுத்துக்காட்டாக, பூஜ்ஜியம் மூலம் வகுத்தல் அல்லது எதிர்ம எண்ணுக்கு வர்க்க மூலத்தை
கணக்கிடுதல் ஆகிய செயல்பாடுகள் ஏற்றுக் கொள்ள முடியாதது ஆகும்.
செயல்தன்மை ஒவ்வொரு
கட்டளைகளும் திறம்பட நடத்தப்பட வேண்டும்.
உண்மைத்
தன்மை நெறிமுறைகள் பிழை இல்லாததாக இருக்க வேண்டும்.
எளிமை
செயல்படுத்துவதற்கு
மிக எளிதாக இருக்க வேண்டும்.
குழப்பமற்றது
நெறிமுறையானது
தெளிவாகவும் குழப்பமற்றதாகவும் இருத்தல் வேண்டும். அதன் ஒவ்வொரு படிநிலைகளும் மற்றும்
அதனுடைய உள்ளீடுகள் வெளியீடுகள் தெளிவானதாக இருக்க வேண்டும் மற்றும் ஒரே ஒரு பொருளுக்கு
வழிவகுக்க வேண்டும்.
செயலாக்கம் கிடைக்கும்
வளங்களை வைத்து செயலாக்க வல்லது.
அடக்கமானது
நெறிமுறை
பொதுவானதாக இருக்க வேண்டும். அனைத்து வகையான உள்ளீடுகளையும் கையாள்வதற்கு எந்த நிரலாக்க
மொழியையும் மற்றும் இயக்க அமைப்பையும் சாராமல் இருக்க வேண்டும்.
சார்பற்றது நெறிமுறையானது
படிநிலை வழிமுறைகளைக் கொண்டிருக்க வேண்டும். அது எந்த நிரலாக்க குறிமுறையை சாராமல்
இருக்க வேண்டும்.
நெறிமுறை கணினிக்கு மட்டுமே ஒட்பட்டதல்ல, பொதுவானது. நிகழ் உலக
பல வகையான செயல்பாடுகளுக்கும் இது பயன்படும். தெரிந்தோ, தெரியாமலோ நாம் அன்றாட வாழ்வில்
பல நெறிமுறைகளை பின்பற்றுகிறோம். அதாவது, புத்தகப்பையில் புத்தகங்களை அடுக்குவது, ஒரு
இடத்தை அடைவதற்காக மிகக் குறைந்த தூரம் உள்ள பாதையைக் கண்டறிவது, அன்றாட செயல்களைத்
திட்டமிடுதல், தேர்வுக்குத் தயாராகுதல் மற்றும் பல, அனைத்து நிரலாக்க மொழிகளும் அடிப்படை
குறிமுறை கட்டமைப்பை பகிர்கின்றன என்பதை நாம் அறிவோம். அதாவது, நிபந்தனைகள், சுழற்சிகள்
ஆகியவற்றைப் பயன்படுத்தி நெறிமுறைகளை எழுதலாம். முறையான நெறிமுறை பின்வரும் படம்
4.1 ல் காண்பிக்கப்பட்டுள்ளது. பின்வரும் படம் 4.1 ல் காண்பிக்கப்பட்டுள்ளது.
எடுத்துக்காட்டு
காபி தயாரிக்கும் முறையை எடுத்துக்காட்டாக நோக்குக. காபியை தயாரிப்பதற்கு
பின்வரும் பொருள்கள் நமக்கு தேவைப்படுகின்றன. தண்ணீர், பால் காபித்தூள், சர்க்கரை.
இந்த பொருள்களானது நெறிமுறையின் உள்ளீடுகளாகும். ஒரு டம்ளர் காபி தயாரித்தல் என்பது
செயல் (process) ஆகும். இதன் வெளியீடு காபி ஆகும்.
காபி
தயாரித்தலின் செயல்முறை (procedure) பின்வருமாறு:
1. ஒரு கிண்ணத்தில் காபித்தூளை எடுத்துக் கொள்ளவும்
2. தண்ணீரை சூடாக்கி காபித்தூள் உள்ள கிண்ணத்தில் ஊற்றவும்
3. அதை வடி கட்டவும்
4. பாலை சூடாக்கவும்
5. சூடாக்கப்பட்ட பாலுடன் சர்க்கரை மற்றும் வடிகட்டிய காபியை
ஊற்றி கலக்கவும்
6. காபியை டம்ளரில் ஊற்றி வழங்கவும்
இந்த வகையான செயமுறையை நெறிமுறை மூலம் உருவாக்கலாம். எனவே, நெறிமுறையானது,
ஒரு செயலை செய்து முடிக்கத் தேவையான படிப்படியான வழிமுறைகளை கொண்டிருக்கிறது. நிரலருக்கு
நிரலை உருவாக்க இது உதவுகிறது.
பயிற்சி: ஒரு
எண்ணின் வர்க்கம் (square) கண்டுபிடித்து அதன் விடையை காண்பிப்பதற்கான நிரல் நெறிமுறையை
எழுதுக.
நிரல் நெறிமுறையை பின்வருமாறு காணலாம்.
படிநிலை 1 - செயலை தொடங்கவும் (start the process)
படிநிலை 2 - X-ன் மதிப்பை உள்ளிடவும் (get the input x)
படிநிலை 3 – x- ன் வர்கத்தை கணக்கிட, உள்ளிட்ட மதிப்பை பெருக்கவும்
அதாவது, (calculate the square by multiplying the input value ie., square <
X* x)
படிநிலை 4- வெளியீட்டை அறிவிக்கவும் (display the result
square)
படிநிலை 5 - நிறுத்து (stop)
நெறிமுறையானது கொடுக்கப்பட்ட சிக்கலுக்கு தீர்வுகாண வடிவமைக்கப்படுகிறது. ஒரு சிக்கலானது ஒன்றிற்கு மேற்பட்ட வழிகளில் தீர்வு காணப்படலாம். ஒரு சிக்கலுக்கு பல நெறிமுறைகளை உருவாக்கலாம். ஆனால், மிகவும் பொருத்தமான ஒன்றை செயல்பாட்டிற்கு எடுத்துக் கொள்ள வேண்டும்.
தகுதி
வாய்ந்த உள்ளீட்டிற்கு எதிர்பார்த்த வெளியீட்டை கொடுக்கும் நெறிமுறையே "நிரல்
நெறிமுறை தீர்வு " எனப்படும்.
1.
நெறிமுறை சிக்கலை தர்க்கரீதியாக தீர்க்க உதவுகிறது மற்றும் நிரலுடன் வேறுபட்டிருக்கலாம்.
நிரல்
நிரல் என்பது நிரலாக்க மொழியில் நெறிமுறையின் | வெளிப்பாடாகும்.
2.
செயல்படுத்தப்படும் முறை மற்றும் வடிவமைப்பு நுட்பம் ஆகியவற்றை பொறுத்து இதனை வகைப்படுத்தலாம்.
கட்டமைப்பு நிரல் அணுகுமுறை அல்லது பொருள் நோக்கு
நிரலாக்க அணுகுமுறையை பயன்படுத்தி இதனை செயல்படுத்த முடியும்.
3.
நெறிமுறைக்கு குறிப்பிட்ட விதிமுறைகள் கிடையாது ஆனால் சில வழிகாட்டுதல்களை பின்பற்ற
வேண்டும்.
தேர்ந்தெடுக்கப்பட்ட
மொழியில் குறிப்பிட்ட கட்டளை அமைப்புகளைக் கொண்டு நிரலை எழுதலாம்.
4.
போலி குறிமுறையை ஒத்திருக்கும் இதை எந்த கணிப்பொறி மொழியில் வேண்டுமானாலும் செயல்படுத்தலாம்
நிரலாக்க
மொழிக்கு மிகவும் குறிப்பிடத் தாக்கதாக நிரல் இருக்க வேண்டும்.
கணினி வளங்கள் வரம்புக்குட்பட்டது. நேரம்மற்றும் இடச்சிக்கல்களை
பயன்படுத்துவதன் மூலம் நிரல் நெறிமுறையின் செயல்திறன் வரையறுக்கப்படுகிறது.
சம்பந்தப்பட்ட பல்வேறு செயல்பாடுகளுடைய இயக்க நேரத்தோடு நெறிமுறை
பகுப்பாய்வு தொடர்புடையது. ஒவ்வொரு செயல்பாட்டிற்காக செயல்படுத்தப்படும் கணினி கட்டளைகளின்
எண்ணிக்கை மூலம் செயல்பாட்டின் இயங்கு நேரம் வரையறுக்கப்படுகிறது.
.நெறிமுறை பகுப்பாய்வு மற்றும் செயல்திறன் மதிப்பீடுகளை இரண்டு
கட்டங்களாக பிரிக்கலாம்.
1. முன்னறிப்பு (Priori Estimates) மதிப்பீடுகள் : இது நெறிமுறையின்
கோட்பாட்டு செயல்திறன் பகுப்பாய்வு ஆகும். வெளிப்புற காரணிகளை ஏற்றுக் கொண்டு நெறிமுறையின்
செயல் திறன் அளக்கப்படுகிறது.
2. பின்னிய (Posteriori testing) சோதனை : இது செயல்திறன் அளவிடுதல்
ஆகும். இந்த பகுப்பாய்வில் உண்மையான புள்ளி விவரங்களான இயங்கும் நேரம் மற்றும் நிரல்
நெறிமுறை நிறைவேற்ற தேவைப்படும் இடம் ஆகியவை சேகரிக்கப்படுகிறது.
'ஒரு நெறிமுறையின் பல்வேறு உள்ளீட்டு அளவுக்கான நேர மற்றும் இட சிக்கல்களின் மதிப்பிடுவது நெறிமுறை பகுப்பாய்வு ஆகும்.