شروع کدنویسی
انواع داده
- داده: ورودیهایی که به کامپیوتر داده میشوند و پس از پردازش به خروجی تبدیل میشوند.
- انواع داده:
- دادههای اولیه: از پیش تعریفشده در دات نت (عددی و غیرعددی).
- دادههای تعریفشده توسط برنامهنویس: مانند آرایهها و شمارندهها.
- دستهبندی دادهها:
- دادههای مقداری: ذخیره در پشته.
- دادههای مرجع: ذخیره در هیپ.
انواع دادههای عددی
نوع داده | محدوده | اندازه (بایت) |
---|---|---|
byte |
0 تا 255 | 1 |
sbyte |
-128 تا 127 | 1 |
short |
-32768 تا 32767 | 2 |
ushort |
0 تا 65535 | 2 |
int |
-2147483648 تا 2147483647 | 4 |
uint |
0 تا 4294967295 | 4 |
long |
-9223372036854775808 تا 9223372036854775807 | 8 |
ulong |
0 تا 18446744073709551615 | 8 |
float |
±1.5 x 10^-45 تا ±3.4 x 10^38 | 4 |
double |
±5.0 x 10^-324 تا ±1.7 x 10^308 | 8 |
انواع دادههای غیرعددی
نوع داده | مثال | اندازه |
---|---|---|
char |
'A' | 2 بایت |
string |
"Erfan Zidehsaraei" | متغیر |
DateTime |
"5/31/2012 1:43:18 AM" | 8 بایت |
bool |
true یا false |
1 بایت |
object |
شامل تمام انواع دادهها | نامحدود |
متغیرها
- متغیر: مکانی در حافظه برای نگهداری دادهها.
- تعریف متغیر:
csharp نوع_داده نام_متغیر;
- قوانین نامگذاری:
- ترکیبی از حروف، ارقام و زیرخط.
- اولین کاراکتر نباید رقم باشد.
- نباید از کلمات کلیدی استفاده شود.
- طول نام بین 1 تا 511 کاراکتر.
- استفاده از کاراکترهای خاص مانند
*
,!
,$
,?
,/
,\
,<
,>
, و فاصله مجاز نیست.
مقداردهی به متغیرها
- روشهای مقداردهی:
- هنگام تعریف:
csharp char x = 'a';
- پس از تعریف:
csharp string str; str = "Bahar";
- از طریق ورودی کاربر:
csharp string str = textbox1.Text;
حوزه دستیابی به متغیرها
- حوزه (Scope): فضای داخل یک بلوک
{}
که در آن متغیر تعریف شده است. - قوانین:
- متغیر فقط در همان بلوک و زیربلوکها قابل دسترسی است.
- میتوان از دو متغیر با نام یکسان در بلوکهای مختلف استفاده کرد.
تبدیل نوع
- تبدیل ضمنی (Implicit): بدون دخالت برنامهنویس.
csharp Single a = 5; Double b = 14.5; Double s = a + b;
- تبدیل صریح (Explicit): با استفاده از امکانات زبان.
- استفاده از
Convert
:csharp string z = "1234"; int y = System.Convert.ToInt32(z);
- استفاده از
ToString
:csharp Single a = 664000; string str = a.ToString();
- استفاده از
Parse
:csharp string str = "123.5"; double x = double.Parse(str);
- تبدیل آگاهانه:
csharp Single a = 14; double b = 12.5; a = (Single)b;
عملگرها
- انواع عملگرها:
- محاسباتی:
+
,-
,*
,/
,%
,++
,--
. - رابطهای:
>
,<
,>=
,<=
,==
,!=
. - منطقی:
&&
,||
,!
. - ترکیبی:
+=
,-=
,*=
,/=
,%=
. - بیتی:
&
,|
,^
,~
,<<
,>>
.
اولویت اجرای عملگرها
- ترتیب اولویت:
- پرانتز
()
. - عملگرهای یکانی (
++
,--
,!
). - عملگرهای ضرب و تقسیم (
*
,/
,%
). - عملگرهای جمع و تفریق (
+
,-
). - عملگرهای رابطهای (
>
,<
,>=
,<=
). - عملگرهای منطقی (
&&
,||
).
خواص و رویدادهای کنترل TextBox
- خواص:
Text
: متن داخل TextBox.MaxLength
: حداکثر طول متن.Multiline
: امکان نوشتن چند خطی.ReadOnly
: غیرقابل ویرایش بودن متن.- رویدادها:
TextChanged
: هنگام تغییر متن.Enter
: هنگام انتخاب کنترل.Leave
: هنگام ترک کنترل.
مثالها
- نمایش متن در دو TextBox:
csharp private void textBox1_TextChanged(object sender, EventArgs e) { textBox2.Text = textBox1.Text.ToUpper(); }
- محاسبه مساحت مستطیل:
csharp private void button1_Click(object sender, EventArgs e) { float a = Convert.ToSingle(textBox1.Text); float b = Convert.ToSingle(textBox3.Text); textBox2.Text = Convert.ToString(a * b); }
پاسخهای سوالات
۱. دستورات شرطی if
و else
در C# چگونه کار میکنند؟
- پاسخ:
دستورif
برای اجرای یک بلوک کد در صورتی که شرط دادهشده درست (true
) باشد استفاده میشود. اگر شرط نادرست (false
) باشد، بلوک کد داخلif
اجرا نمیشود و در صورت وجودelse
، بلوک کد داخلelse
اجرا میشود.
مثال:csharp if (age > 18) { Console.WriteLine("بزرگسال"); } else { Console.WriteLine("نوجوان"); }
۲. چگونه میتوان از دستور if
تودرتو برای بررسی چند شرط استفاده کرد؟
- پاسخ:
با استفاده ازelse if
میتوان چند شرط را به صورت تودرتو بررسی کرد. اگر شرط اول درست نباشد، شرط دوم بررسی میشود و به همین ترتیب ادامه مییابد.
مثال:csharp if (score >= 90) { Console.WriteLine("نمره A"); } else if (score >= 80) { Console.WriteLine("نمره B"); } else if (score >= 70) { Console.WriteLine("نمره C"); } else { Console.WriteLine("نمره D"); }
۳. کادر پیام (MessageBox
) در C# چه کاربردی دارد و چگونه استفاده میشود؟
- پاسخ:
MessageBox
برای نمایش پیامها یا دریافت پاسخ از کاربر استفاده میشود. با استفاده از متدShow
میتوان پیام، عنوان، دکمهها و آیکون را تنظیم کرد.
مثال:csharp MessageBox.Show("آیا مطمئن هستید؟", "تأیید", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
۴. چگونه میتوان یک برنامه ساده برای محاسبه مالیات و حقوق خالص نوشت؟
- پاسخ:
با استفاده از دستورif
میتوان مالیات را بر اساس حقوق محاسبه کرد.
مثال:csharp double salary = 12000000; double tax; if (salary < 10000000) { tax = salary * 0.10; } else { tax = salary * 0.05; } double netSalary = salary - tax; Console.WriteLine("حقوق خالص: " + netSalary);
۵. کنترلهای نگهدارنده (Containers
) در C# چه کاربردی دارند و انواع آنها چیست؟
- پاسخ:
کنترلهای نگهدارنده برای گروهبندی و سازماندهی کنترلها استفاده میشوند. انواع آنها شاملGroupBox
,Panel
,TabControl
, وTableLayoutPanel
هستند.
مثال: GroupBox
: برای گروهبندی کنترلها با عنوان.Panel
: برای گروهبندی کنترلها بدون عنوان.
۶. تفاوت بین کنترلهای CheckBox
و RadioButton
در C# چیست؟
- پاسخ:
CheckBox
: برای انتخاب چند گزینه از چند گزینه استفاده میشود.RadioButton
: برای انتخاب یک گزینه از چند گزینه استفاده میشود.
مثال:CheckBox
: انتخاب علاقهمندیها (مثلاً ورزش، موسیقی).RadioButton
: انتخاب جنسیت (مثلاً مرد، زن).
۷. دستور شرطی switch
در C# چگونه کار میکند و چه مزایایی دارد؟
- پاسخ:
switch
برای بررسی مقادیر مختلف یک متغیر استفاده میشود. اگر مقدار متغیر با یکی ازcase
ها مطابقت داشته باشد، بلوک کد مربوطه اجرا میشود.
مثال:csharp int day = 3; switch (day) { case 1: Console.WriteLine("شنبه"); break; case 2: Console.WriteLine("یکشنبه"); break; default: Console.WriteLine("روز نامعتبر"); break; }
۸. چگونه میتوان یک برنامه ساده برای نمایش نام روزهای هفته با استفاده از switch
نوشت؟
- پاسخ:
با استفاده ازswitch
میتوان عددی بین 1 تا 7 را به نام روزهای هفته تبدیل کرد.
مثال:csharp int day = Convert.ToInt32(textBox1.Text); switch (day) { case 1: MessageBox.Show("شنبه"); break; case 2: MessageBox.Show("یکشنبه"); break; // سایر روزها default: MessageBox.Show("عدد خارج از محدوده"); break; }
۹. چگونه میتوان یک فرم جدید به پروژه در Visual Studio اضافه کرد؟
- پاسخ:
- در Solution Explorer، راستکلیک روی پروژه.
- انتخاب
Add
>Windows Form
. - نامگذاری فرم جدید و کلیک
Add
.
۱۰. ویژگی Checked
در کنترلهای CheckBox
و RadioButton
چه کاربردی دارد؟
- پاسخ:
ویژگیChecked
نشاندهنده وضعیت انتخاب کنترل است. اگرtrue
باشد، کنترل انتخاب شده است و اگرfalse
باشد، انتخاب نشده است.
مثال:csharp if (checkBox1.Checked) { Console.WriteLine("CheckBox انتخاب شده است"); }
۱۱. چگونه میتوان از کادر پیام برای دریافت پاسخ از کاربر استفاده کرد؟
- پاسخ:
با استفاده ازMessageBox.Show
و تنظیم دکمهها میتوان پاسخ کاربر را دریافت کرد.
مثال:csharp DialogResult result = MessageBox.Show("آیا مطمئن هستید؟", "تأیید", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { Console.WriteLine("کاربر Yes را انتخاب کرد"); }
۱۲. چگونه میتوان یک برنامه ساده برای ورود کاربر با نام کاربری و رمز عبور نوشت؟
- پاسخ:
با استفاده ازif
میتوان نام کاربری و رمز عبور را بررسی کرد.
مثال:csharp string username = "admin"; string password = "1234"; if (username == textBox1.Text && password == textBox2.Text) { MessageBox.Show("ورود موفق"); } else { MessageBox.Show("نام کاربری یا رمز عبور اشتباه است"); }
۱۳. چگونه میتوان از کنترل GroupBox
برای گروهبندی کنترلها استفاده کرد؟
- پاسخ:
با قرار دادن کنترلها داخلGroupBox
میتوان آنها را گروهبندی کرد.
مثال:csharp groupBox1.Controls.Add(radioButton1); groupBox1.Controls.Add(radioButton2);
۱۴. چگونه میتوان از دستور switch
برای بررسی مقادیر مختلف یک متغیر استفاده کرد؟
- پاسخ:
با استفاده ازswitch
میتوان مقادیر مختلف یک متغیر را بررسی کرد.
مثال:csharp int number = 2; switch (number) { case 1: Console.WriteLine("یک"); break; case 2: Console.WriteLine("دو"); break; default: Console.WriteLine("عدد نامعتبر"); break; }
۱۵. چگونه میتوان یک برنامه ساده برای تغییر رنگ متن و زمینه با استفاده از کنترلهای CheckBox
و RadioButton
نوشت؟
- پاسخ:
با استفاده از رویدادCheckedChanged
میتوان رنگ متن و زمینه را تغییر داد.
مثال:csharp private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (checkBox1.Checked) { textBox1.BackColor = Color.Red; } else { textBox1.BackColor = Color.White; } }