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

244 группа

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

Студент TODO №1 №2 №3 Тест 1 №4 №5
52 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 Текст Презентация
Жибарев Егор 2
Зайцев Дмитрий
Кидянкин Михаил
Кузьмин Юрий 11
Полетанский Виктор
Савельев Александр
Ходько Андрей 21
Шервашидзе Георгий 18

Задачи

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

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

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

  4. Описать тип, позволяющий хранить информацию о многочленах с одной переменной, и реализовать для него сложение, умножение и show

Тест 1. 05.04.19
  1. Используя монадичесие функции, опишите фунцию, которая ищет в BST первый элемент, равный произведению двух предыдущих.

  2. Реализовать функцию, которая следующий квадрат из символов * с стороной n. Так, для n=5 будет выведено:

    xxxxx
    x x
    x x
    x x
    xxxxx

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

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

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

Домашняя работа 3. 16.03.19
Введение в 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. 25.02.19
Введение в Haskell (1)
  1. Реализовать функцию обращения списка. Функция должна работать за линейное время (подсказка: конкатенация — это плохо)

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

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

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

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

Домашняя работа 1. 18.02.19
Введение в лямбда-исчисление (конспект)
Введение в лямбда-исчисление (презентация)
  1. Реализовать программу подсчета факториала

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

© 2014-2019 HwProj