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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2008, 18:32   #1
kJlaCuk
Пользователь
 
Регистрация: 17.09.2008
Сообщений: 14
По умолчанию Определение геометрической фигуры

Плиз помогите с написанием кода программы в Паскале
Заданы координаты вершин четырехугольника x1, y1, x2, y2, x3, y3, x4, y4>=0. Определяет, является ли данный четырехугольник трапецией (использовать теорему косинусов и формулу ).
Изображения
Тип файла: png Формула.PNG (676 байт, 124 просмотров)

Последний раз редактировалось kJlaCuk; 27.12.2008 в 20:35.
kJlaCuk вне форума Ответить с цитированием
Старый 27.12.2008, 23:18   #2
kJlaCuk
Пользователь
 
Регистрация: 17.09.2008
Сообщений: 14
По умолчанию

Вообщем к этому коду надо добавить проверку на "является ли введёная фигура трапецией"
Код:
Program za4et_2;
uses crt, Graph;
 var
 x:array[0..4] of integer;
 y:array[0..4] of integer;
 i:byte; d1,d2,d3,d4:real;
 d,e,r: integer;
begin
clrscr;
writeln('Vvedite poocheredno koordinati menishe 100');
for i:=1 to 4 do
begin
write('X',i,'='); readln(x[i]);
 if x[i]>100 then
  repeat
  writeln('Vi v spoem yme? Vvedite norm koordinatu');
  write('X',i,'='); readln(x[i]);
  until(x[i]<=100);
write('Y',i,'='); readln(y[i]);
 if y[i]>100 then
  repeat
  writeln('Vi v spoem yme? Vvedite norm koordinatu');
  write('Y',i,'='); readln(y[i]);
  until((y[i]<=100))and(y[i]<>0);
end;

 clrscr;
  d:=Detect;
  InitGraph(d,r,'');
  e:=GraphResult;
  if e <> grOK then
  begin
    Writeln ('Error');
    readln;
    halt;
  end;

d1:=sqrt(sqr(x[2]-x[1])+sqr(y[2]-y[1]));
d2:=sqrt(sqr(x[3]-x[2])+sqr(y[3]-y[2]));
d3:=sqrt(sqr(x[4]-x[3])+sqr(y[4]-y[3]));
d4:=sqrt(sqr(x[1]-x[4])+sqr(y[1]-y[4]));
d1:=d1+d2+d3+d4;

if (d1*3<(GetMaxX div 4))and(d1*3<(GetMaxY div 4)) then
r:=40 else
if (d1*3<(GetMaxX div 3))and(d1*3<(GetMaxY div 3)) then
r:=30 else
if (d1*3<(GetMaxX div 2))and(d1*3<(GetMaxY div 2)) then
r:=20 else r:=10;
line (x[1]*r,y[1]*r,x[2]*r,y[2]*r);
line (x[2]*r,y[2]*r,x[3]*r,y[3]*r);
line (x[3]*r,y[3]*r,x[4]*r,y[4]*r);
line (x[4]*r,y[4]*r,x[1]*r,y[1]*r);


readln;
end.
Этот код рисует на экране по введёным координатам фигура в графическом режиме.
Не хватает тока проверки на трапецию
kJlaCuk вне форума Ответить с цитированием
Старый 27.12.2008, 23:19   #3
kJlaCuk
Пользователь
 
Регистрация: 17.09.2008
Сообщений: 14
По умолчанию

Тока этот код в режиме доработки, есть некоторые недочёты.
kJlaCuk вне форума Ответить с цитированием
Старый 27.12.2008, 23:24   #4
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
По умолчанию

Этот код рисует по координатам трапецию? если так то тут что то замудрено написано))
Викдон вне форума Ответить с цитированием
Старый 28.12.2008, 19:18   #5
kJlaCuk
Пользователь
 
Регистрация: 17.09.2008
Сообщений: 14
По умолчанию

http://programmersforum.ru/showthread.php?t=34587
kJlaCuk вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Движение фигуры по окружности &RiU Помощь студентам 3 31.10.2009 20:39
Помогите с геометрической задачкой! Rid Паскаль, Turbo Pascal, PascalABC.NET 12 06.12.2008 23:14
3D фигуры, как реализовать? Nikiforov Помощь студентам 2 22.02.2008 00:24
Програма для вывода геометрической фигуры Hworang Паскаль, Turbo Pascal, PascalABC.NET 8 30.10.2007 19:42
Детали, фигуры dma Microsoft Office Excel 1 17.10.2007 09:22