কম্পিউটার টিউটোরিয়াল

C++-তে স্ট্রিংকে ম্যাট্রিক্সে প্লাস (+) প্যাটার্নে প্রিন্ট করা


একটি স্ট্রিং 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
  1. C++-এ The Maze III সমস্যা সমাধান

  2. C++-এ মেট্রিক্স রিশেপ (Reshape the Matrix)

  3. সি++-এ ম্যাট্রিক্সে সর্বোচ্চ উপাদান বের করার প্রোগ্রাম

  4. সি++-এ স্পায়রাল ম্যাট্রিক্স III (Spiral Matrix III)