gle);=CenterY + (KLTX-CenterX) * sin (angle) + (KLTY-CenterY ) * cos (angle); =CenterX + (KRTX-CenterX) * cos (angle) - (KRTY-CenterY) * sin (angle);=CenterY + (KRTX-CenterX) * sin (angle) + (KRTY-CenterY) * cos (angle);
=CenterX + (KLDX-CenterX) * cos (angle) - (KLDY-CenterY) * sin (angle);=CenterY + (KLDX-CenterX) * sin (angle) + (KLDY-CenterY) * cos (angle); =CenterX + (KRDX-CenterX) * cos (angle) - (KRDY-CenterY) * sin (angle);=CenterY + (KRDX-CenterX) * sin (angle) + (KRDY-CenterY) * cos (angle); =angle;
} FindSquare ()
{= side * side;
} FindPerimeter ()
{= side * 4;
}
}; Circle: public Shape//коло
{: Radius;// радіус (float KRadius, float KCenterX, float KCenterY)//конструктор
{= 1;// задаємо тип=KRadius;// копіюємо параметри=KCenterX; =KCenterY;
} Move (float X, float Y)//зрушити коло=зрушити центр
{+=X; +=Y;
} Rotate (float Kangle) {};// обертання кола не впливає на параметри Resize (float X, float Y)//збільшити радіус; другий параметр записаний у віртуальній функції - значить він повинен бути і тут, тому це не перевантаження функції
{+=X;
} FindSquare ()
{= M_PI * Radius * Radius;
} FindPerimeter ()
{= M_PI * Radius * 2;
}
}; main ()
{( chcp тисячі двісті п'ятьдесят-одна ); lt; Shape * gt; Shapes;// масив фігур (1)//виконувати меню до виходу з програми
{
cout lt; lt; Введіть номер команди і натисніть Enter. lt; lt; endl lt; lt; 1. Вибрати фігуру lt; lt; endl lt; lt; 2. Створити фігуру lt; lt; endl lt; lt; 3. Знайти мінімальний коло, що описує всі наявні фігури lt; lt; endl lt; lt; 4. Вихід lt; lt; endl;
int task; gt; gt; task; (task == 4)
{;
} if (task == 1)
{(Shapes.size () gt; 0)
{(1)
{(int i=0; i lt; Shapes.size (); i ++)
{ lt; lt; (i + 1) lt; lt; laquo ;. raquo ;; (Shapes [i] - gt; type == 1)
{* Temp=dynamic_cast lt; Circle * gt; (Shapes [i]);// приведення до типу кола lt; lt; Круг - Радіус= lt; lt; Temp- gt; Radius lt; lt; Центр lt; lt; Temp- gt; CenterX lt; lt; laquo ;; lt; lt; Temp- gt; CenterY lt; lt; laquo ;; lt; lt; endl;
} if (Shapes [i] - gt; type == 2)
{* Temp=dynamic_cast lt; Rectangle * gt; (Shapes [i]);// приведення до типу прямокутника lt; lt; Прямокутник - Лівий Верхній Кут lt; lt; Temp- gt; LTX lt; lt; laquo ;; lt; lt; Temp- gt; LTY lt; lt; laquo ;; Правий нижній кут lt; lt; Temp- gt; RDX lt; lt; laquo ;; lt; lt; Temp- gt; RDY lt; lt; laquo ;; lt; lt; endl;
} if (Shapes [i] - gt; type == 3)
{* Temp=dynamic_cast lt; Quadrate * gt; (Shapes [i]);// приведення до типу квадрата lt; lt; Квадрат - Лівий Верхній Кут lt; lt; Temp- gt; LTX lt; lt; laquo ;; lt; lt; Temp- gt; LTY lt; lt; laquo ;; Сторона lt; lt; Temp- gt; side lt; lt; laquo ;; lt; lt; endl;
}
} lt; lt; (Shapes.size () + 1) lt; lt; laquo ;. У головне меню lt; lt; endl; lt; lt; Введіть номер фігури lt; lt; endl;
int fnum; gt; gt; fnum; fnum -; (fnum gt; Shapes.size () - 1) break;
if (Shapes [fnum] - gt; type == 1)
{*Temp=dynamic_castlt;Circle*gt;(Shapes[fnum]);gt;FindSquare();gt;FindPerimeter();lt;lt;laquo;Круг:Информацияraquo;lt;lt;endllt;lt;laquo;Радиус=raquo;lt;lt;Temp-gt;Radiuslt;lt;laquo;;raquo;lt;lt;endllt;lt;laquo;Центр: lt; lt; Temp- gt; CenterX lt; lt; laquo ;; lt; lt; Temp- gt; CenterY lt; lt; laquo ;; raquo;lt;lt;endllt;lt;laquo;Площадь=raquo;lt;lt;Temp-gt;Squarelt;lt;laquo;;raquo;lt;lt;endllt;lt;laquo;Периметр=raquo;lt;lt;Temp-gt;Perimeterlt;lt;laquo;;raquo;lt;lt;endl;
} if (Shapes [fnum] - gt; type == 2)
{*Temp=dynamic_castlt;Rectangle*gt;(Shapes[fnum]);gt;FindSquare();gt;FindPerimeter();lt;lt;laquo;Прямоугольник:Информацияraquo;lt;lt;endllt;lt;laquo;Левый Верхній Кут: lt; lt; Temp- gt; LTX lt; lt; laquo ;; lt; lt; Temp- gt; LTY lt; lt; laquo ;; lt; lt; endl lt; lt; Правий верхній кут lt; lt; Temp- gt; RTX lt; lt; laquo ;; lt; lt; Temp- gt; RTY...