Скрипты 2014-2015

ФТ-101

~vm
Придумать свой низкоуровневый язык (в языке не должно быть команд %, Abs)
Написать интерпретатор, понимающий придуманный язык.

На созданном языке реализовать:
1) нахождение n-го члена Фибоначчи
2) нахождение НОД

Пример запуска:
> cscript interpretator.js fib.txt
Введите номер:
3
2

> cscript interpretator.js fib.txt
Введите номер:
-4
Некорректный ввод

~Caesar
>cscript caesar.js encode in.txt out.txt 5
"Зашифровать Цезарем" in.txt, используя сдвиг 5. Результат положить в out.txt

>cscript caesar.js decode in.txt out.txt
Используя частотный анализ, получить исходное сообщение, "зашифрованное Цезарем". Зашифрованный текст в in.txt. Результат - в out.txt

Float
Примеры запуска:

Перевод из десятичного представления числа во float: вывести двоичное представление, hex. Реализовать перевод из float в десятичное число.
>cscript float.js encode 1.5
00111111110000000000000000000000 3FC00000 ~ 1.5

Перевести оба числа во float, сложить (посчитать разность), после вывести результат
>cscript float.js sum 1.5 + 0.5
01000000000000000000000000000000 40000000 ~ 2.0

~RLE
Escape:
1. Власов
2. Журба
3. Плисковский
4. Макаров
5. Шаламова
6. Кужелев
7. Грехов
8. Котельников

Jump:
9. Рыжков
10. Борзов
11. Королев
12. Нартов
13. Бабушкина
14. Соловьев
15. Рагозин

Примеры запуска:
>cscript rle.js /mode encode /in in.txt /out out.txt
>cscript rle.js /mode decode /in out.txt /out out1.txt
>fc in.txt out1.txt

~Дейкстра
>cscript dijkstra.js in2post in.txt out.txt
преобразует инфиксную нотацию в постфиксную

>cscript dijkstra.js post2in in.txt out.txt
преобразует постфиксную нотацию в инфиксную

! В in.txt несколько строк с выражениями, в out.txt помещаются соответствующие строки с результатами.
! Если в результате обработки выражения возникла ошибка, то соответствующая строка результата должна начинаться со слова Error
! Для максимального балла при переводе в инфиксную нотацию должно быть как можно меньше скобок

~Энтропия
Посчитать энтропию для входной строки.
Ввод/вывод не ограничен.

Дедлайн: вчера

Кол-м

~Хаффман
Реализовать кодирование Хаффмана

>cscript huffman.js encode in.txt table.txt out.txt
Закодировать содержимое in.txt, таблицу соответствия символам кодов поместить в table.txt, результат в виде набора 1 и 0 - в out.txt

>cscript huffman.js decode in.txt table.txt out.txt
Раскодировать содержимое in.txt, таблицу соответствия символам кодов брать из table.txt, результат в виде строки - в out.txt

Замечания:
1) table.txt в своем формате
2) если при раскодировании возникла ошибка, то пишем об этом в консоли, out.txt - пустой

hash
> cscript hash.js str.txt substr.txt [n]

Вывести индексы вхождений подстроки из substr.txt в строке из str.txt.
Если задано n, ты вывести первые n вхождений, иначе - все.

Результат для каждого алгоритма: число_вхождений, число_коллизий, время_работы, индексы (все, либо первые n)

auto
>cscript auto.js substrfile strfile [n]
Поиск в файле strfile вхождений substrfile при помощи детерминированного конечного автомата.

Вывести на экран построенный автомат, время работы программы и первые n найденных индексов. Если n не задано, то выводить все вхождения.

БM
>cscript bm.js pattern txtfile [n]
Поиск в файле txtfile вхождений pattern при помощи алгоритма Бойера-Мура

Вывести на экран время работы программы и первые n найденных индексов. Если n не задано, то выводить все вхождения.

* Эвристика стоп-символа - 3 балла
* Эвристика совпавшего суффикса +4 балла

Хэмминг
Реализовать кодирование Хэмминга

Результат в виде html+js
(см. в папку на дропбоксе)

жизнь
1) Реализовать логику игры "Life".
2) Добавить поле, позволяющее задавать интервал автоматической генерации следующего поколения

Шаблон: tinyurl.com/scrpts

К/р + 5ки