মিস্টার সেভেনটিনের প্রোগামিং শেখা এবং তার দৈত্য-(১) -প্রোগ্রামিং ইন সি লার্নিংকনটেস্ট (৫)

5গতপর্বে মিস্টার সেভেনটিনকে আপনারা চিনেছেন। মিস্টার সেভেনটিন বেশ পরিশ্রম করছে প্রোগ্রামিং সি শেখার জন্য। সে ইতোমধ্যেই বেশ কিছু বিষয় আয়ত্ত করে ফেলেছে। আসেন মিস্টার সেভেনটিনের কি অবস্থা দেখে আসি।

গত রাতে মিস্টার সেভেনটিন ঘুমিয়েছে। ঘুমের মধ্য একটা দৈত্য তার কাছে এসে বলছে,

সেভেনটিন আমি তোমার কর্মকান্ড দেখে খুবই খুশি হয়েছি। তুমি আমাকে এখন থেকে প্রতিদিন যত টাকা দেবে আমি একদিন পরে তার তিন গুন তোমাকে ফেরত দেব। তুমি আমাকে বিশ্বাস করতে পার। হি হি হা হা হা !

মিস্টার সেভেনটিনের কাছে মাত্র ১০০ টাকা ছিলো। যে তার দৈত্যকে বিশ্বাস করে ১০০ টাকা দিয়ে দিলো । দৈত্য টাকা নিয়ে হি হি হা হা হা করতে করতে চলে গেল আর বলল আগামি কাল আমাদের আবার দেখা হবে।

ইতোমধ্যেই সেভেনটিনে ঘুম ভেঙ্গে গেছে।

সে তার পকেটে হাত দিলো, তার কাছে সত্যিই ১০০ টাকা ছিলো।

এখন তো নেই, তাহলে সত্যি সত্যিই ঘুমের মধ্যে দৈত্য এসেছিলো।

একটা সন্দেহ তার মনে বাসা বাধলো । যদি দৈত্যটি আর না আসে!

যা হোক আপাতত বিশ্বাস করি। মাত্র ১০০ ৳……..

মিস্টার সেভেনটিন তার এবং তার দৈত্যের কথোপকথনের উপর ভিত্তি করে ওকটা প্রোগ্রাম বানিয়ে ফেলেছে আপনারা দেখবেন?
প্রোগ্রাম কোড

#include <stdio.h>
#define RATE 3
int main()
{
int send_money,total_money;
printf(“If you give me some money. Tomorrow I’ll give you three times of the money.\n\n”);
printf(“Give me the money …………..\n\n”);
scanf(“%d”,&send_money);
total_money=send_money*RATE;
printf(“\nThank you Mr Seventeen.\n”);
printf(“\n\n\n==========================================\n”);
printf(“I have got  %d taka from you. \n”,send_money);
printf(“Tomorrow  you will get %d Taka \n\n”,total_money);
printf(“Bye, Tomorrow we will meet again.\n\n\n\n”,total_money);
return 0;
}

প্রোগ্রাম আলোচনা

  • মিস্টার সেভেনটিন ইতোমধ্যেই লাইব্রেরী ফাংশনের ব্যবহার শিখেছে। সে এখন printf()ফাংশন ব্যবহার করে কোন লেখাকে স্ক্রিনে প্রদর্শন করতে পারেন এবং scanf() ফাংশন ব্যবহার করে কিবোর্ডের মাধ্যমে ইনপুট নিতে পারে। printf() এবং scanf() কে স্ট্যানডার্ড ইনপুট আউটপুট লাইব্রেরী ফাংশন বলা হয়।
  • মিস্টার সেভেনটিন এটাও শিখেছে যে স্ট্যানডার্ড ইনপুট আউটপুট লাইব্রেরী ফাংশন সমূহ ব্যবহার করতে হলে প্রোগ্রামের শুরুতে লিংক সেকশনে #include <stdio.h> প্রি প্রোসেসর স্টেটমেন্টটি যুক্ত করতে হয়। stdio.h হচ্ছে আউটপুট লাইব্রেরী ফাংশন সমূহের জন্য হেডার ফাইল।
  • সেভেনটিন প্রোগ্রামে কনস্ট্যান্ট সংখ্যা কিভাবে ব্যবহার করতে হয়, সে বিষয়টিও শিখে গেছে। এজন্য সে প্রোগ্রামের শুরুতে #define RATE 3 এর মাধ্যমে RATE নামে একটা কনস্ট্যান্ট সংখ্যা ডিফাইন করে দিয়েছে যার মান হচ্ছে 3   ।
  • তাহলে মিস্টার সেভেনটিনের প্রোগ্রামের লিংক সেকশনের দুটো লাইন নিম্নরূপ।

#include <stdio.h>

#define RATE 3

  • সেভেনটিনে তার প্রোগ্রামে int main() ফাংশন ব্যবহার করেছে। কারণ সে জানে প্রোগ্রামিং সি তে প্রতিটা প্রোগ্রামে একটা মেইন ফাংশন থাকে যার মধ্যে সকল ইন্সট্রাকশন সমূহ এক্সিকিউট হয় এমনকি অন্যান্য ফাংশন সমূহও মেইন ফাংশনের মধ্যেই এক্সিকিউট হয়।
  • int send_money,total_money; এর মাধ্যমে সে দুইটা ভেরিয়েবল ডিক্লেয়ার করেছে। ভেরিয়েবল কিভাবে ডিক্লেয়ার করতে হয় মিস্টার সেভেনটিন খুব ভাল ভাবেই শিখেছে । এ ব্যপারে একদিন মিস্টার সেভেনটিনের কাছে থেকে বিস্তারিত জেনে নেয়া যাবে। আজ শুধু মাত্র আমি এটা জানতে পেরেছি যে একটা ভেরিয়েবল ডিক্লেয়ার করতে হলে শুরুতেই ভেরিয়েবলটি কোন ধরণের ডাটা টাইপের হবে তা বলে দিতে হয় সে এখানে int দ্বারা ইন্টিজার টাইপের ডাটা হিসেবে নির্ধারণ করেছে send_money এবং total_money হচ্ছে দুটো ভেরিয়েবলের নাম। মিস্টার সেভেনটিন ইতোমধ্যে বেশ এডভান্স প্রোগ্রামিং শিখে ফেলেছে তাই সে int send_money,total_money; লিখেছে। আমরা দুটো ভেরিয়েবলকে বুঝার সুবিধার্তে নিচের মত ডিক্লেয়ার করতে পারি।

    int send_money;

    int total_money;

  • তাহলে ভেরিয়েবল ডিক্লেয়ারের সহজ নিয়ম হচ্ছে “ ডাটাটাইপ ভেরিয়েবলের_নাম ” ।
  • প্রতিটা মিস্টার সেভেনটিন একটা গুরুত্বপূর্ণ বিষয় আপনাদেরকে বিশেষভাবে মনে করিয়ে দিতে বলেছে । তা হচ্ছে প্রতিটা স্টেটমেন্ট শেষ হয়; দ্বারা অর্থাৎ একটা সেমিকোলন দ্বারা।এজন্য সে int send_money; তে শেষে সেমিকোলন ব্যবহার করেছে।
printf(“If you give me some money. Tomorrow I’ll give you three times of the money.\n\n”);এর মাধ্যমে সেভেনটিন তার দৈত্যের বক্তব্য স্ক্রিনে প্রিন্ট করেছে। এজন্য সে আউটপুটে স্ট্রিং দেখানোর জন্য printf()ফাংশন ব্যবহার করেছে। একটি বা একগুচ্ছ ওয়ার্ডের সমষ্টিকে যখন ডাবল কোটেশনের মধ্যে লেখা হয় তাকে স্ট্রিং বলে। স্ট্রিং এর মধ্যে ফাকা স্থান স্পেশাল ক্যারেক্টার ডিজিট সবই থাকতে পারে।
  • printf(“Give me the money …………..\n\n”); এর মাধ্যমেও সে দৈত্যের একটা বক্তব্য স্ক্রিনে প্রিন্ট করেছে।এখানে সে \n ব্যবহার করেছে Give me the money ………….. লেখাটির পরে দুটো নতুন লাইন তৈরি করার জন্য।
scanf(“%d”,&send_money); এর মাধ্যমে সে দৈত্যকে কত টাকা দিয়েছে তা প্রোগ্রামে ইনপুট হিসেবে নেয়ার জন্য এই কোডটি লিখেছে। এখানে %d দ্বারা বোঝানো হয়েছে যে ডাটাটি ইনপুট নেয়া হবে তা হবে ডেসিমাল টাইপের ডাটা।%d কে ডাবল কোটেশনের মধ্যে রাখা হয়েছে এরপর একটা কমা দিয়ে তারপর ডাটাটি কোথায় জমা হবে তার লোকেশন দেখানো হয়েছে। send_money একটা ভেরিয়েবল আর তার সামনে একটা & চিহ্ন যুক্ত করলে এটা ঐ ভেরিয়েবলের মেমরি এড্রেসকে নির্দেশ করে। তাহলে ইনপুট ডাটাটি send_money ভেরিয়েবলে জমা হবে।
  • total_money=send_money*RATE; এটাই হচ্ছে মিস্টার সেভেনটিনের প্রোগ্রামের মূল অংশ। এখানে total_money ভেরিয়েবলটি দৈত্য কত টাকা ফেরত দিবে তার মান হিসেব করে জমা রাখার জন্য ব্যবহার করা হয়েছে। RATE একটা কনস্ট্যান্ট যার মান হচ্ছে 3 আগেই ডিফাইন করা হয়েছে।তাহলে ইনপুটকৃত send_money ভেরিয়েবলের ডাটার সাথে RATE কনস্ট্যান্টের মান 3 কে * চিহ্ন দ্বারা গুণ করে প্রাপ্ত মানকে total_money ভেরিয়েবলে জমা রাখার জন্য total_money=send_money*RATE;  লেখা হয়েছে।
  • printf(“\nThank you Mr Seventeen.\n”); printf(“\n\n\n==========================================\n”);  এর মাধ্যমেও সে দৈত্যের বক্তব্য স্ক্রিনে প্রিন্ট করেছে, এবং নতুন লাইন তৈরি করেছে।

 printf(“I have got  %d taka from you. \n”,send_money);

 printf(“Tomorrow  you will get %d Taka \n\n”,total_money);

  • এর মাধ্যমে  দৈত্যের বক্তব্য স্ক্রিনে প্রিন্ট করেছে, কিন্তু এর মাঝে খেয়াল করে দেখুন একটা %d আছে। আউটপুটে কোন ডেসিমাল ভ্যালু প্রদর্শনের জন্য এভাবে লেখতে হয়। ডাবল কোটেশনের পরে একটা কমা দিয়ে কোন ভেরিয়েবলের ডেসিমাল ভ্যালু প্রদর্শন করতে হবে তা লেখা হয়েছে।
  • printf(“Bye, Tomorrow we will meet again.\n\n\n\n”,total_money); এর মাধ্যমেও সে দৈত্যের বক্তব্য স্ক্রিনে প্রিন্ট করেছে।
  • return 0; ব্যবহার করা হয়েছে কারণ int main() ফাংশনটি একটা ইন্টিজার ভ্যালু রিটার্ন করে সেই ভ্যালুটিকে নাল বা শূণ্য করার জন্য return 0 লেখা হয়েছে।

তাহলে প্রাগ্রামটি CodeBlocks এ লিখে কম্পাইল এবং রান করলে। দৈত্যকে কত টাকা দেয়া হবে তার জন্য ইনপুট চাবে। আপনি 100 এর অনুরূপ দিয়ে এন্টার বাটন প্রেস করলে দৈত্য 100 এর তিন গুণ 300 টাকা পরবর্তী দিন ফেরত দিবে বলে একটা বক্তব্য প্রদর্শন করবে।

………………………………………………………………………………..

জ্ঞন বিজ্ঞানের সংস্পর্শে আলোকিত একটা সুন্দর সমৃদ্ধ পৃথিবীর প্রত্যাশায় আজ এখানেই শেষ করছি। সকলের জন্য শুভকামনা রইল।