Базовые задачи

Базовые задачи - предназначены для проработки тем: циклы, условия, переменные.
Шахматные задачи
Задача «Шахматная доска»
Заданы две клетки шахматной доски. Если они покрашены в один цвет, то выведите слово "ОДИНАКОВЫЕ", а если в разные цвета — то "РАЗНЫЕ". Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.

УСЛОЖНЕНИЕ: Координаты заданы столбец буквами, строка цифрами
Задача «Ход ладьи»
Шахматная ладья ходит по горизонтали или вертикали. Даны две различные клетки шахматной доски, определите, может ли ладья попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести "Ход состоится", если из первой клетки ходом ладьи можно попасть во вторую или "Ход невозможен" в противном случае.
Задача «Ход короля»
Шахматный король ходит по горизонтали, вертикали и диагонали, но только на 1 клетку. Даны две различные клетки шахматной доски, определите, может ли король попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести "Ход состоится", если из первой клетки ходом король может попасть во вторую или "Ход невозможен" в противном случае.
Задача «Ход слона»
Шахматный слон ходит по диагонали. Даны две различные клетки шахматной доски, определите, может ли слон попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести "Ход состоится", если из первой клетки ходом слон может попасть во вторую или "Ход невозможен" в противном случае.
Задача «Ход ферзя»
Шахматный ферзь ходит по диагонали, горизонтали или вертикали.. Даны две различные клетки шахматной доски, определите, может ли ферзь попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести "Ход состоится", если из первой клетки ходом ферзь может попасть во вторую или "Ход невозможен" в противном случае.
Задача «Ход коня»
Шахматный конь ходит буквой "Г" — на две клетки по вертикали в любом направлении и на одну клетку по горизонтали, или наоборот. Даны две различные клетки шахматной доски, определите, может ли конь попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести "Ход состоится", если из первой клетки ходом конь может попасть во вторую или "Ход невозможен" в противном случае.
Условие if
Задача «Високосный год»
Дано натуральное число. Требуется определить, является ли год с данным номером високосным. Если год является високосным, то выведите "високосный", иначе выведите "Не високосный". Напомним, что в соответствии с григорианским календарем, год является високосным, если его номер кратен 4, но не кратен 100, а также если он кратен 400.
Задача «Шоколадка»
Шоколадка имеет вид прямоугольника, разделенного на n×m долек. Шоколадку можно один раз разломить по прямой на две части. Определите, можно ли таким образом отломить от шоколадки часть, состоящую ровно из k долек. Программа получает на вход три числа: n, m, k и должна вывести "Можно" или "Нельзя".
onMouseMove(fn)
установить функцию fn как обработчик события движения мыши; если функция не указана, обработчик отключается; функция fn должна принимать один параметр – блок данных о событии; через поля этого блока можно получить информацию о положении мыши:

def handleMove(event):
print("Координаты: (%s %s)" % (event.x, event.y))
print("Относительно экрана: (%s %s)" %
(event.x_root, event.y_root))

onMouseDown(fn, btn)
установить функцию fn как обработчик нажатия кнопки мыши с номером btn (btn=1 для левой кнопки, btn=2 – для средней и btn=3 для правой); если номер кнопки мыши не задан, устанавливается обработчик для всех кнопок; если функция не указана, обработчик отключается; функция fn должна принимать один параметр – блок данных о событии; через поля этого блока можно получить информацию о положении мыши (см. выше)
onMouseUp(fn, btn)
установить функцию fn как обработчик отпускания кнопки мыши с номером btn (btn=1 для левой кнопки, btn=2 – для средней и btn=3 для правой); если номер кнопки мыши не задан, устанавливается обработчик для всех кнопок; если функция не указана, обработчик отключается; функция fn должна принимать один параметр – блок данных о событии; через поля этого блока можно получить информацию о положении мыши (см. выше).
onMouseClick(fn, btn)
установить функцию fn как обработчик щелчка кнопкой мыши с номером btn (btn=1 для левой кнопки, btn=2 – для средней и btn=3 для правой);в текущей версии равносильно обработчику onMouseUp.
onMouseDblClick(fn, btn)
установить функцию fn как обработчик двойного щелчка кнопкой мыши с номером btn (btn=1 для левой кнопки, btn=2 – для средней и btn=3 для правой); если номер кнопки мыши не задан, устанавливается обработчик для всех кнопок; если функция не указана, обработчик отключается; функция fn должна принимать один параметр – блок данных о событии; через поля этого блока можно получить информацию о положении мыши (см. выше).
Вычисления (работа с цифрами)
Задача «Последняя цифра числа»
Дано натуральное число. Выведите его последнюю цифру.
Задача «Конец уроков»
В некоторой школе занятия начинаются в 9:00. Продолжительность урока — 45 минут, после 1-го, 3-го, 5-го и т.д. уроков перемена 5 минут, а после 2-го, 4-го, 6-го и т.д. — 15 минут.

Дан номер урока (число от 1 до 10). Определите, когда заканчивается указанный урок.

Выведите два целых числа: время окончания урока в часах и минутах.
Задача «Стоимость покупки»
Пирожок в столовой стоит a рублей и b копеек. Определите, сколько рублей и копеек нужно заплатить за n пирожков. Программа получает на вход три числа: a, b, n, и должна вывести два числа: стоимость покупки в рублях и копейках.
Задача «Улитка»
Улитка ползет по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. На какой день улитка доползет до вершины шеста?
Программа получает на вход натуральные числа h, a, b.
Программа должна вывести одно натуральное число. Гарантируется, что a>b.
Задача «Сумма цифр»
Дано трехзначное число. Найдите сумму его цифр.
Задача «Проценты»
Процентная ставка по вкладу составляет P процентов годовых, которые прибавляются к сумме вклада. Вклад составляет X рублей Y копеек. Определите размер вклада через год. Программа получает на вход целые числа P, X, Y и должна вывести два числа: величину вклада через год в рублях и копейках. Дробная часть копеек отбрасывается.
Циклы For и While
Задача «Создание ряда»
Даны два целых числа A и B (при этом A ≤ B). Выведите все числа от A до B включительно.

УСЛОЖНЕНИЕ: Даны два целых числа A и В. Выведите все числа от A до B включительно, в порядке возрастания, если A < B, или в порядке убывания в противном случае.
Задача «Сумма десяти чисел»
Дано 10 целых чисел. Вычислите их сумму. Напишите программу, использующую наименьшее число переменных. Ввод переменных осуществляется в цикле
Задача «Количество нулей»
Дано N чисел: сначала вводится число N, затем вводится ровно N целых чисел. Подсчитайте количество нулей среди введенных чисел и выведите это количество. Вам нужно подсчитать количество чисел, равных нулю, а не количество цифр.
Задача «Список квадратов»
По данному целому числу N распечатайте все квадраты натуральных чисел, не превосходящие N, в порядке возрастания.
Задача «Минимальный делитель»
Дано целое число, не меньшее 2. Выведите его наименьший натуральный делитель, отличный от 1.
Задача «Утренняя пробежка»
В первый день спортсмен пробежал x километров, а затем он каждый день увеличивал пробег на 10% от предыдущего значения. По данному числу y определите номер дня, на который пробег спортсмена составит не менее y километров.

Программа получает на вход действительные числа x и y и должна вывести одно натуральное число.

Задача «Длина последовательности»
Программа получает на вход последовательность целых неотрицательных чисел, каждое число записано в отдельной строке. Последовательность завершается числом 0, при считывании которого программа должна закончить свою работу и вывести количество членов последовательности (не считая завершающего числа 0). Числа, следующие за числом 0, считывать не нужно.
Работа с виджетами (элементами интерфейса)
label(text, x, y, ...)
добавить текстовую метку с надписью text в точке с координатами (x,y); функция возвращает ссылку на объект-метку; после обязательных параметров можно добавлять любые параметры виджета Label (см. описание модуля Tkinter).
button(text, x, y, width, fn, ...)
добавить кнопку с надписью text в точке с координатами (x,y); ширина кнопки (в символах) равна width, при щелчке по кнопке вызывается функция fn; функция возвращает ссылку на объект-кнопку; после обязательных параметров можно добавлять любые параметры виджета Button (см. описание модуля Tkinter).
ДОПОЛНИТЕЛЬНЫЕ МАТЕРИАЛЫ