শিক্ষামূলক প্ল্যাটফর্ম

DYNAMIC CAREER IT & EDUCATION CARE

শিক্ষা, পরীক্ষা প্রস্তুতি ও বিষয়ভিত্তিক পাঠের নির্ভরযোগ্য প্ল্যাটফর্ম
আবেদন ফর্ম
48পাঠক 14মিনিট HSC ICT

সর্বশেষ পোস্ট

20টি
বর্তমান

C Programming Model Test Solution | ১০টি গুরুত্বপূর্ণ অ্যালগরিদম, ফ্লোচার্ট ও C প্রোগ্রাম সমাধান

HSC 14মিনিট পড়া
C Programming Model Test Solution | ১০টি গুরুত্বপূর্ণ অ্যালগরিদম, ফ্লোচার্ট ও C প্রোগ্রাম সমাধান

ডাইনামিক ক্যারিয়ার
তথ্য ও যোগাযোগ প্রযুক্তি — ৫ম অধ্যায় (C Programming Model Test Solution)
সময়: ১ ঘণ্টা | পূর্ণ মান: ৩০

খ বিভাগ: সূত্র সম্পর্কিত প্রশ্ন (২টি)

প্রশ্ন ১: ত্রিভুজের তিনটি বাহুর দৈর্ঘ্য (a, b, c) ইনপুট নিয়ে হিরনের সূত্র ব্যবহার করে ক্ষেত্রফল নির্ণয়

📌 অ্যালগরিদম (Algorithm):

১. শুরু করি।

২. ত্রিভুজের তিন বাহুর দৈর্ঘ্য a, b, c এর মান ইনপুট নিই।

৩. অর্ধ-পরিসীমা s = (a + b + c) / 2.0 হিসাব করি।

৪. ক্ষেত্রফল Area = √(s × (s - a) × (s - b) × (s - c)) হিসাব করি।

৫. Area এর মান প্রদর্শন করি।

৬. শেষ করি।

📌 ফ্লোচার্ট (Flowchart Steps):

[Start] ➔ [Input a, b, c] ➔ [s = (a + b + c) / 2.0] ➔ [Area = sqrt(s * (s - a) * (s - b) * (s - c))] ➔ [Print Area] ➔ [End]

💻 সি প্রোগ্রাম (C Program):

#include <stdio.h>
#include <math.h>

int main() {
float a, b, c, s, area;

printf("ত্রিভুজের তিনটি বাহু (a, b, c) প্রবেশ করান: ");
scanf("%f %f %f", &a, &b, &c);

s = (a + b + c) / 2.0;
area = sqrt(s * (s - a) * (s - b) * (s - c));

printf("ত্রিভুজের ক্ষেত্রফল = %.2f\n", area);

return 0;
}

প্রশ্ন ২: চক্রবৃদ্ধি মূলধন (A = P(1 + R/100)ⁿ) এবং মোট চক্রবৃদ্ধি সুদ নির্ণয়

📌 অ্যালগরিদম (Algorithm):

১. শুরু করি।

২. মূলধন P, সুদের হার R এবং সময় n ইনপুট নিই।

৩. চক্রবৃদ্ধি মূলধন A = P × (1 + R / 100)ⁿ হিসাব করি।

৪. চক্রবৃদ্ধি সুদ CI = A - P হিসাব করি।

৫. A এবং CI এর মান প্রদর্শন করি।

৬. শেষ করি।

📌 ফ্লোচার্ট (Flowchart Steps):

[Start] ➔ [Input P, R, n] ➔ [A = P * pow((1 + R / 100.0), n)] ➔ [CI = A - P] ➔ [Print A, CI] ➔ [End]

💻 সি প্রোগ্রাম (C Program):

#include <stdio.h>
#include <math.h>

int main() {
double P, R, n, A, CI;

printf("মূলধন (P), সুদের হার (R), সময় (n) প্রবেশ করান: ");
scanf("%lf %lf %lf", &P, &R, &n);

A = P * pow((1 + R / 100.0), n);
CI = A - P;

printf("চক্রবৃদ্ধি মূলধন (A) = %.2lf\n", A);
printf("মোট চক্রবৃদ্ধি সুদ (CI) = %.2lf\n", CI);

return 0;
}

গ বিভাগ: Conditional Statement (if) সম্পর্কিত প্রশ্ন (৮টি)

প্রশ্ন ৩: ত্রিভুজ গঠন সম্ভব কি না যাচাই এবং সমবাহু, সমদ্বিবাহু নাকি বিষমবাহু তা নির্ণয়

📌 অ্যালগরিদম (Algorithm):

১. শুরু করি।

২. বাহু তিনটি a, b, c ইনপুট নিই।

৩. যদি (a + b > c) এবং (b + c > a) এবং (a + c > b) হয়:

• যদি a == b এবং b == c হয়, তবে ছাপাই "Equilateral Triangle (সমবাহু)"।

• অন্যথায় যদি a == b অথবা b == c অথবা a == c হয়, তবে ছাপাই "Isosceles Triangle (সমদ্বিবাহু)"।

• অন্যথায়, ছাপাই "Scalene Triangle (বিষমবাহু)"।

৪. অন্যথায়:

• ছাপাই "Triangle cannot be formed (ত্রিভুজ গঠন সম্ভব নয়)"।

৫. শেষ করি।

📌 ফ্লোচার্ট (Flowchart Steps):

[Start] ➔ [Input a, b, c] ➔ Decision: [(a+b>c) && (b+c>a) && (a+c>b)?]

├─ No ➔ [Print "Triangle not possible"] ➔ [End]

└─ Yes ➔ Decision: [a==b && b==c?]

├─ Yes ➔ [Print "Equilateral"] ➔ [End]

└─ No ➔ Decision: [a==b || b==c || a==c?]

├─ Yes ➔ [Print "Isosceles"] ➔ [End]

└─ No ➔ [Print "Scalene"] ➔ [End]

💻 সি প্রোগ্রাম (C Program):

#include <stdio.h>

int main() {
float a, b, c;
printf("ত্রিভুজের তিনটি বাহুর দৈর্ঘ্য প্রবেশ করান: ");
scanf("%f %f %f", &a, &b, &c);

if ((a + b > c) && (b + c > a) && (a + c > b)) {
if (a == b && b == c) {
printf("ত্রিভুজটি সমবাহু (Equilateral)\n");
} else if (a == b || b == c || a == c) {
printf("ত্রিভুজটি সমদ্বিবাহু (Isosceles)\n");
} else {
printf("ত্রিভুজটি বিষমবাহু (Scalene)\n");
}
} else {
printf("প্রদত্ত বাহুগুলো দ্বারা ত্রিভুজ গঠন সম্ভব নয়।\n");
}

return 0;
}

প্রশ্ন ৪: বিদ্যুৎ বিল হিসাব করা (শর্তানুসারে ও ৫% সারচার্জসহ)

📌 অ্যালগরিদম (Algorithm):

১. শুরু করি।

২. ব্যবহৃত বিদ্যুতের ইউনিট U ইনপুট নিই।

৩. যদি U <= 100 হয়, তবে Total = U × 5

৪. অন্যথায় যদি U <= 300 হয়, তবে Total = (100 × 5) + (U - 100) × 7

৫. অন্যথায় (U > 300):

• Base = (100 × 5) + (200 × 7) + (U - 300) × 10

• Surcharge = Base × 0.05

• Total = Base + Surcharge

৬. Total বিল প্রদর্শন করি।

৭. শেষ করি।

📌 ফ্লোচার্ট (Flowchart Steps):

[Start] ➔ [Input U] ➔ Decision: [U <= 100?]

├─ Yes ➔ [Total = U * 5] ➔ [Print Total] ➔ [End]

└─ No ➔ Decision: [U <= 300?]

├─ Yes ➔ [Total = 500 + (U - 100) * 7] ➔ [Print Total] ➔ [End]

└─ No ➔ [Base = 1900 + (U - 300) * 10] ➔ [Total = Base + Base * 0.05] ➔ [Print Total] ➔ [End]

💻 সি প্রোগ্রাম (C Program):

#include <stdio.h>

int main() {
float unit, total_bill, surcharge, base_bill;
printf("ব্যবহৃত বিদ্যুতের ইউনিট প্রবেশ করান: ");
scanf("%f", &unit);

if (unit <= 100) {
total_bill = unit * 5;
} else if (unit <= 300) {
total_bill = (100 * 5) + (unit - 100) * 7;
} else {
base_bill = (100 * 5) + (200 * 7) + (unit - 300) * 10;
surcharge = base_bill * 0.05;
total_bill = base_bill + surcharge;
}

printf("মোট বিদ্যুৎ বিল = %.2f টাকা\n", total_bill);
return 0;
}

প্রশ্ন ৫: লিপ ইয়ার বিবেচনা করে প্রদত্ত তারিখটি বৈধ (Valid Date) নাকি অবৈধ তা পরীক্ষা

📌 অ্যালগরিদম (Algorithm):

১. শুরু করি।

২. দিন (dd), মাস (mm), এবং বছর (yyyy) ইনপুট নিই।

৩. যদি yyyy < 1 অথবা mm < 1 অথবা mm > 12 হয়, তবে ছাপাই "Invalid Date"।

৪. ফেব্রুয়ারি মাসের দিন সংখ্যা নির্ধারণ:

• যদি (yyyy % 400 == 0) অথবা (yyyy % 4 == 0 এবং yyyy % 100 != 0) হয়, তবে max_days = 29, অন্যথায় max_days = 28।

৫. অন্যান্য মাসের দিন সংখ্যা নির্ধারণ:

• যদি mm == 4, 6, 9, 11 হয়, তবে max_days = 30, অন্যথায় max_days = 31।

৬. যদি dd >= 1 এবং dd <= max_days হয়, তবে ছাপাই "Valid Date", অন্যথায় "Invalid Date"।

৭. শেষ করি।

📌 ফ্লোচার্ট (Flowchart Steps):

[Start] ➔ [Input dd, mm, yyyy] ➔ Decision: [yyyy >= 1 && mm >= 1 && mm <= 12?]

├─ No ➔ [Print "Invalid Date"] ➔ [End]

└─ Yes ➔ [Set max_days based on month & Leap Year] ➔ Decision: [dd >= 1 && dd <= max_days?]

├─ Yes ➔ [Print "Valid Date"] ➔ [End]

└─ No ➔ [Print "Invalid Date"] ➔ [End]

💻 সি প্রোগ্রাম (C Program):

#include <stdio.h>

int main() {
int dd, mm, yyyy, max_days;
printf("তারিখ প্রবেশ করান (dd mm yyyy): ");
scanf("%d %d %d", &dd, &mm, &yyyy);

if (yyyy >= 1 && mm >= 1 && mm <= 12) {
if (mm == 2) {
if ((yyyy % 400 == 0) || (yyyy % 4 == 0 && yyyy % 100 != 0))
max_days = 29;
else
max_days = 28;
} else if (mm == 4 || mm == 6 || mm == 9 || mm == 11) {
max_days = 30;
} else {
max_days = 31;
}

if (dd >= 1 && dd <= max_days) {
printf("Valid Date (বৈধ তারিখ)\n");
} else {
printf("Invalid Date (অবৈধ তারিখ)\n");
}
} else {
printf("Invalid Date (অবৈধ তারিখ)\n");
}

return 0;
}

প্রশ্ন ৬: নেস্টেড if-else ব্যবহার করে ৪টি ভিন্ন সংখ্যার মধ্যে ২য় বৃহত্তম সংখ্যা নির্ণয়

📌 অ্যালগরিদম (Algorithm):

১. শুরু করি।

২. চারটি ভিন্ন পূর্ণসংখ্যা a, b, c, d ইনপুট নিই।

৩. নেস্টেড if-else কাঠামোর মাধ্যমে পর্যায়ক্রমে তুলনা করে ২য় বৃহত্তম সংখ্যাটি sec চলকে নির্ধারণ করি।

৪. sec এর মান প্রদর্শন করি।

৫. শেষ করি।

📌 ফ্লোচার্ট (Flowchart Steps):

[Start] ➔ [Input a, b, c, d] ➔ [Nested Comparison Tree] ➔ [Set sec] ➔ [Print sec] ➔ [End]

💻 সি প্রোগ্রাম (C Program):

#include <stdio.h>

int main() {
int a, b, c, d, sec;
printf("চারটি ভিন্ন পূর্ণসংখ্যা প্রবেশ করান: ");
scanf("%d %d %d %d", &a, &b, &c, &d);

if (a > b) {
if (a > c) {
if (a > d) {
if (b > c && b > d) sec = b;
else if (c > b && c > d) sec = c;
else sec = d;
} else {
sec = a;
}
} else {
if (c > d) {
if (a > d) sec = a;
else sec = d;
} else {
sec = c;
}
}
} else {
if (b > c) {
if (b > d) {
if (a > c && a > d) sec = a;
else if (c > a && c > d) sec = c;
else sec = d;
} else {
sec = b;
}
} else {
if (c > d) {
if (b > d) sec = b;
else sec = d;
} else {
sec = c;
}
}
}

printf("দ্বিতীয় বৃহত্তম সংখ্যাটি হলো: %d\n", sec);
return 0;
}

প্রশ্ন ৭: কার্তেসীয় সমতলে (x, y) বিন্দুর অবস্থান (চতুর্ভাগ / মূলবিন্দু / অক্ষ) নির্ধারণ

📌 অ্যালগরিদম (Algorithm):

১. শুরু করি।

২. স্থানাঙ্ক x এবং y ইনপুট নিই।

৩. যদি x == 0 এবং y == 0 হয়, তবে ছাপাই "Origin (মূলবিন্দু)"।

৪. অন্যথায় যদি x == 0 হয়, তবে ছাপাই "Y-axis (Y-অক্ষ)"।

৫. অন্যথায় যদি y == 0 হয়, তবে ছাপাই "X-axis (X-অক্ষ)"।

৬. অন্যথায় যদি x > 0 এবং y > 0 হয়, তবে ছাপাই "Quadrant I"।

৭. অন্যথায় যদি x < 0 এবং y > 0 হয়, তবে ছাপাই "Quadrant II"।

৮. অন্যথায় যদি x < 0 এবং y < 0 হয়, তবে ছাপাই "Quadrant III"।

৯. অন্যথায়, ছাপাই "Quadrant IV"।

১০. শেষ করি।

📌 ফ্লোচার্ট (Flowchart Steps):

[Start] ➔ [Input x, y] ➔ Decision: [x==0 && y==0?]

├─ Yes ➔ [Print Origin]

└─ No ➔ Decision: [x==0?] ➔ Yes: [Y-axis] | No ➔ Decision: [y==0?] ➔ Yes: [X-axis]

└─ No ➔ Decision: [x>0 && y>0?] ➔ Q I | [x<0 && y>0?] ➔ Q II | [x<0 && y<0?] ➔ Q III | Else ➔ Q IV ➔ [End]

💻 সি প্রোগ্রাম (C Program):

#include <stdio.h>

int main() {
float x, y;
printf("বিন্দুর স্থানাঙ্ক x ও y প্রবেশ করান: ");
scanf("%f %f", &x, &y);

if (x == 0 && y == 0) {
printf("বিন্দুটি মূলবিন্দুতে (Origin) অবস্থিত।\n");
} else if (x == 0) {
printf("বিন্দুটি Y-অক্ষের ওপর অবস্থিত।\n");
} else if (y == 0) {
printf("বিন্দুটি X-অক্ষের ওপর অবস্থিত।\n");
} else if (x > 0 && y > 0) {
printf("Quadrant I (প্রথম চতুর্ভাগ)\n");
} else if (x < 0 && y > 0) {
printf("Quadrant II (দ্বিতীয় চতুর্ভাগ)\n");
} else if (x < 0 && y < 0) {
printf("Quadrant III (তৃতীয় চতুর্ভাগ)\n");
} else {
printf("Quadrant IV (চতুর্থ চতুর্ভাগ)\n");
}

return 0;
}

