Tuesday, July 3, 2018

Algorithm, Pseudo code, Flowchart என்றால் என்ன?

Algorithm (அல்காரிதம்) என்றால் என்ன? 

ஒரு Problem முக்கு நாம் எப்படி Solution கொடுக்கப் போகிறோம் என்கிற விவரத்தை step by step களாக எழுதுவதையே Algorithm என்கிறோம். எனவே நாம் எழுதும் step கள் அனைத்தும் ஒழுங்கான order ல் தெளிவாக இருக்க வேண்டும். அதாவது logic சரியாக இருக்கவேண்டும்.

Algorithm மானது Sequence, Selection, and Repetition என்கிற method களில் எழுதப்படுகிறது.அவை ஒவ்வொன்றையும் இங்கே நாம் பார்ப்போம்.

1. Sequential Control Algorithm

Sequential Control Algorith தத்தில் எழுதப்பட்ட step கள் அனைத்தும் எழுதப்பட்ட வரிசையில் execute செய்யப்படும். அதாவது அனைத்து step களும் ஒரேயொரு முறை execute செய்யப்படும்.

இரண்டு எண்களை கூட்டி விடையை காண்பிக்க Sequential Control முறைப்படி ஒரு Algorithm எழுத முடியும். அந்த Algorithm எப்படி இருக்கும் என்பதை இங்கே கவனியுங்கள்...

1. முதல் எண்ணை வாங்கவேண்டும்
2. இரண்டாம் எண்ணை வாங்கவேண்டும்
3. முதல் எண்ணையும் இரண்டாம் எண்ணையும் கூட்ட வேண்டும்
4. கூட்டி வந்த விடையை காட்ட வேண்டும்

இந்த Alogrith தத்தில் 4 step கள் எழுதப்பட்டுள்ளன. மேற்கண்ட step களை எழுதப்பட்ட வரிசையில் ஒரு தடவை செயல்படுத்தினாலே விடை கிடைத்துவிடும். இதைத்தான் Sequential control Algorithm என்கிறோம்.

இங்கே நாம் ஒன்றை கவனிக்கவேண்டும். அதாவது இந்த Algorithm தமிழில் எழுதப்பட்டுள்ளது. இப்படி மனித மொழியில் எழுதுவதை Pseudo code என்று சொல்கிறோம். இதுமட்டுமல்லாமல் நமது Algorith தத்தை வடிவங்கள் மூலமாகவும் (graphical representation) விவரிக்க முடியும். இதைத்தான் flowchart என்று கூறுகிறோம்.

Pseudo code (ஸூடோகோட்) என்றால் என்ன?

மனிதர்களுக்கு (கவனிக்கவும் கம்ப்யூட்டருக்கு அல்ல) விளங்கக்கூடிய முறையில் விளக்கமாக High level language ல் Algorithm எழுதுவதை Pseudo code என்கிறோம். எனவே Computer க்கு புரியும் மாதிரி எழுதும் Program ல் இருப்பது போன்று variable declaration, syntax, subroutine எல்லாம் Pseudo code ல் இருக்காது.

நீங்கள் algorithm சம்பந்தப்பட்ட புத்தகங்களை படித்தீர்களானால் இந்த முறையில் தான் Program கள் எழுதப்பட்டிருக்கும். அவற்றை உங்களுக்கு விருப்பமான மொழியில் (c, vb, java, Delphi) Programming command டுகளாக மாற்றி எழுதிக்கொள்ளலாம்.

ஒரு Program எழுதி அதை எழுதச்சொன்னவருக்கு புரியவைப்பதை விட Pseudo code ன் வாயிலாக எளிதில் புரியவைத்துவிடலாம். Algorith தத்தை Pseudo code ல் எழுதும் போது program symbol களையும் இணைத்து எழுதலாம். அதை இங்கே பார்ப்போம்...

1. READ first number
2. READ second number
3. COMPUTE Total = first number + second number
4. DISPLAY Total 

இங்கே READ, COMPUTE, DISPLAY ஆகியவை Program symbol ஆகும்.

Flowchart என்றால் என்ன?

நமது Algorith தத்தை வடிவங்கள் மூலமாக (graphical representation) குறிப்பிடுவதைத்தான் flowchart என்று கூறுகிறோம்.

