- •Вариант 1 Разработка транслятора языка программирования midi- файлов
- •Вариант 3 Разработка программы "Интерпретатор выражений алгебры комплексных чисел"
- •Вариант 4 Разработка программы "Транслятор выражений в обратную польскую запись"
- •Вариант 5 Разработка программы-интерпретатора специализированного языка программирования для операций над массивами
- •Вариант 7 Разработка программы "Интерпретатор арифметики вещественных чисел"
- •Вариант 8 Разработка программы "Интерпретатор выражений булевой алгебры"
- •Вариант 9 Разработка программы "Калькулятор алгебраических матричных выражений"
- •Вариант 10 Разработка программы "Текстовый редактор с подсветкой синтаксиса"
- •Вариант 11 Разработка программы "Графический командный процессор"
- •Вариант 12 Разработка программы "Интерпретатор операций над множествами"
- •Вариант 13 Разработка программы "Командный файловый процессор"
- •Вариант 14 Разработка программы "Конвертер форматированного текста"
- •Вариант 15 Разработка программы "Интерпретатор побитовых логических операций"
- •Вариант 16 Разработка программы "Командный калькулятор арифметических выражений"
- •Вариант 17 Разработка программы-интерпретатора упрощенного языка программирования
- •Вариант 18 Разработка программы-интерпретатора упрощенного языка программирования
Вариант 9 Разработка программы "Калькулятор алгебраических матричных выражений"
Программа получает на вход текст программы, содержащий операции матричной алгебры. Размерность матриц 2х2. При отсутствии ошибок программа выполняет указанные вычисления и выводит результат на экран. Значения элементов матриц и векторов – целые числа в десятичной системе счисления.
В тексте программы допускаются следующие конструкции:
1) Инициализация вектора-строки:
ROWVECTOR Имя( значение1, значение2)
2) Инициализация вектора-столбца:
COLVECTOR Имя( значение1, значение2)
3) Инициализация квадратной матрицы:.
MATRIX Имя( (значение1.1, значение1.2) (значение2.1, значение2.2))
4) Получение элемента вектора (индекс равен 1 или 2)
Имя_вектора[индекс]
5) Получение элемента матрицы (индекс_строки и индекс_столбца принимает значения 1 или 2)
Имя_матрицы[индекс_строки,индекс_столбца]
6) Присваивание нового значения матрице или вектору
Имя = матричное_выражение
Матричное_выражение содержит имена векторов или матриц и операции над ними:
Имя^ – транспонирование (применительно к векторам вектор-столбец становится строкой, и наоборот)
Имя@ – получение обратной матрицы (применяется только к матрицам)
Имя+Имя – сумма матриц или векторов, типы должны совпадать (например, не допускается складывать строку со столбцом, или матрицу с вектором)
Имя-Имя – разность матриц или векторов. Как и в предыдущем случае, типы должны совпадать
Имя*Имя – произведение матриц, векторов и скалярных величин. Умножение на скаляр дает матрицу или вектор той же размерности, что и исходный. При умножении двух матриц результат – матрица; умножение строки на столбец дает скаляр, умножение столбца на строку – квадратную матрицу.
7) Вывод на экран результата
PRINT(Имя)
Приоритет операций может регулироваться скобками ( ).
Пример программы (каждая команда записывается на отдельной строке):
MATRIX A((1,2)(3,4))
ROWVECTOR R(7,8)
COLVECTOR С(3,6)
A=(R^+C)*C-A
PRINT(A)
Вариант 10 Разработка программы "Текстовый редактор с подсветкой синтаксиса"
Разработать текстовый редактор с "подсветкой" служебных слов. Набор лексем по группам (служебные слова, цифры, идентификаторы, скобки) подгружается к текстовому редактору в качестве файла конфигурации. Формат этого файла разработать самостоятельно.
Редактор должен иметь возможность настраивать цвет подсветки для каждой группы лексем, проверять парность скобок или иных спецсимволов, вести поиск и замену подстрок, рассчитывать статистику.
Вариант 11 Разработка программы "Графический командный процессор"
Программа получает на вход текст программы, которая содержит команды компьютерной графики. Программа интерпретирует эти команды и выводит на экран соответствующее изображение.
Команды в тексте могут либо разделяться специальным символом разделителем (например, точкой с запятой), либо записываться каждая с новой строки – по выбору студента.
Первая команда всегда – задание размеров холста:
PAGE( размер_по_горизонтали, размер_по_вертикали )
Размеры задаются в пикселях и должны быть в диапазоне от 1 до некоторого предела.
Остальные строки программы могут содержать следующие команды:
1) Рисование линии из точки с координатами (х1,у1) в точку (х2,у2)
LINE( x1,y1,x2,y2 )
2) Рисование прямоугольника:
RECT( x1,y1,x2,y2 )
(х1,у1) – координаты левого верхнего угла, (х2,у2) – правого нижнего угла.
3) Рисование круга с центром в точке (х0,у0) и радиусом R
CIRCLE( x0,y0,R )
4) Рисование дуги круга с центром в (x0,y0), радиусом R, начальным углом А1 и конечным А2. Угла задаются в градусах от 0 до 360, и отсчитываются по часовой стрелке. Угол 0 соответствует лучу, проведенному из центра круга вертикально вверх.
ARC( x0,y0,R,A1,A2 )
В качестве координат можно передавать целые числа, не превышающие размеров холста, встроенные функции MAX_X (возвращает размер холста по горизонтали) и MAX_Y (размер холст по вертикали), и арифметические операции между ними: + – * /. Результат деления округлять до целого.