C++ Bc. 12: Porovnání verzí

Z GeoWikiCZ
Bez shrnutí editace
Bez shrnutí editace
Řádek 5: Řádek 5:
</math>
</math>


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 <tt>plocha()</tt> 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 [[C plus plus Bc. Chyba|Chyba]].
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 <tt>plocha()</tt> 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 [[C plus plus Bc. Chyba|Chyba]].


  struct Chyba
  struct Chyba

Verze z 26. 2. 2006, 18:38

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);

[ Zpět | C++ ]