سی شارپ, طراحی سایت و برنامه نویسی, مقالات

تمرین های عملی سی شارپ پایه یازدهم کتاب برنامه نویسی 1

تمرین های عملی سی شارپ پایه یازدهم کتاب برنامه نویسی 1

تمرین های عملی سی شارپ تمرین سی شارپ برای مبتدیان یادگیری برنامه نویسی C#

تمرین عملی سی شارپ؛ آموزش پروژه محور C# برای ورود حرفه‌ای به برنامه‌نویسی

اگر به دنبال آموزش C# در تبریز هستید و می‌خواهید با انجام پروژه‌های واقعی، مهارت خود را در برنامه نویسی سی شارپ تقویت کنید، این مقاله مخصوص شماست. در این مطلب، مجموعه‌ای از تمرین‌های عملی C# را بررسی می‌کنیم که به صورت آموزش پروژه محور C# طراحی شده‌اند تا شما را از یک مبتدی به یک برنامه‌نویس حرفه‌ای تبدیل کنند.


چرا تمرین عملی C# مهم است؟

یادگیری تئوری به تنهایی کافی نیست؛ برای تسلط واقعی بر زبان برنامه نویسی سی شارپ، باید تمرین کنید. تمرین عملی C# باعث می‌شود مفاهیم را بهتر درک کنید و در مواجهه با پروژه‌های واقعی، دچار سردرگمی نشوید.
اگر در یک دوره آموزش C# در تبریز شرکت کرده‌اید، بهتر است هر جلسه با یک پروژه عملی سی شارپ همراه باشد تا مطالب به‌خوبی در ذهن شما تثبیت شود.

📌 برای یادگیری اصولی سی شارپ و دریافت آموزش‌های تخصصی، در دوره‌های آموزشگاه راهکار تبریز ثبت‌نام کنید!

تمرین های عملی سی شارپ تمرین های عملی سی شارپ تمرین های عملی سی شارپ تمرین های عملی سی شارپ

اگر به دنبال یک آموزشگاه مناسب با اساتید مجرب برای آموزش سی شارپ در تبریز هستید آموزشگاه کامپیوتر راهکار تبریز بهترین گزینه برایتان خواهد بود. برای اطلاعات بیشتر با مشاورین ما تماس بگیرید. 04135574231 و 09146585123


این تمرین ها از برنامه نویسی ساده شروع میشه و بعد تمرین هایی برای درک شرطها و حلقه ها را مشاهده خواهید کرد. امیدواریم این پست بتواند شما را در درک بهتر مفاهیم برنامه نویسی کمک کند.

تمرین های عملی سی شارپ تمرین های عملی سی شارپ تمرین های عملی سی شارپ

همچنین میتوانید فصل های مختلف کتاب برنامه نویسی 1 پایه یازدهم هنرستان را از لینکهای زیر دانلود کنید

مقدمهبخش اولبخش دومبخش سومبخش چهارمبخش پنجم

تمرینات عملی سی شارپ (کنسول)

تمرین ۱: تبدیل عدد صحیح به رشته در سی شارپ کنسول

در اینجا کد کامل برای برنامه‌ای که یک عدد صحیح از کاربر دریافت کرده، آن را به رشته تبدیل می‌کند و سپس طول (تعداد ارقام) آن را نمایش می‌دهد، ارائه شده است:

using System;

