محاسبه میانگین در سی پلاس پلاس
بنام حق
دوستان عزیز درود
معمولا در درس برنامه نویسی به زبان C یا ++C مثال های مختلفی هست که از شما خواسته می شه که اون رو انجام بدید یکی از این مثال ها به صورت زیر است.
برنامه ای بنویسید که تعدادی عدد را از ورودی دریافت کند و میانگین آن ها را محاسبه نماید. آخرین عدد ورودی یک عدد بزرگتر از 1000 است.
برای نوشتن چنین برنامه هایی نیاز به یک حلقه داریم نا محدود داریم که شرط خارج شدن از آن نیز در متن سوال دیده می شود. مثلا در این تمرین اگر کاربر عددی بزرگتر از 1000 وارد کند باید از حلقه خارج شویم.
حل تمرین : در ادامه حل تمرین را خواهیم دید.
// 2-2.cpp : Defines the entry point for the console application. // mohsen semsar pour // tamrin miyangin #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int a, no=0; float avg=0, sum=0; do { cout << "enter a number : "; cin >> a; if (a >= 1000) break; no++; sum = sum + a; avg = sum / no; } while (1); cout << avg; cin.get(); cin.get(); return 0; }
توضیحات برنامه :
در خط اول تا سوم توضیحات یا کامنت ها قرار می گیرند. این خطوط تاثیری در خروجی برنامه نداشته و تنها برای راهنمایی و توضیحات استفاده می گردد.
در خط پنجم و ششم کتابخانه های مورد نظر را وارد می کنیم.
در خط ششم با استفاده از دستور using namespace در اول برنامه نام std را معرفی می کنیم تا در کدهای cin و cout نیازی به نوشتن std قبل از آن ها نداشته باشیم. در واقع اگر این خط را ننویسیم باید قبل از cin و cout دستور std.cin یا std.cout را بنویسیم.
خط نهم شروع تابع اصلی برنامه است. در مورد این موضوع در اینجا بیشتر مطالعه کنید.
در خط یازدهم دو متغییر به نام های a و no تعریف کرده و نوع آن ها int در نظر می گیرم.
در خط دوازدهم دو متغییر دیگر معرفی می شوند که از نوع float هستند که می توانند عدد اعشاری را در خود نگاه دارند. این دو عدد با اسامی avg و sum نام گذاری شده اند و مسئول نگه داری میانگین و مجموع هستند.
در خط سیزدهم یک حلقه نا محدود را ایجاد می کنیم.
در خط پانزدهم یک خط با عبارت “enter a number” در خروجی درج می کنیم و از کاربر می خواهیم که یک عدد وارد کند.
در خط شانزدهم با استفاده از دستور cin عددی را از کاربر گرفته و در a نگه داری می کنیم.
در خط هفده و هجده یک شرط داریم که چک می کند عددی که کاربر وارد کرده با 1000 مساوی است یا بیشتر از آن است اگر این چنین بود از حلقه خارج می گردد.
در خط نوزده متغییر no را یکی اضافه می کنیم در واقع این متغییر تعداد عددی که کاربر تا کنون وارد کرده را برای ما نگهداری می کند.
در خط بیست مقدار کنونی sum را با عددی که کاربر وارد کرده جمع می کنیم و در sum می ریزم.
در خط بیست و یکم sum را بر no تقسیم می کنیم و آن ها در avg ذخیره سازی می کنیم. در واقع مجموع را بر تعداد تقسیم می کنیم تا میانگین بدست آید.
در خط بیست و دوم حلقه را بسته و شرط آن را درج می کنیم. با استفاده از این روشی که شرط حلقه را 1 می گذاریم می توانیم یک حلقه نامحدود ایجاد کنیم.
در خط بیست و سوم مقدار میانگین را با استفاده از دستور cout در خروجی چاپ می کنیم.
در خط بیست و چهار و بیست و پنج از دو دستور ()cin.get استفاده می کنیم تا کاربر بتواند مقدار میانگین را مشاهده کرده و بعد از برنامه خارج شود. اگر از این دو دستور در آخر کار استفاده نکنیم کاربر نمی تواند مقدار میانگین را در خروجی ببیند.
در خط بیست و ششم با استفاده از return 0 عدد صفر را به عنوان خروجی تابع معرفی کرده و برنامه را پایان می دهیم. از آنجایی که در خط 9 معرفی کرده بودیم که خروجی تابع باید int باشد اینجا صفر را به عنوان خروجی در نظر می گیرم.
منتظر نظرات سازنده شما هستم
یا حق
(12115)
درود محسن جان
تبریک میگم هم به خلاقیت و هم به انگیزه هات در وب سایت شخصیت.. موفق هستی موفق تر باشی
بدرود
سپاس از شما ابوالفضل طالبی عزیز …
دست شما درد نکنه آقا محسن
امیدوارم برنامه آموزشی شما ادامه پیدا کنه و مباحث شی گرایی و کلاسها و متدها را هم زودتر اضافه کنی چون تا پایان ترم چیزی نمونده.
با تشکرمجدد
من تمام تلاشم رو می کنم که وقت خالی داشته باشم و خدمت دوستان باشم هر چند که آموزش هایی که در سایت ارائه می شه خیلی جنبه آموزش مستمر و دانشگاهی رو نداره ولی به هر حال کمک حال برخی از دوستان هست. در مورد مباحث شی گرایی و … هم سعی می کنم اگر وقت بشه مطالبی رو خدمت دوستان ارائه کنم.
با سپاس از اعلام نظرتون آقای پیرو عزیز !
ممنون. من تازه شروع کردم . خیلی خوب یاد میدین با مثال
خوشحالم که مفید بوده سپاس از شما
مرسی .عالی بود
خواهش سپاس از شما
اگر بخوام برنامه ای بنویسم که توی اون نمره سه درس ده دانشجو رو بگیرم و میانگین اون رو حساب کنم ونمره ها از زیاد به کم مرتب باشه باید چیکار کنم؟
ببینید برای انجام اینکار شما باید ابتدا از روشی که برای میانگین گفته شده میانگین رو حساب کنید و سپس با استفاده از الگوریتم های مرتب سازی اعداد را مرتب نمایید. اگر در مورد الگوریتم های مرتب سازی اطلاعات ندارید همین جا یا روی تلگرام سوالتون رو مطرح کنید من در خدمتم
I am so grateful for your article.
سلام اقا محسن من در اثر یک تقسیم اعشار بدست اوردم می خوام که عدد ورودی که تقسیم میشه اعشار بدست اومده از بین بره ؟
بنام حق
درود بر شما
اگه درست متوجه شده باشم منظورتون اینه که میانگین رو می خواین اعشار نداشته باشه درسته؟؟
با سپاس
یا حق
سلام من دانشجوی ترم دو دبیری هستم… برای حل این تمرین به مشکل برخوردم…
:برنامه ای بنویسید که میانگین ده نمره فردی را محاسبه و چاپ کند(نمرات در حلقه خوانده میشوند)
سلام علیکم برنامه ای که سه مقدار بگیرد و میانگین بزرگتر را چاپ کند وماکسیمیم را محاسبه کند شی گرا است
این کلیپ رو حتما ببینین
vidao