விளங்கும்படி சொல்வதானால் வீடு கட்ட engineer போட்டுத்தரும் blue print plan போன்றதுதான் இந்த flowchart. அந்த கட்டிட பிளானை பார்த்தாலே நமக்கு வீடு எப்படி இருக்கப்போகிறது என்பது விளங்கும். இந்த பிளானை (வடிவங்களின் அர்த்தம் தெரிந்த) எந்த ஒரு மனிதரும் புரிந்து கொள்ளமுடியும். பிரச்சனைகளை எளிதாக கண்டுபிடித்துவிட முடியும். வாசற்படியை இங்கே வையுங்கள்; ஒரு ஜன்னல் போதாது; மாடிப்படியை காணோம் என்று பிரச்சனைகளை கண்டுபிடித்து விடலாம்.

Flowchart ல் ஒவ்வொரு step or process ம் ஒரு கட்டத்தில் குறிப்பிடப்பட்டிருக்கும். இரு கட்டங்களுக்கிடையில் உள்ள அம்புக்குறி அவையிரண்டுக்கும் இடையில் data flow எப்படி நடக்கிறது என்பதை விவரிக்கும். மேற்கண்ட Algorith தத்தை flowchart ல் இப்படி எழுதலாம்.
karkandu sequential control algorithm flowchart pseudocode தமிழ் கல்வி கற்கண்டு அல்காரிதம் கம்ப்யூட்டர் புரோகிராமர் புரோகிராம்
Flowchart shows sequential control algorithm
2. Selection control Algorithm

Selection Control Algorith தத்தில் step கள் பல கிளைகளாக எழுதப்பட்டிருக்கும். அவற்றில் ஏதேனும் ஒரு கிளையில் எழுதப்பட்ட step கள் மட்டும் எழுதப்பட்ட வரிசையில் execute செய்யப்படும்.

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

1. வீட்டை விட்டு புறப்பட்டு வெளியே போகிறோம்
2. தெருவில் இறங்கி நடக்கிறோம்
3. கடைக்கு போய் அரிசி வாங்குகிறோம்
4. திரும்பி வீட்டுக்கு வருகிறோம்


இது இன்னமும் Sequential control Algorithm ஆகத்தான் இருக்கிறது.

சரி. கடைக்கு போகும் வழியில் எதிரே நண்பர் வந்துவிட்டார் என்று வைத்துக்கொள்வோம். நமது algorithm எவ்வாறு மாற்றப்படுகிறது என பாருங்கள்.

1. வீட்டை விட்டு புறப்பட்டு வெளியே போகிறோம்
2. தெருவில் இறங்கி நடக்கிறோம்
3. எதிரே வந்த நம் நண்பர் அவர் வீட்டுக்கு நம்மை அழைக்கிறார்
4. போகிறதா வேண்டாமா என்று முடிவெடுக்க வேண்டிய சூழ்நிலை

இங்கே sequential control algorithm வேலை செய்யாது. ஏனெனில் decision எடுக்கவேண்டிய சூழ்நிலை. Decision எடுத்தால் இரண்டில் ஒன்றுதான் சாத்தியப்படும். ஒன்று அவர் வீட்டுக்கு போகவேண்டும்; இல்லை போகக்கூடாது. என்ன செய்வது? நமது மூளை இப்போது Selection control algorithm போட்டு அதன்படி வேலைசெய்கிறது. விளைவு? 4 வது step இரு பிரிவுகளாக பிரிக்கப்படுகிறது.

4.1. அவர் வீட்டுக்கு போகலாமா? என்ற கேள்வியை தயார் செய்கிறது.

4.2. போகலாம் என்று பதில் கிடைத்தால் அதை செயல்படுத்த அவர் வீட்டுக்கு போகச்சொல்லி  ஒரு பக்கம் algorithm எழுதுகிறது.

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

5. அடுத்து கடைக்கு போய் அரிசி வாங்கிக்கொண்டு வீட்டுக்கு திரும்புகிறோம்.

மேலை உள்ள algorithm இரு வகையில் செயல்படும் வண்ணம் வடிவமைக்கப்பட்டுள்ளதை நீங்கள் காணலாம்.

