Saturday, June 30, 2012

5 Statement களில் எத்தனை வகைகள் உள்ளன?

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

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


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

Assignment Statement

ஒரு value வை ஒரு variable லில் assign செய்யவேண்டும் என்பதைச் சுட்ட இந்த assignment statement பயன்படுகிறது. Assign செய்வது என்பதை store செய்வதென்று கூட சொல்லலாம்.

இதன் மூலம் ஒரு value ஒரு variable லில் store செய்யப்படுகிறது.

இதன் syntax  இங்கே தரப்பட்டுள்ளது.

variable assignment_operator expression

உதாரணம்
A := 10;
B := A;

இங்கே கவனிக்க வேண்டியது என்னவென்றால் variable லும் expression னும் same type ஆகவோ அல்லது compatible type ஆகவோ இருக்கவேண்டும். இல்லையென்றால் இது வேலை செய்யாது.

ஒரு integer variable லில் string value வை store செய்யமுடியாது. (incompatible type)
ஒரு integer variable லில் floating value வை store செய்யமுடியாது. (incompatible type)
ஆனால் floating variable லில் integer value வை store செய்யமுடியும்.(compatible type)

எனவே நீங்கள் படிக்கும் programming language உடைய type compatibility யை அவசியம் அறிந்து கொள்ளவேண்டு்ம். 

Conditional Statement

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

ஒவ்வொருவரும் தங்களுடைய Logic ஐ பயன்படுத்தித்தான் எந்தவொரு செயலையும் செய்து வருகின்றோம்.

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

இதில் என்ன லாஜிக் இருக்கிறது என்கிறீர்களா?

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

ஏனென்றால் அந்த குழந்தைக்கு  கடைக்கு போய் பொருட்களை வாங்கிவருவது என்றாலே என்னவென்று விளங்காது.

அடுத்து
ஏழு வயது வயது பையனை கடைக்கு அனுப்பலாம், அவனால் ஓரளவுக்கு சொன்னதை சொன்னபடி வாங்கிவர முடியும்.

ஏன்? எப்படி என்று யோசித்தீர்களா?

ஏனென்றால் அந்த சிறுவனுக்கு கடைக்கு போய் பொருட்களை வாங்கிவருவது என்றால் என்னவென்று ஓரளவுக்கு விளங்குகிறது.

சிலவேளை தவறுகள் நடக்கலாம். அம்மா லாஜிக்கை சொல்லிக் கொடுப்பார்கள்.

எப்படி?

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

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

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

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

தேவைக்கு ஏற்ப தினமும் லாஜிக்கை பயன்படுத்துகிறோம் அல்லவா? அதைப்போலவே Program சிறப்பாக இயங்க logic தேவை. Computer தானாக Logic ஐ உருவாக்காது programmer தான் உருவாக்கவேண்டும். இவ்வாறு program மை தமது logic ஐ பயன்படுத்தி சிறப்பாக இயங்க செய்வதில்தான் ஒரு programmer மற்றவரிடமிருந்து வேறுபடுகிறார். 

Programming என்பது என்ன?

நாம் நிஜ வாழ்வில் எப்படி Logic ஐ பயன்படுத்தி ஒவ்வொரு தேவைக்கும்  ஒரு வழியை கையாளுகிறோமோ, அதைப்போலவே computer ரானது நமது தேவைக்கேற்ப எவ்வாறு செயல்பட்டு தீர்வு சொல்லவேண்டும் என்பதை command டுகளாக மாற்றுவதுதான் Programming ஆகும். Logic இல்லாமல் நம்மால் program எழுத முடியாது.

Programmer என்பவர் யார்?

Programmer என்பவர் வானத்தில் ஏறி எதையும் அறிந்து வந்திருக்கமாட்டார். Programming செய்ய programmer ராக பிறக்க தேவையில்லை. பிறகு Programmer என்பவர் யார்? Programming command டுகளை தெரிந்து கொண்டும் programming language டைய syntax களை தெரிந்துகொண்டும் தனக்கு தெரிந்த logic களை முறையாக பேப்பரில் எழுதத் தெரிந்தவரையும்தான் நாம் programmer என்கிறோம்.

சரி இப்போ தலைப்புக்கு வருவோம்...

Conditional Statement

ஒரு காரியத்தை செய்வதற்கு முன்பு நாம் எவ்வாறு யோசித்து முடிவெடுப்போமோ அதைத்தான் programming language ல் conditional statement என்று குறிப்பிடுகிறோம்.

அதாவது வீட்டுக்கதவு தட்டப்படும் சப்தம் கேட்டால் உடனே கதவை திறந்துவிடுவீர்களா? அல்லது வந்திருப்பவர் யாரென்று தெரிந்தபின்பு கதவை திறந்துவிடுவீர்களா?

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

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

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

