Даны координаты 3-х вершинтреугольника АВС, вычеслить Р использую функции.
К написанию проги ещё не приступал, потому что не знаю, что более разумно описать как функцию.
Подскажите, пожалуйста.
Даны координаты 3-х вершинтреугольника АВС, вычеслить Р использую функции.
К написанию проги ещё не приступал, потому что не знаю, что более разумно описать как функцию.
Подскажите, пожалуйста.
Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.
11 марта 2008 в 17:02
Советы по оптимизации могу только добавить… Можно сделать вычисление периметра циклом. Вдруг у тебя будет не треугольник, а N-угольник. Просто в цикле накапливаешь значение. Не нужны лишние переменные и меньше кода. Но это так, не по задаче. ))
10 марта 2008 в 17:00
Кстати, если ты пишешь в DOS'овском Turbo/Borland Pascal'е, то не юзай тип данных real. Используй вместо него single или double, ибо они в несколько раз быстрее. Может быть не сейчас, а когда нибудь потом на задачах с большим кол-вом вычислений, ты столкнешься с тормозами типа real.
10 марта 2008 в 17:00
досадная ошибка)
спасибо за совет!
10 марта 2008 в 16:05
вот написал прогу, но чего-то видать я не усвоил, раз не работает
program perim;
Var x1,y1,x2,y2,x3,y3,d1,d2,d3,p:real;
function dlina(kx1,ky1,kx2,ky2:real):real;
vard:real;
Begin
d:=sqrt(sqr(kx2-kx1)+sqr(ky2-ky1));
end;
Begin
..writeln('vvedite koord 1 tochki');
..readln(x1,y1);
..writeln('vvedite koord 2 tochki');
..readln(x2,y2);
..writeln('vvedite koord 3 tochki');
..readln(x3,y3);
..d1:=dlina(x1,y1,x2,y2);
.. d2:=dlina(x2,y2,x3,y3);
.. d3:=dlina(x3,y3,x1,y1);
..P:=d1+d2+d3;
.. writeln('P=',p);
readln
End.
10 марта 2008 в 16:05
function dlina(kx1,ky1,kx2,ky2:real):real;
Begin
dlina:=sqrt(sqr(kx2-kx1)+sqr(ky2-ky1));
end;
10 марта 2008 в 16:03
оке, сейчас попробую, но пока только с длинами
10 марта 2008 в 16:02
Очевидно что нужна функция вычисляющая длину отрезка по X1,Y1 X2,Y2
10 марта 2008 в 16:02
т.е.
sqrt((x2-x1)+(y2-y1))?
или другая формула?
10 марта 2008 в 16:02
P – это периметр?
Тебе поможет функция, которая вычисляет длину отрезка, заданного координатами его концов.
L(x1,y1, x2,y2) := sqrt(sqr(x1-x2)+sqr(y1-y2));
Тогда P := L(x1,y1, x2,y2) + L(x2,y2, x3,y3) + L(x1,y1, x3,y3);
P, конечно же, тоже лучше оформить функцией.