Отчет по Основе алгоритмизации и программирования.

  • 08 окт. 2015 г.
  • 274 Слова
УО «Белорусский государственный университет информатики и радиоэлектроники»
Кафедра ПОИТ








Отчет по лабораторной работе №2.1
по предмету
Основы алгоритмизации и программирования

Вариант13
















Выполнил:
Купцов А.Д.

Проверила:
Данилова Г.В.

Группа 551005





Минск 2015

Задание:
Многоугольник задан координатами своих вершин. Определить, является ли данныймногоугольник выпуклым.







































Код программы:
var
x,y:array of integer;
t,e:integer;
znak1:integer;

procedure vvod(var n:integer);
var
i:integer;p:boolean;
begin
p:=false;
try
while not p do
begin
write('введите количество вершин n=');
readln(n);
if n>=3 then
p:=true;
end;setlength(x,n);
setlength(y,n);
writeln('введите коородинаты вершин');
for i:=0 to n-1 do
begin
read(x[i]);
readln(y[i]);
end;
exceptwrite('неверный тип данных');
end;
end;

function znak(x3,x1,y2,y1,y3,x2:integer):integer;
var
k:integer;
begin
k:=((x3-x1)*(y2-y1))-((y3-y1)*(x2-x1));

znak:=k divabs(k);
end;

procedure rav(ch1,ch2:integer; var t: integer);
begin
if ch1=ch2 then
t:=t+1;
end;

procedure prov(n:integer);
var
i:integer;
beginfor i:=1 to n-2 do
begin
e:=znak(x[i+1],x[i-1],y[i],y[i-1],y[i+1],x[i]);
rav(znak1,e,t);
znak1:=e;
end;
end;
var
n:integer;
begin
t:=0;vvod(n);
e := znak(x[1],x[n-1],y[0],y[n-1],y[1],x[0]);
znak1 := e;
e := znak(x[0],x[n-2],y[n-1],y[n-2],y[n-1],x[n-1]);
rav(znak1,e,t);
znak1:=e;
prov(n);
if t = n-1 thenwrite('многоугольник выпуклый')
else
write('многоугольник не выпуклый');

end.



































Блок-схема программы:









Пример работы программы:...