Материалы для 271-ой группы 2014
Семестр 3
Домашнее задание 1
- Задать несколько классов, описывающих взаимодействующие сущности окружающего мира.
Домашнее задание 2
- Поэкспериментировать с GUI.
Домашнее задание 3
- Хеш-таблицу прошлого семестра сделать классом с интерфейсом, позволяющим пользоваться ею в .NET стиле. Ориентироваться можно на интерфейс, выданный Виктором Сергеевичем своей подгруппе. http://pastebin.com/jsR7xzH3
Домашнее задание 4
- Написать проверку e-mail на валидность с помощью регулярных выражений. Можно добавить GUI. Не забываем о unit-тестах.
Домашнее задание 5
- Для набора текстовых файлов, содержащих формальное описание вычислительных задач, организовать параллельные вычисления. Сравнить производительность при разном количестве процессов.
Семестр 2
Домашнее задание 1
- Бинарное дерево
Домашнее задание 2
- Интерпретатор мини-ассемблера стековой машины
- На мини-ассемблере: НОД, НОК, 1001-ое простое число, сумма четных чисел Фибоначи, не превышающих 2000000
Домашнее задание 3. F#
- Пройти первые три уровня (строчки) игры http://pcottle.github.io/learnGitBranching/
- Посчитать корни квадратного уравнения. Кубического. Вернуть кортеж
- Обратить список
- Добавить элемент в конец списка
- Длина списка
- Сумма элементов списка
- Отфильтровать список по заранее заданному критерию
- Фильтр с использованием переданной функции
- Преобразовать все элементы списка переданной функцией
Домашнее задание 4. F#
- Сумма цифр факториала 100
- Три задачи из второго десятка project Euler
- Упростить дерево разбора арифметического выражения (полное описание взять со страницы Полозова В. С.)
Домашнее задание 5. F#
- Кодирование по Хаффману
Контрольная. F#
- Разбить список слов на список линий по заданной ширине с учетом вида разбиения (по левому краяю, по центру, по ширине, по правому краю)
Домашнее задание 6. F#
- Код двух предыдущих заданий снабдить unit-тестами
Домашнее задание 1
- Посчитать целую степень числа: a^n.
- Реализовать программу, проверяющую, является ли строка палинромом.
- Заданы две строки: S и S1. Найти количество вхождений S1 в S как подстроки.
- Написать программу, печатающую все простые числа, не превосходящие заданного числа.
- Реализовать подсчет n-го числа Фибоначи.
Домашнее задание 2
- Четыре сортировки.
Домашнее задание 3
- Умножение двух целых чисел без использования операции умножения.
- Вывести биты целого числа.
- Вывести биты floаt и double в виде (-1)^s*m*2^exp.
- Сохранить и загрузить целое число в бинарном файле. Обеспечить корректность работы на машине как с little-endian, так и big-endian
Домашнее задание 4
- Реализовать strcmp, strlen, strcpy.
- Испортить адрес возврата вводом за пределы массива. Добиться эффекта вызова третьей функции.
Домашнее задание 5
- Написать библиотеку работы со связными списками.
- Проверить список на цикличность. Желательно, используя O(1) дополнительной памяти.
- Реализовать стековый калькулятор, управляемый вводом пользователя в текстовое меню.
- Развернуть список.
Домашнее задание 6
- Реализовать ассоциативный массив с помощью hash-таблицы
- Подсчитать количество вхождений слов в текст какого-либо романа из public domain. Сравнить производительность константной функции, заведомо плохой функции и одной из рекомендуемых к использованию (найти в сети). Собрать другую статистику, характеризующую перечисленные функции (средняя длина списка, максимальная, минимальная ненулевая, ...)
Домашнее задание 7
- Реализовать калькулятор методом рекурсивного спуска Примечание: арифметические операции должны быть левоассоциативными.