تمرین های عملی سی شارپ پایه یازدهم کتاب برنامه نویسی 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();
}
}
توضیحات کد:
- دریافت ورودی از کاربر:
- با استفاده از
Console.ReadLine()ورودی کاربر را دریافت میکنیم. - با
Convert.ToInt32()ورودی رشتهای را به عدد صحیح تبدیل میکنیم.
- با استفاده از
- تبدیل عدد به رشته:
- با استفاده از متد
ToString()عدد را به معادل رشتهای آن تبدیل میکنیم.
- با استفاده از متد
- محاسبه تعداد ارقام:
- با استفاده از ویژگی
Lengthرشته، تعداد کاراکترهای آن (که برابر با تعداد ارقام عدد است) را به دست میآوریم.
- با استفاده از ویژگی
- نمایش نتایج:
- عدد تبدیل شده به رشته و تعداد ارقام آن را نمایش میدهیم.
برنامه ماشین حساب ساده (بدون شرط و حلقه)
این برنامه دو عدد از کاربر میگیرد و جمع، تفریق، ضرب و تقسیم آنها را نمایش میدهد:
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();
}
}
توضیحات کد:
double: نوع داده برای اعداد اعشاری.Console.ReadLine(): دریافت ورودی از کاربر.Convert.ToDouble(): تبدیل متن وارد شده به عدد.- عملگرهای ریاضی (
+,-,*,/) برای محاسبه نتایج. 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();
}
}
توضیحات کد:
string userInput: متغیر برای ذخیره ورودی کاربر به صورت رشته.Console.ReadLine(): دریافت ورودی از کاربر به صورت رشته.Convert.ToDouble(): تبدیل رشته به عدد اعشاری (double).number * number: محاسبه مربع عدد با استفاده از عملگر ضرب.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();
}
}
توضیحات کد:
Convert.ToBoolean(): تبدیل رشته به مقدار بولی (true/false).- عبارت شرطی ساده (
? :):- اگر
booleanValueبرابرtrueباشد،numericValue = 1. - اگر
falseباشد،numericValue = 0.
- اگر
- نمایش نتیجه: چاپ عدد معادل (
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();
}
}
توضیحات کد:
Console.ReadKey().KeyChar:- یک کاراکتر از ورودی دریافت میکند (بدون نیاز به فشار دادن Enter)
- فقط اولین کاراکتر ورودی را میخواند
(int)userChar:- تبدیل صریح (Cast) کاراکتر به عدد
- این عدد برابر با کد ASCII کاراکتر است
- نمایش نتیجه:
- کاراکتر و معادل عددی آن نمایش داده میشود
تمرین 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();
}
}
توضیحات کد:
- دریافت عدد:
- با
Convert.ToInt32عدد را از رشته به عدد صحیح تبدیل میکنیم
- با
- عملگر % (باقیمانده تقسیم):
number % 2باقیمانده تقسیم عدد بر 2 را میدهد- اگر باقیمانده 0 شود، عدد زوج است
- اگر باقیمانده 1 شود، عدد فرد است
- شرط 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();
}
}
توضیحات کد:
- دریافت اعداد:
- دو عدد از کاربر دریافت میشود و در متغیرهای
number1وnumber2ذخیره میشوند
- دو عدد از کاربر دریافت میشود و در متغیرهای
- مقایسه با عملگرهای رابطهای:
>برای بررسی بزرگتر بودن<برای بررسی کوچکتر بودن==برای بررسی تساوی (که در اینجا به صورت ضمنی با else انجام شده)
- ساختار شرطی 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();
}
}
توضیحات کد:
- دریافت عدد:
- عدد را با
Convert.ToDoubleدریافت میکنیم تا هم اعداد صحیح و هم اعشاری کار کنند
- عدد را با
- شرایط بررسی:
number > 0: بررسی مثبت بودن عددnumber < 0: بررسی منفی بودن عددelse: حالت باقیمانده که همان صفر است
- پیامهای خروجی:
- برای هر حالت پیام مناسب نمایش داده میشود
تمرین 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();
}
}
توضیحات کد:
- دریافت نمره:
- با استفاده از
Convert.ToDoubleنمره را دریافت میکنیم تا هم اعداد صحیح و هم اعشاری قابل قبول باشند
- با استفاده از
- شرایط بررسی:
score >= 10 && score <= 20: بررسی قبولی (نمره 10 یا بیشتر)score >= 0 && score < 10: بررسی مردودی (نمره کمتر از 10)else: حالت نمره نامعتبر (خارج از محدوده 0-20)
- پیامهای خروجی:
- برای هر حالت پیام مناسب نمایش داده میشود
تمرین 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();
}
}
توضیحات کد:
- دریافت عدد:
- عدد را به صورت صحیح دریافت میکنیم (
int)
- عدد را به صورت صحیح دریافت میکنیم (
- شرایط بررسی:
number >= 100 && number <= 999: بررسی اعداد سه رقمی مثبتnumber <= -100 && number >= -999: بررسی اعداد سه رقمی منفیelse: حالتهای دیگر که سه رقمی نیستند
- ویژگیهای برنامه:
- هم اعداد مثبت و هم منفی را بررسی میکند
- برای اعداد اعشاری کار نمیکند (ورودی را به 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();
}
}
توضیحات کد:
- دریافت ورودی:
- با
Console.ReadKey().KeyCharفقط اولین حرف ورودی را میخوانیم - با
char.ToLowerحرف را به حالت کوچک تبدیل میکنیم تا بررسی حروف بزرگ و کوچک یکسان باشد
- با
- شرایط بررسی:
- بررسی حروف صدادار کوچک (a, e, i, o, u)
- بررسی اینکه آیا حرف در محدوده a-z قرار دارد (بیصدا)
- حالت دیگر برای کاراکترهای غیر الفبایی
- ویژگیهای برنامه:
- هم حروف بزرگ و هم کوچک را تشخیص میدهد
- فقط اولین حرف ورودی را بررسی میکند
- برای حروف غیر انگلیسی پیغام خطا میدهد
تمرین 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;
//
توضیحات کد:
- دریافت قیمت:
- قیمت کالا را به صورت عدد اعشاری دریافت میکنیم
- محاسبه تخفیف:
- اگر قیمت بیشتر از 10000 تومان باشد، 10% تخفیف اعمال میشود
- در غیر این صورت 5% تخفیف اعمال میشود
- محاسبه قیمت نهایی:
- قیمت اصلی منهای مقدار تخفیف
- نمایش نتایج:
- قیمت اصلی، مقدار تخفیف و قیمت نهایی نمایش داده میشود
تمرین 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();
}
}
توضیحات کد:
- دریافت اضلاع:
- سه عدد به عنوان طول اضلاع مثلث دریافت میشوند
- شرایط بررسی:
- اگر هر سه ضلع برابر باشند (
a == b && b == c): متساویالاضلاع - اگر حداقل دو ضلع برابر باشند (
a == b || a == c || b == c): متساویالساقین - در غیر این صورت: متفاوتالاضلاع
- اگر هر سه ضلع برابر باشند (
- نمایش نتیجه:
- پیام مناسب برای هر نوع مثلث نمایش داده میشود
تمرین 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 تا 12) از کاربر دریافت میشود
- ساختار switch-case:
- ماههای 12، 1، 2: زمستان
- ماههای 3، 4، 5: بهار
- ماههای 6، 7، 8: تابستان
- ماههای 9، 10، 11: پاییز
- حالت default برای ورودیهای نامعتبر
- نمایش نتیجه:
- برای ورودیهای معتبر، فصل مربوطه نمایش داده میشود
- برای ورودیهای نامعتبر پیغام خطا نمایش داده میشود
تمرین 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();
}
}
توضیحات کد:
- دریافت عدد:
- عدد از کاربر دریافت میشود
- بررسی سه رقمی بودن:
- بررسی میکند عدد بین 100 تا 999 باشد
- استخراج ارقام:
digit1 = number / 100: رقم صدگان (مثال: 123 / 100 = 1)digit2 = (number / 10) % 10: رقم دهگان (مثال: (123 / 10) % 10 = 12 % 10 = 2)digit3 = number % 10: رقم یکان (مثال: 123 % 10 = 3)
- ساخت عدد معکوس:
digit3 * 100 + digit2 * 10 + digit1(مثال: 3100 + 210 + 1 = 321)
- نمایش نتیجه:
- عدد معکوس شده یا پیغام خطا نمایش داده میشود
تمرین 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();
}
}
توضیحات کد:
-
- متغیر شمارنده:
number = 1: حلقه از عدد ۱ شروع میشود.
- شرط حلقه:
while (number <= 10): تا زمانی که عدد کوچکتر یا مساوی ۱۰ است، حلقه تکرار میشود.
- بدنه حلقه:
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();
}
}
توضیحات کد:
- دریافت ورودی:
- عدد
nاز کاربر دریافت میشود.
- عدد
- مقداردهی اولیه:
sum = 0: برای ذخیره مجموعcurrentNumber = 1: شمارنده حلقه
- حلقه while:
- تا زمانی که
currentNumberکوچکتر یا مساویnباشد:- مقدار
currentNumberبهsumاضافه میشود currentNumberیک واحد افزایش مییابد
- مقدار
- تا زمانی که
- نمایش نتیجه:
- مجموع نهایی محاسبه و نمایش داده میشود
تمرین 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();
}
}
توضیحات کد:
- متغیرها:
number: برای ذخیره عدد ورودیisValidInput: برای کنترل وضعیت اعتبارسنجی
- حلقه
while:- تا زمانی که
isValidInputبرابرfalseباشد ادامه مییابد - در هر تکرار:
- ورودی کاربر را میخواند (
Console.ReadLine()) - بررسی میکند آیا ورودی یک عدد صحیح مثبت است
- ورودی کاربر را میخواند (
- تا زمانی که
- اعتبارسنجی:
int.TryParse: بررسی میکند آیا ورودی قابل تبدیل به عدد صحیح استnumber > 0: بررسی مثبت بودن عدد
- پیامهای کاربر:
- در صورت ورودی نامعتبر، پیام خطا نمایش داده میشود
- در صورت ورودی معتبر، حلقه پایان مییابد
تمرین 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();
}
}
توضیحات کد:
- دریافت عدد:
- عدد از کاربر دریافت میشود (هم برای اعداد مثبت و هم منفی کار میکند)
- مقدار مطلق:
- با
Math.Absعدد را مثبت میکنیم تا با اعداد منفی هم کار کند
- با
- شرایط خاص:
- اگر عدد صفر باشد، مستقیماً 1 رقم در نظر گرفته میشود
- حلقه شمارش ارقام:
- در هر مرحله عدد را بر 10 تقسیم میکنیم (یک رقم از سمت راست حذف میشود)
- با هر تقسیم، شمارنده ارقام را افزایش میدهیم
- این کار تا زمانی ادامه مییابد که عدد به صفر برسد
- نمایش نتیجه:
- تعداد نهایی ارقام نمایش داده میشود
تمرین 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();
}
}
توضیحات کد:
- دریافت اعداد:
- دو عدد
aوbاز کاربر دریافت میشوند
- دو عدد
- مقداردهی اولیه:
product = 0: برای ذخیره نتیجه نهاییcounter = 0: برای شمارش تعداد جمعها
- حلقه while:
- عدد
aرا به مقدار مطلقbبار به خودش اضافه میکند Math.Abs(b): برای کار با اعداد منفی
- عدد
- تعیین علامت:
- اگر یکی از اعداد منفی باشد، حاصلضرب منفی میشود
- اگر هر دو مثبت یا هر دو منفی باشند، حاصلضرب مثبت است
- نمایش نتیجه:
- حاصلضرب نهایی نمایش داده میشود
تمرین 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 اول نیستند
- بررسی عدد اول:
- حلقه
whileتا جایی که مقسومعلیه به جذر عدد نرسیده ادامه مییابد - اگر عدد بر مقسومعلیهای بخشپذیر باشد، اول نیست
- در این صورت حلقه با
breakپایان مییابد
- حلقه
- نمایش نتیجه:
- بر اساس مقدار
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();
}
}
توضیحات کد:
- دریافت عدد:
- عدد از کاربر دریافت میشود (هم برای اعداد مثبت و هم منفی کار میکند)
- مقدار مطلق:
- با
Math.Absعدد را مثبت میکنیم تا با اعداد منفی کار کند
- با
- حلقه معکوسسازی:
- در هر تکرار:
- آخرین رقم را با
number % 10استخراج میکنیم - رقم را به عدد معکوس اضافه میکنیم
- عدد اصلی را بر 10 تقسیم میکنیم تا یک رقم از انتها حذف شود
- آخرین رقم را با
- در هر تکرار:
- اعمال علامت:
- اگر عدد اصلی منفی بود، علامت منفی به عدد معکوس اضافه میشود
- نمایش نتیجه:
- عدد معکوس شده نمایش داده میشود
تمرین 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();
}
}
توضیحات کد:
- دریافت عدد:
- عدد از کاربر دریافت میشود (هم برای اعداد مثبت و هم منفی کار میکند)
- محاسبه تعداد ارقام:
- با استفاده از حلقه
whileو تقسیم متوالی بر 10 - حالت خاص برای عدد صفر (1 رقم در نظر گرفته میشود)
- با استفاده از حلقه
- بررسی سهرقمی بودن:
- بررسی میکند آیا تعداد ارقام دقیقاً 3 است
- نمایش نتایج:
- تعداد ارقام و وضعیت سهرقمی بودن نمایش داده میشود
تمرین 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();
}
}
توضیحات کد:
- دریافت ورودی:
- عدد
nاز کاربر دریافت میشود - فاکتوریل فقط برای اعداد صحیح غیرمنفی تعریف شده است
- عدد
- مقداردهی اولیه:
factorial = 1: مقدار اولیه برای محاسبه فاکتوریلcounter = 1: شمارنده حلقه
- حلقه محاسبه:
- در هر تکرار مقدار
factorialدرcounterضرب میشود counterافزایش مییابد تا بهnبرسد
- در هر تکرار مقدار
- نوع داده:
- از
longاستفاده شده چون فاکتوریل اعداد بزرگ سریع رشد میکند
- از
- نمایش نتیجه:
- نتیجه نهایی محاسبه و نمایش داده میشود
تمرین 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();
}
}
توضیحات کد:
- تولید عدد تصادفی:
- با استفاده از کلاس
Randomعددی بین 1 تا 10 انتخاب میشود
- با استفاده از کلاس
- حلقه اصلی بازی:
- حلقه
whileبینهایت (while (true)) تا زمانی که کاربر عدد درست را حدس بزند ادامه مییابد - با هر حدس، تعداد تلاشها (
attempts) افزایش مییابد
- حلقه
- بررسی حدس کاربر:
- اگر حدس درست باشد: پیام تبریک و خروج از حلقه با
break - اگر حدس کوچکتر باشد: راهنمایی به کاربر
- اگر حدس بزرگتر باشد: راهنمایی به کاربر
- اگر حدس درست باشد: پیام تبریک و خروج از حلقه با
- نمایش نتیجه:
- تعداد تلاشهای کاربر و عدد صحیح نمایش داده میشود
استفاده از حلقه 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();
}
}
توضیحات کد:
- حلقه
do-while:- ابتدا یکبار دستورات اجرا میشوند (
do) - سپس شرط بررسی میشود (
while) - اگر شرط برقرار باشد (عدد <= 0)، حلقه تکرار میشود
- ابتدا یکبار دستورات اجرا میشوند (
- دریافت عدد:
- در هر تکرار از کاربر عدد دریافت میشود
- اگر عدد نامعتبر باشد (منفی یا صفر)، پیام خطا نمایش داده میشود
- شرط خروج:
- وقتی کاربر عدد مثبت وارد کند، حلقه پایان مییابد
- نمایش نتیجه:
- عدد مثبت نهایی نمایش داده میشود
تمرین 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();
}
}
توضیحات کد:
- رمز عبور صحیح:
- مقدار ثابت
correctPasswordبه عنوان رمز صحیح تعریف شده است
- مقدار ثابت
- حلقه
do-while:- ابتدا یکبار رمز را دریافت میکند (
do) - سپس شرط را بررسی میکند (
while) - تا زمانی که رمز نادرست باشد تکرار میشود
- ابتدا یکبار رمز را دریافت میکند (
- بررسی رمز:
- اگر رمز صحیح باشد،
isCorrectبرابرtrueمیشود - اگر رمز نادرست باشد، پیام خطا نمایش داده میشود
- اگر رمز صحیح باشد،
- پیام موفقیت:
- پس از وارد کردن رمز صحیح، پیام خوشآمدگویی نمایش داده میشود
تمرین 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();
}
}
توضیحات کد:
- تولید عدد تصادفی:
- با استفاده از کلاس
Randomعددی بین 1 تا 10 انتخاب میشود
- با استفاده از کلاس
- حلقه اصلی بازی:
- از
do-whileاستفاده میشود تا حداقل یکبار از کاربر عدد دریافت شود - در هر تکرار، شماره تلاش افزایش مییابد (
attempts++)
- از
- بررسی حدس کاربر:
- اگر حدس کوچکتر باشد، پیام راهنمایی نمایش داده میشود
- اگر حدس بزرگتر باشد، پیام راهنمایی نمایش داده میشود
- حلقه تا زمانی که کاربر عدد صحیح را حدس بزند ادامه مییابد
- پیام موفقیت:
- پس از حدس صحیح، تعداد تلاشها و عدد صحیح نمایش داده میشود
۱۰ تمرین برای آموزش حلقه 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();
}
}
توضیحات کد:
- مقداردهی اولیه حلقه:
int i = 1: شمارنده از 1 شروع میشود
- شرط ادامه حلقه:
i <= 10: تا زمانی که i کوچکتر یا مساوی 10 باشد ادامه مییابد
- گام حلقه:
i++: پس از هر تکرار، مقدار i یک واحد افزایش مییابد
- بدنه حلقه:
- در هر تکرار مقدار فعلی 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();
}
}
توضیحات کد:
- مقداردهی اولیه حلقه:
int i = 2: شمارنده از اولین عدد زوج (۲) شروع میشود
- شرط ادامه حلقه:
i <= 20: تا زمانی که i کوچکتر یا مساوی ۲۰ باشد ادامه مییابد
- گام حلقه:
i += 2: پس از هر تکرار، مقدار i دو واحد افزایش مییابد (پرش روی اعداد زوج)
- بدنه حلقه:
- در هر تکرار مقدار فعلی 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();
}
}
توضیحات کد:
- دریافت ورودی:
- عدد
nاز کاربر دریافت میشود
- عدد
- مقداردهی اولیه:
sum = 0: متغیر ذخیره مجموعi = 1: شمارنده حلقه از 1 شروع میشود
- حلقه for:
i <= n: تا زمانی که شمارنده کوچکتر یا مساوی n باشد- در هر تکرار مقدار
iبهsumاضافه میشود i++: شمارنده یک واحد افزایش مییابد
- نمایش نتیجه:
- مجموع نهایی محاسبه و نمایش داده میشود
تمرین 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();
}
}
توضیحات کد:
- دریافت ورودی:
- عدد
nاز کاربر دریافت میشود (فاکتوریل برای اعداد غیرمنفی تعریف شده است)
- عدد
- مقداردهی اولیه:
factorial = 1: مقدار اولیه برای محاسبه فاکتوریل- از
longاستفاده شده چون فاکتوریل اعداد بزرگ سریع رشد میکند
- حلقه for:
int i = 1: شمارنده از 1 شروع میشودi <= n: تا زمانی که شمارنده به n برسد ادامه مییابد- در هر تکرار مقدار
factorialدرiضرب میشود
- نمایش نتیجه:
- فاکتوریل محاسبه شده نمایش داده میشود
تمرین 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();
}
}
توضیحات کد:
- دریافت ورودی:
- عدد
nاز کاربر دریافت میشود
- عدد
- حلقه for:
int i = 1: شمارنده از 1 شروع میشودi <= 10: تا 10 ادامه مییابد (برای جدول ضرب 1 تا 10)- در هر تکرار حاصلضرب
nدرiمحاسبه و نمایش داده میشود
- نمایش نتیجه:
- هر سطر جدول ضرب به فرمت
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();
}
}
توضیحات کد:
- دریافت عدد:
- عدد از کاربر دریافت میشود (هم برای اعداد مثبت و هم منفی کار میکند)
- مقدار مطلق:
- با
Math.Absعدد را مثبت میکنیم تا با اعداد منفی هم کار کند
- با
- حلقه for برای شمارش:
- متغیر موقت
tempبرای نگهداری مقدار عدد استفاده میشود - در هر تکرار:
temp /= 10: یک رقم از سمت راست حذف میشودdigitCount++: شمارنده ارقام افزایش مییابد
- حلقه تا زمانی که
tempبزرگتر از صفر باشد ادامه مییابد
- متغیر موقت
- حالت خاص:
- اگر عدد صفر باشد، مستقیماً 1 رقم در نظر گرفته میشود
- نمایش نتیجه:
- تعداد ارقام محاسبه شده نمایش داده میشود
تمرین 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();
}
}
توضیحات کد:
- دریافت عدد:
- عدد از کاربر دریافت میشود (هم برای اعداد مثبت و هم منفی کار میکند)
- مقدار مطلق:
- با
Math.Absعدد را مثبت میکنیم تا با اعداد منفی کار کند
- با
- حلقه for برای معکوسسازی:
- بدون مقداردهی اولیه (
;اول) چون از متغیر موجود استفاده میکنیم - در هر تکرار:
number % 10: آخرین رقم را استخراج میکندreversedNumber * 10 + digit: رقم را به عدد معکوس اضافه میکندnumber /= 10: یک رقم از انتهای عدد حذف میشود
- بدون مقداردهی اولیه (
- اعمال علامت:
- اگر عدد اصلی منفی بود، علامت منفی به عدد معکوس اضافه میشود
- نمایش نتیجه:
- عدد معکوس شده نمایش داده میشود
تمرین 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();
}
}
توضیحات کد:
- دریافت ورودی:
- عدد
nکه تعداد سطرهای مثلث است از کاربر دریافت میشود
- عدد
- حلقه اصلی (سطرها):
for (int row = 1; row <= n; row++)برای کنترل تعداد سطرها
- حلقه فاصلهها:
for (int space = 1; space <= n - row; space++)- در هر سطر، تعداد فاصلهها کاهش مییابد تا مثلث شکل بگیرد
- حلقه ستارهها:
for (int star = 1; star <= 2 * row - 1; star++)- تعداد ستارهها در هر سطر برابر با
2*row-1است (1, 3, 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();
}
}
توضیحات کد:
- دریافت عدد:
- عدد از کاربر دریافت میشود
- مقداردهی اولیه:
isPrime = true: فرض میکنیم عدد اول است تا زمانی که خلافش ثابت شود
- بررسی اعداد خاص:
- اعداد کمتر از 2 اول نیستند (1 و اعداد منفی)
- حلقه for برای بررسی:
- از 2 شروع میکنیم تا جذر عدد
- اگر عدد بر هرکدام از این اعداد بخشپذیر باشد، اول نیست
- در صورت پیدا شدن مقسومعلیه، حلقه با
breakپایان مییابد
- نمایش نتیجه:
- بر اساس مقدار
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();
}
}
توضیحات کد:
- تولید عدد تصادفی:
- با
Random.Next(1, 101)عددی بین 1 تا 100 تولید میشود
- با
- حلقه for:
- حداکثر 10 بار تکرار میشود (
maxAttempts = 10) - در هر تکرار:
- حدس کاربر دریافت میشود
- با عدد تصادفی مقایسه میشود
- راهنمایی مناسب نمایش داده میشود
- حداکثر 10 بار تکرار میشود (
- بررسی حدس کاربر:
- اگر حدس درست باشد، پیام تبریک و خروج از حلقه
- اگر حدس کوچکتر باشد، پیام “عدد بزرگتر است”
- اگر حدس بزرگتر باشد، پیام “عدد کوچکتر است”
- پایان بازی:
- اگر کاربر در 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#