Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 0)
- Вам предлагается познакомиться с гипотезой Коллатца (https://ru.wikipedia.org/wiki/%D0%93%D0%B8%D0%BF%D0%BE%D1%82%D0%B5%D0%B7%D0%B0_%D0%9A%D0%BE%D0%BB%D0%BB%D0%B0%D1%82%D1%86%D0%B0), а именно -- написать описанный в википедии алгоритм и для любых чисел проверить, что в итоге получается 1.
- Это задание на неделю (дедлайн 08.10.2015, 23.59), его стоимость 5 баллов. Поскольку вы пока что не распределены по преподавателям, вы можете присылать скрипт любому из нас (Евгений Служаев evgentu@gmail.com, Семен Прошев s-proshev@ya.ru).
- Не стесняйтесь задавать вопросы, на предстоящей паре обсудим сложности, если таковые возникли.
- 1)
- Новое домашнее задание связано с умножением матриц: https://ru.wikipedia.org/wiki/Умножение_матриц.
- Программе на вход даются два файла: a.txt и b.txt.
- В каждом из них строки из целых чисел, каждая строка соответствует строке матрицы, числа разделены пробелом.
- Нужно:
- - прочитать файлы;
- - проверить, что это действительно матрицы, т.е. во всех строках одинаковое количество чисел;
- - проверить, что их действительно можно перемножить, т.е. количество столбцов в одной равно количеству строк в другой;
- - выполнить умножение;
- - записать результат в файл c.txt в том же формате, что в исходных файлах.
- Стоимость задания: 10 баллов, дедлайн: 19.10.2015, 23:59.
- Бонус:
- Проверить соответствие входных файлов описанному формату, т.е. что каждая строка является именно последовательностью целых чисел, разделенных пробелом.
- Стоимость: 5 баллов.
- PS. Моя группа: формулировка задания в письме имеет больший приоритет, напоминаю про тему письма вида "PP, Фамилия Имя".
- 2)
- В текстовом файле chat.txt записан лог чата между 3-мя пользователями: Alice, Bob и Carol.
- Каждое сообщение записано на отдельной строке в формате: “User: message”, где User - это одно из имен пользователей, состоящее из цифр и букв латинского алфавита, message - сообщение пользователя.
- Необходимо написать программу, которая запишет в файл alice.txt все сообщения пользователя Alice (в том же порядке, что и в исходном файле, каждое на отдельной строке), и аналогично в файлы bob.txt и carol.txt сообщения пользователей Bob и Carol.
- Например, файл chat.txt выглядит как:
- Alice: Hello!
- Bob: Hello, Alice!
- Carol: Hello, Alice and Bob!
- Alice: =)
- Тогда после выполнения программы выходные файлы должны выглядеть следующим образом:
- alice.txt:
- Hello!
- =)
- bob.txt:
- Hello, Alice!
- carol.txt:
- Hello, Alice and Bob!
- Стоимость: 10 баллов
- Бонус: решить ту же задачу с произвольным, неизвестным заранее списком пользователей.
- Стоимость: 5 баллов
- Дедлайн: 31.10.2015, 23.59
- 3)
- Требуется написать программу, которая считывает текст из входного файла text.txt, считает количество вхождений для каждого из слов, присутствующих в тексте, и выводит результат в файл stat.txt в порядке от наиболее часто встречающихся слов к наименее в формате:
- word_1 count_1
- word_2 count_2
- …
- word_n count_n
- В текстовом файле могут присутствовать большие и маленькие буквы латинского алфавита, а также знаки препинания (‘,’, ‘.’, ‘;’, ‘:’, ‘-‘), скобки (‘(‘, ‘)’), кавычки (‘“‘), апострофы (‘’’), пробелы, табулирование и переносы строк. Учтите, что программа должна слова “Word” и “word” считать одинаковыми, и конечно знаки препинания не должны входить в слова.
- Бонус: если у двух слов одинаковое количество вхождений, нужно выводить их в лексикографическом порядке.
- Стоимость такая же, 10 и 5 баллов, дедлайн 16.11.2015, 23:59.
- 4)
- Требуется реализовать гравитационное поле в двумерном пространстве с тремя планетами, а именно дописать недостающую функциональность в следующий класс:
- class GravField:
- __def __init__(self, p1, p2, p3):
- ____# p1, p2, p3 - экземпляры класса Planet (см. ниже)
- ____...
- __def run(self, start_values, steps)
- ____# start_values - словарь вида: имя планеты -> список из начальных x, y, vx, vy;
- ____# steps - количество шагов моделирования, шаг времени выбираете сами
- ____...
- После вызова метода run должно начинаться моделирование гравитационного взаимодействия и вывод координат и скоростей планет на каждом шаге в следующем виде:
- step <номер шага>
- <название планеты> <vx> <vy> <x> <y>
- ...
- Пример:
- step 100
- earth 100.5 200.5 5.5 6.9
- mars 5.7 6.1 3.1 20.6
- Моделирование должно происходить примерно следующим образом: рассматриваем планеты попарно, считаем для каждой пары силу притяжения, обновляем координаты и скорости планет, переходим к следующей паре.
- class Planet:
- __def __init__(self, name, m):
- ____# name - имя, m - масса планеты
- ____...
- Координаты вводятся в астрономических единицах, масса в 10^24 кг, скорость в км/с.
- Бонус: Визуализация. Рекомендуется встроенная библиотека turtle.
- Стоимости обычные, срок - 30.11.2015, 23.59.
- 5)
- В последнем домашнем задании необходимо реализовать программу с GUI, которая бы отображала график введеного полинома.
- Полином имеет вид a ± b * x ^ 1 ± c * x ^ 2 ± d * x ^ 3 + .... и вводится в текстовое поле вашего приложения, все коэффициенты - целые числа.
- Дедлайн - 20.12.2015, 23.59. Стоимость - 10 баллов.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement