Во вложении показана принятая условная схема нумерации полей. Предполагается, что если ферзь стоит на клетке с координатами (3,4), он может пойти по горизонтали, вертикали или диагонали. Соответствующие направления выделены цветом. Чтобы взять фигуру (или пешку) противника по горизонтали, у обоих фигур должны быть одинаковы координаты строки (первые в паре). Чтобы взять фигуру противника по вертикали, у обоих фигур должны быть одинаковы координаты столбца (вторые в паре в паре). Наконец, чтобы взять фигуру противника по диагонали, у обоих фигур должна быть одинакова абсолютная величина разницы как между строками, так и между колонками. Последнее правило взятия сложное, поэтому запишем его в условных обозначениях. Пусть Rq и Cq - соответственно номера строки и столбца, пересечение которых указывает положение клетки с ферзем. Пусть также фигура противника находится на клетке, заданной координатами Rx и Cx. Тогда последнее правило можно записать в виде |Rq-Rx| = |Cq-Cx| Теперь можно записать логическое выражение, значение которого истинно, если ферзь может взять фигуру (или пешку) противника. (Rq=Rx) ∨ (Cq=Cx) ∨ (|Rq-Rx| = |Cq-Cx|)
// PascalABC.NET 3.3, сборка 1625 от 17.01.2018 // Внимание! Если программа не работает, обновите версию!
begin var (Rq,Cq):=ReadInteger2('Введите номера горизонтали и вертикали ферзя:'); var (Rx,Cx):=ReadInteger2('Введите номера горизонтали и вертикали фигуры:'); if (Rq=Rx) or (Cq=Cx) or (Abs(Rq-Rx)=Abs(Cq-Cx)) then Writeln('Yes') else Writeln('No') end.
Пример Введите номера горизонтали и вертикали ферзя: 3 4 Введите номера горизонтали и вертикали фигуры: 6 1 Yes
maxchemaxim14
07.08.2021
Var x, i, h1, h2, h3, h4, h5, h6, s1, s2: integer; begin readln (x); h1 := x div 100000; h2 := x mod 100000 div 10000; h3 := x mod 10000 div 1000; h4 := x mod 1000 div 100; h5 := x mod 100 div 10; h6 := x mod 10; s1 := h1 + h2 + h3; s2 := h4 + h5 + h6; if (s1 = s2) then writeln('Счастливый') else writeln('Несчастный:)'); readln; end.
Вот, ошибка в целочисленном делении) Советую такое на листочке расписывать: 123321 и обводить что нужно взять, что в каком порядке откидывать...)
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Для каждого из указанных значений числа x истинно выражение x >-6 v x<-9 1)-10 2)-8 3)-6 4)-9
(x >-6) + (x<-9)
1) 0+1 = 1
2) 0+0 = 0
3) 0+0 = 0
4) 0+0=0
Отв: 1