Из паскаля в си: Даны координаты вершин некоторого четырехугольника, найти его площадь по формуле Герона - C (СИ)
Формулировка задачи:
procedure Plsh(x1,y1,x2,y2,x3,y3:real;var s:real); var a,b,c,p:real; begin a:=sqrt(sqr(x1-x2)+sqr(y1-y2)); b:=sqrt(sqr(x2-x3)+sqr(y2-y3)); c:=sqrt(sqr(x3-x1)+sqr(y3-y1)); p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); end;
Решение задачи: «Из паскаля в си: Даны координаты вершин некоторого четырехугольника, найти его площадь по формуле Герона»
#include <stdio.h>
#include <math.h>
double geron(double, double, double, double, double, double);
int main()
{
double x1, y1, x2, y2, x3, y3;
scanf("%lf%lf%lf%lf%lf%lf", &x1, &y1, &x2, &y2, &x3, &y3);
printf("%f\n", geron(x1, y1, x2, y2, x3, y3));
return 0;
}
double geron(double x1, double y1, double x2, double y2, double x3, double y3)
{
double a, b, c, p, s;
a = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
b = sqrt((x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3));
c = sqrt((x3 - x1) * (x3 - x1) + (y3 - y1) * (y3 - y1));
p = (a+b+c)/2;
s = sqrt(p * (p - a) * (p - b) * (p - c));
return s;
}
Объяснение кода листинга программы
В этом коде функция geron вычисляет площадь четырехугольника по формуле Герона. Входные данные для функции - координаты вершин четырехугольника, которые пользователь вводит в основной функции main. Функция main сначала объявляет переменные x1, y1, x2, y2, x3, y3 для хранения координат вершин, а затем вызывает функцию scanf для ввода этих координат с клавиатуры. После ввода координат функция main вызывает функцию geron, передавая ей эти координаты в качестве аргументов, и выводит результат на экран с помощью функции printf. В функции geron сначала объявляются переменные a, b, c, p, s для хранения промежуточных значений, которые используются в вычислениях. Затем функция вычисляет длины сторон треугольников, образованных вершинами четырехугольника, с помощью функции sqrt и формулы a = sqrt((x1 - x2) (x1 - x2) + (y1 - y2) (y1 - y2)). Далее функция вычисляет полупериметр p четырехугольника, как среднее арифметическое длин его сторон. Затем функция вычисляет площадь четырехугольника по формуле Герона, используя полупериметр p и длины сторон треугольников. Наконец, функция возвращает значение площади четырехугольника, которое функция main выводит на экран с помощью функции printf.