Sunday, July 15, 2012

2 Looping Statements என்றால் என்ன?

அளவற்ற அருளாளனும் நிகரற்ற அன்புடையோனுமாகிய அல்லாஹ்வின் திருப்பெயரால்...

புரோகிராமிங் என்றால் என்ன? தொடர் 16

 
இத்தொடரின் 7 ஆம் பாகத்திலிருந்து programming building blocks ஐ பற்றி அறிந்து வருகிறோம் அல்லவா? அதன் தொடர்ச்சியாக looping statements களை பற்றி இங்கே பார்க்கப் போகிறோம்.

நாம் எழுதும் program மில் இடம்பெறும் statement களில் சிலவற்றை திரும்பத் திரும்ப execute செய்ய நமக்கு உதவுபவை looping statement கள் ஆகும்.

FOR LOOP மற்றும் WHILE LOOPஆகியவை looping statement கள் ஆகும்.

Loop statement டின் பயன்பாடு என்ன?

நல்ல கேள்வி. இந்த கேள்விக்கு நான் பதிலளிப்பதற்கு முன்பாக, நான் கேட்கும் சில கேள்விகளுக்கு நீங்கள் பதில் சொல்லுங்களேன்.

(இங்கே கேள்வியை நான் கேட்கிறேன். பதிலை நீங்கள் சொல்கிறீர்கள் என்று வைத்துக்கொள்வோம்.)

கேள்வி: சொல்லுங்க...
பதில்: என்னத்த சொல்லுறது?

கேள்வி: நம்பர் சொல்லுங்க?
பதில்: 1

கேள்வி: தொடர்ந்து சொல்லுங்க
பதில்: 1,2,3 போதுமா?

கேள்வி: தொடர்ந்து சொல்லுங்க
பதில்: 1,2,3,4,5,6,7,8 போதுமா?

கேள்வி: தொடர்ந்து சொல்லுங்க
பதில்: இப்படி ஏடாகூடமா கேள்வி கேட்டா எப்படிங்க பதில் சொல்றது. கேள்வியில கொஞ்சமாச்சும் லாஜிக் வேண்டாம்?

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

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

கேள்வி: அப்ப சரிங்க. 1 முதல் 10 வரைக்கும் சொல்லுங்க.
பதில்: இது கூடவா ஒரு மனுசனுக்கு தெரியாது, நல்லா கேள்வி கேட்கறீங்க... 1,2,3,4,5,6,7,8,9,10

கேள்வி: சபாஷ். கரெக்டா சொல்லிட்டீங்களே!
பதில்: அடப்போங்க நீங்க. இதுகூட தெரியாத ஆள் யாராவது இருப்பாங்களா என்ன? Loop ன்னா என்னான்னு கேள்வி கேட்டதுக்கு இப்படியா வறுத்தெடுக்கறது.

கேள்வி: இவ்வளவு துல்லியமா loop ஐ அதுவும் for loop ஐ தெரிஞ்சி வச்சிக்கிட்டே என்கிட்ட loop ஐ பற்றி கேட்டீங்களே அது ஏன்?
பதில்: என்னது! நான் for loop ஐ use பண்ணினேனா? எப்படி use பண்ணினேன்? எங்கே use பண்ணினேன்? கொஞ்சம் விளக்குங்களேன்...

கேள்வி: 1 முதல் 10 வரைக்கும் உங்களால எப்படி சரியாக சொல்லமுடிஞ்சுதுன்னு எனக்கு விளக்க முடியுமா?
பதில்: தெரியலியே. 1 க்கு அப்புறம் 2 அதுக்கப்புறம் 3 இப்படித்தானே வரும். இதுல என்ன இருக்கு?

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

இதை மட்டும் explain பண்ணிட்டீங்கன்னா, உங்க கேள்விக்கான விடையை  அதிலே கண்டுபிடிச்சுடலாம்.

சரி, இதுவரைக்கும் நான் கேட்ட கேள்விக்கு நீங்க பதில் சொன்னீங்கல்ல. ஆரம்பத்துல நீங்க கேட்ட கேள்விக்கு இப்ப நான் பதில சொல்றேன்.

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

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

