ICT
অধ্যায় 6HSC ICT • অধ্যায় ৫

প্রোগ্রামিং ভাষা ও C প্রোগ্রামিং (Programming in C)

পর্ব 1 / 1 • Step-by-Step C Loop Execution, Format Specifiers (%d, %f) & Series Sum

পর্ব ১: C প্রোগ্রামিংয়ের ডেটা টাইপ, লুপ (for, while) ও ধারা যোগফল ট্রেসার

আনুমানিক সময়: 35 মিনিট
মূল ধারণা (Core Concept)

১৯৭২ সালে বেল ল্যাবরেটরিতে ডেনিস রিচি (Dennis Ritchie) C প্রোগ্রামিং ভাষা উদ্ভাবন করেন। C ভাষায় কোনো কাজ বা ধারার যোগফল (যেমন 1 + 2 + 3 + ... + N অথবা 2 + 4 + 6 + ... + N) বারবার পুনরাবৃত্তি করার জন্য ব্যবহৃত হয় লুপ স্টেটমেন্ট (for, while, do-while)। প্রতিটি লুপের ৩টি মূল অংশ থাকে: ১) প্রারম্ভিক মান (Initialization), ২) শর্ত (Condition), এবং ৩) মান বৃদ্ধি/হ্রাস (Increment/Decrement)।

মনে রাখার মূল পয়েন্ট:
  • কম্পাইলার (Compiler) পুরো প্রোগ্রাম একসাথে মেশিন ভাষায় অনুবাদ করে, আর ইন্টারপ্রেটার (Interpreter) এক লাইন করে অনুবাদ করে।
  • C ভাষায় পূর্ণসংখ্যার (int) জন্য ফরম্যাট স্পেসিফায়ার %d, ভগ্নাংশের (float) জন্য %f, এবং ক্যারেক্টারের (char) জন্য %c ব্যবহৃত হয়।
  • for লুপের গঠন: for(initialization; condition; increment) { statements; }
  • for লুপ এবং while লুপকে খুব সহজেই একটি থেকে অপরটিতে রূপান্তর করা যায় (বোর্ড পরীক্ষার সৃজনশীল ঘ-নম্বরের সবচেয়ে কমন প্রশ্ন)!
ধাপে ধাপে হাতে-কলমে পরীক্ষা (Guided Steps)
ক্লিক করলেই ডানপাশের ল্যাব বদলাবে!
ধাপ 1: জোড় সংখ্যার ধারা: 2 + 4 + 6 + 8 + 10 = 30 ট্রেসিং করো

ডানপাশের ল্যাবে "পরের ধাপ" বাটনে ক্লিক করে দেখো কীভাবে প্রতি ধাপে i-এর মান ২ করে বাড়ছে এবং sum ভেরিয়েবলে যোগ হচ্ছে!

ধাপ 2: একই ধারাটি while লুপে রূপান্তর করে পরীক্ষা করো

দেখো কীভাবে for লুপের কোডটি স্বয়ংক্রিয়ভাবে while লুপের কাঠামোতে রূপান্তরিত হয়ে একই ফলাফল (30) প্রদান করছে!

ধাপ 3: বিজোড় সংখ্যার ধারা: 1 + 3 + 5 + 7 + 9 = 25 পরীক্ষা করো

প্রথম পদ 1, শেষ পদ 9 এবং বৃদ্ধি 2 দিলে ৫টি ধাপে যোগফল হয় 25!

মনে রাখার সহজ নিয়ম ও ম্যাজিক ট্রিকস (Easy Rules & Tricks)
2টি শর্টকাট

for( ১; ২; ৩ ) { কাজ; } কে while লুপে নিতে হলে: ১) প্রারম্ভিক মানটিকে (১) while লুপের ওপরে নিয়ে যাও, ২) শর্তটিকে while( ২ ) এর ভেতরে রাখো, এবং ৩) বৃদ্ধি/হ্রাসের অংশটিকে (৩) লুপের বডির একদম শেষ লাইনে সেমিকোলন দিয়ে বসিয়ে দাও!

উদাহরণ (Example):for(i=2; i<=10; i=i+2) { sum += i; } ↓ while লুপে রূপান্তর: i = 2; while(i <= 10) { sum += i; i = i + 2; }
মনে রাখার ছন্দ / হুক: শুরুটা ওপরে, শর্তটা while-এর পেটে, আর বৃদ্ধিটা বডির শেষে!
বোর্ড পরীক্ষার সৃজনশীল (CQ) ও MCQ স্পেশাল টিপস
  • scanf("%d", &n); লাইনে ভেরিয়েবলের নামের আগে অবশ্যই অ্যাম্পারস্যান্ড (& — Address Operator) দিতে হয়, কিন্তু printf-এ & দেওয়া লাগে না!
  • C ভাষায় ভেরিয়েবলের নামের শুরুতে কখনো সংখ্যা (যেমন 1num) বা মাঝখানে স্পেস বা হাইফেন (যেমন Roll-No) থাকতে পারে না; কেবল আন্ডারস্কোর (_) ব্যবহার করা বৈধ (যেমন roll_no)।
প্রয়োজনীয় গাণিতিক সূত্র (Formulas)
ধারার সাধারণ লুপ সমীকরণ
for(i = প্রথম_পদ; i <= শেষ_পদ; i = i + সাধারণ_অন্তর)
যেমন 5 + 10 + 15 + ... + 50 ধারার জন্য: for(i = 5; i <= 50; i = i + 5)।

C প্রোগ্রামিং ও লুপ স্টেপ-বাই-স্টেপ ট্রেসার (for ও while Loop)

ধারার যোগফল নির্ণয়ে প্রতিবার লুপ ঘোরার সাথে সাথে i এবং sum-এর মান কীভাবে বদলায় তা নিজের চোখে দেখো

ধারা: 1 + 2 + 3 + 4 + 5 = 15
সমতুল্য C প্রোগ্রাম (for লুপ):
#include <stdio.h>
int main() {
  int i, sum = 0;
  for(i = 1; i <= 5; i = i + 1) {
    sum = sum + i;
  }
  printf("Sum = %d", sum);
  return 0;
}
লুপ ট্রেসিং টেবিল (প্রতি ধাপে মেমোরিতে মানের পরিবর্তন):
ধাপi-এর মানশর্ত (i <= 5)sum = sum + i
#111 <= 5 (সত্য / True)0 + 1 = 1
#222 <= 5 (সত্য / True)1 + 2 = 3
#333 <= 5 (সত্য / True)3 + 3 = 6
#444 <= 5 (সত্য / True)6 + 4 = 10
#555 <= 5 (সত্য / True)10 + 5 = 15