![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 11.11.2012
Сообщений: 32
|
![]()
Программа должна выводить против часовой стрелки вершины выпуклого полигона (номера точек по порядку ввода), созданного с помощью введенных координат точек. Ошибка в функции make_2halfs() она должна заносить в верхний массив точки, которые выше указанного уравнения прямой, а в нижний массив точки, которые ниже уравнения, но точки в массив не заносятся(когда программа работает, то между .it. должны быть цифры 1 или 2 но их нет).Помогите найти и исправить ошибку пожалуйста.
p.s. В некоторых функциях я сделал вывод символов/цифр для проверки работоспособности функций Код:
Последний раз редактировалось zorg-kirill; 15.11.2012 в 23:58. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 11.11.2012
Сообщений: 32
|
![]()
тут (пока) единственная проблема в функции make_2halfs: там в цикле ни одно ни второе условие почему-то не выполняется, хотя на тетради формулу правильно расписывал (да и в интернете такая же формула) для нахождения уравнения прямой.
(это на 1 функцию выше) |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
1) Не хотите убрать глобальные переменные? Самый лёгкий источник трудноуловимых ошибок же.
2) Что у Вас должно выражать linear_eq? Почему Вы считаете, что делить на (upper[0].x-lower[0].x) безопасно? Выводите ли Вы значение wtf для сравнения с ожидаемым? 3) Насколько я понимаю, (st[i].x-lower[0].x)*(upper[0].y-lower[0].y) оказывается равно 0. Почему - с глобальными переменными гадать можно до бесконечности, сам не хочу и Вам не советую. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 11.11.2012
Сообщений: 32
|
![]()
понял, постараюсь уменьшить количество глобальных переменных насколько это возможно
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
![]()
1. Выбираете точку, например, с минимальной координатой y и помечаете как начало.
2. Задаёте начальный угол = 0 3. Перебираете все свободные точки и выбираете ту, угол к оси х которой между ей и выбранной ранее точкой относительно начального угла минимален (все углы должны быть 0..2*Pi), выбираете её (пометив как занятую) 4. Устанавливает значение заданного угла равным углу наклона прямой из п.3. 5. Повторяете с п.3 пока угол между заданной точкой и начальной не станет минимальным. В общем-то всё просто)
Правильно поставленная задача - три четверти решения.
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 11.11.2012
Сообщений: 32
|
![]()
Сделал по-своему - программа работает ПРАВИЛЬНО, выдает правильный ответ но в конце выдает ошибку:
Windows has triggered a breakpoint in paragraph task 6.7(convex shell).exe. This may be due to a corruption of the heap, which indicates a bug in paragraph task 6.7(convex shell).exe or any of the DLLs it has loaded. This may also be due to the user pressing F12 while paragraph task 6.7(convex shell).exe has focus. з.ы. я Ф-12 не нажимал))) Код:
Последний раз редактировалось zorg-kirill; 18.11.2012 в 14:56. Причина: подправил прогу) |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа готова – пол дела, Главное защита от копирования!.. | Игорь22 | Общие вопросы Delphi | 15 | 03.02.2015 14:47 |
есть ошибки? (протестите у кого С++ есть) | Юлия_Ф | Помощь студентам | 11 | 07.10.2011 10:42 |
Как проверить готова ли программа к выводу фигур | Miha85193 | Мультимедиа в Delphi | 2 | 17.07.2010 17:34 |
Есть ошибки | Lisёноk | Помощь студентам | 2 | 25.03.2010 19:24 |
Как работать с TCanvas - на PaintBox1 программа должна рисовать полигон | Михаил Юрьевич | Общие вопросы Delphi | 16 | 04.01.2008 15:31 |