Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program lab2_1;
- {$APPTYPE CONSOLE}
- {$R *.res}
- uses
- System.SysUtils;
- var
- n, i: Integer;
- IsCorrect: Boolean;
- xArray, yArray: array of Real;
- x, y, Square: Real;
- begin
- Writeln('Приветствуем вас в программе, которая найдёт площадь многоугольника по
- заданным координатам вершин.' + #13#10 + 'Введите количество вершин:');
- repeat
- IsCorrect := True;
- try
- Readln(n);
- except
- Writeln('Количество вершин введёно некорректно!!!' + #13#10 +
- 'Введите количество вершин:');
- IsCorrect := False;
- end;
- if IsCorrect and (n < 3) then
- begin
- IsCorrect := False;
- Writeln('Заданное число не может являться количеством вершин!!!', #13#10,
- 'Введите количество вершин(целое число больше нуля):');
- end;
- until IsCorrect ;
- SetLength(xArray, n - 1);
- SetLength(yArray, n - 1);
- x := 0;
- y := 0;
- for i := 0 to (n - 1) do
- begin
- Write('Введите координаты вершины ', (i + 1), ':', #13#10, 'x(', (i + 1), ') = ');
- repeat
- IsCorrect := True;
- try
- Readln(x);
- except
- Writeln('Координата x вершины ', (i + 1), 'введена некорректно!!!', #13#10,
- 'Введите x(', (i + 1), ') = ');
- IsCorrect := False;
- end;
- until IsCorrect ;
- xArray[i] := x;
- Write('y(', (i + 1), ') = ');
- repeat
- IsCorrect := True;
- try
- Readln(y);
- except
- Writeln('Координата x вершины ', (i + 1), 'введена некорректно!!!', #13#10,
- 'Введите y(', (i+1), ') = ');
- IsCorrect := False;
- end;
- until IsCorrect ;
- yArray[i] := y;
- end;
- Square := 0;
- for i := 0 to (n - 1) do
- if i < (n-1) then
- Square := Square + xArray[i] * yArray[i+1] - xArray[i+1] * yArray[i]
- else
- Square := Square + xArray[i] * yArray[0] - xArray[0] * yArray[i];
- Square := abs(Square) / 2;
- Writeln('Площадь многоугольника = ', Square:10:8, '.');
- Readln;
- end.
Add Comment
Please, Sign In to add comment