நான் ஆரம்ப எண் 1 என்றேன்
அடுத்து முடிவு எண் 10 என்று சொன்னேன்.

உடனே நீங்கள் ஒன்றில் ஆரம்பித்து 10 வரை சரியாக சொல்கிறீர்கள்.

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

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

இது எப்படி நடந்தது தெரியுமா?

ஆரம்ப எண்ணிலிருந்துதான் சொல்லவேண்டும் என்று தீர்மானிக்கிறீர்கள்.

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

அடுத்து அந்த எண்ணுடன் ஒன்றை கூட்டுகிறீர்கள். 1+1 இரண்டாகிறது. 2 என்ற அந்த எண் முடிவு எல்லையை தாண்டிவிட்டதா என்று (பத்துடன்) சோதிக்கிறீர்கள்; இல்லை என்ற பதில் கிடைக்கிறது.
எனவே 2 என்று சொல்கிறீர்கள்.

அடுத்து அந்த எண்ணுடன் ஒன்றை கூட்டுகிறீர்கள். 2+1 மூன்றாகிறது. 3 என்ற அந்த எண் முடிவு எல்லையை தாண்டிவிட்டதா என்று (பத்துடன்) சோதிக்கிறீர்கள்; இல்லை என்ற பதில் கிடைக்கிறது.
எனவே 3 என்று சொல்கிறீர்கள்.

இப்படியாக 4,5,6,7,8,9,10 என்று சொல்கிறீர்கள்.

தற்போது அந்த எண்ணில் 10 என்ற நம்பர் உள்ளது.

அடுத்து அந்த எண்ணுடன் ஒன்றை கூட்டுகிறீர்கள்.10+1 பதினொன்றாகிறது.
11 என்ற அந்த எண் முடிவு எல்லையை தாண்டிவிட்டதா என்று (பத்துடன்) சோதிக்கிறீர்கள்; ஆம் என்ற பதில் கிடைக்கிறது.
உடனே 11 என்ற அந்த எண்ணை சொல்லாமல் நிறுத்திவிடுகிறீர்கள்.

நானும், சபாஷ். கரெக்டா சொல்லிட்டீங்களே! என்று பாராட்டினேன்.

1 முதல் 10 வரை உங்களால் எப்படி சொல்ல முடிந்தது என்பதை விவரமா இங்கே பார்த்தோம்.

சரி இதற்கும் looping statement டுக்கும் என்ன சம்பந்தம் என்று நினைக்கிறீர்களா?

இங்கேதான் ஒரு சராசரி மனிதரிலிருந்து programmer வேறுபடுகிறார். எப்படி?

ஒரு விசயத்தை program செய்வதற்கு முன்பாக இயல்பாக அது எப்படி செயல்படுத்தப்படுகிறது என்பதை programmer தெளிவுபடுத்திக்கொள்கிறார். இப்படி தெளிவுபடுத்திக்கொள்வதால் அந்த யதார்த்தத்திலிருந்து logic ஐ டெவலப் செய்து அதை program ஆக எளிதாக மாற்றிவிடுகிறார். இயல்பாக என்றால் ஒரு விசயத்தை (அது எதுவாக இருந்தாலும் சரியே) நாம் எவ்வாறு அணுகினோம் என்பதை, உள்ளது உள்ளபடி பேப்பரில் எழுதவேண்டும். உதாரணத்திற்காகத்தான் 1 முதல் 10 வரை நம்பரை எப்படி சொல்கிறோம் என்பதை இங்கே யதார்த்தமாக பார்த்தோம்.

understanding loop, counting numbers, karkandu, கற்கண்டு புரோகிராம், புரோகிராம் என்றால் என்ன, லூப் என்றால் என்ன

மேற்படி நமது யதார்த்த ஆய்வறிக்கையை பார்த்தால் ஒரே விதமான செயல் 11 முறை திரும்பத்திரும்ப  செய்யப்பட்டிருக்கிறது என்பதை கண்டுபிடிக்க முடியும். அவ்வாறு கண்டுபிடித்துவிட்டவரை (அதாவது செயல்களிலிருந்து லாஜிக்கை கண்டுபிடித்துவிடுபவரை) நாம் programmer  என்று அழைக்கிறோம்.

