Skip to main content

Loops (பார்வை - 08)

அனைவருக்கும் வணக்கங்கள்...

இந்தப்பதிப்பின் ஊடாக சுலபமான வழிகளின் ஊடாக அதிக தடவைகள் சில தகவல்களை எவ்வாறு Print பண்ணலாம் என நோக்குவோம்.

குறிப்பாக

Print "Hello" என்ற குறியீடு பிரதான திரையில் ஒரு முறை “Hello" எனும் வாசகத்தை அச்சிடுகிறது. மேற்படி “Hello” எனும் வாசகம் பிரதான திரையில் 10 தடவைகள் அச்சிடப்பட வேண்டும் எனில் Print "Hello" எனும் குறியீட்டினை ஒன்றன் கீழ் ஒன்றாக 10 தடவைகள் தட்டச்சு செய்து பெற முடியும்.

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

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

  

மீண்டும் மீண்டும் Print "Hello" என்று தட்டச்சு செய்யாமல் இங்கு 5 வரிகளுக்குள்ளாகவே பத்து தடவைகள் " Hello" என்று தட்டச்சு செய்யப்படுகிறது. பத்து தடவைகளுக்கு மட்டுமல்ல 1000 தடவைகள் என்றாலும் மேற்படி 5 வரிகளுக்குள்ளாகவே அதற்குரிய கட்டளைகள் இடப்படுகின்றன.

இங்கு எழுதப்பட்டிருக்கின்ற கட்டளைகள் மூலம் நிறைவேற்றப்படுவது தான் Loop எனும் செயன்முறை. அதாவது குறிப்பிட்ட சில கட்டளைகள் மீண்டும் மீண்டும் இயங்குவதன் ஊடாகவே எம்மால் 10 தடவைகள் Hello எனும் வாசகத்தை பெறமுடிந்துள்ளது. குறியீட்டு பகுதியில் Print “Hello” என்று ஒரு தடவை மாத்திரம் எழுதப்பட்டும் பிரதான திரையில் மேற்படி வாசகம் 10 தடவைகள் இடம் பெறுகின்றதென்றால் மேற்படி குறியீடு (Print "Hello")பத்து தடவைகள் இயங்கியுள்ளது என்று தானே அர்த்தம். 
பார்க்கலாம். Loop பற்றிய ஒரு பார்வையை மேலுள்ள பகுதி மூலம் பார்த்துவிட்டோம். இனி, Loop பற்றியதான விளக்கங்களின் ஊடாக மேலும் சில விடயங்களை நோக்கலாம். 

பொதுவாக Visual Basic இல் Loops இனை பொதுவாக 3 வழிகளில் கையாளலாம். கையாளும் வழிமுறைகள் பற்றி பார்க்கலாம். 

1. Do... While
2. Do ... Until
3. For...

1. Do... While

இந்த வகையான Loop இனை இருவழிகளில் கையாளலாம்.
அவற்றினை குறியீகளை பயன்படுத்துவதன் மூலம் வாய்ப்பு பார்க்கலாம். 

மேலே உதாரணத்தில் காட்டப்பட்ட குறியீட்டுத்தொகுதி மூலம் இது தான் கையாளப்பட்டுள்ளது. 


1 என இலக்கமிடப்பட்டுள்ள குறியீடு இடப்பட்டதன் நோக்கம் என்னவென்பதை தாங்கள் முன்னைய பதிவுகளின் மூலம் அறியக்கூடயதாக இருக்கும் என எண்ணுகிறேன். x எனும் integer Variable இனை Declare பண்ணும் குறியீடு தான் அது.
குறிப்பிட்ட Variable (x) Declare பண்ணுப்பட்டவுடன் அதன் பெறுமதி 0 ஆக கருதப்படுகிறது. 

அதன் பின்னர் எழுதப்படும் 4 வரிகளுமே குறிப்பிட்ட Loop இனை கையாளும் குறியீடுகளாக (Codes) அமைகின்றன. அதிலும் "Do" என்று குறிப்பிடும் பட்சத்தில் அவற்றிற்கு கீழே உள்ளவற்றை செயல்படுத்து எனும் கட்டளை அங்கே பிறப்பிக்கப்படுகிறது. 

இங்கு “Do” என்று குறிப்பிட்டு அதனுடனேயே குறிப்பிட்ட செயற்முறைக்கான வரையறையையும் செய்து கொள்ளுகிறோம். (Condition). மஞ்சள் நிறத்தால் மூடப்பட்டிருக்கும் குறியீட்டுப்பகுதி (While x<10) இனால் மேற்படி Loop எந்த கட்டம் வரைக்கும் இயங்கவேண்டும் எனும் வரையறை வழங்கப்படுகிறது. அதாவது x இன் பெறுமானம் 10இற்கு குறைவானதாக இருக்கும் சந்தர்ப்பத்தில் Loop இனை செயற்படுத்து என்று பொருள்படுகிறது. 

ஏற்கனவே செயற்படுத்தக்கூடிய குறியீடுகள் "Do" எனும் குறியீட்டிற்கு கீழ் உள்ள பகுதிகளை என்று கூறிவிட்டேன்...

ஆகவே இலக்கம் 2 ஆல் குறிப்பிடப்பட்ட ( Print "Hello", x=x+1) போன்ற குறியீடுகள் செயற்படுத்தப்படுகின்றன. 

