১. তিনটি সংখ্যার মধ্যে বৃহত্তম সংখ্যা নির্ণয় অ্যালগরিদম শুরু করুন। তিনটি সংখ্যা $a, b, c$ ইনপুট নিন। $max = a$ সেট করুন। যদি $b > max$ হয়, তাহলে $max = b$ সেট করুন। যদি $c > max$ হয়, তাহলে $max = c$ সেট করুন। $max$ প্রিন্ট করুন। শেষ করুন। ফ্লোচার্ট Start Input a, b, c max = a b > max? Yes max = b No c > max? Yes max = c No Print max End C প্রোগ্রাম #include <stdio.h> int main() { int num1, num2, num3; printf("তিনটি সংখ্যা লিখুন: "); scanf("%d %d %d", &num1, &num2, &num3); if (num1 >= num2 && num1 >= num3) { printf("%d সবচেয়ে বড় সংখ্যা।\n", num1); } else if (num2 >= num1 && num2 >= num3) { printf("%d সবচেয়ে বড় সংখ্যা।\n", num2); } else { printf("%d সবচেয়ে বড় সংখ্যা।\n", num3); } return 0; } ২. তিনটি সংখ্যার মধ্যে ক্ষুদ্রতম সংখ্যা নির্ণয় অ্যালগরিদম শুরু করুন। তিনটি সংখ্যা $a, b, c$ ইনপুট নিন। $min = a$ সেট করুন। যদি $b যদি $c $min$ প্রিন্ট করুন। শেষ করুন। C প্রোগ্রাম #include <stdio.h> int main() { int num1, num2, num3; printf("তিনটি সংখ্যা লিখুন: "); scanf("%d %d %d", &num1, &num2, &num3); if (num1 <= num2 && num1 <= num3) { printf("%d সবচেয়ে ছোট সংখ্যা।\n", num1); } else if (num2 <= num1 && num2 <= num3) { printf("%d সবচেয়ে ছোট সংখ্যা।\n", num2); } else { printf("%d সবচেয়ে ছোট সংখ্যা।\n", num3); } return 0; } ৩. ফাংশন ব্যবহার করে বৃত্তের ক্ষেত্রফল নির্ণয় #include <stdio.h> #define PI 3.14159 // ফাংশন যা বৃত্তের ক্ষেত্রফল গণনা করে double calculateArea(double radius) { return PI * radius * radius; } int main() { double radius; printf("বৃত্তের ব্যাসার্ধ লিখুন: "); scanf("%lf", &radius); double area = calculateArea(radius); // ফাংশন কল printf("বৃত্তের ক্ষেত্রফল: %.2lf\n", area); return 0; } ৪. ফাংশন ব্যবহার করে দুটি সংখ্যা অদল-বদল (Swap) #include <stdio.h> // ফাংশন যা দুটি সংখ্যার মান অদল-বদল করে void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } int main() { int num1 = 10, num2 = 20; printf("অদল-বদলের আগে: num1 = %d, num2 = %d\n", num1, num2); swap(&num1, &num2); // ফাংশন কল, ঠিকানাকে আর্গুমেন্ট হিসাবে পাস করা printf("অদল-বদলের পরে: num1 = %d, num2 = %d\n", num1, num2); return 0; } ৫. $1+2+3 \dots +100$ সিরিজের যোগফল নির্ণয় #include <stdio.h> int main() { int sum = 0; for (int i = 1; i <= 100; i++) { sum += i; } printf("1 থেকে 100 পর্যন্ত সংখ্যার যোগফল: %d\n", sum); return 0; } ৬. প্রোগ্রাম পরিকল্পনার ধাপসমূহ সমস্যা বিশ্লেষণ (Problem Analysis): সমস্যাটি ভালোভাবে বোঝা, ইনপুট, আউটপুট এবং প্রক্রিয়াকরণের প্রয়োজনীয়তা চিহ্নিত করা। অ্যালগরিদম ডিজাইন (Algorithm Design): সমস্যা সমাধানের জন্য ধাপে ধাপে নির্দেশাবলী তৈরি করা। এটি ফ্লোচার্ট বা সিউডোকোড আকারে হতে পারে। কোডিং (Coding): নির্বাচিত প্রোগ্রামিং ভাষায় অ্যালগরিদমকে কোডে রূপান্তর করা। পরীক্ষা ও ডিবাগিং (Testing and Debugging): কোডটি সঠিকভাবে কাজ করছে কিনা তা পরীক্ষা করা এবং ত্রুটি (bugs) থাকলে তা সংশোধন করা। ডকুমেন্টেশন (Documentation): প্রোগ্রামের কার্যকারিতা, ব্যবহারবিধি এবং অভ্যন্তরীণ গঠন সম্পর্কে বিস্তারিত বিবরণ লেখা। রক্ষণাবেক্ষণ (Maintenance): প্রোগ্রামটিকে সময়ের সাথে আপডেট করা, নতুন বৈশিষ্ট্য যোগ করা বা বিদ্যমান ত্রুটিগুলি সংশোধন করা। ৭. Else if Statement ব্যবহার করে গ্রেড নির্ণয় #include <stdio.h> int main() { int marks; printf("নম্বর লিখুন (0-100): "); scanf("%d", &marks); if (marks >= 80 && marks <= 100) { printf("আপনার গ্রেড: A+\n"); } else if (marks >= 70 && marks < 80) { printf("আপনার গ্রেড: A\n"); } else if (marks >= 60 && marks < 70) { printf("আপনার গ্রেড: B\n"); } else if (marks >= 50 && marks < 60) { printf("আপনার গ্রেড: C\n"); } else if (marks >= 40 && marks < 50) { printf("আপনার গ্রেড: D\n"); } else if (marks >= 0 && marks < 40) { printf("আপনার গ্রেড: F\n"); } else { printf("অবৈধ নম্বর।\n"); } return 0; } ৮. ১ থেকে ১০০ এর মধ্যে বিজোড় সংখ্যা (Odd Number) নির্ণয় #include <stdio.h> int main() { printf("1 থেকে 100 এর মধ্যে বিজোড় সংখ্যাগুলি:\n"); for (int i = 1; i <= 100; i++) { if (i % 2 != 0) { // যদি সংখ্যাটি 2 দ্বারা বিভাজ্য না হয় printf("%d ", i); } } printf("\n"); return 0; } ৯. Array ব্যবহার করে ১০টি সংখ্যার মধ্যে বৃহত্তম সংখ্যা নির্ণয় #include <stdio.h> int main() { int numbers[10]; int largest; printf("10টি পূর্ণসংখ্যা লিখুন:\n"); for (int i = 0; i < 10; i++) { printf("সংখ্যা %d: ", i + 1); scanf("%d", &numbers[i]); } largest = numbers[0]; // প্রথম সংখ্যাটিকে বৃহত্তম ধরে নেওয়া হয় for (int i = 1; i < 10; i++) { if (numbers[i] > largest) { largest = numbers[i]; } } printf("সবচেয়ে বড় সংখ্যা: %d\n", largest); return 0; } ১০. তিনটি সংখ্যার মধ্যে ক্ষুদ্রতম সংখ্যা নির্ণয় (পুনরাবৃত্তি) #include <stdio.h> int main() { int num1, num2, num3; printf("তিনটি সংখ্যা লিখুন: "); scanf("%d %d %d", &num1, &num2, &num3); int smallest = num1; // প্রথম সংখ্যাটিকে ক্ষুদ্রতম ধরে নেওয়া হয় if (num2 < smallest) { smallest = num2; } if (num3 < smallest) { smallest = num3; } printf("তিনটি সংখ্যার মধ্যে সবচেয়ে ছোট সংখ্যা: %d\n", smallest); return 0; } ১১. ত্রিভুজের ক্ষেত্রফল নির্ণয় অ্যালগরিদম শুরু করুন। ভূমি ($base$) এবং উচ্চতা ($height$) ইনপুট নিন। ক্ষেত্রফল ($area$) গণনা করুন: $area = 0.5 \times base \times height$। $area$ প্রিন্ট করুন। শেষ করুন। ফ্লোচার্ট Start Input base, height area = 0.5 * base * height Print area End C প্রোগ্রাম #include <stdio.h> int main() { double base, height, area; printf("ত্রিভুজের ভূমি লিখুন: "); scanf("%lf", &base); printf("ত্রিভুজের উচ্চতা লিখুন: "); scanf("%lf", &height); area = 0.5 * base * height; printf("ত্রিভুজের ক্ষেত্রফল: %.2lf\n", area); return 0; } ১২. ১ থেকে ২৫ পর্যন্ত মৌলিক সংখ্যা (Prime Number) নির্ণয় #include <stdio.h> #include <stdbool.h> // bool ডেটা টাইপের জন্য // একটি সংখ্যা মৌলিক কিনা তা পরীক্ষা করার জন্য ফাংশন bool isPrime(int n) { if (n <= 1) return false; // 0 এবং 1 মৌলিক সংখ্যা নয় for (int i = 2; i * i <= n; i++) { if (n % i == 0) { return false; // যদি বিভাজ্য হয়, মৌলিক নয় } } return true; // অন্যথায় মৌলিক } int main() { printf("1 থেকে 25 পর্যন্ত মৌলিক সংখ্যাগুলি:\n"); for (int i = 1; i <= 25; i++) { if (isPrime(i)) { printf("%d ", i); } } printf("\n"); return 0; } ১৩. $1+2+3 \dots +31$ সিরিজের যোগফল নির্ণয় #include <stdio.h> int main() { int sum = 0; for (int i = 1; i <= 31; i++) { sum += i; } printf("1 থেকে 31 পর্যন্ত সংখ্যার যোগফল: %d\n", sum); return 0; } ১৪. সি ভাষার লুপের গঠন (Syntax) a) For Loop for (initialization; condition; increment/decrement) { // কোড যা বারবার এক্সিকিউট হবে } b) While Loop while (condition) { // কোড যা শর্ত সত্য থাকা পর্যন্ত এক্সিকিউট হবে } c) Do-While Loop do { // কোড যা অন্তত একবার এক্সিকিউট হবে, তারপর শর্ত সত্য থাকা পর্যন্ত } while (condition); ১৫. ফাংশন ব্যবহার করে ত্রিভুজের ক্ষেত্রফল নির্ণয় #include <stdio.h> // ফাংশন যা ত্রিভুজের ক্ষেত্রফল গণনা করে double calculateTriangleArea(double base, double height) { return 0.5 * base * height; } int main() { double base, height; printf("ত্রিভুজের ভূমি লিখুন: "); scanf("%lf", &base); printf("ত্রিভুজের উচ্চতা লিখুন: "); scanf("%lf", &height); double area = calculateTriangleArea(base, height); // ফাংশন কল printf("ত্রিভুজের ক্ষেত্রফল: %.2lf\n", area); return 0; } ১৬. শর্তসাপেক্ষে ধনাত্মক সংখ্যা (n) এর ফ্যাক্টরিয়াল নির্ণয় #include <stdio.h> int main() { int n, i; unsigned long long factorial = 1; // ফ্যাক্টরিয়াল বড় হতে পারে তাই unsigned long long ব্যবহার printf("একটি ধনাত্মক পূর্ণসংখ্যা লিখুন: "); scanf("%d", &n); // নেতিবাচক সংখ্যার জন্য ফ্যাক্টরিয়াল সংজ্ঞায়িত নয় // 0 এর ফ্যাক্টরিয়াল 1 if (n < 0) { printf("নেতিবাচক সংখ্যার ফ্যাক্টরিয়াল সংজ্ঞায়িত নয়।\n"); } else { for (i = 1; i <= n; i++) { factorial *= i; } printf("%d এর ফ্যাক্টরিয়াল = %llu\n", n, factorial); } return 0; } ১৭. ফিবোনাচ্চি সংখ্যা (Fibonacci) নির্ণয় #include <stdio.h> int main() { int n, first = 0, second = 1, next, i; printf("কতগুলি ফিবোনাচ্চি সংখ্যা দেখতে চান? "); scanf("%d", &n); printf("ফিবোনাচ্চি সিরিজ:\n"); for (i = 0; i < n; i++) { if (i <= 1) { next = i; } else { next = first + second; first = second; second = next; } printf("%d ", next); } printf("\n"); return 0; }