class Program
{
    static void Main()
    {
        // دریافت عدد از کاربر
        Console.Write("لطفاً یک عدد صحیح وارد کنید: ");
        int number = Convert.ToInt32(Console.ReadLine());
        
        // تبدیل عدد به رشته
        string numberString = number.ToString();
        
        // محاسبه طول رشته (تعداد ارقام)
        int length = numberString.Length;
        
        // نمایش نتایج
        Console.WriteLine($"\nعدد وارد شده به رشته: {numberString}");
        Console.WriteLine($"تعداد ارقام عدد: {length}");
        
        // برای جلوگیری از بسته شدن کنسول
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت ورودی از کاربر:
    • با استفاده از Console.ReadLine() ورودی کاربر را دریافت می‌کنیم.
    • با Convert.ToInt32() ورودی رشته‌ای را به عدد صحیح تبدیل می‌کنیم.
  2. تبدیل عدد به رشته:
    • با استفاده از متد ToString() عدد را به معادل رشته‌ای آن تبدیل می‌کنیم.
  3. محاسبه تعداد ارقام:
    • با استفاده از ویژگی Length رشته، تعداد کاراکترهای آن (که برابر با تعداد ارقام عدد است) را به دست می‌آوریم.
  4. نمایش نتایج:
    • عدد تبدیل شده به رشته و تعداد ارقام آن را نمایش می‌دهیم.

برنامه ماشین حساب ساده (بدون شرط و حلقه)

این برنامه دو عدد از کاربر می‌گیرد و جمع، تفریق، ضرب و تقسیم آن‌ها را نمایش می‌دهد:

using System;

class Program
{
    static void Main()
    {
        // تعریف متغیرها
        double number1, number2;
        double sum, difference, product, quotient;
        
        // دریافت عدد اول از کاربر
        Console.WriteLine("عدد اول را وارد کنید:");
        number1 = Convert.ToDouble(Console.ReadLine());
        
        // دریافت عدد دوم از کاربر
        Console.WriteLine("عدد دوم را وارد کنید:");
        number2 = Convert.ToDouble(Console.ReadLine());
        
        // انجام عملیات ریاضی
        sum = number1 + number2;          // جمع
        difference = number1 - number2;   // تفریق
        product = number1 * number2;      // ضرب
        quotient = number1 / number2;    // تقسیم
        
        // نمایش نتایج
        Console.WriteLine("نتیجه جمع: " + sum);
        Console.WriteLine("نتیجه تفریق: " + difference);
        Console.WriteLine("نتیجه ضرب: " + product);
        Console.WriteLine("نتیجه تقسیم: " + quotient);
        
        // نگه داشتن کنسول تا کاربر نتیجه را ببیند
        Console.WriteLine("برای خروج، یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. double: نوع داده برای اعداد اعشاری.
  2. Console.ReadLine(): دریافت ورودی از کاربر.
  3. Convert.ToDouble(): تبدیل متن وارد شده به عدد.
  4. عملگرهای ریاضی (+-*/) برای محاسبه نتایج.
  5. Console.WriteLine(): نمایش نتایج در خروجی.

تمرین 3: برنامه تبدیل رشته به عدد اعشاری و محاسبه مربع آن (توان ۲)

using System;

class Program
{
    static void Main()
    {
        // تعریف متغیرها
        string userInput;
        double number, squaredNumber;
        
        // دریافت ورودی از کاربر
        Console.WriteLine("لطفاً یک عدد اعشاری وارد کنید:");
        userInput = Console.ReadLine();
        
        // تبدیل رشته به عدد اعشاری
        number = Convert.ToDouble(userInput);
        
        // محاسبه مربع عدد
        squaredNumber = number * number; // یا می‌توان از Math.Pow(number, 2) استفاده کرد
        
        // نمایش نتیجه
        Console.WriteLine("مربع عدد وارد شده: " + squaredNumber);
        
        // نگه داشتن کنسول تا کاربر نتیجه را ببیند
        Console.WriteLine("برای خروج، یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. string userInput: متغیر برای ذخیره ورودی کاربر به صورت رشته.
  2. Console.ReadLine(): دریافت ورودی از کاربر به صورت رشته.
  3. Convert.ToDouble(): تبدیل رشته به عدد اعشاری (double).
  4. number * number: محاسبه مربع عدد با استفاده از عملگر ضرب.
  5. Console.WriteLine(): نمایش نتیجه در خروجی.

 


تمرین 4: تبدیل مقدار بولی به عدد در سی شارپ کنسول

برنامه‌ای که مقدار true یا false را از کاربر دریافت کرده و به 1 یا 0 تبدیل می‌کند:

using System;

class Program
{
    static void Main()
    {
        // تعریف متغیرها
        string userInput;
        bool booleanValue;
        int numericValue;
        
        // دریافت ورودی از کاربر
        Console.WriteLine("مقدار بولی را وارد کنید (true یا false):");
        userInput = Console.ReadLine();
        
        // تبدیل رشته به مقدار بولی
        booleanValue = Convert.ToBoolean(userInput);
        
        // تبدیل مقدار بولی به عدد (true -> 1, false -> 0)
        numericValue = booleanValue ? 1 : 0;
        
        // نمایش نتیجه
        Console.WriteLine("عدد معادل: " + numericValue);
        
        // نگه داشتن کنسول تا کاربر نتیجه را ببیند
        Console.WriteLine("برای خروج، یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. Convert.ToBoolean(): تبدیل رشته به مقدار بولی (true/false).
  2. عبارت شرطی ساده (? :):
    • اگر booleanValue برابر true باشد، numericValue = 1.
    • اگر false باشد، numericValue = 0.
  3. نمایش نتیجه: چاپ عدد معادل (1 یا 0).

 


تمرین ۵: تبدیل کاراکتر به کد ASCII

برنامه‌ای بنویسید که یک حرف (char) از کاربر دریافت کند و کد ASCII آن را نمایش دهد.

using System;

class Program
{
    static void Main()
    {
        // دریافت یک کاراکتر از کاربر
        Console.WriteLine("لطفاً یک حرف وارد کنید:");
        char userChar = Console.ReadKey().KeyChar;
        Console.WriteLine(); // رفتن به خط جدید
        
        // تبدیل کاراکتر به کد ASCII
        int asciiCode = (int)userChar;
        
        // نمایش نتیجه
        Console.WriteLine("کد ASCII حرف '" + userChar + "' برابر است با: " + asciiCode);
        
        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. Console.ReadKey().KeyChar:
    • یک کاراکتر از ورودی دریافت می‌کند (بدون نیاز به فشار دادن Enter)
    • فقط اولین کاراکتر ورودی را می‌خواند
  2. (int)userChar:
    • تبدیل صریح (Cast) کاراکتر به عدد
    • این عدد برابر با کد ASCII کاراکتر است
  3. نمایش نتیجه:
    • کاراکتر و معادل عددی آن نمایش داده می‌شود

 


تمرین 6: تشخیص عدد زوج یا فرد

برنامه‌ای بنویسید که یک عدد صحیح از کاربر بگیرد و تعیین کند زوج است یا فرد.

using System;

class Program
{
    static void Main()
    {
        // دریافت عدد از کاربر
        Console.WriteLine("لطفاً یک عدد صحیح وارد کنید:");
        int number = Convert.ToInt32(Console.ReadLine());
        
        // بررسی زوج یا فرد بودن
        if (number % 2 == 0)
        {
            Console.WriteLine("عدد " + number + " زوج است.");
        }
        else
        {
            Console.WriteLine("عدد " + number + " فرد است.");
        }
        
        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت عدد:
    • با Convert.ToInt32 عدد را از رشته به عدد صحیح تبدیل می‌کنیم
  2. عملگر % (باقیمانده تقسیم):
    • number % 2 باقیمانده تقسیم عدد بر 2 را می‌دهد
    • اگر باقیمانده 0 شود، عدد زوج است
    • اگر باقیمانده 1 شود، عدد فرد است
  3. شرط if-else:
    • ساختار شرطی ساده برای تصمیم‌گیری بین دو حالت

 

تمرین 7: مقایسه دو عدد

برنامه‌ای که دو عدد از کاربر دریافت کند و مشخص کند کدام عدد بزرگ‌تر است یا اینکه هر دو مساوی هستند.

using System;

class Program
{
    static void Main()
    {
        // دریافت دو عدد از کاربر
        Console.WriteLine("عدد اول را وارد کنید:");
        int number1 = Convert.ToInt32(Console.ReadLine());
        
        Console.WriteLine("عدد دوم را وارد کنید:");
        int number2 = Convert.ToInt32(Console.ReadLine());

        // مقایسه دو عدد
        if (number1 > number2)
        {
            Console.WriteLine("عدد " + number1 + " بزرگ‌تر از " + number2 + " است.");
        }
        else if (number2 > number1)
        {
            Console.WriteLine("عدد " + number2 + " بزرگ‌تر از " + number1 + " است.");
        }
        else
        {
            Console.WriteLine("هر دو عدد برابر هستند.");
        }

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت اعداد:
    • دو عدد از کاربر دریافت می‌شود و در متغیرهای number1 و number2 ذخیره می‌شوند
  2. مقایسه با عملگرهای رابطه‌ای:
    • > برای بررسی بزرگ‌تر بودن
    • < برای بررسی کوچک‌تر بودن
    • == برای بررسی تساوی (که در اینجا به صورت ضمنی با else انجام شده)
  3. ساختار شرطی if-else if-else:
    • اگر شرط اول برقرار نباشد، شرط دوم بررسی می‌شود
    • اگر هیچکدام از شروط برقرار نباشند، بخش else اجرا می‌شود

 

تمرین 8: تشخیص مثبت، منفی یا صفر

برنامه‌ای که یک عدد از کاربر دریافت کند و مشخص کند که عدد مثبت، منفی یا صفر است.

using System;

class Program
{
    static void Main()
    {
        // دریافت عدد از کاربر
        Console.WriteLine("لطفاً یک عدد وارد کنید:");
        double number = Convert.ToDouble(Console.ReadLine());

        // بررسی وضعیت عدد
        if (number > 0)
        {
            Console.WriteLine("عدد وارد شده مثبت است.");
        }
        else if (number < 0)
        {
            Console.WriteLine("عدد وارد شده منفی است.");
        }
        else
        {
            Console.WriteLine("عدد وارد شده صفر است.");
        }

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت عدد:
    • عدد را با Convert.ToDouble دریافت می‌کنیم تا هم اعداد صحیح و هم اعشاری کار کنند
  2. شرایط بررسی:
    • number > 0: بررسی مثبت بودن عدد
    • number < 0: بررسی منفی بودن عدد
    • else: حالت باقیمانده که همان صفر است
  3. پیام‌های خروجی:
    • برای هر حالت پیام مناسب نمایش داده می‌شود

 

تمرین 9: محاسبه نمره و تعیین وضعیت قبولی

برنامه‌ای که یک نمره از ۰ تا ۲۰ از کاربر دریافت کند و مشخص کند که دانشجو قبول شده (نمره ۱۰ و بالاتر) یا مردود شده (کمتر از ۱۰).

using System;

class Program
{
    static void Main()
    {
        // دریافت نمره از کاربر
        Console.WriteLine("لطفاً نمره دانشجو را وارد کنید (0 تا 20):");
        double score = Convert.ToDouble(Console.ReadLine());

        // بررسی محدوده نمره و وضعیت قبولی
        if (score >= 10 && score <= 20)
        {
            Console.WriteLine("دانشجو قبول شده است.");
        }
        else if (score >= 0 && score < 10)
        {
            Console.WriteLine("دانشجو مردود شده است.");
        }
        else
        {
            Console.WriteLine("نمره وارد شده معتبر نیست! لطفاً عددی بین 0 تا 20 وارد کنید.");
        }

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت نمره:
    • با استفاده از Convert.ToDouble نمره را دریافت می‌کنیم تا هم اعداد صحیح و هم اعشاری قابل قبول باشند
  2. شرایط بررسی:
    • score >= 10 && score <= 20: بررسی قبولی (نمره 10 یا بیشتر)
    • score >= 0 && score < 10: بررسی مردودی (نمره کمتر از 10)
    • else: حالت نمره نامعتبر (خارج از محدوده 0-20)
  3. پیام‌های خروجی:
    • برای هر حالت پیام مناسب نمایش داده می‌شود

تمرین 10: تشخیص عدد سه رقمی

برنامه‌ای که یک عدد دریافت کند و مشخص کند آیا سه‌رقمی است یا نه.÷

using System;

class Program
{
    static void Main()
    {
        // دریافت عدد از کاربر
        Console.WriteLine("لطفاً یک عدد وارد کنید:");
        int number = Convert.ToInt32(Console.ReadLine());

        // بررسی سه رقمی بودن عدد
        if (number >= 100 && number <= 999)
        {
            Console.WriteLine("عدد " + number + " یک عدد سه رقمی است.");
        }
        else if (number <= -100 && number >= -999)
        {
            Console.WriteLine("عدد " + number + " یک عدد سه رقمی منفی است.");
        }
        else
        {
            Console.WriteLine("عدد " + number + " سه رقمی نیست.");
        }

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت عدد:
    • عدد را به صورت صحیح دریافت می‌کنیم (int)
  2. شرایط بررسی:
    • number >= 100 && number <= 999: بررسی اعداد سه رقمی مثبت
    • number <= -100 && number >= -999: بررسی اعداد سه رقمی منفی
    • else: حالت‌های دیگر که سه رقمی نیستند
  3. ویژگی‌های برنامه:
    • هم اعداد مثبت و هم منفی را بررسی می‌کند
    • برای اعداد اعشاری کار نمی‌کند (ورودی را به int تبدیل می‌کند)

 

تمرین 11: تشخیص حروف صدادار و بی‌صدا

برنامه‌ای که یک حرف انگلیسی از کاربر بگیرد و مشخص کند که صدادار (a, e, i, o, u) است یا بی‌صدا.

using System;

class Program
{
    static void Main()
    {
        // دریافت حرف از کاربر
        Console.WriteLine("لطفاً یک حرف انگلیسی وارد کنید:");
        char letter = Console.ReadKey().KeyChar;
        letter = char.ToLower(letter); // تبدیل به حرف کوچک برای یکسان سازی
        
        Console.WriteLine(); // رفتن به خط جدید

        // بررسی حروف صدادار
        if (letter == 'a' || letter == 'e' || letter == 'i' || letter == 'o' || letter == 'u')
        {
            Console.WriteLine($"حرف '{letter}' یک حرف صدادار است.");
        }
        // بررسی اینکه آیا حرف الفبای انگلیسی است
        else if (letter >= 'a' && letter <= 'z')
        {
            Console.WriteLine($"حرف '{letter}' یک حرف بی‌صدا است.");
        }
        else
        {
            Console.WriteLine($"ورودی '{letter}' یک حرف انگلیسی معتبر نیست.");
        }

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت ورودی:
    • با Console.ReadKey().KeyChar فقط اولین حرف ورودی را می‌خوانیم
    • با char.ToLower حرف را به حالت کوچک تبدیل می‌کنیم تا بررسی حروف بزرگ و کوچک یکسان باشد
  2. شرایط بررسی:
    • بررسی حروف صدادار کوچک (a, e, i, o, u)
    • بررسی اینکه آیا حرف در محدوده a-z قرار دارد (بی‌صدا)
    • حالت دیگر برای کاراکترهای غیر الفبایی
  3. ویژگی‌های برنامه:
    • هم حروف بزرگ و هم کوچک را تشخیص می‌دهد
    • فقط اولین حرف ورودی را بررسی می‌کند
    • برای حروف غیر انگلیسی پیغام خطا می‌دهد

 


 

تمرین 12: محاسبه تخفیف بر اساس قیمت خرید

برنامه‌ای که قیمت یک کالا را از کاربر بگیرد و اگر قیمت بیشتر از ۱۰۰۰۰ باشد، ۱۰٪ تخفیف اعمال کند. در غیر این صورت، قیمت با 5% تخفیف نمایش داده شود.

using System;

class Program
{
    static void Main()
    {
        // دریافت قیمت کالا از کاربر
        Console.WriteLine("لطفاً قیمت کالا را وارد کنید:");
        double price = Convert.ToDouble(Console.ReadLine());

        // محاسبه تخفیف
        double discount;
        if (price > 10000)
        {
            discount = price * 0.10; // 10% تخفیف
        }
        else
        {
            discount = price * 0.05; // 5% تخفیف
        }

        // محاسبه قیمت نهایی
        double finalPrice = price - discount;

        //

توضیحات کد:

  1. دریافت قیمت:
    • قیمت کالا را به صورت عدد اعشاری دریافت می‌کنیم
  2. محاسبه تخفیف:
    • اگر قیمت بیشتر از 10000 تومان باشد، 10% تخفیف اعمال می‌شود
    • در غیر این صورت 5% تخفیف اعمال می‌شود
  3. محاسبه قیمت نهایی:
    • قیمت اصلی منهای مقدار تخفیف
  4. نمایش نتایج:
    • قیمت اصلی، مقدار تخفیف و قیمت نهایی نمایش داده می‌شود

 

تمرین 13: تشخیص نوع مثلث بر اساس اضلاع

برنامه‌ای که سه عدد (طول اضلاع مثلث) را دریافت کند و مشخص کند که متساوی‌الاضلاع، متساوی‌الساقین یا متفاوت‌الاضلاع است.

using System;

class Program
{
    static void Main()
    {
        // دریافت طول اضلاع از کاربر
        Console.WriteLine("طول ضلع اول را وارد کنید:");
        double a = Convert.ToDouble(Console.ReadLine());
        
        Console.WriteLine("طول ضلع دوم را وارد کنید:");
        double b = Convert.ToDouble(Console.ReadLine());
        
        Console.WriteLine("طول ضلع سوم را وارد کنید:");
        double c = Convert.ToDouble(Console.ReadLine());

        // بررسی نوع مثلث
        if (a == b && b == c)
        {
            Console.WriteLine("مثلث متساوی‌الاضلاع است (هر سه ضلع برابرند).");
        }
        else if (a == b || a == c || b == c)
        {
            Console.WriteLine("مثلث متساوی‌الساقین است (دو ضلع برابرند).");
        }
        else
        {
            Console.WriteLine("مثلث متفاوت‌الاضلاع است (هیچ دو ضلع برابر نیستند).");
        }

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت اضلاع:
    • سه عدد به عنوان طول اضلاع مثلث دریافت می‌شوند
  2. شرایط بررسی:
    • اگر هر سه ضلع برابر باشند (a == b && b == c): متساوی‌الاضلاع
    • اگر حداقل دو ضلع برابر باشند (a == b || a == c || b == c): متساوی‌الساقین
    • در غیر این صورت: متفاوت‌الاضلاع
  3. نمایش نتیجه:
    • پیام مناسب برای هر نوع مثلث نمایش داده می‌شود

 

تمرین 14: تشخیص فصل سال بر اساس شماره ماه (Switch-Case)

برنامه‌ای که شماره یک ماه (۱ تا ۱۲) را بگیرد و نام فصل مربوط به آن را نمایش دهد.

using System;

class Program
{
    static void Main()
    {
        // دریافت شماره ماه از کاربر
        Console.WriteLine("لطفاً شماره ماه را وارد کنید (1 تا 12):");
        int month = Convert.ToInt32(Console.ReadLine());

        // تشخیص فصل با استفاده از switch-case
        string season;
        switch (month)
        {
            case 12:
            case 1:
            case 2:
                season = "زمستان";
                break;
            case 3:
            case 4:
            case 5:
                season = "بهار";
                break;
            case 6:
            case 7:
            case 8:
                season = "تابستان";
                break;
            case 9:
            case 10:
            case 11:
                season = "پاییز";
                break;
            default:
                season = "نامعتبر";
                break;
        }

        // نمایش نتیجه
        if (season != "نامعتبر")
        {
            Console.WriteLine($"ماه شماره {month} مربوط به فصل {season} است.");
        }
        else
        {
            Console.WriteLine("شماره ماه وارد شده نامعتبر است! لطفاً عددی بین 1 تا 12 وارد کنید.");
        }

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت ورودی:
    • شماره ماه (1 تا 12) از کاربر دریافت می‌شود
  2. ساختار switch-case:
    • ماه‌های 12، 1، 2: زمستان
    • ماه‌های 3، 4، 5: بهار
    • ماه‌های 6، 7، 8: تابستان
    • ماه‌های 9، 10، 11: پاییز
    • حالت default برای ورودی‌های نامعتبر
  3. نمایش نتیجه:
    • برای ورودی‌های معتبر، فصل مربوطه نمایش داده می‌شود
    • برای ورودی‌های نامعتبر پیغام خطا نمایش داده می‌شود

 

تمرین 15: بررسی عدد سه رقمی و برعکس کردن آن (بدون حلقه)

برنامه‌ای که اگر عدد سه‌رقمی بود، ارقام آن را معکوس کند و نمایش دهد. (با استفاده از عملیات ریاضی، نه حلقه)

using System;

class Program
{
    static void Main()
    {
        // دریافت عدد از کاربر
        Console.WriteLine("لطفاً یک عدد سه رقمی وارد کنید:");
        int number = Convert.ToInt32(Console.ReadLine());

        // بررسی سه رقمی بودن عدد
        if (number >= 100 && number <= 999)
        {
            // استخراج ارقام
            int digit1 = number / 100;        // رقم صدگان
            int digit2 = (number / 10) % 10;  // رقم دهگان
            int digit3 = number % 10;         // رقم یکان

            // ساخت عدد معکوس
            int reversedNumber = digit3 * 100 + digit2 * 10 + digit1;

            // نمایش نتیجه
            Console.WriteLine($"عدد معکوس: {reversedNumber}");
        }
        else
        {
            Console.WriteLine("عدد وارد شده سه رقمی نیست!");
        }

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت عدد:
    • عدد از کاربر دریافت می‌شود
  2. بررسی سه رقمی بودن:
    • بررسی می‌کند عدد بین 100 تا 999 باشد
  3. استخراج ارقام:
    • digit1 = number / 100: رقم صدگان (مثال: 123 / 100 = 1)
    • digit2 = (number / 10) % 10: رقم دهگان (مثال: (123 / 10) % 10 = 12 % 10 = 2)
    • digit3 = number % 10: رقم یکان (مثال: 123 % 10 = 3)
  4. ساخت عدد معکوس:
    • digit3 * 100 + digit2 * 10 + digit1 (مثال: 3100 + 210 + 1 = 321)
  5. نمایش نتیجه:
    • عدد معکوس شده یا پیغام خطا نمایش داده می‌شود

 


 

تمرین 16: چاپ اعداد ۱ تا ۱۰

برنامه‌ای بنویس که اعداد ۱ تا ۱۰ را با استفاده از while چاپ کند.

using System;

class Program
{
    static void Main()
    {
        int number = 1; // شروع از عدد 1
        
        Console.WriteLine("چاپ اعداد ۱ تا ۱۰:");
        
        while (number <= 10) // شرط ادامه حلقه
        {
            Console.WriteLine(number); // چاپ عدد فعلی
            number++; // افزایش عدد برای دور بعدی
        }
        
        Console.WriteLine("\nپایان برنامه!");
        Console.ReadKey();
    }
}

توضیحات کد:

    1. متغیر شمارنده:
      • number = 1: حلقه از عدد ۱ شروع می‌شود.
    2. شرط حلقه:
      • while (number <= 10): تا زمانی که عدد کوچکتر یا مساوی ۱۰ است، حلقه تکرار می‌شود.
    3. بدنه حلقه:
      • Console.WriteLine(number): عدد فعلی چاپ می‌شود.
      • number++: عدد ۱ واحد افزایش می‌یابد (برای رفتن به عدد بعدی).

 


 

تمرین 17: جمع اعداد ۱ تا N

برنامه‌ای که یک عدد N از کاربر بگیرد و جمع اعداد ۱ تا N را حساب کند.

using System;

class Program
{
    static void Main()
    {
        // دریافت عدد N از کاربر
        Console.WriteLine("عدد N را وارد کنید:");
        int n = Convert.ToInt32(Console.ReadLine());
        
        // متغیرهای محاسبه
        int sum = 0; // ذخیره مجموع
        int currentNumber = 1; // شمارنده از 1 شروع می‌شود
        
        // محاسبه مجموع با حلقه while
        while (currentNumber <= n)
        {
            sum += currentNumber; // افزودن عدد فعلی به مجموع
            currentNumber++; // افزایش شمارنده
        }
        
        // نمایش نتیجه
        Console.WriteLine($"مجموع اعداد ۱ تا {n} برابر است با: {sum}");
        
        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت ورودی:
    • عدد n از کاربر دریافت می‌شود.
  2. مقداردهی اولیه:
    • sum = 0: برای ذخیره مجموع
    • currentNumber = 1: شمارنده حلقه
  3. حلقه while:
    • تا زمانی که currentNumber کوچکتر یا مساوی n باشد:
      • مقدار currentNumber به sum اضافه می‌شود
      • currentNumber یک واحد افزایش می‌یابد
  4. نمایش نتیجه:
    • مجموع نهایی محاسبه و نمایش داده می‌شود

 

تمرین 18: گرفتن عدد از کاربر تا وقتی که مقدار صحیح وارد شود

برنامه‌ای که از کاربر بخواهد عددی وارد کند و تا وقتی که مقدار مثبت وارد نکرده، مجدداً مقدار بگیرد.

using System;

class Program
{
    static void Main()
    {
        int number;
        bool isValidInput = false;

        Console.WriteLine("لطفاً یک عدد صحیح مثبت وارد کنید:");

        while (!isValidInput)
        {
            string input = Console.ReadLine();
            
            // بررسی اینکه آیا ورودی عدد صحیح است و مقدار آن مثبت است
            if (int.TryParse(input, out number) && number > 0)
            {
                isValidInput = true;
                Console.WriteLine($"عدد وارد شده معتبر است: {number}");
            }
            else
            {
                Console.WriteLine("ورودی نامعتبر! لطفاً یک عدد صحیح مثبت وارد کنید:");
            }
        }

        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. متغیرها:
    • number: برای ذخیره عدد ورودی
    • isValidInput: برای کنترل وضعیت اعتبارسنجی
  2. حلقه while:
    • تا زمانی که isValidInput برابر false باشد ادامه می‌یابد
    • در هر تکرار:
      • ورودی کاربر را می‌خواند (Console.ReadLine())
      • بررسی می‌کند آیا ورودی یک عدد صحیح مثبت است
  3. اعتبارسنجی:
    • int.TryParse: بررسی می‌کند آیا ورودی قابل تبدیل به عدد صحیح است
    • number > 0: بررسی مثبت بودن عدد
  4. پیام‌های کاربر:
    • در صورت ورودی نامعتبر، پیام خطا نمایش داده می‌شود
    • در صورت ورودی معتبر، حلقه پایان می‌یابد

 

تمرین 19: شمارش تعداد ارقام یک عدد

برنامه‌ای که از کاربر یک عدد بگیرد و تعداد رقم‌های آن را محاسبه کند.

using System;

class Program
{
    static void Main()
    {
        // دریافت عدد از کاربر
        Console.WriteLine("لطفاً یک عدد وارد کنید:");
        int number = Convert.ToInt32(Console.ReadLine());

        // متغیر شمارش ارقام
        int digitCount = 0;

        // تبدیل عدد به مقدار مطلق برای کار با اعداد منفی
        number = Math.Abs(number);

        // شمارش ارقام
        if (number == 0)
        {
            digitCount = 1; // عدد صفر یک رقم دارد
        }
        else
        {
            while (number > 0)
            {
                number /= 10; // حذف یک رقم از سمت راست
                digitCount++; // افزایش شمارنده ارقام
            }
        }

        // نمایش نتیجه
        Console.WriteLine($"تعداد ارقام عدد وارد شده: {digitCount}");

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت عدد:
    • عدد از کاربر دریافت می‌شود (هم برای اعداد مثبت و هم منفی کار می‌کند)
  2. مقدار مطلق:
    • با Math.Abs عدد را مثبت می‌کنیم تا با اعداد منفی هم کار کند
  3. شرایط خاص:
    • اگر عدد صفر باشد، مستقیماً 1 رقم در نظر گرفته می‌شود
  4. حلقه شمارش ارقام:
    • در هر مرحله عدد را بر 10 تقسیم می‌کنیم (یک رقم از سمت راست حذف می‌شود)
    • با هر تقسیم، شمارنده ارقام را افزایش می‌دهیم
    • این کار تا زمانی ادامه می‌یابد که عدد به صفر برسد
  5. نمایش نتیجه:
    • تعداد نهایی ارقام نمایش داده می‌شود

 


 

تمرین 20: محاسبه حاصل‌ضرب دو عدد بدون استفاده از عملگر *

برنامه‌ای که دو عدد a و b از کاربر بگیرد و حاصل‌ضرب آن‌ها را با استفاده از جمع‌های متوالی محاسبه کند.

using System;

class Program
{
    static void Main()
    {
        // دریافت دو عدد از کاربر
        Console.WriteLine("عدد اول (a) را وارد کنید:");
        int a = Convert.ToInt32(Console.ReadLine());
        
        Console.WriteLine("عدد دوم (b) را وارد کنید:");
        int b = Convert.ToInt32(Console.ReadLine());

        // محاسبه حاصل‌ضرب با جمع متوالی
        int product = 0;
        int counter = 0;

        // حلقه while برای جمع‌های متوالی
        while (counter < Math.Abs(b))
        {
            product += Math.Abs(a);
            counter++;
        }

        // تعیین علامت حاصل‌ضرب
        if ((a < 0 && b > 0) || (a > 0 && b < 0))
        {
            product = -product;
        }

        // نمایش نتیجه
        Console.WriteLine($"حاصل‌ضرب {a} × {b} = {product}");

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت اعداد:
    • دو عدد a و b از کاربر دریافت می‌شوند
  2. مقداردهی اولیه:
    • product = 0: برای ذخیره نتیجه نهایی
    • counter = 0: برای شمارش تعداد جمع‌ها
  3. حلقه while:
    • عدد a را به مقدار مطلق b بار به خودش اضافه می‌کند
    • Math.Abs(b): برای کار با اعداد منفی
  4. تعیین علامت:
    • اگر یکی از اعداد منفی باشد، حاصل‌ضرب منفی می‌شود
    • اگر هر دو مثبت یا هر دو منفی باشند، حاصل‌ضرب مثبت است
  5. نمایش نتیجه:
    • حاصل‌ضرب نهایی نمایش داده می‌شود

 

تمرین 21: بررسی عدد اول

برنامه‌ای که عددی از کاربر بگیرد و بررسی کند که عدد اول است یا خیر.

using System;

class Program
{
    static void Main()
    {
        // دریافت عدد از کاربر
        Console.WriteLine("لطفاً یک عدد صحیح مثبت وارد کنید:");
        int number = Convert.ToInt32(Console.ReadLine());

        // بررسی شرایط خاص
        if (number <= 1)
        {
            Console.WriteLine($"{number} عدد اول نیست.");
            Console.ReadKey();
            return;
        }

        // بررسی عدد اول
        bool isPrime = true;
        int divisor = 2; // شروع تقسیم از 2

        while (divisor <= Math.Sqrt(number))
        {
            if (number % divisor == 0)
            {
                isPrime = false;
                break;
            }
            divisor++;
        }

        // نمایش نتیجه
        if (isPrime)
        {
            Console.WriteLine($"{number} عدد اول است.");
        }
        else
        {
            Console.WriteLine($"{number} عدد اول نیست.");
        }

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت عدد:
    • عدد از کاربر دریافت می‌شود
  2. بررسی شرایط خاص:
    • اعداد کمتر یا مساوی 1 اول نیستند
  3. بررسی عدد اول:
    • حلقه while تا جایی که مقسوم‌علیه به جذر عدد نرسیده ادامه می‌یابد
    • اگر عدد بر مقسوم‌علیه‌ای بخش‌پذیر باشد، اول نیست
    • در این صورت حلقه با break پایان می‌یابد
  4. نمایش نتیجه:
    • بر اساس مقدار isPrime نتیجه نمایش داده می‌شود

 


 

تمرین 22: تبدیل عدد به معکوس آن

برنامه‌ای که یک عدد دریافت کند و رقم‌های آن را برعکس کند.

using System;

class Program
{
    static void Main()
    {
        // دریافت عدد از کاربر
        Console.WriteLine("لطفاً یک عدد صحیح وارد کنید:");
        int number = Convert.ToInt32(Console.ReadLine());
        
        // متغیر برای ذخیره عدد معکوس
        int reversedNumber = 0;
        int originalNumber = number; // حفظ عدد اصلی برای نمایش
        
        // تبدیل عدد به مقدار مطلق برای کار با اعداد منفی
        number = Math.Abs(number);
        
        // معکوس کردن ارقام با حلقه while
        while (number > 0)
        {
            int digit = number % 10; // استخراج آخرین رقم
            reversedNumber = reversedNumber * 10 + digit; // اضافه کردن رقم به عدد معکوس
            number /= 10; // حذف آخرین رقم
        }
        
        // اعمال علامت برای اعداد منفی
        if (originalNumber < 0)
        {
            reversedNumber *= -1;
        }
        
        // نمایش نتیجه
        Console.WriteLine($"عدد معکوس: {reversedNumber}");
        
        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت عدد:
    • عدد از کاربر دریافت می‌شود (هم برای اعداد مثبت و هم منفی کار می‌کند)
  2. مقدار مطلق:
    • با Math.Abs عدد را مثبت می‌کنیم تا با اعداد منفی کار کند
  3. حلقه معکوس‌سازی:
    • در هر تکرار:
      • آخرین رقم را با number % 10 استخراج می‌کنیم
      • رقم را به عدد معکوس اضافه می‌کنیم
      • عدد اصلی را بر 10 تقسیم می‌کنیم تا یک رقم از انتها حذف شود
  4. اعمال علامت:
    • اگر عدد اصلی منفی بود، علامت منفی به عدد معکوس اضافه می‌شود
  5. نمایش نتیجه:
    • عدد معکوس شده نمایش داده می‌شود

 


 

تمرین 23: بررسی اینکه عدد چند رقمی است و آیا سه‌رقمی هست یا نه

برنامه‌ای که عددی از کاربر بگیرد و مشخص کند که چندرقمی است و آیا سه‌رقمی است یا نه.

using System;

class Program
{
    static void Main()
    {
        // دریافت عدد از کاربر
        Console.WriteLine("لطفاً یک عدد صحیح وارد کنید:");
        int number = Convert.ToInt32(Console.ReadLine());

        // محاسبه تعداد ارقام
        int digitCount = 0;
        int tempNumber = Math.Abs(number); // کار با مقدار مطلق عدد

        // محاسبه تعداد ارقام با حلقه while
        if (tempNumber == 0)
        {
            digitCount = 1; // عدد صفر یک رقم دارد
        }
        else
        {
            while (tempNumber > 0)
            {
                tempNumber /= 10; // حذف یک رقم
                digitCount++; // افزایش شمارنده ارقام
            }
        }

        // بررسی سه‌رقمی بودن
        bool isThreeDigit = (digitCount == 3);

        // نمایش نتایج
        Console.WriteLine($"تعداد ارقام عدد وارد شده: {digitCount}");
        Console.WriteLine($"آیا عدد سه‌رقمی است؟ {(isThreeDigit ? "بله" : "خیر")}");

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت عدد:
    • عدد از کاربر دریافت می‌شود (هم برای اعداد مثبت و هم منفی کار می‌کند)
  2. محاسبه تعداد ارقام:
    • با استفاده از حلقه while و تقسیم متوالی بر 10
    • حالت خاص برای عدد صفر (1 رقم در نظر گرفته می‌شود)
  3. بررسی سه‌رقمی بودن:
    • بررسی می‌کند آیا تعداد ارقام دقیقاً 3 است
  4. نمایش نتایج:
    • تعداد ارقام و وضعیت سه‌رقمی بودن نمایش داده می‌شود

 


 

تمرین 24: محاسبه فاکتوریل یک عدد (با  حلقه while)

برنامه‌ای که عددی N بگیرد و فاکتوریل آن را محاسبه کند.

using System;

class Program
{
    static void Main()
    {
        // دریافت عدد از کاربر
        Console.WriteLine("لطفاً یک عدد صحیح غیرمنفی وارد کنید:");
        int n = Convert.ToInt32(Console.ReadLine());

        // محاسبه فاکتوریل
        long factorial = 1; // استفاده از long برای جلوگیری از سرریز
        int counter = 1;

        // حلقه محاسبه فاکتوریل
        while (counter <= n)
        {
            factorial *= counter;
            counter++;
        }

        // نمایش نتیجه
        Console.WriteLine($"فاکتوریل {n} برابر است با: {factorial}");

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت ورودی:
    • عدد n از کاربر دریافت می‌شود
    • فاکتوریل فقط برای اعداد صحیح غیرمنفی تعریف شده است
  2. مقداردهی اولیه:
    • factorial = 1: مقدار اولیه برای محاسبه فاکتوریل
    • counter = 1: شمارنده حلقه
  3. حلقه محاسبه:
    • در هر تکرار مقدار factorial در counter ضرب می‌شود
    • counter افزایش می‌یابد تا به n برسد
  4. نوع داده:
    • از long استفاده شده چون فاکتوریل اعداد بزرگ سریع رشد می‌کند
  5. نمایش نتیجه:
    • نتیجه نهایی محاسبه و نمایش داده می‌شود

 


 

تمرین 24: حدس زدن عدد تصادفی

برنامه‌ای که یک عدد بین ۱ تا ۱۰ مشخص کند و از کاربر بخواهد که آن را حدس بزند. برنامه تا زمانی که کاربر عدد درست را وارد نکرده باشد، ادامه پیدا کند.

using System;

class Program
{
    static void Main()
    {
        // تولید عدد تصادفی بین 1 تا 10
        Random random = new Random();
        int secretNumber = random.Next(1, 11); // 11 شامل نمی‌شود
        int guess;
        int attempts = 0;

        Console.WriteLine("من یک عدد بین 1 تا 10 انتخاب کرده‌ام. حدس شما چیست؟");

        // حلقه حدس زدن
        while (true)
        {
            attempts++;
            Console.Write("حدس شما: ");
            guess = Convert.ToInt32(Console.ReadLine());

            if (guess == secretNumber)
            {
                Console.WriteLine($"آفرین! شما عدد {secretNumber} را در {attempts} تلاش حدس زدید.");
                break;
            }
            else if (guess < secretNumber)
            {
                Console.WriteLine("عدد شما کوچکتر از عدد مورد نظر است.");
            }
            else
            {
                Console.WriteLine("عدد شما بزرگتر از عدد مورد نظر است.");
            }
        }

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. تولید عدد تصادفی:
    • با استفاده از کلاس Random عددی بین 1 تا 10 انتخاب می‌شود
  2. حلقه اصلی بازی:
    • حلقه while بی‌نهایت (while (true)) تا زمانی که کاربر عدد درست را حدس بزند ادامه می‌یابد
    • با هر حدس، تعداد تلاش‌ها (attempts) افزایش می‌یابد
  3. بررسی حدس کاربر:
    • اگر حدس درست باشد: پیام تبریک و خروج از حلقه با break
    • اگر حدس کوچکتر باشد: راهنمایی به کاربر
    • اگر حدس بزرگتر باشد: راهنمایی به کاربر
  4. نمایش نتیجه:
    • تعداد تلاش‌های کاربر و عدد صحیح نمایش داده می‌شود

 


 

استفاده از حلقه do…while در سی شارپ کنسول

 

تمرین 25: گرفتن عدد از کاربر تا زمانی که مقدار مثبت وارد کند

برنامه‌ای که از کاربر عدد بگیرد و تا وقتی که مقدار مثبت وارد نکرده، دوباره از او بخواهد.

using System;

class Program
{
    static void Main()
    {
        int number;
        
        do
        {
            Console.WriteLine("لطفاً یک عدد مثبت وارد کنید:");
            number = Convert.ToInt32(Console.ReadLine());
            
            if (number <= 0)
            {
                Console.WriteLine("عدد وارد شده نامعتبر است!");
            }
            
        } while (number <= 0);

        Console.WriteLine($"عدد مثبت وارد شده: {number}");
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. حلقه do-while:
    • ابتدا یکبار دستورات اجرا می‌شوند (do)
    • سپس شرط بررسی می‌شود (while)
    • اگر شرط برقرار باشد (عدد <= 0)، حلقه تکرار می‌شود
  2. دریافت عدد:
    • در هر تکرار از کاربر عدد دریافت می‌شود
    • اگر عدد نامعتبر باشد (منفی یا صفر)، پیام خطا نمایش داده می‌شود
  3. شرط خروج:
    • وقتی کاربر عدد مثبت وارد کند، حلقه پایان می‌یابد
  4. نمایش نتیجه:
    • عدد مثبت نهایی نمایش داده می‌شود

 

تمرین 26: گرفتن رمز عبور صحیح

برنامه‌ای که از کاربر رمز عبور بخواهد و تا زمانی که رمز صحیح وارد نشده، دوباره درخواست کند.

using System;

class Program
{
    static void Main()
    {
        // رمز عبور صحیح
        const string correctPassword = "1234";
        string userPassword;
        bool isCorrect = false;

        Console.WriteLine("سیستم ورود به حساب کاربری");
        Console.WriteLine("------------------------");

        // دریافت رمز عبور تا زمانی که صحیح وارد شود
        do
        {
            Console.Write("رمز عبور را وارد کنید: ");
            userPassword = Console.ReadLine();

            if (userPassword == correctPassword)
            {
                isCorrect = true;
            }
            else
            {
                Console.WriteLine("رمز عبور نادرست! لطفاً مجدداً تلاش کنید.\n");
            }

        } while (!isCorrect);

        Console.WriteLine("\nورود موفق! به حساب کاربری خود خوش آمدید.");
        Console.WriteLine("برای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. رمز عبور صحیح:
    • مقدار ثابت correctPassword به عنوان رمز صحیح تعریف شده است
  2. حلقه do-while:
    • ابتدا یکبار رمز را دریافت می‌کند (do)
    • سپس شرط را بررسی می‌کند (while)
    • تا زمانی که رمز نادرست باشد تکرار می‌شود
  3. بررسی رمز:
    • اگر رمز صحیح باشد، isCorrect برابر true می‌شود
    • اگر رمز نادرست باشد، پیام خطا نمایش داده می‌شود
  4. پیام موفقیت:
    • پس از وارد کردن رمز صحیح، پیام خوش‌آمدگویی نمایش داده می‌شود

 


 

تمرین 27: حدس عدد تصادفی (بازی ساده)

برنامه‌ای که یک عدد تصادفی بین ۱ تا ۱۰ انتخاب کند و کاربر تا وقتی که عدد صحیح را وارد نکرده، تلاش کند.

using System;

class Program
{
    static void Main()
    {
        // تولید عدد تصادفی بین 1 تا 10
        Random random = new Random();
        int secretNumber = random.Next(1, 11); // 11 شامل نمی‌شود
        int userGuess;
        int attempts = 0;

        Console.WriteLine("بازی حدس عدد!");
        Console.WriteLine("من عددی بین 1 تا 10 انتخاب کرده‌ام. می‌توانید حدس بزنید؟");

        // حلقه بازی با do-while
        do
        {
            attempts++;
            Console.Write($"حدس {attempts}: ");
            userGuess = Convert.ToInt32(Console.ReadLine());

            if (userGuess < secretNumber)
            {
                Console.WriteLine("عدد شما کوچکتر است!");
            }
            else if (userGuess > secretNumber)
            {
                Console.WriteLine("عدد شما بزرگتر است!");
            }

        } while (userGuess != secretNumber);

        // نمایش پیام موفقیت
        Console.WriteLine($"\nآفرین! عدد صحیح {secretNumber} را در {attempts} تلاش حدس زدید!");
        
        // نگه داشتن کنسول
        Console.WriteLine("برای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. تولید عدد تصادفی:
    • با استفاده از کلاس Random عددی بین 1 تا 10 انتخاب می‌شود
  2. حلقه اصلی بازی:
    • از do-while استفاده می‌شود تا حداقل یکبار از کاربر عدد دریافت شود
    • در هر تکرار، شماره تلاش افزایش می‌یابد (attempts++)
  3. بررسی حدس کاربر:
    • اگر حدس کوچکتر باشد، پیام راهنمایی نمایش داده می‌شود
    • اگر حدس بزرگتر باشد، پیام راهنمایی نمایش داده می‌شود
    • حلقه تا زمانی که کاربر عدد صحیح را حدس بزند ادامه می‌یابد
  4. پیام موفقیت:
    • پس از حدس صحیح، تعداد تلاش‌ها و عدد صحیح نمایش داده می‌شود

 


 

 

۱۰ تمرین برای آموزش حلقه for در سی‌شارپ کنسول

 

تمرین 28: چاپ اعداد ۱ تا ۱۰

برنامه‌ای که با استفاده از for اعداد ۱ تا ۱۰ را چاپ کند.

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("چاپ اعداد ۱ تا ۱۰ با حلقه for:");
        
        // حلقه for برای چاپ اعداد
        for (int i = 1; i <= 10; i++)
        {
            Console.WriteLine(i);
        }

        Console.WriteLine("\nپایان برنامه!");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. مقداردهی اولیه حلقه:
    • int i = 1: شمارنده از 1 شروع می‌شود
  2. شرط ادامه حلقه:
    • i <= 10: تا زمانی که i کوچکتر یا مساوی 10 باشد ادامه می‌یابد
  3. گام حلقه:
    • i++: پس از هر تکرار، مقدار i یک واحد افزایش می‌یابد
  4. بدنه حلقه:
    • در هر تکرار مقدار فعلی i چاپ می‌شود

 

تمرین 29: چاپ اعداد زوج بین ۱ تا ۲۰

برنامه‌ای که اعداد زوج بین ۱ تا ۲۰ را نمایش دهد.

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("اعداد زوج بین ۱ تا ۲۰:");
        
        // حلقه for برای چاپ اعداد زوج
        for (int i = 2; i <= 20; i += 2)
        {
            Console.WriteLine(i);
        }

        Console.WriteLine("\nپایان برنامه!");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. مقداردهی اولیه حلقه:
    • int i = 2: شمارنده از اولین عدد زوج (۲) شروع می‌شود
  2. شرط ادامه حلقه:
    • i <= 20: تا زمانی که i کوچکتر یا مساوی ۲۰ باشد ادامه می‌یابد
  3. گام حلقه:
    • i += 2: پس از هر تکرار، مقدار i دو واحد افزایش می‌یابد (پرش روی اعداد زوج)
  4. بدنه حلقه:
    • در هر تکرار مقدار فعلی i چاپ می‌شود

 


 

تمرین 30: جمع اعداد ۱ تا N

برنامه‌ای که مقدار N را از کاربر بگیرد و جمع اعداد ۱ تا N را محاسبه کند.

using System;

class Program
{
    static void Main()
    {
        // دریافت عدد N از کاربر
        Console.WriteLine("عدد N را وارد کنید:");
        int n = Convert.ToInt32(Console.ReadLine());

        // محاسبه مجموع با حلقه for
        int sum = 0;
        for (int i = 1; i <= n; i++)
        {
            sum += i; // اضافه کردن عدد فعلی به مجموع
        }

        // نمایش نتیجه
        Console.WriteLine($"مجموع اعداد ۱ تا {n} برابر است با: {sum}");

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت ورودی:
    • عدد n از کاربر دریافت می‌شود
  2. مقداردهی اولیه:
    • sum = 0: متغیر ذخیره مجموع
    • i = 1: شمارنده حلقه از 1 شروع می‌شود
  3. حلقه for:
    • i <= n: تا زمانی که شمارنده کوچکتر یا مساوی n باشد
    • در هر تکرار مقدار i به sum اضافه می‌شود
    • i++: شمارنده یک واحد افزایش می‌یابد
  4. نمایش نتیجه:
    • مجموع نهایی محاسبه و نمایش داده می‌شود

 

تمرین 31: فاکتوریل یک عدد

برنامه‌ای که عدد N را بگیرد و فاکتوریل آن را محاسبه کند.

using System;

class Program
{
    static void Main()
    {
        // دریافت عدد از کاربر
        Console.WriteLine("عدد N را وارد کنید (عددی غیرمنفی):");
        int n = Convert.ToInt32(Console.ReadLine());

        // محاسبه فاکتوریل
        long factorial = 1; // استفاده از long برای جلوگیری از سرریز

        // حلقه for برای محاسبه فاکتوریل
        for (int i = 1; i <= n; i++)
        {
            factorial *= i;
        }

        // نمایش نتیجه
        Console.WriteLine($"فاکتوریل {n} برابر است با: {factorial}");

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت ورودی:
    • عدد n از کاربر دریافت می‌شود (فاکتوریل برای اعداد غیرمنفی تعریف شده است)
  2. مقداردهی اولیه:
    • factorial = 1: مقدار اولیه برای محاسبه فاکتوریل
    • از long استفاده شده چون فاکتوریل اعداد بزرگ سریع رشد می‌کند
  3. حلقه for:
    • int i = 1: شمارنده از 1 شروع می‌شود
    • i <= n: تا زمانی که شمارنده به n برسد ادامه می‌یابد
    • در هر تکرار مقدار factorial در i ضرب می‌شود
  4. نمایش نتیجه:
    • فاکتوریل محاسبه شده نمایش داده می‌شود

 


 

 

تمرین 32: چاپ جدول ضرب یک عدد

برنامه‌ای که عدد N را بگیرد و جدول ضرب آن را نمایش دهد.

using System;

class Program
{
    static void Main()
    {
        // دریافت عدد از کاربر
        Console.WriteLine("لطفاً عدد مورد نظر برای جدول ضرب را وارد کنید:");
        int n = Convert.ToInt32(Console.ReadLine());

        Console.WriteLine($"\nجدول ضرب {n}:\n");

        // چاپ جدول ضرب با حلقه for
        for (int i = 1; i <= 10; i++)
        {
            Console.WriteLine($"{n} × {i} = {n * i}");
        }

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت ورودی:
    • عدد n از کاربر دریافت می‌شود
  2. حلقه for:
    • int i = 1: شمارنده از 1 شروع می‌شود
    • i <= 10: تا 10 ادامه می‌یابد (برای جدول ضرب 1 تا 10)
    • در هر تکرار حاصلضرب n در i محاسبه و نمایش داده می‌شود
  3. نمایش نتیجه:
    • هر سطر جدول ضرب به فرمت n × i = result چاپ می‌شود

 


 

 

تمرین 33: شمارش تعداد ارقام یک عدد

برنامه‌ای که یک عدد بگیرد و تعداد رقم‌های آن را مشخص کند.

using System;

class Program
{
    static void Main()
    {
        // دریافت عدد از کاربر
        Console.WriteLine("لطفاً یک عدد صحیح وارد کنید:");
        int number = Convert.ToInt32(Console.ReadLine());

        // تبدیل به مقدار مطلق برای کار با اعداد منفی
        number = Math.Abs(number);

        // شمارش ارقام
        int digitCount = 0;
        
        // حلقه for برای شمارش ارقام
        for (int temp = number; temp > 0; temp /= 10)
        {
            digitCount++;
        }

        // حالت خاص برای عدد صفر
        if (number == 0)
        {
            digitCount = 1;
        }

        // نمایش نتیجه
        Console.WriteLine($"تعداد ارقام عدد وارد شده: {digitCount}");

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت عدد:
    • عدد از کاربر دریافت می‌شود (هم برای اعداد مثبت و هم منفی کار می‌کند)
  2. مقدار مطلق:
    • با Math.Abs عدد را مثبت می‌کنیم تا با اعداد منفی هم کار کند
  3. حلقه for برای شمارش:
    • متغیر موقت temp برای نگهداری مقدار عدد استفاده می‌شود
    • در هر تکرار:
      • temp /= 10: یک رقم از سمت راست حذف می‌شود
      • digitCount++: شمارنده ارقام افزایش می‌یابد
    • حلقه تا زمانی که temp بزرگتر از صفر باشد ادامه می‌یابد
  4. حالت خاص:
    • اگر عدد صفر باشد، مستقیماً 1 رقم در نظر گرفته می‌شود
  5. نمایش نتیجه:
    • تعداد ارقام محاسبه شده نمایش داده می‌شود

 


 

تمرین 34: معکوس کردن رقم‌های یک عدد

برنامه‌ای که یک عدد را بگیرد و معکوس آن را نمایش دهد.

using System;

class Program
{
    static void Main()
    {
        // دریافت عدد از کاربر
        Console.WriteLine("لطفاً یک عدد صحیح وارد کنید:");
        int number = Convert.ToInt32(Console.ReadLine());
        
        // ذخیره عدد اصلی برای نمایش
        int originalNumber = number;
        
        // تبدیل به مقدار مطلق برای کار با اعداد منفی
        number = Math.Abs(number);
        
        // متغیر برای ذخیره عدد معکوس
        int reversedNumber = 0;
        
        // حلقه for برای معکوس کردن ارقام
        for (; number > 0; number /= 10)
        {
            int digit = number % 10; // استخراج آخرین رقم
            reversedNumber = reversedNumber * 10 + digit; // اضافه کردن رقم به عدد معکوس
        }
        
        // اعمال علامت برای اعداد منفی
        if (originalNumber < 0)
        {
            reversedNumber *= -1;
        }
        
        // نمایش نتیجه
        Console.WriteLine($"عدد معکوس: {reversedNumber}");
        
        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت عدد:
    • عدد از کاربر دریافت می‌شود (هم برای اعداد مثبت و هم منفی کار می‌کند)
  2. مقدار مطلق:
    • با Math.Abs عدد را مثبت می‌کنیم تا با اعداد منفی کار کند
  3. حلقه for برای معکوس‌سازی:
    • بدون مقداردهی اولیه (; اول) چون از متغیر موجود استفاده می‌کنیم
    • در هر تکرار:
      • number % 10: آخرین رقم را استخراج می‌کند
      • reversedNumber * 10 + digit: رقم را به عدد معکوس اضافه می‌کند
      • number /= 10: یک رقم از انتهای عدد حذف می‌شود
  4. اعمال علامت:
    • اگر عدد اصلی منفی بود، علامت منفی به عدد معکوس اضافه می‌شود
  5. نمایش نتیجه:
    • عدد معکوس شده نمایش داده می‌شود

 


 

تمرین 35: نمایش مثلث ستاره‌ای

برنامه‌ای که N را بگیرد و یک مثلث ستاره‌ای تا N سطر نمایش دهد.

using System;

class Program
{
    static void Main()
    {
        // دریافت تعداد سطرها از کاربر
        Console.WriteLine("لطفاً تعداد سطرهای مثلث را وارد کنید:");
        int n = Convert.ToInt32(Console.ReadLine());

        Console.WriteLine("\nمثلث ستاره‌ای:");

        // رسم مثلث با حلقه‌های for تودرتو
        for (int row = 1; row <= n; row++)
        {
            // چاپ فاصله‌ها
            for (int space = 1; space <= n - row; space++)
            {
                Console.Write(" ");
            }

            // چاپ ستاره‌ها
            for (int star = 1; star <= 2 * row - 1; star++)
            {
                Console.Write("*");
            }

            Console.WriteLine(); // رفتن به خط جدید پس از هر سطر
        }

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت ورودی:
    • عدد n که تعداد سطرهای مثلث است از کاربر دریافت می‌شود
  2. حلقه اصلی (سطرها):
    • for (int row = 1; row <= n; row++) برای کنترل تعداد سطرها
  3. حلقه فاصله‌ها:
    • for (int space = 1; space <= n - row; space++)
    • در هر سطر، تعداد فاصله‌ها کاهش می‌یابد تا مثلث شکل بگیرد
  4. حلقه ستاره‌ها:
    • for (int star = 1; star <= 2 * row - 1; star++)
    • تعداد ستاره‌ها در هر سطر برابر با 2*row-1 است (1, 3, 5, …)
  5. خط جدید:
    • پس از چاپ هر سطر، به خط جدید می‌رویم

 


 

تمرین 36: بررسی عدد اول

برنامه‌ای که یک عدد را بگیرد و بررسی کند که عدد اول است یا خیر.

using System;

class Program
{
    static void Main()
    {
        // دریافت عدد از کاربر
        Console.WriteLine("لطفاً یک عدد صحیح مثبت وارد کنید:");
        int number = Convert.ToInt32(Console.ReadLine());

        // بررسی اول بودن عدد
        bool isPrime = true;

        // اعداد کمتر از 2 اول نیستند
        if (number < 2)
        {
            isPrime = false;
        }
        else
        {
            // حلقه for برای بررسی مقسوم‌علیه‌ها
            for (int i = 2; i <= Math.Sqrt(number); i++)
            {
                if (number % i == 0)
                {
                    isPrime = false;
                    break; // اگر مقسوم‌علیه پیدا شد، دیگر ادامه نده
                }
            }
        }

        // نمایش نتیجه
        if (isPrime)
        {
            Console.WriteLine($"{number} یک عدد اول است.");
        }
        else
        {
            Console.WriteLine($"{number} عدد اول نیست.");
        }

        // نگه داشتن کنسول
        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. دریافت عدد:
    • عدد از کاربر دریافت می‌شود
  2. مقداردهی اولیه:
    • isPrime = true: فرض می‌کنیم عدد اول است تا زمانی که خلافش ثابت شود
  3. بررسی اعداد خاص:
    • اعداد کمتر از 2 اول نیستند (1 و اعداد منفی)
  4. حلقه for برای بررسی:
    • از 2 شروع می‌کنیم تا جذر عدد
    • اگر عدد بر هرکدام از این اعداد بخش‌پذیر باشد، اول نیست
    • در صورت پیدا شدن مقسوم‌علیه، حلقه با break پایان می‌یابد
  5. نمایش نتیجه:
    • بر اساس مقدار isPrime نتیجه نمایش داده می‌شود

 


 

تمرین 37: حدس عدد تصادفی (بازی ساده)

برنامه‌ای که یک عدد تصادفی بین ۱ تا ۱۰۰ تولید کند و از کاربر بخواهد آن را حدس بزند. برنامه تا وقتی که عدد درست حدس زده نشده، ادامه دارد.

using System;

class Program
{
    static void Main()
    {
        // تولید عدد تصادفی بین 1 تا 100
        Random random = new Random();
        int secretNumber = random.Next(1, 101);
        int userGuess;
        int attempts = 0;
        const int maxAttempts = 10; // حداکثر تعداد تلاش

        Console.WriteLine("بازی حدس عدد!");
        Console.WriteLine("من عددی بین 1 تا 100 انتخاب کرده‌ام. شما 10 فرصت دارید آن را حدس بزنید.");

        // حلقه بازی با for
        for (attempts = 1; attempts <= maxAttempts; attempts++)
        {
            Console.Write($"حدس {attempts}: ");
            userGuess = Convert.ToInt32(Console.ReadLine());

            if (userGuess == secretNumber)
            {
                Console.WriteLine($"\nآفرین! شما عدد {secretNumber} را در {attempts} تلاش حدس زدید!");
                break;
            }
            else if (userGuess < secretNumber)
            {
                Console.WriteLine("> عدد بزرگتر است");
            }
            else
            {
                Console.WriteLine("< عدد کوچکتر است");
            }

            // نمایش تعداد فرصت‌های باقیمانده
            Console.WriteLine($"فرصت باقی‌مانده: {maxAttempts - attempts}\n");
        }

        // اگر کاربر نتوانست حدس بزند
        if (attempts > maxAttempts)
        {
            Console.WriteLine($"\nمتاسفانه فرصت شما تمام شد! عدد صحیح {secretNumber} بود.");
        }

        Console.WriteLine("\nبرای خروج یک کلید را فشار دهید...");
        Console.ReadKey();
    }
}

توضیحات کد:

  1. تولید عدد تصادفی:
    • با Random.Next(1, 101) عددی بین 1 تا 100 تولید می‌شود
  2. حلقه for:
    • حداکثر 10 بار تکرار می‌شود (maxAttempts = 10)
    • در هر تکرار:
      • حدس کاربر دریافت می‌شود
      • با عدد تصادفی مقایسه می‌شود
      • راهنمایی مناسب نمایش داده می‌شود
  3. بررسی حدس کاربر:
    • اگر حدس درست باشد، پیام تبریک و خروج از حلقه
    • اگر حدس کوچکتر باشد، پیام “عدد بزرگتر است”
    • اگر حدس بزرگتر باشد، پیام “عدد کوچکتر است”
  4. پایان بازی:
    • اگر کاربر در 10 تلاش موفق نشد، عدد صحیح نمایش داده می‌شود

 

تمرین های عملی سی شارپ تمرین های عملی سی شارپ تمرین های عملی سی شارپ تمرین های عملی سی شارپ تمرین های عملی سی شارپ

آموزش گام به گام C# همراه با مثال‌های کاربردی C#

در این مقاله، با استفاده از آموزش گام به گام C# شما را از مفاهیم پایه تا طراحی پروژه‌های کاربردی مانند مدیریت فروشگاه، دفترچه تلفن، ماشین حساب و… پیش می‌بریم.
برای هر بخش، مثال‌های کاربردی C# ارائه شده که به شما در یادگیری بهتر کمک می‌کند.


تمرین سی شارپ برای مبتدیان

اگر در ابتدای مسیر هستید، نگران نباشید! ما تمریناتی ویژه‌ی تمرین سی شارپ برای مبتدیان آماده کرده‌ایم که حتی بدون تجربه قبلی می‌توانید آن‌ها را انجام دهید.
این تمرین‌ها در چارچوب آموزش پروژه محور C# هستند تا از همان ابتدا با رویکردی کاربردی پیش بروید.


آموزش C# در تبریز؛ ویژه علاقه‌مندان به برنامه نویسی ویندوز

اگر ساکن تبریز هستید، پیشنهاد ما این است که در آموزش C# در تبریز آموزشگاه راهکار شرکت کنید. این دوره با تمرکز بر تمرین عملی C# برگزار می‌شود و مدرسین آن با تجربه بالا، شما را برای ورود به بازار کار آماده می‌کنند.
هدف اصلی این دوره‌ها، آموزش واقعی و پروژه‌محور است که با پروژه عملی سی شارپ همراه هستند.


پروژه عملی سی شارپ برای بازار کار

در پایان این مطلب، چندین نمونه پروژه عملی سی شارپ ارائه می‌شود که کاملاً کاربردی هستند و می‌توانید آن‌ها را به عنوان رزومه یا تمرین شخصی استفاده کنید. اگر به فکر ورود به بازار کار برنامه‌نویسی هستید، این پروژه‌ها شما را یک گام جلوتر می‌برند.
برنامه نویسی ویندوز با C# یکی از مهارت‌های پرکاربرد و پردرآمد است و یادگیری آن با تمرین می‌تواند آینده شغلی درخشانی برایتان رقم بزند.


جمع‌بندی

اگر می‌خواهید زبان برنامه نویسی سی شارپ را اصولی و کاربردی یاد بگیرید، انجام تمرین عملی C# و شرکت در دوره آموزش C# در تبریز بهترین انتخاب است. با تمرین‌های مداوم و انجام پروژه عملی سی شارپ، در مسیر تبدیل‌شدن به یک برنامه‌نویس موفق قرار می‌گیرید.

فراموش نکنید: یادگیری برنامه نویسی C# با تمرین آغاز می‌شود، با پروژه ادامه می‌یابد و با ورود به بازار کار تکمیل می‌شود.

یادگیری برنامه نویسی C# یادگیری برنامه نویسی C# یادگیری برنامه نویسی C# یادگیری برنامه نویسی C# یادگیری برنامه نویسی C# یادگیری برنامه نویسی C# یادگیری برنامه نویسی C# یادگیری برنامه نویسی C# یادگیری برنامه نویسی C# یادگیری برنامه نویسی C# یادگیری برنامه نویسی C# یادگیری برنامه نویسی C# یادگیری برنامه نویسی C#

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *