• В Паскале (Pascal ABC) выдает ошибку "Нельзя преобразовать тип real к типу integer". как исправить? По заданию нужно написать программу, которая определяет, принадлежит ли точка с координатами (х,у) треугольнику с вершинами в точках с координатами (х1,у1), (х2,у2), (х3,у3). программа:
    program _1;
    var x,y,x1,y1,x2,y2,x3,y3:real;
    begin
    write('Введите координаты точки(х,у)'); read(x,y);
    write('Введите координаты первой вершины треугольника(х1,у1)'); read(x1,y1);
    write('Введите координаты второй вершины треугольника(х2,у2)'); read(x2,y2);
    write('Введите координаты третьей вершины треугольника(х3,у3)'); read(x3,y3);
    if ((x-x2)/(x2-x1)-(y-y2)/(y2-y1))<=0 and ((x-x3)/(x3-x2)-(y-y3)/(y3-y2))<=0 and ((x-x3)/(x3-x1)-(y-y3)/(y3-y1))>=0
    then writeln('Точка с введенными вами координатами принадлежит треугольнику') else writeln('Точка с введенными вами координатами не принадлежит треугольнику');
    end.

Ответы 4

  • Кстати, алгоритм не рабочий при вводе координат точки (-1,0) и координат вершин (-1,-3) (-3,2) (4,3) программа выдает, что точка не принадлежит треугольнику, а на самом деле - принадлежит.
  • Да, я тоже проверил. Ошибочка в алгоритме
    • Автор:

      erin
    • 5 лет назад
    • 0
  • Через любые две вершины треугольника проводим прямую и определяем, лежат ли в одной полуплоскости третья вершина и заданная точка, если лежат, то точка внутри треугольника, иначе - нет.
  • Скобки добавьте(((x-x2)/(x2-x1)-(y-y2)/(y2-y1))<=0)and (((x-x3)/(x3-x2)-(y-y3)/(y3-y2))<=0)and (((x-x3)/(x3-x1)-(y-y3)/(y3-y1))>=0)
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years