মডিউল ১৩-৪ঃ প্যাটার্ন ৪

কোডঃ

#include<stdio.h>
int main()
{
    int n,s,k;
    scanf("%d",&n);
    s=n-1;
    k=1;
    for(int i=1;i<=(2*n)-1;i++)
    {
        // ekta line
        for(int j=1;j<=s;j++)
        {
            printf(" ");
        }
        for(int j=1;j<=k;j++)
        {
            printf("*");
        }
        // line seshe
        if(i<=n-1)
        {
            s--;
            k=k+2;
        }
        else
        {
            s++;
            k=k-2;
        }
        printf("\n");
    }
    return 0;
}

Input:

5

Output:

এই প্রোগ্রামটি নির্দিষ্ট প্যাটার্ন তৈরি করে, যা একটি ত্রিভুজের আকার বানায়। ত্রিভুজের প্রতিটি সারিতে স্পেস (space) এবং স্টার (*) সংখ্যা print করে, যা প্রতি সারিতে বাড়ছে এবং পরবর্তী সারিতে কমছে। নিচে প্রোগ্রামের বিবরণ দেওয়া হয়েছে:

  1. #include<stdio.h>: এই লাইনে stdio.h হেডার ফাইল ইমপোর্ট করা হয়েছে, যা ইনপুট এবং আউটপুট সংক্রান্ত ফাংশনগুলি সম্পর্কে তথ্য সরবরাহ করে।

  2. int main(): main() ফাংশন হল প্রোগ্রামের প্রধান ফাংশন, যা প্রোগ্রাম চালানোর সময় সবচেয়ে প্রথমে কল হয়।

  3. {: মেইন ফাংশনের ব্লক শুরু।

  4. int n, s, k;: এই লাইনে n, s, এবং k নামক তিনটি পূর্ণাংক ভ্যারিয়েবল ডিক্লেয়ার করা হয়েছে, যেখানে n হল ত্রিভুজের উচ্চতা, s হল স্পেসের সংখ্যা, এবং k হল স্টার (*) এর সংখ্যা নিয়ন্ত্রণ করতে ব্যবহৃত।

  5. scanf("%d",&n);: scanf() ফাংশনের মাধ্যমে ব্যবহারকারীকে ত্রিভুজের উচ্চতা ইনপুট নিই, এবং এটি ভ্যারিয়েবল n এ সংরক্ষিত হয়।

  6. s = n - 1;: এই লাইনে s এর মান n-1 ধরা হয়েছে, কারণ প্রথম সারিতে n-1 টি স্পেস থাকে।

  7. k = 1;: এই লাইনে k এর মান 1 ধরা হয়েছে, কারণ প্রথম সারিতে একটি স্টার প্রিন্ট হয়।

  8. for(int i=1;i<=(2*n)-1;i++): এই লাইনে প্রধান লুপের ডিক্লেয়ারেশন করা হয়েছে, যা ত্রিভুজের সারি নিয়ন্ত্রণ করে। ত্রিভুজে মোট (2*n)-1 সারি থাকবে।

  9. {: প্রধান লুপের ব্লক শুরু।

  10. for(int j=1;j<=s;j++): এই লাইনে প্রথম ইন্টারনাল লুপের ডিক্লেয়ারেশন করা হয়েছে, যা স্পেসের সংখ্যা নিয়ন্ত্রণ করে। প্রতিটি সারিতে স্পেস প্রিন্ট করা হয়।

  11. {: ইন্টারনাল লুপের ব্লক শুরু।

  12. printf(" ");: এই লাইনে একটি স্পেস প্রিন্ট করা হয়েছে।

  13. }: ইন্টারনাল লুপের ব্লক শেষ।

  14. for(int j=1;j<=k;j++): এই লাইনে দ্বিতীয় ইন্টারনাল লুপের ডিক্লেয়ারেশন করা হয়েছে, যা স্টার (*) এর সংখ্যা নিয়ন্ত্রণ করে। প্রতিটি সারিতে স্টার (*) প্রিন্ট করা হয়।

  15. {: দ্বিতীয় ইন্টারনাল লুপের ব্লক শুরু।

  16. printf("*");: এই লাইনে একটি স্টার (*) মুদ্রণ করা হয়েছে।

  17. }: দ্বিতীয় ইন্টারনাল লুপের ব্লকের শেষ।

  18. if(i<=n-1): এই লাইনে i যদি n-1 এর চেয়ে ছোট অথবা সমান হয়, তাহলে এই শর্ত সত্য হবে।

  19. {: ইফ স্টেটমেন্টের ব্লক শুরু।

  20. s--;: যদি শর্তটি সত্য হয়, তবে s এর মান 1 কমিয়ে দেওয়া হবে।

  21. k = k + 2;: যদি শর্তটি সত্য হয়, তবে k এর মান 2 যোগ করা হবে, যাতে পরবর্তী সারিতে স্টার (*) সংখ্যা বাড়ে।

  22. }: ইফ স্টেটমেন্টের ব্লক শেষ।

  23. else: এই লাইনে if কন্ডিশনের বাইরে অন্য কোন শর্ত সত্য হলে এই ব্লক সম্পাদিত হবে।

  24. {: এই ব্লকের শুরু।

  25. s++;: যদি উপরের শর্ত মিথ্যা হয়, তবে s এর মান 1 বাড়ানো হবে, যাতে পরবর্তী সারিতে স্পেস (*) সংখ্যা বেড়ে যায়।

  26. k = k - 2;: যদি উপরের শর্ত মিথ্যা হয়, তবে k এর মান 2 কমিয়ে দেওয়া হবে, যাতে পরবর্তী সারিতে স্টার (*) সংখ্যা কমে যায়।

  27. printf("\n");: এই লাইনে নতুন লাইন প্রিন্ট করা হয়েছে, যাতে প্রতিটি সারি নতুন লাইনে শুরু হয়।

  28. }: ইফ স্টেটমেন্টের ব্লক শেষ।

  29. }: প্রধান লুপের ব্লক শেষ।

  30. return 0;: প্রোগ্রামের সমাপ্তি।

  31. }: মেইন ফাংশনের ব্লক শেষ।

Last updated