//Tady se obávám, že se na chvilku zastavíme... Někteří z vás dokonce ztroskotají //Double jak otakový je decentě hazradní datový typ //Pro většinu operací stačí ale není naprosto exaktní (tzn. že když vidíme 0.5 v paměti může být 0.50001) //Proto musíme zvolit tento nepříliš krásný přístup na porovnání přesností //Přesný datový typ je například decimal public bool IsStejny(Bod druhy, double presnost) { bool stejny = false; if (Math.Abs(X - druhy.X) < presnost && Math.Abs(Y - druhy.Y) < presnost) { stejny = true; } return(stejny); }
static void Main(string[] args) { //Nejprve si projděte třídu Bod! //Zde není nic moc co vysvětlovat Bod prvni = new Bod(0, 0); Bod druhy = new Bod(3, 0); Bod treti = new Bod(3, 4); Bod ctvrty = prvni.Posunuti(3, 4); Console.WriteLine(prvni.Vzdalenost(treti)); Console.WriteLine(treti.Vzdalenost(ctvrty)); Console.WriteLine(treti.IsStejny(ctvrty, 0.001)); Console.ReadLine(); }
//Vzdálenost dvou bodů vypočítáme formulí když zabrouzdáte do paměti, je to odvoze od phytágorovky //Jako parametr přijímáme další bod //vrátí double reprezentující vzdálenost public double Vzdalenost(Bod druhy) { return(Math.Sqrt(Math.Pow(druhy.X - X, 2) + Math.Pow(druhy.Y - Y, 2))); }
//Třetí chceme-li defakto bod zkopírovat jako nový -> parametr konstruktoru bude jiný bod public Bod(Bod druhy) { X = druhy.X; Y = druhy.Y; }