marinaagafonova / OOP-Python

4th semester

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OOP Python

Task1:

(*) Необходимо, заменив минимальное кол-во чисел в списке, сделать его арифметической прогрессией, например:

{ 1, 16, 4, 10, 7, 11, 1, -2 } → { 19, 16, 13, 10, 7, 4, 1, -2 } (заменены 3 элемента)

В случае нескольких подходящих вариантов замены минимального кол-ва элементов можно использовать любой.

Подсказка: необходимо для каждой пары элементов списка посчитать, сколько элементов списка придется изменить, не меняя выбранную пару элементов, чтобы список стал арифметической прогрессией (очевидно, что в целых числах некоторые пары элементов сразу же не будут подходить для построения арифметической прогрессии; например, для приведенного примера в качестве опорной пары не подходят числа 4 и 7, т.к. между ними не может быть дробного числа 5,5).

task2

Осуществить циклический сдвиг столбцов или строк (указывается отдельно) двумерного массива на n позиций.

task3

Для набора треугольников, заданных тремя вершинами, найти такие, которые полностью лежат строго в одной четверти (на координатной сетке) – неважно в какой из 4-х, главное, что в одной. Треугольник описывает как три точки (отдельный тип – структура или класс), каждая точка – как две координаты (отдельный тип – структура или класс).

Task4:

(*) Примитивная система исправления орфографических ошибок. Задается текст, потенциально содержащий орфографические ошибки, и набор корней слов (в виде массива или списка слов). Если какой-либо фрагмент текста, отличается от какого-либо корня одним символом, то заменить этот фрагмент на соответствующий корень слова. Пример ("Карова дает малако каторае пъут дэти", {"молок", "коров", "апельсин", "котор", "дети"}) –> "Корова дает малако которае пъут дети".

task5 (task3 is taken to remake):

Данное задание состоит из 2-х частей:

  1. Реализовать любую из своих предыдущих задач с использованием итераторов (реализовать свой собственный итератор/генератор).

  2. Реализовать любую из своих предыдущих задач с использованием декораторов (реализовать свой собственный декоратор).

Castle_Game

Логические игры В задаче обязательно реализовать логику игры в виде отдельного класса Game. Оформление игры может быть максимально простым (допустим, не надо плавных перемещений шариков с клетки на клетку, каких-либо визуальных эффектов, звукового сопровождения и т.п.). Элементы – просто цветные кружки / кубики / обычные цифры и т.д. в зависимости от варианта. Выделение элемента (если нужно) – изменение цвета фона ячеек игрового поля. (В любом случае все это не относится к логике игры.) Для большинства игр никаких уровней (для некоторых игр можно сделать 1-2 уровня, которые описываются в отдельных файлах) и т.д. Оконный интерфейс должен быть реализован c помощью библиотеки PyQt5. Кроме главной формы необходимо предусмотреть, как минимум, еще две формы: 1) форму с возможностью задания настроек игры (например, размеры игрового поля, используемые цвета и т.п.), 2) форму с описанием правил игры (описание может быть в виде html). Во многих играх, приведенных в вариантах задач в виде примера, кроме центральной идеи, есть различные, так скажем, расширения-исключения. Вот этого всего реализовывать также не надо. Обязательным является использование @property, @staticmethod/@classmethod (в данной задаче, вероятно, все же @staticmethod). 13. http://igroflot.ru/logic/flash_game_2993/

task_7_blog

  1. Блог с использованием Markup-разметки (поддержка основных html-тэгов). Делать все на flask (но допускаются и другие web-фрейморки).

task_8_the_Mobius_strip - matplotlib и jupyter.

  1. Визуализация ленты Мебиуса. Задачи на моделирование. Обязательным требованием является реализация задачи в среде jupyter. В jupyter- notenook должны быть ячейки не только кода, но и markdown-ячейки с сформулированным (достаточно подробно) условием задачи и комментариями по ходу решения. По желанию можно использовать numpy и scipy (будет плюсом). Установка и использование jupyter-notenook(Windows):
    1. В командной строке перейти к каталогу с Python. Например: cd C:\Python37
    2. Выполнить python -m pip install --upgrade pip
    3. Выполнить python -m pip install jupyter и дождаться завершения установки
    4. Перейти в командой строке к каталогу с задачами Например: cd D:\Tasks\Python\Task8
    5. Выполнить команду <путь к python>\Scripts\jupyter-notebook.exe Например: C:\Python37\ Scripts\jupyter-notebook.exe Можно также создать ярлык запуска jupyter-notebook с указанием нужной рабочей директории.

About

4th semester


Languages

Language:Python 95.0%Language:Jupyter Notebook 4.2%Language:HTML 0.6%Language:PowerShell 0.0%Language:Batchfile 0.0%