Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
codofag
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 2
1

Определите что представляет из себя четырехугольник: ромб, прямоугольник, квадрат, трапеция

01.06.2012, 01:44. Просмотров 4176. Ответов 1
Метки нет (Все метки)

Помогите пожалуйста,Даны координаты вершин четырехугольника Составить программу для определения вида Определите один из видов: ромб, прямоугольник, квадрат, трапеция .Заранее спасибо.
Вот эта программа не работает,точнее не всегда правильно определяет
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
program lab6_2;
uses crt;
     var x1,x2,x3,x4,y1,y2,y3,y4: integer;
         kvadr: boolean;
         l1,l2,l3,l4,l5,d,k1,k2,k3,k4: real;
BEGIN
 
     writeln('введите координаты первой вершины');
     readln(x1,y1);
     writeln('введите координаты второй вершины');
     readln(x2,y2);
     writeln('введите координаты третьей вершины');
     readln(x3,y3);
     writeln('введите координаты четвертой вершины');
     readln(x4,y4);
     l1:=sqrt(sqr(x1-x1)+sqr(y2-y1));
     l2:=sqrt(sqr(x3-x2)+sqr(y3-y2));
     l3:=sqrt(sqr(x3-x4)+sqr(y3-y4));
     l4:=sqrt(sqr(x4-x1)+sqr(y4-y1));
     l5:=sqrt(sqr(x2-x4)+sqr(y2-y4));
 
 
     d:=sqrt(sqr(x3-x1)+sqr(y3-y1));
     if (l1=l2) and (l2=l3) and (l3=l4) and (sqr(l5)+sqr(l4)=4*sqr(l1))then
 
 
        writeln('Четырехугольник является квадратом');
 
     if (l1=l2) and (l2=l3) and (l3=1) and (4*sqrt(2)<>d) then
        writeln('Четырехугольник является ромбом');
     if((l1<>l4) and (l3<>l4)) and ((x4-x1)*(y3-y2)=(x3-x2)*(y1-y4)) or ((x2-x1)*(y4-y3)=(x4-x3)*(y2-y4)) then
     writeln('Четырехугольник является трапецией');
END.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2012, 01:44
Ответы с готовыми решениями:

Что представляет из себя язык программирования Pascal?
Что представляет из себя язык программирования Pascal? Особенности Pascal по сравнению с другими...

Объявить систему классов: Точка, Прямоугольник, Квадрат, Ромб, Трапеция, Треугольник, Четырехугольник
Необходимо создать систему классов: Точка, Прямоугольник, Квадрат, Ромб, Трапеция, Треугольник,...

Множественное наследование: прямоугольник, квадрат, ромб, параллелограмм
Помогите, пожалуйста, разработать иерархию. В дальнейшем надо реализовать несколько методов,...

Определить тип параллелограмма (ромб, прямоугольник или квадрат)
Задача 1. Задан параллелограмм со сторонами a, b и углом α между ними. Определить тип...

Зданы координаты вершин четырёхугольника. Определить его тип:прямоугольник , паралелограм, трапеция , квадрат, произвольный
Зданы координаты вершин четырёхугольника. Определить его тип:прямоугольник , паралелограм, трапеция...

1
Puporev
Модератор
56339 / 43119 / 29825
Регистрация: 18.05.2008
Сообщений: 102,473
01.06.2012, 08:20 2
Вот посмотри, как-то писал.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
uses crt;
const t=0.0001;
function Dlina(x1,y1,x2,y2:integer):real;
begin
Dlina:=sqrt(sqr(x1-x2)+sqr(y1-y2));
end;
function IsParl(x1,y1,x2,y2,x3,y3,x4,y4:integer):boolean;
begin
IsParl:=(y2-y1)*(x4-x3)=(y4-y3)*(x2-x1);
end;
var x1,y1,x2,y2,x3,y3,x4,y4:integer;
    ab,bc,cd,da,ac,bd:real;
begin
clrscr;
writeln('Введите последовательно координаты 4х точек:');
write('A:  ');readln(x1,y1);
write('B:  ');readln(x2,y2);
write('C:  ');readln(x3,y3);
write('D:  ');readln(x4,y4);
ab:=Dlina(x1,y1,x2,y2);
bc:=Dlina(x2,y2,x3,y3);
cd:=Dlina(x3,y3,x4,y4);
da:=Dlina(x4,y4,x1,y1);
ac:=Dlina(x1,y1,x3,y3);
bd:=Dlina(x2,y2,x4,y4);
{обе пары не параллельны}
if not IsParl(x1,y1,x2,y2,x3,y3,x4,y4)and not IsParl(x2,y2,x3,y3,x1,y1,x4,y4)
   then write('Произвольный четырехугольник')
{одна пара параллельна, вторая нет}
else if (IsParl(x1,y1,x2,y2,x3,y3,x4,y4)and not IsParl(x2,y2,x3,y3,x1,y1,x4,y4))
     or (not IsParl(x1,y1,x2,y2,x3,y3,x4,y4) and IsParl(x2,y2,x3,y3,x1,y1,x4,y4))
   then write('Трапеция')
{обе пары параллельны}
else if IsParl(x1,y1,x2,y2,x3,y3,x4,y4)and IsParl(x2,y2,x3,y3,x1,y1,x4,y4) then
 begin
  {стороны не равны и диагонали не равны}
  if ((abs(ab-bc)>t)and(abs(ac-bd)>t)) then write('Параллелограмм')
  {стороны не равны, а диагонали равны}
  else if ((abs(ab-bc)>t)and(abs(ac-bd)<t)) then write('Прямоугольник')
  {стороны равны, а диагонали не равны}
  else if ((abs(ab-bc)<t)and(abs(ac-bd)>t)) then write('Ромб')
  {стороны равны и диагонали равны}
  else if ((abs(ab-bc)<t)and(abs(ac-bd)<t)) then write('Квадрат');
 end;
readln
end.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2012, 08:20

Построение изображения заказанного четырехугольника (параллелограмм, прямоугольник, ромб, квадрат)
Построение изображение заказанного четырехугольника (параллелограмм, прямоугольник, ромб, квадрат).

Как доказать, что данный четырехугольник - ромб?
Как доказать что четырехугольник с вершинами A(-5 ,-2) B( -4 ,-5) C (3, 6) D(2, -1)-ромб.

Записать программу, которая по выбранному названию фигуры (тре- угольник, квадрат, ромб, прямоугольник и т
Записать программу, которая по выбранному названию фигуры (тре- угольник, квадрат, ромб,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru