C++ Bc. 12: Porovnání verzí
Bez shrnutí editace |
Bez shrnutí editace |
||
Řádek 2: | Řádek 2: | ||
<math> | <math> | ||
P = 1 | P = {1\over2} \sum_{i=0}^{N-1} (x_{i+1} - x_i)(y_{i+1} + y_i) | ||
</math> | </math> | ||
Verze z 26. 2. 2006, 18:36
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 prot 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);