آموزش سی شارپ C# قسمت سوم

1396/9/28 محمد احمدی 15207

csharp Operator

با سلام خدمت شما دوستان و علاقه مندان به آموزش برنامه نویسی و مخصوصا آموزش سی شارپ . در جلسه قبل بصورت مفصل در مورد متغیرها در سی شارپ توضیح دادیم گفتیم که انواع مختلفی از متغیر ها وجود دارد و همچنین بسیاری از آن ها را نام بردیم و مثال زدیم. در این جلسه قصد داریم در مورد عملگرها و نحوه انجام عملیات ریاضی در سی شارپ صحبت کنیم !

لطفا اول یک پروژه جدید ایجاد کنید ( یا پروژه قبلی خود را باز کنید). حالا در فرم اصلی از پنل ابزار ToolBox دو تکست باکس (از همانجایی که یک دکمه یا همان Button را اضافه کردیم) و چهار دکمه اضافه کنید.

بیاد داشته باشید که عملکرد تکست باکس به این صورت است که یک متن ( مانند نام و مشخصات فردی یا یک شماره تلفن یا یک عدد معمولی و یا تاریخ و .... ) را از کاربر دریافت می کند. درواقع کاربر یک متن را در آن وارد میکند و سپس عملیات مورد نظر را انجام روی آن انجام میشود !

عملکرد Button یا دکمه هم به این صورت است که کاربر روی آن کلیک می کند, و سپس عملیاتی که روی دکمه تعریف شده اجرا می شود و همین طور عملکرد برچسب یا label نیز نمایش یک متن به کاربر می باشد. مثلا ما دو تکست باکس در برنامه قرار می دهیم و جلوی هرکدام یک label نبز قرار میدهیم و در Label اول کلمه "نام:" را می نویسیم و در label دوم نیز کلمه "نام خانوادگی:" و ...

حالا به فرم خود ( که قبلا دو تکست باکس و چهار دکمه اضافه کرده بودید ) دوتا label هم اضافه کنید.

ما علاوه بر پنل جعبه ابزار و سولوشن اکسپلورر , یک پنل مهم دیگه هم به اسم "Properties" داریم. پنل properties بطور معمول سمت راست و پایین نرم افزار ویژوال استادیو قرار دارد. از پنل properties میتوانیم به تنظیمات یک شیء مانند فرم یا text box یا button یا label یا بقیه مواردی که بعدا با آنها آشنا میشوبد دسترسی داشته باشیم و آن تنظیمات را به سلیقه خود تغییر دهیم. مثلا روی دکمه هایی که اضافه کردیم یک بار کلیک کنید. میبینید که آیتم هایی که در پنل وجود دارند تغییر میکنند. اگه در همان لیست properties به سمت پایین اسکرول کنید، میبینید که یک آیتم به نام Textهست که میتوانید آن را تغییر دهید و هر متنی را که مایلید بجای آن قرار دهید. مثلا ما برای یکی از دکمه ها علامت جمع و برای بقیه علامت تفریق و تقسیم و منفی رو میذاریم. در label ها هم "عدد اول : " و "عدد دوم : " را مینویسیم و برای تکست باکس هم متن خاصی ( فعلا و در این پروژه ) نیاز نیست!

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

Calc Form

عکس 1 - فرم ماشین حساب ساده !

خب ما یک مشخصه مهم در مورد همه اشیاء داریم که Name است و معمولا جایگاه سومین آیتم در پنل Properties را دارد! این نام برای هر شیء منحصر به فرد است و با استفاده از این نام ما میتوانیم به مشخصات و خصوصیات آن شیء دسترسی پیدا کنیم. قوانین نام گذاری اشیاء دقیقا مانند قوانین نام گذاری متغیرها است که در جلسه قبل توضیح دادیم.

حالا برای اینکه خوانایی برنامه بیشتر شود، نام هر شیء را تغییر دهید و از نام های مناسب استفاده کنید. مثلا textbox1 را به txtNumber1 و textbox2 را به txtNumber2 و بقیه دکمه ها را هم به نام های مناسب تغییر دهید ( میتوانید تغییر ندهید ولی پیشنهاد میکنم که تغییر دهید).

بعدازاینکه نام دکمه ها را تغییردادیم باید برای هر کدام دستورات مربوط به خود را بنویسیم.همانطور که میدانید دکمه یک وسیله ساده برای دریافت دستور از کاربر است. مثلا در تلگرام وقتی دکمه Send  رافشار میدهید، متن در تکست باکس کپی و ارسال می شود و درنهایت متن پاک میشود. طریقه کار این دکمه ها به این صورت است که وقتی کاربر روی آنها کلیک کرد، یک قطعه کد را اجرا میکنند و کاری که برنامه نویس باید انجام دهد این است که کد های مورد نظر خود را در آن قطعه مینویسد. ولی این در صورتی است که ما آن قطعه کد را تعریف کنیم و به برنامه شناسایی کنیم. اینکار هم خیلی ساده است. فقط کافیه در قسمت دیزاین یا طراحی فرم، روی دکمه ای که مایلید دوبار کلیک کنید. بعد یک صفحه جدید باز میشود و همه چی آماده است که ما کدهای خود را بنویسیم .خیلی وارد مقدمات شدیم پس بیشتر از این ادامه نمیدهم.

خب با توضیحاتی که بالا دادم روی دکمه جمع دوبار کلیک کنید. احتمالا تا الان متوجه شدید که قصد داریم برنامه ماشین حساب ساده بسازیم. پس نیاز داریم که دو عدد را از کاربر دریافت کنیم. از آنجایی که متن در تکست باکس بصورت رشته یا همان string است، نیاز داریم که دو متغیر از نوع int تعریف کنیم و رشته ی عددی که کاربر وارد کرده را به عدد از نوع int تبدیل کنیم. پس سه متغیر به نام های num1 و num2 و result تعریف میکنیم و مقدار آنها ر برابر متن های داخل تکست باکس قرار می دهیم.

