Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
bde145e
Поправил списки
mariohuq Mar 23, 2021
b6ff813
Поправил список и заменил simplemath на worker
mariohuq Mar 23, 2021
1a0ce2d
Исправил опечатку
mariohuq Mar 23, 2021
e743214
Исправил опечатку
mariohuq Mar 24, 2021
e17df05
Исправил опечатку
mariohuq Mar 24, 2021
ba46c4a
Исправил опечатку
mariohuq Mar 24, 2021
024eaf1
Поправил тег формулы
mariohuq Mar 24, 2021
424c50b
Поправил % в формулах
mariohuq Mar 24, 2021
845b82d
Исправил __getitem__
mariohuq Mar 24, 2021
4df1cb2
Исправил опечатку LinkedList
mariohuq Mar 24, 2021
ed3b1ff
Исправил опечатку write
mariohuq Mar 24, 2021
5a02b40
Исправил опечатку
mariohuq Mar 25, 2021
60336af
Исправил опечатку
mariohuq Mar 25, 2021
7bae4ef
Исправил "относятся"
mariohuq Mar 26, 2021
76f8f8c
Исправил опечатку "столбец"
mariohuq Mar 26, 2021
d003d7a
Исправил опечатку "столбец"
mariohuq Mar 26, 2021
9740948
Merge remote-tracking branch 'upstream/master' into patch-1
mariohuq Mar 28, 2021
b1903cf
Исправил опечатку Ж
mariohuq Mar 28, 2021
4c2059a
Исправил опечатку "Покажем создание"
mariohuq Mar 28, 2021
7737d33
Исправил опечатку "время"
mariohuq Mar 29, 2021
e4361bf
Изменил адрес туториала на более конкретный
mariohuq Mar 30, 2021
5902213
Добавил пропущенное "и"
mariohuq Mar 30, 2021
bcc595f
Исправил ошибку "заново"
mariohuq Mar 30, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/extra/lab14/2Numpy.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,7 @@
"a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])\n",
"\n",
"# Используя слайсинг, созадим матрицу b из элементов матрицы а\n",
"# будем использовать 0 и 1 строку, а так же 1 и 2 столебц\n",
"# будем использовать 0 и 1 строку, а так же 1 и 2 столбец\n",
"# [[2 3]\n",
"# [6 7]]\n",
"b = a[:2, 1:3]\n",
Expand Down
26 changes: 16 additions & 10 deletions content/lab06.rst
Original file line number Diff line number Diff line change
Expand Up @@ -105,12 +105,16 @@

**Важно понимать, что ни classmethod ни staticmethod НЕ являются
функциями от конкретного объекта класса и соответственно не принимают
self. Подчеркнем еще раз их различия:** - classmethod принимает cls как
первый параметр, тогда как staticmethod в специальных аргументах не
нуждается - classmethod может получать доступ или менять состояние
класса, в то время как staticmethod нет - staticmethod в целом вообще
ничего не знают про класс. Это просто функция над аргументами,
объявленная внутри класса.
self. Подчеркнем еще раз их различия:**

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


Специальные методы (магические) вида \_ *< param >* \_
Expand Down Expand Up @@ -297,6 +301,7 @@ y меньше у левого операнда.

Реализуйте свой класс Complex для комплексных чисел, аналогично
встроенной реализации complex:

1. Добавьте инициализатор класса
2. Реализуйте основные математические операции
3. Реализуйте операцию модуля (**abs**, вызываемую как \|c\|)
Expand All @@ -305,12 +310,13 @@ y меньше у левого операнда.

Задача 2:
~~~~~~~~~

1. Создайте класс Vector с полями x, y, z определите для него конструктор,
метод __str__, необходимые арифметические операции.
Реализуйте конструктор, который принимает строку в формате "x,y".
метод __str__, необходимые арифметические операции.
Реализуйте конструктор, который принимает строку в формате "x,y".
#. Программа получает на вход число N, далее координаты N точек.
Доопределите в классе Vector недостающие операторы, найдите и выведите координаты точки,
наиболее удаленной от начала координат.
Доопределите в классе Vector недостающие операторы, найдите и выведите координаты точки,
наиболее удаленной от начала координат.
#. Используя класс Vector выведите координаты центра масс данного множества точек.
#. Даны два вектора. Выведите площадь параллелограмма, построенного на заданных векторах.
#. Даны три вектора. Выведите объём параллелепипеда, построенного на заданных векторах.
Expand Down
56 changes: 28 additions & 28 deletions content/lab07.rst
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ import для нас отлично подойдет. Это будет выгл

