Площадь выпуклого прямоугольника - C (СИ)

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

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

. Площадь треугольника, заданного координатами своих вершин, находится по формуле S = 0.5 * |x1y2 + x2y3 + x3y1 - x1y3 - x2y1 -x3y2|. Используя функцию для вычисления площади треугольника, определить площадь выпуклого четырехугольника ABCD, заданного координатами своих вершин.
#include<conio.h>
#include<math.h>
#include<stdio.h>
void main()
{
    float x1,x2,x3,x4,y1,y2,y3,y4;
    float  S3(int,int,int,int,int,int);
    float S4(int,int,int,int,int,int,int,int);

    puts("Vvedite koordinati verwini - x1");
    scanf("%f",&x1);
    puts("Vvedite koordinati verwini - x2");
    scanf("%f",&x2);
    puts("Vvedite koordinati verwini - x3");
    scanf("%f",&x3);
    puts("Vvedite koordinati verwini - x4");
    scanf("%f",&x4);

    puts("Vvedite koordinati verwini - y1");
    scanf("%f",&x1);
    puts("Vvedite koordinati verwini - y2");
    scanf("%f",&y2);
    puts("Vvedite koordinati verwini - y3");
    scanf("%f",&y3);
    puts("Vvedite koordinati verwini - y4");
    scanf("%f",&y4);

    getch();
}
float S3(int x1, int x2,int x3, int y1, int y2, int y3)
{
 
    int a = fabs(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2);
    float S3 = 0.5* a ;
    printf("S 3 = %f",S3);
    return S3;
}
float S4(int x1, int x2,int x3, int x4,int y1, int y2, int y3,int y4)
{
    float S1=S3(x1,x2,x3,y1,y2,y3);
    float l1,l2,l3,S2;
    l1=sqrt(((x1-x2)*(x1-x2))+((y1-y2)*(y1-y2)));
    l2=sqrt(((x3-x2)*(x3-x2))+((y3-y2)*(y3-y2)));
    l3=sqrt(((x3-x1)*(x3-x1))+((y3-y1)*(y3-y1)));
    if ((l1>l2) && (l1>l3)) S2=S3(x4,x2,x3,y4,y2,y3);
    if ((l2>l1) && (l2>l3)) S2=S3(x4,x1,x3,y4,y1,y3);
    if ((l3>l1) && (l3>l2)) S2=S3(x4,x1,x2,y4,y1,y2);
    float S4=S1+S2;
    printf(" S4 = %f",S4);
    return S4;
}
совершенно не понимаю как вызываются функции. да и программа после ввода координат х и у завершает работу

Решение задачи: «Площадь выпуклого прямоугольника»

textual
Листинг программы
#include<conio.h>
#include<math.h>
#include<stdio.h>
//float s3,s4;
void main()
{
    int x1,x2,x3,x4,y1,y2,y3,y4;
 
    float s3,s4;
 
    float  S3(int,int,int,int,int,int);
    float S4(int,int,int,int,int,int,int,int);
 
    
    puts("Vvedite koordinati verwini - x1");
    scanf("%f",&x1);
    puts("Vvedite koordinati verwini - x2");
    scanf("%f",&x2);
    puts("Vvedite koordinati verwini - x3");
    scanf("%f",&x3);
    puts("Vvedite koordinati verwini - x4");
    scanf("%f",&x4);
 
 
    puts("Vvedite koordinati verwini - y1");
    scanf("%f",&x1);
    puts("Vvedite koordinati verwini - y2");
    scanf("%f",&y2);
    puts("Vvedite koordinati verwini - y3");
    scanf("%f",&y3);
    puts("Vvedite koordinati verwini - y4");
    scanf("%f",&y4);
    
    s3=S3(x1,x2,x3,y1,y2,y3);
    s4=S4(x1,x2,x3,x4,y1,y2,y3,y4);
 
    printf("S3 = %.f\nS4 = %.f\n",s3,s4);
    
    getch();
}
float S3(int x1, int x2,int x3, int y1, int y2, int y3)
{
 
    int a = fabs(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2);
    float S3 = 0.5*a ;
    //printf("S 3 = %f",S3);
    return S3;
}
float S4(int x1, int x2,int x3, int x4,int y1, int y2, int y3,int y4)
{
    float S1=S3(x1,x2,x3,y1,y2,y3);
    float l1,l2,l3,S2;
    l1=sqrt(((x1-x2)*(x1-x2))+((y1-y2)*(y1-y2)));
    l2=sqrt(((x3-x2)*(x3-x2))+((y3-y2)*(y3-y2)));
    l3=sqrt(((x3-x1)*(x3-x1))+((y3-y1)*(y3-y1)));
    if ((l1>l2) && (l1>l3)) S2=S3(x4,x2,x3,y4,y2,y3);
    if ((l2>l1) && (l2>l3)) S2=S3(x4,x1,x3,y4,y1,y3);
    if ((l3>l1) && (l3>l2)) S2=S3(x4,x1,x2,y4,y1,y2);
    float S4=S1+S2;
    //printf(" S4 = %f",S4);
    return S4;
}

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

В этом коде выполняется вычисление площади выпуклого прямоугольника по его вершинам с использованием формулы Герона. Список действий:

  1. Ввод координат вершин прямоугольника (x1,y1) и (x2,y2) с помощью функции scanf.
  2. Вычисление площади треугольника по формуле Герона с помощью функции S3, которая принимает координаты вершин треугольника (x1,y1), (x2,y2), (x3,y3) и возвращает его площадь.
  3. Вычисление длин сторон треугольника (x1-x2), (x2-x3), (x3-x1), (y1-y2), (y2-y3), (y3-y1) с помощью функции sqrt из библиотеки math.h.
  4. Вычисление площади треугольника по формуле Герона с помощью функции S4, которая принимает координаты вершин прямоугольника (x1,y1), (x2,y2), (x3,y3), (x4,y4) и возвращает его площадь.
  5. Вывод значений площадей S3 и S4 с помощью функции printf.
  6. Ввод значения 0 для завершения программы с помощью функции getch. Примечание: значения переменных x1,x2,x3,x4,y1,y2,y3,y4,s3,s4 не выводились на экран в данном коде.

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


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

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

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