একটি স্ট্রিং str দেওয়া আছে। এটিকে ম্যাট্রিক্সে প্লাস (+) প্যাটার্নে প্রিন্ট করতে হবে। প্লাস প্যাটার্নের জন্য ম্যাট্রিক্স অবশ্যই স্কোয়ার ম্যাট্রিক্স হতে হবে (রো এবং কলাম সমান)।
যেমন স্ট্রিং "Tutor" — এটিকে হরিজন্টালি এবং ভার্টিক্যালি কেন্দ্র থেকে কাটিয়ে প্লাস বানাতে হবে, বাকি এলিমেন্টগুলো 'x' দিয়ে পূরণ করুন।
ইনপুট − str = "Point"
আউটপুট − ৫x৫ ম্যাট্রিক্সে প্লাস প্যাটার্ন।
ইনপুট − str = "this"
আউটপুট − Pattern not possible (কারণ দৈর্ঘ্য জোড়, স্কোয়ার ম্যাট্রিক্স বানাতে পারা যায় না)
প্রোগ্রামে ব্যবহৃত পদ্ধতি
- ইনপুট নিন।
- চেক করুন স্ট্রিং দৈর্ঘ্য অড্ড (odd) কিনা। জোড় হলে "Pattern not possible"।
- পুরো ম্যাট্রিক্স 'x' দিয়ে ফিল করুন।
- মধ্যবর্তী রো এবং কলামে স্ট্রিং এর ক্যারেক্টারগুলো রাখুন।
- ম্যাট্রিক্স প্রিন্ট করুন।
অ্যালগরিদম
Start
function stringcross(str, n)
if n%2 == 0: print "Pattern not possible"
else
declare str2[max][max]
m = n/2
fill str2 with 'x'
for i=0 to n-1: str2[i][m] = str[i] // মাঝপথ কলাম
for i=0 to n-1: str2[m][i] = str[i] // মাঝপথ রো
print matrix
Stop
উদাহরণ
#include <iostream>
#define MAX 100
using namespace std;
void stringcross(string str) {
int n = str.size();
if (n % 2 == 0) {
cout << "Pattern not possible\n";
return;
}
char str2[MAX][MAX];
int m = n / 2;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
str2[i][j] = 'x';
for (int i = 0; i < n; i++)
str2[i][m] = str[i];
for (int i = 0; i < n; i++)
str2[m][i] = str[i];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
cout << str2[i][j] << ' ';
cout << '\n';
}
}
int main() {
string str = "TUTOR";
stringcross(str);
return 0;
}
আউটপুট
T x x x T x U x x U x x T x x x O x O x R x x x R