{page title="Задания по программированию для 2021а"} {body}

«Бродилка по лабиринту»

Код с доски

Пользователь видит "героя" (можно кружочек, а лучше стилизованного человечка или изображение) и выход в противоположном углу поля. Ваша игра "мысленно загадала" лабиринт, но не показывает его пользователю. Пользователь пытается делать ходы вверх-вниз-вправо-влево, они срабатывают, только если там нет стенки. Обязательно надо запретить пользователю выходить за пределы поля.

Инвертирование крестиков

Пользователю показывается прямоугольник из кнопок/чекбоксов. В начале поле заполняется произвольным образом (каждый чекбокс либо выбран, либо нет, с вероятностью 50%). При нажатии на любой чекбокс, содержащий его крестик (его строка + его столбец) инвертируется (выбранные становятся невыбранными и наоборот). Если все чекбоксы стали выбранными, игрок выиграл, и надо его поздравить с этим.

Перед игрой хорошо бы спросить у пользователя (например, в консоли), какого на поле какого размера он хочет сыграть.

Статическая картинка в Tkinter

Создайте приложение в Tkinter, которое отображает статический цветной циферблат: 12 надписей (Label), расположенных по кругу, как это принято в часах, цвета которых плавно (!) переходят от, например, красного к синему (1 час - красная, 2 часа - чуть-чуть синеватая красная и т. д., 12 часов - синяя). Любой другой аналогичный дизайн поощряется.

Работа в классе и дома «Объект по номеру и обратно»

Все четыре задачи отсюда.

Работа в классе и дома «Рекурсивная генерация объектов»

Задачи отсюда, любые 8 штук.

Д/з «Двоичный поиск»

Задачи C+D отсюда и задачи A+E+F отсюда.

Набор задач "Быстрые сортировки"

  1. (не в информатикс) Дан массив чисел, вывести число инверсий в нем. Программа должна работать за O(n log n), а именно сортировка слиянием + учет инверский.
  2. Сдать сюда быструю сортировку.
  3. Задачи A-D отсюда.

Работа в классе: квадратичные сортировки

Как можно больше задач отсюда

Обмен через xor

(Д/з в тетрадке.)
Вспомнить, как работает побитовое исключающее ИЛИ двух чисел.
Доказать, что следующий код меняет местами значения двух целочисленных переменных:

a = a ^ b
b = a ^ b
a = a ^ b

Архив: 8 класс

Отсюда задачи номер ABDGIO...

Используя заготовку, сделанную на уроке на доске, решите задачи от A до E про Ханойские башни.

Текущее задание к 21 апреля: из этого же блока (ссылка чуть ниже) решить всё до R, но "субботней" группе можно без Q.

Задание на функции, решаем A-J.

Бонусный уровень.

Архивное

Задание на алг. Евклида.

Задание в классе для субботней группы на 10-е февраля

Задания A-J про двумерные массивы

Текущие задания, январь

Задачи A-L отсюда.

И этот набор задач.

Работа в классе, 12.01.18

задание в классе, H-N

бонус

Работа в классе, 18.12.17

Вот из этого набора надо решить задачи от M до U. Если задача уже вами сдана (в д/з), то вам повезло. Антон Михайлович расскажет, как пользоваться школьными компьютерами. Количество штрафных попыток не учитывается, но не надо этим злоупотреблять.

Условный оператор

Важно: если вы не видите себя в табличке "ФТШ, 2021а", сообщите свой id на адрес mikhail.dvorkin@gmail.com. Чтобы узнать свой id, нужно (на сайте informatics) нажать сверху на свои имя-фамилию, после чего в адресной строке браузера найти надпись вроде id=123123.

Вот этот набор задач, надо решить: A, D, F, G, J, L, M, O.

Первые задачи на informatics

Зарегистрироваться на informatics.mccme.ru, если вы этого ещё никогда не делали. Указать настоящие фамилию, имя, класс, школу (желательное написание: "Лицей ФТШ").

Выучить свой логин и пароль!

Зайти на страницу: http://informatics.mccme.ru/mod/statements/view.php?id=3309#1

Слева снизу есть список задач. Вам нужно решить и сдать до состояния "ОК" задачи: A, B, C, D, E, I, J, S.

Работа с переменными

В переменные x и y присвойте целые числа. Затем выведите про них:

  1. Верно ли, что оба эти числа положительные.
  2. Верно ли, что хотя бы одно из этих чисел — семерка.
  3. (*) (необязательный пункт) Абсолютную величину (то есть модуль) числа x.
  4. (*) Квадрат гипотенузы прямоугольного треугольника с катетами x и y.
  5. Верно ли, что у этих чисел совпадают последние цифры.
  6. Предпоследнюю цифру числа x.

Выполняя последние три пункта, можете считать, что x и y — оба положительные.

Обязательно запустите вашу программу для нескольких различных пар значений x и y, чтобы убедиться в правильности ее работы.

Домашнее задание "Знакомство с Python"

  1. Установить к себе на компьютер Python 3.
  2. Запустить интерактивный режим, убедиться, что у вас рабоает вычисление 2**100.
  3. (Желательно) установить к себе на компьютер Wing IDE 101, убедиться, что вы в нем можете написать и запустить программу, выводящую на экран "Hello, world!".
  4. (Желательно) написать в блокноте или любом обычном текстовом редакторе программу, выводящую "Hello, world!" и суметь её запустить в командной строке. (Ключевые слова: cmd, cd название_папки, python название_файла; можно и нужно всё это "гуглить")

Домашнее задание в тетради "Хранение целых чисел"

Процессор 8-битного компьютера (например, старой игровой приставки Денди) может хранить целые числа в диапазоне от -128 до 127 (каждое число хранится в 8 битах).

  1. Какой результат получится, если к числу 112 прибавить 36? Произведите сложение «в столбик».
  2. Какой результат получится, если возвести 17 в квадрат? Произведите умножение «в столбик».
  3. Какой результат получится, если вычесть из -80 число 62? Получите ответ любым способом.
  4. Какой результат получится, если умножить -80 на 4? Получите ответ любым способом.

Домашнее задание на листочке "Системы счисления"

  1. Переведите 1011011 из двоичной системы счисления в десятеричную.
  2. Переведите CF из 16-чной системы счисления в десятеричную.
  3. Переведите 194 из 18-чной системы счисления в десятеричную.
  4. Переведите 183 из десятичной системы счисления в двоичную.
  5. Переведите 330 из десятичной системы счисления в шестеричную.
  6. Упорядочите по возрастанию числа 5009, 23A14, 122214, 1220103, 6119.
{/body}