Data Type Part-1








ডাটা টাইপস্ (Data Types): 
একটা ভেরিয়েবল যে টাইপের ডাটা স্টোর (store) করে রাখে, তাকে ডাটা টাইপ বলে। যেমন – ইন্টিজার (integer), ফ্লোট (float) ইত্যাদি।

সি-তে চার ধরনের ডাটা টাইপ রয়েছেঃ
  •  Basic Data Type (int, char, float, double)
  • Derived Data Type (array, pointer, structure, union)
  • Enumeration Data Type (enum)
  • Void Data Type (void)
বেসিক ডাটা টাইপস্ (Basic Data Types):

বেসিক ডাটা টাইপগুলো হয় পূর্ণসংখ্যা (integer) অথবা ভগ্নাংশ (floating) ভিত্তিক হয়ে থাকে।
বেসিক ডাটা টাইপগুলোর মেমরী সাইজ ৩২ অথবা ৬৪ বিট অপারেটিং সিস্টেমের উপর ভিত্তি করে পরিবর্তিত হতে পারে।
এখন আমারা বেসিক ডাটা টাইপ নিয়ে  আলোচনা করবো। 

ইন্টিজার(int) :  ইন্টিজার ডেটা টাইপে শুধু মাত্র পূর্ণ সংখ্যা গুলো সংরক্ষন করা যায়। যেমন -
                        int a=10,b=20;
কিন্তু আমারা চাইলে ইন্টিজারে কোনো  দশমিক সংখ্যা সংরক্ষন করতে পারি না, যদি করি তাহলে দশমিকের পরের গুলা কাজ করবে না। যেমন যদি আমারা int a=8.9 রাখি তারপর আমরা প্রিন্ট করি a কে , তাহলে আমরা দেখতে পাবো শুধু 8 প্রিন্ট হয়েছে কারন ইন্টিজার দশমিকের পরের সংখ্যা সংরক্ষিত করেত পারে না। 

ফ্লোট (float):  ফ্লোট সাধারনত দশমিকের পরের সংখ্যা গুলোও সংরক্ষিত করে যেমন-
                    float a=8.9,b=10.5,c=18.65;
এখন যদি আমরা a অথবা b কে প্রিন্ট করি তাহলে দেখতে পাবো ঠিকঠাক প্রিন্ট হয়েছে 8.9 And 10.5 কিন্তু যদি c প্রিন্ট করি তাহলে আমরা দেখতে পাবো 18.6। এখন কথা হলো আমরা ইন্টিজার থেকে ফ্লোটে এসেছি যাতে দশমিকের পরেও সংখ্যা রাখতে পারি এজন্য ,কিন্তু আমরা একটা সমস্যা দেখতে পেলাম সমস্যাটা হলো আমরা ফ্লোটে দশমিকের পর একঘরের বেশি নিতে পারছিনা। এই সমস্যার সমাধান নিয়ে এসেছে double ডাটা টাইপ।

ডাবল (double) :  ডাবল আর ফ্লোট সেইম শুধু পার্থক্য হলো আমরা ডাবলে একের-অধিক ডিজিট নিতে পারছি কিন্তু এই কাজটা আমরা ফ্লোটে করতে পারতাম না। আর একটা পার্থক্য হলো মেমোরি - আমরা ফ্লোটে ৪ বাইট ডাটা রাখতে পারি আর ডাবলে ৮ বাইট।

কারেকটার  (char)  : char data type বলতে single character( একটি বর্ন যেমন a, b, z, A, N ইত্যাদি) বুঝায়। এর সাইজ ১ বাইট বা ৮ বিট।বিট(১বাইট=৮বিট)এবং রেঞ্জঃ -১২৮ থেকে +১২৭ পর্যন্ত। আমাদের কীবোর্ডের প্রত্যেকটি চিহ্নই এক একটা character। কারেকটার ভ্যারিয়েবল ডিক্লেয়ার করার নিয়ম হচ্ছেঃ

char variable_name;  //character ভ্যারিয়েবলে মাত্র একটি কারেকটার সংরক্ষন করা যায়।

Enum / Enumeration : enum অথবা enumeration অনেকটা স্ট্রাকচার এবং ইউনিয়ন মত একটি কাস্টম ডাটা টাইপ কিন্তু এর ক্ষেত্রে ভেরিয়েবল ডিক্লারেশন এবং ব্যবহারে কিছুটা পার্থক্য রয়েছে । মূলত Enumeration হচ্ছে ইউজার ডিফাইন ডাটা টাইপ কিন্তু consists করবে ইন্টিজার ডাটা টাইপ।

               enum delaration:  enum days_of_week {sun, mon ,tue,wed,thus,fri,sat};

লক্ষ রাখবেন sun , mon ,tue, এইগুলার আগে কোন ডাটা টাইপ নেই এর মানে হচ্ছে এর আগে কোন ডাটা টাইপ দিতে হয় না । সরাসরি যে constant (ভেরিয়েবল) গুলা ব্যবহারে করতে চাচ্ছেন সেইগুলা বসিয়ে দিবেন, অটোমেটিকালি  sun, mon, tue এর ভ্যালু ইন্টিজার সেট করে দিবে কম্পাইলার। আমরা যদি sun mon এর ভ্যালু সেট করে না দেই তাহলে ইনিশিয়ালি ০ থেকে শুরু হয় যেমন sun এর ভ্যালু ০, mon এর ভ্যালু ১ ইত্যাদি ।

Example-1 :  ভ্যালু assign এবং অউটপুটঃ-

#include<stdio.h>
enum days_of_week{
    sun, mon, tue, wed, thus, fri, sat
};
int main(){
    enum days_of_week day1,day2;
    day1=mon;
    printf("%d",day1); // output: 0
}


Example-2 :  mon এবং  fri  এর মধ্যে ডিফারেন্স ?

#include<stdio.h>
enum days_of_week{
    sun, mon, tue, wed, thus, fri, sat
};
int main(){
    enum days_of_week day1,day2;
    day1=mon; //1
    day2=fri; // 5
    int res = day2-day1; //5-1 = 4
    printf("%d",res); // output: 4
}

এখন আমার উদাহরন দেখে হয়তো আপনারা গুলিয়ে ফেলতে পারেন যে আমরা শুধু constant এর ভ্যালু sun mon tue এইগুলাই দিবো? উত্তর ঃ নাহ 😌 আমরা চাইলে যা খুশি দিতে পারি । 











       









No comments

Powered by Blogger.