HSC ICT অধ্যায় ৫ সি প্রোগ্রামিংয়ে ডাটা টাইপ

 সি প্রোগ্রামিংয়ে ডাটা টাইপ প্রধানত তিন প্রকার: **মৌলিক (Basic)**, **প্রাপ্ত (Derived)**, এবং **ব্যবহারকারী-নির্ধারিত (User-Defined)**। নিচে প্রতিটি প্রকারের বিস্তারিত বর্ণনা দেওয়া হলো:



### ১. **মৌলিক ডাটা টাইপ (Basic Data Types)** 

মৌলিক ডাটা টাইপ চার ধরনের:

- **int (ইন্টিজার)**: পূর্ণসংখ্যা (যেমন: `5, -10, 0`) সংরক্ষণের জন্য ব্যবহৃত হয়। এটির সাইজ সাধারণত **৪ বাইট** (আধুনিক সিস্টেমে) বা **২ বাইট** (পুরাতন সিস্টেমে)। রেঞ্জ: `-২,১৪৭,৪৮৩,৬৪৮` থেকে `২,১৪৭,৪৮৩,৬৪৭` (৪ বাইটের ক্ষেত্রে)।

- **float (ফ্লোট)**: দশমিক সংখ্যা (যেমন: `3.14, -5.67`) সংরক্ষণ করে। সাইজ **৪ বাইট** এবং প্রিসিশন **৬-৭ ডিজিট** পর্যন্ত।

- **double (ডাবল)**: float-এর চেয়ে বেশি নির্ভুলতা দিয়ে দশমিক সংখ্যা (যেমন: `2.71828`) সংরক্ষণ করে। সাইজ **৮ বাইট** এবং প্রিসিশন **১৫ ডিজিট** পর্যন্ত।

- **char (ক্যারেক্টার)**: একটি মাত্র ASCII ক্যারেক্টার (যেমন: `'A', '7', '$'`) সংরক্ষণ করে। সাইজ **১ বাইট**। রেঞ্জ: `-১২৮` থেকে `১২৭` (signed) বা `০` থেকে `২৫৫` (unsigned)।


**উদাহরণ কোড**:

```c

int age = 20;

float pi = 3.1416;

char grade = 'A';

```


---


### ২. **প্রাপ্ত ডাটা টাইপ (Derived Data Types)** 

এগুলো মৌলিক ডাটা টাইপের সমন্বয়ে গঠিত:

- **অ্যারে (Array)**: একই টাইপের একাধিক ডাটা সংরক্ষণ করে (যেমন: `int marks[5]`)।

- **পয়েন্টার (Pointer)**: মেমোরি অ্যাড্রেস সংরক্ষণ করে (যেমন: `int *ptr = &age`)।

- **স্ট্রাকচার (Structure)**: বিভিন্ন টাইপের ডাটার গ্রুপ তৈরি করে (যেমন: `struct Student { int id; char name[20]; }`)।

- **ফাংশন (Function)**: নির্দিষ্ট টাস্ক সম্পাদনের জন্য কোড ব্লক তৈরি করে।


---


### ৩. **ব্যবহারকারী-নির্ধারিত ডাটা টাইপ (User-Defined Data Types)** 

প্রোগ্রামার নিজের প্রয়োজন অনুযায়ী তৈরি করে:

- **ইনিউম (Enum)**: নামযুক্ত ধ্রুবকের সেট তৈরি করে (যেমন: `enum Week {Sun, Mon, Tue}`)।

- **ইউনিয়ন (Union)**: একই মেমোরি লোকেশনে বিভিন্ন টাইপের ডাটা সংরক্ষণ করে।

- **টাইপডেফ (typedef)**: বিদ্যমান ডাটা টাইপের নতুন নাম নির্ধারণ করে (যেমন: `typedef int Age;`)।


---


### ডাটা টাইপের মডিফায়ার (Modifiers) 

মৌলিক ডাটা টাইপের রেঞ্জ বা সাইজ পরিবর্তনের জন্য মডিফায়ার ব্যবহার করা হয়:

- **signed/unsigned**: সংখ্যার চিহ্ন নির্ধারণ করে (যেমন: `unsigned int` শুধু ধনাত্মক সংখ্যা নেয়)।

- **short/long**: ডাটার সাইজ পরিবর্তন করে (যেমন: `long double` ১০ বাইট পর্যন্ত সাইজ নিতে পারে)।


---


### ডাটা টাইপের গুরুত্বপূর্ণ বৈশিষ্ট্য 

- প্রতিটি ভেরিয়েবল ডিক্লেয়ারের সময় ডাটা টাইপ উল্লেখ করতে হয়।

- ডাটা টাইপের উপর ভিত্তি করে মেমোরি বরাদ্দ হয় (যেমন: `char` = ১ বাইট, `int` = ৪ বাইট)।

- ভুল ফরম্যাট স্পেসিফায়ার ব্যবহার করলে প্রোগ্রাম ক্র্যাশ হতে পারে (যেমন: `float`-এর জন্য `%f`, `int`-এর জন্য `%d`)।


---


### সংক্ষিপ্ত টেবিল: মৌলিক ডাটা টাইপের সাইজ ও রেঞ্জ 

| ডাটা টাইপ | সাইজ (বাইট) | রেঞ্জ |

|-----------|-------------|--------|

| `char`    | ১           | -১২৮ থেকে ১২৭ |

| `int`     | ৪           | -২১৪৭ মিলিয়ন থেকে +২১৪৭ মিলিয়ন |

| `float`   | ৪           | ৩.৪e-৩৮ থেকে ৩.৪e+৩৮ |

| `double`  | ৮           | ১.৭e-৩০৮ থেকে ১.৭e+৩০৮ |


Next Post Previous Post
No Comment
Add Comment
comment url