- •Вариант 1 Разработка транслятора языка программирования midi- файлов
- •Вариант 3 Разработка программы "Интерпретатор выражений алгебры комплексных чисел"
- •Вариант 4 Разработка программы "Транслятор выражений в обратную польскую запись"
- •Вариант 5 Разработка программы-интерпретатора специализированного языка программирования для операций над массивами
- •Вариант 7 Разработка программы "Интерпретатор арифметики вещественных чисел"
- •Вариант 8 Разработка программы "Интерпретатор выражений булевой алгебры"
- •Вариант 9 Разработка программы "Калькулятор алгебраических матричных выражений"
- •Вариант 10 Разработка программы "Текстовый редактор с подсветкой синтаксиса"
- •Вариант 11 Разработка программы "Графический командный процессор"
- •Вариант 12 Разработка программы "Интерпретатор операций над множествами"
- •Вариант 13 Разработка программы "Командный файловый процессор"
- •Вариант 14 Разработка программы "Конвертер форматированного текста"
- •Вариант 15 Разработка программы "Интерпретатор побитовых логических операций"
- •Вариант 16 Разработка программы "Командный калькулятор арифметических выражений"
- •Вариант 17 Разработка программы-интерпретатора упрощенного языка программирования
- •Вариант 18 Разработка программы-интерпретатора упрощенного языка программирования
Вариант 12 Разработка программы "Интерпретатор операций над множествами"
Программа получает на вход файл с текстом программы. Текст содержат команды операций над множествами. Программа, если в тексте нет грамматических, синтаксических и смысловых ошибок, исполняет команды по шагам и выводит результат на экран.
Каждое множество может иметь до 32 элементов (при составлении программы их удобно представлять битовыми массивами длиной 4 байта = 32 бита: элементу 0 соответствует бит 0, элементу 1 – бит 1 и т.д.)
Текст может содержать следующие команды (команды разделяются точкой с запятой):
1) Объявление пустого множества
SET Имя_множества[];
2) Объявление непустого множества
SET Имя_множества[перечисление_элементов_через_запятую];
3) Заполнение существующего множества
Имя_множества = выражение;
Выражение может содержать имена ранее описанных множеств, явно указанные множества вида
[перечисление_элементов_через_запятую] и операции между ними:
а) объединение множеств Множество1+Множество2
б) пересечение множеств Множество1*Множество2
в) разность множеств Множество1-Множество2
г) инверсия множества \Множество1
4) Вывод на экран элементов множества
OUT( Имя_множества );
5) Комментарий – любая строка символов, заключенная между // и //.
Пример программы (каждая команда записывается на отдельной строке):
SET A[]; //пустое множество//
SET B[1,5,7];
A = B + [7,2];
OUT( A );
В результате будет выведено А=[1,2,5,7]
Вариант 13 Разработка программы "Командный файловый процессор"
Написать программу, которая получает на вход текстовый файл, состоящий из команд операций над файлами (по аналогии в bat-файлом). Программа должна отслеживать грамматические, синтаксические и смысловые ошибки в тексте, и, если они не найдены, по шагам исполнять команды. В тексте программы каждая команда записывается с новой строки.
Допускаются следующие команды:
1) Создание нового файла (Create File)
CF "полное_имя_файла" AS выражение
Выражение может быть именем файла в кавычках, тогда новый файл получается перемещением указанного файла с одновременным переименованием.
Выражение может быть записано так:
COPY "полное_имя_файла1"
тогда указанный файл копируется под новым именем. (например, CF “test.txt” AS COPY “D:\TEMP\A.txt”)
Если выражение содержат запись:
JOIN "полное_имя_файла_1","полное_имя_файла_2",...
то файл создается в результате дописывания в конец файла_1 содержимого файла_2, файла_3 и всех остальных
(Пример: CF “test.txt” AS JOIN “Part1.txt”, “Part2.txt”, “Part3.txt”)
2) Удаление файла (Delete File)
DF "полное_имя_файла"
3) Установка/снятие атрибутов файла (Attributes of File)
AF "полное_имя_файла" атрибуты
В поле атрибутов перечисляются обозначения атрибутов, которые должны быть установлены (пробелы между атрибутами не допускаются): R – только для чтения (readonly); A – архивный (archive); S – системный (system); H – скрытый (hidden).
Например, команда
AF "c:\temp\myfile.txt" AR
устанавливает на файл myfile.txt атрибуты "архивный" и "только для чтения". Последующая команда
AF "c:\temp\myfile.txt" A
снимает атрибут "только для чтения", оставляя атрибут "архивный".
В командах (1)– (3) имена файлов могут содержать метасимволы * и ?.
4) Создание директории (Create Directory)
CD "путь_и_имя_новой_директории" AS выражение
Выражение может быть пустым, тогда создается пустая директория.
Выражение может быть именем другой директории в кавычках, тогда эта директория и всё ее содержимое перемещается под новым именем.
Выражение может быть записано:
COPY "путь_и_имя_существующей_директории"
тогда все содержимое указанной директории копируется в новую директорию
Если выражение содержат запись:
JOIN "имя_директории_1","имя_директории_2",... параметр_копирования
то в новую директорию копируется все файлы из перечисленных директорий. Парамер_копирования определяет, как поступать с одноименными файлами. Он может принимать одно из значений:
OW_DEF – существующие файлы не переписывать;
OW_NEW – из двух одноименных файлов оставлять более новый;
OW_REN – переименовывать файлы. Новое имя получается из старого дописыванием ~1, ~2 и т.д.
5) Удаление каталога со всем содержимым (Delete Directory)
DD "путь_и_имя_директории"
Ошибки времени исполнения выводить на экран, при ошибке прекращать работу.