காரணம் "Loop" எனும் குறியீட்டினை Loop இயக்கமானது முடிவடைவதை குறிப்பிடுவதற்காக தான் அங்கு பதிவு செய்கிறோம். ஆகையால் “Do” எனும் பகுதிக்கு கீழே உள்ளதும் “Loop” எனும் பகுதிக்கு மேலே உள்ளதுமான குறியீடுகளை  குறிப்பிட்ட வரையறைகளிற்கு(Condition,x<10) அமைவாக இயக்கு என்பதை பொருள்படக்கூடியவாறே மேற்படி குறியீட்டுத்தொகுதி (Code set) அமைக்கப்பட்டுள்ளது. 

 இப்போது மீண்டும் மீண்டும் செயற்படுத்தப்படுகின்ற அந்த இரு குறியீடுகள் மூலம்  ( Print "Hello", x=x+1 ) என்ன குறிப்பிடப்பட்டுள்ளது என்று நோக்குவோம். 


Print "Hello"
 "Hello" எனும் வாசகத்தை பிரதான திரையில் பதிவு செய்.

x=x+1
x+1 இன் பெறுமதி எதுவோ அதை x இற்கு வழங்கு...
அதாவது Variable x இனை Declare பண்ணியவுடன் அதன் பெறுமதி 0 என குறிப்பிட்டிருந்தேன். ஆகவே x+1 (0+1) இன் பெறுமதியான 1 இனை x இன் பெறுமதியாக்கு என்று பொருள்படுகிறது. 

மேலே காட்டப்பட்ட படம் மூலமாக குறியீடுகள் கையாளப்படும் படிமுறைகளும் குறித்த படிமுறையில் x இன் பெறுமதியும் காட்டப்பட்டுள்ளது. 
அங்கு 2ம் படிமுறையின் பின்னர் 3,4ம் படிமுறைகள் செயல்படுத்தப்படும். செயற்படுத்தப்பட்ட பின்னர் குறியீட்டு வரைமுறை (Condition, x<10) ஆராயப்பட்டு (படிமுறை 5) சரியாகும் பட்சத்தில் மீண்டும் Print "Hello" மற்றும் x=x+1 எனும் குறியீடுகள் செயல்படுத்தப்படுகின்றன. Condition பிழையாகும் வரை மேற்படி இரு குறீயீடுகளும் மீண்டும் மீண்டும் செயல்படுத்தப்படுவதை மேலே காட்டப்பட்ட படம் விளங்கப்படுத்துகிறது. 

இங்கு Condition இல் 10 இற்கு குறைவாக என்று கட்டளை இட்டதன் காரணமாக “Hello”  எனும் வாசகம் 10 தடவைகள் மாத்திரம் பதிவு செய்யப்பகிறது. 
அங்கே x<1000 என கொடுக்கப்படும் பட்சத்தில் ஒன்றன் பின் ஒன்றாக “Hello” எனும் வாசகம் 1000 தடவைகள் பதிவு செய்யப்படும்.

Loop பற்றிய தெளிவான ஆழமான விளக்கத்தினை என்னால் இயன்ற அளவு விளக்கியிருக்கிறேன் என எண்ணுகிறேன். 
அடுத்த பதிவுகளின் ஊடாக Loop கையாளப்படும் ஏனைய வழிமுறைகளை பார்க்கலாம். 

பார்வைகள் தொடரும் ...

Comments

Popular posts from this blog

பெர்முடாவும் கருந்துளையும் ( மாய இராஜ்ஜியம் 20 )

பெர்முடா மர்மம் பற்றிய ஆய்வுத்தொடர் (மாய ராஜ்ஜியம்) 19 பகுதிகளுடன் நிறைவடைந்து விட்டது. இந்த ஆய்வு தொடர்பாக வாசகர் ஒருவரின் கருத்துகளிற்குரிய பதில் கருத்துகளாக இப்பகுதி வெளிவருகிறது. அவ்வாசகரின் கருத்துக்களை பார்வையிட கீழுள்ள தொடர்பினை அணுகவும்.           http://unmayinpakkam.blogspot.com/2010/05/05_22.html#comments என்னுடைய ஆய்வு முடிவை நான் இரண்டு படிகளில் தெரிவித்திருந்தேன். முதலாவதாக அண்டவெளியில் ஆங்காங்கே தோன்றுகின்ற காலத்தால் வேறுபட்ட இடங்களை ஒத்த இடங்கள் பூமியில் தோன்றுவதன் சாத்தியமும் , இரண்டாவதாக இதன் விளைவாக கருந்துளை அவ்விடத்தில் உருவாகுவதற்கான வாய்ப்பும் ஆகும்.   1.சடத்துவ மற்றும் சடத்துவமல்லாத சார்புச்சட்டங்களின் சார்பியக்கத்தின் விளைவாக ஏற்படும் கால வேறுபாடு பற்றி ஐன்ஸ்டீன் உள்ளிட்ட பல விஞ்ஞானிகள் ஆராய்ந்திருக்கிறார்கள். இச்சார்பு விளைவு காரணமாக பிரபஞ்சத்தின் நடுவில் ஒரு பொதுக்கடிகாரம் பயன்படுத்தப்படுவது என்பது சாத்தியமற்றதாகின்றது. மேலும் விளக்குகையில், விரியும் பிரபஞ்சம், அதன் தாக்கத்தை தமக்குள் வெளிப்படுத்தும் ...

இறந்த காலத்தை அடைவோமா? ( யார் ? இவர்கள் 11 )

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

இரையாகும் கனவுகள்...

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