Дан треугольник с координатами (-1;0) (1;0) (0;1) Определить принадлежит ли точка (-5;5) этому треугольнику - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите, пожалуйста!

Решение задачи: «Дан треугольник с координатами (-1;0) (1;0) (0;1) Определить принадлежит ли точка (-5;5) этому треугольнику»

textual
Листинг программы
#include <stdio.h>
#include <locale.h>
 
int main(){
    setlocale(LC_ALL, "rus");
    int i,k;
    float trX[3];
    float trY[3];
    float bufx, bufy;
    float dot[2];
    printf("введите координаты вершин треугольника:\n ВВОДИТЬ ЧЕРЕЗ ПРОБЕЛ!!!\n\nпервая вершина (x y):");
    scanf("%f %f", &trX[0], &trY[0]);
    printf("вторая вершина (x y):");
    scanf("%f %f", &trX[1], &trY[1]);
    printf("третья вершина (x y):");
    scanf("%f %f", &trX[2], &trY[2]);
    printf("координаты точки (x y):");
    scanf("%f %f", &dot[0], &dot[1]);
 
    float S,S1,S2,S3;
    S = 0.5*((trX[0]-trX[2])*(trY[1]-trY[2])-(trX[1]-trX[2])*(trY[0]-trY[2]));
    if(S<0) S*=(-1);
    S1 = 0.5*((dot[0]-trX[2])*(trY[1]-trY[2])-(trX[1]-trX[2])*(dot[1]-trY[2]));
    if(S1<0) S1*=(-1);
    S2 = 0.5*((trX[0]-trX[2])*(dot[1]-trY[2])-(dot[0]-trX[2])*(trY[0]-trY[2]));
    if(S2<0) S2*=(-1);
    S3 = 0.5*((trX[0]-dot[0])*(trY[1]-dot[1])-(trX[1]-dot[0])*(trY[0]-dot[1]));
    if(S3<0) S3*=(-1);
 
    if (S==S1+S2+S3)
        printf("принадлежит треугольнику\n");
    else printf("не принадлежит треугольнику\n");
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с языком программирования C.
  2. Установка русской локали для вывода информации на экран.
  3. Объявление переменных: i, k, bufx, bufy, dot, S, S1, S2, S3 и trX, trY.
  4. Ввод координат вершин треугольника и координат точки с помощью функции scanf.
  5. Вычисление площади треугольника по формуле Герона.
  6. Вычисление значений S1, S2 и S3, представляющих собой скалярные произведения отрезков, соединяющих вершины треугольника с искомой точкой.
  7. Вычисление значения S, равного сумме S1, S2 и S3.
  8. Проверка принадлежности точки к треугольнику по условию (S==S1+S2+S3).
  9. Вывод на экран соответствующего сообщения о принадлежности или непринадлежности точки к треугольнику.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы