Практикум на ЭВМ (161, 2 семестр)
Новости
Новости
- 09.03.2011 - контрольная работа - 1 (Лямбда-исчисление)
Часть - 1: Haskell
Часть - 1: Haskell
Задание 1: простейшие функции (до 16.04.2010)
- сумма элементов списка
- добавление элемента в конец списка
- сумма квадратов
- перевернутый список
- реализация функции map, применяющую любую функции к каждому элементу списка (map :: (a -> b) -> [a] -> [b])
- список всех чисел Фибоначчи
- конкатенация списков
Задание 2:
- список всех чисел Фибоначчи выраженный через себя
- сумма чётных чисел Фибоначчи не превосходящих 4000000
Задание 3:
- список всех просттых чисел
- найти наибольший простой делитель числа 600851475143
- Замечание: для успешной сдачи результат должен считаться <1 сек
Задание 4:
- описать тип, соответсвующий арифметическим выражениям с целыми числами и операциями +, -, *, /
- реализовать функцию для подсчёта результата вычисления такого выражения
- Например:
- > calc (Add (Num 1) (Add (Num 2) (Num 3)))
- 6
Задание 5:
- Реализовать алгоритм нахождения НОД на языке ассемблера StudentAsm
- head - вывести в стандартный поток вывода первые n строк из входа.
- Реализовать head следует в виде исполнимого модуля. Программа должна работать аналогично одноименной утилите Linux:
- *Программа имеет необязательный параметр - имя входного файла. Если параметр не указан, то чтение должно производиться из стандартного потока ввода.
- Программе можно передать необязательный параметр "-n <число>" задающий количество строк для вывода. По умолчанию - 10.
- Если на входе менее n строк, то выводится всё содержимое.
Задание 6:
- Реализовать на интерпретатор ассемблера StudentAsm
- память как абстрактный тип данных (АТД)
- Memory :: Addr -> Int
- Компиляцию из Instruction String в более эффективный тип данных
Задание 7:
- Дискретная задача о рюкзаке
Часть 2 - Си
Часть 2 - Си
Задание 8:
- Конь: найти маршрут шахматного коня, проходящего через все поля доски по одному разу.
- При обходе использовать правило Варнсдорфа.
Успеваемость