How many time the following for loop will be executed ? unsigned int i for ( i=100; i > = 0, i --) printf ("%d", i)

Updated: 5 months ago
  • Undefined
  • 100
  • 99
  • 10
590
ব্যাখ্যাঃ

প্রদত্ত for লুপটি কতবার এক্সিকিউট হবে তা বুঝতে হলে C ল্যাঙ্গুয়েজের for লুপের গঠন এবং কমা অপারেটরের কার্যকারিতা জানতে হবে।

একটি for লুপের গঠন হলো: for (initialization; condition; increment/decrement)

এখানে লুপটি হলো: for ( i=100; i > = 0, i --) printf ("%d", i)

এই লুপটিতে:

        
  • Initialization (প্রারম্ভিকীকরণ): i=100। এখানে i এর মান 100 দিয়ে শুরু হবে। unsigned int হওয়ায় i কখনও ঋণাত্মক হবে না; এটি 0 থেকে শুরু হয়ে সর্বোচ্চ মানের দিকে ঘুরে আসবে যদি ঋণাত্মক হওয়ার চেষ্টা করে।
  •     
  • Condition (শর্ত): i > = 0, i --। এটি একটি কমা অপারেটর (comma operator) ব্যবহার করা হয়েছে। C ল্যাঙ্গুয়েজে কমা অপারেটর তার বামদিকের এক্সপ্রেশনটি মূল্যায়ন করে, ফলাফল বাতিল করে দেয়, এবং তারপর তার ডানদিকের এক্সপ্রেশনটি মূল্যায়ন করে। সবশেষে, ডানদিকের এক্সপ্রেশনটির মানই পুরো কন্ডিশনের ফলাফল হিসেবে গণ্য হয়।         
                  
    • এখানে, i >= 0 প্রথমে মূল্যায়ন করা হবে।
    •             
    • তারপর i-- মূল্যায়ন করা হবে। i-- একটি পোস্ট-ডিক্রিমেন্ট (post-decrement) অপারেটর। এর অর্থ হলো, এটি i এর বর্তমান মানটি রিটার্ন করবে এবং তারপর i এর মান 1 কমিয়ে দেবে।
    •             
    • সুতরাং, পুরো কন্ডিশন (i >= 0, i--) এর ফলাফল হবে i-- এর রিটার্ন করা মানটি।
    •         
        
  •     
  • Increment/Decrement (বৃদ্ধি/হ্রাস): এই অংশটি ফাঁকা আছে। লুপের প্রতিটি Iteration শেষে i এর মান কন্ডিশন অংশে থাকা i-- দ্বারা হ্রাস পাচ্ছে।

এবার লুপটির এক্সিকিউশন ধাপে ধাপে দেখি:

        
  1. শুরুতে: i = 100
  2.     
  3. ১ম Iteration:         
                  
    • i >= 0 (100 >= 0) সত্য।
    •             
    • i-- এর মান 100 রিটার্ন করবে। এরপর i এর মান 99 হয়ে যাবে।
    •             
    • লুপের কন্ডিশন 100 (non-zero হওয়ায় সত্য)। লুপ বডি এক্সিকিউট হবে। printf("%d", i) 99 প্রিন্ট করবে।
    •         
        
  4.     
  5. ২য় Iteration:         
                  
    • i = 99
    •             
    • i >= 0 (99 >= 0) সত্য।
    •             
    • i-- এর মান 99 রিটার্ন করবে। এরপর i এর মান 98 হয়ে যাবে।
    •             
    • লুপের কন্ডিশন 99 (non-zero হওয়ায় সত্য)। লুপ বডি এক্সিকিউট হবে। printf("%d", i) 98 প্রিন্ট করবে।
    •         
        
  6.     
  7. এইভাবে লুপ চলতে থাকবে যতক্ষণ i-- এর মান non-zero থাকে।
  8.     
  9. ১০০তম Iteration:         
                  
    • i = 1
    •             
    • i >= 0 (1 >= 0) সত্য।
    •             
    • i-- এর মান 1 রিটার্ন করবে। এরপর i এর মান 0 হয়ে যাবে।
    •             
    • লুপের কন্ডিশন 1 (non-zero হওয়ায় সত্য)। লুপ বডি এক্সিকিউট হবে। printf("%d", i) 0 প্রিন্ট করবে।
    •         
        
  10.     
  11. ১০১তম Iteration (লুপ টার্মিনেশন চেক):         
                  
    • i = 0
    •             
    • i >= 0 (0 >= 0) সত্য।
    •             
    • i-- এর মান 0 রিটার্ন করবে। এরপর i এর মান -1 হওয়ার কথা থাকলেও i একটি unsigned int হওয়ায় এটি আন্ডারফ্লো (underflow) হয়ে UINT_MAX (সাধারণত \(4294967295\)) হয়ে যাবে।
    •             
    • লুপের কন্ডিশন 0 (zero হওয়ায় মিথ্যা)। তাই লুপটি এখানে টার্মিনেট করবে এবং লুপ বডি আর এক্সিকিউট হবে না।
    •         
        

