Подпрограмма

Тема в разделе "Pascal and Delphi", создана пользователем Nonius, 17 дек 2010.

  1. Nonius

    Nonius Гость

    Не знаю как сделать

    Язык программирования: Паскаль

    Разработать программу расчёта периметра и площади пятиугольника заданного координатами своих вершин.
    Использовать две подпрограммы-функции (Function).
    Одна расчитывает длину отрезка по заданным координатам концов, а другая площадь треугольника по заданным координатам вершин(Формула герона).
     
  2. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    Код (Text):
    //Длина отрезка
    Function Len(x1,x2,y1,y2:double):double;
    begin
    result:=sqrt(sqr(x2-x1)+sqr(y2-y1));
    end;
    //площадь треугольника
    Function Square(a,b,c:double):double;
    begin
    p:=(a+b+c)/2;
    s:=sqrt(abs(p*(p-a)*(p-b)*(p-c)));
    end;
     
  3. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    nayke по 2-й замечание:
    и что-то я сомневаюсь уже, что автор темы допилит сам, ведь задания элементарные...
    + результат не присваивается ф-ции Square

    по 1й - вроде (насколько я помню) result появился только в делфи, а в паскале надо явно присваивать имени функции.
     
  4. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    ну да только в Delphi

    поэтому соответственно для паскаль
    Код (Text):
    //Длина отрезка
    Function Len(x1,x2,y1,y2:real):real;
    begin
    Len:=sqrt(sqr(x2-x1)+sqr(y2-y1));
    end;
    //площадь треугольника
    Function Square(a,b,c:real):real;
    var d:real;
    begin
    p:=(a+b+c)/2;
    Square:=sqrt(abs(p*(p-a)*(p-b)*(p-c)));
    end;
    Ну далее как говорится задачи автора допиливать или как.. это исключительно наброски..
     
  5. Nonius

    Nonius Гость

    Вот попробовал написать сам, проверьте пожалуйста

    Код (Delphi):
    type
    pType = record X, Y : real; end;

    function Len(P1, P2 : pType) : Real;
    begin
    Len := Sqrt((P1.X - P2.X)*(P1.X - P2.X) + (P1.Y - P2.Y)*(P1.Y - P2.Y));
    end;

    function Pl(P1, P2, P3 : pType) : Real;
    var
    a, b, c, p : Real;
    begin
    a := Len(P1, P2);
    b := Len(P2, P3);
    c := Len(P1, P3);
    p := (a + b + c) / 2;
    Pl := Sqrt(p * (p - a) * (p - B ) * (p - c));
    end;

    var
    P : array [1..5] of pType;
    begin
    Write('Введите через пробел координаты 1 точки: '); ReadLn(P[1].X, P[1].Y);
    Write('Введите через пробел координаты 2 точки: '); ReadLn(P[2].X, P[2].Y);
    Write('Введите через пробел координаты 3 точки: '); ReadLn(P[3].X, P[3].Y);
    Write('Введите через пробел координаты 4 точки: '); ReadLn(P[4].X, P[4].Y);
    Write('Введите через пробел координаты 5 точки: '); ReadLn(P[5].X, P[5].Y);

    WriteLn('Площадь пятиугольника = ', Pl(P[1], P[2], P[3]) + Pl(P[1], P[3], P[4]) + Pl(P[1], P[4], P[5]):6:3);
    end.
     
  6. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    я не помню есть ли в паскале но в делфи есть стандартный тип данных TPoint для работы с координатами.
     
Загрузка...
Похожие Темы - Подпрограмма
  1. wowa
    Ответов:
    6
    Просмотров:
    3.061

Поделиться этой страницей