Условия задача шахматная доска

Обновлено: 16.05.2024

Обращаем Ваше внимание, что в соответствии с Федеральным законом N 273-ФЗ «Об образовании в Российской Федерации» в организациях, осуществляющих образовательную деятельность, организовывается обучение и воспитание обучающихся с ОВЗ как совместно с другими обучающимися, так и в отдельных классах или группах.

Рабочие листы и материалы для учителей и воспитателей

Более 2 500 дидактических материалов для школьного и домашнего обучения

Столичный центр образовательных технологий г. Москва

Получите квалификацию учитель математики за 2 месяца

от 3 170 руб. 1900 руб.

Количество часов 300 ч. / 600 ч.

Успеть записаться со скидкой

Форма обучения дистанционная

  • Онлайн
    формат
  • Диплом
    гособразца
  • Помощь в трудоустройстве

311 лекций для учителей,
воспитателей и психологов

Получите свидетельство
о просмотре прямо сейчас!

Выберите документ из архива для просмотра:

Выбранный для просмотра документ Шахматные задачи.pptx

Презентация к уроку информатики 9 класс Автор: Юдин Андрей Борисович МКОУ Пле.


Курс профессиональной переподготовки

Информационные технологии в профессиональной деятельности: теория и методика преподавания в образовательной организации


Курс повышения квалификации

Специфика преподавания дисциплины «Информационные технологии» в условиях реализации ФГОС СПО по ТОП-50

Курс повышения квалификации

Геймификация как универсальная технология развития внутренней учебной мотивации школьников


«Домашнее обучение. Лайфхаки для родителей»

«Учись, играя: эффективное обучение иностранным языкам дошкольников»

Свидетельство и скидка на обучение
каждому участнику

Описание презентации по отдельным слайдам:

Презентация к уроку информатики 9 класс Автор: Юдин Андрей Борисович МКОУ Пле.

Презентация к уроку информатики
9 класс
Автор: Юдин Андрей Борисович
МКОУ Плесская СОШ
PascalABC
8
7
6
5
4
3
2
1
«Шахматные»
задачи
1 2 3 4 5 6 7 8
Задачи на сложные
условия

