Составить программы анализа данных
Программы должны решать следующие задачи:
1.1 Два объекта движутся с постоянными скоростями в горизонтальной плоскости по пересекающимся прямым. Известны их координаты в моменты времени t0 и t1. а) Определить, пересекутся ли траектории объектов и, если да, то точку пересечения траекторий; б) Найти время прохождения точки пересечения каждым из объектов и скорость каждого из них; в) Будем считать, что объекты должны столкнуться, если возможное кратчайшее расстояние между ними меньше суммарной длины объектов И это расстояние будет достигнуто в момент времени, превышающий t1. Определить, возможно ли столкновение. Входные данные: числа с плавающей запятой t0, t1 моменты времени (t0<t1 - проверьте ) , x1, y1, x2, y2 – начальное и конечное положение первого объекта, u1,z1, u2, z2 – начальное и конечное положение второго объекта, L1, L2 — размеры объектов. Выходные данные: Если траектории движения параллельны, то вывести строку «Траектории не пересекаются». Если траектории движения объектов не параллельны, то вывести числа с плавающей запятой x, y — координаты точки пересечения; t3,t4 — время прохождения через точку пересечения первым и вторым объектом соответственно; v1, v2 – скорости объектов; строку «Ожидается столкновение» или «Столкновение не произойдет» в зависимости от решения пункта в). Предусмотрите проверку корректности данных, вводимых пользователем. почему то не могу представить как решить данную задачу( помогите мне разобраться с ней. ПС\ спасибо |
Эх, знать бы, на каком языке программирования следует решать задачу! Но что поделаешь - тайна есть тайна...
|
Цитата:
|
Цитата:
|
Код:
/*пересечения двух прямых*/ б) Найти время прохождения точки пересечения каждым из объектов и скорость каждого из них; не совсем понимаю как сделать, если бы объяснили или алгоритм решения подсказали было бы чюдно |
Цитата:
Тут, вероятно, целесообразно ввести X и Y-компоненты вектора скорости для каждого из объектов. Например, так. Пусть заданные координаты точек объектов a и b есть X1a, Y1a, X2a, Y2a, X1b, Y1b, X2b, Y2b. Тогда компоненты скорости объектов задаем так: VaX = (X2a-X1a)/(t1-t0) VaY = (Y2a-Y1a)/(t1-t0) VbX = (X2b-X1b)/(t1-t0) VaX = (Y2b-Y1b)/(t1-t0) Абсолютные скорости объектов Va и Vb найдём по формулам (Va)² = (VaX)² + (VaY)² (Vb)² = (VbX)² + (VbY)² Координаты Xa(t), Ya(t), Xb(t), Yb(t) объектов в любой момент времени можно сосчитать, как Xa(t) = X1a + VaX*t Ya(t) = Y1a + VaY*t Xb(t) = X1b + VbX*t Yb(t) = Y1b + VbY*t Координаты точки пересечения траекторий X0 и Y0 мы уже вычислили. Времена ta и tb прохождения точки пересечения каждым из объектов находим, как ta = t0 + (X0 - X1a)/VaX tb = t0 + (X0 - X1b)/VbX Теперь ищем минимальное расстояние. Пусть D(t) - расстояние между объектами в любой момент времени t. Его можно найти из формулы D(t) = √[(Xa(t) - Xb(t))² + (Ya(t) - Yb(t))²] И теперь нужно найти сосчитать производную dD/dt, приравнять её к 0, определить время, соответствующее наибольшему сближению (обозначим, например, tt), найти D(tt) и сравнить с суммой длин объектов. Справитесь? |
Цитата:
|
Код:
/*пересечения двух прямых*/ Задание написать на Си) с Пролог не знаком( |
Цитата:
Цитата:
Либо условия, либо задача поставлены не корректно. |
Вложений: 1
Код:
/*пересечения двух прямых*/ Код:
Введите время t0 и t1 (t0<t1): 3 8 в) Будем считать, что объекты должны столкнуться, если - возможное кратчайшее расстояние между ними меньше суммарной длины объектов И - это расстояние будет достигнуто в момент времени, превышающий t1. |
Часовой пояс GMT +4, время: 22:08. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.