Wednesday, August 7, 2013

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


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

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

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

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

சரி முந்தைய பாகத்தில் விட்ட இடத்திற்கு வருவோம்...

வீட்டை விட்டு வெளியே வருகிறீர்கள்...

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

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

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

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

சாதாரண விசயமாக நீங்கள் கருதும் இந்த project ஐ எப்படி கையாண்டீர்கள் என்று பார்ப்போமா?

உங்களுக்கு கிடைத்த requirement order ஐ சற்று கவனியுங்கள்.

A1. பொன்னி அரிசி வாங்க வேண்டும்

A2. 5 கிலோ வாங்க வேண்டும்

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

A4. அமுதம் கடையில் வாங்க வேண்டும்

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

A6. சைக்கிள் எடுத்துக்கிட்டு போகவேண்டும்

A7. காசு எடுத்துக்கிட்டு போகவேண்டும்

உங்களுக்கு கிடைத்த இதே வரிசையிலா நீங்கள் செயல்பட்டீர்கள்? சற்று சிந்தியுங்கள்.... ஆகா இல்லையே....

பின்னே எப்படி சரியாக அரிசியை வீட்டுக்கு கொண்டுவந்தேன் என்கிறீர்களா?...

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

முதலில் A7

அடுத்து A6

அடுத்து

சைக்கிள் ஓட தேவையென்று நீங்கள் கருதும் காற்று, பூட்டு, ஸ்டேன்டு முதலியவற்றை செக் செய்தீர்கள் (logic: necessary input validation)

அடுத்து

தெருவில் போனீர்கள் (executing set of tasks to achieve the goal), போக முடியாத அளவிற்கு பள்ளம் இருந்தது, வேறு பாதையை தேர்ந்தெடுத்து போனீர்கள் (instant problem solving / decision making )

அடுத்து A4 (சரியான கடையை தேர்ந்தெடுத்தீர்கள் conditional test to ensure requirement is achieved)

அடுத்து A1 (வாங்கியது பொன்னிதான் என்பதை கன்பார்ம் செய்கிறீர்கள் validation)

அடுத்து A2 (5 கிலோதான் வாங்கினோமா என்பதை கன்பார்ம் செய்கிறீர்கள் validation)

A3 மற்றும் A5  (இதை செயல்படுத்த அவசியமில்லாமல் போனது. காரணம் நமது objective A1 மற்றும் A2 மூலம் நிறைவேறிவிட்டது)

அடுத்து

பத்திரப்படுத்தி எடுத்து வருகிறீர்கள். (executing necessary tasks to achieve the goal)

பிராஜக்ட் முடிந்தது.

இந்த பகுதியின் இரண்டாம் பாராவை இப்பொழுது படியுங்கள் அதன் அர்த்தம் உங்களுக்கு விளங்கும்.

இதுதான் புரோகிராமிங்கின் அடிப்படை. என்ன கொஞ்சம் புரிய ஆரம்பிக்கிறதா?

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

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

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

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

டென்ஷன் ஆகிறார், மனப்பாடம் செய்ததை கொஞ்சம் கொஞ்சமாக நினைவுபடுத்தி பார்த்துக்கொள்கிறார்.

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

வீட்டை விட்டு வெளியே வருதல்...

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

கடையில் சைக்கிளை வாடகைக்கு எடுத்தல்...

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

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

இவ்வாறாக எழுதுகிறார்!

புரோகிராமை execute பார்த்தால் error என்று வருகிறது! எதிர்பார்த்த ரிசல்ட் கிடைக்கவில்லை. டென்ஷன் இன்னும் தலைக்கேறி எப்படி fix செய்வதென்று புரியவில்லை.

எதையெதையோ மாற்றி திருத்தி பார்க்கிறார்... ஊகூம்... ஒன்னும் நடக்கமாட்டேங்குது...

பரிட்சை நேரம் முடிந்தது solve பண்ணாமலேயே வந்து விடுகிறார். வெளியே அவருடைய நண்பர் ஒருவர் டேய் நம்ம சாரு சொன்ன அதே program எனக்கு வந்துச்சுடா கொஞ்சம் twist பண்ணி கேட்டிருந்தாங்க புரோகிராம்ல கொஞ்சம் லாஜிக்கை மாற்றி எழுதி execute பண்ணி பார்த்தேன். சார் very good ன்னு சொன்னார்டான்னு சொன்னதைக் கேட்டு நம்மாளுக்கு அழுகையே வந்துடும்.

உங்களுடைய இந்த இரு நண்பர்களுக்கும் இடையே உள்ள வித்தியாசம் என்னன்ன புரிஞ்சுதா? லாஜிக்க மனப்பாடம் செய்வது எவ்வளவு அபத்தம்னு இப்ப தெரியுதா?

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

லாஜிக்க மனப்பாடம் பண்ணுறது தப்புன்னு இப்போவாச்சம் விளங்குச்சே. சரி லாஜிக்க எப்படி உருவாக்கறதுன்னு அடுத்து பார்க்கலாம்...

0 comments:

Post a Comment