Компьютерные науки - 1 2013-2014

МТ-103

1.1
Написать выражение, которое возводит число в квадрат (Лямбда калькулятор cs.usu.edu.ru/home/akazakov/lambda.jar)

1.2
Написать выражение, которое вычисляет остаток от деления x на y

1.3
Написать выражение, которое вычисляет последнюю цифру числа

1.4
Написать выражение, которое вычисляет предпоследнюю цифру числа

1.5
Написать выражение, которое проверяет год на високосность (http://ru.wikipedia.org/wiki/Високосный_год)

1.6
Написать выражение, которое вычисляет минимум из двух чисел

1.7
Написать выражение, которое вычисляет максимум из двух чисел

1.8
Написать выражение, которое принимает два натуральных числа (<= 999) и вычисляет их конкатенацию

2.1
Написать выражение для вычисления факториала заданного числа

2.2
Написать выражение для вычисления суммы цифр заданного числа

2.3
Написать выражение для вычисления максимальной цифры заданного числа

2.4
Написать выражение, которое переводит заданное число из 10 системы счисления в двоичную

3.1
Написать функцию, которая по заданным коэффициентам квадратного уравнения вычисляет и возвращает количество корней этого уравнения.

3.2
Написать функцию, которая по заданным длинам сторон треугольника определяет и возвращает его тип. (Не треугольник, остроугольный, прямоугольный или тупоугольный треугольник)

3.3
Написать функцию, которая по заданному отрезку лет (от a до b включительно) подсчитывает и возвращает количество високосных годов.

4.1
Написать рекурсивную функцию, которая принимает натуральное число и возвращает количество цифр в нем, которые кратны 3. (Например, 645234 -> 2, 128722 -> 0)

24.10 -- 2
31.10 -- 2
07.11 -- 1

4.2
Написать ИТЕРАТИВНУЮ функцию, которая принимает натуральное число и возвращает количество цифр в нем, которые кратны 3. (Например, 645234 -> 2, 128722 -> 0)


24.10 -- 2
31.10 -- 2
07.11 -- 1

5.1
Написать функцию, которая принимает натуральное число и проверяет является ли оно простым.

31.10 -- 2
07.11 -- 2
14.11 -- 1

5.2
Написать функцию, которая принимает на вход два натуральных числа и возвращает их наибольший общий делитель.

Реализовать два варианта:
1) с перебором кандидатов в общие делители
2) алгоритм Евклида для нахождения НОД

31.10 -- 2
07.11 -- 2
14.11 -- 1

5.3
Написать функцию, которая принимает натуральное число и проверяет является ли оно степенью 2, если да, то какой. (Например, 1 -> 0, 123 -> #f, 128 -> 7)

31.10 -- 2
07.11 -- 2
14.11 -- 1

5.4
Написать функцию, которая принимает число и разворачивает в нем цифры в обратном порядке. (Например, 5432 -> 2345)

31.10 -- 2
07.11 -- 2
14.11 -- 1

6.1
Написать свою реализацию функции length, которая принимает список и возвращает его длину.


07.11 -- 2
14.11 -- 2
21.11 -- 1

6.2
Написать функцию, которая принимает список целых чисел и возвращает минимальное число из этого списка.

07.11 -- 2
14.11 -- 2
21.11 -- 1

6.3
Написать функцию, которая принимает список чисел и натуральное число -- количество элементов, которые нужно удалить из начала списка и возвращает новый список. (Например, (list 5,4,3,2,1), 2 -> (list 3, 2, 1). Или (list 6,5,4,3), 5 -> (list))

07.11 -- 2
14.11 -- 2
21.11 -- 1

6.4
Написать функцию, которая принимает список натуральных чисел и возвращает список только из тех элементов, которые являются простыми. (Например, (list 2, 4, 5, 7, 9, 13, 14, 21) -> (list 5, 7, 13))

07.11 -- 2
14.11 -- 2
21.11 -- 1

7.1
Написать функцию, которая принимает список натуральных чисел и возвращает их среднее арифметическое.

14.11 -- 2
21.11 -- 2
28.11 -- 1

7.2
Написать функцию flatten. (Например, (list 1 (list 5 (list 3 4) 2) 4) -> (list 1 5 3 4 2 4))

14.11 -- 2
21.11 -- 2
28.11 -- 1

7.3
Написать функцию, которая принимает список целых чисел и проверяет, что он отсортирован в порядке убывания. (Например, (list 5 2 -1 -5) -> #t, а (list 15 5 3 8 -3 -5) -> #f)

14.11 -- 2
21.11 -- 2
28.11 -- 1

8.1
Написать функцию, которая принимает матрицу (список списков) и проверяет, что она является квадратной матрицей. (Например, '('(1 2 3) '(4 5 6) '(7 8 9)) -> #t, а '('(1 2 3) '(4 5 6 7)) -> #f)

21.11 -- 2
28.11 -- 2
05.12 -- 1

8.2
Написать функцию, которая умножает матрицу на число.

21.11 -- 2
28.11 -- 2
05.12 -- 1

8.3
Написать функцию, которая принимает две матрицы и возвращает их сумму или #f, если матрицы сложить нельзя.

(add-matrix '((1 2 3) ((1 2 3)) '((3 2 1)(3 2 1))) -> '((4 4 4) (4 4 4))
(add-matrix '((1 2 3) ((1 2 3)) '((3 2)(3 2))) -> #f

21.11 -- 2
28.11 -- 2
05.12 -- 1

8.4
Написать функцию, которая перемножает две матрицы и возвращает #f, если матрицы перемножить нельзя.

21.11 -- 2
28.11 -- 2
05.12 -- 1

8.5
Написать функцию, которая транспонирует матрицу.

21.11 -- 2
28.11 -- 2
05.12 -- 1

9.1
Написать функцию, которая вычисляет определитель квадратной матрицы.

28.11 -- 2
05.12 -- 2
12.12 -- 1

9.2
Написать функцию, которая находит обратную матрицу к заданной.

28.11 -- 2
05.12 -- 2
12.12 -- 1

9.3
Написать функцию, которая принимает матрицу и её элемент (i j) и возвращает новую матрицу, в которой вычеркнуты строка i и столбец j.

28.11 -- 2
05.12 -- 2
12.12 -- 1

10.1
Многочлен 2*x^3+4*x^2-x+3 задается списком своих коэффициентов '(2 4 -1 3). Написать функцию, которая принимает два произвольных многочлена и возвращает их сумму.

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

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

Работа в семестре
Посещаемость, работа на аудиторных занятиях, контрольные мероприятия

2.1.1
Написать функцию, которая считает количество листьев в бинарном дереве

27.02.14 -- 2
06.03.14 -- 2
13.03.14 -- 1

2.1.2
Написать функцию, которая проверяет, что все элементы в упорядоченном дереве разные.

27.02.14 -- 2
06.03.14 -- 2
13.03.14 -- 1

2.1.3
Написать функцию, которая вычисляет высоту дерева.

27.02.14 -- 2
06.03.14 -- 2
13.03.14 -- 1

2.1.4
Написать функцию, которая в бинарном дереве ищет лист, ближайший к корню.

27.02.14 -- 2
06.03.14 -- 2
13.03.14 -- 1

2.2.1
Написать функцию, которая проверяет, что дерево является полным.

06.03.14 -- 2
13.03.14 -- 2
20.03.14 -- 1

2.2.2
Написать функцию, которая переводит упорядоченный список в сбалансированное дерево. И наоборот -- дерево в список.

06.03.14 -- 2
13.03.14 -- 2
20.03.14 -- 1