C Programming
  • মডিউল ১: বেসিক সিন্টেক্স, ভেরিয়েবলস এবং ডেটা টাইপ
    • মডিউল ১-০: সূচনা
    • মডিউল ১-১: বেসিক স্ট্রাকচার
    • মডিউল ১-২ + মডিউল ১-৩: প্রথম সি প্রোগ্রাম + সি আউটপুট
    • মডিউল ১-৪: প্রোগ্রাম রান করি
    • মডিউল ১-৫+ মডিউল ১-৬:ভেরিয়েবল এবং ডেটা টাইপ
    • মডিউল ১-৭+ মডিউল ১-৮: সি ইনপুট + এস্কেপ সিকুয়েন্স
    • মডিউল ১-৯+ মডিউল ১-১০: ডেটা টাইপ লিমিটেশন
    • মডিউল ১-১১: ভেরিয়েবল নামকরণের নিয়মাবলি
  • মডিউল ২ঃ অপারেটরস, কন্ডিশনাল স্টেটমেন্টস
    • মডিউল ২-০: সূচনা
    • মডিউল ২-১ঃ এরিথমেটিক অপারেটরস
    • মডিউল ২-২ঃ রিলেশনাল অপারেটরস
    • মডিউল ২-৩ঃ লজিকাল অপারেটরস
    • মডিউল ২-৪, ২-৫ঃ ইফ এলস
    • মডিউল ২-৬, ২-৭ঃ ইফ এলস লেডার
    • মডিউল ২-৮, ২-৯ঃ নেস্টেড ইফ এলস
  • মডিউল ৩ঃ লুপ
    • মডিউল ৩-০: সূচনা
    • মডিউল ৩-১, ৩-২: ফর লুপ টাইপ-১
    • মডিউল ৩-৩, ৩-৪: ফর লুপ টাইপ-২
    • মডিউল ৩-৫: ১ থেকে এন পর্যন্ত যোগফল
    • মডিউল ৩-6: লুপের সাথে কন্ডিশন
    • মডিউল ৩-৭, ৩-৮: ব্রেক, কন্টিনিউ স্টেটমেন্ট
    • মডিউল ৩-৯: While & Do While লুপ
  • মডিউল ৫ঃ কন্ডিশনাল স্টেটমেন্ট রিকেপ
    • মডিউল ৫-০ঃসূচনা
    • মডিউল ৫-১ঃ I. Welcome for you with Conditions
    • মডিউল ৫-২ঃ J. Multiples
    • মডিউল ৫-৩ঃ N. Char
    • মডিউল ৫-৪ঃ P. First digit !
    • মডিউল ৫-৫ঃ M. Capital or Small or Digit
    • মডিউল ৫-৬ঃ K. Max and Min
  • মডিউল ৬ঃ লুপ রিকেপ এবং নেস্টেড লুপ
    • মডিউল ৬-০: সূচনা
    • মডিউল ৬-১: ইনক্রিমেন্ট ডিক্রিমেন্ট অপারেটর
    • মডিউল ৬-২: ইভেন নাম্বারস
    • মডিউল ৬-৩: ইভেন, ওড, পজিটিভ, নেগেটিভ
    • মডিউল ৬-৪: ফিক্সড পাসওয়ার্ড
    • মডিউল ৬-৫, ৬-৬: ম্যাক্স, মিন
    • মডিউল ৬-৭: মাল্টিপ্লিকেশন টেবিল
    • মডিউল ৬-৮: ডিজিটস
    • মডিউল ৬-৯, ৬-১০: নেস্টেড ফর লুপ
  • মডিউল ৭ঃ ইন্ট্রোডাকশন টু এরে
    • মডিউল ৭-০: সূচনা
    • মডিউল ৭-১, ৭-২: এরে কি? কেন আমাদের এরে প্রয়োজন?
    • মডিউল ৭-৩,৭-৪: এরে এক্সেস করা
    • মডিউল ৭-৫,৭-৬: এরে ইনপুট আউটপুট
    • মডিউল ৭-৭: এরে ইনিশিয়ালাইজ করা
    • মডিউল ৭-৮: এরে রিভার্স করা
    • মডিউল ৭-৯: এরেতে সবগুলো ভেলু যোগ করা
  • মডিউল ৯ঃ অ্যারে অপারেশন
    • মডিউল ৯-০: সূচনা
    • মডিউল ৯-১ + ৯-২: ইনসার্ট ইলিমেন্ট
    • মডিউল ৯-৩ + ৯-৪: ডিলিট ইলিমেন্ট
    • মডিউল ৯-৫ + ৯-৬: রিভার্স অ্যারে
    • মডিউল ৯-৭ + ৯-৮: কপি অ্যারে
  • মডিউল ১০ঃ ইন্ট্রোডাকশন টু স্ট্রিং
    • মডিউল ১০-০: সূচনা
    • মডিউল ১০-১: স্ট্রিং কি?
    • মডিউল ১০-২: স্ট্রিং ইনিশিয়ালাইজ এবং প্রিন্ট
    • মডিউল ১০-৩: স্ট্রিং ইনপুট
    • মডিউল ১০-৪: স্ট্রিং ইনপুট স্পেস সহ
    • মডিউল ১০-৫: স্ট্রিং এর লেন্থ
    • মডিউল ১০-৬: ক্রিয়েট এ নিউ স্ট্রিং
    • মডিউল ১০-৭: লেটস ইউজ গেটলাইন
    • মডিউল ১০-৮: কাউন্ট
  • মডিউল ১১ঃ স্ট্রিং অপারেশন এবং ফিকোয়েন্সি এরে
    • মডিউল ১১-০ঃ সূচনা
    • মডিউল ১১-১ঃ স্ট্রিং কপি
    • মডিউল ১১-২, ১১-৩ঃ স্ট্রিং লেক্সিকোগ্রাফিকাল কম্পারিসন
    • মডিউল ১১-৪ঃ স্ট্রিং কনকেটিনেশন
    • মডিউল ১১-৫ঃ কাউন্টিং এরে অর ফ্রিকুয়েন্সি এরে
    • মডিউল ১১-৬ঃ কাউন্টিং ক্যারেক্টার
  • মডিউল ১৩: নেস্টেড লুপ রিক্যাপ
    • মডিউল ১৩-০ঃ সূচনা
    • মডিউল ১৩-১ঃ প্যাটার্ন ১
    • মডিউল ১৩-২ঃ প্যাটার্ন ২
    • মডিউল ১৩-৩ঃ প্যাটার্ন ৩
    • মডিউল ১৩-৪ঃ প্যাটার্ন ৪
    • মডিউল ১৩-৫+১৩-৬ঃ Sum of Two Values Equal X
    • মডিউল ১৩-৭+১৩-৮ঃ সিলেকশন সর্ট
  • মডিউল ১৪ঃ ফাংশন এবং পয়েন্টার
    • মডিউল ১৪-০ঃ সূচনা
    • মডিউল ১৪-১ঃ ফাংশন কি?
    • মডিউল ১৪-২ঃ রিটার্ন + প্যারামিটার
    • মডিউল ১৪-৩ঃ রিটার্ন + নো প্যারামিটার
    • মডিউল ১৪-৪ঃ নো রিটার্ন + প্যারামিটার
    • মডিউল ১৪-৫ঃ নো রিটার্ন + নো প্যারামিটার
    • মডিউল ১৪-৬ঃ ইউজফুল বিল্ট-ইন ফাংশন
    • মডিউল ১৪-৭ঃ স্কোপ্স
    • মডিউল ১৪-৮ঃ পয়েন্টার
  • মডিউল ১৫ঃ ফাংশন উইথ পয়েন্টার
    • মডিউল ১৫-০ঃ সূচনা
    • মডিউল ১৫-১ঃ পয়েন্টারস ইন সি
    • মডিউল ১৫-২ঃ কল বাই ভেলু
    • মডিউল ১৫-৩ঃ কল বাই রেফারেন্স
    • মডিউল ১৫-৪ঃ এরে এবং পয়েন্টার
    • মডিউল ১৫-৫ঃ ফাংশন এবং এরে
    • মডিউল ১৫-৬ঃ ফাংশন এবং স্ট্রিং
    • মডিউল ১৫-৭ঃ ফাংশন ইউথ এরে এস রেফারেন্স
  • মডিউল ১৭ঃ Recursion
    • মডিউল ১৭-১ঃ Call Stack
    • মডিউল ১৭-২ঃ রিকার্সন
    • মডিউল ১৭-৩ঃ Print From 1 to n Using Recursion
    • মডিউল ১৭-৪ঃ Print From 5 to 1 using Recursion
    • মডিউল ১৭-৫ঃArray Printing using Recursion
    • মডিউল ১৭-৬ঃ Print From 5 to 1 in Reverse Way
    • মডিউল ১৭-৭ঃ Length of a String using Recursion
  • মডিউল ১৮ঃ 2D এরে
    • মডিউল ১৮-০ঃ সূচনা
    • মডিউল ১৮-১ঃ 2D এরে কি?
    • মডিউল ১৮-২ঃ 2D এরে ইনপুট আউটপুট
    • মডিউল ১৮-৩ঃ 2D এরে প্রিন্টিং বাই রো এন্ড কলাম
    • মডিউল ১৮-৪ঃ ম্যাট্রিক্স এর প্রকারভেদ
    • মডিউল ১৮-৫ঃ জিরো অথবা নাল ম্যাট্রিক্স
    • মডিউল ১৮-৬ঃ ডায়াগোনাল ম্যাট্রিক্স ইউজিং 2D এরে
    • মডিউল ১৮-৭ঃ স্কেলার ম্যাট্রিক্স ইউজিং 2D এরে
    • মডিউল ১৮-৮ঃ ইউনিট ম্যাট্রিক্স ইউজিং 2D এরে
  • মডিউল ১৯ঃ রিকারশন রিকেপ
    • মডিউল ১৯-০ঃ সূচনা
    • মডিউল ১৯-১ঃ মিরর এরে
    • মডিউল ১৯-২ঃ সাম অফ এ ম্যাট্রিক্স
    • মডিউল ১৯-৩ঃ প্রিন্ট ডিজিটস ইউজিং রিকারশন
    • মডিউল ১৯-৪ঃ কাউন্ট ভাওয়েলস
    • মডিউল ১৯-৫ঃ ফেক্টরিয়াল
    • মডিউল ১৯-৬ঃ ম্যাক্স নাম্বার
    • মডিউল ১৯-৭ঃ পেলিনড্রোম
Powered by GitBook
On this page
  • সি প্রোগ্রামিংয়ে ডেটা টাইপের সীমাবদ্ধতা
  • উদাহরণ সহ ব্যাখ্যা
  1. মডিউল ১: বেসিক সিন্টেক্স, ভেরিয়েবলস এবং ডেটা টাইপ

মডিউল ১-৯+ মডিউল ১-১০: ডেটা টাইপ লিমিটেশন

সি প্রোগ্রামিংয়ে ডেটা টাইপের সীমাবদ্ধতা

কম্পিউটারের মধ্যে তথ্য সংরক্ষণের জন্য বিভিন্ন ডেটা টাইপ (data type) ব্যবহার করা হয়। প্রতিটি ডেটা টাইপের নিজস্ব কিছু সীমাবদ্ধতা থাকে। এই সীমাবদ্ধতা বুঝতে গেলে, কম্পিউটার মেমরি (memory) কীভাবে কাজ করে, সেটা জানা দরকার।

বিট (Bit) এবং বাইট (Byte) কী?

  • বিট (Bit): কম্পিউটার মেমোরির মৌলিক একক। এটি মাত্র দুটি মানই ধারণ করতে পারে: 0 (শূন্য) অথবা 1 (এক)। এই দুইটি মানই কম্পিউটারে তথ্য উপস্থাপন করে।

  • বাইট (Byte): 8 টি বিট (8 bits) মিলে একটা বাইট (byte) হয়। আমরা সাধারণত বাইট ব্যবহার করেই কম্পিউটারের মেমরি (memory size) নির্ণয় করি।

ডেটা টাইপের সীমাবদ্ধতা:

C প্রোগ্রামিংয়ে প্রতিটি ডেটা টাইপের নিজস্ব একটি নির্দিষ্ট আকার (size) থাকে, যা বাইটে (bytes) পরিমাপ করা হয়। এই আকারই সেই ডেটা টাইপটি কতটা বড় মান স্টোর করতে পারে, সেটা নির্ধারণ করে। ঠিক ডেটা টাইপ না বেছে নিলে প্রোগ্রামে ভুল ফলাফল আসতে পারে।

কিছু সাধারণ ডেটা টাইপ এবং তাদের সীমাবদ্ধতা:

ডেটা টাইপ
আকার (বিট)
মানের পরিসীমা

int

16 বা 32

-32768 থেকে 32767 (16 বিট) অথবা -2147483648 থেকে 2147483647 (32 বিট)

float

32

±1.7 x 10^38 (আনুমানিক)

double

64

±1.7 x 10^308 (আনুমানিক)

char

8

-128 থেকে 127

উদাহরণ সহ ব্যাখ্যা

1. পূর্ণ সংখ্যার সীমাবদ্ধতা - (Integer Overflow):

int population = 10000000000;  // এটি একটি 32 বিটের int এর সীমার চেয়ে বেশি

