یک برنامهٔ C++ بنویسید که با استفاده از Iteratorهای موجود در یک بردار از مختصات دوبعدی (std::vector<std::pair>) را پیمایش کند و مرکز هندسی (centroid) و بیشینهٔ فاصلهٔ نقاط نسبت به این مرکز را محاسبه و چاپ کند.
4.0 بازدید آخرین ویرایش در 223 روز قبل ساعت 01:03 0.0
کد را با شامل کردن هدرهای , , , و بنویسید؛ از std::begin و std::end یا vec.begin()/vec.end() برای پیمایش با iterator استفاده کنید. در یک عبور مجموع x و y را بهدست آورده و بر شمار عناصر تقسیم کنید تا مرکز هندسی بهدست آید، سپس در عبور دوم با iterator فاصلهٔ هر نقطه تا مرکز را (مثلاً با std::hypot یا sqrt) محاسبه و بیشینه را پیدا کنید؛ بهازای بردار خالی خروجی مناسب نمایش دهید و از auto و ارجاع const برای کار با عناصر استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پیمایش با iteratorها از std::begin(vec) و std::end(vec) یا vec.begin()/vec.end() استفاده کنید و قبل از محاسبهٔ مرکز هندسی وجود بردار را بررسی کنید تا از تقسیم بر صفر جلوگیری شود. در عبور اول با auto const& p مقدار x و y را از هر نقطه میخوانید و مجموع آنها را برای محاسبهٔ میانگین بههم میگذارید تا مرکز هندسی بهدست آید. در عبور دوم با std::hypot یا sqrt فاصلهٔ هر نقطه تا مرکز را محاسبه کنید و بیشینه را پیدا کنید، با استفاده از auto const& برای دسترسی به عناصر. در نهایت اگر بردار خالی است یا دادهای وجود ندارد، خروجی مناسبی چاپ کنید تا کاربر بداند.
گزارش