Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 21.04.2011, 00:33   #1 (permalink)
Drakaas
Новичок
 
Регистрация: 21.04.2011
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Найти площадь выпуклого многоугольника, если даны координаты вершин многоугольника

найти площадь выпуклого многоугольника если даны координаты вершин многоугольника
Drakaas вне форума   Ответить с цитированием

Старый 21.04.2011, 00:33
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Полезная для вас информация так же содержится тут

Тормозит ПК... или я? Если я, то подскажите где?
Что делать, если трещит БП?
Даны три вещественных числа...
Если смысл изучать 1С прог, если...
Площадь фигуры

Старый 21.04.2011, 09:47   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Drakaas Посмотреть сообщение
найти площадь выпуклого многоугольника если даны координаты вершин многоугольника
Вот так. В лучших традициях. Ни те "здрасьте", ни те "пжалста". Естественно, никаких намеков на язык программирования. Просто короткое распоряжение. Как говорится, "Слуги! Подайте барину пуги! Свиней загонять...". Ну-ну...
Vladimir_S вне форума   Ответить с цитированием
Старый 21.04.2011, 10:23   #3 (permalink)
Drakaas
Новичок
 
Регистрация: 21.04.2011
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Новенький

прости, я тут новенький)
я просто очень торопился и тороплюсь до сих пор!
думал вы мне поможете, а тут..
Drakaas вне форума   Ответить с цитированием
Старый 21.04.2011, 12:28   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Drakaas Посмотреть сообщение
прости, я тут новенький)
я просто очень торопился и тороплюсь до сих пор!
думал вы мне поможете, а тут..
Так и помогли бы, если бы хотя бы да язык программирования был бы по крайней мере указан. Но его как не было, так и нет. Высказать нам обиды важнее?
Vladimir_S вне форума   Ответить с цитированием
Старый 21.04.2011, 17:16   #5 (permalink)
Drakaas
Новичок
 
Регистрация: 21.04.2011
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Я вроде оставил в разделе Pascal
Собственно , нужно в паскале.
Мне нужно написать программу н-угольника( и к тому же нарисовать его).
Благодарен тому, кто мне поможет!
Drakaas вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 21.04.2011, 21:24   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Drakaas Посмотреть сообщение
Я вроде оставил в разделе Pascal
Собственно , нужно в паскале.
Мне нужно написать программу н-угольника( и к тому же нарисовать его).
Благодарен тому, кто мне поможет!
В раздел Pascal, как Вы его назвали, входит программирование не только на Паскале, но и в среде Delphi, существенно отличной от Паскаля, а также в среде Kylix, каковая есть та же Delphi, но под ОС Linux.
Господи, как же иногда с вами трудно - стараешься помочь, так в ответ на резонное предложение четко сформулировать задание с указанием языка и призыв соблюдать хотя бы начала элементарной вежливости получаешь огрызания, обиды, вставание в позу оскорбленной добродетели и всё такое прочее.
Ладно. Вот Вам Ваша программа. А уж графическую часть с рисованием многоугольника - соблаговолите сами. Вели бы себя по-человечески - я бы Вам и это сделал, а так - увольте.
Некоторые пояснения:
1. Вводится число вершин (N).
2. Вводятся координаты вершин - массивы X и Y.
3. Ищутся длины сторон - массив L.
4. Если фигура - треугольник, то ищется площадь по формуле Герона и на этом всё заканчивается, если же нет - то выполняются следующие пункты.
5. Находятся координаты произвольной точки, находящейся заведомо внутри многоугольника (Xp, Yp). В программе за таковую взята середина отрезка, соединяющего вершины 1 и 3.
6. Указанная точка соединяется отрезками со всеми вершинами. Находятся длины всех этих отрезков - массив C.
7. Суммируются площади всех треугольников, образованных парой смежных отрезков и стороной многоугольника между вершинами, на которые эти смежные отрезки опираются.
8. Выводится результат.
Код:
var
 N:Byte;
 X,Y,L,C:Array[1..255] of Real;
 Xp,Yp,S:Real;
 i:integer;

Function Geron(a,b,c:Real):Real;
var p:real;
begin
 p:=(a+b+c)/2;
 Geron:=SQRT(p*(p-a)*(p-b)*(p-c));
end;

BEGIN
 Write('N= ');
 ReadLn(N);
 WriteLn;
 For i:=1 to N do
  begin
   Write('X[',i,']= ');
   ReadLn(X[i]);
   Write('Y[',i,']= ');
   ReadLn(Y[i]);
  end;
 For i:=1 to N-1 do
  L[i]:=SQRT(SQR(X[i]-X[i+1])+SQR(Y[i]-Y[i+1]));
 L[N]:=SQRT(SQR(X[N]-X[1])+SQR(Y[N]-Y[1]));
 If N=3 then S:=Geron(L[1],L[2],L[3]) else
 begin
  Xp:=(X[1]+X[3])/2;
  Yp:=(Y[1]+Y[3])/2;
  S:=0;
  For i:=1 to N do
   C[i]:=SQRT(SQR(X[i]-Xp)+SQR(Y[i]-Yp));
  For i:=1 to N-1 do
   S:=S+Geron(C[i],L[i],C[i+1]);
  S:=S+Geron(C[N],L[N],C[1]);
 end;
 WriteLn;
 WriteLn('S= ',S:12:3);
 ReadLn;
END.
Vladimir_S вне форума   Ответить с цитированием
Старый 16.12.2012, 21:38   #7 (permalink)
Gespo
Новичок
 
Регистрация: 16.12.2012
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Здравствуйте, Владимир. Не могли бы вы мне помочь такого же рода заданием только на Delphi.
Gespo вне форума   Ответить с цитированием
Старый 16.12.2012, 21:42   #8 (permalink)
Gespo
Новичок
 
Регистрация: 16.12.2012
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

var A, B: Array of TPoint;
i: Integer;
n: Integer;
S, P: Real;
x0, y0: Integer;
begin

n :=Strtoint(Edit1.Text); // кол-во углов
S := 0;
P := 0;

x0 := ClientWidth div 2;
y0 := ClientHeight div 2;

SetLength(A, n);
SetLength(B, n);

// кординаты ..........возможно ли координаты сделать динамическими???
A[0].X := 0;
A[0].Y := 0;
A[1].X := 0;
A[1].Y := 3;
A[2].X := 1;
A[2].Y := 4;
A[3].X := 3;
A[3].Y := 0;
A[4].X := 2;
A[4].Y := -3;
A[5].X := 1;
A[5].Y := -5;
Gespo вне форума   Ответить с цитированием
Старый 16.12.2012, 22:24   #9 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Gespo Посмотреть сообщение
Здравствуйте, Владимир. Не могли бы вы мне помочь такого же рода заданием только на Delphi.
Здравствуйте, Gespo. К сожалению, нет - на Delphi много лет не писал, а потому всё, что знал, успел накрепко позабыть.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 11:31.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.