Определить, какой минимальной длины стежка соединяет точки 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.

Объяснение кода листинга программы

  1. Ввод данных с помощью функции readln(a,b,x1,y1,x2,y2).
  2. Вычисление длины стежка по формуле l:=abs(x1-x2)+abs(y1-y2).
  3. Проверка условия abs(y1-y2)=b.
  4. Если условие выполняется, то проверка условия x1+x2+b<2*a-x1-x2+b.
  5. Если условие выполняется, то присваивание переменной l значение x1+x2+b.
  6. Если условие не выполняется, то проверка условия abs(x1-x2)=a.
  7. Если условие выполняется, то проверка условия y1+y2+a<2*b-y1-y2+a.
  8. Если условие выполняется, то присваивание переменной l значение y1+y2+a.
  9. Если условие не выполняется, то присваивание переменной l значение 2*b-y1-y2+a.
  10. Вывод результата с помощью функции writen(l).
  11. Конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы