এই সিরিজের পূর্বের টিউটোরিয়াল গুল।
- সি টিউটোরিয়াল, পর্ব ১ – (প্রোগ্রামিং ল্যাংগুয়েজের ইতিহাস)
- সি টিউটোরিয়াল, পর্ব ২ – (প্রোগ্রামিং ল্যংগুয়েজের সূচনা লগ্ন)
- সি টিউটোরিয়াল, পর্ব ৩- (সি ল্যাংগুয়েজের ইতিহাস)
- সি টিউটোরিয়াল, পর্ব ৪– (C প্রোগ্রাম এর ফরম্যাট)
- সি টিউটোরিয়াল, পর্ব ৫ – (ভেরিয়েবল ডিক্লেয়ার/ঘোষনা করা)
- সি টিউটোরিয়াল, পর্ব ৬ – (‘printf()’ ফাংশন ও ‘backslash character’)
- সি টিউটোরিয়াল, পর্ব ৭ – (Formate Specifier ও “scanf()” ফাংশন)
- সি টিউটোরিয়াল, পর্ব ৮ – (ডাটা টাইপ ও character ডাটা টাইপ)
- সি টিউটোরিয়াল, পর্ব ৯ – (ডাটা টাইপ)
- সি টিউটোরিয়াল, পর্ব ১০ – (ভেরিয়েবল ডিক্লেয়ার করার নিয়ম)
কেমন আছেন সবাই? আশা করছি ভাল আছেন এবং সুস্থ আছেন। অনেক দিন পর আবারো আপনাদের সামেন হাজির হলাম। দুঃখিত সাময়িক সময়ের অনুপুস্থিতির জন্য। দেখতে দেখতে আমরা সি টিউটোরিয়াল এর ১০ টি পর্ব পূর্ন করলাম। এই দীর্ঘ সময় পর্যন্ত যে সকল পাঠক আমার সাথে এবং টিউটোরিয়াল বিডির সাথেই ছিলেন তাদের জন্য অসংখ্য শুভেচ্ছা রইল, সাথে নতুন পাঠকদের জন্যও।
চলুন শুরু করা যাক। আজকের আলোচনার বিষয় হচ্ছে টোকেন।
আমাদের চারপাশে যে সকল কিছু হচ্ছে অথবা হবে তার সবই একটি নিদিষ্ট নিয়ম/রুল মেনে হচ্ছে। আর এই নিদিষ্ট নিয়ম অনুসরন না করলে উক্ত বিষয়, উক্ত প্রতিষ্ঠান অথবা উক্ত সংগঠন কখনি তাদের নিদিষ্ট লক্ষ্য অথবা উদ্দেশ্য পূরন করতে পারেন। তাই নিদিষ্ট রুল/নিয়ম মেনে চলা খুবই গুরুত্বপূর্ন। মানুষের কথা বলার ক্ষেত্রে যে সকল ভাষা ব্যবহার করে থাকে সেই সকল ভাষা গুলো ব্যবহার করার সময়ও কিছু নিদিষ্ট রুল অনুসারন করে ব্যবহার করতে হয়।
যেমনঃ- ইংরেজিতে আমি ভাত খাই বাক্যটি তৈরি করতে হলে নিচের নিয়ম অনুসরন করে তৈরি করতে হবে।
ধাপ -> |
১ম |
২য় |
৩য় |
রুল -> |
Subject |
Object |
Verb |
ফলাফল -> |
I |
Eat |
Rice |
কিন্তু এই রুল না মেনে বাক্য তৈরি করা হলে তা দিয়ে মনে ভাব প্রকাশ করা সম্ভাব হবেনা। অথবা প্রকাশ করা হলেও শ্রোতার বোধগম্য হবেনা। তাই এই রুল মেনে বাক্য তৈরি করা শুধু মাত্র অনেক অংশে গুরুত্বপূর্ন নয় সকল অংশে গুরুত্বপুর্ন। বাংলা ভাষার ক্ষেত্রেও অনেক নিয়ম রয়েছে। যেমনঃ- পদ, কাল, লিঙ্গ, বচন, কারক ইত্যাদি… ইত্যাদি। এই পদ, কাল বাচন ইত্যাদিকে কম্পিউটার প্রোগ্রামিং এর ভাষায় টোকেন বলা হয়।
প্রতিটি প্রোগ্রাম তৈরি এর ভাষার নিজেস্ব কিছু টোকেন রয়েছে। প্রোগ্রামিং ল্যাংগুয়েজ গুলুর কিছু নিদিষ্ট শব্দ হচ্ছে টোকেন। ANSI এর স্ট্যান্ডর্ড অনুযায়ী প্রোগ্রামিং সি ল্যাংগুয়েজে ৬ ধরনের টোকেন রয়েছে। সেগুল হচ্
টোকেন এর নাম |
উদাহরন |
Keywords | If, while …… |
Identifiers | num1, myfanc() …… |
Constants | Const id1 01, …. |
String constants | “this si a line” |
Operators & Expressions | +,-,/, ………….. |
Punctuators | “,’,;…… |
Keywords:
টোকেন সমূহের মধ্যে শুধু মাত্র কিছু শব্দ ল্যাংগুয়েজের জন্য পূর্ব থেকে বলে দেওয়া আছে। এই শব্দ গুল হচ্ছে রিজার্ভ শব্দ। নিদিষ্ট কিছু কাজ করার জন্য শুধু মাত্র এই শব্দ গুল ব্যবহার করা হয়। ওই সকল নিদিষ্ট কাজ ছাড়া অন্য কোন কাজে এই শব্দ গুল ব্যবহার করলে কম্পাইলার error দেখাবে। এই রিজার্ভ শব্দ গুলকে সি ল্যাংগুয়েজে Keyword বলা হয়ে থাকে। শুধু মাত্র সি ল্যাংগুয়েজেই নয় অনন্য সকল ল্যাংগুয়েজে এই keyword রয়েছে ANSI স্ট্যান্ড্ররড অন্যযায়ী সি তে ৩২ টি Keyword রয়েছে। keyword গুল হচ্ছে
কম্পাইলার এর নিজেস্বও কিছু keyword থাকতে পারে। keyword ব্যবহার করার ক্ষেত্রে আপনাকে অবশ্যই সতর্কতা আবলম্বন করতে হবে। সি একটি ক্যাশ সেন্সেটিভ ল্যাংগুয়েজ তাই কী-ওয়ার্ড সমূহ ব্যবহার করার সময় আপনাকে অবশ্যই একটি কী-ওয়ার্ড এর প্রতিটি বর্ন কে ছোট হাতের লিখতে হবে। অন্যথায় কম্পাইলার error দেখাবে। একটা বিষয় আপনারা হয় লক্ষ্য করেছেন এখানে main নামের কোন কী ওয়ার্ড নেই তবুও আপনি যদি প্রোগ্রামের কোথাও main কে identifier হিসেবে ব্যবহার করেন সে ক্ষেত্রে প্রোগ্রাম error দেখাবে। কারন শুদু মাত্র main() যে স্থানে থাকবে সেই স্থানে থেকে প্রোগ্রাম কম্পাইল হবে।
Identifier
সি ল্যাংগুয়েজে যেহেতু হাই লেভেল ল্যাংগুয়েজের সকল সুবিধা রয়েছে সে ক্ষেত্রে প্রোগ্রাম চলাকালে মেমরিতে কোন ডাটা জমা রাখার জন্য মেমরি এড্রেস এর নাম ব্যবহার না করে একটি নাম ব্যবহার করা হয়। এই নামকে identifier বলা হয়ে থাকে। শুধু মাত্র ভেরিয়েবলের নাম কে identifier বলা হয়ে থাকেনা প্রোগ্রামের যে কোন অংশে প্রোগ্রামার কর্তিক যে কোন কিছুর যে নাম দেওয়া হয়, সেই নামকে identifier বলা হয়।
যেমনঃ- int id এখানে id হচ্ছে একটি ইন্টজের টাইপ ভেরিয়েবলের নাম বা identifier
Constants
Constants এর অর্থ হচ্ছে ধ্রুবক। অর্থাৎ যা পরিবর্তনশীল নয় তাই হচ্ছে Constants. যেমন পাই এর মান হচ্ছে Constants. এই মান কখনই পরিবর্তন হবে না। প্রোগ্রামের আমরা বিভিন্ন ডাটা টাইপের ভেরিয়েবল ডিক্লেয়ার করে থাক এবং এই ভেরিয়েবল সমূহ পরিবর্তনশীল। আর্থাৎ আপনি চাইলে প্রোগ্রামের যে কোন অংশ ঐ ভেরিয়েবলের মান পরিবর্তন করতে পারবেন। কিন্তু কিছু কিছু ক্ষেত্রে এই ভেরিয়েবলের মান নিদিষ্ট থাকার প্রয়োজন হয়। সে ক্ষেত্রে ভেরিয়েবল ব্যাবহার না করে Constants ব্যবহার করা হয়। যেমন আপনি প্রোগ্রামের বিভিন্ন আংশে পাই এর সাথে বিভিন্ন সংখ্যা যোগ, বিয়োগ, গুন ইত্যাদি করবেন। এর জন্য ভেরিয়েবল ব্যবহার না করে Constants ব্যবহার করাই উত্তম কারন পাই এর মান কখনই পরিবর্তন হবেনা। আপনি যদি ভেরিয়েবল ব্যবহার করেন তাহলে লজিক্যাল ভুলের কারনে কোথায়ও পাই এর মান পরিবর্তন হতে পারে। সেক্ষেত্রে প্রোগ্রাম অনাকাংখিত ফলাফল দেখাবে।
দুই ভাবে Constants ডিক্লেয়ার করা যায়।
- #define ‘value’
- প্রোগ্রামের শুরুতে অর্থাৎ main() ফাংশন এর পূর্বে ডিক্লেয়ার করতে হয়। প্রথমে #define লিখতে হয় এবং এর পরে ভ্যালু লিখতে হয়। ডাটা টাইপ উল্লেখ্য করার প্রয়োজন নেই। কারন হচ্ছে, যেহেতু ডাটা নিদিষ্ট থাকবে তাই অতিরিক্ত যায়গার প্রয়োজন নেই তাই ডাটা টাইপে উল্লেখ্য করার প্রয়োজন নেই। স্টেটম্যান্ট এর শেষে সেমিক্লোনও দিতে হবেনা।
- Const data_type value;
- সাধারন ভেরিয়েবলের মত করেই ডিক্লেয়ার করতে হয়। শুধু মাত্র ডাটা টাইপের পূর্বে cons কী-ওয়ার্ড ব্যবহার করতে হয়।
আজকে এই পর্যন্তই। ভালো থাকুন সুস্থ থাকুন এবং অবশ্যই টিউটোরিয়াল বিডি এর সাথেই থাকুন।
সি প্রোগ্রামিং সংক্রান্ত আপনার পোস্টগুলো আমার কাছে খুবই ভালো লেগেছে। আশাকরি শিক্ষার্থীদেরও উপকারে আসবে।
আপনার কাছে ভাল লাগছে জেনে অনেক খুশি হলাম। ধন্যবাদ। এই সিরিজের সাথেই থাকুন ও টিউটোরিয়াল বিডির সাথেই থাকুন
গত ৩০ শে নভেম্বর, ২০১৩ ইং তারিখে ” সি টিউটোরিয়াল, পর্ব ১০ – ( ভেরিয়েবল ডিক্লেয়ার করার নিয়ম )” নিয়ে আলোচনা করা হয়েছিল। তাহলে আজকের পর্বের আলোচনাও কি একই, নাকি ভিন্ন । দয়া করে চেক করুন।
ধন্যবাদ। ভিন্ন একটি বিষয় নিয়ে আলোচনা করা হয়েছে এবং আপডেট করে দেওয়া হয়েছে।
সি প্রোগ্রামিং বিষয়টি আমার অনেক পছন্দ। আপনার পোষ্টটি আমার দারুন ভাল লাগছে। আশাকরি আরও সহজ ভাবে উপস্থাপন করবেন।
জ্বী আমি যথা সাধ্য চেষ্টা করছি সহজ ভাবে উপস্থাপন করার জন্য। আপনার পরামর্শের জন্য অসংখ্য ধন্যবাদ।
ধন্যবাদ।সি প্রোগ্রামিং বিষয়টি আমার অনেক পছন্দ।
First Bangladeshi Online Latest Newspaer.Please visit this site:
http://www.khaskhabor.com/