Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program task1;
- uses SysUtils,Math;
- type
- Point = record
- x,y:integer;
- end;
- var
- a:double;
- iscorrect:boolean;
- Arr:array of Point;
- i,num,s,sum:Integer;
- function getInt(min,max:integer):integer;
- begin
- repeat
- try
- read(result);
- if((result>0)and (result<20)) then
- iscorrect:=true
- else
- begin
- iscorrect:=false;
- writeln('ошибка.введите заново');
- end;
- except
- iscorrect:=false;
- writeln('ошибка.введите заново');
- end;
- until iscorrect;
- end;
- function getPoint:point;
- begin
- result.x:=getInt(20,58);{(Integer.M,Integer.MaxValue);}
- result.y:=getInt(20,58);{(Integer.MinValue,Integer.MaxValue); }
- end;
- begin
- sum:=0;
- writeln('введите количество вершин:');
- num:=getInt(2,8);
- setLength(Arr,num);
- writeln('введите координаты вершин');
- Dec(num);
- for i:=1 to (num+1) do
- begin
- writeln('введите координаты ',i,' вершины:');
- Arr[i]:=getPoint;
- end;
- for i:=1 to num do
- begin
- Arr[num+1].y := Arr[0].y;
- Arr[0].y :=Arr[num].y;
- s:=Arr[i].x*(Arr[i+1].y - Arr[i-1].y);
- sum:=sum+s;
- end;
- sum:=abs(sum);
- a:=sum/2;
- writeln(a:3:1);
- readln;
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement