C++ Bc. 12: Porovnání verzí
m Stránka C plus plus Bc. 12 přemístěna na stránku C++ Bc. 12 |
m plus plus -> ++ |
||
Řádek 22: | Řádek 22: | ||
double plocha(const Polygon& p); | double plocha(const Polygon& p); | ||
[ [[C | [ [[C++ Bc.|Zpět]] | [[C++ Bc. 12 cpp|C++]] | [[C++ Bc. 13|Další]] ] |
Verze z 2. 9. 2006, 09:41
Napište funkci plocha(), která počítá plochu polygonu podle vzorce
V závislosti na číslování vrcholů polygonu, může plocha vyjít i záporná a je proto nutno uvažovat absolutní hodnotu. V uvedeném vzorci se předpokládá, že polygon je uzavřený, tj. že poslední bod polygonu je identický s prvním bodem polygonu. Zajistěte aby funkce plocha() dávala správné výsledky pro uzavřené i neuzavřené polygony. Zajistěte, aby v případech kdy není zadán dostatečný počet bodů, funkce vyvolala výjimky Chyba.
struct Chyba { template <typename T> Chyba(T t) : text(t) {} std::string text; }; struct Bod { double x, y; }; typedef std::vector<Bod> Polygon; double plocha(const Polygon& p);