முதல் வகை: நண்பர் வீட்டுக்கு செல்லுதல்
Execution Order is 1, 2, 3, 4.1, 4.2, 5

இரண்டாம் வகை: நண்பர் வீட்டுக்கு செல்லவில்லை
Execution Order is 1, 2, 3, 4.1, 4.3, 5

இன்னொரு உதாரணம்: இரண்டு எண்களில் எது பெரியது என்பதை கண்டுபிடிக்க Algorithm எழுதப்பட்ட முறையை கவனியுங்கள்.

1. முதல் எண்ணை வாங்கவேண்டும்
2. இரண்டாம் எண்ணை வாங்கவேண்டும்
3. இரண்டு எண்களில் எது பெரியது என்பதை காட்ட வேண்டும்

இதை Pseudo code ல் எழுதுவோமா?

1. READ first number
2. READ second number
3. DISPLAY biggest number

மேலே நாம் கண்ட algorithm மேலோட்டமாக சொல்லப்பட்டுள்ளது. அதாவது 1,2 ல் ஒன்றும் பிரச்சினை இல்லை. ஆனால் 3 ல் எழுதியுள்ள பெரிய நம்பரை எப்படி கண்டுபிடிக்கப்போகிறோம் என்பதை விளக்கமாக சொல்லவில்லை. இதை நாம் divide and conquer method பிரகாரம் சிறிய step களாக எழுதப்போகிறோம்.

1. READ first number
2. READ second number
3. IF First number is BIGGER THAN second number THEN
        3.1 DISPLAY First number
    ELSE
        3.2 DISPLAY Second number

இரண்டு நம்பரில் பெரிய நம்பர் எதுவென்று கண்டுபிடிக்க Sequence Control Algorithm உதவாது. ஏனென்றால் இரண்டில் ஏதாவது ஒன்றுதான் பெரியதாக இருக்கமுடியும். இதுவா அல்ல அதுவா என்ற நிலை வரும்போது Selection Control Algorithm பயன்படுத்தப்படுகிறது.

மேலே உள்ள step 3 ல் உள்ள condition true என்றால் 3.1 step execute செய்யப்பட்டு 3.2 execute செய்யப்படாமல் Program முடிந்துவிடும்.

மேலே உள்ள step 3 ல் உள்ள condition false என்றால் 3.1 step execute செய்யப்படாமல் 3.2 execute செய்யப்பட்டு Program முடிந்துவிடும்.



karkandu selection control algorithm flowchart pseudocode கற்கண்டு அல்காரிதம் கம்ப்யூட்டர் புரோகிராமர் புரோகிராம்
Flowchart shows selection control algorithm
3. Repetition control Algorithm

Repetition control Algorith தத்தில் எழுதப்பட்ட step கள் குறிப்பிட்ட எண்ணிக்கையில் திரும்ப திரும்ப execute செய்யப்படும்.

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

1. திண்ணையில் அமர்ந்து கொள்ளுதல்
2. தண்ணீர் கேட்டு வருபவருக்கு 
3. குவளையை கழுவிவிட்டு தண்ணீர் முகர்ந்து கொடுப்பது

இது Sequential control method ல் எழுதப்பட்டுள்ளது. அடுத்து

4. தண்ணீர் கேட்டு வேறொருவர் வருகிறார்
5. குவளையை கழுவிவிட்டு தண்ணீர் முகர்ந்து கொடுப்பது

இதுவும் Sequential control method ல் எழுதப்பட்டுள்ளது. அடுத்து

6. தண்ணீர் கேட்டு வேறொருவர் வருகிறார்
7. குவளையை கழுவிவிட்டு தண்ணீர் முகர்ந்து கொடுப்பது

இதுவும் Sequential control method ல் எழுதப்பட்டுள்ளது. அடுத்து வேறொருவர் வருகிறார்.... இப்படியே 2 மற்றும் 3 வது step திரும்ப திரும்ப செயல்படுத்தப்படுகிறது. இப்போது 1000 நபர் வந்தால்.... அப்பப்பா நமது algorith தத்தில் 2001 step கள் தேவைப்படும்.

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

