
سورس کد مثلث ستاره با سی شارپ
ساخت مثلث در کنسول سیشارپ: برنامهای ساده با داستانی عمیق
برنامهنویسی، تنها به معنای نوشتن کدهای پیچیده برای پروژههای عظیم نیست؛ بلکه اغلب با مسائل کوچک و چالشهای منطقی آغاز میشود که به توسعهدهندگان کمک میکند تا با اصول پایهای زبان آشنا شوند. ساخت یک مثلث با ستارهها در کنسول سیشارپ، یکی از همین تمرینهای کلاسیک و محبوب است که برای سالها به عنوان نقطه شروعی عالی برای درک حلقهها (loops) و ساختارهای شرطی (conditional statements) در برنامهنویسی استفاده شده است.
تاریخچه و هدف از ایجاد چنین برنامههایی:
هدف اصلی از چنین برنامههای سادهای، آموزش تفکر الگوریتمی و حل مسئله است. در دهههای ابتدایی برنامهنویسی، زمانی که رابطهای کاربری گرافیکی (GUI) هنوز فراگیر نبودند، کنسول (پنجره سیاه و سفید) تنها راه تعامل با برنامهها بود. بنابراین، نمایش اشکال و الگوها با استفاده از کاراکترها (مانند ستارهها، #، یا حروف) در کنسول، یک روش رایج برای نمایش خروجی بصری و تمرین مهارتهای برنامهنویسی بود.
این تمرین مشخصاً به توسعهدهنده کمک میکند تا:
- با حلقههای تودرتو آشنا شود: برای رسم یک مثلث، شما به دو حلقه نیاز دارید: یکی برای کنترل تعداد سطرها و دیگری برای کنترل تعداد ستارهها یا فاصله در هر سطر. این مفهوم “حلقه در حلقه” (nested loops) از مفاهیم اساسی در برنامهنویسی است.
- با منطق شرطی کار کند (در نسخههای پیچیدهتر): اگر بخواهید مثلث توخالی یا اشکال پیچیدهتر بسازید، باید از ساختارهای شرطی (
if/else
) برای تصمیمگیری در مورد اینکه کدام کاراکتر (ستاره یا فاصله) در هر موقعیت چاپ شود، استفاده کنید. - با ورودی/خروجی کنسول کار کند: یاد میگیرید چگونه پیامها را در کنسول چاپ کنید (
Console.WriteLine
وConsole.Write
). - مشکل را به بخشهای کوچکتر تقسیم کند: یک مثلث را میتوان به مجموعهای از سطرها تقسیم کرد، و هر سطر را به مجموعهای از کاراکترها. این نشاندهنده اهمیت تفکر ماژولار است.
به طور خلاصه، این کد ساده نه تنها یک مثلث زیبا در کنسول رسم میکند، بلکه پلی است برای ورود به دنیای پیچیدهتر برنامهنویسی، با آموزش مفاهیم بنیادی که در هر زبان برنامهنویسی دیگری نیز کاربرد دارند. این نوع تمرینها، پایه و اساس درک ساختارهای کنترل جریان برنامه را تشکیل میدهند.
رسم مثلث ستاره در کنسول سیشارپ
در ادامه، یک نمونه ساده از کد سیشارپ برای رسم یک مثلث توپر از ستارهها در کنسول ارائه شده است. این برنامه برای سادگی، ارتفاع مثلث را به صورت پیشفرض 10 در نظر میگیرد و نیازی به ورودی کاربر ندارد. هدف این مثال، نمایش چگونگی استفاده از حلقهها برای ایجاد الگوهای بصری در خروجی کنسول است.
using System;
public class HelloWorld
{
public static void Main(string[] args)
{
int height = 10;
for (int i = 1; i <= height; i++)
{
for (int j = height; j > i; j--)
{
Console.Write(" ");
}
for (int k = 1; k <= (2 * i - 1); k++)
{
Console.Write("*");
}
Console.WriteLine();
}
}
}
توضیح کوتاه کد رسم مثلث ستاره:
-
;
: یک متغیر از نوع عدد صحیح (int
) به نامheight
تعریف و مقدار آن را 10 قرار میدهد. این متغیر ارتفاع مثلثی که قرار است رسم شود را تعیین میکند. -
for (int i = 1; i <= height; i++)
: این حلقه خارجی (outer loop) مسئول کنترل سطرهای مثلث است.i
از 1 شروع میشود و تا زمانی که کوچکتر یا مساویheight
باشد، در هر تکرار 1 واحد افزایش مییابد. به عبارت دیگر، این حلقه به تعدادheight
بار اجرا میشود (یک بار برای هر سطر مثلث).
-
for (int j = height; j > i; j--)
: این حلقه داخلی اول مسئول چاپ فضاهای خالی قبل از ستارهها در هر سطر است. این فضاها باعث میشوند مثلث به صورت متقارن و هرمی شکل در کنسول نمایش داده شود.j
ازheight
شروع شده و تا زمانی که بزرگتر ازi
باشد، در هر تکرار 1 واحد کاهش مییابد.Console.Write(" ");
: یک فضای خالی را در کنسول چاپ میکند بدون اینکه به خط بعدی برود.
-
for (int k = 1; k <= (2 * i - 1); k++)
: این حلقه داخلی دوم مسئول چاپ ستارهها (*
) در هر سطر است.k
از 1 شروع شده و تا زمانی که کوچکتر یا مساوی(2 * i - 1)
باشد، در هر تکرار 1 واحد افزایش مییابد. فرمول(2 * i - 1)
تعداد ستارهها در هر سطر را محاسبه میکند (مثلاً برای سطر اول:2*1-1=1
ستاره، برای سطر دوم:2*2-1=3
ستاره، و غیره).Console.Write("*");
: یک ستاره را در کنسول چاپ میکند بدون اینکه به خط بعدی برود.
-
Console.WriteLine();
: پس از اتمام چاپ فضاهای خالی و ستارهها برای یک سطر، این دستور نشانگر را به ابتدای خط بعدی منتقل میکند تا سطر بعدی مثلث از آنجا شروع شود.شما میتوانید این کد را در محیط توسعه سی شارپ (مثل Visual Studio) اجرا کنید.
شبکه های اجتماعی