Архив‎ > ‎

Математическое обеспечение, практикум по программированию (осень 2009)

144 гр, осень 2008

Отзывы

Если Вы обнаружили в тексте опечатку, содержательную ошибку, неточность или просто хотите что-то сообщить автору, можете оставить отзыв.

Задачи

  • Haskell
    1. fib - написать функцию, вычисляющую n-е число Фибоначчи;
    2. rev - написать функцию, переворачивающую список;
    3. fastfib - реализовать бесконечный список чисел Фибоначчи с линейной трудоёмкостью вычисления элементов списка;
    4. ratiolist - реализовать бесконечный список рациональных чисел (можно с повторениями), выдающий либо пары (числитель, знаменатель), либо рациональные числа из библиотеки Ratio (вида n % d);
    5. inputlist - реализовать программу, запрашивающую количество элементов списка, и значения элементов, и выдающую список;
    6. unique - реализовать функцию, принимающую список, и возвращающую его же, но без повторений (с удалением второго и последующих включений элементов); должна работать и на бесконечных списках; для накопления информации можно использовать (а можно и не использовать) лямбда-функцию; проверить на рациональных числах;
    7. C1 - написать контрольную работу, которая, почему-то, превратилась в домашнюю;
    8. T12 - реализовать программу, добавляющую вершины в АВЛ-дерево (только дописать функции balanceNode и addNode в файле Tree12.hs в приложенном к странице архиве Tree12.7z).
  • Prolog
    1. "add" - реализовать предикат, складывающий числа, представленные списком "камешков" или чего-либо другого, возможно переупорядочивание;
    2. path - реализовать предикат, отыскивающий пути в графе с циклами и выдающий вершины, встречающиеся на пути между двумя данными.
  • Python (пример работающего переопределения операций — вложение Aov.py)
    1. quat - реализовать Кватернионы Гамильтона с операциями сложения, вычитания, умножения, сопряжения, в т.ч. с участием вещественных чисел; поддержку стандартной библиотекой комплексных чисел можно игнорировать;
    2. simplelist - реализовать ленивый список простых чисел (как когда-то на Java); должен поддерживать операцию in (__contains__).

Задачи для студентов других групп

Выдаются индивидуальные варианты, для зачёта надо решить все обязательные и сверхобязательные задачи.

Литература

  • Haskell
    • Реализации:
      1. Hugs/WinHugs;
      2. GHC.
    • Материалы:
      1. Land of Lisp comics;
      2. A Gentle Introduction to Haskell;
      3. Yet Another Haskell Tutorial;
      4. Душкин Роман, Функциональное программирование на языке Haskell + CD. ДМК, 2007, 608 стр.;
      5. The IO Monad — Don't Panic.
      6. Примеры определения классов типов и реализации классов в конкретных типах на Haskell — приложение classdemo.hs.html.
  • Prolog
    • Реализации:
      1. Интерпретатор (один из): tuProlog (для всех ОС запускается в подкаталоге lib командой java -jar 2p.jar).
  • Python
Успеваемость
Данные об успеваемости публикуются с устного согласия студентов группы. Для просмотра таблицы требуется браузер с поддержкой JavaScript. Без JavaScript таблицу можно посмотреть по ссылке.



ċ
Tree12.7z
(1k)
Dmitry Luciv,
20 нояб. 2009 г., 8:20
ċ
aov.py
(1k)
Dmitry Luciv,
17 дек. 2009 г., 0:57
ċ
classdemo.hs.html
(4k)
Dmitry Luciv,
23 окт. 2009 г., 1:39
Comments