সব প্রোগ্রামই কিছু না কিছু প্রোগ্রাম নিয়ে কাজ করে। প্রোগ্রামে ব্যবহারের জন্য ডেটাকে প্রথমে মেমরিতে সংরক্ষণ করা হয় এবং প্রয়োজনে মেমরি থেকে ডেটা উত্তোলন করে কাজে লাগানো হয়। নিম্ন পযার্য়ের ভাষায় মেমরিতে ডেটা রাখার জন্য সরাসরি বিট, বাইট এবং মেমরি এ্যাড্রেস ব্যবহার করা হয়, যা বড় বড় প্রোগ্রামের জন্য অত্যন্ত জটিল এবং কষ্টকর। কারণ লক্ষ লক্ষ এ্যাড্রেসের মধ্যে কখন কোন এ্যাড্রেসে কোন ডেটা রাখা হল তা মনে রাখা অসম্ভব। এই অসুবিধা দূর করার জন্য এবং প্রোগ্রামকে সহজ করার লক্ষ্যে উচ্চ পযার্য়ের ভাষায় বিট বাইট এর পরিবর্তে ভেরিয়েবল ব্যবহার করা হয়।
ভেরিয়েবলঃ
ভেরিয়েবল হল মেমরির লোকেশনের নাম বা ঠিকানা। প্রোগ্রামে যখন কোন ডেটা নিয়ে কাজ করা হয়, প্রাথমিক ভাবে সেগুলো কমপিউটারের র্যামে অবস্থান করে। পরবর্তী সময়ে সেগুলো পুনরুদ্ধার বা পুনব্যবহারের জন্য ঐ নাম বা ঠিকানা জানা প্রয়োজন হয়। সুতরাং প্রোগ্রামে ডেটা নিয়ে কাজ করার সময় প্রতিটি ডেটার জন্য একটি ভেরিয়েবল ব্যবহার করাতে হয়। ভেরিয়েবল ব্যবহার না করে ও প্রোগ্রামে বিভিন্ন ধরনের ডেটা যেমন ক্যারেক্টার, স্ট্রিং, পূর্নসংখ্যা, ভগ্নাংশ তথা দশমিক সংখ্যা সায়েন্টিফিকসংখ্যা তথা এক্সপোনেন্সিয়াল সংখ্যা নিয়ে কাজ করা যায়।
ডেটা টাইপ ও মডিফায়ারঃ
সি ভাষায় ভেরিয়েবল ব্যবহার করে ডেটা সংরক্ষণের জন্য ভেরিয়েবল ঘোষণার সময় ডেটার ধরন অনুযায়ী উপযুক্ত ডেটা টাইপ ও ঘোষণা করতে হয়। এরুপ ব্যবহৃত চারটি মৌলিক বা বিল্ট ইন ডেটা টাইপ হলঃ char, integer, float, double। চারটি মৌলিক ডেটা এর জন্য ঘোষিত ভেরিয়েবলের জন্য সংরক্ষিত মেমরি পরিসর, ডেটার প্রকৃতি এবং ধারণ ক্ষমতার একটা সীমাবদ্ধতা রয়েছে। যেমনঃ একটি char টাইপ ভেরিয়েবলের জন্য ৮ বিট বা ১ বাইট জায়গা সংরক্ষণ করে যাতে ০ থেকে ১২৭ মানবিশিষ্ট মোট ১২৮টি ব্যারেক্টারের যে কোন একটি মান রাথা যায়।
এছাড়াও সি তে আরও ৪টি মডিফায়ার আছে।
সেগুলো হলঃ- singed, unsigned, short, long ।
সাধারনত char টাইপ ভেরিয়েবলের জন্য singed ও unsigned মডিফায়ার এবং টাইপ ভেরিয়েবলের জন্য singed, unsigned, short ও long মডিফায়ার, float ও double টাইপ ভেরিয়েবলের জন্য short এবং long মডিফায়ার ব্যবহৃত হয়।
এসব ডেটার বিট ও মানের রেঞ্জ জানা খুব জরুরী।
ডেটা টাইপ | বিট সংখ্যা | ডেটা বা ভেরিয়েবলের মানের রেঞ্জ |
Char | 8 | -128↔ 127 বা -27 ↔ 27-1 |
Signed char | 8 | -128↔ 127 বা -27 ↔ 27-1 |
Unsigned char | 8 | 0 ↔ 255 বা 0 ↔ (28-1) |
Integer | 16 | -32768 ↔32767 বা -215↔ 215-1 |
Short integer | 16 | -32768 ↔32767 |
Unsigned int | 16 | 0 ↔ 65535 বা 0 ↔ ( 216-1) |
Long integer | 32 | – 231 ↔ 231-1 |
Float | 32 | 3.4xE-38 ↔ 3.4xE38 |
Long float | 64 | 1.7xE-308 ↔1.7xE308 |
Double | 64 | 1.7xE-308 ↔1.7xE308 |
Long double | 80 | 3.4xE-4932 ↔ 1.1xE4932 |
ভেরিয়েবল ঘোষনার নিয়মাবলীঃ
- একই ফাংশনে একই নামে দুই বা ততোধিক ভেরিয়েবল ঘোষণা করা যায় না।
- ভেরিয়েবল নামকরনে কেবল আলফাবেটিক ক্যারেক্টার (a .. z) (A…Z) ডিজিট (০,… ৯) এবং আন্ডারস্কোর(_)ও ডলার চিহৃ ($) ব্যবহার করা যায়। আন্ডারস্কোর ও ডলার চিহৃ ব্যতীত অন্য কোন স্পেশাল ক্যারেক্টার (যেমনঃ !,+,-,% ইত্যাদি ব্যবহার করা যায় না।) যেমনঃ my_car, My$Roll বৈধ, কিন্তু my@car , My&Roll অবৈধ।
- ভেরিয়েবল নামের মধ্যে কোন ফাকা স্থান থাকতে পারে না। যেমনঃ Myname, Myhouse বৈধ, My name, My house অবৈধ।
- ভেরিয়েবলের নাম ডিজিট বা অংক দিয়ে শুরু হতে পারে না।
- সি প্রোগ্রামে বড় হাতের অক্ষর এবং ছোট হাতের অক্ষর আলাদ অর্থ বহন করে। সি প্রোগ্রামে ছোট হাতের অক্ষর ব্যবহার করতে হয় । তবে বিশেষ ক্ষেত্রে বড় হাতের অক্ষর ব্যবহার করা হয়।
- কোন কীওয়ার্ডের নাম ভেরিয়েবল হিসেবে ব্যবহার করা যায় না।
- ভেরিয়েবল নামকরনে যে কোন সংখ্যাক ক্যারেক্টার ব্যবহার করা যায়। তবে ভেরিয়েবলের নাম ৩১ ক্যারেক্টারের মধ্যে হওয়া ভাল।
ভাই সি নিয়ে একটু বেশী করে লিখুন! সি’টা খুবই কঠিন বিদেশী লেখক দের লেখা বোঝা খুবই কষ্টকর।
@শিবলী, সি প্রোগামিংটা ভালভাবে রপ্ত করতে পারলে অণ্য প্রগ্রামিং ভাষা শেখা অনেক বেশি সহজ হয়ে যায়। আমি বেসিক প্রগ্রামিং কনসেপ্ট সি থেকেই শিখেছি। আপনি ভবিষ্যতে কম্পিউটার সাইন্সে পড়লে সি তেই প্রগ্রামিং এর হাতে খরি হবে। অনেক বেশি বেসিক বিষয় শিখতে হয় এখানে। নিয়মিতভাবে শিখতে থাকুন ভাল লাগবে।
বিদেশি লেখকদের বই আপনাকে পড়তেই হবে…বাংলাতে এখনো সমৃদ্ধ আর্টিকেল অনেক কম।
@টিউটো, মাহবুব ভাই আপনার জানা কোন সি/সি++ ভালো ই-বই আছে? যে কোন একটা নাম দিবেন কিন্তু!
ওহ্! আমাদের টিউটরিয়াল বিডিতে স্বাগতম।
হায় রে কপাল….কত মন্তব্য বার লিখলাম আর জলে গেল……
যাক সু স্বাগতম………
আপনাকে রিকোয়েস্ট করা হচ্ছে শেষ না করে যাবেন না……..
Bhai Thanks. Would you help me by sending some C++ bangla lecture sheet. I’m struggling in cape town with c++.
-Sirajus Sadekin Ronju
Cape Peninsula University of Technology
Cape Town.
অনেক সুন্দর হইছে,চালিয়ে যান