.. code:: python

# представим, что эта ячейка - текстовый редактор, который мы сохраним под именем simplemath.py
# представим, что эта ячейка - текстовый редактор, который мы сохраним под именем worker.py

#import simplemath
#from simplemath inpord add,sub,mul,div
Expand Down Expand Up @@ -209,7 +209,7 @@ __ ../extra/lab7/screen.py
Ваша задача:

1. Изучить документацию к библиотеке pygame и код программы. Понять механизм работы программы (как происходит отрисовка кривой, перерасчет точек сглаживания и другие нюансы реализации программы)
2. Провести рефакторниг кода, переписать программу в ООП стиле с использованием классов и наследования.
2. Провести рефакторинг кода, переписать программу в ООП стиле с использованием классов и наследования.
Реализовать класс 2-мерных векторов `Vec2d` . В классе следует определить методы для основных математических операций, необходимых для работы с вектором. Добавить возможность вычислять длину вектора с использованием функции len(a) и метод `int_pair`, который возвращает кортеж из двух целых чисел (текущие координаты вектора).

Реализовать класс замкнутых ломаных `Polyline` с методами отвечающими за добавление в ломаную точки (`Vec2d`) c её скоростью, пересчёт координат точек (`set_points`) и отрисовку ломаной (`draw_points`). Арифметические действия с векторами должны быть реализованы с помощью операторов, а не через вызовы соответствующих методов.
Expand All @@ -222,41 +222,41 @@ __ ../extra/lab7/screen.py
Задача 3\* ДНК
~~~~~~~~~~~~~~

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

1. Создавать структуру из строк. Обратите внимание, что в ДНК встречаются
только азотистые основания ATGC, а в РНК (AUGC) поэтому если во
входной строке содержались другие символы, необходимо поднимать ошибку
(Exception).
только азотистые основания ATGC, а в РНК (AUGC) поэтому если во
входной строке содержались другие символы, необходимо поднимать ошибку
(Exception).
2. Поддерживают индексацию. РНК по индексу возвращает
i-ое азотистое основание, ДНК - пару азотистых оснований
(соответствующие первой и второй цепочке)
i-ое азотистое основание, ДНК - пару азотистых оснований
(соответствующие первой и второй цепочке)
3. РНК может возвращать
комплиментарную ДНК (каждому азотистому основанию из РНК соответсвует
соответсвующее основание для первой цепочки ДНК: :math:`A \to T`,
:math:`U \to A`, :math:`G \to C`, :math:`C \to G`. Вторая цепочка ДНК
строится комплиментарной первой строчке ДНК: :math:`A \to T`,
:math:`T \to A`, :math:`G \to C`, :math:`C \to G`)
комплиментарную ДНК (каждому азотистому основанию из РНК соответствует
соответствующее основание для первой цепочки ДНК: :math:`A \to T`,
:math:`U \to A`, :math:`G \to C`, :math:`C \to G`. Вторая цепочка ДНК
строится комплиментарной первой строчке ДНК: :math:`A \to T`,
:math:`T \to A`, :math:`G \to C`, :math:`C \to G`)
4. РНК, как и ДНК,
могут складываться путем склеивания ("AUUGAACUA" + "CGGAAA" =
"AUUGAACUACGGAAA"). У ДНК склеиваются соответствующие цепочки (["ACG",
"TGC"] + ["TTTAAT", "AAATTA"] = ["ACGTTTAAT", "TGCAAATTA"])
могут складываться путем склеивания ("AUUGAACUA" + "CGGAAA" =
"AUUGAACUACGGAAA"). У ДНК склеиваются соответствующие цепочки (["ACG",
"TGC"] + ["TTTAAT", "AAATTA"] = ["ACGTTTAAT", "TGCAAATTA"])
5. РНК могут перемножаться друг с другом: каждое азотистое основание
результирующей РНК получается случайным выбором одного из двух
соответсвующих родительских азотистых оснований. Если одна из цепочек
длиннее другой, то перемножение происходит с начала, когда одна из
цепочек закончится оставшийся хвост другой переносится без изменений.
|Умножение РНК|
6. ДНК могут перемножаться друг с другом: ПЕРВЫЕ
цепочки каждой из ДНК перемножаются по такому же приницпу, как
перемножаются РНК выше. Вторая цепочка результирующей ДНК строится как
комплиментарная первой
результирующей РНК получается случайным выбором одного из двух
соответсвующих родительских азотистых оснований. Если одна из цепочек
длиннее другой, то перемножение происходит с начала, когда одна из
цепочек закончится оставшийся хвост другой переносится без изменений.
6. |Умножение РНК| ДНК могут перемножаться друг с другом: ПЕРВЫЕ
цепочки каждой из ДНК перемножаются по такому же приницпу, как
перемножаются РНК выше. Вторая цепочка результирующей ДНК строится как
комплиментарная первой
7. Цепочки РНК и первую и вторую у ДНК можно
проверять на равенство
проверять на равенство
8. Оба класса должны давать осмысленный вывод
как при print, так и просто при вызове в ячейке
| **Обдумайте и создайте необходимые и, возможно, вспомогательные
как при print, так и просто при вызове в ячейке