அந்த Logic என்னவென்று உங்களுக்கு தெரிகிறதா? அது இதுதான் :

how loop works, how to count numbers, jmr faridh, பரீத், பரித், karkandu, கற்கண்டு புரோகிராம், புரோகிராம் என்றால் என்ன, லூப் என்றால் என்ன

step1: ஆரம்ப எண் முடிவு எண் கிடைத்தவுடன்; சொல்லவேண்டிய அந்த எண்ணை ஆரம்ப எண்ணிலிருந்து துவங்கவேண்டும். அடுத்து 

step2: அந்த எண் முடிவு எல்லையை தாண்டிவிட்டதா என்று சோதிக்கவேண்டும் 

step3: தாண்டவில்லை என்றால் அந்த எண்ணை சொல்லிவிட்டு அந்த எண்ணுடன் ஒன்றை கூட்டவேண்டும். கூட்டி வந்த விடையுடன் step 2 க்கு போகவேண்டும்; தாண்டிவிட்டதென்றால் நிறுத்திவிடவேண்டும்.

இங்கே step 2 முதல் step 3 வரை உள்ளவை திரும்பத்திரும்ப செய்யப்பட்டிருக்கிறது. இதுதான் LOOP CONCEPT ஐ நமக்கு தருகிறது.

மேற்படி loop ல் இயல்பாக 3 variable களை நீங்கள் பயன்படுத்தியுள்ளீர்கள். அவை

ஆரம்ப எண்
முடிவு எண்
அந்த எண் (அதாவது சொல்லப்படவேண்டிய எண்)

இந்த மூன்றில் ஒன்றை கூட நம்மால் தவிர்க்க முடியாது.

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

முடிவு எண் அவசியம் வேண்டும் என்கிற validation மட்டும் இல்லாது போயிருந்தால் ending number எதுவென்று யாராலும் கணிக்க முடியாது. நீங்களும் வாய் வலிக்க சொல்லிக்கொண்டே இருக்கவேண்டியதுதான் (மரணிக்கும் வரை அல்லது அடுத்த நம்பரை (1,000,000,000,000,000,000,000,000,000,000) சொல்லத் தெரியாதவரை ). அதாவது endless loop அல்லது program hang ஆகிவிடும்.

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

இப்பொழுது 1 முதல் 10 வரையோ அல்லது 5 முதல் 50 வரையோ உங்களால் இயல்பாக எப்படி கூட்ட முடிகிறது என்பதை யோசியுங்கள்.

ஆரம்ப எண் 10 முடிவு எண் 5 என்றால் உங்களால் இந்த லாஜிக் மூலம் சொல்லமுடியுமா என்பதை சோதியுங்கள்.

அப்படி முடியவில்லை என்றால் ஏன் என்பதை கண்டுபிடித்து அதற்காக லாஜிக்கை உருவாக்குங்கள்.

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

Logic ஐ மனப்பாடம் செய்து program எழுதுபவர் தனது program எப்படி வேலை செய்கிறது என்பதை வரிக்குவரி explain பண்ணமுடியாது. ஒரு வரி மறந்து விட்டாலும் அது எந்த வரி? எங்கே போடவேண்டும் என்பது தெரியாது.

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

இதற்குத்தான் manual calculation or sample calculation என்ற technique ஐ நாம் உபயோகிக்கிறோம். இதைப்பற்றி விரிவாக பின்னர் பார்ப்போம்.

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

சரி இதுவரைக்கும் loop ஐ பற்றியும், loop க்கு தேவையான variable களை பற்றியும் பார்த்தோம். இதை எப்படி for loop ஆகவோ அல்லது while loop ஆகவோ மாற்றுவது என்பதை அடுத்து பார்ப்போம்.


அடுத்த பாகம்

Last updated date : 18-07-2012


2 comments:

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

    ReplyDelete
  2. நல்லதொரு பதிவு... பகிர்வுக்கு நன்றி... தொடர வாழ்த்துக்கள் !
    by. www.99likes.blogspot.com

    ReplyDelete