یک برنامهٔ 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 برای کار با عناصر استفاده کنید.

توسط پژوهشگر در 223 روز قبل ساعت 01:03
دسته بندی ها: C Plus Plus C Plus Plus for beginner
sara در 223 روز قبل ساعت 14:50

برای پیمایش با iteratorها از std::begin(vec) و std::end(vec) یا vec.begin()/vec.end() استفاده کنید و قبل از محاسبهٔ مرکز هندسی وجود بردار را بررسی کنید تا از تقسیم بر صفر جلوگیری شود. در عبور اول با auto const& p مقدار x و y را از هر نقطه می‌خوانید و مجموع آن‌ها را برای محاسبهٔ میانگین به‌هم می‌گذارید تا مرکز هندسی به‌دست آید. در عبور دوم با std::hypot یا sqrt فاصلهٔ هر نقطه تا مرکز را محاسبه کنید و بیشینه را پیدا کنید، با استفاده از auto const& برای دسترسی به عناصر. در نهایت اگر بردار خالی است یا داده‌ای وجود ندارد، خروجی مناسبی چاپ کنید تا کاربر بداند.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری