## আগামী ও গ্রামীণফোন এর সহযোগিতায় অনূদিত ## আচ্ছা, তাহলে তুমি কিছু
প্রোগ্রাম তৈরি করেছো। তুমি হয়তো ভাবছো, "আমি কীভাবে এত কমান্ড মনে রাখবো? এটা কি ওভাল না সার্কেল নাকি এলিপ্স? এটা কি প্রস্থ এবং উচ্চতা,
নাকি এটা উচ্চতা এবং প্রস্থ? এগুলো সব কি আমার মনে রাখতে হবে?" সৌভাগ্যক্রমে, না! এর জন্য কম্পিউটার আছে। আমরা যখন প্রোগ্রামিং করি
তখন আমাদের সাথে কম্পিউটার থাকে, এবং কম্পিউটার খুব ভাল মনে রাখতে পারে, আমাদের থেকেও ভাল। তাহলে, যদি কম্পিউটার
আমাদের হয়ে সবকিছু মনে রাখে, আর আমরা প্রোগ্রামিং এর
অভিধান হিসেবে একে ব্যবহার করি, তাহলে আমরা আকর্ষণীয়
প্রোগ্রাম তৈরি করতে পারি, এবং আমাদের কোন বিবরণ মুখস্ত করতে হবে না। একেই আমরা বলছি ‘নথিভুক্তকরণ’: একটি নথি যাতে কিভাবে কোন একটি নির্দিষ্ট
ভাষায় এবং পরিবেশে প্রোগ্রাম করা হয় তা উদাহরণ সহ ব্যাখ্যা করা থাকে। ফলে আমাদের যদি কোন বিবরণ মনে না থাকে,
তাহলে আমরা খুব সহজেই তা দেখে নিতে পারি! তোমার মনে হতে পারে যে
নথিপত্র পড়া খুব বিরক্তিকর, হ্যা, এটা কিছুটা বিরক্তিকর;
এর থেকে কোড লেখা অনেক মজার। কিন্তু তুমি যদি একেবারে সবকিছু
হুবুহু মনে রাখতে না চাও, তাহলে তোমাকে কোড করার জন্য
নথিপত্রের ব্যবহার শিখতে হবে। বড় বড় প্রোগ্রামাররাও সবকিছু
মুখস্থ করার চেষ্টা করেন না। মূলত বিখ্যাত প্রোগ্রামাররা খুব ভাল
নথিপত্র পাঠক হয়ে থাকেন। উদাহরণস্বরূপ, আমি একটি
হাস্যজ্জ্বল মুখ আঁকছি, আমি ইতোমধ্যে এলিপ্স ব্যবহার করে
মুখ এবং চোখ এঁকেছি, এই ফাংশনটা আমি খুব ভাল জানি। কিন্তু আমাকে আরও কাজ করতে হবে। প্রথমে আমি স্টিকারের মত মোটা
দাগে মুখটিকে চিহ্নিত করতে চাই। আমি জানি এটা করতে স্ট্রোক
বা এই ধরণের কিছু ব্যবহার করতে হয়, কিন্তু আমার সঠিক নামটি মনে নেই। তাই বসে বসে সেটা মনে
করার চেষ্টা করার মত সময় সাপেক্ষ কাজ না করে,
আমি নথিপত্র ট্যাব এ যাব এবং সেখানে আমি যা চাচ্ছি
তা খোঁজার চেষ্টা করব। আমি এই রঙ এর শ্রেণিতে দেখবো, কারণ
মনে হচ্ছে এখানেই সেটা পাওয়া যাবে। তো, এখানে সবগুলো ফাংশন দেখি, এবং অবশেষে একেবারে নিচে
আমি পেলাম স্ট্রোক প্রস্থ যার মাধ্যমে আমরা রেখা বা
সীমারেখা গাড় করতে পারি। তো, এখানে আমরা ফাংশনের
নাম এবং প্যারামিটারগুলো দেখতে পাচ্ছি- এক্ষেত্রে কেবল একটি। তো, আমি যা করি তা হল
এখান থেকে কোডটি কপি করে আমার কোড এর ঘরে পেস্ট করি। কিন্তু সাথে সাথেই একটি ত্রুটি দেখাচ্ছেঃ
“ঘনত্ব নির্ধারণ করা হয়নি।” এর কারণ হল ঘনত্ব
প্যারামিটারটির নাম। এটি কোন মান নয়। আমি এটাকে আমার প্রয়োজনীয়
মান দিয়ে পরিবর্তন করবো, যা হতে পারে একটি সংখ্যা অথবা
একটি চলক যা দ্বারা সংখ্যা বোঝায়। তো, এক্ষেত্রে আমি শুধু একটি সংখ্যা বসাবো। ধরি… আচ্ছা, ঠিকাছে ১০ বসালেই ভাল হয়, কিন্তু আমরা একে
পরিবর্তন করতে পারি, এটা অনেক বড় হয়ে গেল।
আর এখন অনেক ছোট। আচ্ছা, তাহলে ১২ রাখছি। চমৎকার! এখন, আমার হাস্যজ্জ্বল মুখে
একটি জিনিস নেই- হাসি। আমি কিছুটা এইরকম একটি হাসি চাই। এবং হাসিটি দেখে আমার মনে হচ্ছে, “এটা দেখে মনে হচ্ছে না যে একে এলিপ্স, লাইন বা রেক্ট
ব্যবহার করে আঁকা সম্ভব, কারন এখানে যে বাঁকা অংশটি
আছে, তার ভিতরে কিছু নেই।” তাই আমার মনে হয়, আমার নথিপত্র দেখতে হবে এবং খুঁজতে হবে যে এমন বাঁকা কিছু
আঁকার আর কোন উপায় আছে কি না। তাহলে, আমরা নথিপত্রে ফিরে যাই! নিচে নামতে থাকি
এবং দেখতে থাকি। আমি আকৃতির শ্রেণিতে খুঁজবো... হুম! আকৃতির শুরুতেই আছে আর্ক,
যেটা বৃত্তচাপ আঁকতে ব্যবহৃত হয়, মনে হচ্ছে এটাই ঠিক
কারণ এভাবেই হাসি আঁকতে হয়। তো, এখানে অনেকগুলো প্যারামিটার আছে। আমি একে এখানে পেস্ট করে শুরু করছি, মনে রেখো, এগুলো
প্যারামিটারের নাম। আমাদের এগুলোকে এগুলোর মান
দিয়ে প্রতিস্থাপন করতে হবে। আচ্ছা, তো x এবং y। মনে হচ্ছে x এবং y হল যেখান
থেকে শুরু করতে হবে সেই স্থান। তাহলে-- তো, মাঝামাঝি অবস্থানের মান ২০০
হলে আমরা ১৫০ থেকে শুরু করতে পারি। আর y এর মান হতে পারে ২৫০। এবার 'প্রস্থ', দেখে মনে হচ্ছে এটা
আর্ক (বৃত্তচাপ) এর প্রস্থ হবে, তাহলে মুখের প্রস্থের চেয়ে
এর মান একটু কম হবে। তো, এটা ২০০ হতে পারে। এবার 'উচ্চতা'... এটা হয়তো আর্ক (বৃত্তচাপ) এর উপর থেকে নিচ
পর্যন্ত উচ্চতা। এর মান হতে পারে ৫০। ‘শুরু’ এবং ‘শেষ’... এগুলো দিয়ে কী বোঝাচ্ছে
তা ঠিক বুঝতে পারছিনা... আচ্ছা, এখন আমি আটকে গিয়েছে, কারণ আমি এই
ফাংশনগুলো দেখছি এবং ব্যবহারের চেষ্টা করছি, কিন্তু এই প্যারামিটারগুলো
আমি বুঝতে পারছি না। তো, সৌভাগ্যক্রমে, এখন আমরা
নথিপত্রে ফিরে যেতে পারি এবং যে ফাংশনটি সম্পর্কে জানতে
চাচ্ছি সেখানে ক্লিক করতে পারি। এতে একটি প্রোগ্রাম চালু হবে যেখানে এটা
কিভাবে ব্যবহার করা হয় তা দেখাবে, এবং যেখানে প্যারামিটারগুলোর
বিস্তারিত বর্ণনা দেয়া আছে। তো, এখানে বলা হচ্ছে, আচ্ছা, 'x' হচ্ছে এলিপ্সের কেন্দ্রের x-স্থানাংক যেটা আর্ক থেকে পাবো। আচ্ছা, তো, এটি একটি
বৃত্তচাপ আঁকার মত, তোমাকে ধরে নিতে হবে যে
তুমি একটি এলিপ্স আঁকছ, কিন্তু শুধুমাত্র এর একটি অংশ, এবং তার উপর ভিত্তি করেই হিসেব করতে হবে। তাহলে, 'x' এবং 'y' হচ্ছে মূলত আমরা
যে উপবৃত্তটি ধরে নিয়েছিলাম তার কেন্দ্র, 'প্রস্থ' এবং 'উচ্চতা' হল ঐ ধরে নেয়া উপবৃত্তের প্রস্থ এবং উচ্চতা, এবং 'শুরু' এবং 'শেষ' –
এই দুটিই আমি জানতাম না। 'শুরু' এবং 'শেষ' হচ্ছে কোণ... আচ্ছা! ঠিক আছে, শুরু হল বৃত্তচাপটির
শুরুর কোণ (ডিগ্রীতে), এবং ‘শেষ’ হল যেখানে গিয়ে থামতে হবে। এখানে যে উদাহরণগুলো আছে
আমরা সেগুলো দেখতে পারি। “ফীল ছাড়া আর্ক ১ থেকে ২৭০ ডিগ্রি পর্যন্ত”,
এটা খুব সম্ভবত এখানের এই চিত্রটি, কারণ ১ থেকে ২৭০ ডিগ্রী হলে
সেটা দেখতে কিছুটা এমন হবে। মান পরিবর্তন করে দেখি।
হ্যা, এটাই সেটা। এখন বোঝা যাচ্ছে না? এটা হল ১ থেকে ১৮০ ডিগ্রী,
আর আমরা এটাই চাই, তাই না? কারণ আমরা অর্ধেক আর্ক চাই। ঠিক আছে, আমার মনে হয় আর্ক সম্পর্কে
আমার যতটুকু জানা দরকার ততটুকু আমি জেনেছি, এখন ফিরে যাই। আচ্ছা, তাহলে আমরা ০ থেকে ১৮০ পর্যন্ত যাব, এবং আকৃতিটি প্রায় হয়ে গিয়েছে। x ও y ঠিক নেই,
কারন আমি বুঝিনি যে x হল আসলে এলিপ্সের মধ্যবিন্দু। এবং এটা একটু বেশি চওড়া হয়ে গিয়েছে,
তাই একে একটু ছোট করে দেই। হাহা! আমরা এখন একটি
সত্যিকার হাস্যজ্জ্বল মুখ পেয়েছি! নথিপত্রের ব্যবহারকে ধন্যবাদ, আমি যা করতে চেয়েছিলাম
তা খুব দ্রুত করতে পেরেছি। আর এটাই হচ্ছে প্রোগ্রামিং এর লক্ষ্য-
ধারণাকে দ্রুত বাস্তবে রূপান্তরিত করা। নথিপত্রের ক্ষমতা ব্যবহার
করার কথা মনে রেখো! ## আগামী ও গ্রামীণফোন এর সহযোগিতায় অনূদিত ##