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

244 группа

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

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

Задачи

Тест 1. 05.04.19
  1. Описать бесконечный список из чисел [1, -1, 1, -1, 1, -1, 1, -1, …]. С помощью него реализовать функцию, выдающую бесконечный список: [1, -2, 3, -4, 5, -6, …].

  2. Пусть матрица — списков из списков. Описать функцию, которая для данного n возвращает такой список для матрицы n на n, содержащий числа от 1 до n, раcположенные "уголоком". Например, для n = 4 надо вернуть:
    [[1, 2, 3, 4],
    [2, 2, 3, 4],
    [3, 3, 3, 4]
    [4, 4, 4, 4]]

  3. Реализовать функцию, которая выводит ромб из символов 'x' с стороной n. Так, для n = 4 будет выведено

       x 
      xxx
     xxxxx
    xxxxxxx
     xxxxx
      xxx
       x
    
  4. Описать функцию, которая работает как map, только для каждого значения исходного списка можно задать не одно, а несколько значений, на которые его надо заменить. Пример вызова: supermap [1, 2, 3] (\x -> [sin x, cos x] должно возвращать [sin 1, cos 1, sin 2, cos 2, sin 3, cos 3].

  5. Проверить, что все элементы списка удовлетворяют некоторому условию (условие передается как параметр).

Домашняя работа 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