இங்குதான் repetitive control algorithm நமக்கு கைகொடுக்கிறது. ஆம்! நமது மூளையும் அந்த method ல் தான் algorithm எழுதுகிறது.

ஒரே செயலை திரும்ப திரும்ப செயல்படுத்த sequential control and selection control இரண்டுமே உதவாது. Repetitive control algorithm தான் சரிப்பட்டுவரும். இப்போது திருத்தப்பட்ட algorithm எப்படி இருக்கும் என்று பார்க்கலாம்.

1. திண்ணையில் அமர்ந்து கொள்ளுதல்
2. தண்ணீர் கேட்டு வரும் ஒவ்வொருவருக்கும்
3. குவளையை கழுவிவிட்டு தண்ணீர் முகர்ந்து கொடுப்பது

இங்கே 2 வது step ஐ சிறிது மாற்றிவிட்டால் எத்தனை பேர் வந்தாலும் தண்ணீர் கொடுக்க வேண்டும் என்று நமது program செயல்படும்.

இதை Pseudo code ஆக மாற்றுவோமா?

1. READY to serve
2. FOR EACH Person who ask water
    3. WASH Tumbler
    4. GIVE water
5. END FOR

Step 2 முதல் 5 வரை உள்ளதைத்தான் Loop (sequence of computer operations repeated until some condition is satisfied) என்று சொல்வார்கள்.


karkandu repetitive control algorithm flowchart pseudocode கற்கண்டு அல்காரிதம் கம்ப்யூட்டர் புரோகிராமர் புரோகிராம்
Flowchart shows repetitive control algorithm

Algorithm, pseudo code, flowchart என்றால் என்னவென்பது இப்போது உங்களுக்கு விளங்கியிருக்கும் என நம்புகிறேன். 

Programming building blocks என்றால் என்ன?

Program என்றால் என்ன?

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

Programming building blocks என்றால் என்ன?

எந்தவொரு Programming Language ஐ எடுத்துக்கொண்டாலும் அதில் சில அடிப்படையான விசயங்கள் இருக்கும். நீங்கள் எழுதும் program எதுவாக இருந்தாலும் இந்த அடிப்படைகளை கொண்டுதான் உங்களால் எழுதமுடியும். இதைத்தான் Programming building blocks அல்லது Programming elements என்கிறோம்.


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

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

Programming building blocks ல் என்னென்ன உள்ளன? 
  • Variables
  • Data types
  • Identifiers
  • Constants
  • Operators
  • Expressions
  • Comments
  • Assignment statements
  • Conditional statements
  • Looping statements
  • Simple statements
  • Compound statements
  • Functions
  • Parameters
  • Procedures
  • Scope

Do..While loop

முந்தைய பாகத்தில் while loop பானது ஒரு condition true வாக இருக்கும் வரையில் குறிப்பிட்ட statement களை திரும்பத் திரும்ப execute செய்யும் என்பதை பார்த்தோம் அல்லவா? அதனை சற்று நினைவுபடுத்தி பார்த்துவிட்டு மற்றவைகளை பார்ப்போம்.

WHILE this_boolean_condition_is_true
BEGIN
  execute these statements
  your statements here
END

இது எவ்வாறு வேலை செய்ததென்று பார்த்தோம்?

step 1 : முதலில் this_boolean_condition_is_true என்பது true ஆக இருக்கிறதா? இல்லை false ஆக இருக்கிறதா? என்பது evaluate செய்யப்படுகிறது.

step 2 : ஒருவேளை step 1 னுடைய result false ஆக இருந்தால் begin மற்றும் end டுக்கு நடுவில் இருக்கும் statement கள் execute செய்யப்படாது. end டுக்கு அடுத்துள்ள part க்கு control சென்று விடும்.

step 3: ஒருவேளை step 1 னுடைய result true ஆக இருந்தால் begin மற்றும் end டுக்கு நடுவில் இருக்கும் statement கள் execute செய்யப்படும். பின்னர் மீண்டும் step 1 க்கு control செல்லும்.

இதில் கவனிக்க வேண்டியது என்னவென்றால் இங்கு condition முதலில் evaluate செய்யப்பட்டு பின்னர் அதன் முடிவுக்கேற்ப statement டுகள் execute செய்யப்படுகின்றன.

ஆனால் ஒரு சில சமயங்களில் இதை தலைகீழாக செய்யவேண்டிய சூழ்நிலை ஏற்படலாம். அதாவது statement டுகள் முதலில் execute செய்யப்பட்டு அதன் பின்னர் condition evaluate செய்யப்பட்டு அந்த condition true வாக இருக்கும் வரையில் மீண்டும் அந்த statement களை திரும்பத்திரும்ப execute செய்யவேண்டி வரும்.

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

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

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

என்ன நடக்கும் என்பதை step by step ப்பாக பார்ப்போம். அப்போதுதான் எளிதில் விளங்கும்.

step 1 : அம்மா! மோட்டார் சைக்கிள் எனக்கு வேண்டும். அப்பாவிடம் சொல்லி வாங்கித்தாங்க என்று கேட்கிறீர்கள்
step 2 : அம்மாவும் அப்பாவிடம் கேட்கிறார்
step 3 : அப்பா இப்போது முடியாது என்கிறார்.
step 4 : மோட்டார் சைக்கிள் கிடைக்காது போல இருக்கிறது, இன்னும் கொஞ்சம் அழுத்தமாக கேட்கவேண்டும் என்று முடிவு செய்கிறீர்கள். மீண்டும் step 1 க்கு போகிறீர்கள்.

இங்கே முதலில் condition எதுவும் evaluate செய்யப்படவில்லை பார்த்தீர்களா? step 1 மற்றும் 2 ல் சில காரியங்கள் (statements execute) செய்யப்படுகிறது. அதன் பின்னர் step 3 யில் அதன் result தெரிகிறது.

இப்பொழுது step 3 யில் கிடைத்த பதில் (result or condition) evaluate செய்யப்படுகிறது. அதன் அடிப்படையில் திரும்பவும் step 1 க்கு போகவேண்டுமா அல்லது வேண்டாமா என்பது தீர்மானிக்கப்படுகிறது.

இதன் முடிவு எப்படி எல்லாம் இருக்கும்?

வாய்ப்பு 1:
step 3: அப்பா வாங்கித் தரலாம் என்கிறார்
step 4: மோட்டார் சைக்கிள் கிடைத்துவிடும் போல தெரிகிறது. மீண்டும் step 1 க்கு போகவேண்டாம் என்று தீர்மானிக்கிறீர்கள்.

வாய்ப்பு 2:
step 3: பொருளாதார வசதியைக் காட்டி அப்பா இப்போது முடியாது என்கிறார்.
step 4 : மோட்டார் சைக்கிள் கிடைக்காது போல இருக்கிறது, நிலைமையை உணராமல் இன்னும் கொஞ்சம் அழுத்தமாக கேட்கவேண்டும் என்று முடிவு செய்கிறீர்கள். மீண்டும் step 1 க்கு போகிறீர்கள்.

வாய்ப்பு 3:
step 3: பொருளாதார வசதியைக் காட்டி அப்பா இப்போது முடியாது என்கிறார்.
step 4 : மோட்டார் சைக்கிள் கிடைக்காது போல இருக்கிறது, நிலைமையை உணர்ந்து உங்கள் கோரிக்கையை கைவிட்டுவிடலாம் மீண்டும் step 1 க்கு போகவேண்டாம் என்று தீர்மானிக்கிறீர்கள்.

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

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

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

நீங்கள் புரோகிராமராக ஒரு வேலையில் சேர்ந்தால், for loop ஐ பயன்படுத்தி while loop பை பயன்படுத்தி if condition போட்டு function ஒன்றை எழுதி ஒரு புரோகிராம் செய்து தாருங்கள் என்று ஒருவரும் உங்களை கேட்கமாட்டார்கள்.

அல்லது find the biggest number, find the Fibonacci series, reverse the string என்றெல்லாம் கேட்கமாட்டார்கள். அப்படி கேட்பார்கள் என்றால் நாம் மனப்பாடம் பண்ணிகொள்ளலாம். ஆனால் வேலைக்கு சேர்ந்த பின்பு மண்டை காய்ந்து போகிற மாதிரி bus company ஐ நிர்வகிக்க ஒரு புரோகிராம் வேண்டும். school management program வேண்டும் என்று கேட்பார்கள்.

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

சரி bus company க்கு ஒரு program வேண்டுமென்றால் நாமே கற்பனையாக ஒரு concept ஐ உருவாக்கி அதை புரோகிராமாக செய்து கொடுக்கமுடியுமா? நீங்கள் செய்தது bus company நடைமுறைக்கு ஒத்துவரவில்லை என்று உங்களையும் உங்கள் program மையும் ஓரங்கட்டிவிடுவார்கள்.

பின்னே என்னதான் செய்யவேண்டும்? பஸ் கம்பெனியில் அன்றாடம் என்னென்ன நடக்கிறது என்பதை உள்வாங்கி; கேள்விகள் கேட்டு; புரிந்துகொண்டதை அவர்களுக்கு விளக்கி; அதில் உங்களுக்கும் அவர்களுக்கும் ஏற்படும் சந்தேகங்களுக்கு விடைகண்டு; அதன்பிறகு நீங்கள் எழுதிக்கொடுக்கும் program இருக்கிறதே, அதன் மதிப்பே தனி.

பஸ் கம்பெனியில் நடக்கும் ஒரு சின்ன விசயத்தை புரிந்துகொள்ளாமல் போனாலும் உங்கள் புரோகிராமில் ஒரு ஓட்டை விழுந்துவிடும்.

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

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

பயிற்சியை தொடங்குவோம்.

மேற்கண்ட மோட்டார் சைக்கிள் உதாரணத்தில்  4 step புகள் இருக்கின்றன. அவை திரும்பத்திரும்ப செயல்படுத்தப்படுகின்றன. இதற்கு loop பயன்படும் என்பது விளங்குகிறது.

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

அடுத்ததாக இதை while loop பயன்படுத்தி எழுத முடியுமா என்று பார்க்கலாம். முடியாது. ஏனென்றால் நாம் பார்த்த while loop ப்பில் condition முதலில் evaluate செய்யப்படவேண்டும். மோட்டார் சைக்கிள் கிடைக்கவி்ல்லையானால் என்பது condition. நமது செயலில் இந்த condition ஐ முதலில் போடமுடியாது. உங்களிடம் அப்பா மோட்டார் சைக்கிள் வாங்கித்தரமாட்டேன் என்று முதலில் கூறுவாரா என்ன? 

கேட்டபிறகுதான் பதில் தருவார். எனவே இங்கே while loop ப்பும் சரிவராது.

WHILE மோட்டார் சைக்கிள் கிடைக்கவி்ல்லை மீண்டும் கேட்கவும்
BEGIN
  step 1 : அம்மா! மோட்டார் சைக்கிள் எனக்கு வேண்டும். அப்பாவிடம் சொல்லி வாங்கித்தாங்க என்று கேட்கிறீர்கள்
  step 2 : அம்மாவும் அப்பாவிடம் கேட்கிறார்
  step 3 : அப்பா இப்போது முடியாது என்கிறார்.
 step 4 : மோட்டார் சைக்கிள் கிடைக்காது போல இருக்கிறது, இன்னும் கொஞ்சம் அழுத்தமாக கேட்கவேண்டும் என்று முடிவு செய்கிறீர்கள். மீண்டும் step 1 க்கு போகவேண்டும். அல்லது கிடைத்துவிட்டால் step 1 க்கு போகவேண்டாம்.
END

நமது செயலை while loop ப்பில் இப்படித்தான் போடமுடியும். இது சரிவராது.
வேறு உபாயம் இருக்கிறதா? தேடிப்பார்த்ததில் do..while loop இருக்கிறதே!

Do..While loop பின் syntax

DO
  execute these statements
  your statements here
WHILE this_boolean_condition_is_true

do while loop example, mohamed riyadul faridh, j.m.r. faridh, முஹம்மது ரியாதுல் ஃபரீத், முஹம்மது ரியாதுல் பரீத், முகம்மது

DO
  step 1 : அம்மா! மோட்டார் சைக்கிள் எனக்கு வேண்டும். அப்பாவிடம் சொல்லி வாங்கித்தாங்க என்று கேட்கிறீர்கள்
  step 2 : அம்மாவும் அப்பாவிடம் கேட்கிறார்
  step 3 : அப்பா இப்போது முடியாது என்கிறார்.
 step 4 : மோட்டார் சைக்கிள் கிடைக்காது போல இருக்கிறது, இன்னும் கொஞ்சம் அழுத்தமாக கேட்கவேண்டும் என்று முடிவு செய்கிறீர்கள். மீண்டும் step 1 க்கு போகவேண்டும். அல்லது கிடைத்துவிட்டால் step 1 க்கு போகவேண்டாம்.
WHILE இன்னொரு முறை கேட்கனுமா?

do while loop example, mohamed riyadul faridh, j.m.r. faridh, முகம்மது ரியாதுல் ஃபரீத், முகம்மது ரியாதுல் பரீத், முகமது ரியாதுல் பரீத்
condition true / false என்பது இறுதியில் evaluate செய்யப்படுவதால் ஒரு தடவையாவது உங்கள் கோரிக்கையை execute செய்ய do while loop உதவுகிறது.

The difference between do..while and while..do loop is that do..while evaluates its expression at the bottom of the loop instead of the top. Therefore, the statements within the do block are always executed at least once.

புரிந்ததா?

While loop என்றால் என்ன?

ஒரு condition true வாக இருக்கும் வரையில் குறிப்பிட்ட statement களை திரும்பத்திரும்ப execute செய்ய while loop பயன்படுகிறது.

இதையேதான் for loop செய்கிறதே, பின்பு அதற்கும் இதற்கும் என்ன வித்தியாசம் என்று கேட்கிறீர்களா? வித்தியாசம் இருக்கிறது. For loop வேலை செய்வதற்கு ஆரம்ப எண்ணும் முடிவு எண்ணும் அவசியம் தேவை. ஆனால் while loopபிற்கு ஆரம்ப எண், முடிவு எண் அவசியமில்லை, தேவையானால் வேறுவகையில் பயன்படுத்திக் கொள்ளலாம்.

While loop பின் syntax

WHILE this_boolean_condition_is_true
BEGIN
  execute these statements
  your statements here
END

மேலே இருக்கும் while loop எப்படி வேலை செய்கிறதென்பதை இனி பார்ப்போம்.

while loop, mohamed riyadul faridh, new era technology, do while loop

step 1 : முதலில் this_boolean_condition_is_true என்பது true ஆக இருக்கிறதா? இல்லை false ஆக இருக்கிறதா? என்பது evaluate செய்யப்படுகிறது.

step 2 : ஒருவேளை step 1 னுடைய result false ஆக இருந்தால் begin மற்றும் end டுக்கு நடுவில் இருக்கும் statement கள் execute செய்யப்படாது. end டுக்கு அடுத்துள்ள part க்கு control சென்று விடும்.

step 3: ஒருவேளை step 1 னுடைய result true ஆக இருந்தால் begin மற்றும் end டுக்கு நடுவில் இருக்கும் statement கள் execute செய்யப்படும். பின்னர் மீண்டும் step 1 க்கு control செல்லும்.

இப்படியாக this_boolean_condition_is_true என்பது true ஆக இருக்கும் வரை while loop தனக்குள் இருக்கும் statement களை திரும்பத்திரும்ப execute செய்துகொண்டேயிருக்கும்.

இப்படியே execute செய்துகொண்டிருந்தால் endless loop ஆக ஆகிவிடுமே? program hang ஆக விடுமே என்ற கேள்வி எழும். உண்மைதான் for loop ஐ போன்று இத்தனை முறை execute செய்துவிட்டு வெளியேறிவிடு என்று இதில் நாம் எழுதப்போவதில்லை. பிறகு எப்படி while loop முடிவுக்கு வருகிறது?

while loop ல் statement எழுதுகிறோம் அல்லவா? அங்குதான் while loop பின் முடிவு எல்லை எதுவென்று தீர்மானிக்கப்படுகிறது.

அதாவது while loop execute ஆகினால் ஏதாவது ஒன்று நடக்கும் அல்லவா? அந்த ஒன்றின் அடிப்படையில் while loop ஐ தொடர்வதா வேண்டாமா என்பதை நம்மால் தீர்மானிக்க முடியும்.

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

எப்படி எழுதுவீர்கள்?

1. கிணறு வெட்ட வேண்டிய இடத்தை தேர்வு செய்யவும்.
2. இத்தனை அடி ஆழம் கிணறு வெட்டவும்.

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

அவர்கள் கேள்வி நியாயமாக இருக்கிறது.

10 அடிதான் கிணறு வெட்ட வேண்டும் என்பதை முன்னரே தீர்மானிக்க இயலாது என்பதுதான் யதார்த்தமான உண்மை (ஆனால் for loop புக்கு முடிவு எல்லை ஆரம்பத்திலேயே தீர்மானிக்கப்பட்டுவிடுகிறது என்பதை கவனத்தில் கொள்ளவும்). பின்னே இந்த மாதிரி வேலைகளுக்கு முடிவு எல்லையை எப்படி வரையறுப்பது?

லாஜிக் இல்லாமல் எவராலும் கிணறு வெட்ட முடியாது. சரி யோசிப்போம்...

சரி 20 அடி என்று மாற்றுவீர்களா? இதிலும் அதே பிரச்சனை உள்ளது.

பின்னே எப்படித்தான் கிணறு வெட்ட algorithm எழுதுவது?

1. கிணறு வெட்ட வேண்டிய இடத்தை தேர்வு செய்யவும்.
2. தண்ணீர் கிடைக்கும் வரை கிணறு வெட்டவும்.

சூப்பர்! இதைத்தான் யதார்த்தமாக யோசிப்பது என்பது.

மேலோட்டமாக இருக்கும் 2 ஆவது step ல் பல விசயங்கள் அடங்கியுள்ளன. அவற்றை விவரித்து எழுதினால் தான் while loop ஐ பற்றி நன்றாக அறிந்துகொள்ளமுடியும்.

எப்படி விவரித்து எழுதுவது?
யோசியுங்கள்....

1. கிணறு வெட்ட வேண்டிய இடத்தை தேர்வு செய்யவும்.
2. தண்ணீர் கிடைக்கும் வரை
  2.1. பள்ளம் தோண்டவும்
  2.2. ஒருவேளை தண்ணீர் கிடைத்து விட்டால் தோண்டுவதை நிறுத்தவும்
 2.3 ஒருவேளை 200 அடி ஆழம் வரை தோண்டியும் தண்ணீர் கிடைக்கவில்லையென்றால் தோண்டுவதை நிறுத்தவும்

எவ்வளவு எதார்த்தமான வழிமுறை பார்த்தீர்களா? இதில் ஏதாவது கற்பனை இருக்கிறதா?

அவ்வளவுதான் இப்போது லாஜிக் கிடைத்துவிட்டது.

இதை while loop பயன்படுத்தி எழுதுவோமா?

while  தண்ணீர் கிடைக்கும் வரை 
begin
    பள்ளம் தோண்டவும்
    ஒருவேளை தண்ணீர் கிடைத்து விட்டால் தோண்டுவதை நிறுத்தவும்
  ஒருவேளை 200 அடி தோண்டியும் தண்ணீர் கிடைக்கவில்லையென்றால் தோண்டுவதை நிறுத்தவும்
end

இங்கு 200 அடி என்பது எங்கள் ஊர் மக்கள் எவ்வளவு அடி அதிகபட்சம் வெட்டுவார்கள் என்பதை தெரிவித்ததால் அப்படி போட்டுள்ளேன். மற்றபடி அவரவர் தேவைக்கேற்ப முடிவு எல்லை மாறுபடும்.

while loop example, how while loop works, j.m.r.faridh


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

இந்த மாதிரி விசயத்துக்கு for loop சரிப்பட்டு வராது என்பது இப்பொழுது உங்களுக்கு புரிந்திருக்கும் என்று நம்புகின்றேன்.

while loop ஐ பற்றி தெரிந்துகொள்ள இன்னும் நிறைய விசயங்கள் உள்ளன. அவற்றை அடுத்த பாகத்தில் பார்ப்போம்.

Nested for 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 இருப்பதை உணரமுடிகிறது.