Readme (Задания по FPTL)
Описание файла
Файл "Readme" внутри архива находится в следующих папках: Задания по FPTL, FPTL Release. Документ из архива "Задания по FPTL", который расположен в категории "". Всё это находится в предмете "параллельные системы и параллельные вычисления" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "параллельные системы и параллельные вычисления" в общих файлах.
Онлайн просмотр документа "Readme"
Текст из документа "Readme"
Список встроенных функций языка FPTL
Имя функции | Сигнатура | Описание |
id | any *… => any * … | Тождественная функция: f(x) = x |
[n] | any *… => any | Выбор n-го элемента из кортежа. |
add | int * int => int double * double => double | Сложение. |
sub | Вычитание. | |
mul | Умножение. | |
div | Деление. | |
mod | Остаток от деления. | |
equal | = | |
nequal | != | |
greater | > | |
less | < | |
gequal | >= | |
lequal | <= | |
sqrt | double => double | Квадратный корень. |
sin | Cинус. | |
cos | Косинус. | |
tan | Тангенс. | |
asin | Арксинус. | |
atan | Арктангенс. | |
round | Округление к ближайшему целому. | |
exp | E в степени. | |
ln | Натуральный логарифм. | |
abs | int => int double => double | |
Pi | => double | Получение числа . |
E | => double | Получение числа e. |
cat | string * string => string | Конкатенация строк. |
search | string *string => string * … string * string => | Поиск подстроки по регулярному выражению (второй аргумент) в исходной строке (первый аргумент). |
match | Проверка соответствия по регулярному выражению. | |
replace | string * string * string => string | Замена по регулярному выражению. Первый аргумент – исходная строка. Второй аргумент – регулярное выражение для поиска образца. Третий аргумент – заменяющая строка. |
length | string => int | Длина строки. |
getToken | string*string => string*string | Выделение лексемы из исходной строки (первый аргумент) по заданному регулярному выражению (второй аргумент). Возвращает выделенную лексему и оставшуюся часть строки. В качестве разделителей лексем считаются символы пробелов, табуляции, возврата и переноса строки. |
rand | => double | Возвращает псевдослучайное число в интервале [0..1] |
| any *… => | Вывод кортежа на экран. |
printType | any * => | Вывод типа кортежа на экран. |
toString | int => string double => string | Преобразование с строку. |
toInt | string => int double => int | Преобразование в целое. |
toReal | string => double Int => double | Преобразование в вещественное число. |
readFile | string => string | Чтение файла в строку. Первый аргумент – путь к файлу. |
Примечания
Функции для работы со строками search и match первым параметром принимают исходную строку, вторым строку - регулярное выражение, задающее шаблон для поиска/проверки соответствия. Возвращаемым значением будет либо
Функция replace принимает 3 параметра: исходную строку, строку, задающую регулярное выражение для шаблона, и строку, на которую будет произведена замена. Возвращает результирующую строку.
С синтаксисом регулярных выражений можно ознакомиться здесь: http://www.cs.tut.fi/~jkorpela/perl/regexp.html
Варианты заданий
-
Реализовать алгоритм сжатия Хаффмана.
-
Реализовать алгоритм перемножения матриц. Матрицу представлять в виде списка списков.
-
Реализовать алгоритм нахождения определителя матрицы. Матрицу представлять в виде списка списков.
-
Даны числа a, b, n. Выдать список из n разных случайных чисел из отрезка [a, b].
-
Даны числа a, b, m. Реализовать алгоритм генерации взвешенного бинарного дерева из m уровней. Веса вершин должны быть случайными числами из отрезка [a, b].
-
Реализовать операции над множествами: пересечение, объединение, разность, предикат принадлежности элемента к множеству.
-
Реализовать структуру данных «ассоциативный список» и операции над ним: добавление элемента в таблицу, удаление элемента, проверка наличия элемента.
-
Реализовать алгоритм добавления элемента в бинарное дерево поиска.
-
Реализовать алгоритм удаления элемента из бинарного дерева поиска.
-
Реализовать алгоритм построения заданного списка в бинарное дерево поиска.
-
Реализовать алгоритмы обхода «сверху-вниз» и «слева-направо» произвольных деревьев.
-
Реализовать алгоритм быстрой сортировки на.
-
Реализовать алгоритм сортировки слиянием на.
-
Нахождение простых чисел Мерсена (вида 2p-1).
-
Факторизация числа (разложение на простые).
-
Определение простоты числа.
-
Реализовать 3 алгоритма интегрирования функции с заданной точностью. Проанализировать полученные результаты.
-
Реализовать алгоритм построения минимального остовного дерева для графа.
-
Реализовать алгоритм нахождения гамильтонова цикла в графе.
-
Реализовать алгоритм поиска минимального пути между двумя вершинами графа.
-
Реализовать алгоритм поиска максимальной клики в графе
-
Реализовать алгоритм нахождения гамильтонова цикла в графе
-
Реализовать алгоритм поиска минимального остовного дерева (оптимального каркаса) методом Прима.
-
Реализовать алгоритм поиска минимального остовного дерева (оптимального каркаса) методом Крускала.
Контактная информация
Электронная почта: sti0cli@gmail.com