Помощь - Поиск - Пользователи - Календарь
Полная версия: Одномерные массивы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
disneyland
Считая элементы (x, y) координатами конечных точек отрезков ломаной линии, определить номер отрезка, который пересекает ось ординат, а также координаты точки пересечения. Если таких отрезков несколько, то указать номер наиболее длинного из них.


sheka
В чем проблема? Математика? Паскаль?
disneyland
паскаль, там еще 2 уравнения есть я так понял это уравнения линий и в них надо подставлять значение х и y, я не знаю как прогу расписать(
sheka
Ну дык давай наработки в студию!
Archon
Ну, это похоже на поиск максимального элемента в массиве. Длину отрезка посчитать не проблема:
L := Sqrt(Sqr(X2 - X1) + Sqr(Y2 - Y1));
Условие на пересечение с осью ординат такое, например:
if ((X1 <= 0) and (X2 >= 0)) or ((X1 >= 0) and (X2 <= 0)) then begin
// . . .
end;
А точку пересечения можно найти вот так:
Y0 := Y1 - X1 * (Y2 - Y1) / (X2 - X1);
А ещё отрезок может целиком лежать на оси ординат (X1 = X2 = 0). Видимо, в таком случае нужно вывести специальное сообщение об этом.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.