কম্পিউটার

C++ এ ম্যাট্রিক্সে প্লাস ‘+’ প্যাটার্নে স্ট্রিং প্রিন্ট করা


একটি স্ট্রিং স্ট্র দেওয়া, আমাদের ম্যাট্রিক্সে ‘+’ প্যাটার্নে প্রদত্ত স্ট্রিং স্ট্র প্রিন্ট করতে হবে। একটি ম্যাট্রিক্সে প্লাস প্যাটার্ন গঠন করতে ম্যাট্রিক্সটি অবশ্যই একটি বর্গ ম্যাট্রিক্স হতে হবে। একটি বর্গাকার ম্যাট্রিক্স হল সেই ম্যাট্রিক্স যাতে একই সংখ্যক সারি এবং কলাম থাকে।

যেমন আমাদের একটি স্ট্রিং "টিউটর" আছে আমাদের কাজ হল স্ট্রিংটিকে কেন্দ্র থেকে অনুভূমিকভাবে এবং উল্লম্বভাবে একে অপরকে ছেদ করে প্রিন্ট করা এবং ম্যাট্রিক্সের বাকি উপাদানগুলিকে প্রদত্ত চিত্রের মতো "x" হিসাবে তৈরি করা -

C++ এ ম্যাট্রিক্সে প্লাস ‘+’ প্যাটার্নে স্ট্রিং প্রিন্ট করা

ইনপুট

str[] = {“Point”}

আউটপুট

C++ এ ম্যাট্রিক্সে প্লাস ‘+’ প্যাটার্নে স্ট্রিং প্রিন্ট করা

ইনপুট

str[] = {“this”}

আউটপুট

Pattern not possible

সমস্যা সমাধানের জন্য নিচের পদ্ধতিটি ব্যবহার করা হয়েছে

  • ইনপুট পান।

  • ইনপুটটি সমান দৈর্ঘ্য না কিনা তা পরীক্ষা করুন৷

  • প্রাথমিকভাবে “x”

    দিয়ে পুরো ম্যাট্রিক্স সেট করুন
  • মাঝের সারি এবং মাঝের কলামে স্ট্রিং সেট করুন

  • ফলাফল ম্যাট্রিক্স প্রিন্ট করুন।

অ্যালগরিদম

Start
In function int stringcross(char str[], int n)
   Step 1→ If n % 2 == 0 then,
      Step 2→ Printf "Pattern not possible”
   Step 3→ Else
      Declare a str2[max][max]
      Declare m and set as n / 2
      For i = 0 and i < n and i++
         For j = 0 and j < n and j++
            Set str2[i][j] as 'x'
      For i = 0 and i < n and i++
         Set str2[i][m] as str[i]
      For i = 0 and i < n and i++
         Set str2[m][i] as str[i]
      For i = 0 and i < n and i++
         For j = 0 and j < n and j++
         Print str2[i][j]
      Print newline
In Function int main()
   Step 1→ Declare and Initialize str[] as "TUTOR"
   Step 2→ Declare and Initialize n with the size of the string
   Step 3→ Call stringcross(str, n-1)
Stop

উদাহরণ

#include <stdio.h>
#define max 100
int stringcross(char str[], int n){
   if (n % 2 == 0){
      //odd length string is only possible
      printf("Pattern not possible\n");
   }
   else {
      //decalaring a 2-d character array
      char str2[max][max];
      int m = n / 2;
      //Initially setting x for all elements
      for (int i = 0; i < n; i++) {
         for (int j = 0; j < n; j++) {
            str2[i][j] = 'x';
         }
      }
      //Placing the string in a manner
      //a cross is formed.
      for (int i = 0; i < n; i++){
         //for middle columns
         str2[i][m] = str[i];
      }
      for (int i = 0; i < n; i++){
         //for middle row
         str2[m][i] = str[i];
      }
      //printing
      for (int i = 0; i < n; i++) {
         for (int j = 0; j < n; j++) {
            printf("%c ",str2[i][j]);
         }
         printf("\n");
      }
   }
   return 0;
}
int main(){
   char str[] = {"TUTOR"};
   int n = sizeof(str)/sizeof(str[0]);
   stringcross(str, n-1);
   return 0;
}

আউটপুট

উপরের কোডটি চালালে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে



  1. C++ এ ধাঁধা III

  2. C++-এ ম্যাট্রিক্সকে নতুন আকার দিন

  3. C++ এ ম্যাট্রিক্সে সর্বাধিক উপাদান খুঁজে বের করার জন্য প্রোগ্রাম

  4. C++ এ স্পাইরাল ম্যাট্রিক্স III