Программирование

244-2015 группа

Тимофей Брыксин

Студент TODO №1 №2 №3 №4 №5 Тест 1 №6 Тест 2
25 1 2 3 4 5 1 2 3 4 5 1 2 3 4 1 2 3 4 1 2 3 4 5 1 2 3 Текст Презентация
Афлетунова Юлия
Жибарев Егор 19
Кириллов Илья
Машарский Стас 2
Правдюков Сергей 4
Смирнов Денис
Чудов Александр

Задачи

Тест 2. 25.05.17
  1. Текст
  2. Презентация
Домашняя работа 6. 11.05.17
  1. Описать тип, позволяющий хранить информацию о многочленах с одной переменной, и реализовать для него сложение, умножение и show

  2. Реализовать тип данных BinarySearchTree и соответствующие функции для работы с ним: добавление, удаление, поиск, размер (число элементов), высота. Реализовать функцию, которая заменяет значение в каждом узле дерева на случайное целое число

  3. Для типа Graph, разбиравшегося на паре, реализовать алгоритм Дейкстры поиска кратчайшего пути. Поиск пути должен производиться с использованием экземпляров класса типов Monad или MonadPlus

Тест 1. 07.04.17
Домашняя работа 5. 25.03.17
Конспект
  1. Реализовать функцию, которая по заданному числу n выводит разложения его на положительные слагаемые (с точностью до порядка разложения)

  2. С помощью оператора >>= опишите функцию, которая для данного числа n создает список из всех попарных произведений чисел от 1 до n. ( Т.е. что-то такое: [1*1, 1*2, 1*3, …, 1*n, 2*1, 2*2, …, n*n] - всего n*n элементов)

  3. Используя монадичесие функции, опишите фунцию, которая ищет в списке первый элемент, больший своих соседей (предыдущего и следующего)

  4. Дано выражение, содержащее переменную, константы, арифметические операции. Посчитать производную этого выражения по этой переменной, провести в полученном выражении для производной возможные упрощения (например, 1*x = x). Подходящий тип данных разработать самостоятельно

Домашняя работа 4. 18.03.17
Конспект
Темы для докладов
  1. Реализовать три варианта функции, подсчитывающей количество четных чисел в списке (с использованием стандартных функций map, filter, foldr). Использование рекурсии не допускается.

  2. Написать программу, которая в диалоговом режиме позволяет осуществлять следующие операции:
    0 - exit
    1 - add value to sorted list
    2 - remove value from list
    3 - print list
    Все операции должны сохранять сортированность. Начинаем с пустого списка.

  3. По дереву получить список его значений при некотором обходе. Использование рекурсии не допускается.

  4. Написать программу - телефонный справочник. Она должна уметь хранить имена и номера телефонов, в интерактивном режиме осуществлять следующие операции:
    0 - выйти
    1 - добавить запись (имя и телефон)
    2 - найти телефон по имени
    3 - найти имя по телефону
    4 - сохранить текущие данные в файл
    5 - считать данные из файла
    Формат представления данных в файле придумать самостоятельно

Домашняя работа 3. 13.03.17
Введение в Haskell (1)
Введение в Haskell (2)
  1. Записать следующую функцию в point-free стиле: func x l = map (\y -> y*x) l. В комментариях показать все промежуточные шаги преобразований.

  2. Реализовать функцию, генерирующую бесконечный список, содержащий все целые положительные числа, состоящие только из цифр 1, 7 и 9 (числа должны идти в порядке возрастания). Например, первые 10 чисел в этом списке должны быть [1,7,9,11,17,19,71,77,79,91]. Функция должна быть реализована с помощью "завязывания в узел".

  3. Вывести первую позицию в списке, на которой сумма двух соседних элементов максимальна. Например, для [1, 5, 6, 2] функция должно вернуть значение 2.

  4. Реализовать функцию, которая по произвольной строке проверяет корректность скобочной последовательности в этой строке. Должны поддерживаться три типа скобок.

  5. Реализовать функцию подсчёта чисел Фибоначчи при попощи накапливающего параметра. Функция должна работать и для положительных, и для отрицательных индексов.

Домашняя работа 2. 04.03.17
Лямбда-исчисление (конспект)
Лямбда-исчисление (презентация)
  1. Реализовать функцию обращения списка. Функция должна работать за линейное время (подсказка: конкатенация — это плохо)

  2. Реализовать функцию, которая формирует список из n последовательных степений двойки (n — аргумент функции)

  3. Реализовать функцию, которая вычисляет сумму цифр данного числа

  4. Реализовать функцию, которая выдает первую позицию вхождения заданного числа в список

  5. По трём заданным спискам составить список сумм соответствующих их элементов. Длина результирующего списка должна быть равна длине самого длинного из заданных списков, при этом «закончившиеся» списки не должны давать вклада в суммы. Например, если на вход подать [1,2,3] [4,5] [6], то на выходе должно получиться [11,7,3].

Домашняя работа 1. 18.02.17
  1. Реализовать на Haskell программу подсчета факториала

  2. Реализовать на Haskell программу подсчета i-го числа Фибоначчи

© 2014-2018 HwProj