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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2012, 21:56   #1
quade1992
Пользователь
 
Регистрация: 25.10.2011
Сообщений: 13
По умолчанию Задачи записи

1. Используя тип TPoint — запись с полями вещественного типа X и Y (координаты точки на плоскости), описать тип TTriangle — запись с полями A, B, C типа TPoint (вершины треугольника) — и функцию Perim(T) вещественного типа, находящую периметр треугольника T (T — параметр типа TTriangle). С помощью этой функции найти периметры треугольников ABC, ABD, ACD, если даны координаты точек A, B, C, D.
quade1992 вне форума Ответить с цитированием
Старый 05.04.2012, 22:33   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Проверьте:
Код:
uses CRT;

type
TPoint=record
x,y:real;
end;

TTriangle=record
a,b,c:tpoint;
end;

var
  a:array[1..4,1..2] of real;
  abc,abd,acd:TTriangle;

function Perim(T:TTriangle):real;
begin
  Perim:=sqrt(sqr(T.a.x-T.b.x)+sqr(T.a.y-T.b.y))+sqrt(sqr(T.a.x-T.c.x)+sqr(T.a.y-T.c.y))+sqrt(sqr(T.c.x-T.b.x)+sqr(T.c.y-T.b.y));
end;

begin
  writeln('Input A:');
  readln(a[1,1],a[1,2]);
  writeln('Input B:');
  readln(a[2,1],a[2,2]);
  writeln('Input C:');
  readln(a[3,1],a[3,2]);
  writeln('Input D:');
  readln(a[4,1],a[4,2]);

  abc.a.x:=a[1,1];
  abc.a.y:=a[1,2];
  abc.b.x:=a[2,1];
  abc.b.y:=a[2,2];
  abc.c.x:=a[3,1];
  abc.c.y:=a[3,2];

  abd.a.x:=a[1,1];
  abd.a.y:=a[1,2];
  abd.b.x:=a[2,1];
  abd.b.y:=a[2,2];
  abd.c.x:=a[4,1];
  abd.c.y:=a[4,2];

  acd.a.x:=a[1,1];
  acd.a.y:=a[1,2];
  acd.b.x:=a[3,1];
  acd.b.y:=a[3,2];
  acd.c.x:=a[4,1];
  acd.c.y:=a[4,2];

  writeln('Perimeter ABC: ',perim(abc):5:2);
  writeln('Perimeter ABD: ',perim(abd):5:2);
  writeln('Perimeter ACD: ',perim(acd):5:2);
  readln;
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 08.04.2012, 21:25   #3
quade1992
Пользователь
 
Регистрация: 25.10.2011
Сообщений: 13
По умолчанию

Спасибо большое!)
quade1992 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пожалуйста помогите найти ошибку в коде решения задачи на записи GUnt Паскаль, Turbo Pascal, PascalABC.NET 3 27.12.2008 21:09