// এই মানটি int ভেরিয়েবলে সঠিকভাবে store হবে না এবং অপ্রত্যাশিত মান দেখা দিতে পারে।
printf("population: %d\n", population);

ব্যাখ্যা:

এই উদাহরণে, populationভেরিয়েবলে 10000000000 মান দেওয়া হচ্ছে, যা একটি 32 বিটের int এর সর্বোচ্চ ধারণক্ষমতার (-2147483648 থেকে 2147483647) চেয়ে বেশি। এ কারণে, এই মানটি ভেরিয়েবলে সঠিকভাবে store হবে না। পরিবর্তে, অপ্রত্যাশিত মান দেখা দিতে পারে। এটি আপনার প্রোগ্রামের লজিক নষ্ট করে ফেলতে পারে।

সমাধান:

এই সমস্যা এড়াতে, আরও বড় পূর্ণসংখ্যা স্টোর করার জন্য long int বা long long int ডেটা টাইপ ব্যবহার করা প্রয়োজন।

2. দশমিক সংখ্যার সীমাবদ্ধতা (Floating-Point Precision):

float distance = 12345678.987654321; //float এ এত বেশি দশমিক স্থান ধরা যায়না।

// হিসাব বা প্রিন্ট করার সময় সঠিক মান নাও পাওয়া যেতে পারে।
printf("distance: %f\n", distance);

ব্যাখ্যা:

এই উদাহরণে, float টাইপের distanceভেরিয়েবলে এত বেশি দশমিক স্থানের মান দেওয়া হচ্ছে, যা float সঠিকভাবে ধারণ করতে পারে না। ফলে, হিসাব বা প্রিন্ট করার সময় সঠিক মান নাও পাওয়া যেতে পারে।

সমাধান:

float এর পরিবর্তে double ডেটা টাইপ ব্যবহার করলে কিছুটা বেশি নিখুঁত মান পাওয়া যাবে।

Previousমডিউল ১-৭+ মডিউল ১-৮: সি ইনপুট + এস্কেপ সিকুয়েন্সNextমডিউল ১-১১: ভেরিয়েবল নামকরণের নিয়মাবলি

Last updated 1 year ago