1Задача 1. Даны координаты шахматной доски x и y, (целые числа, лежащие в д.

Даны координаты шахматной доски x и y, (целые числа, лежащие в диапазоне от 1-8). Учитывая, что левое нижнее поле доски (1;1) является черным, проверить, какого цвета поле координаты которого введены с клавиатуры.

8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 827+3=10 Четная5+1=6 Четная8+4=1.

8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 834+1=5 Не четная8+5=13 Не четная

4
Program n1;
Uses Crt;
var x,y:Integer;
begin
ClrScr;
write('Введи Х ');Readln(x);
write('Введи Y ');Readln(y);
if ((x+y) mod 2 =0) then writeln ('Черная')
else writeln ('Белая');
end.

5Задача 2. Даны координаты двух различных полей шахматной доски x и y и x1.

Даны координаты двух различных полей шахматной доски x и y и x1 и y1, (целые числа, лежащие в диапазоне от 1-8). Проверить, попадет ли ладья за один ход с одного поля на другое.

8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 86

7
Program n2;
Uses Crt;
var x,y,x1,y1:Integer;
begin
ClrScr;
write('Введи Х ');Readln(x);
write('Введи Y ');Readln(y);
write('Введи Х1 ');Readln(x1);
write('Введи Y1 ');Readln(y1);
if (x=x1) or (y=y1) then writeln ('Попадает')
else writeln ('Не попадает');
end.

8Задача 3. Даны координаты двух различных полей шахматной доски x и y и x1.

Даны координаты двух различных полей шахматной доски x и y и x1 и y1, (целые числа, лежащие в диапазоне от 1-8). Проверить, попадет ли слон за один ход с одного поля на другое.

8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 89

8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8107-3=45-1=4

11
Program n1;
Uses Crt;
var x,y,x1,y1:Integer;
begin
ClrScr;
write('Введи Х ');Readln(x);
write('Введи Y ');Readln(y);
write('Введи Х1 ');Readln(x1);
write('Введи Y1 ');Readln(y1);
if abs(x-x1)=abs(y-y1)then
writeln ('Попадает')
else
writeln ('Не попадает');
end.

?12Задача 4. Даны координаты двух различных полей шахматной доски x и y и x.

Даны координаты двух различных полей шахматной доски x и y и x1 и y1, (целые числа, лежащие в диапазоне от 1-8). Проверить, попадет ли ферзь за один ход с одного поля на другое.

8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 813

14
Program n4;
Uses Crt;
var x,y,x1,y1:Integer;
begin
ClrScr;
write('Введи Х ');Readln(x);
write('Введи Y ');Readln(y);
write('Введи Х1 ');Readln(x1);
write('Введи Y1 ');Readln(y1);
if ((abs(x-x1)=abs(y-y1)) or (x=x1)or (y=y1))
then
writeln ('Попадает')
else
writeln ('Не попадает');
end.

?15Задача 5. Даны координаты двух различных полей шахматной доски x и y и x.

Даны координаты двух различных полей шахматной доски x и y и x1 и y1, (целые числа, лежащие в диапазоне от 1-8). Проверить, попадет ли король за один ход с одного поля на другое.

8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 816x1=x-1 and y1=y x1=x-1 and y.

8
7
6
5
4
3
2
1
1 2 3 4 5 6 7 8
16
x1=x-1 and y1=y
x1=x-1 and y1=y+1
x1=x and y1=y+1
x1=x+1 and y1=y+1
x1=x+1 and y1=y
x1=x+1 and y1=y-1
x1=x and y1=y-1
x1=x-1 and y1=y-1

17
var x,y,x1,y1:Integer;
a,b:boolean;
begin
ClrScr;
write('Введи Х ');Readln(x);
write('Введи Y ');Readln(y);
write('Введи Х1 ');Readln(x1);
write('Введи Y1 ');Readln(y1);
a:=(x1=x-1) and (y1=y) or (x1=x-1) and (y1=y+1) or (x1=x) and (y1=y+1) or (x1=x+1) and (y1=y+1);
b:=(x1=x+1) and (y1=y) or (x1=x+1) and (y1=y-1) or (x1=x) and (y1=y-1) or (x1=x-1) and (y1=y-1);
if a or b then writeln ('Попадает')
else writeln ('Не попадает');
end.

8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8183,34,13,15,14,35,33,25,24,2Тест

?19Задача 6. Даны координаты двух различных полей шахматной доски x и y и x.

Даны координаты двух различных полей шахматной доски x и y и x1 и y1, (целые числа, лежащие в диапазоне от 1-8). Проверить, попадет ли конь за один ход с одного поля на другое.

8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 820

8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 821x1=x-2 and y1=y+1 x1=x-1 and.

8
7
6
5
4
3
2
1
1 2 3 4 5 6 7 8
21
x1=x-2 and y1=y+1
x1=x-1 and y1=y+2
x1=x+1 and y1=y+2
x1=x+2 and y1=y+1

x1=x-2 and y1=y-1
x1=x-1 and y1=y-2
x1=x+1 and y1=y-2
x1=x+2 and y1=y-1

22
var x,y,x1,y1:Integer;
a,b:boolean;
begin
ClrScr;
write('Введи Х ');Readln(x);
write('Введи Y ');Readln(y);
write('Введи Х1 ');Readln(x1);
write('Введи Y1 ');Readln(y1);
a:=(x1=x-2) and (y1=y+1) or (x1=x-1) and (y1=y+2) or (x1=x+1) and (y1=y+2) or (x1=x+2) and (y1=y+1);
b:=(x1=x-2) and (y1=y-1) or (x1=x-1) and (y1=y-2) or (x1=x+1) and (y1=y-2) or (x1=x+2) and (y1=y-1);
if a or b then writeln ('Попадает')
else writeln ('Не попадает');
end.

8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8234,65,77,78,64,45,37,38,46,5Тест

25Список литературы:1. Основы программирования. И. Г. Семакин, А. П. Шестако.

25
Список литературы:
1. Основы программирования. И. Г. Семакин, А. П. Шестаков Издательство: Высшая школа, 2001
2. 100 задач по программированию. В. А. Дагене, Г. К. Григас, К. Ф. Аугутис Издательство: Просвещение 1993
3. Паскаль для школьников, Подготовка к ЕГЭ, Кашаев С.М., Шерстнева Л.В., 2011.
4. Книга начинающего шахматиста. Левенфиш Г. Я. Издательство: Москва. «Физкультура и спорт», 1957 г.

Выбранный для просмотра документ Описание Шахматные задачи.docx

Юдин Андрей Борисович

учитель информатики МКОУ Плесской СОШ

Приволжского р-на, Ивановской обл

Презентация к уроку информатики.

«Сложные условия. Шахматные задачи»

Презентация рассчитана на одно занятие, в теме «Ветвления в Паскале». В ней нет теоретического материала по логическим связкам, только задачи. Я сам давно увлекаюсь шахматами, поэтому теория игры для меня не нова. Для тех, кто не умет играть в шахматы (к моему огромному удивлению, таких людей достаточно много, особенно среди молодежи) советую сначала посмотреть любой справочник по игре или странички для начинающих в Интернете. Хотя бы для того, что бы «не сесть в лужу» перед учениками.

В презентации разобраны 6 задач. Этого вполне достаточно для одного урока. Я не даю конспект самого занятия, думаю, что коллеги, которые возьмут мою презентацию на вооружение, самостоятельно смогут вписать ее в свой урок.

Краткое описание презентации

Слайд 1. Показано условие задачи 1: Даны координаты шахматной доски x и y, (целые числа, лежащие в диапазоне от 1-8). Учитывая, что левое нижнее поле доски (1;1) является черным, проверить, какого цвета поле координаты которого введены с клавиатуры.

Слайд 2-3. Показана идея как отличить черные клеточки от белых по их координатам. Для простоты мы обозначаем вертикальные линии не буквами, а цифрами, наподобие матрицы. Можно использовать и другой способ определения цвета клеточек. Не находя сумму координат строки и столбца. Заметим, что для черных клеток номера строки и столбца одновременно могут быть или четными или нечетными. Для белых, обязательно кто-то будет четным (например, номер строки), тогда номер столбца должен быть нечетным. Но такое условие менее наглядно и более сложно в смысле программирования.

Слайд 4. Показано решение задачи со слайда 1.

Слайд 5. Сформулировано условие задачи 2: Даны координаты двух различных полей шахматной доски x и y и x1 и y1, (целые числа, лежащие в диапазоне от 1-8). Проверить, попадет ли ладья за один ход с одного поля на другое .

Слайд 6. Показано как ходит ладья.

Слайд 7. Решение задачи сформулированной на слайде 4.

Слайд 8. Сформулировано условие задачи 3: Даны координаты двух различных полей шахматной доски x и y и x 1 и y 1, (целые числа, лежащие в диапазоне от 1-8). Проверить, попадет ли слон за один ход с одного поля на другое.

Слайд 9. Показано как ходит слон.

Слайд 10. Рассмотрена идея «слоновьего квадрата». Программирование движения слона основано на том, что разность (по модулю) строк начальной и конечной, равна разности по модулю, начального и конечного столбца.

Слайд 11. Решение задачи сформулированной на слайде 8.

Слайд 12. Сформулировано условие задачи 4: Даны координаты двух различных полей шахматной доски x и y и x1 и y1, (целые числа, лежащие в диапазоне от 1-8). Проверить, попадет ли ферзь за один ход с одного поля на другое.

Слайд 13. Показано как ходит ферзь. По сути, ферзь, является объединением слона и ладьи. Условия для которых, написаны в предыдущих задачах.

Слайд 14. Показано решение задачи сформулированной на слайде 12.

Слайд 15. Сформулировано условие задачи 5: Даны координаты двух различных полей шахматной доски x и y и x 1 и y 1, (целые числа, лежащие в диапазоне от 1-8). Проверить, попадет ли король за один ход с одного поля на другое.

Слайд 16. Показано как ходит король. А так же дана математическая модель описания всех возможных клеток, куда он может попасть за один ход.

Слайд 17. Решение задачи сформулированной на слайде15. В этой и следующей задаче я использую две логические переменные. Это сделано только для того, что бы программа стала нагляднее.

Слайд 18. Показан тест для проверки правильности работы программы.

Слайд 19. Сформулировано условие задачи 6: Даны координаты двух различных полей шахматной доски x и y и x 1 и y 1, (целые числа, лежащие в диапазоне от 1-8). Проверить, попадет ли конь за один ход с одного поля на другое.

Слайд 20. Показано как ходит конь. На мой взгляд, программирование коня наиболее сложно.

Слайд 21. Показаны поля, на которые конь может попасть за один ход. А также математическая модель описания этих полей.

Слайд 22. Решение задачи сформулированной на слайде 19.

Слайд 23. Показан тест для проверки правильности работы программы.

1. Основы программирования. И. Г. Семакин, А. П. Шестаков Издательство: Высшая школа, 2001

2. 100 задач по программированию. В. А. Дагене, Г. К. Григас, К. Ф. Аугутис Издательство: Просвещение 1993

3. Паскаль для школьников, Подготовка к ЕГЭ, Кашаев С.М., Шерстнева Л.В., 2011.

4. Книга начинающего шахматиста . Левенфиш Г. Я. Издательство: Москва. «Физкультура и спорт», 1957 г.


python mathematics

Продалжаю решать задачки и знакомиться с языком Python на Питонтьютор. Попалась задачка которая мне очень понравилась и заставила попотеть. Условие:

Заданы две клетки шахматной доски. Если они покрашены в один цвет, то выведите слово YES , а если в разные цвета — то NO . Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.

И тут меня понесло куда-то не туда. Код конечно заработал, но он оказался так далек от совершенства. После решения мне стал доступен код разработчиков задачи, глянув на него я моментально понял принцип его работы и ведь я мог догадаться. Я должен был догадаться! Все было так просто и изящно. Но. У меня получилось как получилось. Обо всем по порядку.

Я рассуждал так. На шахматной доске клетки располагаются в следующей последовательности, если начинается с белой, следом идет черная, следом белая и так далее. Я принял за точку отсчета белую клетку с координатой (1;1).

Всё дальнейшее рассуждение некорректное, но оставлено как есть чтобы передать ход мыcлей.

Следующая белая имела бы координату (1;3), затем (1;5) и последняя в ряду (1;7). Белые второго ряда имели бы координаты (2;2), (2;4), (2;6), (2;8). Следующий третий ряд повторял бы первый ряд и отсюда уже можно было сделать вывод, что белые в нечетных рядах имеют нечетные координаты а в четных четные и наоборот, черные в нечетных рядах имели бы четные координаты а в четных нечетные. Это уже само по себе подсказывает решение, но я в тот момент этого не понял и решил действовать так, буду сравнивать координаты первой и второй клетки шаг за шагом. Чтобы определять нечетные и четные клетки решил воспользоваться остатком от деления на 2. Четные числа имели бы в остатке 0, так как любое четное число делится на два без остатка, отсюда вытекает обратное, что если число делиться на 2 без остатка то оно четное. А нечетные 1. Но и это не пришло мне в голову, логика отдыхала. Поэтому нечетные клетки я обозначил как остаток отделения не равный 0. Координаты первой клетки обозначались переменными (a;b), а второй (c;d). Условие было таким.

  1. ЕСЛИ первая И вторая координата первой клетки (уже очень глупо получается, но рассуждал я к сожалению именно так) была нечетной ИЛИ первая И вторая координата первой клетки была четной
  2. снова проверяем условие ЕСЛИ первая И вторая координата второй клетки тоже нечетная ИЛИ первая и вторая координата второй клетки тоже четная
  3. выводим на экран YES — т.е. две клетки одного цвета. Поясню. Если бы обе координаты каждой клетки были бы нечетные то как было видно выше в нечетных рядах у нас белые клетки, соответственно обе клетки были бы белые, а с четными координатами черные.
  4. ИНАЧЕ, т.е. если данные не соответствуют вышеперечисленному условию выводим на экран NO — т.е. обе клетки разного цвета. Но! Белая клетка может иметь четные координаты в четных рядах. И если первая клетка получает нечетные координаты а вторая четные, то они обе будут белые но программка напишет NO — они разные. На этом этапе именно так. Поэтому продолжаю условие изначальное условие №1
  5. ИНАЧЕ если первая координата первой клетки нечетная И вторая координата первой клетки четная ИЛИ наоборот первая координата первой клетки четная, а вторая нечетная, проверяем условие
  6. ЕСЛИ первая координата второй клетки нечетная И вторая координата второй клетки четная ИЛИ наоборот первая координата второй клетки четная, а вторая нечетная
  7. выводим на экран YES — т.е. две клетки одного цвета. Это условие исправляет тот недочет, когда первая и вторая клетка могут иметь четные и нечетные координаты соответственно и быть при этом одного цвета.
  8. ИНАЧЕ, т.е. если данные не соответствуют вышеперечисленному условию выводим на экран NO

Данный код прошел все тесты с различными входными данными и успешно выполнил задание.

Что c ним (с кодом) не так? Да наверное все. Это пример того, как не нужно писать код, именно такое программисты называют говнокод.

Как правильно нужно было решить задачу?

Для этого надо было включить логику и хорошенько подумать. Во первых обозначить координаты правильно (x1;y1), а для второй клетки (x2;y2). Если бы я это сделал сразу то тогда возможно понял бы, что не правильно передаю координаты клетки. Для первого ряда координаты белых будут не (1;1), (1;3) и т.д., а (1;1), (3;1)! и т.д.. Для черных (2;1), (4:1) и т.д.. Для второго ряда для белых (2;2), (4;2), а для черных (1;2), (3;2) и т.д.. Всмотримся в координаты повнимательнее. Сумма координатов белых всегда в любом ряду четная, а для черных нечетная! Т.е. можно наугад взять любой столбец по x, например 7 и раз он нечетный значит в сумме с нечетной строкой по y он даст четное число, т.е. белый цвет. Проверим, (7;1) — белый, (7;5) — белый. А в сумме с четным числом даст нечетное, т.е. черный цвет. (7;2) — черный как и (7;6). Что это нам дает? А это нам дает отличное решение.

  1. ЕСЛИ сумма координатов первой клетки четная И сумма координатов второй клетки четнаяИЛИ сумма координатов первой клетки нечетнаяИ сумма координатов второй клетки нечетная
  2. выводим на экран YES — т.е. две клетки одного цвета.
  3. ИНАЧЕ т.е. если данные не соответствуют вышеперечисленному условию выводим на экран NO.

Можно поступить еще проще, просто сравнить остатки от деления на 2 сумм координатов первой и второй клетки, если они равны, то соответственно клетки тоже одинаковые, ведь если обе клетки с четными координатами то остатки будут нулями, а если нечетные то единицей:

Если и дальше рассуждать логически можно прийти к следующему. Сумма координатов каждой из клеток может быть либо четной либо нечетной. А сумма двух четных или двух нечетных чисел всегда будет четное число. Отсюда мы можем написать следующее условие. Если сумма координатов обеих клеток четное число то значит и клетки одинаковые.

Это и есть код разработчиков задачи. Цель моего обучения программированию прийти в итоге к вот таким изящным решениям задач и писать не говнокод, а писать качественный код, лаконичный код, чтобы программки были как можно меньше, менее требовательны к ресурсам при том же функционале и за счет этого были быстрые и качественные. Задачки с шахматами продолжатся, теперь уже с фигурами, про них напишу в следующей заметки, так как эта и так получилась очень объемной.


python mathematics

Продолжаю решать шахматные задачки на Python. В прошлой задаче нужно было проверять окрашены ли заданные клетки на шахматной доске в один цвет. Теперь будут задачи на ход шахматных фигур и самая простая из них это:

Ход ладьи

Шахматная ладья ходит по горизонтали или вертикали. Даны две различные клетки шахматной доски, определите, может ли ладья попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести YES , если из первой клетки ходом ладьи можно попасть во вторую или NO в противном случае.

Задача очень простая, чтобы решить достаточно представить себе ладью на шахматном поле и проанализировать ее ход. Ладья ходит только либо по вертикале вверх или вниз, либо по горизонтали влево или вправо. Становится ясно, что одна из координат клетки всегда остается неизменной, т.е. если ладья ходит по вертикале неизменна координата Х если по горизонтали то Y. Отсюда напишем условие при котором будем сравнивать если координаты X первой и второй клетки одинаковы или координаты Y первой и второй клетки одинаковы значит выводим YES – ладья может попасть с первой клетки на вторую, иначе – NO, не может.

Ход короля

Шахматный король ходит по горизонтали, вертикали и диагонали, но только на 1 клетку. Даны две различные клетки шахматной доски, определите, может ли король попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести YES , если из первой клетки ходом короля можно попасть во вторую или NO в противном случае.

Задача посложнее. Проанализируем ход. Король может ходить вверх вниз, вправо влево и по диагонали но только на одну клетку. Т.е. если разность между координатами X и Y будет составлять 1 или -1 (в случае если переходит с меньшей координаты на большую) или разность одной из координат равна 0 то соответственно король может перейти с первой клетки на вторую.

Что не так с кодом? Все это можно было записать гораздо лаконичнее.

либо использовать функцию абсолютной величины (модуля) числа – abs()

Ход слона

Шахматный слон ходит по диагонали. Даны две различные клетки шахматной доски, определите, может ли слон попасть с первой клетки на вторую одним ходом.

Проанализируем ход. Двигая слона по шахматной клетки можно заметить, что слон всегда ходит по диагоналям квадрата, т.е. если по координате X он передвинется на 5 клеток то и по координате Y он передвинется на 5 клеток. Отсюда можем сделать вывод, что модуль разности координатов X1 и X2 и Y1 и Y2 всегда будет равен

Ход ферзя

Шахматный ферзь ходит по диагонали, горизонтали или вертикали. Даны две различные клетки шахматной доски, определите, может ли ферзь попасть с первой клетки на вторую одним ходом.

Проанализируем ход ферзя. Эта фигура ходит как король, но уже на любое доступное количество клеток, ну или можем сказать, что ферзь ходит и как ладья и как слон, мы уже анализировали и писали код для этих фигур поэтому просто объединим два условия в одно:

Ход коня

Шахматный конь ходит буквой “Г” — на две клетки по вертикали в любом направлении и на одну клетку по горизонтали, или наоборот. Даны две различные клетки шахматной доски, определите, может ли конь попасть с первой клетки на вторую одним ходом.

Самая интересная фигура. Проанализировав ход коня буквой "Г" можно увидеть что если конь ходит вниз или вверх буквой то его координата по X меняется на 1 а координата по Y на 2, если влево и вправо то наоборот X на 2 а Y на 1. Исходя из этого можно написать код, что если разность координат X1 и X2 уменьшилась или увеличилась на 1 и при этом разность координат Y1 и Y2 уменьшалась или увеличилась на 2 или если разность координат X1 и X2 уменьшилась или увеличилась на 2 и при этом разность координат Y1 и Y2 уменьшалась или увеличилась на 1 то выводим YES иначе NO

Очень страшное решение на самом деле, но рабочее. Можно и нужно было применить модуль разницы координат и ввести дополнительные переменные.

Вот такие интересные были на мой взгляд задачи. Для меня они казались сложными по началу, но если хорошенько разобраться в условии и понять как должны происходить процессы в задаче то решение приходит само по себе. Главное быть внимательным и не спешить.

Начало столетия

Напишите программу, которая определяет, оканчивается ли год с данным номером на два нуля. Если год оканчивается, то выведите «YES», иначе выведите «NO».

Формат входных данных
На вход программе подаётся натуральное число.

Формат выходных данных
Программа должна вывести текст в соответствии с условием задачи.

Шахматная доска

Заданы две клетки шахматной доски. Напишите программу, которая определяет имеют ли указанные клетки один цвет или нет. Если они покрашены в один цвет, то выведите слово «YES», а если в разные цвета — то «NO».

Формат входных данных
На вход программе подаётся четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.

Формат выходных данных
Программа должна вывести текст в соответствии с условием задачи.

Girls only

Футбольная команда набирает девочек от 10 до 15 лет включительно. Напишите программу, которая запрашивает возраст и пол претендента, используя обозначение пола буквы m (от male – мужчина) и f (от female – женщина) и определяет подходит ли претендент для вступления в команду или нет. Если претендент подходит, то выведите «YES», иначе выведите «NO».

Формат входных данных
На вход программе подаётся натуральное число – возраст претендента и буква обозначающая пол m (мужчина) или f (женщина).

Формат выходных данных
Программа должна вывести текст в соответствии с условием задачи.

Римские цифры

Напишите программу, которая считывает целое число и выводит соответствующую ему римскую цифру. Если число находится вне диапазона 1-10, то программа должна вывести текст «ошибка».

В таблице приведены римские цифры для чисел от 1 до 10.

Формат входных данных
На вход программе подаётся целое число.

Формат выходных данных
Программа должна вывести текст в соответствии с условием задачи.

ЧислоРимская цифра
1I
2II
3III
4IV
5V
6VI
7VII
8VIII
9IX
10X

YES or NO вот в чем вопрос

Напишите программу, которая принимает на вход число и в зависимости от условий выводит текст «YES», либо «NO».

Условия:

если число нечётное, то вывести «YES»;
если число чётное в диапазоне от 2 до 5 (включительно), то вывести «NO»;
если число чётное в диапазоне от 6 до 20 (включительно), то вывести «YES»;
если число чётное и больше 20, то вывести «NO».

Формат входных данных
На вход программе подаётся натуральное число.

Формат выходных данных
Программа должна вывести текст в соответствии с условием задачи.

Ход слона ?️

Даны две различные клетки шахматной доски. Напишите программу, которая определяет, может ли слон попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести «YES», если из первой клетки ходом слона можно попасть во вторую или «NO» в противном случае.

Формат входных данных
На вход программе подаётся четыре числа от 1 до 8.

Формат выходных данных
Программа должна вывести текст в соответствии с условием задачи.

Примечание. Шахматный слон ходит по диагоналям.

Ход коня

Даны две различные клетки шахматной доски. Напишите программу, которая определяет, может ли конь попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести «YES», если из первой клетки ходом коня можно попасть во вторую или «NO» в противном случае.

Формат входных данных
На вход программе подаётся четыре числа от 1 до 8.

Формат выходных данных
Программа должна вывести текст в соответствии с условием задачи.

Примечание. Шахматный конь ходит буквой «Г».

Ход ферзя

Даны две различные клетки шахматной доски. Напишите программу, которая определяет, может ли ферзь попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести «YES», если из первой клетки ходом ферзя можно попасть во вторую или «NO» в противном случае.

Формат входных данных
На вход программе подаётся четыре числа от 1 до 8.

Формат выходных данных
Программа должна вывести текст в соответствии с условием задачи.

Примечание. Шахматный ферзь ходит по диагонали, горизонтали или вертикали.

Обращаем Ваше внимание, что в соответствии с Федеральным законом N 273-ФЗ «Об образовании в Российской Федерации» в организациях, осуществляющих образовательную деятельность, организовывается обучение и воспитание обучающихся с ОВЗ как совместно с другими обучающимися, так и в отдельных классах или группах.

Рабочие листы и материалы для учителей и воспитателей

Более 2 500 дидактических материалов для школьного и домашнего обучения

Столичный центр образовательных технологий г. Москва

Получите квалификацию учитель математики за 2 месяца

от 3 170 руб. 1900 руб.

Количество часов 300 ч. / 600 ч.

Успеть записаться со скидкой

Форма обучения дистанционная

  • Онлайн
    формат
  • Диплом
    гособразца
  • Помощь в трудоустройстве

Видеолекции для
профессионалов

  • Свидетельства для портфолио
  • Вечный доступ за 120 рублей
  • 311 видеолекции для каждого

4 Модуль. Условная инструкция if

Условный оператор if. Синтаксис условной инструкции.

Условная инструкция

Все ранее рассматриваемые программы имели линейную структуру: все инструкции выполнялись последовательно одна за одной, каждая записанная инструкция обязательно выполнялась.

Допустим, мы хотим по данному числу x определить его абсолютную величину (модуль). Программа должна напечатать значение переменной x, если x>0, или же величину −x в противном случае. Линейная структура программы нарушается: в зависимости от справедливости условия x>0 должна быть выведена одна или другая величина. Соответствующий фрагмент программы на Python имеет вид:

В этой программе используется условная инструкция if (если). После слова if указывается проверяемое условие x > 0 , завершающееся двоеточием. После этого идет блок (последовательность) инструкций, который будет выполнен, если условие истинно. В нашем примере это вывод на экран величины x. Затем идет слово else (иначе), также завершающееся двоеточием, и блок инструкций, который будет выполнен, если проверяемое условие неверно, то есть будет выведено значение -x.

Итак, условная инструкция в Python имеет следующий синтаксис:

if Условие:

Блок инструкций 1

Блок инструкций 2

Блок инструкций 1 будет выполнен, если Условие истинно. Если Условие ложно, будет выполнен Блок инструкций 2 .

Для выделения блока инструкций, относящихся к инструкции if или else , в языке Python используются отступы. Все инструкции, которые относятся к одному блоку, должны иметь равную величину отступа, то есть одинаковое число пробелов в начале строки. Рекомендуется использовать отступ в 4 4 пробела и не рекомендуется использовать в качестве отступа символ табуляции.

Это одно из существенных отличий синтаксиса Python от синтаксиса большинства языков, в которых блоки выделяются специальными словами или фигурными скобками.

Неполное ветвление

В условной инструкции может отсутствовать слово else и последующий блок. Такая инструкция называется неполным ветвлением. Например, если дано число x, и мы хотим заменить его на абсолютную величину x, то это можно сделать следующим образом:

В этом примере переменной x будет присвоено значение -x, но только в том случае, когда x < 0 . А вот инструкция print ( x ) будет выполнена всегда, независимо от проверяемого условия.

Пример: Максимум из двух чисел

Рассмотрим следующую задачу. Нам даны два числа, необходимо найти наибольшее из них и напечатать его на экран.

Эта задача решается с помощью условной инструкции:

Также эту задачу можно решить с помощью неполного ветвления. В этом случае нам не нужно использовать дополнительную переменную:

Разрезание торта

Сколько разрезов нужно сделать, чтобы разрезать круглый торт на N одинаковых по форме и размеру кусков?

Например, для N = 6 необходимо сделать 3 разреза, а для N = 5 — 5 разрезов.


На вход подаётся натуральное число N N ( 1 < N ≤ 1000 ).

Выходные данные

Выведите ответ на задачу.



Тип данных bool, логические операции.

Операции сравнения

Как правило, в качестве проверяемого условия используется результат вычисления одной из следующих операций сравнения (или величин логического типа):

> — больше. Условие верно, если первый операнд больше второго.

>= — больше или равно. Условие верно, если первый операнд не меньше второго.

== — равенство. Условие верно, если два операнда равны. Обратите внимание, что просто знак равенства для сравнения двух значений использовать нельзя, так как он означает присваивание.

!= — неравенство. Условие верно, если операнды не равны.

Пример: Автопробег

Рассмотрим задачу из предыдущего модуля. За день машина проезжает n километров. Сколько дней нужно, чтобы проехать маршрут длиной m километров?

Данную задачу с использованием условной инструкции можно решить следующим образом:

if m % n == 0 :

print ( m // n )

print ( m // n + 1 )

Также эту задачу можно было решить и одной формулой:

print (( m + n - 1 ) // n )

Тип данных bool

Операции сравнения возвращают значения специального логического типа bool . Выражения логического типа могут принимать одно из двух значений: True (истина) или False (ложь).

Если преобразовать логическое True к типу int , то получится 1, а преобразование False даст 0. При обратном преобразовании число 0 преобразуется в False , а любое ненулевое число — в True . При преобразовании str в bool пустая строка преобразуется в False , а любая непустая строка — в True .

Заметим, что задачу про автопробег теперь можно решить ещё одним способом:

print ( m // n + ( m % n != 0 ))

Логические операции

Иногда нужно проверить одновременно не одно, а несколько условий. В этом помогают логические операции. В Python существуют стандартные логические операции: логическое И, логическое ИЛИ, логическое отрицание.

· Логическое И (конъюнкция) является бинарной операцией (то есть операцией с двумя операндами: левым и правым) и имеет вид and . Операция and возвращает True тогда и только тогда, когда оба её операнда имеют значение True .

· Логическое ИЛИ (дизъюнкция) является бинарной операцией и возвращает True тогда и только тогда, когда хотя бы один операнд равен True . Операция “логическое ИЛИ” имеет вид or .

· Логическое НЕ (отрицание) является унарной (то есть с одним операндом) операцией и имеет вид not , за которым следует единственный операнд. Логическое НЕ возвращает True , если операнд равен False , и наоборот.

Проверим, что число mm является корректным номером месяца (лежит в интервале от 1 до 12):

if m >= 1 and m

print ( " Корректно " )

Также это можно проверить несколько иначе:

print ( "Корректно" )

Проверим, что число m является номером зимнего месяца (декабрём, январём или февралём):

if m == 1 or m == 2 or m == 12 :

print ( " Зима " )

Проверим, что месяц с номером m не зимний:

if not ( m == 1 or m == 2 or m == 12 ) :

print ( "Не Зима" )

Кроме того, операции сравнения в Python можно объединять в цепочки (в отличие от большинства других языков программирования, где для этого нужно использовать логические связки), например,

Високосный год

Дано натуральное число. Требуется определить, является ли год с данным номером високосным. Если год является високосным, то выведите "YES", иначе выведите "NO". Напомним, что в соответствии с григорианским календарем, год является високосным, если его номер делится на 4 , но при этом не делится на 100 , или если он кратен 400 .

Вводится одно натуральное число.

Выходные данные

Выведите ответ на задачу.



Какое число больше?

Даны два целых числа. Программа должна вывести 1 , если первое число больше второго, 2 , если второе больше первого, или число 0 , если они равны.

Вводятся два целых числа, не превышающие 2 ∗ 10 9 по абсолютному значению.

Выходные данные

Выведите ответ на задачу.



Шахматная доска

Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8 . По введенным координатам двух полей ( k , l ) и ( m , n ) выясните, являются ли эти поля полями одного цвета?

На вход программе подаются четыре целых числа k , l , m , n .

Выходные данные

Выведите YES или NO в зависимости от ответа на вопрос задачи.



Ход ладьи

Шахматная ладья ходит по горизонтали или вертикали. Даны две различные клетки шахматной доски, определите, может ли ладья попасть с первой клетки на вторую одним ходом.

Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.

Выходные данные

Программа должна вывести YES, если из первой клетки ходом ладьи можно попасть во вторую, или NO в противном случае.



Ход слона

Шахматный слон ходит по диагонали. Даны две различные клетки шахматной доски, определите, может ли слон попасть с первой клетки на вторую одним ходом.

Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.

Выходные данные

Программа должна вывести YES, если из первой клетки ходом слона можно попасть во вторую, или NO в противном случае.



Ход коня

Шахматный конь ходит буквой “Г” — на две клетки по вертикали в любом направлении и на одну клетку по горизонтали, или наоборот. Даны две различные клетки шахматной доски, определите, может ли конь попасть с первой клетки на вторую одним ходом.

Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.

Выходные данные

Программа должна вывести YES, если из первой клетки ходом коня можно попасть во вторую, или NO в противном случае.



Яша плавает в бассейне

Яша плавал в бассейне размером N × M метров и устал. В этот момент он обнаружил, что находится на расстоянии x метров от одного из длинных бортиков (не обязательно от ближайшего) и y метров от одного из коротких бортиков. Какое минимальное расстояние должен проплыть Яша, чтобы выбраться из бассейна на бортик? Обратите внимание, что изначально неизвестно, какой из бортиков (длиной N или M метров) является коротким.

Вводятся 4 натуральных числа: N , M , x , y ( N ≠ M ) , каждое на отдельной строке. Все числа не превосходят 100 .

Выходные данные

Программа должна вывести число метров, которое нужно проплыть Яше до бортика.



Узник замка Иф

За многие годы заточения узник замка Иф проделал в стене прямоугольное отверстие размером D × E . Замок Иф сложен из кирпичей размером A × B × C . Определите, сможет ли узник выбрасывать кирпичи в море через это отверстие, если стороны кирпича должны быть параллельны сторонам отверстия.

Программа получает на вход числа A , B , C , D , E . Все числа натуральные, не превосходящие 10000 .

Выходные данные

Программа должна вывести слово YES или NO.



Вложенные условные инструкции

Пример: Високосный год

Дано натуральное число. Требуется определить, является ли год с данным номером високосным. Если год является високосным, то выведите YES, иначе выведите NO. Напомним, что в соответствии с григорианским календарем, год является високосным, если его номер делится на 4 , но при этом не делится на 100 , или если он кратен 400 .

Решим задачу с помощью вложенных условных инструкций:

Также эту задачу можно решить с помощью каскадных условных инструкций:

Задача 10.

Максимум трёх чисел

Даны три целых числа. Найдите наибольшее из них (программа должна вывести ровно одно целое число).

Использовать функции max и min , а также логические операции and и or нельзя.

Вводится три целых числа, не превосходящие 100 по абсолютному значению.

Выходные данные

Выведите ответ на задачу.



Задача 11.

Сколько совпадает чисел

Даны три целых числа. Определите, сколько среди них совпадающих. Программа должна вывести одно из чисел: 3 (если все числа совпадают), 2 (если два совпадает) или 0 (если все числа различны).

Вводятся три целых числа, не превосходящие 100 по абсолютному значению.

Выходные данные

Выведите ответ на задачу.



Задача 12.

Упорядочить 3 числа

Дано три числа. Упорядочите их в порядке неубывания. Программа должна считывать три числа a , b , c , затем программа должна менять их значения так, чтобы стали выполнены условия a ≤ b ≤ c , затем программа выводит тройку a , b , c . Постарайтесь обойтись небольшим числом сравнений переменных между собой. Логические операции and или or использовать нельзя.

Вводятся три числа. Все числа целые, не превосходящие 100 по абсолютному значению.

Выходные данные

Выведите ответ на задачу.

Примечание

Дополнительные ограничения: нельзя использовать дополнительные переменные. Единственной допустимой операцией присваивания является обмен значений двух переменных вида:

Программа должна содержать ровно один вызов функции печати результата.



Задача 13.

Апельсины бочками

Бизнесмен Василий после прочтения известной книги решил открыть новый бизнес — отгружать апельсины бочками. Партнёрам важно знать, сколько именно бочек апельсинов отгружается каждый день.

Напишите программу, которая выбирает правильное слово (из "bochka" , "bochek" , "bochki" ) в зависимости от значения n .

Одно целое число n ( 0 ≤ n ≤ 1000 ) .

Выходные данные

Соответствующая фраза на транслите (см. примеры).



Задача 14.

Линейное уравнение

Даны числа a и b . Решите в целых числах уравнение ax + b = 0 . Выведите все целочисленные решения этого уравнения, если их число конечно, выведите слово NO, если решений нет, выведите слово INF, если целочисленных решений бесконечно много.

Читайте также: