میانگین اعداد ورودی

محاسبه میانگین در سی پلاس پلاس

بنام حق

دوستان عزیز درود

معمولا در درس برنامه نویسی به زبان C یا ++C مثال های مختلفی هست که از شما خواسته می شه که اون رو انجام بدید یکی از این مثال ها به صورت زیر است.

برنامه ای بنویسید که تعدادی عدد را از ورودی دریافت کند و میانگین آن ها را محاسبه نماید. آخرین عدد ورودی یک عدد بزرگتر از ۱۰۰۰ است.

برای نوشتن چنین برنامه هایی نیاز به یک حلقه داریم نا محدود داریم که شرط خارج شدن از آن نیز در متن سوال دیده می شود. مثلا در این تمرین اگر کاربر عددی بزرگتر از ۱۰۰۰ وارد کند باید از حلقه خارج شویم.

حل تمرین : در ادامه حل تمرین را خواهیم دید.

توضیحات برنامه :

در خط اول تا سوم توضیحات یا کامنت ها قرار می گیرند. این خطوط تاثیری در خروجی برنامه نداشته و تنها برای راهنمایی و توضیحات استفاده می گردد.

در خط پنجم و ششم کتابخانه های مورد نظر را وارد می کنیم.

در خط ششم با استفاده از دستور using namespace در اول برنامه نام std را معرفی می کنیم تا در کدهای cin و cout نیازی به نوشتن std قبل از آن ها نداشته باشیم. در واقع اگر این خط را ننویسیم باید قبل از cin و cout دستور std.cin یا std.cout را بنویسیم.

خط نهم شروع تابع اصلی برنامه است. در مورد این موضوع در اینجا بیشتر مطالعه کنید.

در خط یازدهم دو متغییر به نام های a و no تعریف کرده و نوع آن ها int در نظر می گیرم.

در خط دوازدهم دو متغییر دیگر معرفی می شوند که از نوع float هستند که می توانند عدد اعشاری را در خود نگاه دارند. این دو عدد با اسامی avg و sum نام گذاری شده اند و مسئول نگه داری میانگین و مجموع هستند.

در خط سیزدهم یک حلقه نا محدود را ایجاد می کنیم.

در خط پانزدهم یک خط با عبارت “enter a number” در خروجی درج می کنیم و از کاربر می خواهیم که یک عدد وارد کند.

در خط شانزدهم با استفاده از دستور cin عددی را از کاربر گرفته و در a نگه داری می کنیم.

در خط هفده و هجده یک شرط داریم که چک می کند عددی که کاربر وارد کرده با ۱۰۰۰ مساوی است یا بیشتر از آن است اگر این چنین بود از حلقه خارج می گردد.

در خط نوزده متغییر no را یکی اضافه می کنیم در واقع این متغییر تعداد عددی که کاربر تا کنون وارد کرده را برای ما نگهداری می کند.

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

در خط بیست و یکم sum را بر no تقسیم می کنیم و آن ها در avg ذخیره سازی می کنیم. در واقع مجموع را بر تعداد تقسیم می کنیم تا میانگین بدست آید.

در خط بیست و دوم حلقه را بسته و شرط آن را درج می کنیم. با استفاده از این روشی که شرط حلقه را ۱ می گذاریم می توانیم یک حلقه نامحدود ایجاد کنیم.

در خط بیست و سوم مقدار میانگین را با استفاده از دستور cout در خروجی چاپ می کنیم.

در خط بیست و چهار و بیست و پنج از دو دستور ()cin.get استفاده می کنیم تا کاربر بتواند مقدار میانگین را مشاهده کرده و بعد از برنامه خارج شود. اگر از این دو دستور در آخر کار استفاده نکنیم کاربر نمی تواند مقدار میانگین را در خروجی ببیند.

در خط بیست و ششم با استفاده از return 0 عدد صفر را به عنوان خروجی تابع معرفی کرده و برنامه را پایان می دهیم. از آنجایی که در خط ۹ معرفی کرده بودیم که خروجی تابع باید int باشد اینجا صفر را به عنوان خروجی در نظر می گیرم.

منتظر نظرات سازنده شما هستم

یا حق

(۴۶۰۵)

13 پاسخ
  1. پیرو
    پیرو says:

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

    پاسخ دادن
    • محسن سمسارپور
      محسن سمسارپور says:

      من تمام تلاشم رو می کنم که وقت خالی داشته باشم و خدمت دوستان باشم هر چند که آموزش هایی که در سایت ارائه می شه خیلی جنبه آموزش مستمر و دانشگاهی رو نداره ولی به هر حال کمک حال برخی از دوستان هست. در مورد مباحث شی گرایی و … هم سعی می کنم اگر وقت بشه مطالبی رو خدمت دوستان ارائه کنم.
      با سپاس از اعلام نظرتون آقای پیرو عزیز !

      پاسخ دادن
  2. سارا
    سارا says:

    اگر بخوام برنامه ای بنویسم که توی اون نمره سه درس ده دانشجو رو بگیرم و میانگین اون رو حساب کنم ونمره ها از زیاد به کم مرتب باشه باید چیکار کنم؟

    پاسخ دادن
    • محسن سمسارپور
      محسن سمسارپور says:

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

      پاسخ دادن
    • محسن سمسارپور
      محسن سمسارپور says:

      بنام حق
      درود بر شما

      اگه درست متوجه شده باشم منظورتون اینه که میانگین رو می خواین اعشار نداشته باشه درسته؟؟

      با سپاس
      یا حق

      پاسخ دادن

دیدگاه خود را ثبت کنید

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *