{
//функция возвращает длину отрезка, заданного координатами
// x1,y1 и x2,y2
return sqrt(pow(x1-x2,2)+pow(y1-y2,2));
}
Double square(double a, double b, double c)
{
//функция возвращает площадь треугольника,
//заданного длинами сторон а,b,c
double s, p=(a+b+c)/2;
return s=sqrt(p*(p-a)*(p-b)*(p-c));
}
Int triangle(double a, double b, double c)
{
//возвращает 1, если треугольник существует, иначе 0
return (a+b>c&&a+c>b&&c+b>a);
}
Void main()
{
double x1, y1, x2, y2, x3, y3;
double point1_2, point1_3, point2_3;
do
{
cout<<"\nEnter koordinats of triangle:";
cin>>x1>>y1>>x2>>y2>>x3>>y3;
point1_2=line(x1, y1, x2, y2);
point1_3=line(x1, y1, x3, y3);
point2_3=line(x2, y2, x3, y3);
If (triangle(point1_2, point1_3, point2_3))
cout<<"S="<<square(point1_2, point2_3, point1_3)<<"\n";
else cout<<"\nTriagle doesn’t exist";
}
while(!(x1==0&&y1==0&&x2==0&&y2==0&&x3==0&&y3==0)); }
Прототип функции
Для того чтобы к функции можно было обратиться, в том же файле должно находиться определение или описание функции (прототип).
double line(double x1,double y1,double x2,double y2);
double square(double a, double b, double c);
bool triangle(double a, double b, double c);
double line(double,double,double,double);
double square(double, double, double);
|
|
bool triangle(double, double, double);
Это прототипы функций, описанных выше.
При наличии прототипов вызываемые функции не обязаны размещаться в одном файле с вызывающей функцией, а могут оформляться в виде отдельных модулей и храниться в откомпилированном виде в библиотеке объектных модулей. Это относится и к функциям из стандартных модулей. В этом случае определения библиотечных функций, уже оттранслированные и оформленные в виде объектных модулей, находятся в библиотеке компилятора, а описания функций необходимо включать в программу дополнительно. Это делают с помощью препроцессорных команд
#include <имя файла>
Имя_файла определяет заголовочный файл, содержащий прототипы группы стандартных для данного компилятора функций. Например, почти во всех программах мы использовали команду #include <iostream.h> для описания объектов потокового ввода-вывода и соответствующие им операции.
При разработке своих программ, состоящих из большого количества функций и размещенных в разных модулях, прототипы функций и описания внешних объектов (констант, переменных, массивов) помещают в отдельный файл, который включают в начало каждого из модулей программы с помощью директивы
#include ”имя_файла”