singlepost

Pascal (вопрос по задаче 4) << На главную или назад  

Даны координаты 3-х вершинтреугольника АВС, вычеслить Р использую функции.

К написанию проги ещё не приступал, потому что не знаю, что более разумно описать как функцию.
Подскажите, пожалуйста.

18 ответов в теме “Pascal (вопрос по задаче 4)”

  1. 9
    Виталий Борисок ответил:

    Советы по оптимизации могу только добавить… Можно сделать вычисление периметра циклом. Вдруг у тебя будет не треугольник, а N-угольник. Просто в цикле накапливаешь значение. Не нужны лишние переменные и меньше кода. Но это так, не по задаче. ))

  2. 8
    Алексей Терещенко ответил:

    Кстати, если ты пишешь в DOS'овском Turbo/Borland Pascal'е, то не юзай тип данных real. Используй вместо него single или double, ибо они в несколько раз быстрее. Может быть не сейчас, а когда нибудь потом на задачах с большим кол-вом вычислений, ты столкнешься с тормозами типа real.

  3. 7
    Сергей Владимирович ответил:

    досадная ошибка)

    спасибо за совет!

  4. 6
    Сергей Владимирович ответил:

    вот написал прогу, но чего-то видать я не усвоил, раз не работает

    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.

  5. 5
    Алексей Терещенко ответил:

    function dlina(kx1,ky1,kx2,ky2:real):real;
    Begin
    dlina:=sqrt(sqr(kx2-kx1)+sqr(ky2-ky1));
    end;

  6. 4
    Сергей Владимирович ответил:

    оке, сейчас попробую, но пока только с длинами

  7. 3
    Дима Мироводин ответил:

    Очевидно что нужна функция вычисляющая длину отрезка по X1,Y1 X2,Y2

  8. 2
    Сергей Владимирович ответил:

    т.е.
    sqrt((x2-x1)+(y2-y1))?
    или другая формула?

  9. 1
    Алексей Терещенко ответил:

    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, конечно же, тоже лучше оформить функцией.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.