প্রশ্ন ৮: ত্রিভুজের তিনটি কোণ (A, B, C) যাচাই করে ত্রিভুজের ধরন নির্ণয়

📌 অ্যালগরিদম (Algorithm):

১. শুরু করি।

২. তিনটি কোণ A, B, C ইনপুট নিই।

৩. যদি A > 0, B > 0, C > 0 এবং (A + B + C == 180) হয়:

• যদি A == 90 অথবা B == 90 অথবা C == 90 হয়, তবে ছাপাই "Right-angled Triangle (সমকোণী)"।

• অন্যথায় যদি A > 90 অথবা B > 90 অথবা C > 90 হয়, তবে ছাপাই "Obtuse-angled Triangle (স্থূলকোণী)"।

• অন্যথায়, ছাপাই "Acute-angled Triangle (সূক্ষ্মকোণী)"।

৪. অন্যথায়:

• ছাপাই "Invalid Angles (ত্রিভুজ গঠন সম্ভব নয়)"।

৫. শেষ করি।

📌 ফ্লোচার্ট (Flowchart Steps):

[Start] ➔ [Input A, B, C] ➔ Decision: [A>0 && B>0 && C>0 && A+B+C==180?]

├─ No ➔ [Print Invalid] ➔ [End]

└─ Yes ➔ Decision: [A==90 || B==90 || C==90?]

├─ Yes ➔ [Print Right-angled] ➔ [End]

└─ No ➔ Decision: [A>90 || B>90 || C>90?]

├─ Yes ➔ [Print Obtuse-angled] ➔ [End]

└─ No ➔ [Print Acute-angled] ➔ [End]

💻 সি প্রোগ্রাম (C Program):

#include <stdio.h>

int main() {
float A, B, C;
printf("ত্রিভুজের তিনটি কোণ (ডিগ্রিতে) প্রবেশ করান: ");
scanf("%f %f %f", &A, &B, &C);

if (A > 0 && B > 0 && C > 0 && (A + B + C == 180)) {
if (A == 90 || B == 90 || C == 90) {
printf("ত্রিভুজটি সমকোণী (Right-angled Triangle)\n");
} else if (A > 90 || B > 90 || C > 90) {
printf("ত্রিভুজটি স্থূলকোণী (Obtuse-angled Triangle)\n");
} else {
printf("ত্রিভুজটি সূক্ষ্মকোণী (Acute-angled Triangle)\n");
}
} else {
printf("প্রদত্ত কোণগুলো দিয়ে ত্রিভুজ গঠন সম্ভব নয়।\n");
}

return 0;
}

প্রশ্ন ৯: বার্ষিক আয়ের স্ল্যাব অনুযায়ী আয়কর (Income Tax) গণনা

📌 অ্যালগরিদম (Algorithm):

১. শুরু করি।

২. বার্ষিক আয় Income ইনপুট নিই।

৩. যদি Income <= 300000 হয়, তবে Tax = 0

৪. অন্যথায় যদি Income <= 600000 হয়, তবে Tax = (Income - 300000) × 0.05

৫. অন্যথায় যদি Income <= 1000000 হয়, তবে Tax = (300000 × 0.05) + (Income - 600000) × 0.10

৬. অন্যথায় (Income > 1000000):

• Tax = (300000 × 0.05) + (400000 × 0.10) + (Income - 1000000) × 0.15

৭. Tax এর মান প্রদর্শন করি।

৮. শেষ করি।

📌 ফ্লোচার্ট (Flowchart Steps):

