Feladat: egy lehetséges háromszög kerülete és területe

Generáljunk 3 egész számot 50-től 200-ig tartó tartományban. Ezek lesznek a lehetséges háromszög oldalai cm-ben. Döntsük el, hogy ez lehet-e háromszög vagy sem, ha igen akkor jelenítsük meg a kerületet és a területet.

29. ábra 

 

Forráskódja:

namespace ConsoleApplication17

{

class Program

{

static void Main(string[] args)

{

int min = 50, max = 200;

System.Random r = new System.Random();

int a = r.Next(min, max);

int b = r.Next(min, max);

int c = r.Next(min, max);

if ((a < b + c) && (b < a + c) && (c < b + c))

{

int kerület = a + b + c;

System.Console.WriteLine("Kerület: " + kerület);

double s = kerület / 2;

double terület = System.Math.Sqrt(s * (s - a) * (s - b) * (s - c));

System.Console.WriteLine("Terület: " + System.Math.Round(terület,3));

}

else

{

System.Console.WriteLine("Nem háromszög!!!");

}

}

}

}

A program első részében a programunk véletlen számokat generál az oldalaknak

int min = 50, max = 200;

System.Random r = new System.Random();

int a = r.Next(min, max);

Ha igaz mind a három oldalra, hogy bármely oldal rövidebb, mint a másik két oldal összege, akkor ez egy háromszög.

if ((a<b+c)&&(b<a+c)&&(c<b+c))

Számoljuk ki a kerületet (perimeter):

int kerület=a+b+c;

A geometriában a Heron-képlet, amit az Alexandriai Heron után neveztek el, kimondja, hogy a háromszög „A” területe, amelynek oldalai a, b és c hosszúságúak:

ahol “s” a háromszög félkerülete:

 

A C#-ban a következő módon írjuk ezt:

double s=kerület/2;

System.Math.Sqrt(s*(s-a)*(s-b)*(s-c));

Hasonlóan a többi metódushoz a Math objektumban, ez is double értékkel tér vissza. Ez most fontos is, mert mert a tizedesjegyekre is szükségünk lesz.

A terület kíratása:

System.Console.WriteLine("Terület:"+System.Math.Round(terület,3));

A területet double típuskban kapjuk vissza, ami egy hosszú tizedestörtet eredményez. Azt szeretnénk, hogy csak 3 tizedesjegyig történjen meg a kiírás, így használjuk a kerekítést: ezt C# erre a System.Math.Round függvényt kínálja, melynél megadjuk a kerekítendő értéket, majd a megjeleníteni kívánt tizedesjegyek számát.

 

 

 

 

 

 

A tananyag a követkkező licenc alá esik: GNU Free Documentation License