উপরে আমরা দেখতে পাচ্ছি, লুপ বডি printf("%d", i) মোট 100 বার (i এর মান 100 থেকে 1 পর্যন্ত) এক্সিকিউট হয়েছে।

অতএব, লুপটি 100 বার এক্সিকিউট হবে।

Satt AI
Satt AI
1 week ago

সি প্রোগ্রামিং (C Programming) হলো একটি উচ্চ স্তরের প্রোগ্রামিং ভাষা যা ১৯৭০-এর দশকে ডেনিস রিচি (Dennis Ritchie) বেল ল্যাবরেটরিতে উদ্ভাবন করেন। এটি সিস্টেম প্রোগ্রামিং, যেমন অপারেটিং সিস্টেম এবং কম্পাইলার তৈরি করার জন্য ব্যবহৃত হয় এবং এটি দ্রুত এবং কার্যকর প্রোগ্রাম তৈরি করতে সক্ষম। সি প্রোগ্রামিং একটি বহুমুখী ভাষা যা আজও সফটওয়্যার উন্নয়ন, এমবেডেড সিস্টেম, এবং অন্যান্য প্রযুক্তিগত ক্ষেত্রে ব্যাপকভাবে ব্যবহৃত হয়।

সি প্রোগ্রামিং-এর বৈশিষ্ট্য:

১. বহুমুখী এবং শক্তিশালী:

  • সি একটি সাধারণ উদ্দেশ্য প্রোগ্রামিং ভাষা, যা বিভিন্ন ধরণের প্রোগ্রাম তৈরি করতে সক্ষম। এটি লো-লেভেল (কাঙ্ক্ষিত হার্ডওয়্যার পরিচালনা) এবং হাই-লেভেল (অ্যাপ্লিকেশন এবং সফটওয়্যার) কাজ করতে সক্ষম।

২. সিম্পল এবং এফিসিয়েন্ট:

  • সি প্রোগ্রামিং ভাষা সহজ এবং কার্যকরী, যা দ্রুত কাজ করতে এবং মেমোরির দক্ষ ব্যবহার করতে সহায়ক। এটি কম্পাইল করার সময় প্রোগ্রামের গতি এবং পারফরম্যান্স উন্নত করে।

৩. পোর্টেবল:

  • সি প্রোগ্রামিং ভাষায় লেখা প্রোগ্রামগুলো সহজেই বিভিন্ন প্ল্যাটফর্মে কম্পাইল এবং চালানো যায়। একবার সঠিকভাবে লেখা প্রোগ্রাম সহজে বিভিন্ন অপারেটিং সিস্টেমে রূপান্তর করা যায়।

৪. লাও লেভেল ফাংশনালিটি (Low-Level Functionality):

  • সি ভাষা লো-লেভেল মেমোরি ম্যানিপুলেশন এবং সরাসরি হার্ডওয়্যার নিয়ন্ত্রণ করতে পারে। এটি অ্যাসেম্বলি ভাষার বিকল্প হিসেবে কাজ করতে সক্ষম।

সি প্রোগ্রামিং-এর মৌলিক উপাদান:

১. ডাটা টাইপ (Data Types):

  • সি ভাষায় বিভিন্ন ধরনের ডাটা টাইপ থাকে, যেমন int, float, char, এবং double, যা ভেরিয়েবলগুলোর মাধ্যমে ডেটা সংরক্ষণ এবং প্রক্রিয়া করতে ব্যবহৃত হয়।

২. ভেরিয়েবল (Variables):

  • ভেরিয়েবল হলো ডেটা সংরক্ষণের স্থান যা একটি নির্দিষ্ট ডাটা টাইপ অনুযায়ী মান ধারণ করে। উদাহরণ:

int number;
float price;
char grade;
 

৩. অপারেটর (Operators):

  • সি ভাষায় গাণিতিক, লজিক্যাল, এবং সম্পর্কিত অপারেটর রয়েছে, যা প্রোগ্রামের ভেরিয়েবলের মান নিয়ে কাজ করতে সক্ষম। উদাহরণ: +, -, *, /, &&, ||, ==।

৪. কন্ট্রোল স্ট্রাকচার (Control Structures):

  • সি প্রোগ্রামিংয়ে বিভিন্ন শর্ত এবং লুপ ব্যবহৃত হয়, যেমন if, else, for, while, এবং do-while, যা প্রোগ্রামের প্রবাহ নিয়ন্ত্রণ করতে সহায়ক।
  • উদাহরণ:

if (x > y) {
   printf("x is greater");
} else {
   printf("y is greater");
}
 

৫. ফাংশন (Functions):

  • সি প্রোগ্রামিংয়ে ফাংশন হলো পুনরাবৃত্তিমূলক কাজগুলি সম্পাদন করার জন্য ব্যবহৃত কোড ব্লক। এটি কোডের পুনরাবৃত্তি কমাতে এবং প্রোগ্রামকে আরও মডুলার করতে সহায়ক।
  • উদাহরণ:

int add(int a, int b) {
   return a + b;
}
 

সি প্রোগ্রামের একটি সাধারণ উদাহরণ:

নিচে একটি সাধারণ সি প্রোগ্রাম দেখানো হলো, যা "Hello, World!" আউটপুট দেয়:

#include

int main() {
   printf("Hello, World!\n");
   return 0;
}
 

ব্যাখ্যা:

  • #include : এটি একটি হেডার ফাইল যা ইনপুট এবং আউটপুট ফাংশন (যেমন printf) ব্যবহারের জন্য প্রয়োজন।
  • int main(): প্রোগ্রামের প্রধান ফাংশন, যা প্রোগ্রাম চালু হওয়ার সময় প্রথমে কার্যকর হয়।
  • printf("Hello, World!\n");: এটি "Hello, World!" মেসেজ প্রিন্ট করে এবং একটি নতুন লাইনে যায়।
  • return 0;: প্রোগ্রাম সফলভাবে শেষ হলে ০ মান প্রদান করে।

সি প্রোগ্রামিং-এর সুবিধা:

  • দ্রুত এবং কার্যকরী: সি প্রোগ্রামিং ভাষা দ্রুত এবং মেমোরির দক্ষ ব্যবহার করে। এটি হাই পারফরম্যান্স প্রোগ্রাম এবং সিস্টেম সফটওয়্যার তৈরির জন্য আদর্শ।
  • হার্ডওয়্যার নিয়ন্ত্রণের ক্ষমতা: সি ভাষা সরাসরি মেমোরি এবং হার্ডওয়্যার নিয়ন্ত্রণ করতে সক্ষম, যা এমবেডেড সিস্টেম এবং অপারেটিং সিস্টেম তৈরি করতে সহায়ক।
  • পোর্টেবল এবং স্ট্যান্ডার্ড: সি প্রোগ্রামিং ভাষায় লেখা প্রোগ্রামগুলি বিভিন্ন প্ল্যাটফর্মে সহজে কম্পাইল এবং রূপান্তর করা যায়।

সি প্রোগ্রামিং-এর সীমাবদ্ধতা:

  • অবজেক্ট-অরিয়েন্টেড নয়: সি প্রোগ্রামিং একটি প্রসেডিউরাল ভাষা, তাই এতে অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং (OOP) সমর্থন নেই।
  • সাধারণত কম নিরাপত্তা: সি প্রোগ্রামিংয়ে মেমোরি অ্যাক্সেস এবং পয়েন্টার ব্যবহারের কারণে, প্রোগ্রামের ত্রুটি বা নিরাপত্তার ঝুঁকি থাকতে পারে।
  • ক্লাস এবং ইন্টারফেস নেই: আধুনিক প্রোগ্রামিং ভাষার তুলনায়, সি তে ক্লাস বা ইন্টারফেস সাপোর্ট নেই।

সারসংক্ষেপ:

সি প্রোগ্রামিং একটি শক্তিশালী এবং বহুমুখী প্রোগ্রামিং ভাষা, যা সিস্টেম প্রোগ্রামিং এবং এমবেডেড সিস্টেম তৈরির জন্য ব্যবহৃত হয়। এটি দ্রুত, কার্যকরী, এবং মেমোরি ব্যবস্থাপনার ক্ষমতা রাখে, যা উচ্চ মানের সফটওয়্যার এবং অ্যাপ্লিকেশন তৈরি করতে সহায়ক। তবে, এটি অবজেক্ট-অরিয়েন্টেড ফিচার এবং আধুনিক নিরাপত্তা সুবিধা সমর্থন করে না, যা কিছু ক্ষেত্রে সীমাবদ্ধতা সৃষ্টি করতে পারে।

Related Question

View All
Updated: 8 months ago
  • Law Level language
  • Mid Level Language
  • High Level language
  • None of these
4.6k
শিক্ষকদের জন্য বিশেষভাবে তৈরি

১ ক্লিকে প্রশ্ন, শীট, সাজেশন
অনলাইন পরীক্ষা তৈরির সফটওয়্যার!

শুধু প্রশ্ন সিলেক্ট করুন — প্রশ্নপত্র অটোমেটিক তৈরি!

প্রশ্ন এডিট করা যাবে
জলছাপ দেয়া যাবে
ঠিকানা যুক্ত করা যাবে
Logo, Motto যুক্ত হবে
অটো প্রতিষ্ঠানের নাম
অটো সময়, পূর্ণমান
প্রশ্ন এডিট করা যাবে
জলছাপ দেয়া যাবে
ঠিকানা যুক্ত করা যাবে
Logo, Motto যুক্ত হবে
অটো প্রতিষ্ঠানের নাম
অটো সময়, পূর্ণমান
অটো নির্দেশনা (এডিটযোগ্য)
অটো বিষয় ও অধ্যায়
OMR সংযুক্ত করা যাবে
ফন্ট, কলাম, ডিভাইডার
প্রশ্ন/অপশন স্টাইল পরিবর্তন
সেট কোড, বিষয় কোড
অটো নির্দেশনা (এডিটযোগ্য)
অটো বিষয় ও অধ্যায়
OMR সংযুক্ত করা যাবে
ফন্ট, কলাম, ডিভাইডার
প্রশ্ন/অপশন স্টাইল পরিবর্তন
সেট কোড, বিষয় কোড
এখনই শুরু করুন ডেমো দেখুন
৫০,০০০+
শিক্ষক
৩০ লক্ষ+
প্রশ্নপত্র
মাত্র ১৫ পয়সায় প্রশ্নপত্র
১ ক্লিকে প্রশ্ন, শীট, সাজেশন তৈরি করুন আজই

Complete Exam
Preparation

Learn, practice, analyse and improve

1M+ downloads
4.6 · 8k+ Reviews

Question Analytics

মোট উত্তরদাতা

জন

সঠিক
ভুল
উত্তর নেই