**Обдумайте и создайте необходимые и, возможно, вспомогательные
классы, настройте наследование, если требуется. Полученная структура
должна быть адекватной и удобной, готовой к простому расширению
функционала, если потребуется**
Expand Down
2 changes: 1 addition & 1 deletion content/lab08.rst
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,7 @@ k и возвращать все возможные комбинации из с
=============

В функцию передается список списков. Нужно вернуть максимум, который
достигает выражение $(a\_1^2 + a\_2^2 + ... + a\_n^2) % m $. Где
достигает выражение :math:`(a\_1^2 + a\_2^2 + ... + a\_n^2) \% m`. Где
:math:`a_i` --- максимальный элемент из :math:`i`-ого списка (использовать
функцию из itertools)

Expand Down
8 changes: 4 additions & 4 deletions content/lab09.rst
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ Jupyter-notebook
def get_next(self):
return self.nxt

class LinkedLiset:
class LinkedList:
def __init__(self):
self.start = None
self.length = 0
Expand All @@ -84,7 +84,7 @@ Jupyter-notebook
current = self.start
for i in range(idx):
current = current.get_next()
current.get_value()
return current.get_value()

def __iter__(self):
self.__curr = self.start
Expand All @@ -99,7 +99,7 @@ Jupyter-notebook

.. code:: python

lst = LinkedLiset()
lst = LinkedList()
for i in range(10):
lst.add(i*i)

Expand Down Expand Up @@ -441,7 +441,7 @@ Jupyter-notebook

1) Корутина ``connect_user`` принимает данные авторизации от
пользователя, открывает файл с названием .txt и создает на его основе
корутину ``цrite_to_file``
корутину ``write_to_file``

2) Корутина ``write_to_file(f_obj)`` записывает переданное планировщиком
задач сообщение пользователя, которые записываются в файловый объект,
Expand Down
4 changes: 2 additions & 2 deletions content/lab10.rst
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@ http://cs.mipt.ru/advanced_python/lessons/lab2.html
multiprocessing
===============
Библиотека multiprocessing позволяет организовать параллелизм вычислений за счет создания подпроцессов. Т.к. каждый процесс выполняется независимо от других, этот метод параллелизма позволяет избежать проблем с GIL.
Предоставляемый библиотекой API схож с тем, что есть в threading, хотя есть уникальные вещи. Создание процесса происходит поутем создания объекта класса Process.
Предоставляемый библиотекой API схож с тем, что есть в threading, хотя есть уникальные вещи. Создание процесса происходит путем создания объекта класса Process.
Аргументы конструктора аналогичны тем, что есть в конструкторе Thread. В том числе аргумент daemon позволяет создавать служебные процессы. Служебные процессы завершаются вместе с родительским процессом и не могут порождать свои подпроцессы.

Простой пример работы с библиотекой:
Expand Down Expand Up @@ -580,4 +580,4 @@ map\_async, apply\_async - неблокирующие. При их вызове,

.. _`Архив с файлом`: https://drive.google.com/file/d/1Jgy1u_meH7zpMWt4dr2j4Xx5VZjzJ6AD/view?usp=sharing

Не забудьте замерить время работы. Примерное время работы на моем компьютере для 10 строк в 1 процесс - 300 сек.
Не забудьте замерить время работы. Примерное время работы на моем компьютере для 10 строк в 1 процесс - 300 сек.
2 changes: 1 addition & 1 deletion content/lab11.rst
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@

В этом примере:

1. Упарвление будет передано в корутину main;
1. Управление будет передано в корутину main;
2. Напечатается hello;
3. Управление будет передано в корутину sleep;
4. В течении одной секунды программа "спит";
Expand Down
Loading