![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 11.08.2007
Сообщений: 69
|
![]()
Услови:
Вводим координаты трех точек, т.е. A[x1,y1],B[x2,y2]C[x3,y4]. В резултате чего получаем виртуальный треугольник на оси xy. Задача: Определить, если начало координат (0,0) попадает в в треугольник. //помогите с составлением алгоритма ![]()
Советовать можно лишь в деле, в котором сам собираешься участвовать.
|
![]() |
![]() |
![]() |
#2 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
![]()
Вот вариант Паскаля/Делфи:
Код:
Life is too short, play more...
Как правильно задавать вопросы Последний раз редактировалось Alex21; 27.09.2007 в 09:15. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 11.08.2007
Сообщений: 69
|
![]()
В си набирал тоже самое.. ..почуму-то не правильно выдаёт результат.
___________________________________ ___________________________ #include <stdio.h> #include <math.h> #include <conio.h> void main() { clrscr(); float Ax, Ay, Bx, By, Cx, Cy; printf("Vvedite koorinati to4ki A\n"); scanf("%f %f",&Ax,&Ay); printf("Vvedite koorinati to4ki B\n"); scanf("%f %f",&Bx,&By); printf("Vvedite koorinati to4ki C\n"); scanf("%f %f",&Cx,&Cy); float Ox=0; float Oy=0; float abc,abo,aco,bco; abc=(Ax*(By-Cy)+Bx*(Cy-Ay)+Cx*(Ay-By))/2; abo=(Ax*(By-Oy)+Bx*(Oy-Ay)+Ox*(Ay-By))/2; aco=(Ax*(Cy-Oy)+Cx*(Oy-Ay)+Ox*(Ay-Cy))/2; bco=(Bx*(Cy-Oy)+Cx*(Oy-By)+Ox*(By-Cy))/2; float s=abs(abo)+abs(bco)+abs(aco); float pog=0.1; if(abs(s-abc)<pog) printf("Nacalo koordinat prinadleji oblasti treugolnika"); else printf("Nacalo koordinat ne prinadleji oblasti treugolnika"); getch(); }
Советовать можно лишь в деле, в котором сам собираешься участвовать.
Последний раз редактировалось necky; 27.09.2007 в 13:24. |
![]() |
![]() |
![]() |
#4 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
![]()
Покажи свои координаты, при которых неправильно считает.
Life is too short, play more...
Как правильно задавать вопросы |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 11.08.2007
Сообщений: 69
|
![]()
ax:=2; ay:=-3;
bx:=1; by:=3; cx:=-1; cy:=-1; ______________ Даже с этими координатами результат не верен.
Советовать можно лишь в деле, в котором сам собираешься участвовать.
Последний раз редактировалось necky; 27.09.2007 в 13:42. |
![]() |
![]() |
![]() |
#6 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
![]()
Попробуй меньше или равно поставить:
if(abs(s-abc)<=pog)
Life is too short, play more...
Как правильно задавать вопросы |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 11.08.2007
Сообщений: 69
|
![]()
Тоже самое!!! вот если поставить if(abs(s-abc)>=pog) работает правильно с предидущими координатамти. С координатами:
___________________________________ _ ax:=3; ay:=3; bx:=-1; by:=1; cx:=1; cy:=-3; ___________________________________ _ Выдаёт не верный результат. Что делать?
Советовать можно лишь в деле, в котором сам собираешься участвовать.
|
![]() |
![]() |
![]() |
#8 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
![]()
Вот мои значения(по координатам из вашего 7-го поста):
ABC = 10.00 ---------- ABO = 3.00 BCO = 1.00 ACO = 6.00 Площадь трех = 10.00 -------------------- |10-10| <= 0.1 P.S.: ищите ошибку в своем коде. Почему не делаете с Функцией?
Life is too short, play more...
Как правильно задавать вопросы |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 11.08.2007
Сообщений: 69
|
![]()
Нашёл!!! Причина была в функции abs() - она не работает. Пришлось ее заменить на sqrt(pow(var,2)). Теперь работает как часы))). Alex21- выражаю вам огромную благодарность!!!
Советовать можно лишь в деле, в котором сам собираешься участвовать.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
задача по ООП | Lenivec** | Фриланс | 2 | 17.07.2008 15:17 |
Задача/C++ | Stan | Помощь студентам | 2 | 24.01.2008 20:33 |
Задача по ТП. | GE076 | Помощь студентам | 11 | 07.12.2007 19:29 |