Форум программистов, компьютерный форум CyberForum.ru

Найти точку пересечения двух отрезков - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти произведение всех делителей введенного числа n http://www.cyberforum.ru/cpp-beginners/thread177771.html
Найти произведение всех делителей введенного числа n. C использованием while! помогите плиз)
C++ Ошибка в программе Вот код: /*--------------------------------------------------------------- БИБЛИОТЕКИ */ #include <iostream> #include <fstream> #include <vector> #include <math.h> /*------------------------------------------------------------------ ДЕФАЙНЫ */ http://www.cyberforum.ru/cpp-beginners/thread177769.html
C++ функция обмена переменных
помогите написать функцию которая меняет переменные местами, но не через swap, а через новую переменную,очень нужно. срочно.
Нужно сгенерировать элементы массива случайным образом с помощью функции rand C++
Нужно сгенерировать элементы случайным образом с помощью функции rand. Определить индексы максимального элемента матрицы. Вычислить произведение элементов над главной диагональю. Я сделал но не rand-ом можете сделать rand-омом?=) #pragma argsused #include <iostream.h> using namespace std; int main() { const int n = 5; int a; cout<<"Enter matrix 5x5:\n";
C++ Вычисление косинуса http://www.cyberforum.ru/cpp-beginners/thread177749.html
: Всем добрового время суток, я пока только начинаю изучать C++ и у меня поэтому много вопросов. Дана программа которая используя разложения косинуса, вычисляет его различные значения x: #include <iostream> using namespace std; const int N = 100; int main() { double x, q, s = 0; int n; cout << "Enter x = ";
C++ Рандомизация Необходимо случайным образом выбрать число от 0 до 0.9 включительно, и записать в a"" с шагом в 0.1. Что бы итоге "а" могло быть = 0 или 0.1 или 0.2 или 0.3 или 0.4 или 0.5 или 0.6 или 0.7 или 0.8 или 0.9 Как это реализовать? подробнее

Показать сообщение отдельно
Сергей Тульский
0 / 0 / 0
Регистрация: 21.02.2015
Сообщений: 2
23.08.2015, 02:30     Найти точку пересечения двух отрезков
type
edge = record
start_edge: record {Начальная Точка}
x,y: real;
end;
end_edge: record {Конечная точка}
x,y:real;
end;
end;
function Cross_Section(Edg1,Edg2: Edge): Boolean;
var a1,a2,
b1,b2,
c1,c2,
d,x,y,
al,mlt1,mlt2,mlt3,
max_min_minX,
min_max_maxX,
max_min_minY,
min_max_maxY: real;
flag1,flag2,flag3,flag4,flag5,flag6,flag7: Boolean;
begin
a1:=Edg1.StartEdge.y - Edg1.EndEdge.y;
b1:=Edg1.EndEdge.x - Edg1.StartEdge.x;
c1:=Edg1.StartEdge.x*Edg1.EndEdge.y - Edg1.EndEdge.x*Edg1.StartEdge.y;
a2:=Edg2.StartEdge.y - Edg2.EndEdge.y;
b2:=Edg2.EndEdge.x - Edg2.StartEdge.x;
c2:=Edg2.StartEdge.x*Edg2.EndEdge.y - Edg2.EndEdge.x*Edg2.StartEdge.y;
If a2<>0 then
al:=a1/a2
else
if b2<>0 then
al:=b1/b2
else
if c2<>0 then
al:=c1/c2;
mlt1:=al*a2;
mlt2:=al*b2;
mlt3:=al*c2;
If ((a1 = mlt1) and (b1 = mlt2) and (c1 = mlt3)) then
Result:=True
Else
begin
If (a1 = al*a2) and (b1 = al * b2) and (c1 <> al * c2) then
Result:=False
Else
begin
d:=a1*b2 - a2*b1;
x:=((-1*c1)*b2 - (-1*c2)*b1)/d;
y:=(a1*(-1*c2) - a2*(-1*c1))/d;
max_min_minX:=max(min(Edg1.StartEdge.x,Edg1.EndEdge.x),
min(Edg2.StartEdge.x,Edg2.EndEdge.x));
min_max_maxX:=min(max(Edg1.StartEdge.x,Edg1.EndEdge.x),
max(Edg2.StartEdge.x,Edg2.EndEdge.x));
max_min_minY:=max(min(Edg1.StartEdge.y,Edg1.EndEdge.y),
min(Edg2.StartEdge.y,Edg2.EndEdge.y));
min_max_maxY:=min(max(Edg1.StartEdge.y,Edg1.EndEdge.y),
max(Edg2.StartEdge.y,Edg2.EndEdge.y));
flag1:=round(max_min_minX) <= round(x);
flag2:=round(min_max_maxX) >= round(x);
flag3:=round(max_min_minY) <= round(y);
flag4:=round(min_max_maxY) >= round(y);
flag5:=flag1 and flag2;
flag6:=flag3 and flag4;
flag7:=flag5 and flag6;
If flag7 Then
Result:=True
Else
Result:=False;
end;
end;
end;
 
Текущее время: 03:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru