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

Вариант 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 (размер холст по вертикали), и арифметические операции между ними: + – * /. Результат деления округлять до целого.