Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2009, 13:45   #21
Jean-Esther
Пользователь
 
Аватар для Jean-Esther
 
Регистрация: 15.01.2009
Сообщений: 69
По умолчанию

Цитата:
Сообщение от surovii Посмотреть сообщение
а площадь можно вычислять так:
function S(t:TPol):tp;
p,ab,bc,ac:real;
begin
ab:=sqrt(sqr(t.A.x-t.B.x)+sqr(t.A.y-t.B.y));
bc:=sqrt(sqr(t.B.x-t.C.x)+sqr(B.y-t.C.y));
ac:=sqrt(sqr(t.A.x-t.C.x)+sqr(t.A.y-t.C.y));
p:=(ab+bc+ac)/2;
S:=sqrt(p*(p-ab)*(p-bc)*(p-ac));
end;
Можно. Вроде правильно. Проверь на частных случаях.
Silence is of great value...

Последний раз редактировалось Jean-Esther; 22.03.2009 в 18:33. Причина: подправил
Jean-Esther вне форума Ответить с цитированием
Старый 22.03.2009, 16:33   #22
surovii
Пользователь
 
Регистрация: 10.03.2009
Сообщений: 31
По умолчанию

я с типами запутался.. помогите пожалуйста
surovii вне форума Ответить с цитированием
Старый 22.03.2009, 18:04   #23
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

только вещественный real;
capta1n вне форума Ответить с цитированием
Старый 22.03.2009, 18:31   #24
surovii
Пользователь
 
Регистрация: 10.03.2009
Сообщений: 31
По умолчанию

а что выполняют процедуры и функция кондишн?
Цитата:
function Condition:boolean;
var k:word; {<!-- нельзя использовать byte!}
begin
{Condition:=true;}
k:=0;
{$B+} {<-- прошу обратить внимание на состояние этой опции, могу ошибиться в знаке, но её обязательно надо определить правильно, в противном случае программа может выдать ошибку при проверке условия цикла.}
while (k<=n) and (pols[k].a.x>=0) and (pols[k].a.y<=0) and (pols[k].b.x>=0) and (pols[k].b.y<=0) and (pols[k].c.x>=0) and (pols[k].c.y<=0) do inc(k);
Condition:=(k=n);
end;
procedure Pr1;
var k:word;
var min:tp;
begin
min:=S(pols[0]);
for k:=1 to n-1 do
if S(pols[k])<min then min:=S(pols[k]);
write(min);
end;

function PointInCyrcle(P:TVertex):boolean;
begin
PointInCyrcle:=(sqr(P.x-Cx)+sqr(P.y-Cy))<=sqr(R);
end;

procedure Pr2;
var cc:word;
begin
cc:=0;
for i:=0 to n-1 do
if PointInCyrcle(pols[i].a) and PointInCyrcle(pols[i].b) and PointInCyrcle(pols[i].c) then inc(cc);
write(cc);
end;
surovii вне форума Ответить с цитированием
Старый 22.03.2009, 18:32   #25
surovii
Пользователь
 
Регистрация: 10.03.2009
Сообщений: 31
По умолчанию

и поинтсёркл что делает?
surovii вне форума Ответить с цитированием
Старый 22.03.2009, 18:34   #26
Jean-Esther
Пользователь
 
Аватар для Jean-Esther
 
Регистрация: 15.01.2009
Сообщений: 69
По умолчанию

типы могут быть разные как базовый, наверное, лучше взять real, но в дальнейшем для простоты чтения да и просто абстрагировании (а-а-а, чую, неверное слово подобрал, но ничего другого на ум не приходит) лучше обращать к базовому имени, определенному в начале кода (например, если напишем type tp=real и везде будем использовать именно tp, то в случае замены на type tp=extended не нужно везде в коде производить замены real-->extended).
Кроме базового, есть тип точки. Тут ясно все.
Еще есть тип треугольника, состоящий из 3 точек.
И массив, состоящий из треугольников.
Silence is of great value...
Jean-Esther вне форума Ответить с цитированием
Старый 22.03.2009, 18:37   #27
Jean-Esther
Пользователь
 
Аватар для Jean-Esther
 
Регистрация: 15.01.2009
Сообщений: 69
По умолчанию

Цитата:
Сообщение от surovii Посмотреть сообщение
а что выполняют процедуры и функция кондишн?
У тебя там условие было, что треугольники должны полностью в четвертой четрверти лежат. Вот функция и возвращает логическую величину, равную условию.
То же самое PointInCyrcle: если точка лежит внутри окружности, то результат true, иначе false.
Silence is of great value...
Jean-Esther вне форума Ответить с цитированием
Старый 26.03.2009, 20:29   #28
surovii
Пользователь
 
Регистрация: 10.03.2009
Сообщений: 31
По умолчанию

Код:
implementation
uses Unit2   ;

 type coord=record
 x:integer;
 y:integer;
 end;

type treug=record
 A:coord;
 B:coord;
 C:coord;
 end;

type T=array [1..10] of treug;
var CCx, CCy, CR:real;{cyrcle}
var pols:T;
var n,i:integer;{counters}




{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
for i:=1 to 10 do
stringgrid1.cells[0,i]:='Треуг№'+floattostr(i);
stringgrid1.cells[1,0]:='А.x';
stringgrid1.cells[2,0]:='A.y';
stringgrid1.cells[3,0]:='B.x';
stringgrid1.cells[4,0]:='B.y';
stringgrid1.cells[5,0]:='C.x';
stringgrid1.cells[6,0]:='C.y';
end;


procedure TForm1.BitBtn1Click(Sender: TObject);
var i,koltreug:integer;
CC:coord;
CR:real;
A,B,C:coord;
  begin
  //круг
     CC.x:=strtoint(edit1.Text);
     CC.y:=strtoint(edit2.Text);
     CR:=strtofloat(edit3.Text);
     koltreug:=strtoint(edit4.Text);
     // вводим треугольники
       for i:=1 to koltreug do
       begin
T[i].A.x:=strtoint(stringgrid1.cells[1,i]);
T[i].A.y:=strtoint(stringgrid1.cells[2,i]);
T[i].B.x:=strtoint(stringgrid1.cells[3,i]);
T[i].B.y:=strtoint(stringgrid1.cells[4,i]);
T[i].C.x:=strtoint(stringgrid1.cells[5,i]);
T[i].C.y:=strtoint(stringgrid1.cells[6,i]);

 if
   end;

       end;

{а вот здесь мне надо условие поместить if ... для этого мне надо 1) функция находящая треугольники в четвёртой четверти декартовой системы координат
2) функцию считающая минимальную площадь тругольника
3) Функцию находящую кол-во треугольников находящихся полностью в окружности}

end.
surovii вне форума Ответить с цитированием
Старый 29.03.2009, 18:00   #29
lgedmitryII
 
Регистрация: 26.03.2009
Сообщений: 3
По умолчанию

Помогите, пожалуйста, написать програмный код для Vb
В одномерный массив попарно записаны координаты n-точек. Найти расстояние между соседними точками и записать в другой массив
lgedmitryII вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Окружность и точки. Дельфи Rancid Помощь студентам 6 20.11.2010 20:08
вписать в треугольник окружность stimswall Помощь студентам 3 21.03.2009 03:15
простые числа.окружность. Verochka Помощь студентам 15 31.12.2008 08:22
Вписанная в выпуклый n-угольник окружность Nixond Паскаль, Turbo Pascal, PascalABC.NET 10 15.10.2008 13:28
нарисовать окружность состоящую из 36 разноцветных квадратов Invisible Hunter Паскаль, Turbo Pascal, PascalABC.NET 2 29.05.2008 18:03