zotti
?>

Поле шахматной доски определяется парой чисел (a, b), каждое от 1 до 8, первое число задает номер столбца, второе — номер строки. заданы две клетки. определите, может ли шахматный король попасть с первой клетки на вторую за один ход. входные данные даны 4 целых числа от 1 до 8 каждое, первые два начальную клетку, вторые два конечную клетку. начальная и конечная клетки не . числа записаны в отдельных строках. выходные данные программа должна вывести yes, если из первой клетки ходом короля можно попасть во вторую, или no в противном случае.

Информатика

Ответы

kireevatatiana
Var
 x1,y1,x2,y2:byte;
begin
  Readln(x1,y1,x2,y2);
  if ((abs(x1-x2)<=1) and (abs(y1-y2)<=1)) then Writeln('YES')
  else Writeln('NO')
end.
saveskul84
Var  x1, y1, x2, y2: longint; begin  readln(x1, y1, x2, y2);  if ((y1 = y2) and (abs(x2 - x1) = 1)) or ((x1 = x2) and (abs(y2 - y1) = 1)) or ((abs(y1 - y2) = 1) and (abs(x2 - x1) = 1)) then    write('YES')  else    write('NO'); end.
Chikichev456

Объяснение:

Немного математики:

Вся заштрихованная область представляет собой решение некоторой системы уравнений. Например, I четверть координатной плоскости задается x > 0, y > 0. Этот случай относится к тому, что область принадлежит той самой I четверти.

Теперь у нас есть два варианта решения: проверить принадлежности x к отрезку (0; 7), а затем разбить на два условия: если точка принадлежит отрезку (0;5], то координата y должна принадлежать (0;5). Иначе если координата икс в отрезке [5;7), то координата y должна быть меньше некоторой линейной функции, проходящей через точки (5;5) и (7;0)

Второй вариант (он будет оптимальнее): сначала проверить принадлежность координаты y в отрезке (0;5). Если это так, то проверить выполнение условия 0 < x < f(y), где f(y) - это некоторая линейная функция.

Давайте найдем эту линейную функцию.

Если линейная функция задается уравнением y = kx + b, то справедлива система:

\left \{ {{5k +b =5} \atop {7k + b=0}} \right.

От второго отнимаем первое уравнение, получаем 2k = -5, или k = -2.5, а b будет при этом равно 17,5

Теперь найдем обратную функцию (решать будем по второму варианту)

y = -2.5x + 17.5\\2y = -5x + 35\\35 - 2y = 5x\\x = 7 - 0.4y

Теперь, точка считается внутри фигуры, если выполняется:

0 < y < 5

0 < x < 7 - 0.4y

Сама программа:

program task;

var x, y: real;

begin

writeln('Введите координаты точки х и y: ');

readln(x, y);

if ((y > 0) and (y < 5)) then begin

if ((x > 0) and (x < 7 - 0.4*y)) then writeln('Попадает')

else writeln('Не попадает')

end;

end.

l250sp70
Предполагаем без проверки, что треугольник по заданным длинам сторон построить можно (иначе надо убедиться. что сумма каждой пары сторон больше третьей стороны).
А дальше выясняем, какая сторона самая длинная и полагаем, что две другие - это катеты. И проверяем, выполняется ли теорема Пифагора с точностью до какой-то допустимой погрешности, например, до 10⁻⁹.

const
  eps=1e-9; // допустимая погрешность
var
  a,b,c,t:real; // c - гипотенуза
begin
  Write('Введите длины сторон треугольника: '); Read(a,b,c);
  if a>c then begin t:=a; a:=c; c:=t end;
  if b>c then begin t:=b; b:=c; c:=t end;
  if abs(a*a+b*b-c*c)<=eps then Writeln('Треугольник прямоугольный')
  else Writeln('Треугольник не прямоугольный')
end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Поле шахматной доски определяется парой чисел (a, b), каждое от 1 до 8, первое число задает номер столбца, второе — номер строки. заданы две клетки. определите, может ли шахматный король попасть с первой клетки на вторую за один ход. входные данные даны 4 целых числа от 1 до 8 каждое, первые два начальную клетку, вторые два конечную клетку. начальная и конечная клетки не . числа записаны в отдельных строках. выходные данные программа должна вывести yes, если из первой клетки ходом короля можно попасть во вторую, или no в противном случае.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Dmitriy2211104
Андреевич-Екатерина1974
menesmir
lemoh
Кириллов57
valentinakarma2800
eidevyatkina
vasearu
menametov
besson89
yrgenson2011801
shturman-765255
stusha78938
Borisovich-Volobueva1803
forwandy42