Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
18
Добавлен:
28.06.2014
Размер:
19.27 Кб
Скачать

Список встроенных функций языка 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 => <undefined>

Поиск подстроки по регулярному выражению (второй аргумент) в исходной строке (первый аргумент).

match

Проверка соответствия по регулярному выражению.

replace

string * string * string => string

Замена по регулярному выражению.

Первый аргумент – исходная строка.

Второй аргумент – регулярное выражение для поиска образца.

Третий аргумент – заменяющая строка.

length

string => int

Длина строки.

getToken

string*string => string*string

Выделение лексемы из исходной строки (первый аргумент) по заданному регулярному выражению (второй аргумент). Возвращает выделенную лексему и оставшуюся часть строки. В качестве разделителей лексем считаются символы пробелов, табуляции, возврата и переноса строки.

rand

=> double

Возвращает псевдослучайное число в интервале [0..1]

print

any *… =>

Вывод кортежа на экран.

printType

any * =>

Вывод типа кортежа на экран.

toString

int => string

double => string

Преобразование с строку.

toInt

string => int

double => int

Преобразование в целое.

toReal

string => double

Int => double

Преобразование в вещественное число.

readFile

string => string

Чтение файла в строку. Первый аргумент – путь к файлу.

Примечания

Функции для работы со строками search и match первым параметром принимают исходную строку, вторым строку - регулярное выражение, задающее шаблон для поиска/проверки соответствия. Возвращаемым значением будет либо <undefined> если заданная подстрока не найдена или не найдено соответствие, либо список найденных соответствий.

Функция replace принимает 3 параметра: исходную строку, строку, задающую регулярное выражение для шаблона, и строку, на которую будет произведена замена. Возвращает результирующую строку.

С синтаксисом регулярных выражений можно ознакомиться здесь: http://www.cs.tut.fi/~jkorpela/perl/regexp.html

Варианты заданий

  1. Реализовать алгоритм сжатия Хаффмана.

  2. Реализовать алгоритм перемножения матриц. Матрицу представлять в виде списка списков.

  3. Реализовать алгоритм нахождения определителя матрицы. Матрицу представлять в виде списка списков.

  4. Даны числа a, b, n. Выдать список из n разных случайных чисел из отрезка [a, b].

  5. Даны числа a, b, m. Реализовать алгоритм генерации взвешенного бинарного дерева из m уровней. Веса вершин должны быть случайными числами из отрезка [a, b].

  6. Реализовать операции над множествами: пересечение, объединение, разность, предикат принадлежности элемента к множеству.

  7. Реализовать структуру данных «ассоциативный список» и операции над ним: добавление элемента в таблицу, удаление элемента, проверка наличия элемента.

  8. Реализовать алгоритм добавления элемента в бинарное дерево поиска.

  9. Реализовать алгоритм удаления элемента из бинарного дерева поиска.

  10. Реализовать алгоритм построения заданного списка в бинарное дерево поиска.

  11. Реализовать алгоритмы обхода «сверху-вниз» и «слева-направо» произвольных деревьев.

  12. Реализовать алгоритм быстрой сортировки на.

  13. Реализовать алгоритм сортировки слиянием на.

  14. Нахождение простых чисел Мерсена (вида 2p-1).

  15. Факторизация числа (разложение на простые).

  16. Определение простоты числа.

  17. Реализовать 3 алгоритма интегрирования функции с заданной точностью. Проанализировать полученные результаты.

  18. Реализовать алгоритм построения минимального остовного дерева для графа.

  19. Реализовать алгоритм нахождения гамильтонова цикла в графе.

  20. Реализовать алгоритм поиска минимального пути между двумя вершинами графа.

  21. Реализовать алгоритм поиска максимальной клики в графе

  22. Реализовать алгоритм нахождения гамильтонова цикла в графе

  23. Реализовать алгоритм поиска минимального остовного дерева (оптимального каркаса) методом Прима.

  24. Реализовать алгоритм поиска минимального остовного дерева (оптимального каркаса) методом Крускала.

Контактная информация

Электронная почта: sti0cli@gmail.com