Практикум по курсу "Алгоритмизация и программирование". Часть 2. Андрианова А.А - 14 стр.

UptoLike

А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова .
координатам трех вершин треугольника. Возвращаемое значение величина
площади.
В главной программе вызываем функцию AreaTriangle четыре раза.
При вычислении площади используется стандартная функция вычисле-
ния квадратного корня. Она не дает точного значения. В случае, когда точка
принадлежит треугольнику, сумма площадей внутренних треугольников мо-
жет незначительно отличаться от площади исходного треугольника. Поэтому
сравнение на равенство площадей происходит с точностью
ε
.
# include <stdio.h>
# include <math.h>
// прототип функции вычисления площади треугольника
float AreaTriangle(float x1, float y1,
float x2, float y2,
float x3, float y3);
void main(void)
{
printf("Введите координаты вершин треугольника:");
float x1,x2,x3,y1,y2,y3,x,y,eps;
while(true)
{
scanf("%f",&x1);
scanf("%f",&y1);
scanf("%f",&x2);
scanf("%f",&y2);
scanf("%f",&x3);
scanf("%f",&y3);
if(!((x1!=x2 || y1!=y2) && (x1!=x3 || y1!=y3) &&
(x2!=x3 || y2!=y3)))
printf("Неверно заданы координаты вершин
треугольника");
else break;
}
printf("Введите координаты точки:");
scanf("%f",&x);scanf("%f",&y);
eps=0.0001;
// вычисление площадей треугольников
float s=AreaTriangle(x1,y1,x2,y2,x3,y3);
float s1=AreaTriangle(x,y,x2,y2,x3,y3);
float s2=AreaTriangle(x1,y1,x,y,x3,y3);
float s3=AreaTriangle(x1,y1,x2,y2,x,y);
14
А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова                    .
координатам трех вершин треугольника. Возвращаемое значение – величина
площади.
    В главной программе вызываем функцию AreaTriangle четыре раза.
    При вычислении площади используется стандартная функция вычисле-
ния квадратного корня. Она не дает точного значения. В случае, когда точка
принадлежит треугольнику, сумма площадей внутренних треугольников мо-
жет незначительно отличаться от площади исходного треугольника. Поэтому
сравнение на равенство площадей происходит с точностью ε.
    # include 
    # include 

    // прототип функции вычисления площади треугольника
    float AreaTriangle(float x1, float y1,
                       float x2, float y2,
                       float x3, float y3);

    void main(void)
    {
          printf("Введите координаты вершин треугольника:");
          float x1,x2,x3,y1,y2,y3,x,y,eps;
          while(true)
          {
               scanf("%f",&x1);
               scanf("%f",&y1);
               scanf("%f",&x2);
               scanf("%f",&y2);
               scanf("%f",&x3);
               scanf("%f",&y3);
               if(!((x1!=x2 || y1!=y2) && (x1!=x3 || y1!=y3) &&
                                      (x2!=x3 || y2!=y3)))
                    printf("Неверно заданы координаты вершин
                             треугольника");
               else break;
          }
          printf("Введите координаты точки:");
          scanf("%f",&x);scanf("%f",&y);
          eps=0.0001;

            // вычисление площадей треугольников
            float s=AreaTriangle(x1,y1,x2,y2,x3,y3);
            float s1=AreaTriangle(x,y,x2,y2,x3,y3);
            float s2=AreaTriangle(x1,y1,x,y,x3,y3);
            float s3=AreaTriangle(x1,y1,x2,y2,x,y);

                                            14