دوره مجازی #C (جلسه 5): دستورات تصمیم گیری و شرط ها ، حلقه ها و دستورات کنترل تکرار

- visibility ٢٣ mode_comment

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

مطالب آموزش داده شده در این جلسه به قرار زیر می باشند:

  • معرفی نوع داده ای bool
  • معرفی عملگرهای منطقی و ریاضی
  • آشنایی با شرط ها و عبارات شرطی و نتیجه و خروجی آن ها
  • معرفی دستور if و اشکال مختلف استفاده از آن
  • آشنایی با دستور switch و اشکال مختلف استفاده از آن
  • آشنایی با حلقه ها و دستورات کنترل تکرار
  • معرفی حلقه های while و do while و for
  • بررسی تعداد زیادی مثال در هر کدام از بخش های این جلسه

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

info توجه

این مطلب یک جلسه از دوره آموزش #C می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در دوره آموزش #C

comment دیدگاه کاربران
امید دهقان

باسلام استاد.
من توی جلسه قبل به یه مشکلی برخوردم که نمیدونم چه طور باید حلش کنم. در قسمت کد میانگین که نوشتم من تمام کد ها رو درست وارد کردم ولی وقتی که برنامه رو اجرا میکنم با این خطا مواجه میشم. البته زمانی که فقط عدد اعشاری وارد میکنم این جوری میشه. ممنون می شم کمکم کنید.
http://uupload.ir/files/u2b6_screenshot_(81).png

آرین زارعی

سلام.
با توجه به فایلی که آپلود کرده اید، من چیز اشتباهی ندیدم و همه چیز به نظر درست بود، فقط یک چیز…
شما بعد از وارد کردن عدد اعشاری اول مطمئن هستید که 1 بار enter می زنید. چون اگر به اشتباه دو بار اینکار رو انجام بدید یه همچین exception ی به شما میدهد.
و اینکه قسمت اعشاری و صحیح رو باید با نقطه جدا کنید. اگر مشکل حل نشد، سورس تون رو برای من ایمیل کنید.

امید دهقان

سلام آره امتحان کردم حتی سورس شما رو هم اجرا میکنم همین ارور رو می ده فکر نکنم مشکل از کد ها باشه!!! ولی من بازم سورسم رو واستون میزارم.
http://uplod.ir/3opvz7k3h3mo/Average.rar.htm

آرین زارعی

