آموزش ++C – ساختار تصمیم

یک دیدگاه

در قسمت قبل اصول اولیه برنامه نویسی در ++c معرفی شد. در این نوشته قصد داریم که ساختار شرط را مورد بررسی قرار دهیم.

در ++c ساختار تصمیم را با if و else پیاده سازی میکنیم. چنانچه با الگوریتم و فلوچارت آشنایی داشته باشید می‌توان معادلسازی زیر را در نظر گرفت:

با یک مثال شروع می‌کنیم

مثال ۱: برنامه‌ای بنویسید که دو عدد صحیح را از ورودی دریافت و بزرگترین آن‌ها را چاپ کند.

توضیح کد:

در خط ۹ شرط x>y چک می‌شود. چنانچه درست باشد خط ۱۱ اجرا می‌شود و چنانچه غلط باشد خط ۱۵ اجرا می‌شود.

مثال ۲: برنامه‌ای بنویسید که یک عدد از ورودی دریافت و زوجیت آن را چاپ کند.

خط ۸: در ++c شرط تساوی را با == نمایش می‌دهند. وقتی در شرط مینویسیم x%2==0 به این معناست که اگر باقیمانده x بر ۲ صفر شد مقدار این عبارت برابر true شود و چنانچه برابر صفر نباشد یعنی مقدار این عبارت false است. (توجه داشته باشید = در ++c به معنی انتساب است مثلا x=2 به این معنی است که ۲ را در x ذخیره کن.)

مثال ۳: بنویسید که بزرگترین عدد بین ۳ عدد حقیقی را چاپ کند.

در این مثال در ابتدا فرض میکنیم عدد اول بزرگترین عدد است و آن را در max ذخیره میکنیم. سپس اعداد بعدی را با max مقایسه میکنیم. چنانچه هر کدام از اعداد از max بزرگتر باشد آن عدد را در max ذخیره میکنیم. اگر کد را با دقت خوانده باشید حتما متوجه شده‌اید که میتوانیم if را بدون else بنویسیم و لزومی ندارد که برای هر if حتما else تعریف شود.

مثال ۴: برنامه‌ای بنویسید که از ورودی ضرایب یک معادله درجه ۲ را دریافت کند و ریشه های آن را چاپ کند

توضیح کد:

در این کد با ساختار جدیدی آشنا می‌شوید: else if. ممکن است این سوال برایتان پیش بیاید که چه موقع از else if استفاده میکنیم؟

در پاسخ باید گفت چنانچه شما با متغیری روبرو هستید که مقدار آن در دو حالت برایتان مهم است از if و else استفاده میکنید. مثلا میخواهید بدانید x زوج است یا خیر، x مثبت است یا خیر …
اما اگر در وضعیتی باشید که چند مقدار برای متغیر متصورید باید از if ، else if (و در صورت نیاز else) استفاده کنید. مثلا در مثال بالا مقدار دلتا درا ۳ حالت امکان‌پذیر است: مثبت، منفی و صفر.

مثال ۵: برنامه‌ای بنویسید که تعداد روزهای گذشته از سال را بگیرد و مشخص کند در چه فصلی هستیم.

توضیح کد:

در این کد برای عددی که از ورودی دریافت می‌شود ۴ حالت امکان‌پذیر است. بنابراین باید از if و else if استفاده کرد. نکته مهمی که در این کد در نظر گرفته نشده است صحت عدد ورودی است. مثلا اگر عدد ورودی کاربر عدد نامعتبر ۱- باشد در خروجی بهار چاپ می‌شود. (چرا؟) همچنین اگر عدد ۴۰۰ وارد کند زمستان چاپ می‌شود. (چرا؟) برای حل این مشکل می‌توان شرط اول را به این صورت بازنویسی کنیم:

و برای حل مشکل دوم نیز کد زیر را جایگزین خط ۲۲ تا ۲۵ میکنیم:

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

۱- ممکن است در برخی مسائل نیاز به بررسی چند شرط همزمان باشد. به طور مثال اعدادی که هم بر ۳ و هم بر ۵ بخش‌پذیرند. برای حل این مسائل می‌توان از if های تو در تو استفاده کرد که خوانایی برنامه را کاهش می‌دهند. روش بهتر این است که از ترکیب شرطها استفاده کنیم. برای این کار می‌توان از عملگرهای && یا || استفاده کرد. عملگر && به معنی “و” و عملگر || به معنی “یا” است. مثلا شرط زیر به این معنی است که x هم بر ۵ بخش‌پذیر باشد و هم بر ۳:

و شرط زیر به این معنی است که x یا بر ۵ بخش‌پذیر باشد یا بر ۳:

۲- علامت ! (بخوانید نقیض) برای برعکس کردن حاصل یک عبارتست، یعنی اگر مقدار آن true باشد آن را false و اگر false باشد، آن را true می‌کند. مثلا شرط (۱<2)! یک عبارت false است.

۳- اولویت && بیشتر از || است و اولویت ! از هر دو اولویت && و || بیشتر است. مثلا حاصل شرط زیر true است: (چرا؟)

true    || true   && !true   ||    true

  • نویسنده
    حمید جهانگیری
  • تعداد بازدید
    1,312
۱دیدگاه فرستاده شده است.
شما هم دیدگاه خود را بنویسید
نوشته‌های ویژه
اخبار ویژه

با عضویت در خبرنامه، تازه‌ترین نوشته‌های وبلاگ را در ایمیل‌تان دریافت کنید.
برای عضویت نشانی ایمیل خود را وارد کرده و بر روی دکمه عضویت کلیک نمایید.