если точка находится в какой либо вершине то это сразу видно при вводе начальных данных

а вот интерес состоит в том что если мы ставим конечно условие на равенство площади треугольника и суммы трех других площадей то при равных площадях нам программа выдаст отказ на принадлежность точки треугольнику

Насколько я понял, вы прописали нечто вроде
If(s1+s2+s3 = s) Then
WriteLn('In triangle');
Это неправильно.
Ибо дробные числа хранятся не точные. и сравнивать надо так:
Заводим некоторый епсилон
eps := 0.000000000001;
а собственно сравнение:
If (abs(s1+s2+s3-s)<eps) Then
Write('In triangle');
Функцию abs, считающую модуль числа, я думаю вы сможете написать сами ;-)
Есть другой метод.
Берём ещё одну точку, такую, что она гарантированно вне треугольника, и отреок, соединяющий нашу точку с новой точкой не проходит ни через одну вершину, и при этом не собержит ни одну сторону треугольника (например с большой вероятностью точка с координатами x+1, y+1000000, где х - абсцисса заданной точки, а у - её ордината, подойдёт). А дальше просто посчитаем число пересечений этого отрезка со сторонами треугольника. Если 0 или 2, то точка вне треугольника, если 1, то внутри. Основная загвоздка этого метода - написать функцию, определяющую, пересекаются ли отрезки.