Egor_Vakar

lab2.1(delphi)

Sep 27th, 2021 (edited)
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.61 KB | None | 0 0
  1. program lab2_1;
  2. {$APPTYPE CONSOLE}
  3. {$R *.res}
  4. uses
  5.   System.SysUtils;
  6. var
  7.     n, i: Integer;
  8.     IsCorrect: Boolean;
  9.     xArray, yArray: array of Real;
  10.     x, y, Square: Real;
  11. begin
  12.     Writeln('Приветствуем вас в программе, которая найдёт площадь многоугольника по
  13.             заданным координатам вершин.' + #13#10 + 'Введите количество вершин:');
  14.     repeat
  15.         IsCorrect := True;
  16.         try
  17.             Readln(n);
  18.         except
  19.             Writeln('Количество вершин введёно некорректно!!!' + #13#10 +
  20.                     'Введите количество вершин:');
  21.             IsCorrect := False;
  22.         end;
  23.         if IsCorrect and (n < 3) then
  24.         begin
  25.             IsCorrect := False;
  26.             Writeln('Заданное число не может являться количеством вершин!!!', #13#10,
  27.                     'Введите количество вершин(целое число больше нуля):');
  28.         end;
  29.     until IsCorrect ;
  30.     SetLength(xArray, n - 1);
  31.     SetLength(yArray, n - 1);
  32.     x := 0;
  33.     y := 0;
  34.     for i := 0 to (n - 1) do
  35.     begin
  36.         Write('Введите координаты вершины ', (i + 1), ':', #13#10, 'x(', (i + 1), ') = ');
  37.         repeat
  38.             IsCorrect := True;
  39.             try
  40.                 Readln(x);
  41.             except
  42.                 Writeln('Координата x вершины ', (i + 1), 'введена некорректно!!!',  #13#10,
  43.                         'Введите x(', (i + 1), ') = ');
  44.                 IsCorrect := False;
  45.             end;
  46.         until IsCorrect ;
  47.         xArray[i] := x;
  48.         Write('y(', (i + 1), ') = ');
  49.         repeat
  50.             IsCorrect := True;
  51.             try
  52.                 Readln(y);
  53.             except
  54.                 Writeln('Координата x вершины ', (i + 1), 'введена некорректно!!!', #13#10,
  55.                         'Введите y(', (i+1), ') = ');
  56.                 IsCorrect := False;
  57.             end;
  58.         until IsCorrect ;
  59.         yArray[i] := y;
  60.     end;
  61.     Square := 0;
  62.     for i := 0 to (n - 1) do
  63.         if i < (n-1) then
  64.             Square := Square + xArray[i] * yArray[i+1] - xArray[i+1] * yArray[i]
  65.         else
  66.             Square := Square + xArray[i] * yArray[0] - xArray[0] * yArray[i];
  67.     Square := abs(Square) / 2;
  68.     Writeln('Площадь многоугольника = ', Square:10:8, '.');
  69.     Readln;
  70. end.
Add Comment
Please, Sign In to add comment