Определить, какой минимальной длины стежка соединяет точки 1 и 2 земельного участка - Free Pascal
Формулировка задачи:
Несколько дней назад в университете дали не простую задачу, с таким условием:
Земельный участок является прямоугольником со сторонами А и В. На границе заданные точки 1 и 2 с координатами (X1; Y1) и (X2; Y2) соответственно. Какой минимальной длины стежка соединяет точки 1 и 2? Тропа может проходить только по границе.
Размеры участка и координаты точек - целые числа, лежащие в пределах от 0 до 1000.
Технические условия. Вы вводите с клавиатуры в заданной последовательности числа A, B, X1, Y1, X2, Y2 (см. Пример). Вы выводите на экран единственное число - наименьшую длину ограждения.
пример:
введение
6 4 3 4 6 2
вывод
5
Задача не должна быть весьма сложной, сначала думал использовать формулу, нахождения расстояния между двумя точками, но тропа может ходить лишь по границе, из-за этого нахожусь в небольшом ступоре. Надеюсь на вашу помощь.
Решение задачи: «Определить, какой минимальной длины стежка соединяет точки 1 и 2 земельного участка»
textual
Листинг программы
var a,b,x1,x2,y1,y2,l:integer; begin readln(a,b,x1,y1,x2,y2); l:=abs(x1-x2)+abs(y1-y2); if abs(y1-y2)=b then if x1+x2+b<2*a-x1-x2+b then l:=x1+x2+b else l:=2*a-x1-x2+b; if abs(x1-x2)=a then if y1+y2+a<2*b-y1-y2+a then l:=y1+y2+a else l:=2*b-y1-y2+a ; writen(l); end.
Объяснение кода листинга программы
- Ввод данных с помощью функции readln(a,b,x1,y1,x2,y2).
- Вычисление длины стежка по формуле l:=abs(x1-x2)+abs(y1-y2).
- Проверка условия abs(y1-y2)=b.
- Если условие выполняется, то проверка условия x1+x2+b<2*a-x1-x2+b.
- Если условие выполняется, то присваивание переменной l значение x1+x2+b.
- Если условие не выполняется, то проверка условия abs(x1-x2)=a.
- Если условие выполняется, то проверка условия y1+y2+a<2*b-y1-y2+a.
- Если условие выполняется, то присваивание переменной l значение y1+y2+a.
- Если условие не выполняется, то присваивание переменной l значение 2*b-y1-y2+a.
- Вывод результата с помощью функции writen(l).
- Конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д