ஏம்பா யாரோ கதவ தட்டுனாங்கன்னு இப்படி கதவ தொறந்து விட்டிருக்கியே. பாரு இப்ப எல்லாத்தயும் உருவிக்கிட்டு போயிட்டான். யாரு எவருன்னு கொஞ்சம் பார்த்திருக்கக்கூடாது? சுத்த விவரமில்லாத ஆளா இருக்கியே என்று போறவர் வருபவர் எல்லாம் சொல்ல... எவ்வளவு கஷ்டம்?

சரி இங்கே என்ன பிரச்சனை? எந்த லாஜிக் மிஸ்ஸிங்? என்பதை கண்டுபிடித்துவிட்டீர்களா?

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

Logic 1
1. கதவு தட்டும் சப்தம் கேட்கிறது
2. கதவை திறக்கவேண்டும்

ரொம்ப மோசமான லாஜிக் அல்லது லாஜிக்கே இல்லை.

ஏன்?

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

தெரிந்த நபர் நின்றிருந்தால் பிரச்சினையில்லை.
திருடன் நின்றிருந்தால்  ? லாஜிக் அவுட். Program மில் ஓட்டையிருக்கிறது.

Logic 2
1. கதவு தட்டும் சப்தம் கேட்கிறது
2. யார் என்று கேட்டு கதவை திறக்கவேண்டும்

அரைகுறை லாஜிக்.

ஏன்?

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

இல்லையே?

திருடன் என்ன நான்தான் திருடன் வந்திருக்கேன் என்றா சொல்வான்.

பிரச்சினை என்ன?

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

Logic 3
1. கதவு தட்டும் சப்தம் கேட்கிறது
2. யார் என்று கேட்க வேண்டும்
3. பதில் கிடைத்தால் திறக்க வேண்டும்

அரைகுறை லாஜிக்.

ஏன்?

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

இல்லையே?

எந்த பதிலை கேட்டாலும் ஒரு ஆள் வெளியில இருக்கிறார் என்ற திருப்தியில் கதவை திறந்தாச்சு. ஒருவேளை 
தெரிந்த நபர் நின்றிருந்தால் பிரச்சினையில்லை.
திருடன் நின்றிருந்தால்  ? லாஜிக் அவுட். Program மில் ஓட்டையிருக்கிறது.

Logic 4
1. கதவு தட்டும் சப்தம் கேட்கிறது
2. யார் என்று கேட்க வேண்டும்
3. பதில் கிடைத்தால்,
   3.1. பதிலளித்தவர் தெரிந்தவர்தானா என்பதை அறிந்து கொள்ளுதல்
          3.1.1 ஆமாம் என்றால் கதவு திறந்து விடுதல்
          3.1.2 சந்தேகம் இருந்தால் கதவை திறக்காமல் ஜன்னல் வழியாக பார்த்தல்
                   3.1.2.1 தெரிந்த நபர் என்றால் கதவை திறந்து விடுதல்
                   3.1.2.2 இல்லையென்றால் கதவை திறந்து விடாமல் இருத்தல்
   3.2 பதில் கிடைக்கவில்லையென்றால் கதவை திறந்து விடாமல் இருத்தல்
                   
ஓரளவு முழுமையான லாஜிக். இதை அவரவர் சக்திக்கேற்ப இன்னும் கூடுதலாக எழுதிக்கொண்டே போகலாம்.

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

ஒரு உதாரணத்திற்கு தான் இது கொடுக்கப்பட்டுள்ளது.

சரி இதற்கும் programming குக்கும் என்ன சம்பந்தம் என்று கேட்கிறீர்களா? சில வேளைகளில் முடிவெடுத்து சில காரியங்களை நாம் செய்வது போல, நமது program மிலும் முடிவுக்கு தக்கமாதிரி சில காரியங்களை செயல்படுத்த உதவுபவைதான் conditional statements.

if then
if then else
simple if
nested if

போன்றவை conditional statements ஆகும். மேற்கண்ட logic களை if then பயன்படுத்தி எப்படி எழுதுவதென்பதை அடுத்து பார்க்கலாம்.




5 comments:

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

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

    ReplyDelete
  3. assalaamu alikkum fareeth sir,
    naan HNDIT padiththukkondu irukkurean. athil programmingkum oru paadam enakku padikkum pothu ethuvumea vilanga villai language wera english eppadithan itha mudikkapporam enda kavala irunthathu. nalla kaalam etho oru theduthal moolam ungal website ariyakitaiththathu. eppo enakku program padippathu easiyaha irukku. ungal pathivu menmelum walara wendum entru walthuvathoodu iraivanai pirathikkintran. allah ungalukku arul purivanaha.....

    sir mealum Mysql enbathum programpoola kadinamaana subject ontru velanga mudiyavillai. ungal aduththa thodar ithuvaha amaiyawendum entru aasaipadukintrean...............

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

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

    இன்ஷா அல்லாஹ் டேட்டா பேஸ் பற்றியும் விரைவில் ஒரு தொடர் வெளியிடுகிறேன்.

    ReplyDelete