মডিউল ১৩-৪ঃ প্যাটার্ন ৪
কোডঃ
#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 করে, যা প্রতি সারিতে বাড়ছে এবং পরবর্তী সারিতে কমছে। নিচে প্রোগ্রামের বিবরণ দেওয়া হয়েছে:
#include<stdio.h>: এই লাইনেstdio.hহেডার ফাইল ইমপোর্ট করা হয়েছে, যা ইনপুট এবং আউটপুট সংক্রান্ত ফাংশনগুলি সম্পর্কে তথ্য সরবরাহ করে।int main():main()ফাংশন হল প্রোগ্রামের প্রধান ফাংশন, যা প্রোগ্রাম চালানোর সময় সবচেয়ে প্রথমে কল হয়।{: মেইন ফাংশনের ব্লক শুরু।int n, s, k;: এই লাইনেn,s, এবংkনামক তিনটি পূর্ণাংক ভ্যারিয়েবল ডিক্লেয়ার করা হয়েছে, যেখানেnহল ত্রিভুজের উচ্চতা,sহল স্পেসের সংখ্যা, এবংkহল স্টার (*) এর সংখ্যা নিয়ন্ত্রণ করতে ব্যবহৃত।scanf("%d",&n);:scanf()ফাংশনের মাধ্যমে ব্যবহারকারীকে ত্রিভুজের উচ্চতা ইনপুট নিই, এবং এটি ভ্যারিয়েবলnএ সংরক্ষিত হয়।s = n - 1;: এই লাইনেsএর মানn-1ধরা হয়েছে, কারণ প্রথম সারিতে n-1 টি স্পেস থাকে।k = 1;: এই লাইনেkএর মান 1 ধরা হয়েছে, কারণ প্রথম সারিতে একটি স্টার প্রিন্ট হয়।for(int i=1;i<=(2*n)-1;i++): এই লাইনে প্রধান লুপের ডিক্লেয়ারেশন করা হয়েছে, যা ত্রিভুজের সারি নিয়ন্ত্রণ করে। ত্রিভুজে মোট(2*n)-1সারি থাকবে।{: প্রধান লুপের ব্লক শুরু।for(int j=1;j<=s;j++): এই লাইনে প্রথম ইন্টারনাল লুপের ডিক্লেয়ারেশন করা হয়েছে, যা স্পেসের সংখ্যা নিয়ন্ত্রণ করে। প্রতিটি সারিতে স্পেস প্রিন্ট করা হয়।{: ইন্টারনাল লুপের ব্লক শুরু।printf(" ");: এই লাইনে একটি স্পেস প্রিন্ট করা হয়েছে।}: ইন্টারনাল লুপের ব্লক শেষ।for(int j=1;j<=k;j++): এই লাইনে দ্বিতীয় ইন্টারনাল লুপের ডিক্লেয়ারেশন করা হয়েছে, যা স্টার (*) এর সংখ্যা নিয়ন্ত্রণ করে। প্রতিটি সারিতে স্টার (*) প্রিন্ট করা হয়।{: দ্বিতীয় ইন্টারনাল লুপের ব্লক শুরু।printf("*");: এই লাইনে একটি স্টার (*) মুদ্রণ করা হয়েছে।}: দ্বিতীয় ইন্টারনাল লুপের ব্লকের শেষ।if(i<=n-1): এই লাইনেiযদিn-1এর চেয়ে ছোট অথবা সমান হয়, তাহলে এই শর্ত সত্য হবে।{: ইফ স্টেটমেন্টের ব্লক শুরু।s--;: যদি শর্তটি সত্য হয়, তবেsএর মান 1 কমিয়ে দেওয়া হবে।k = k + 2;: যদি শর্তটি সত্য হয়, তবেkএর মান 2 যোগ করা হবে, যাতে পরবর্তী সারিতে স্টার (*) সংখ্যা বাড়ে।}: ইফ স্টেটমেন্টের ব্লক শেষ।else: এই লাইনেifকন্ডিশনের বাইরে অন্য কোন শর্ত সত্য হলে এই ব্লক সম্পাদিত হবে।{: এই ব্লকের শুরু।s++;: যদি উপরের শর্ত মিথ্যা হয়, তবেsএর মান 1 বাড়ানো হবে, যাতে পরবর্তী সারিতে স্পেস (*) সংখ্যা বেড়ে যায়।k = k - 2;: যদি উপরের শর্ত মিথ্যা হয়, তবেkএর মান 2 কমিয়ে দেওয়া হবে, যাতে পরবর্তী সারিতে স্টার (*) সংখ্যা কমে যায়।printf("\n");: এই লাইনে নতুন লাইন প্রিন্ট করা হয়েছে, যাতে প্রতিটি সারি নতুন লাইনে শুরু হয়।}: ইফ স্টেটমেন্টের ব্লক শেষ।}: প্রধান লুপের ব্লক শেষ।return 0;: প্রোগ্রামের সমাপ্তি।}: মেইন ফাংশনের ব্লক শেষ।
Last updated