اگه بخاهیم بصورت مستقیم مقادیر داخل تکست باکس را به متغیر ها نسبت دهیم،  با خطا مواجه میشویم.  پس ابتدا باید مقادیر را با استفاده از دستور Convert.ToInt32(); به عدد تبدیل کنیم و بعد به متغیرها نسبت دهیم. ( بعدا بیشتر با کلاس Convert آشنا میشویم )

پس در ابتدا باید این کدی را بنویسیم :

int num1, num2 , result;

num1 = Convert.ToInt32(txtNumber1.Text);

num2 = Convert.ToInt32(txtNumber2.Text);

 

حالا که دو عدد را از کاربر گرفتیم و بعد از تبدیل در متغیرها قرار دادیم، آن ها را با هم جمع کنیم و نتیجه را در متغیر result بنویسیم.

 

result = num1 + num2;

تا اینجا ما عملیات جمع را به راحتی انجام دادیم. حالا کافیه آن اعداد را با استفاده از مسیج باکس به کاربر نشان دهیم. در جلسات قبل یک مقداری با messsage Box آشنا شدیم .

گفتیم که متد Show از کلاس MessageBox وظیفه نمایش یک پیام به کاربر را دارد. از آنجایی که متد Show یک رشته از نوع string را دریافت میکند، باید متغیر result را با اضافه کردن یک .ToString() به آخرش به رشته تبدیل کنیم ( قبلا گفتم و باز هم تاکید میکنم که نقطه قبل از ToString و پرانتز بعد از آن الزامی است و اگر گذاشته نشود خطا دریافت میکنیم)

پس در نهایت باید این کد را نوشته باشیم :

MessageBox.Show(result.ToString());

پروژه را اجرا کنید و دوعدددر تکست باکس اول و دوم وارد کنید.مثلا عدد 2 و 3. حالا روی دکمه جمع کلیک کنید. طبیعتا باید عدد 5 را به عنوان نتیجه نشان دهیم. برای اینکه ظاهر نمایش نتیجه به کاربر زیباتر شود، آن خط از دستورات که مربوط به نمایش بود را یک تغییر کوچیک می دهیم. مثلا می خواهیم یک عنوان برای مسیج باکس انتخاب کنیم.روش کار به این صورت است:

کافیه بجای اینکه بنویسیم

MessageBox.Show(result.ToString());

از دستور

MessageBox.Show(result.ToString(),"Calc") ;

 استفاده می کنیم . نتیجه را خودتون بعد از اجرا میبینید .

به جای آن متن calc هر متن دیگری که بخواهید میتوانید بنویسید. مثلا نام خود یا اسم شرکت و یا هر متن دیگری !

روند نوشتن بقیه دستورات برای دکمه های تفریق و تقسیم و ضرب هم دقیقا به همین شکل است. فقط بجای اینکه از علامت جمع + در دستور result = num1 + num2; استفاده کنیم ازعلامت تفریق یا تقسیم و یا ضرب استفاده میکنیم.

دقت داشته باشید که برای ضرب باید از * و برای تقسیم باید از / استفاده کنید.

در نهایت کدهای نوشته شده به صورت زیر می شود:

privatevoid btnSum_Click(object sender, EventArgs e)

{

int num1, num2, result = 0;


    num1 = Convert.ToInt32(txtNumber1.Text);

    num2 = Convert.ToInt32(txtNumber2.Text);


    result = num1 + num2;


MessageBox.Show(result.ToString(), "Calc");

}


privatevoid btnSub_Click(object sender, EventArgs e)

{

int num1, num2, result = 0;


    num1 = Convert.ToInt32(txtNumber1.Text);

    num2 = Convert.ToInt32(txtNumber2.Text);


result = num1 - num2;


MessageBox.Show(result.ToString(), "Calc");

}


privatevoid btnDiv_Click(object sender, EventArgs e)

{

int num1, num2, result = 0;


    num1 = Convert.ToInt32(txtNumber1.Text);

    num2 = Convert.ToInt32(txtNumber2.Text);


result = num1 / num2;


MessageBox.Show(result.ToString(), "Calc");

}


privatevoid btnMul_Click(object sender, EventArgs e)

{

int num1, num2, result = 0;


    num1 = Convert.ToInt32(txtNumber1.Text);

    num2 = Convert.ToInt32(txtNumber2.Text);


result = num1 * num2;


MessageBox.Show(result.ToString(), "Calc");

}

خب تبریک میگم . ما الان یک برنامه ماشین حساب ساده را ساختیم.

برای اینکه دستورات پیشرفته تری مانند توان را به برنامه اضافه کنیم،  باید مقدار result را برابر با Math.Pow(num1, num2); قرار دهیم :

result = Math.Pow(num1, num2);

تابع Pow  کلاس Math عملیات توان را روی اعداد انجام میدهد.

یک نکته خیلی مهم این هست که مقادیر ورودی و خروجی تابع Pow از نوع double هستند ( که اگه به جلسه قبل مراجعه کنید متوجه میشوید که یک نوع عددی هست که اعشار را هم قبول میکند ) و در نتیجه باید متغیرهای num1 , num2 , result را از نوع double تعریف کنیم.

بعد از اینکار باید دستور تبدیل رشته به عدد رو به شکل Convert.ToDouble(); تغییر دهید.

کانال تلگرام