Добавил:
kipetilnik
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Определение выпуклости
.txt#include <iostream>
#include <math.h>
#include <stdio.h>
#include <conio.h>
using namespace std;
void angle (int x1,y1,x2,y2);
{
int dx,dy;
float r;
dx=x2-x1;
dy=y2-y1;
r=sqrt(dx*dx+dy*dy);
if dy>=0
{
if dx=0 { angle:=pi/2; }
if dx>0 { angle:=abs(arctan(dy/dx)) };
if dx<0 { angle:=pi-abs(arctan(dy/dx)) };
}
if dy<0
{
if dx=0 { angle:=3*pi/2; }
if dx>0 { angle:=2*pi-abs(arctan(dy/dx)); }
if dx<0 { angle:=pi+abs(arctan(dy/dx)); }
}
}
void main()
{
int i,i1,k,x,y,v;
float a1,a2;
bool key;
printf ("Vvedite ko-vo vershin \n kol=");
scanf ("%i", &k);
for (i=1, i<k, i++)
{
printf("Vvedite koordinati x и y vershiny v:");
scanf("%f, %f", &x, &y);
}
key=true;
for (i=2, i<k, i++)
{
if i=k {i1=1} else {i1=i+1;}
a1=angle(v[i-1,1],v[i-1,2],v[i,1],v[i,2]);
a2=angle(v[i,1],v[i,2],v[i1,1],v[i1,2]);
if ((((a2-a1)<0)and((a2-a1)>-3.14)) || ((a2-a1)>3.14))
{
key:=false;
printf("Error...");
system("pause");
}
}
a1=angle(v[k,1],v[k,2],v[1,1],v[1,2]);
a2=angle(v[1,1],v[1,2],v[2,1],v[2,2]);
if (((((a2-a1)<0)&&((a2-a1)>-3.14)) || ((a2-a1)>3.14)))
{
key=false;
}
if (key=true)
{
printf("vipuklii");
}
else
{
printf("vognutii");
}
system ("pause");
}
Соседние файлы в предмете Объектно ориентированное программирование