IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> задача про треугольник, и его медиану..
krasnblj
сообщение 11.12.2007 19:02
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


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

ну хоть малейшие подсказки,сам код не начинал.. хотябы связь..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
krasnblj
сообщение 7.01.2008 22:29
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +



PROGRAM minmed;

VAR N,I,J, K:INTEGER;
X,Y:ARRAY [0..100] OF REAL;
mq:REAL;
tk:BOOLEAN;
R:ARRAY [1..3] OF REAL;
M:ARRAY [1..3] OF REAL;
TR:array [1..3,1..2] of real;
LABEL 14;
label 15;
label 1;
label 4;

FUNCTION DL(A,B,C,D:REAL):REAL;
BEGIN
DL:=SQRT((A-B)*(A-B)+(C-D)*(C-D))
END;

function med(a,b,c,d,e,f:real):real;
begin
med:=sqrt( sqr(((a+b)/2)-c) + sqr(((d+e)/2)-f) );
end;

BEGIN
WRITELN ('нахождение треугольника с минимальной медианой');

REPEAT
WRITE ('ведите число точек = ');
READLN (N);
IF ((N<3) OR (N>100)) THEN
WRITELN ('неверное число точек');
UNTIL ((N>=3) AND (N<=100));
FOR I:=1 TO N DO
BEGIN
REPEAT
WRITELN ('ввеите координаты ',I,' точки');
WRITE ('введите абсциссу точки = ');
READLN (X[I]);
WRITE ('введите ординату точки = ');
READLN (Y[I]);
TK:=TRUE;
FOR J:=I DOWNTO 1 DO
BEGIN
IF ((X[I]=X[J]) AND (Y[I]=Y[J]) AND (I<>J)) THEN
BEGIN
WRITELN ('точки не должны повторяться');
TK:=FALSE;
END;
END;
UNTIL (TK=TRUE);
END;

FOR I:=1 TO (N-2) DO
BEGIN
FOR J:=I+1 to (n-1) DO
BEGIN
1:FOR K:=J+1 TO N DO
BEGIN
m[1]:=med(x[j],x[k],X[i],y[j],y[k],Y[I]);
m[2]:=med(x[K],x[I],X[j],y[K],y[I],Y[j]);
m[3]:=med(x[I],x[J],X[k],y[I],y[J],Y[k]);
end;
begin
writeln (m[1]);
writeln (m[2]);
writeln (m[3]);


if ((m[3]<m[2]) and (m[3]<m[1])) then
m[3]:=mq;
if ((m[2]<m[3]) and (m[2]<m[1])) then
m[2]:=mq;
if ((m[1]<m[2]) and (m[1]<m[3])) then
m[1]:=mq;
writeln(mq);
end;
end;
end;

end.





ну поччеееееемууууу он всегда MQ выводит равный нулю????
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
krasnblj   задача про треугольник   11.12.2007 19:02
Lapp   Ничего в голову не приходит, кроме полного перебор...   12.12.2007 2:46
Michael_Rybak   Вообще, конечно, можно тут диаграммы Вороного заюз...   12.12.2007 3:20
krasnblj   Michael_Rybak я этого еще не проходил,расскажи ))   14.12.2007 10:49
Michael_Rybak   можно для каждой пары вершин находить середину сое...   14.12.2007 15:10
krasnblj   оу,не,решил делать перебором,не знаю как подойти,ч...   18.12.2007 17:21
Michael_Rybak   Ответом будут сами точки - вершины треугольника. Т...   18.12.2007 22:42
krasnblj   PROGRAM minmed; VAR N,I,J,K:INTEGER; X:ARRAY [1....   6.01.2008 14:17
Michael_Rybak   ну добавь проверку, что точки IJK не лежат на одно...   6.01.2008 14:31
krasnblj   так если 2 точки лежат на одной прямой,а третья гд...   6.01.2008 17:54
Michael_Rybak   проверяй что все три не лежат. любые две всегда ле...   6.01.2008 17:59
krasnblj   хм,не предтваляю как это написать.. :blink:   6.01.2008 18:07
Michael_Rybak   Точки А В С лежат на одной прямой если (AX-BX)(CY-...   6.01.2008 18:35
krasnblj   спс,но мне другой способ подсказали,ищу как его вн...   7.01.2008 15:45
krasnblj   PROGRAM minmed; VAR N,I,J, K:INTEGER; X,Y:ARRAY ...   7.01.2008 22:29
Michael_Rybak   Потому что нужно не m[3]:=mq; а mq:=m[3];   8.01.2008 2:50
krasnblj   :lol: щёрт,точно,ты и не представляешь как я тебя ...   8.01.2008 11:56
Michael_Rybak   :)   8.01.2008 12:08


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 6:52
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"