This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Wednesday, August 7, 2013

Nested Loops என்றால் என்ன?

  
முந்தைய பாகத்தில் for loop என்றால் என்னவென்பதை பார்த்தோம். இனி nested for loop ஐ பற்றி பார்ப்போம்.

Nested என்பதை அடுக்குகள் என்று புரிந்துகொள்ளலாம். அதாவது ஒரு for loop பின் உள்ளே இன்னொரு for loop இருப்பதுதான் nested for loop ஆகும்.

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

கூலி கொடுப்பதற்கென ஒரு கம்ப்யூட்டர் program ஐ நீங்கள் உருவாக்கியுள்ளீர்கள் என்று வைத்துக்கொள்வோம். உங்களுடைய algorithm எப்படி இருக்கும்? இப்படித்தானே...

For COUNT := 1 to 10 do
showmessage(“சாக்கு பையில் 1 மரக்கால் நெல் அளந்து போடவும்”)

அதாவது 10 மரக்கால் என்பது முடிவான பின்பு அதை எளிதாக for loop ல் எழுதிவிட்டோம். இந்த algorith தத்தை execute செய்தால் சாக்குபையில் 10 முறை நெல் அளந்து போடப்பட்டுவிடும்.

இது சாதாரண for loop தானே, இதில் nested for loop concept எங்கே இருக்கிறது என்கிறீர்களா? சூழ்நிலைகள்தான் புதுப்புது concept களை நமக்கு உருவாக்கி தருகின்றன. அன்றைய தினம் 5 பேர் வேலை செய்தார்கள் என்று வைத்துக்கொள்ளுங்கள். மேற்கண்ட algorithm படி பத்து மரக்கால் நெல்லை அளந்து போட்டுவிடுவீர்கள். ஒருவருடைய கூலி கொடுத்தாகி விட்டது. மற்ற 4 நபர்களுக்கு என்ன செய்வீர்கள். இந்த algorithm உதவாது அல்லவா? இப்பொழுது என்ன செய்யவேண்டும் என்று யோசியுங்கள்.

ஐடியா வந்துவிட்டது....

For COUNT := 1 to 10 do
showmessage(“சாக்கு பையில் 1 மரக்கால் நெல் அளந்து போடவும்”)

For COUNT := 1 to 10 do
showmessage(“சாக்கு பையில் 1 மரக்கால் நெல் அளந்து போடவும்”)

For COUNT := 1 to 10 do
showmessage(“சாக்கு பையில் 1 மரக்கால் நெல் அளந்து போடவும்”)

For COUNT := 1 to 10 do
showmessage(“சாக்கு பையில் 1 மரக்கால் நெல் அளந்து போடவும்”)

For COUNT := 1 to 10 do
showmessage(“சாக்கு பையில் 1 மரக்கால் நெல் அளந்து போடவும்”)

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

சரி 5 நபருக்கு ஓகே. ஒருவேளை 4 அல்லது 6 நபர்கள் வேலை செய்திருந்தால்... உங்கள் algorithm வேலை செய்யாதே... பிறகு எப்படி இதை solve செய்வது?

மறுபடியும் program ஐ திருத்தி எழுதுவீர்களா? உங்களுடைய program ஐ திருத்தாமல் எத்தனை நபர் வந்தாலும் கூலி கொடுப்பது மாதிரி எழுத முடியாதா?

யோசியுங்கள்...

நம்முடைய original code எப்படி இருந்தது?

For COUNT := 1 to 10 do
showmessage(“சாக்கு பையில் 1 மரக்கால் நெல் அளந்து போடவும்”)

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

மேற்கண்ட original code ஐ 5 தடவை திரும்பத்திரும்ப செயல்படுத்தினால் என்ன?

சரி வாங்க algorith தத்தை மாற்றுவோம்.

For labor := 1 to 5 do
  For COUNT := 1 to 10 do
     showmessage(“சாக்கு பையில் 1 மரக்கால் நெல் அளந்து போடவும்”)

மேற்கண்ட algorith தத்தில் ஒரு for loop பின் உள்ளே இன்னொரு for loop இருக்கிறதல்லவா? இதுதான் nested for loop ஆகும். இதில் 2 level கள் இருக்கின்றன. நமது தேவைக்கு தகுந்தவாறு எத்தனை level வேண்டுமானாலும் எழுதிக்கொள்ளலாம்.

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

இதற்காக நமது program ஐ கொஞ்சம் மாற்றவேண்டும்.

//please enter total number of labors. Let us assume 5 labors

TotalLabor := 5;

For labor := 1 to TotalLabor do
  For COUNT := 1 to 10 do
     showmessage(“சாக்கு பையில் 1 மரக்கால் நெல் அளந்து போடவும்”)

முதலாளிக்கு கொஞ்சம் நல்ல மனசு. 12 மரக்கால் கூலி கொடுக்க விரும்புகிறார். ஆனால் நமது program அதற்கு use ஆகாதே!

அதற்காகவும் program ஐ கொஞ்சம் மாற்றவேண்டும்.

//please enter total number of labors. Let us assume 5 labors

TotalLabor := 5;

//please enter total number of wages (in marakkaal) per labor. Let us assume 10 marakkaal

EachPersonWages := 10; //இதில் 12 ஐ கூட போடலாம்.

For labor := 1 to TotalLabor do
  For COUNT := 1 to EachPersonWages do
     showmessage(“சாக்கு பையில் 1 மரக்கால் நெல் அளந்து போடவும்”)

நம்ம program இப்போது முழுமையாக வேலை செய்யும். இதில் 2 for loop களை பயன்படுத்தியுள்ளோம். முதல் for loop (level 1) எத்தனை நபர் என்பதை தீர்மானிக்க உதவுகிறது. (அதற்குள் இருக்கும்) அடுத்த for loop (level 2) ஒவ்வொரு நபருக்கும் எத்தனை மரக்கால் என்பதை தீர்மானிக்க உதவுகிறது.

nested loop, nested for loop, loop example, sample calculation, faridh, elandangudi, programming tutorial, tamil tutorial


இதில் 4 variable களை பயன்படுத்தியுள்ளோம்.

TotalLabor எத்தனை தொழிலாளர்கள் என்பதை அறிவதற்காக.

EachPersonWages ஒருவருக்கு எத்தனை மரக்கால் கூலி என்பதை அறிவதற்காக.

Labor எத்தனையாவது labor ருக்கு கூலி கொடுக்கிறோம் என்பதை அறிவதற்காக.

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

நமது program முக்கு variable களை பயன்படுத்துவது போல் இயல்பான வாழ்க்கையிலும் நாம் variable களை பயன்படுத்தித்தான் வருகிறோம். இந்த 4 variable களில் ஒன்றை நமது மூளை பயன்படுத்தாமல் போனால்கூட நம்மால் சரியாக கூலி கொடுக்க முடியாது. எதற்காக இதை இங்கு சொல்கிறேன் என்றால் இயல்பான செயல்களை computerize (கணிணிமயமாக்கம்) செய்யவே program பயன்படுகிறது. கற்பனையாக உருவாக்கப்பட்ட எந்த program மையும் இயல்பான செயல்களுக்கு மாற்றாக பயன்படுத்த முடியாது. எனவே நாம் அன்றாடம் செய்யக்கூடிய அனைத்து செயல்களிலும் logic ஒளிந்துள்ளது. அதை கண்டுபிடித்துவிட்டால் program எழுதுவது எளிதாகிவிடும்.

Nested for loop ஐ பார்த்தாயிற்று. நமது program எவ்வாறு வேலை செய்தது என்பது இங்கே காணலாம்.

nested loop, nested for loop, loop example, sample calculation, faridh, elandangudi, programming tutorial, tamil tutorial

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

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

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


  
இத்தொடரின் 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 ஆகவோ மாற்றுவது என்பதை அடுத்து பார்ப்போம்.

இத்தொடரின் 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 ஆகவோ மாற்றுவது என்பதை அடுத்து பார்ப்போம்.

For Loop எதற்கு பயன்படுகிறது?



Loop என்றால் என்ன என்பதைப் பற்றியும் அது எவ்வாறு வேலை செய்கிறது என்பதைப் பற்றியும் முந்தைய பாகத்தில் பார்த்தோம்.

Loop என்றதும் அனைவருக்கும் நினைவில் வருவது For Loop தான். எனவே For loop ஐ பற்றியும் அது எப்படி வேலை செய்கிறது என்பதைப் பற்றியும் இங்கு பார்ப்போம்.

நமது program மில் இடம்பெறும் ஒரு சில statement களை குறிப்பிட்ட எண்ணிக்கையில் திரும்பத்திரும்ப execute செய்ய for loop பயன்படுகிறது.

இதற்கு ஆரம்ப எண்ணும் முடிவு எண்ணும் அவசியம் குறிப்பிட வேண்டும். எனவே ஆரம்ப எண்ணும் முடிவு எண்ணும் தெரிந்திருந்தால் for loop ஐ பயன்படுத்தி program எழுத முடியும்.

உதாரணத்திற்கு
1 முதல் 10 வரை நம்பரை சொல்ல

அடுத்து, முடிவு எல்லை தெரியாவிட்டால் for loop ஐ பயன்படுத்துவது நல்லது அல்ல.

உதாரணத்திற்கு Esc key ஐ press பண்ணும் வரையில் நம்பரை சொல்ல வேண்டும். இதில் esc key எப்பொழுது அழுத்தப்படும் என்பது யாருக்கும் தெரியாது. 5 வரை சொல்லிய பிறகும் அழுத்தப்படலாம் அல்லது 5 லட்சம் சொல்லிய பிறகும் அழுத்தப்படலாம்.

For Loop Syntax

1) simple for loop 

FOR counter_variable := start_value TO end_value DO Statement

2) for loop to execute block of statements

FOR counter_variable := start_value TO end_value DO
Begin
   Statement 1
   Statement 2
   and so on
End


3) for loop with incrementor

FOR counter_variable := start_value TO end_value STEP increment_by DO
Begin
   Statement 1
   Statement 2
   and so on

End

முந்தைய பாகத்தில் 10 நம்பரை சொன்னோம் அல்லவா அதை எப்படி for loop ஆக மாற்றுவது?

FOR அந்தஎண் := ஆரம்பஎண் TO முடிவுஎண் DO அந்த எண்ணை சொல்லவும்.

FOR I := 1 TO 10 DO ShowMessage( IntToStr( I ) )

for loop structure, how for loop work, karkandu, கற்கண்டு, loop

மேற்கண்ட படத்தில் for loop structure இருப்பதை காணலாம்.

part 1: இது ஒரேயொரு முறை மட்டும் execute ஆகும். அதாவது for loop ஆரம்பமாகும்போது மட்டும் இது execute செய்யப்படுகிறது. i என்கிற counter variable லில் ஆரம்ப எண் initialize செய்யப்படுகிறது.

part 2: இங்கு counter variable லில் உள்ள value முடிவு எண்ணை விட சிறியது தானா என்பது சோதிக்கப்படுகிறது.

part 3: part 2 வின் result ஆனது true ஆக இருந்தால் இங்கிருக்கும் statement கள் execute செய்யப்படுகிறது. அதாவது counter variable லில் உள்ள value சொல்லப்படுகிறது.

part 4: part 3 execute செய்யப்பட்ட பிறகு counter variable லில் உள்ள value வுடன் 1 கூட்டப்படுகிறது. ஒருவேளை இரண்டிரண்டாக கூட்ட வேண்டுமானால் இங்கே நீங்கள் அதை குறிப்பிட வேண்டும். அடுத்து part 2 வி்ற்கு control போகிறது.

உதாரணத்திற்கு ஒன்றிலிருந்து ஆரம்பித்து ஒற்றைப்படை நம்பராக 10 வரை சொல்லவேண்டுமென்றால் விடை எப்படி இருக்கும்?
1
3
5
7
9
இதை நாம் எவ்வாறு கண்டுபிடித்தோம் என்பதை பேப்பரில் எழுதி பின்னர் அதை எப்படி for loop ஆக மாற்றவேண்டும் என்பதை முயற்சி செய்யுங்கள்.

இதற்கு ஒவ்வொருவரும் ஒரு விதமாக விடை காணலாம்

எனக்கு தெரிந்த எளிதான வழி
for i := 1 to 10 step 2 do showmessage( inttostr( i ) )

இதை c++ language ல் இப்படி எழுதலாம்

for ( i = 1; i <= 10; i= i+2 )
{
cout << i ;
}

அதாவது part 4 பகுதியில் இரண்டிரண்டாக கூட்ட வேண்டுமென்று மாற்றியுள்ளதை கவனிக்கவும்.

Nested for loop ஐ பற்றி அடுத்து பார்ப்போம்.

Nested If என்றால் என்ன?



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

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

இனி...

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

stage 4
இனி நம்ம program மையும் improve செய்யவேண்டுமே! என்ன செய்ய?

கம்பவுண்டருடைய செயலை பட்டியல் போட்டு அதிலிருந்து ஏதாவது clue கிடைக்கிறதான்னு பார்ப்போம்.

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

இது தான் கம்பவுண்டர் (அட நீங்கதாங்க) பயன்படுத்துற if statement.

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

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

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

அதாவது ஒரு CONDITION ஐ evaluate செய்வதற்கு முன்பே இன்னொரு condition evaluate செய்யப்பட்டு TRUE ஆகியிருக்கவேண்டும். இதற்கு பொருத்தமான PROGRAMMING COMMAND என்ன இருக்கிறது?....

NESTED IF இருக்கே... இதை வச்சு எப்படி எழுதலாம்னு பார்ப்போம். 

Nested if
ஒரு if க்குள் இன்னொரு if ஐ போட்டு எழுதுவதை nested if என்று சொல்கிறோம். அதாவது ஒரு if expression true ஆகிவிட்டால் இன்னொரு if ஐ போட்டு எழுதுவதை nested if என்று சொல்கிறோம்.

இதனுடைய syntax

if boolean_expression1 then 
  if boolean_expression2 then statement_expression1_and_expression2_are_true
  else statement_expression1_is_true_but_expression2_is_false
else statement_expression1_is_false

nested if statements, nested if else, karkandu, கற்கண்டு, ஃபரீத், புரோகிராம் எழுதுவது எப்படி?

மேலே உள்ள படத்தில் வலது பக்கத்தில் சிவப்பு வண்ணத்தில் nested if structure உள்ளது.இடது பக்கத்தில் else if structure உள்ளது.

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

இதுதான் nested if statement.
nested if example, how to program, ஃபரீத் எலந்தங்குடி, புரோகிராம் எழுதுவது எப்படி?

மேலே உள்ள படத்தில் வலது பக்கத்தில் சிவப்பு வண்ணத்தில் nested if ஐ பயன்படுத்தியுள்ளோம்.

இதுவரை நாம் பார்த்த if வகைகள்:
1. if then (simple if)
2. if then else
3. if..else if (evaluate second expression if first one is false)
4. nested if (if within if; evaluate second expression if first one is true)

If structure ரின் 4 பாகத்தையும் நாம் பார்த்துவி்ட்டோம். மேலே உள்ள flow chart ஆனது ஒரு கம்பவுண்டரின் செயல்களை ஓரளவுக்கு (முழுமையாக இல்லை) அழகாக விவரிக்கிறது. இப்படி விரிவுபடுத்த என்னன்னவெல்லாம் யோசித்தோம் என்பதை நினைவுபடுத்தி பாருங்கள். இதை நீங்கள் இன்னும் விரிவுபடுத்தலாம்

Conditional statement அனைத்தும் நமது நிஜ வாழ்வோடு எப்படி ஒத்துப்போகிறது  என்பதை கவனித்தீர்களா? இதிலிருந்து நமக்கு என்ன தெரிகிறது? அன்றாடம் நடக்கும் நிகழ்வுகளை சரியாக கவனித்தாலே நமக்கு லாஜிக் எளிமையாக புரிய ஆரம்பிக்கும். பிறகென்ன... அந்த லாஜிக்குளை programming command டுகளாக மாற்றிவிட முடியும்.

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