Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 61

Площадь многоугольника, используя координаты

06.12.2010, 20:59. Показов 1024. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Эта программка некоторое время уже "висела" здесь.
а именно нашёл её текст:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Program Ploshad_Mnogougolnika;
Uses crt;
Var p,s,min: real;
    n: integer;
    x,y: array[1..21] of real;
 
Procedure Vvod;
Var i: integer;
Begin
 write('Vvedite kolichestvo yglov mnogougolnika n=');
 readln(n);
 for i:= 1 to n do
  begin
   writeln('vvedite kkordinatu N ',i);
   write('x[',i,']=');
   readln(x[i]);
   write('y[',i,']=');
   readln(y[i]);
  end;
  x[n+1]:=x[1];
  y[n+1]:=y[1];
End;
 
Procedure Perenos;
Var i: integer;
Begin
 min:=y[1];
 for i:= 2 to n do
  if min >y[i] then
   min:=y[i];
  for i:=1 to n+1 do
   y[i]:=y[i]-min;
End;
 
Procedure Ploshad;
Var i: integer;
Begin
 s:=0;
 for i:= 1 to n do
  s:= s+((y[i+1]+y[i])*(x[i+1]-x[i])/2);
end;
 
Procedure Vyvod;
Begin
 writeln('Ploshad mnogougolnika S=',abs(s):1:2);
 readln;
end;
 
Begin
 clrscr;
 Vvod;
 Perenos;
 Ploshad;
 Vyvod;
end.
как ни странно она работает, однако решает не правильно или точнее сказать через раз правильно.

введём
количество точек
4
точки
0.0 2.0
2.0 4.0
4.0 2.0
2.0 0.0

площадь =8, как и должно быть

если поменяем некоторые координаты местами, получим:
количество точек
4
точки
2.0 0.0
0.0 2.0
4.0 2.0
2.0 4.0

площадь уже равна 0.

У меня слабовато с геометрией - не подскажете, почему возникает такая ошибка?

Добавлено через 45 минут
Вопрос решён, решил пойти по другому пути.
если кому интересно : вот пример задачи, находящей площадь многоугольника по координатам.


ввод и вывод делается в square. in u square.out соответственно

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Program dd;
Uses crt;
Var s1,ss1,x1,y1,p2,pp,a,b,c: real;
    n,i,code: integer;
    x,y: array[1..1000] of real;
    ss,sss:string;
    squarein,squareout:text;
 
Begin
Assign(squarein,'square.in');
Assign(squareout,'square.out');
 
rewrite(squareout);
 clrscr;
 
reset(squarein);
readln(squarein,ss);
val(ss,n,code);
delete(ss,1,pos(' ',ss));
 
for i:= 1 to n do
begin
readln (squarein,sss);
val(copy(sss,1,pos(' ',sss)-1),x1,code);
delete(sss,1,pos(' ',sss));
x[i]:=x1;
val(copy(sss,1,length(sss)),y1,code);
y[i]:=y1;
s1:=0;
end;
 for i:= 2 to n-1 do
 begin
 a:=sqrt(sqr(x[1]-x[i])+sqr(y[1]-y[i]));
 b:=sqrt(sqr(x[1]-x[i+1])+sqr(y[1]-y[i+1]));
 c:=sqrt(sqr(x[i]-x[i+1])+sqr(y[i]-y[i+1]));
 p2:=a+b+c;
 pp:=p2/2;
 ss1:=sqrt(pp*(pp-a)*(pp-b)*(pp-c));
 S1:=s1+ss1;
 end;
 writeln(squareout,s1:1:5);
 
 close(squarein);
 close(squareout);
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.12.2010, 20:59
Ответы с готовыми решениями:

Вычислить площадь выпуклого многоугольника, если известны координаты его вершин
Вычислить площадь выпуклого многоугольника, если известны координаты его вершин.

Посчитать площадь площадь выпуклого четырёхугольника, если известны координаты его вершин.
Посчитать площадь площадь выпуклого четырёхугольника, если известны координаты его вершин. Площадь...

Подпрограммы: Даны координаты вершин многоугольника. Найти его периметр
Даны координаты вершин многоугольника (x1,y1,x2,y2,...x10,y10). Напишите программу для вычисления...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.12.2010, 20:59
Помогаю со студенческими работами здесь

Найти периметр многоугольника, координаты вершин которого заданы в файле
Составить программу, которая находит периметр фигуры, заданной при помощи N точек (координатами на...

Вычислить площадь правильного многоугольника
Вычислить площадь правильного многоугольника со стороной а, используя подпрограмму вычисления...

Найти площадь многоугольника по координатам
Доброго времени суток, уважаемые. Есть задачка, которую уж очень хочется решить, но поскольку имею...

Найти площадь многоугольника
Нужна помощь в решении двух задачек.. 1) Процедуры и функции: На плоскости дано 5 точек, которые...

Найти площадь выпуклого многоугольника
на плоскости задан выпуклый многоугольник с координатами его вершин M1 (x1, y1), M2 (x2, y2), M3...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru