Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 2
Регистрация: 29.02.2012
Сообщений: 4

Проверка на четырехугольность

29.02.2012, 22:19. Показов 1658. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание: По заданным вершинам определить периметр четырехугольника, определить, является ли он ромбом. Проверить вводимые данные на корректность.
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
program Romb3;
 
var
x1,x2,x3,x4,y1,y2,y3,y4:real;     {Координаты вершин}
a,b,c,d:real;                     {Стороны четырехугольника}
Perimetr:real;                    {Периметр четырехугольника}
 
Begin
  writeln('Введите координаты x1,y1, x2,y2, x3,y3, x4,y4');
  read(x1,y1, x2,y2, x3,y3, x4,y4);
  a:=sqrt(sqr(x1-x2)+sqr(y1-y2));
  b:=sqrt(sqr(x2-x3)+sqr(y2-y3));
  c:=sqrt(sqr(x3-x4)+sqr(y3-y4));
  d:=sqrt(sqr(x4-x1)+sqr(y4-y1));
    if ((x1*y2 = x2*y1) and (x2*y3 = x3*y2)) or ((x3*y4=x4*y3) and (x4*y1=x1*y4)) {не лежат на одной прямой}
    then writeln('Не является четырехугольником')
    else
      begin
      Perimetr:=(a+b+c+d);
      Writeln('Периметр четырехугольника ',Perimetr:4:2);
      end;
 
 
  if (a=b) and (a=c) and (a=d) then
    writeln(' является ромбом');
  readln;
  readln;  
End.
Собственно, прошу помощи - подскажите где я допустил ошибку при проверке того, лежат ли стороны на одной прямой.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.02.2012, 22:19
Ответы с готовыми решениями:

Что быстрее, проверка на null, или проверка на тип перечисления в запросе?
вопрос такой. если несколько таблиц. сходных по структуре в запросе. в первой таблице типТовара = перечисление.тратата.набор во...

Проверка кода и советы по его улучшению. Генерация случайных чисел и проверка на уникальность
Привет народ! Занимаюсь изучением Java, захотелось реализовать выборку случайных чисел для лотереи. Вроде бы все прописал и программа даже...

Проверка на совпадение + проверка строки на содержание спец. символов
В общем ситуация такая: есть типизированный файл, форма для добавления пользователей (которые пишутся в файл). Для записи данных использую...

3
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.03.2012, 09:28
Если есть 4 точки, то это по любому четырехугольник, другое дело что он может быть вырожденным, т.е. имеющим площадь=0.
Это проверяется проверкой треугольников по формуле
Pascal
1
if (x1-x3)*(y2-y3)-(x2-x3)*(y1-y3)=0 then ....
Вам нужно проверить 2 треугольника.
1
0 / 0 / 2
Регистрация: 29.02.2012
Сообщений: 4
07.03.2012, 13:25  [ТС]
Ой, а что это за формула, и как ее лучше применить в этой задаче?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.03.2012, 13:32
Это векторное произведение, площадь параллелограмма, или удвоенная площадь треугольника.

Добавлено через 4 минуты
А применять также как и У Вас проверка сделана. Кстати насчет двух треугольников я погорячился, достаточно и одного, если он нулевой, то это уже не четырехугольник.
Pascal
1
if (x1-x3)*(y2-y3)-(x2-x3)*(y1-y3)=0 then writeln('Четырехугольник вырожденный');
это значит что это или треугольник, или прямая, или точка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.03.2012, 13:32
Помогаю со студенческими работами здесь

Проверка нескольких textbox на пустоту, а также проверка их значения
Имеется textbox1, textbox2, textbox3, button1. Нужно сделать так, чтобы проверялось условие: Если хотя бы один из textbox пуст или его...

Проверка метабокса - не сохранять пост, если проверка не пройдена
Всем здравствуйте. Изучаю метабоксы в WP. Столкнулся с проблемой проверки метабокса. Возьмем мой код сохранения данных метабокса: ...

Проверка наличия шрифта в системе и установить если отсуствует + проверка запущен ли проект с правами админа
Здравствуйте. Как можно проверить наличия шрифта в системе и установить его если отсуствует. Ну плюс еще проверить запущен ли проект от...

Проверка internet connection. Проверка доступности сети
Добрый день. Для проверки Internet Connection советуют делать что-то вроде: private boolean haveNetworkConnection() { ...

Visual C++ проверка ввода на число, проверка на кирилицу
Суть ввести с клавиатуры нечто, и повторять ввод до тех пор пока введенное число не будет числом. Этот код проверяет на буквы и знаки,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru