Задание в классе, 1 апреля
Все задачи отсюда и вот эта задача.
Кодирование информации
Чтение и запись файла по байтам.
Применение LaTeX
(Хозяйке на заметку: шпаргалка по LaTex.)
Ваш год:
-
Антоненко Павел — 1988
Воробьёв Валерий — 1989
Глотов Михаил — 1990
Глушков Семён — 1991
Клюев Антон — 1992
Курилов Федор — 1993
Кутимский Максим — 1994
Лобанов Артём — 1995
Майоров Николай — 1996
Охотников Артём — 1997
Пашинский Борис — 1998
Петровский Владимир — 1999
Смирнова Елена — 2000
Сокольский Станислав — 2001
Сторожилова Вероника — 2002
Супрун Екатерина — 2003
Ушакова Анастасия — 2004
Цюцюрупа Игорь — 2005
Чернявский Даниил — 2006
Шалагин Артём — 1988
Яценко Андрей — 1989
В этом файле найдите задачи для 8-го класса вашего года, а в этом файле — задачи для 10-го класса вашего года.
Создайте LaTeX-овский файл с условиями этих задач.
Результат прислать М. Э. на почту. Причём, возможно, всем будет удобнее, если вы создадите документ на сайте Papeeria или ShareLaTeX, и пришлёте М. Э. просто ссылку на него. Но, внимание, тогда, оказывается, нужно, зайти на этот сервис не анонимно, а залогинившись и специально отметить этот документ как публичный, а не приватный.
Работа в классе и дома: алгоритмы Форда-Беллмана и Флойда
Домашнее задание «DFS + Dijkstra»
Волновой алгоритм
Анализ текста
Прочитать файл romeo_and_juliet.txt и вывести результат частотного анализа слов в тексте.
Задание на 11 апреля и ближайшее время
Пишем стратегию для игры: максимизируем счет в игре SquareRemover!
Метод симуляции отжига
С помощью метода симуляции отжига (текст-1, текст-2) расставить на доске n×n n ферзей так, чтобы ни один из них не бил другого. Программа должна работать для n=20, а лучше и для n=50.
Сортировка слиянием
-
Реализовать метод сортировки слиянием.
Вынести в отдельный метод процедуру слияния двух отсортированных кусков массива,
идущих один сразу после другого:
/** * В массиве array в слить отсотированные интервалы from..middle и middle..to * в отсортированный интервал from..to */ void mergeSortedParts(int[] array, int from, int middle, int to) { // Ваш код здесь }Понять и реализовать следующий алгоритм (сортировка слиянием естественных последовательностей):
-
Разбить массив на неубывающие куски (например, 2,3,9,5,6,6 — на 2,3,9 и 5,6,6)
Если такой кусок один, но работа закончена.
Иначе слить первый неубывающий кусок со вторым, третий с четвертым и так далее
(возможно, один кусок останется нетронутым, если их было нечетное число).
Перейти к первому пункту.
При реализации этого алгоритма использовать метод из задания 2.
Пример буферизации изображений
Свой лэйаут-менеджер (29 ноября)
Задача: разобраться, как устроен лэйаут-менеджер.
Имеющиеся материалы: статья на русском языке.
В этой статье есть примеры разных лэйаут-менеджеров — не стесняйтесь копировать их в Эклипс, запускать, менять, баловаться и даже издеваться над этими примерами!
Наконец, в этой статье описан самодельный лэйаут-менеджер. На основе его вам будет несложно создать свой — в этом и заключается ваше задание:
-
Сделать RandomLayoutManager, который располагает каждый компонент в произвольное место внутри окошка (возможно перекрываясь с предыдущими компонентами).
Сделать ClockLayoutManager, который располагает все компоненты по кругу, с шагом в 30 градусов (как цифры на часах).
Сделать свой лэйаут-менеджер, который делает что-то более изощренное, чем предыдущие два.
Д/з «Исследование булевой функции»;
Д/з «Перевод между системами счисления»;
Игра на чекбоксах
Написать игру на прямоугольном поле из чекбоксов.
Например, такую:
В начале поле заполняется произвольным образом (каждый чекбокс либо выбран, либо нет, с вероятностью 50%).
При нажатии на любой чекбокс, содержащий его крестик (его строка + его столбец) инвертируется (выбранные становятся невыбранными и наоборот).
Если все чекбоксы стали выбранными, игрок выиграл, не забудьте его поздравить с этим.
Задание для работы в классе — 24 апреля
Задание на два урока, не запутайтесь в двух ссылках:
-
Задачи A, B, C вот отсюда;
Задачи A, B вот отсюда;
Решать и сдавать в любом порядке.
Кто справится со всеми пятью задачами (получает пятёрку, конечно, и) может решать остальные задачи из любого из этих двух наборов. Тогда примите к сведению: «n-разрядный двоичный дополнительный код» (эта фраза есть в некоторых задачах) — это то, что мы на уроке называли «знаковые целые числа, под которые отведены n бит». Например, стандартный тип int в Java — это «32-разрядный двоичный дополнительный код».