Monday , December 11 2017
Home / সব ল্যাঙ্গুয়েজ / সি টিউটোরিয়াল, পর্ব ৬ – (ভেরিয়েবল ডিক্লেয়ার/ঘোষনা করা)

সি টিউটোরিয়াল, পর্ব ৬ – (ভেরিয়েবল ডিক্লেয়ার/ঘোষনা করা)

c_programming_language_dock_icon_by_timsmanter-d4ougoiরো একবার সবাইকে আমন্ত্রন জানাচ্ছি সি টিউটোরিয়ালে। পূর্বের পর্ব গুলোতে আমরা সি ল্যাংগুয়েজের মূল গঠন শিখেছি। আজকের পর্ব থেকে আমরা সি এর সবচেয়ে গুরুত্বপূর্ন বিষয়গুলো শিখবো। আজকের আলোচনার বিষয় ভেরিয়েবল।

সি টিউটোরিয়াল, পর্ব ১ – (প্রোগ্রামিং ল্যাংগুয়েজের ইতিহাস) মেমোরি সেল নিয়ে আলোচনা করা হয়েছিল। একটি সফল প্রোগ্রাম তৈরি করা হয় সমস্যা সমাধানের জন্য। তাই সমাধান করার জন্য আমাদেরকে অবশ্যই সমস্যাটি কম্পিউটারের মাধ্যমে প্রোগ্রামকে দিব তারপর ঐ সমস্যা সমাধান করে কম্পিউটারের মাধ্যমে প্রোগ্রাম আমাদেরকে ফলাফল জানাবে। মনে করি আমরা ৫ এবং ৩ যোগ করতে পারছিনা তাই এই সমস্যা সমাধানের জন্য আমরা একটি প্রোগ্রাম তৈরি করব যা আমাদের কাছ থেকে আমাদের সমস্যার বিষয় বস্তু ৫ ও ৩ কে আমাদের কাছ থেকে ইনপুট করে ও সর্বশেষ যোগ করে আমাদেরকে পুনরায় ফলাফল দেখাবে।

gfgযদি আমরা প্রোগ্রামের অভন্ত্যরে চিন্তা করে দেখি তা হলে উক্ত প্রোগ্রামটি কিভাবে কাজ করবে। প্রথমে আমাদের কাছ থেকে একটি সংখ্যা চেয়ে নিবে এবং তা একটি মেমরি সেলে জমা করে রাখবে। ধরি ১ম মেমরি সেলটির নাম্বার হচ্ছে “১২৫৪৭৮” । প্রোগ্রামটি পুনরায় আমাদের কাছ থেকে অন্য একটি নাম্বার চাইবে এবং তা অন্য একটি মেমরি সেলে জমা করে রাখবে। ধরি ২য় মেমরি সেলটির নাম্বার হচ্ছে “১২৫৪৭৯” । প্রোগ্রামিটি এই ২ মেমরি সেল জমে থাকা ডাটা যোগ করবে এবং যোগ ফল অন্য একটি মেমরি সেলে জমা করবে। মনে করে যোগফল জমা করে রাখা মেমরি সেলটির নাম্বার হচ্ছে “১২৫৪৮০” । ফাইনাললি প্রোগ্রাম আমাদেরকে “১২৫৪৮০” নাম্বার মেমরি সেলে জমা করে রাখা ডাটা দেখাবে।

asl_cআমরা এখানে মাত্র ২ টি সংখ্যার যোগ করেছে কিন্তু বাস্তবে এই ধরনের সাধারন সমস্যা সমাধানের জন্য প্রোগ্রাম লিখা হয়না। বাস্তবে যে সকল প্রোগ্রাম লিখা হয় তাতে অসংখ্য ইউজার ডিপেন্ড ইনপুট নেওয়ার প্রয়োজন হয়, অসংখ্যবার ডাটা প্রসেস করার প্রয়োজন হয়। আর এই অসংখ্যবার কাজ করার জন্য অসংখ্য বার  মেমরি সেল এর নাম্বার সেট করে দেওয়ার প্রয়োজন হবে। মেমরি সেল নির্বাচন করার সমই অবশ্যই আপনাকে নিশ্চিত হতে হবে উক্ত মেমরি সেল অন্য কোন কাজে ব্যবহার করা হয়েছে কিনা। যদি ভুল ক্রমে একই মেমরি সেল অধিক ইনপুট নেওয়ার কাজে ব্যবহার হয় তাহলে প্রোগ্রাম লজিক্যাল ভুল করবে। এছারাও একটি কম্পিউটারের অভান্তরীনে হাজার হাজার মেমরি সেল রয়েছে যার হিসাব রাখা খুবই কষ্টকর এবং সরাসরি মেমরি সেলের নাম্বার/এড্রেস নিয়ে কাজ করতেগেলে কম্পিউটারের অভন্তরীন সম্পর্কে ভাল জ্ঞ্যান থাকা আবশ্যক।

18.2এই সকল সমস্যা দূর করার জন্য ও এ থেকে মুক্তি পাওয়ার জন্য হাই লেভেল ল্যাংগুয়েজ গুলোতে ভেরিয়েবল ব্যবহার করা হয়। অর্থাৎ মেমরি সেলের এড্রেস/নাম্বার ব্যবহার না করে একটি রুপক নাম ব্যবহার করা হয়। এই রুপক নামকেই ভেরিয়েবল বলা হয়। যেহেতু মিড লেভেলের ল্যাংগুয়েজ এ হাই লেভেল ল্যাংগুয়েজের সকল গুনাবলী থাকে তাই সি ল্যাংগুয়েজেও ভেরিয়েবল নিয়ে কাজ করা যায়। ভেরিয়েবল নিয়ে কাজ করার সবচেয়ে বড় সুবিধা হচ্ছে আপনাকে মেমরি সেল নিয়ে চিন্তা করার দরকার পরবেনা। কারন কম্পাইলার এর অভন্তরীন থেকে প্রয়োজন অনুসারে মেমেরি সেল এড্রেস ঠিক করে নিবে। আপনাকে শুধু বলে দিতে হবে ঐ ভেরিয়েবলের জন্য কতটুক জায়গার রাখবে।

ভেরিয়েবল নিয়ে কাজ করার পূর্বে আমাদেরকে অবশ্যই প্রোগ্রামকে বলে দেওয়ার প্রয়োজন হবে যে, কি নামে ভেরিয়েবল হবে, কি ধরনের ডাটা ( টেক্সট, নাম্বার ) হবে এবং মেমরিতে কতটুক জায়গা রাখবে উক্ত ভেরিয়েবলের জন্য। প্রোগ্রামকে ভেরিয়েবল সম্পর্কে এই বলে দেওয়াকে বলা হয় ভেরিয়েবল ডিক্লেয়ার করা। মানে হচ্ছে ভেরিয়েবল ঘোষনা করা।

চলুন একটি উদাহরন দেখা যাক। উদাহরন হিসেবে আমরা আমাদের পূর্বের সাধারন সমস্যাটি ব্যবহার করব।

void main() {            // main() function Section start
   int num1;              // variable for 1st number
   int num2;              // variable for 2nd number
   int sum;            // variable for store 2 number sum
   scanf(“%d”,&num1);  // get 1 st number from user and store num1 variable
   scanf(“%d”,&num2);   // get 2nd number from user and store num2 variable
   sum = num1 + num2;   // sum num1 and num2 variable. And store that sum variable
   printf(“your 2 number sum is: %d”,sum);     // show user sum variable data.
   getchar();          // wait for key press
}                          // main() function Section end</p>

4উপরের কোড টুকু কপি করে code Blocks এ পেষ্ট করে রান করুন। cmd উইন্ডো আসবে। যে কোন একটি সংখ্যা লিখুন মনে করি আমাদের প্রথম সংখ্যাটি ‘৫’ এবং এন্টার প্রেস করুন। আবার একটি সংখ্যা প্রেস করুন মনে করি ২য় সংখ্যাটি ‘৩’ এবং এরপর এন্টার প্রেস করুন। প্রোগ্রামটি আমাদেরকে দেখাবে “your 2 number sum is: 8” । পুনরায় এন্টার প্রেস করুন ইউন্ডোটি চলে যাবে। আবার অন্য ২ টি সংখ্যা দিয়ে চেষ্টা করুন। codeBlock সম্পর্কে সি টিউটোরিয়াল, পর্ব ৩- (সি ল্যাংগুয়েজের ইতিহাস) অংশে আলোচনা করা হয়েছে।

কোড ব্যাখ্যা :

1.      মেইন ফাংশন শুরু। মেইন ফাংশন সম্পর্কে ফাংশন পর্বে আলোচনা করা হবে।
2. (Int num1;) : সি ল্যাংগুয়েজ সাধারনত ৪ ধরনের ডাটা টাইপ নিয়ে কাজ করে যথা- char, integer(int), float, double. ডাটা টাইপ নিয়েও আমরা পরবর্তিতে আলোচনা করব। ২ নাম্বার লাইনে আমরা ভেরিয়েবল ডিক্লেয়ার করেছি। “Int num1;” এর ‘int’ দিয়ে বুঝানো হয়েছে উক্ত ভেরিয়েবলটি integer ডাটা টাইপ (ডাটা টাইপ নিয়ে আমরা পরবর্তিতে আলোচনা করব) । “Int num1;” এর ‘num1’ হচ্ছে ভেরিয়েবলের নাম ও এই ভেরিয়েবলটি আমাদের কাছ থেকে নেওয়া ১ম নম্বারটি ষ্টোর করব এবং সর্বশেষ ক্লোন হচ্ছে ষ্টেটম্যান্ট আলাদা করার জন্য।
3.  (Int num2;) :  এই লাইনটি ২য় ভেরিয়েবল এর জন্য। যা আমাদের কাছ থেকে নেওয়া ২য় নম্বারটি ষ্টোর করবে।
4. (int sum;) : উক্ত কোডটির মাধ্যমে ৩য় নম্বার ভেরিয়েবল ডিক্লেয়ার করা হয়েছে যাতে আমরা পরবর্তিতে “num1” এবং “num2” ভেরিয়েবলের যোগ ফল জমা করে রাখব।
5. (scanf(“%d”,&num1); ) : “scanf(“%d”,&num1); অংশের scanf  ফাংশন ব্যবহার করা হয়েছে। যার মাধ্যমে ইউজার থেকে ইনপুট নেওয়া হয়। scanf ফাংশন সম্পর্কে পরবর্তিতে আলোচনা করা হবে। ““%d”” এর মাধ্যমে ইন্টেজার টাইপ ডাটা ইনপুট করা হবে বলে দেওয়া হয়েছে। “&num1” এর মাধ্যমে বলা হয়েছে যে ইন্টেজার টাইপ নাম্বারটি ষ্টোর করা হবে তা “num1” ভেরিয়েবলে জমা করতে হবে এবং সেমিকোলন এর মাধ্যমে ষ্টেটম্যন্টটি কে আলাদা করা হয়েছে।
6. (scanf(“%d”,&num2); ) : ইউজার থেকে ইন্টেজার টাইপ ২য় ইনপুট নেওয়ার জন্য।
7. (sum = num1 + num2) : এর “sum =” অর্থ হচ্ছে “sum” ভেরিয়েবলে জমা হবে এবং “sum = num1 + num2;” এর “num1 + num2” হচ্ছে “num1” এবং “num2” ভেরিয়েবল যোগ হবে। সম্পূর্ন কোডটির অর্থ হচ্ছে “sum” ভেরিয়েবলে জমা হবে “num1” এবং “num2” ভেরিয়েবলের যোগ ফল।
8. (printf(“you 2 number sum is: %d”,sum) ) : এই লাইনের “printf” ফাংশন ব্যবহার করা হয়েছে। “printf(“you 2 number sum is: %d”,sum);” এর “you 2 number sum is:” হচ্ছে নরমাল টেক্সট / ষ্ট্রিং। এবং “%d” এর মাধ্যমে বলা হয়েছে এই স্থানে একটি ইন্টেজার টাইপ ডাটা বসবে। কোন ইন্টেজার টাইপ ডাটা বসবে তা “,” এর পর থাকবে। ‘,’ এর পরের “sum” হচ্ছে আমাদের পূর্বের ভেরিয়েবল যাতে আমরা “num1” এবং “num2” এর যোগফল জমা করে রেখেছি। এবং পূর্বের “%d” স্থানে ‘sum’ ভেরিয়েবলে জমা হওয়া ডাটা দেখাবে।
9. (getchar();) : “getchar();” ও একটি ফাংশন যার মাধ্যমেও ইনপুট নেওয়া হয়ে থাকে। পরবর্তিতে এই বিষয়ে বিশাদ আলোচনা করা হবে। যাই হোক getchar(); ব্যবহার করা হয়েছে যে কোন একটি কী প্রেস করার পর্যন্ত অপেক্ষা করার জন্য। যে কোন একটি কী প্রেস করুন cmd উইন্ডোটি বন্ধ হয়ে যাবে।
10.  (}) : মেইন ফাংশন ক্লোজ করার জন্য।
11.  এবং সর্বশেষ কোন বিষয় বুঝতে কষ্ট হলে অথবা বুঝতে না পরলে কমেন্টের মাধ্যমে জানাবেন। 😀

যারা নতুন সি শিখছেন অথবা শিখার চেষ্টা করছেন তাদের কাছে এই বিষয় গুলো অর্থহীন মনে হতে পারে। কিন্তু ঠিক তা নয়। মনে হয় “দূর এসব কি করছে বাস্তব কাজ কিভাবে করব”। অ,আ,ক,খ না শিখলে কখনই বাংলা পড়া সম্ভাব নয়।  এই বিষয় গুলও ঠিক তাই।

সবাই ভাল সুস্থতা কামনা করে এবং আমার জন্য দোয়া চেয়ে বিদায় নিচ্ছি। আল্লাহাফেজ।

Comments

comments

About Max

টিউটোরিয়ায়ল সংক্রান্ত যে কোন পরামর্শের জন্য কল করুন +880 1739-419745 মেইল করুন root@byteburner.com অথবা কমেন্টের মাধ্যেমে জানান।

Check Also

programmer

প্রোগ্রামার হতে চান? প্রোগ্রামার হওয়ার ১০ টিপস

যারা প্রোগ্রামার হতে চান তাদের অনেকেই চিন্তায় থাকেন কি ভাবে কি করবেন। তাদের জন্য এই …