[Start] ➔ [Input Income] ➔ Decision: [Income <= 300000?]

├─ Yes ➔ [Tax = 0] ➔ [Print Tax] ➔ [End]

└─ No ➔ Decision: [Income <= 600000?]

├─ Yes ➔ [Tax = (Income - 300000) * 0.05] ➔ [Print Tax] ➔ [End]

└─ No ➔ Decision: [Income <= 1000000?]

├─ Yes ➔ [Tax = 15000 + (Income - 600000) * 0.10] ➔ [Print Tax] ➔ [End]

└─ No ➔ [Tax = 55000 + (Income - 1000000) * 0.15] ➔ [Print Tax] ➔ [End]

💻 সি প্রোগ্রাম (C Program):

#include <stdio.h>

int main() {
double income, tax;
printf("বার্ষিক মোট আয় (টাকায়) প্রবেশ করান: ");
scanf("%lf", &income);

if (income <= 300000) {
tax = 0;
} else if (income <= 600000) {
tax = (income - 300000) * 0.05;
} else if (income <= 1000000) {
tax = (300000 * 0.05) + (income - 600000) * 0.10;
} else {
tax = (300000 * 0.05) + (400000 * 0.10) + (income - 1000000) * 0.15;
}

printf("মোট প্রদেয় আয়কর = %.2lf টাকা\n", tax);
return 0;
}

প্রশ্ন ১০: দ্বিঘাত সমীকরণের (ax² + bx + c = 0) মূলের প্রকৃতি নির্ধারণ ও মূলদ্বয় নির্ণয়

📌 অ্যালগরিদম (Algorithm):

১. শুরু করি।

২. সহগ a, b, c এর মান ইনপুট নিই।

৩. ডেসক্রিমিন্যান্ট d = b² - 4ac হিসাব করি।

৪. যদি d > 0 হয়:

• ছাপাই "মূলদ্বয় বাস্তব ও অসমান"।

• x1 = (-b + √d) / (2a) এবং x2 = (-b - √d) / (2a) হিসাব ও প্রদর্শন করি।

৫. অন্যথায় যদি d == 0 হয়:

• ছাপাই "মূলদ্বয় বাস্তব ও সমান"।

• x1 = -b / (2a) হিসাব ও প্রদর্শন করি।

৬. অন্যথায় (d < 0):

• ছাপাই "মূলদ্বয় কাল্পনিক (Imaginary)"।

৭. শেষ করি।

📌 ফ্লোচার্ট (Flowchart Steps):

[Start] ➔ [Input a, b, c] ➔ [d = b*b - 4*a*c] ➔ Decision: [d > 0?]

├─ Yes ➔ [Print Real & Unequal] ➔ [Calculate x1, x2] ➔ [Print x1, x2] ➔ [End]

└─ No ➔ Decision: [d == 0?]

├─ Yes ➔ [Print Real & Equal] ➔ [x1 = -b / (2*a)] ➔ [Print x1] ➔ [End]

└─ No ➔ [Print Imaginary Roots] ➔ [End]

💻 সি প্রোগ্রাম (C Program):

#include <stdio.h>
#include <math.h>

int main() {
float a, b, c, d, x1, x2;
printf("সহগ a, b, c এর মান প্রবেশ করান: ");
scanf("%f %f %f", &a, &b, &c);

d = (b * b) - (4 * a * c);

if (d > 0) {
printf("মূলদ্বয় বাস্তব ও অসমান (Real and Unequal)।\n");
x1 = (-b + sqrt(d)) / (2 * a);
x2 = (-b - sqrt(d)) / (2 * a);
printf("x1 = %.2f\n", x1);
printf("x2 = %.2f\n", x2);
} else if (d == 0) {
printf("মূলদ্বয় বাস্তব ও সমান (Real and Equal)।\n");
x1 = -b / (2 * a);
printf("x1 = x2 = %.2f\n", x1);
} else {
printf("মূলদ্বয় কাল্পনিক (Imaginary/Complex)।\n");
}

return 0;
}