شما یک چیز دیگه هم امتحان کن فکر کنم درست بشه… من دیدم زبان سیستمتون فارسی هست. (تاریخ و اعداد). یا زبان و فرمت ویندوز رو انگلیسی کنید.
یا از قسمت region and language -> Formats -> Additional Settings مطمئن شوید که مقدار گزینه ی decimal symbol نقطه هستش…
یا اگر می خواید این کار را انجام ندهید، این تکه کد رو در اول متد main کپی کنید…
;()CultureInfo ci = (CultureInfo)CultureInfo.CurrentCulture.Clone
“.” = ci.NumberFormat.CurrencyDecimalSeparator
یا اینکه دستور float.parse رو به شکل زیر تغییر دهید.
(float.Parse(console.readline(), CultureInfo.InvariantCulture

امید دهقان

ممنون از شما درست شد.

esmaeilpour

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

وحید صالحی

سلان نه دوست عزیز برای شروع شما نیازه که از محیط کنسول شروع کنید تا با کدنویسی در این محیط و اصول و قواعد اون آشنا بشید از فصل 4 به بعد در محیط ویژوال استودیو یا به عبارتی محیط گرافیکی روند آموزش ادامه پیدا میکنه
موفق باشید.

mehrdad_MK

آقای زارعی خسته نباشید …
میخواستم ببینم اگه میشه کد اون تمرینی که گفتین از کاربر عدد دریافت کنیم و اعداد اول قبل از آن را چاپ کنیم رو بگین ….
الان 2 روزه درگیرشم هرکاری میکنم یه ایرادی داره …..
این هم سورسش هست ….
http://up.ashiyane.org/images/15r2htvse0rtnpao1qkb.rar
ممنون….

آرین زارعی

سلام. ممنون
من کدتون رو بررسی و اصلاح کردم.
چند تا نکته بود. اولا نامگذاری و نحوه استفاده از متغیر های خیلی مهم است مثلا در اینجا متغیر ismorakkab رو شما به طور منطقی دارین برعکس استفاده می کنید. یعنی بهتره اسمش باشه isavval . که البته این فقط شاید باعث سختی و گمراهیتون شده بود.
دوم اینکه عدد 1 اول نیست و نباید نشون داده بشه. من کد رو طوری تغییر دادم که حلقه از 3 شروع بشه و خودم عدد 2 رو دستی چاپ کردم . البته بررسی کردم عددی که کاربر وارد کرده بزرگتر از دو باشه.
این کد رو بررسی کنید خودتون متوجه می شوید.

mehrdad_MK

مرسی از پاسختون … من خودم هم به همین نتیجه رسیدم که باید خودمون چاپ کنیم ولی گفتم شاید اشتباه باشه ….پس میتونم بگم تقریبا نحوه کد نویسیم خوب بوده ؟؟ 😳

آرین زارعی

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

آرین زارعی

if (mynumber >= 2)
{
Console.WriteLine(“In Adad Aval Hastand : {0}”, 2);
}

for (int i = 3; i <=mynumber; i++) { ismorakkab = false; for (int j=2 ; j <=i/2; j++) { if (i%j == 0) { ismorakkab = true; } } if (ismorakkab == false) { Console.WriteLine("In Adad Aval Hastand : {0}", i); } }

mehrdad_MK

ممنون … درست شد … کاملا اشتباهمو متوجه شدم …

هادی حمیداوی

سلام استاد من تازه در دوره شرکت کردم و از هم دوره ای هام عقب هستم امیدوارم بتونم زودتر خودم رو به کلاس برسونم
مشکلی که دارم بسیار ابتدایی هست معذرت
ویژوال استدیو 2013 رو دانلود کردم ولی برای استخراج از زیپ بعد از پارت 2 خطا میزنه نمیدونم مشکلش چیه لطفا راهنمایی فرمایید تشکر

آرین زارعی

مشکل مربوط میشه به لینک دانلودتون. از سایتی که دانلود کردید، پیگیری کنید. یا سی دی رو بخرید

سید احسان عظیمی

به نظرم نوشتن برنامه ای با موضوع سیستم فروش بلیط اتوبوس 45 نفره و رعایت کنار هم قرار نگرفتن زن و مرد نامحرم و قرار گرفتن زن و مرد محرم درکنار هم میتونه موضوع مناسبی برای آشنایی کامل با دستورات for،whileو if باشه 😎

آرین زارعی

شما خودتون میتونید به عنوان تمرین این رو انجام بدید.

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

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

آرین زارعی

سلام دوست عزیز.
متوجه هستم چه چیزی مد نظرتون هست من یکی دوتا از ساده هاش رو میگم بقیش رو میتونید با جست و جو پیدا کنید. بقیه به همین شکل استفاده می شوند.
int a = 24
a.tostring(“000”)
مثلا کد بالا عدد را در قالب یک عدد سه رقمی می نویسد و ارقام اضافه را از چپ صفر پر میکند.یا :
datetime dt = datetime.now
dt.tostring(“y*m*d”)
این هم برای تاریخ. مثال های دیگه شبیه این هست. لطفا سرچ بفرمایید پیدا میشه
موفق باشید

پژمان

ممنون. باچه عنوانی سرچ کنم؟ مثلا با عنوان C# Numeric string formats سرچ کردم مطالب غیر مرتبط میاره. نمیدونم دقیقا با چه عنوانی باید سرچ کرد. سپاس

آرین زارعی

با عنوانی مثل format function for string یا شبیه این.

پژمان

مجددا سلام، سئوال دیگه ای دارم که جدا ااز سئوال فوق پاسخ بدید ممنون میشم. در مثال آخر مربوط به استفاده از حلقه for برای اثبات اول بودن عدد ورودی آیا میتوان بجای متغیر منطقی IsMorakab از یک متغیری شمارشی استفاده کرد. مثلا یک متغیر enumeration به نام Status . هر چند از یک متغیر عددی حاوی 0 و 1 هم به قول خودتون میشه استفاده کرد. ممنون

آرین زارعی

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

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.