@IQI

Как определить координаты вершины C треугольника, чтобы площадь треугольника ABC была минимальной?

Пусть в треугольнике 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();
        }
    }
}

Там есть и некоторые наброски
  • Вопрос задан
  • 133 просмотра
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы