В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
rystamgfţ
rystamgfţ
14.12.2021 09:02 •  Информатика

Решит оч надо на python условная инструкция «шахматная доска» заданы две клетки шахматной доски. если они покрашены в один цвет, то выведите слово yes, а если в разные цвета — то no. программа получает на вход четыре числа от 1 до 8 каждое, номер столбца и номер строки сначала для первой клетки, потом для второй клетки.

Показать ответ
Ответ:
Батыр100
Батыр100
26.07.2020 10:15
Наложим на шахматную доску систему прямоугольных координат так, чтобы в левом нижнем углу была клетка с координатами (1,1) - строка 1, колонка 1. Тогда в правом верхнем углу будет клетка с координатами (8,8) - строка 8, колонка 8. И вспомним, что шахматная доска кладется так, чтобы у игрока, играющего белыми, правое угловое поле было белого цвета. Тогда клетка (1,1) будет черного цвета, как и любая другая, у которой сумма координат четная. А если у клетки сумма координат нечетная, то она будет белого цвета. Собственно, цвет неважен, важно лишь то, что одноцветными клетки будут тогда и только тогда, когда у них обоих сумма координат будет или четным числом, или нечетным.
Отсюда строим алгоритм: вводим координаты первой клетки (r1,c1) и второй клетки (r2,c2). Имена взяты от английских слов Row - строка и Column - колонка. Находим s1=r1+c1 и s2=r2+c2. Если s1 четное и s2 четное, или если s1 нечетное и s2 нечетное, выводим "Yes", в противном случае выводим "No".
Четность s1 в языке Python можно проверить по условию  s1%2==0 (остаток от целочисленного деления s1 на 2 равен 0).
Однако такое условие получается очень громоздким и лучше воспользоваться возможностями логических выражений (b - логическая переменная):
если s1 четное, то
     b=значение истинности логического выражения (s2=четное)
иначе
     b=значение истинности логического выражения (s2=нечетное)
eсли b, то
     вывести "Yes"
иначе
     вывести "No"

Программа на языке Python 3.4:
r1=int(input("Строка 1=")); c1=int(input("Колонка 1="))
r2=int(input("Строка 2=")); c2=int(input("Колонка 2="))
s1=r1+c1; s2=r2+c2
if s1%2==0:
    b=(s2%2==0)
else:
    b=(s2%2!=0)
if b:
    print("Yes")
else:
    print("No")

Тестовое решение:
Python 3.4.2 (v3.4.2:ab2c023a9432, Oct  6 2014, 22:15:05) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> RESTART
>>>
Строка 1=7
Колонка 1=3
Строка 2=2
Колонка 2=2
Yes
>>>
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота