Пусть в треугольнике ABC заданные координаты вершин A = (0,0), B = (а, b), где а и
b - целые числа, вводимые пользователем. Разработать функцию (метод), которая
определяет следующие цели целочисленные координаты вершины C = (x, y), чтобы площадь треугольника ABC
была минимальной (среди не равны нулю). Всего функций (методов) должно
быть или две (CalcMinOfSquares и CalcTriangleSquareByPoints), или три (при исчислении
площади по формуле Герона ввести также функцию (метод) CalcSideLength, которая
превращает координаты концов стороны в ее длину) . Поиск минимальной
площади делать путем перебора возможных координат точки C.
Я использовал 2 метода (CalcTriangleSquareByPoints и CalcSideLength), но не могу понять как доделать уже 3-тий день пытаюсь написать данный код
Вот код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Практична_3
{
class Program
{
static double CalcSideLength(int x1, int y1, int x2, int y2)
{
return Math.Sqrt(Math.Pow(x2 - x1, 2) + Math.Pow(y2 - y1, 2));
}
static double CalcTriangleSquareByPoints(int x1, int y1, int x2, int y2, int x3, int y3)
{
double a = CalcSideLength(x1,y1,x2,y2);
double b = CalcSideLength(x3,y3,x2,y2);
double c = CalcSideLength(x1,y1,x3,y3);
double p = (a + b + c) / 2;
return Math.Sqrt(p * (p - a) * (p - b) * (p - c));
}
/*static double CalcMinOfSquares(int x1, int y1, int x2, int y2, int x3, int y3)
{
double S = CalcTriangleSquareByPoints(x1, y1, x2, y2, x3, y3);
if (S)
}
*/
static void Main(string[] args)
{
double a= double.PositiveInfinity;
double b = double.PositiveInfinity;
double AC = Math.Sqrt(Math.Pow(0 - a, 2) + Math.Pow(0 - b, 2));
int q = int.Parse(Console.ReadLine());
int w = int.Parse(Console.ReadLine());
for ( a=double.PositiveInfinity ; AC>0 && AC<10; a-- )
{
for (b=double.PositiveInfinity; AC > 0 && AC < 10; b-- )
{
Console.WriteLine(b);
}
Console.WriteLine(a);
}
Console.ReadKey();
}
}
}
Там есть и некоторые наброски