கணினி அறிவியல் - சுழற்சியும், தற்சுழற்சியும் | 11th Computer Science : Chapter 8 : Iteration and recursion
சுழற்சியும், தற்சுழற்சியும்
கற்றலின் நோக்கங்கள்
இந்தப்பாடப்பகுதியைக் கற்றபின், மாணவர்கள்
● நெறிமுறை நுட்பங்களில். பயன்படுத்தப்படும் மற்றும் மாற்றமிலி கருத்துருக்களை அறிந்து கொள்ளுதல்.
● சுழற்சி மற்றும் தற்சுழற்சி செயல்பாடுகளில் நெறிமுறை நுட்பங்களைப் பயன்படுத்துதல்.
ஒரே செயலைப் பலமுறை மீண்டும் மீண்டும் செய்வதின் மூலம், பல சிக்கல்களைத் தீர்க்க முடியும். சுழற்சியும், தற்சுழற்சியும் ஒரே செயலை மீண்டும் மீண்டும் செயல்படுத்துவதற்கான நெறிமுறை வடிவமைப்பு நுட்பங்களாகும். ஒரே செயலை மீண்டும் மீண்டும் செய்வதால் என்ன பயன்? செயல்படுத்தப்படும் செயல் ஒரே செயலாக இருந்தாலும், செயல்படுத்தப்படும் நிலை ஒரே நிலையன்று. ஒவ்வொரு முறையும் நாம் ஒரு செயலைச் செயல்படுத்தும்போதும், நிலை மாறிக்கொண்டேயிருக்கிறது. எனவே, ஒரே செயல்தான் மீண்டும் மீண்டும் செயல்படுத்தப்படுகிறது. ஆனால், அது வெவ்வேறு நிலைகளில் செயல்படுத்தப்படுகிறது. இந்த செயல்முறை இவ்வாறு தொடர்ந்து நடைபெறுவதின் விளைவாக நாம் விரும்புகிற உள்ளீடு -வெளியீட்டைப் பெறத்தக்க விதத்தில் நிலை மாறிக்கொண்டேயிருக்கும்.
சுழற்சி (iteration) :
சுழற்சியில், மடக்கின் நிபந்தனை மெய் என இருக்கும் வரை மடக்கின் உடற்பகுதி மீண்டும் மீண்டும் செயல்படுத்தப்படுகிறது. ஒவ்வொரு முறையும் மடக்கின் உடற்பகுதி செயல்படுத்தப்படும் போது, மாறிகளின் மதிப்பு மாறிக்கொண்டேயிருக்கும். இருப்பினும், மடக்கின் உடற்பகுதி செயல்படுத்தப்படும் போதும், மாறிகளுக்கிடையேயான ஒரு பண்பு மாறாமல் இருக்கும். மாறாத இந்த பண்பே மடக்கு மாற்றமிலி (Invariant) என்றழைக்கப்படுகிறது நெறிமுறைகளை அமைப்பதற்கும், அதற்கான நிபந்தனைகளை அமைப்பதற்கும், விளக்குவதற்கும் மாற்றமிலி இன்றியமையாதது.
தற்சுழற்சி (Recursion):
தற்சுழற்சி, சுழற்சியோடு நெருங்கிய தொடர்புடைய மற்றொரு நெறிமுறை வடிவமைப்பு நுட்பமாகும். ஆனால், இது சுழற்சியைவிட பலம்வாய்ந்தது. கொடுக்கப்பட்ட உள்ளீட்டின் ஒரு பகுதியைப் பயன்படுத்தி சிக்கலைத் தீர்த்து, அந்த தீர்விலிருந்து மூல சிக்கலுக்கான தீர்வை உருவாக்குவது "தற்சுழற்சி நுட்பமாகும்
உங்களுக்கு தெரியுமா?
E. W. டிஜிக்ஸ்திரா, கணிப்பொறி அறிவியல் துறையின் மிகவும் செல்வாக்கு மிக்க முன்னோடிகளில் ஒருவர். நிரலாக்க - மொழி வடிவமைப்பு, இயக்க அமைப்பு மற்றும் நிரல் வடிவமைப்பு போன்ற பல்வேறு துறைகளில் தனது பங்களிப்பை வழங்கியுள்ளார். மென்பொருள் பொறியியல் (Software Engineering) துறையின் அடிப்படை நுட்பமான, “கட்டமைக்கப்பட்ட நிரலாக்கம்” (Strucutred Programming) அறிமுகம் செய்துள்ளார். கணிப்பொறி அறிவியல் துறையில், இவரின் மிக உயர்ந்த சேவையை பாராட்டி,1972ம் ஆண்டில், ACM Turing விருது வழங்கப்பட்டது.
“வானியல் தொலைநோக்கிகளை மட்டுமே குறிப்பதல்ல என்பதைப் போல, கணிப்பொறி அறிவியல், கணிப்பொறிகளை மட்டுமே குறிப்பதல்ல" - E. W. டிஜிக்ஸ்திரா.