تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 2 از 7 اولاول 123456 ... آخرآخر
نمايش نتايج 11 به 20 از 62

نام تاپيک: آموزش C# از ابتدا تا انتها

  1. #11
    کاربر فعال انجمن طراحی صفحات وب kian98's Avatar
    تاريخ عضويت
    Jan 2014
    محل سكونت
    در لباس هایم
    پست ها
    1,845

    پيش فرض

    بخش یازدهم


    • جمع و تفریق

    با استفاده از تعریف متغیرهایی که در جلسات پیش فراگرفتید، ابتدا عملیات جمع ریاضی را در سی‌شارپ انجام خواهیم داد و سپس نحوه تفریق، ضرب و تقسیم را فرا خواهید گرفت.
    ابتدا یک پروژه جدید از نوع Windows Application بسازید. با استفاده از ToolBox یک button اضافه کرده و propertyهای زیر را اعمال کنید:
    Name: btnAdd
    Size: 100, 30
    Text: Integer – Add
    بر روی button-ای که اضافه کرده‌اید، Double-Click کرده تا وارد بخش کدنویسی مربوط به این button شوید. با توجه به کدهای زیر، سه متغیر از نوع int تعریف می‌کنیم:
    int firstNumber;
    int secondNumber;
    int integerAnswer;
    با توجه به متغیرهای بالا، احتمالاً متوجه شده‌اید که قرار است دو عدد در دو متغیر firstNumber و secondNumber اضافه کنیم و نتیجه جمع را در متغیر integerAnswer ذخیره کنیم.
    کدهای شما باید به‌شکل زیر شده باشد:


    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
    در قدم بعدی، می‌بایست در دو متغیرهای firstNumber و secondNumber عددی را ذخیره کنیم. پس بدون آنکه لازم باشد برای شما کدها را بنویسم، خودتان عدد ۱۰ را در متغیر اول و عدد ۳۲ را در متغیر دوم اضافه کنید. (عدد‌ها دلخواه هستند!)
    کدهای شما به‌شکل زیر خواهد بود:
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]


    خوب؛ توسط شماره‌هایی که در دو متغیر ذخیره شده‌اند، می‌خواهیم که آن‌دو با یکدیگر جمع شوند و پاسخ آن‌ها را در متغیر integerAnswer ذخیره کنیم. خوشبختانه زبان سی‌شارپ همانند بسیار از زبان‌های دیگر، برای جمع اعداد از علامت جمع ‘+’ استفاده می‌کنیم. برای این‌کار، خط‌کد زیر را اضافه کنید:
    integerAnswer = firstNumber + secondNumber;
    و می‌بایست که کد شما اینطور شده باشد:


    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]


    برای اینکه از کارکرد صحیح کدتان مطمئن شوید، با استفاده از یک MessageBox، حاصل را به‌نمایش در‌می‌آوریم:
    MessageBox.Show(integerAnswer.ToString());
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]


    کد خودتان را اجرا کنید:


    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]


    شما برای جمع اعداد، هیچ لزومی برای استفاده از متغیر نیست. شما می‌توانید یک متغیر را با یک عدد، دو عدد با هم و یا از چند متغیر با هم استفاده کنید.
    برای اینکه حجم آموزش ما بالاتر نرود و همچنین این مطلب مُمِل نباشد، لزومی در توضیح تک‌تک عملیات ریاضی نمی‌بینم و فقط این را می‌بایست بدانید که برای تفریق از علامت ‘-’ استفاده کنید؛ برای ضرب از ‘*’ استفاده کنید؛ و برای تقسیم از ‘/’ استفاده می‌کنیم.
    نکته‌ی دیگری که می‌بایست در نظر داشته باشید، ترتیب عملیات ریاضی است. در ریاضی حق تقدم عملیات ابتدا با ضرب و تقسیم، پس از آن جمع و تفریق است. پس هنگامی که کدهای خود را می‌نویسید حتماً به این مورد دقت بفرمایید …
    تمرین: نتیجه عملیات ریاضی زیر را با استفاده از سی‌شارپ (در MessageBox یا هر شیء دیگر) مشاهده و یادداشت کنید و نتیجه حاصل شده را با استفاده از نکته فوق مقایسه کنید:
    A) ۲۳*۲۴/۲
    B) ۲۳*(۲۴/۲)
    C) ۲۳*۲/۲+۴
    D) ۲۳*۲/(۲+۴)

  2. این کاربر از kian98 بخاطر این مطلب مفید تشکر کرده است


  3. #12
    کاربر فعال انجمن طراحی صفحات وب kian98's Avatar
    تاريخ عضويت
    Jan 2014
    محل سكونت
    در لباس هایم
    پست ها
    1,845

    پيش فرض

    بخش دوازدهم


    • نحوه دریافت عدد از Text Box و ذخیره آن در متغیر

    ذخیره محتوای داخل یک Text Box در یک متغیر String به‌راحتی امکان‌پذیر بود. فرض کنید که یک Text Box با نام txtBox1 و یک متغیر از نوع String با نام strText داشته باشیم. برای ذخیره محتوای داخل Text Box در متغیر کد آن بدین شکل بود:
    strText = txtBox1.Text;
    اما در رابطه با عدد چطور؟ اولاً یک شماره هم می‌تواند عدد باشد، هم می‌تواند یک متن. مثلاً داخل جعبه متن می‌توانید بنویسید ۲۳ و در در داخل متغیر اینگونه جمع خواهد شد:
    strText = “۲۳”;
    اما اینگونه ذخیره عدد بدرد ما نخواهد خورد! زیرا در عملیات ریاضی جمع دو عدد که به شکل string باشند امکان‌پذیر نیست و باید دو عدد از نوع int، float یا … باشد.
    پس ابتدا برای شروع یک پروژه جدید از نوع Windows Application بسازید. یک button و یک Text Box قرار دهید و Property های Text Box به شکل ذیل باشد:
    Name: tbFirstName
    Size: 50, 20
    Location: 40, 30
    Text: 10
    و Property های button به شکل زیر باشد:
    Name: btnAnswer
    Size: 75, 25
    Location: 90, 90
    Text: Answer
    شکل فرم شما اینطور خواهد بود:


    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]


    کاری که می‌خواهیم انجام دهیم این است که عدد ۱۰ را به شکل int دریافت کنیم و در یک متغیر از نوع int ذخیره کنیم. چون قصد داریم این اتفاقات با کلیک بر روی button انجام شوند، پس دوبار بر روی Button کلیک کنید و وارد بخش کدنویسی شوید. دو متغیر زیر را تعریف کنید:
    int firstTextBoxNumber;
    int answer;
    همانند تصویر زیر:


    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]


    برای اینکه محتوای وارد شده در TextBox را دریافت کنیم، کد زیر را مثل همیشه وارد کنید:
    firstTextBoxNumber = tbFirstNumber.Text;
    این کد می‌گوید: یک Text Box با نام tbFirstNumber را پیدا کن، وارد property با نام Text آن شو، وقتی که به Text آن دسترسی پیدا کردی، محتوای آن را وارد متغیر firstTextBoxNumber کن.
    برای نمایش عدد وارد شده در Text Box در یک Message Box، کد زیر را وارد کنید:
    MessageBox.Show(firstTextBoxNumber.ToString());
    کدتان را اجرا کنید … سی‌شارپ به شما اجازه اجرا نخواهد داد و خطای زیر را خواهید دید:


    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]


    اگر متوجه شده باشید، این خطا می‌گوید که شما نمی‌توانید یک مقدار string را به یک مقدار int تبدیل کنید! اگر بخاطر داشته باشید ما قبلاً گفتیم که مقداری که وارد یک Text Box می‌شود، هرطور آن را وارد کنید (چه عدد خالی، چه متن خالی و چه مختلط) آخرسر یک مقدار String خواهد بود و سی‌شارپ این قابلیت را ندارد که یک مقدار string را به int تبدیل کند.
    راه حل این مشکل، استفاده از یک شیء به نام Parse است. خدا را شکر این شیء، هیچ چیز عجیبی نیست و هیچ سختی‌ای جز نوشتن کلمه Parse برای برنامه‌نویس ندارد! اکنون چون ما می‌خواهیم که از یک مقدار خاص از هر نوعی، به یک نوع معلومی (در اینجا می‌خواهیم به int) تبدیل کنیم، ما باید از int.Parse استفاده کنیم. پس کدتان را به‌شکل زیر تغییر دهید:
    firstTextBoxNumber = int.Parse(tbFirstNumber.Text);
    کدتان را اجرا کنید و شاهد نتیجه درست آن باشید!
    این نکته را دقت کنید که حتی می‌توانید یک string مستقیم که حاوی عدد است را به int تبدیل کنید؛ مثلاً به کد زیر دقت کنید:
    int aRandomNumber;
    aRandomNumber = int.Parse(“۱۰”);
    این کد بدین شکل عمل می‌کند که شماره ۱۰ از نوع string را دریافت می‌کند و به عدد ۱۰ تبدیل می‌کند.
    یک Text Box دیگر اضافه کنید و Property های آن را به‌شکل زیر تنظیم کنید:
    Name: tbSecondNumber
    Size: 50, 20
    Location: 165, 35
    Text: 5
    فرم شما بدیل شکل خواهد بود:


    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]


    مجدداً با دابل-کلیک بر روی button، وارد بخش کدنویسی شوید. یک متغیر دیگر از نوع int با نام secondTextBoxNumber تعریف کنید. برای ذخیره سازی عدد از Text Box دوم، کد زیر را بنویسید:
    secondTextBoxNumber = int.Parse(tbSecondNumber.Text);
    اکنون بیایید با هم جمع دو متغیری که عددهای اول و دوم را از Text Box های اول و دوم را دریافت می‌کنند در متغیر answer ذخیره کنیم:
    answer = firstTextBoxNumber + secondTextBoxNumber;
    با استفاده از یک MessageBox، مقدار answer را نمایش می‌دهیم:
    MessageBox.Show(answer.ToString());
    تمامی کد‌ها باید به شکل زیر نوشته شده‌باشند:


    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]


    نرم‌افزار خود را اجرا کنید؛ شما باید جمع دو عدد وارد شده را در یک Message Box مشاهده کنید:


    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]


    تمرین‌های زیر را سعی کنید انجام دهید تا در جلسه بعد که شروع یک پروژه جدی (ماشین‌حساب) خواهد بود، آماده باشید:
    تمرین: سعی کنید Text Box های دیگری را تعریف کرده و با استفاده از آن‌ها، عملیات حسابی دیگری همانند تفریق، ضرب، تقسیم و مخلوطی از آن‌ها را با هم انجام دهید

  4. این کاربر از kian98 بخاطر این مطلب مفید تشکر کرده است


  5. #13
    کاربر فعال انجمن طراحی صفحات وب kian98's Avatar
    تاريخ عضويت
    Jan 2014
    محل سكونت
    در لباس هایم
    پست ها
    1,845

    پيش فرض

    بخش سیزدهم


    • طراحی ظاهری و شروع

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


    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]


    همانطور که در تصویر فوق مشاهده می‌کنید، شما یک Text Boxجهت نمایش اعداد و ارقام (هنگام نوشتن و دریافت نتیجه)، button هایی برای نمایش اعداد از ۰ تا ۹، یک ممیز (point) که در اعداد انگلیسی به‌صورت نقطه می‌باشد و دو button برای جمع و مساوی را اضافه خواهید کرد.
    خوب، اولین کار باید پروژه‌ی خود را شروع کنید. از منوی File، وارد بخش New Project شوید و پروژه‌ی خود را به‌صورت Windows Application بسازید. برای Form ایجاد شده، Property های زیر را تنظیم کنید:
    Size: 440, 487
    Text: Calculator
    برای اینکه به فرم خود کمی رنگ اضافه کرده باشیم و آن را از حالت پیشفرض خارج کنیم، شما باید Property ای با نام BackColor را تغییر دهید. به تصویر زیر دقت کنید:


    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]


    من رنگ مورد نظر خودم را انتخاب کرده‌ام؛ شما می‌توانید رنگ دلخواه و سازگار با سلیقه خودتان را انتخاب کنید، پس راحت باشید!
    اکنون، یک Text Box اضافه کنید و تنظیمات زیر را بر روی آن اعمال کنید:
    Name: txtDisplay
    Location: 66, 52
    Size: 200, 26
    TextAlign: Right
    الان وقت اضافه کردن button ها که اعداد ۰ تا ۹ را برای شما نمایش دهند. شما برای اینکار به ۱۰ button نیاز خواهید داشت. اولین button را اضافه کنید و تنظیمات زیر را برای button مشخص شده اعمال کنید:
    Name: btnZero
    Font: Microsoft Sans Serif, Bold, 12
    Location: 49, 40
    Text: 0
    این button برای نمایش عدد ۰ بود. Button بعدی را جهت نمایش عدد ۱ اضافه کنید و تنظیمات زیر را بر روی آن اعمال کنید:
    Name: btnOne
    Font: Micorosft Sans Serif, Bold, 12
    Location: 49, 40
    Text: 1
    یکی از راه‌های آسان برای اضافه کردن چندین button، استفاده از Copy/Past می‌باشد. برای اینکار، button شماره ۱ را انتخاب کنید و بر روی آن Right Click کنید و Copy را انتخاب کنید. الان نشانگر موس را روی یک جای خالی از فرم خود قرار دهید و مجدداً Right Click کنید و Past را برگزینید. شما فقط کافیست که دو مشخصه را تغییر دهید؛ یکی Name را به btnTwo تغییر دهید و دیگری مشخصه Text آن را به ۲ تغییر دهید.
    برای Button ممیز نیز مشخصه Name آن را به btnPoint تغییر دهید و مشخصه Text را به یک نقطه تغییر دهید.
    فقط ۳ button دیگر مانده؛ این سه‌تا را هم اضافه کنید و به ترتیب Property های زیر را تغییر دهید:
    Name: btnPlus
    Font: Microsoft Sans Serif, Bold, 12
    Location: 324, 159
    Size: 49, 40
    Text: +
    Name: btnEquals
    Font: Microsoft Sans Serif, Bold, 12
    Location: 324, 230
    Size: 49, 40
    Text: =
    Name: btnClear
    Font: Microsoft Sans Serif, Bold, 12
    Location: 324, 305
    Size: 49, 40
    Text: Clear
    تا اینجا، ما کار طراحی ظاهری نرم‌افزار خودمان را تمام کرده‌ایم. پروژه‌ی خود را ذخیره کنید (قبل از اینکه برق بره!) تا کدنویسی آن را شروع کنیم.

    • شروع کدنویسی ماشین حساب

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

    1. شخص بر روی شماره‌ها کلیک می‌کند تا اولین رقم مورد نظر خود برای انجام عمل جمع را مشخص سازد.
    2. اولین رقمی که کاربر ایجاد می‌کند، باید در Text Box نمایش داده شود.
    3. بر روی کلید + کلیک می‌کند تا به سی‌شارپ این را بگوید که می‌خواهد عمل جمع را انجام دهد.
    4. بعد از کلیک بر روی +، باید Text Box پاک شود تا برای رقم دوم آماده شود.
    5. دوباره با استفاده از کلیدهای ۰ تا ۹، رقم دوم خود را مشخص می‌کند.
    6. بر روی کلید مساوی کلیک می‌کند تا نتیجه در Text Box ظاهر شود.

    خوب با اولین مرحله شروع می‌کنیم.
    بر روی button شماره ۱ دابل-کلیک کنید تا اینکه وارد کدنویسی شوید. ما در این مرحله، می‌خواهیم برای تمامی buttonها این‌کار را انجام دهید که وقتی یکی از button های اعداد کلیک بخورند، عدد آن‌ها در Text Box نمایش داده شود. پس برای button با نام btnOne، کد زیر را اضافه می‌کنیم:
    txtDisplay.Text = btnOne.Text;
    این کد می‌گوید: «مقدار Text مربوط به Text Box با نام txtDisplay را به مقدار Text برای button ای با نام btnOne (که ۱ است) تغییر بده.» به یاد داشته باشید که هرچیزی که در سمت راست مساوی در کدنویسی است، دقیقاً برابر مقداری خواهد بود که در سمت چپ آن خواهد بود.
    برنامه‌ی خود را اجرا کنید؛ بر روی شماره ۱ کلیک کنید. خواهید دید که شماره ۱ در Text Box شما نمایش داده خواهد شد. چند بار دیگر بر روی شماره ۱ کلیک کنید؛ متوجه اشکال برنامه شدید؟ شما احتمالاً فکر می‌کردید که مثلاً اگر دوبار button شماره ۱ را کلیک کنید، باید عدد ۱۱ را نمایش دهد. چرا؟
    دلیل ایراد نرم‌افزار این است که شما به سی‌شارپ نگفته بودید که مقداری که قبلاً در Text Box را نگه‌دار و مقدار جدید را در کنارش قرار بده! پس دوباره با دابل-کلیک کردن بر روی btnOne، وارد بخش کد شوید و کد قبلی خود را به کد زیر تغییر دهید:
    txtDisplay.Text = txtDisplay.Text + btnOne.Text;
    در این کد، علامت جمع نمایانگر عمل جمع نیست؛ بلکه چونکه هر دو متغیر از نوع String هستند، پس این دو را در کنار هم می‌آورد و به اصطلاح، یکدیگر را به هم الصاق می‌کند.
    یک‌بار دیگر برنامه خود را اجرا کنید و عملیات فوق را امتحان کنید، خواهید دید که این‌بار نمایش عدد‌های ۱، ۱۱، ۱۱۱، و … بدون مشکل خواهد بود.
    الان به برنامه خود بازگردید و اینبار بر روی btnTwo دابل-کلیک کنید و کد زیر را اضافه کنید:
    txtDisplay.Text = txtDisplay.Text + btnTwo.Text;
    تنها تفاوتی که کد بالا با کد قبلی دارد این هست که نام button شما از btnOne به btnTwo تغییر پیدا کرد. تمامی این‌کارها را برای تمامی اعداد (از ۲ تا ۹) انجام دهید. در نهایت، باید کد‌های شما به شکل زیر باشد:


    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]


    یک‌بار دیگر جهت اطمینان، برنامه خود را اجرا کنید و از صحت کارکرد تمامی button ها مطمئن شوید. پس از اطمینان حاصل کردن از تمامی button ها به محیط برنامه خود بازگردید و بر روی button مربوط به Clear دابل-کلیک کنید و کد زیر را اضافه کنید:
    txtDisplay.Clear();
    بعد از نام Text Box، شما یک نقطه قرار دادید و کلمه Clear را نوشتید و در مقابل آن دو پرانتز قرار دادید؛ این بدین معنی‌است که Clear یک method است که مقدار داخل txtDisplay را خالی می‌کند.
    مجدداً برنامه خود را اجرا کنید و پس از وارد کردن چندین عدد، button پاک‌کردن را امتحان کنید و از صحت کارکرد آن مطمئن شوید.
    الان که کار نمایش اعداد ما به پایان رسید، وقت آن است که عدد وارد شده را در یک متغیر ذخیره کنیم؛ پس از آنکه کلید مساوی کلیک خورد، عمل جمع انجام شود. (توجه کنید که عمل جمع با کلیک کردن بر روی button مربوط به مساوی باید انجام شود؛ نه خود کلید جمع!)
    Button جمع، باید عدد وارد شده را از Text Box دریافت کند و چونکه این مقدار بصورت String دریافت می‌شود، باید آن را به عدد تبدیل کرد. سپس این عدد را در یک متغیر عددی ذخیره می‌کنیم. در نهایت باید در انتهای کد خود، یک خط کد دیگری اضافه کنیم که مقدار داخل Text Box را خالی کند تا آماده دریافت رقم بعدی باشد.
    اولین رقم وارد شده می‌بایست که در یک متغیر ذخیره شود. ما برای اینکار از متغیر نوع Double استفاده خواهیم کرد تا ما بتوانیم مقدار بزرگی را از اعداد پشتیبانی کنیم. (همچنان بتوانیم از ارقام دارای ممیز نیز پشتیبانی کنیم.)
    از آنجایی که تمامی button های داخل فرم می‌بایست که متغیر را ببینند، می‌بایست که این متغیر خارج از هرگونه کدی مربوط به button تعریف شود. یعنی تعریف این متغیر در چنین جایی کاملاً اشتباه است:
    private void btnOne_Click(object sender, EventArgs e)
    {
    Double total1 = 0;
    }
    اگر شما چنین کاری را بکنید، تنها btnOne خواهد توانست که متغیر total1 را بشناسد؛ ولی دیگر اشیاء دسترسی به total1 نخواهند داشت و برای آن‌ها تعریف نشده خواهد ماند. روش درست تعریف متغیری که می‌بایست اصطلاحاً به‌صورت Global تعریف شود، به‌شکل زیر است:
    double total1 = 0;
    private void btnPlus_Click(object sender, EventArgs e)
    {
    }
    کدی که باید برای خود btnPlus تعریف شود، به شکل زیر است: (کدهای آبی رنگ)
    double total1 = 0;
    private void btnPlus_Click(object sender, EventArgs e)
    {
    total1 = total1 + double.Parse(txtDisplay.Text);
    txtDisplay.Clear();
    }
    تنها کاری که در کد‌های بالا انجام می‌دهیم این است که مقدار Text را از txtDisplay میگیرم، آن را به double تغییر می‌دهیم و در نهایت در متغیر total1 ذخیره می‌کنیم. دقت کنیم که ما مجدداً این خط کد را نوشتیم:
    total1 = total1 +
    درست همانند کاری که در رابطه با نمایش اعداد کردیم، در اینجا هم انجام می‌دهیم. با این تفاوت چونکه هر دو مقدار از نوع عدد هستند، متغیر total1 مقدار قبلی خود را حفظ می‌کند و توسط علامت +، مقدار جدید را به خود اضافه می‌کند.
    یکی از راه‌های متداول در سی‌شارپ، چیزی شبیه به کد زیر است:
    Total1 += double.Parse(txtDisplay.Text);
    این کد، دقیقاً همان کاری را می‌کند که کد زیر انجام می‌دهد:
    total1 = total1 + double.Parse(txtDisplay.Text);
    پس آنکه کد مربوط به button جمع را نوشته‌ایم، به سراع کدهای مربوط به Button مساوی می‌پردازیم.
    Button مساوی، محلی‌است که عمل جمع باید در آن اتفاق بیفتد؛ اینجاست که ما واقعاً عمل جمع را انجام خواهید داد. برای اینکه پاسخ نهایی را جایی ذخیره کنیم، ما یک متغیر دیگر به شکل زیر اضافه خواهیم کرد:
    double total1 = 0;
    double total2 = 0;
    private void btnPlus_Click(object sender, EventArgs e)
    {
    total1 = total1 + double.Parse(txtDisplay.Text);
    txtDisplay.Clear();
    }
    پس ما یک متغیر با نام total2 از نوع double تعریف کردیم.
    به فرم خود برگردید و بر روی button مساوی دابل-کلیک کنید؛ کدهای زیر را اضافه کنید:
    total2 = total1 + double.Parse( txtDisplay.Text );
    txtDisplay.Text = total2.ToString( );
    total1 = 0;
    فکر نمی‌کنم نیازی به توضیح دادن کدهای بالا باشد! همه چیز کاملاً واضح است!
    الان وقت آن است که برنامه خود را اجرا کنید و چند عمل جمع را انجام دهید و از صحت آن مطمئن شوید.
    تمرین: ما هنوز کدی را برای ممیز ننوشته‌ایم. این‌کار را به عهده شما خواهیم گذاشت! (راهنمایی: شما تنها و تنها باید ۱ خط کد اضافه کنید!)

  6. این کاربر از kian98 بخاطر این مطلب مفید تشکر کرده است


  7. #14
    کاربر فعال انجمن طراحی صفحات وب kian98's Avatar
    تاريخ عضويت
    Jan 2014
    محل سكونت
    در لباس هایم
    پست ها
    1,845

    پيش فرض

    بخش چهاردهم


    • دستورات شرطی IF

    می‌توان دستورات شرطی را در کلمه IF خلاصه نمود! دستورات شرطی یکی از مهم‌ترین و پرکاربردترین دستورات در بیشتر زبان‌های برنامه‌نویسی می‌باشد؛ بطوریکه که شما تقریباً هیچ برنامه‌ی کاربردی‌ای را بدون دستور IF نمی‌توانید طراحی و برنامه‌نویسی کنید. اصطلاح انگلیسی این دستورات را Conditional Logic می‌گویند. پس حتماً آن را بخاطر بسپارید.
    برای شروع، ابتدا اجازه دهید که یک مثالی بزنیم. پروژه‌ی ماشین‌حساب را که یادتان هست؟ ماشین‌حساب ما تنها یک عمل ریاضی (جمع) را انجام می‌داد. در آینده ما عملیات جدیدتری را اضافه خواهیم کرد. در حال حاضر، شما نمی‌توانید ماشین‌حساب را با بیشتر از یک عمل ریاضی تکمیل کنید؛ چراکه نمی‌دانید که کاربر بر روی کدام button (جمع یا تفریق) کلیک کرده است! شما باید قادر باشید کدی را بنویسید که دستورات زیر را اجرا کند:
    ۱. اگر کلید جمع کلیک خورد، جمع بزن!
    ۲. اگر کلید تفریق کلیک خورد، کم کن!
    شما می‌توانید جملات بالا را هم به‌نحوی به شکل زیر بگویید:
    ۱. آیا کلید جمع کلیک خورد؟ بله، یا خیر؟
    ۲. آیا کلید تفریق کلیک خورد؟ بله، یا خیر؟
    در هرصورت، جواب هر سوالی یا بله خواهد بود یا خیر. Button مربوطه یا کلیک خورده یا نخوده! (دو حالت بیشتر وجود ندارد)
    برای پاسخ به سوالات بالا، ما باید با دستور IF کار کنیم. دستور IF اصولاً به شکل زیر استفاده می‌شود:
    if ()
    {

    }
    پس شما ابتدا با کلمه if (حروف کوچک) شروع می‌کنید و یک جفت پرانتز را روبروی آن قرار می‌دهید. در بین این جفت پرانتز، شما باید سوال خودتان را بنویسید تا سی‌شارپ درستی یا عدم‌درستی آن را چک کنید. در بین دو براکتی که برای دستور if نوشته می‌شود، باید عملیاتی را که می‌خواهید در صورت صحیح بودن شرط داخل پرانتز اجرا شود را می‌نویسید. واضح‌تر بگویم؛ اگر که شرط داخل if درست باشد، سی‌شارپ به داخل دستور if می‌رود و کد‌های نوشته‌شده را اجرا می‌کند؛ اگر شرط داخل if غلط باشد، سی‌شارپ کدهای داخل if را نادیده می‌گیرد و برنامه به روال عادی خود اجرا می‌شود.
    مثلاً برای چک کردن این‌که آیا Buttonای کلیک خورد یا نه، کدی شبیه زیر را باید داشته باشیم:
    bool buttonClicked = true;
    if (buttonClicked == true)
    {
    MessageBox.Show(“The button was clicked!”)
    }
    به اولین خط از کد بالا دقت کنید:
    bool buttonClicked = true;
    در این کد ما یک متغیری را با نام buttonClicked تعریف کرده‌ایم. اما bool چیست؟ Bool یک نوع دیگری از متغیرهاست که اینجا اولین باری‌است که شما با آن مواجه می‌شوید. کلمه bool کوتاه شده‌ی کلمه Boolean می‌باشد. شما از bool برای مواقعی استفاده می‌کنید که True (صحیح) یا False (غلط) بودن را می‌خواهید بررسی می‌کنید. این نوع متغیر، بر خلاف سایر متغیرهای پیشین که با آن‌ها آشنا شدید، فقط و فقط می‌توانید مقدار True یا False را داشته باشد. در ادامه‌ی کد بالا، کد زیر را داریم:
    if (buttonClicked == true)
    {
    MessageBox.Show(“The button was clicked!”)
    }
    اگر در داخل پرانتز دقت کنید، ما از علامت مساوی را دوبار استفاده کردیم (==). از این علامت معمولاً وقتی که از دستور if استفاده می‌کنید، زیاد به‌کارتان خواهد آمد. استفاده از دو علامت مساوی در کنار هم، به این معنی هست که «مقداری برابر با … را دارد؟». اگر می‌خواهید که کد داخل پرانتز را ترجمه کنیم، اینطور باید بگوییم: «اگر که متغیر buttonClicked دارای ارزشی برابر با True باشد …»
    اگر شما یکی از علامت‌های مساوی را فراموش کنید و یک عدد مساوی را قرار دهید، آنگاه دستور شما به دستور مقدار دهی تبدیل می‌شود. یعنی دستور (buttonClicked = True) این را می‌گوید که مقدار buttonClicked را برابر با True قرار بده، اما (buttonClicked == True) در حال بررسی وجود مقدار True در متغیر buttonClicked می‌باشد.
    مابین براکت‌های دستور If، ما یک خط کد بسیار ساده‌ای را داریم. یک MessageBox تعریف کرده‌ایم که اگر buttonClicked مقدارش True باشد، این Message Box نمایش داده شود. پس بیاید با هم این کار را امتحان کنیم.
    یک پروژه جدید از نوع Windows Application بسازید و یک button به فرم خود اضافه کنید. Text آن را به IF Statement تغییر دهید. بر روی آن دابل-کلیک کنید و کد‌های زیر را طبق تصویر نشان‌داده شده، اضافه کنید:
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
    برنامه خود را اجرا کنید و بر روی Button کلیک کنید؛ باید Message Box برای شما نشان داده شود. حال از برنامه‌ی اجرا شده خارج شوید و کد زیر را :
    bool buttonClicked = True;
    به کد زیر تبدیل کنید:
    bool buttonClicked = False;
    الان برنامه‌ی خود را یک‌بار دیگر اجرا کنید و بر روی Button کلیک کنید؛ اتفاقی نخواهد افتاد!
    اجرا نشدن Message Box به این دلیل است که ما دستور شرطی خودمان را طوری تعریف کردیم که اگر:
    buttonClicked == True
    آنگاه دستورات اجرا شوند. شما اگر کدهای خودتان را به کد زیر تغییر دهید:
    bool buttonClicked = False;
    if (buttonClicked == False)
    {
    MessageBox.Show(“buttonClicked has a value of False.”);
    }
    و برنامه را یک‌بار دیگر اجرا کنید، خواهید دید که پنجره MessageBox نمایش داده خواهد شد. درست است که buttonClicked مقدار False را دارد، اما ما دقیقاً در دستور If خودمان، همین مورد را می‌خواستیم امتحان کنیم؛ که اگر buttonClicked مقداری برابر با False داشته باشد، آنگاه درست است.

  8. این کاربر از kian98 بخاطر این مطلب مفید تشکر کرده است


  9. #15
    کاربر فعال انجمن طراحی صفحات وب kian98's Avatar
    تاريخ عضويت
    Jan 2014
    محل سكونت
    در لباس هایم
    پست ها
    1,845

    پيش فرض

    بخش پانزدهم


    • دستورات شرطی Else

    درستور Else، یکی دیگر از دستورات شرطی می‌باشد. البته دقت داشته باشید که دستور Else به تنهایی قابل استفاده نیست و باید همراه با دستور شرطی IF استفاده شود. اگر کمی با زبان انگلیسی آشنایی داشته باشید، می‌دانید که کلمه Else، معانی‌ای همچون: درغیراینصورت، دیگر، و … را دارد. حال به جمله‌ی انگلیسی زیر دقت کنید (بسیار ساده نوشته شده) و ترجمه فارسی آن را نیز مدنظر قرار دهید:
    If Y is greater than or equal to 0 (Y >= 0), then Y is positive. Else, Y is negative.
    ترجمه فارسی: اگر Y بزرگ‌تر از یا مساوی با صفر باشد، آنگاه Y مثبت است. درغیر اینصورت، Y منفی است.
    همانطور که در جمله‌ی فوق ملاحظه نموده‌اید، زیر سه کلمه IF، THEN و ELSE خط کشیده شده است. کلمه‌ی IF استفاده شده در جمله بالا، همان IF ای است که در کد استفاده می‌کنیم تا معنی «اگر» را به ما برساند. کلمه THEN، نشان‌دهنده‌ی دستورات داخل بدنه‌ی IF می‌باشد. اما ELSE که به معنی «درغیر اینصورت» است، بدین معنی‌است که اگر شرط ما (IF) غلط باشد، پس حتماً بعد از ELSE درست است!
    در واقع شما با استفاده از دستورات IF و ELSE، می‌توانید این را به سی‌شارپ بیان کنید که اگر شرط IF غلط باشد، چه اتفاقی باید بیفتد. نحوه استفاده از کد این دستورات در کنار هم، به‌شکل زیر است:
    if (buttonClicked == true)
    {

    }
    else
    {

    }
    با توجه به پروژه‌ی ایجاد شده در جلسه ۱۴، کدهایتان را به شکل زیر تغییر دهید:
    if (buttonClicked == true)
    {
    MessageBox.Show(“buttonClicked has a value of true.”);
    }
    else
    {
    MessageBox.Show(“buttonClicked has a value of false.”);
    }
    کد بالا به صورت زیر توسط سی‌شارپ تفسیر می‌شود:
    «اگر که True بودن مقدار متغیر buttonClicked درست باشد، وارد بدنه‌ی if شو و دستورات داخل آن را انجام بده؛ درغیر اینصورت، اگر چنین چیزی درست نبود، کار دیگری را انجام بده. (که وارد بدنه else می‌شود.)»
    الان برنامه‌ی خود را اجرا کنید؛ خواهید دید که MessageBox برای شما نمایان می‌شود. به محیط کد خود بازگردید؛ وضعیت متغیر buttonClicked خود را تغییر دهید. یعنی اگر قبلاً True بود، به False تغییر دهید؛ اگر False بود به True تبدیل کنید.
    دوباره برنامه خود را اجرا کنید؛ خواهید دید که اینبار هم MessageBox برای شما نمایان می‌شود، اما محتوای آن سازگار با کدهایتان تغییر کرد.
    اکنون که با Else به طور کامل آشنا شدید، باید بدانید که ما یک دستور شرطی دیگری را نیز داریم با نام Else If. در واقع Else If یک نوع If هست اما باز هم به تنهایی کاربرد ندارد و فقط هنگامی که از If استفاده می‌شود، باید از آن استفاده نمود. اول به جمله‌ی زیر دقت کنید:
    If X is greater than 0 (X > 0), then X is positive. Else, if X is equal to 0 (X = 0), then X is Zero. Else, X is negative. (X < 0)
    ترجمه فارسی: اگر X بزرگتر از صفر باشد، آنگاه X مثبت است. درغیر اینصورت اگر X برابر با صفر باشد، آنگاه X مساوی صفر است. درغیر اینصورت، X منفی است.
    فکر می‌کنم نحوه و موقعیت استفاده از Else If را متوجه شده باشید. ما با استفاده از این Else If، در جلسه بعد ماشین‌حساب خودمان را تکمیل خواهیم کرد. پس اگر هنوز با Else If مشکل دارید، نگران نباشید! در جلسه بعدی بصورت کاربردی نحوه استفاده از آن را متوجه خواهید شد.

  10. این کاربر از kian98 بخاطر این مطلب مفید تشکر کرده است


  11. #16
    کاربر فعال انجمن طراحی صفحات وب kian98's Avatar
    تاريخ عضويت
    Jan 2014
    محل سكونت
    در لباس هایم
    پست ها
    1,845

    پيش فرض

    بخش شانزدهم


    • تکمیل پروژه‌ی ماشین‌حساب

    اول از همه، پروژه‌ی ماشین‌حسابی که قبلاً با هم آماده کردیم بودیم را فراخوانی کنید. برای فراخوانی پروژه‌ی‌های ایجاد شده، شما می‌توانید که با استفاده از گزینه Open Project از منوی File، به محل ذخیره‌سازی پروژه‌ی خود بروید و به دنبال فایلی با پسوند «.sln» باشید.
    یک button جدید به ماشین‌حساب خود اضافه کنید (جهت انجام عمل تفریق) و Property های زیر را برای آن اعمال کنید:
    Name: btnMinus
    Font: Microsoft Sans Serif, 16, Bold
    Location: آن را در سمت عمل جمع قرار دهید
    Size: 49, 40
    Text: -
    بر روی button تفریق خود دابل-کلیک کنید تا وارد بخش کدنویسی شوید. دو متغیر از نوع Bool به شکل زیر خارج از کدهای مربوط به button تفریق قرار دهید؛ درست بالای سر آن! به شکل زیر هم توجه کنید تا بهتر متوجه منظور من شوید:
    bool plusButtonClicked = false;
    bool minusButtonClicked = false;
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]


    اکنون کدهای زیر را در داخل کدهای مربوط به button تفریق خود قرار دهید.
    total1 = total1 + double.Parse(txtDisplay.Text);
    txtDisplay.Clear();
    plusButtonClicked = false;
    minusButtonClicked = true;
    کدهایتان باید شکلی شبیه به تصویر زیر داشته باشد:


    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]


    تنها کاری که ما در این پروژه اضافه کردیم تا بتوانیم به خواسته‌ی خودمان برسیم، اضافه کردن دو متغیر از نوع Boolean می‌باشد. همانطور که می‌بینید، هنگامی که این دو متغیر را تعریف کردیم، هر دو را حاوی مقدار False (غلط) به سی‌شارپ معرفی نمودیم. همچنین آن‌ها را بیرون از یک button ایجاد کردیم تا تمامی button های مربوط به عملیات ریاضی ما بتوانند به خود متغیرها و مقادیر آن‌ها دسترسی پیدا کنند. دلیل اینکه هر دو را false کردیم آن است که اول شروع برنامه، نه button جمع کلیک خورده است و نه button تفریق؛ پس هر دو false هستند.
    وقتی که مثلاً button تفریق کلیک بخورد، ما این‌کار را خواهیم کرد: متغیر minusButtonClicked را True می‌کنیم و plusButtonClicked را False. شبیه همین‌کار را نیز برای button مربوط به جمع نیز انجام خواهیم داد.
    اکنون برای کدهای مربوط به button جمع خود نیز، کدهای زیر را طبق تصویر اضافه کنید:


    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]


    اکنون، کاری که باید انجام دهیم، اصلاح بخش button مساوی است. پس به آن بخش مراجعه کنید و کدهای داخل آن را به کدهایی همانند تصویر زیر تغییر دهید:


    فکر می‌کنم همه چیز در رابطه با کدها واضح است و نیازی به توضیح دادن آن‌ها نمی‌بینم.
    الان ماشین‌حساب خود را اجرا کنید و آن را تست کنید. اگر که تمامی مراحل فوق را درست انجام داده باشید، خواهید دید که تمامی محاسبات شما درست جواب داده خواهند شد.
    تمرین: پروژه‌ی ماشین‌حسابتان را با اضافه کردن دو عمل اصلی دیگر، یعنی ضرب و تقسیم، کامل کنید. برای این تمرین، شما تنها دو متغیر دیگر از نوع Boolean در کنار متغیرهای Boolean قبلی تعریف خواهید کرد و با اضافه کردن ELSE IF های اضافی، خواهید توانست که این ماشین‌حساب را تکمیل کنید. مابقی کار‌ها نیز فکر می‌کنم تماماً واضح باشد و نیازی به راهنمایی نیست. به تصویر زیر که کدهای مربوط به عمل تفریق را پس از اضافه کردن دو عمل ضرب و تقسیم در کنار جمع و تفریق است، دقت کنید:

    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

  12. این کاربر از kian98 بخاطر این مطلب مفید تشکر کرده است


  13. #17
    کاربر فعال انجمن طراحی صفحات وب kian98's Avatar
    تاريخ عضويت
    Jan 2014
    محل سكونت
    در لباس هایم
    پست ها
    1,845

    پيش فرض

    بخش هفدهم


    • دستور Switch – Case

    یکی از راه‌های راحت‌تری که می‌توانیم با آن ماشین‌حساب خودمان را تکمیل کنیم، استفاده از عبارت «Switch» به‌جای Else If های متوالی بود. دستور Switch به شما این قابلیت را می‌دهد که بتوانید چندین حالت را برای یک شی‌ء چک کنیم و برای هر کدام یک دستور جداگانه‌ای تعریف کنیم. (دقیقاً شبیه Else If های متوالی است.( ساختمان و ساختار دستور Switch به شکل زیر است:





    بعد از کلمه Switch، شما یک جفت پرانتز خواهید گذاشت. در داخل پرانتز، شما چیزی را که می‌خواهید مقدارش را چک کنید را می‌نویسید. شما معمولاً مقادیر داخل یک متغیر را چک خواهید کرد. سپس شما یک جفت براکت قرار خواهید داد تا محدوده‌ی مربوط به کدهای switch را مشخص کنید. در داخل Switch شما به‌ازای هر یک مقدار ممکنی که متغیر شما ممکن است داشته باشد، یک Case (=حالت) داشته باشید. پس از هر Case، شما کدهایی را می‌نویسید که اگر این حالت True باشد، (یعنی متغیر شما یکی از مقادیر مورد انتظار شما را داشته باشد) آن کد اجرا شود؛ و مابقی کدها به‌صورت خودکار نادیده گرفته می‌شوند. نادیده گرفته شدن مابقی کد‌ها توسط دستور Break که در آخر هر Case قرار دارد اتفاق می‌افتد. Break به سی‌شارپ می‌گوید که از این محدوده خارج شو! پس اگر Break را نگذارید، در عمل با مشکل مواجه خواهید شد.
    پس ما هم با استفاده از این دستور، ماشین‌حساب خود را کدنویسی مجدد می‌کنیم.
    ما در ماشین‌حساب، چهار متغیر از نوع Bool تعریف کردیم که بتوانیم با استفاده از مقادیر True یا False آن‌ها، عمل ریاضی انتخاب شده را متوجه شویم و نتیجه‌ی صحیحی را به کاربر ارائه دهیم. به جای این‌کار، ما می‌توانیم با تعریف یک متغیر از نوع String (مثلاً متغیر theOperator)، کاراکتر موجود در buttonهای مربوط به عملیات ریاضی را (یعنی کاراکتر جمع “+”، کاراکتر تفریق “-“، و …) هنگام انتخاب آن عمل ریاضی، در این متغیر ذخیره کنیم. چیزی شبیه کد زیر:


    string theOperator;
    private void btnPlus_Click(object sender, EventArgs e)
    {
    total1 = total1 + double.Parse(txtDisplay.Text);
    txtDisplay.Clear();
    theOperator = “+”;
    }
    ما با استفاده از کد بالا ( که در button مربوط به عمل جمع نوشته شده؛ به‌جز تعریف متغیر که در خارج از همه تعریف شده است) توانستیم که کاری کنیم که کاربر با انتخاب عمل جمع، کاراکتر + در متغیر theOperator ذخیره شود. همین کار‌ها را می‌توانیم برای تمامی عملیات ریاضی خود انجام دهیم و فقط مقدار ذخیره شده در theOperator را تغییر دهیم.
    حالا با استفاده از دستور Switch – Case که در button مربوط به عمل مساوی قرار می‌دهیم، تعیین می‌کنیم که کاربر در هنگامی که کلید مساوی را کلیک کند، کدام عمل ریاضی را انتخاب کرده بود. به کد زیر دقت کنید:





    در بین پرانتزهای Switch، متغیر theOperator را قرار دهیم؛ چونکه می‌خواهیم مقدار ذخیره شده در این متغیر (حالت‌هایی که ما می‌دانیم در آن ذخیره می‌شود) را بررسی کنیم. تنها حالاتی که می‌تواند متغیر theOperator در خود ذخیره کند، علامت‌های جمع، تفریق، ضرب یا تقسیم خواهد بود. پس برای اولین حالت خود (یعنی جمع) یک Case می‌نویسیم و پس آن یک جفت Double-Quotes قرار می‌دهیم و بین آن اولین حالت ممکن (یعنی کاراکتر حمع) را قرار می‌دهیم. سپس قبل از هر Break مخصوص به آن Case، عمل مورد انتظار ما، که در اینجا انجام عملیات جمع، تفریق، ضرب و یا تقسیم است را می‌نویسیم.
    اگر در کد بالا دقت کنید، علاوه بر چهار حالت ممکن که برای هر کدام یک Case تعریف کرده‌ایم، یک حالت Default وجود دارد. معمولاً بهتر است که در هنگام استفاده از Switch – Case، از Default نیز استفاده کنید. Default در واقع چیزی شبیه به دستور ELSE است؛ یعنی اگر هیچکدام از حالت‌های بالا پیش نیامد (یعنی کاربر می‌خواست در برنامه خطا ایجاد کند و بدون اینکه کلید‌های حمع، تفریق، ضرب یا تقسیم را کلیک نزده و مستقیماً بر روی مساوی کلیک کرده) یک اتفاق خاصی بیفتد. مثلاً شما در چنین حالتی می‌توانید یک MessageBox تعریف کنید و به کاربر بگویید که در هنگام کار با ماشین‌حساب دقت بیشتر کند.
    فعلاً این جلسه به همین‌جا خاتمه داده می‌شود. فقط دقت کنید که Switch یکی از دستورات خیلی منظم و مفید در سی‌شارپ (و سایر زبان‌های شبیه مثل C، C++ و …) است. هنگامی که حالت‌های مختلفی برایتان پیش می‌آید، به جای استفاده از IF، ELSE IF های متوالی و ELSE، می‌توانید از دستور Switch – Case استفاده کنید.

  14. این کاربر از kian98 بخاطر این مطلب مفید تشکر کرده است


  15. #18
    کاربر فعال انجمن طراحی صفحات وب kian98's Avatar
    تاريخ عضويت
    Jan 2014
    محل سكونت
    در لباس هایم
    پست ها
    1,845

    پيش فرض

    بخش هجدهم


    • Conditional Operators

    شما تاکنون با یک Conditional Operator (عملگر مقایسه‌ای)، یعنی دو-مساوی (==) آشنا شده‌اید. شما از این عملگر در دستورات شرطی IF از آن استفاده می‌کنید و مقدار داخل یک متغیر را توسط جمله‌ای شبیه به «آیا دارای مقدار … است؟» بررسی می‌کنید. مثلاً:
    if ( myVariable ==10)
    {
    //EXECUTE SOME CODES
    }
    پس در کد بالا درواقع مقدار داخل myVariable را بررسی می‌کنیم که آیا دارای مقدار ۱۰ است یا خیر! سپس اگر دارای چنین مقداری بود، کدهای داخل دستور شرطی IF اجر شوند. از جمله Conditional Operator های دیگر که احتمالاً در آینده بسیار بدرد خواهند خورد و کاربرد آن‌ها بسیار زیاد است، دستورات زیر می‌باشد:





    اکنون که شما این چند Conditional Operators مهم را فراگرفتید، اجازه دهید که باهمدیگر این‌ها را تمرین کنیم تا دقیقاً متوجه کاربرد آن‌ها شوید.
    یک پروژه‌ی جدید بسازید و در آن دو عدد Text Box قرار دهید. یک button هم اضافه کنید. در propertyهای Text مربوط به Text Box ها، در اولین Text Box عدد ۸ را وارد کنید و در دومی، عدد ۷.
    Text مربوط به button رو نیز به عبارت Compare (=مقایسه) تغییر دهید. اکنون فرم شما به شکل زیر است:





    بر روی button دابل-کلیک کنید تا وارد بخش کدها شوید. کاری که ما انجام می‌دهیم این است که شماره‌ها را از Text Box ها میگیرم و آن‌ها را با یکدیگر مقایسه می‌کنیم. پس اولین کار ما، تعریف دو متغیر از نوع int است.
    int firstNumber;
    int secondNumber;
    سپس عددهای داخل Text Box را دریافت می‌کنیم (که بصورت String هستند) و با استفاده از متد Parse، آن‌ها را به مقدار int تغییر می‌دهیم.
    firstNumber = int.Parse(textBox1.Text);
    secondNumber = int.Parse(textBox2.Text);
    الان ما باید کدی بنویسیم که این دو عدد را با یکدیگر مقایسه کند و تعیین کند که کدام یک از ارقام، از دیگری بزرگ‌تر است. درواقع سوال را باید بدین شکل طرح کرد؛ «آیا رقم اول، از رقم دوم بزرگ‌تر است؟»
    برای پاسخ دادن به این سوال به‌شکل برنامه‌نویسی، می‌توان از دستور شرطی IF استفاده نمود. همچنین برای تعیین بزرگ‌تر با کوچک‌تر بودن ارقام، می‌توان از Conditional Operator که در بالا معرفی کردیم، استفاده کنیم. پس بدین‌شکل کدهایمان را می‌نویسیم:
    if (firstNumber > secondNumber)
    {
    MessageBox.Show(“The first number was greater than the second number”);
    }
    اکنون باید بخش کدنویسی شما شبیه به زیر شده باشد:





    حال به‌سراغ تشریح کدهایی که نوشتیم بپردازیم؛ در داخل دستور if بین دو پرانتز، ما در واقع دو متغیری را که قبلاً تعریف کرده‌بودیم را با یکدیگر مقایسه می‌کنیم. با استفاده از Conditional Operator که در اول آموزش در رابطه با آن توصیح دادیم، ما با استفاده از علامت بزرگ‌تر، سعی کردیم که رابطه‌ای میان این دو متغیر ایجاد کنیم؛ در واقع این دو را با یکدیگر مقایسه کنیم.
    برنامه‌ی خود را اجرا کنید. بر روی button کلیک کنید؛ خواهید دید که MessageBox که در کدهایتان تعریف کرده‌اید برای شما نمایش داده می‌شود. اکنون در اولین Text Box عدد ۶ را بنویسید. دوباره بر روی Button کلیک کنید؛ این‌بار اتفاقی نمی‌افتد. دلیل آن، این است که در دستور IF ما فقط این موضوع را بررسی کردیم که آیا متغیر firstNumber از secondNumber بزرگ‌تر است یا خیر، اما حالت برعکس آن را بررسی نکردیم. پس کدی را به کدهایمان اضافه می‌کنیم. داریم:
    if (firstNumber < secondNumbe)
    {
    MessageBox.Show(“The first number was less than the second number.”);
    }
    دوباره برنامه‌ خود را اجرا کنید و حالت‌های مختلف را امتحان کنید. خواهید دید که در همه حال (تنها حالتی که دو رقم با هم برابر باشند) Message Box برای شما نمایش داده خواهد شد.
    برای حالت مساوی، یکی از روش‌ها استفاده از علامت دومساوی (==) می‌باشد. اما حالت دیگر استفاده از نماد بزرگ‌تر مساوی و یا کوچک‌تر مساوی می‌باشد (<= و یا >=)
    دستور Conditional Operator بعدی ما، علامت مساوی نیست (!=) می‌باشد. با استفاده از این عملگر، شما تعیین می‌کنید که آیا دو متغیر (یا دو مقدار) با هم برابر هستند یا نه. به کد زیر دقت کنید:
    if (firstNumber != secondNumber)
    {
    //SOME CODE HERE
    }
    پس کد بالا با این مفهوم ترجمه می‌شود: «اگر مقدار firstNumber برابر نباشد با مقدار secondNumber، پس کدهای داخل دستور IF را اجرا کن.»
    در رابطه با عملگرهای منطقی همانند OR، NOT، AND و …، اگر کمی با ریاضیات آشنایی داشته باشید، می‌دانید که چگونه در عمل از آن‌ها استفاده می‌شود. بنابراین ترجیح می‌دهم که اگر با آن‌ها آشنایی ندارید، در اینترنت جستجو کرده و کمی با آن‌ها آشنا شوید.
    علامت عملگر منطقی NOT، به‌شکل علامت تعجب (!) می‌باشد. به کد زیر دقت کنید:
    bool testValue = false;
    if (!testValue)
    {
    MessageBox.Show(“Value was false.”);
    }
    عملگر NOT، مقدار True را به False، و مقدار False را به True تبدیل می‌کند. پس در کد بالا وقتی که عملگر NOT را همراه با متغیر testValue می‌آوریم، مقدار آن را از False به True تبدیل می‌کند؛ درنتیجه نتیجه داخل پرانتز مربوط به IF به‌صورت True خواهد شد، پس کد‌های درون آن اجرا می‌شوند.

  16. این کاربر از kian98 بخاطر این مطلب مفید تشکر کرده است


  17. #19
    کاربر فعال انجمن طراحی صفحات وب kian98's Avatar
    تاريخ عضويت
    Jan 2014
    محل سكونت
    در لباس هایم
    پست ها
    1,845

    پيش فرض

    بخش نوزدهم


    • حلقه‌ها (Loops)

    حلقه‌ها، که از این به بعد سعی می‌کنیم آن‌ها را با نام Loops صدا بزنیم، یکی دیگر از مهم‌ترین مواردی است که در برنامه‌نویسی بطور بسیار زیادی از آن استفاده می‌شود؛ سی‌شارپ هم از آن‌ها استثنا نشده است. اما حلقه‌ها در واقع چه هستند؟
    حلقه در واقع کاری می‌کند که عملی را بارها و بارها آن را تکرار کنید تا به یک شرطی برسد که متوقف شود و دیگر آن عمل بدلیل عدم صحیح بودن شرط، انجام نگیرد.
    برای مثال، شما فرض کنید می‌خواهید اعداد ۱ تا ۱۰ را با یکدیگر جمع کنید. اگر بخواهید با اطلاعاتی که تا کنون داشته‌اید، چنین کاری را بکنید، احتمالاً کاری که خواهید کرد به‌شکل زیر خواهد بود:
    int answer;
    answer = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10;
    اما می‌بینید که چنین کاری اصلاً با عقل آدمی جور در نمی‌آید؛ خصوصاً اگر تعداد ارقام بیشتر باشد؛ برای مثال ۱ تا ۹۹۹. پس برای اینکه خواسته‌ی ما برآورده شود، ما از Loops استفاده می‌کنیم.

    • اولین حلقه: حلقه‌ی For

    اولین حلقه‌ای را که شما فرا خواهید گرفت، حلقه For است. حلقه‌های دیگری هم وجود دارند، مانند While و یا Do-While. اما فعلاً رایج‌ترین و پرکاربرد ترین حلقه، حلقه‌ی For می‌باشد.
    یک پروژه‌ی جدیدی از نوع Windows Application را در Visual Studio شروع کنید. یک button به فرم خود اضافه کنید و وارد بخش کد مربوط به button ها شوید.
    در میان دو براکت مربوط به button که قبلاً اضافه کردید، راست کلیک کنید و بر روی Insert Snippet کلیک کنید. همانند تصویر زیر:





    وقتی که بر روی Insert Snippet کلیک می‌کنید، همانند تصویر زیر لیستی برای شما نمایش داده می‌شود:





    کمی پایین بیایید و بر روی For دابل-کلیک کنید. یکسری کد برای شما بصورت خودکار ایجاد و درج خواهد شد:





    شاید اگر اولین بار شما باشد که به این کد نگاه کرده باشید، کمی برای شما پیچیده به‌نظر برسد. پس بگذارید قدم به قدم برای شما این کد‌ها را توضیح دهم که ببینید که چقدر ساده است.
    ساختار کلی حلقه For به‌شکل زیر است:
    for ( )
    {
    //SOME CODE
    }
    پس شما یک For می‌نویسید و جلوی آن دو پرانتز باز و بسته قرار می‌دهید. سپس با استفاده از جفت براکت باز و بسته، محدوده‌ی حلقه For را برای سی‌شارپ مشخص می‌کنید. چیزی که میان دو پرانتز For قرار می‌گیرد، درواقع کدی خواهد بود که به سی‌شارپ بگوید کدهای داخل حلقه For چند بار پشت سر هم اجرا شوند.
    به‌صورت پیشفرض، قالب شرطی که Visual Studio برای شما در بین دو پرانتز قرار داد، به‌شکل زیر است:
    int = 0; i < length; i++
    کد بالا، در واقع از سه بخش که توسط دو Semicolon ( از هم جدا شده‌اند، ساخته شده است.
    ۱. از چه شماره‌ای این حلقه شروع به کار کند؟
    ۲. چندبار می‌خواهید که کد اجرا شود؟
    ۳. مقدار اولیه را پس از اتمام هر حلقه، چطور باید بروز شود؟
    این سه بخش، تعریفی از سه بخش بالاست. به عکس‌های زیر دقت کنید. اولین بخش به‌صورت زیر است:





    بخش دوم نیز به‌شکل زیر است:





    و بخش سوم نیز:





    بخش اول (شماره ۱) به سی‌شارپ می‌گوید که حلقه من از چه شماره‌ای باید شروع شود:
    int i = 0;
    کاری که در بخش اول می کنید، تعریف یک متغیری است که معمولاً آن‌ها را با نام‌های i، j، k و … نامگذاری می‌کنند. البته هر نامی را می‌توانید انتخاب کنید؛ به‌شرطی که از قوانین نامگذاری متغیرها پیروی کند. البته دقت کنید که می‌توانید متغیر مربوط به حلقه را بیرون از حلقه تعریف کنید. به شکل زیر:
    int i;
    for (i = 0; i < length; i++)
    {
    }
    سپس، بعد از تعریف متغیر، در همان جا آن را مقدار دهی می‌کنیم. مقداری که به آن به‌صورت پیشفرض داده شده، عدد صفر است.
    بخش دوم کد (شماره ۲)، نشان‌دهنده شرطی‌ست که به سی‌شارپ می‌گوید که این حلقه چند بار باید اجرا شود! به‌صورت پیشفرض کد زیر قرار داده شده است:
    i < length;
    اگر مبحث جلسه قبل را به‌خاطر داشته باشید، این کد می‌گوید «زمانی که مقدار i از مقدار length کوچک‌تر باشد.» دقت کنید که جای length باید عدد یا متغیر عددی قرار گیرد؛ پس length یک کلمه‌کلیدی نیست که خواهید بر اساس آن تصمیمی بگیرید. مثلاً کدمان را به‌شکل زیر تغییر می‌دهیم:
    int length = 101;
    for (int i = 0; i < length; i++)
    {
    }
    دقت کنید که لازم نیست حتماً نام متغیری که بر اساس آن شرط تعیین می‌شود، length باشد. نام آن می‌تواند به‌دلخواه شما تعیین شود.
    بخش سوم کد (شماره ۳)، به سی‌شارپ می‌گوید که پس از هربار که کد داخل حلقه (درصورت برقرار بودن شرط در مرحله قبل) اجرا می‌شود، چه اتفاقی باید بیفتد. ما در کد بالا اینطور نوشتیم که پس از هرباری که حلقه اجرا می‌شود، یک مقدار به مقدار متغیر i اضافه کند ( i++ یعنی اینکه عددی را که i در خود ذخیره می‌کند را با عدد ۱ جمع کند.)
    سی‌شارپ تا زمانی که بخش دوم کد (شماره ۲) شرطش درست باشد، حلقه را در حال اجرا قرار می‌دهد و پس از پایان هر بار اجرا، یک مقدار به i اضافه می‌کند.
    الان وقت آن است که به‌صورت کاربردی، استفاده از حلقه و مفهوم آن را متوجه شوید. کدهایتان را دقیقاً به‌شکل زیر درآورید:





    کدی که می‌خواهیم در هر بار در Loop اجرا شود، answer = answer + i است.
    ما در کد بالا، در واقع می‌خواهیم اعداد ۱ تا ۱۰۰ را با یکدیگر جمع کنیم. پس اگر کدهای بالا را اجرا کنیم، دور اولی که حلقه شروع به کار می‌کند، مقادیر زیر را دارد:





    پس از اتمام دور اول، دور دوم شروع می‌شود. این‌بار مقادیر به‌شکل زیر است:





    دور سوم نیز بدین شکل است:





    و دور چهارم:





    دقت کنید که چگونه مقدار i در هر بار اجرا، تغییر می‌کند. این افزایش مقدار i ناشی از بخش سوم کد (شماره ۳) می‌باشد.
    کدهایتان را اجرا کنید و بر روی button کلیک کنید. مقداری را که برای شما باید نمایش دهد، عدد ۵۰۵۰ است؛ که جمع اعداد از ۱ تا ۱۰۰ می‌باشد.
    در بخش بعدی، بیشتر در رابطه با مقدار آغازین حلقه و مقدار پایانی آن صحبت خواهیم کرد.

  18. این کاربر از kian98 بخاطر این مطلب مفید تشکر کرده است


  19. #20
    کاربر فعال انجمن طراحی صفحات وب kian98's Avatar
    تاريخ عضويت
    Jan 2014
    محل سكونت
    در لباس هایم
    پست ها
    1,845

    پيش فرض

    بخش بیستم


    • تعیین شروع و پایان یک حلقه توسط کاربر

    یک پروژه جدید از نوع Windows Application بسازید و سپس دو عدد Text Box را در درون فرم خود قرار دهید. همچنین دو Label و یک Button را اضافه کنید. اولین Label را Loop Start نامگذاری کرده؛ دومی را Loop End. فرم شما شکلی شبیه به شکل زیر را داشته باشد.





    کاری که قرار است انجام دهیم، گرفتن مقدار شروع و پایان حلقه‌ها هستند. پس بر روی Button خود دابل-کلیک کرده و پس از ورود به بخش کدها، سه متغیر از نوع int به شکل زیر تعریف کنید:
    int loopStart;
    int loopEnd;
    int answer = 0;
    اکنون، مقادیری که توسط Text Box ها دریافت می‌شود را در داخل این دو متغیر ذخیره می‌کنیم.
    loopStart = int.Parse(textBox1.Text);
    loopEnd = int.Parse(textBox2.Text);
    حالا که ما رقم‌های وارد شده در Text Box ها را داریم، می‌توانیم از آن‌ها در حلقه استفاده کنیم. یک حلقه For به شکل زیر ایجاد می‌کنیم:
    for (int i = loopStart; i < loopEnd; i++)
    {
    answer = answer + i;
    }
    حال می‌توانید که پاسخ این محاسبه را توسط مثلاً یک MessageBox در button نمایش دهید؛ که این کار را بر عهده شما قرار خواهم داد.

    • ساخت یک جدول ضرب ساده توسط حلقه For

    اکنون که ما استفاده از حلقه‌ها را فرا گرفتیم، می‌توانیم یک پروژه‌ی کوچکی را شروع کنیم؛ آن ‌هم جدول ضرب (یا اصطلاح انگلیسی آن Times Table).
    ما توسط فرمی که در بالا ساختیم، از کاربر خواهیم خواست که یک مقداری را برای شروع و مقداری را برای پایان برای برنامه تعیین کند، آنگاه ما مقادیر ضرایب ۱۰ را در این عدد به کاربر نشان خواهیم داد. چیزی شبیه به جدول زیر خواهیم داشت:
    ۱ times 10 = 10
    2 times 10 = 20
    3 times 10 = 30
    4 times 10 = 40
    5 times 10 = 50
    دقت کنید که در انگلیسی به ضرب، Times می‌گویند. مثلاً ۱ Times 10، یعنی ۱ ضربدر ۱۰.
    به‌جای استفاده از یک MessageBox، اینبار از یک List Box استفاده خواهیم کرد. پس به Tool Box مراجعه کنید و یک ListBox اضافه کنید.





    فرم شما شکلی شبیه به زیر را خواهد داشت:





    بر روی button دابل-کلیک کنید تا مجدداً وارد بخش کدها شوید. برای اضافه کردن یک item به این List Box، می‌توانیم از کد زیر استفاده کنیم:
    listBox1.Items.Add(answer.ToString());
    پس اولین کار، نوشتن نام شیء هست. سپس یک نقطه قرار می‌دهیم که IntelliSense ظاهر شود؛ Items را انتخاب می‌کنیم (یا می‌نویسیم)؛ و در انتها، از متد Add برای اضافه کردن آیتم استفاده می‌کنیم. پس کد بالا را در حلقه اضافه کنید. یعنی:
    for (int i = loopStart; i <= loopEnd; i++)
    {
    answer = answer + i;
    listBox1.Items.Add(answer.ToString());
    }
    شما می‌توانید که Message Boxای را که از قبل برای نمایش محتوا از آن استفاده کرده بودید را حذف کنید. برنامه‌ی خودتان را اجرا کنید و در loopStart بنوسید ۱ و در loopEnd بنویسید ۵؛‌ بر روی button کلیک کنید، نتیجه را در listBox مشاهده کنید.
    برای اینکه نتیجه کارمان را کمی واضح تر کنیم، کد مربوط به List Box را به شکل زیر تغییر دهید:
    listBox1.Items.Add(“answer = “ + answer.ToString());
    برنامه‌تان را اجرا کنید؛ خواهید دید:





    برای اینکه باز هم نتیجه کارمان را قابل فهم‌تر کنیم، اول از همه یک نوع متغیر برای تعیین مقدار ضریب تعریف می‌کنیم:
    int multipyBy = 10;
    الان باید کدهای مربوط به List Box را به شکل زیر تغییر دهیم:
    answer = multiplyBy * i;
    listBox1.Items.Add(i + ” times ” + multiplyBy + ” = ” + answer.ToString());
    برنامه را اجرا کنید … خواهید دید:





    تمرین: اینبار فرم خودتان را به‌شکل زیر درآورده و سعی کنید که مقدار ضریب نیز توسط خود کاربر تعیین شود:







    نکته: برای پاک کردن List View توسط کدهای سی‌شارپ، از کد زیر استفاده می‌کنیم:
    listBox1.Items.Clear();

  20. این کاربر از kian98 بخاطر این مطلب مفید تشکر کرده است


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

برچسب های این موضوع

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •