Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Варианты 2010.doc
Скачиваний:
3
Добавлен:
28.08.2019
Размер:
141.31 Кб
Скачать

Вариант 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 "путь_и_имя_директории"

Ошибки времени исполнения выводить на экран, при ошибке прекращать работу.