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

13

Задания на курсовую работу «Системное ПО» 2010 год

Вариант 1 Разработка транслятора языка программирования midi- файлов

Программа получает на вход файл с текстом программы на языке программирования MIDI-файлов. Если в тексте программы нет грамматических, синтаксических и смысловых ошибок, компилятор генерирует MIDI-потока как на выходе секвенсора (MID-файл).

Структура программы состоит из двух секций:

<Секция настроек>

<Тело программы>

Секция настроек содержит команды задания скорости звучания и программирование аккордов:

1) задание скорости звучания (метроном).

bpm = число_ударов_в_минуту

Длительность четвертной ноты – 1 секунда. На одну секунду приходится bpm/60 ударов.

2) задание аккордов

ИмяАккорда<ноты через запятую>

Имя аккорда может содержать латинские буквы и цифры, должно начинаться всегда с большой буквы.

Ноты обозначаются малыми латинскими буквами:

c – до; d – ре; e – ми; f – фа; g – соль; a – ля; b – си.

Производные нот обозначаются только диезами #. Октавы обозначаются по номерам: 1–большая октава, 2– малая октава, 3 – первая октава, 4 – вторая октава, 5 – третья октава, 6 – четвертая октава, и т.д. до 8.

При обозначении нот после имени ноты ставится диез и номер октавы. Например, До первой октавы обозначается c3, ля-бемоль второй октавы – g#4. Громкость (динамика) нот при нажатии не учитывается.

В аккорде может быть до 8 одновременно нажатых нот.

Тело программы состоит из отдельных партий инструментов, исполняемых последовательно друг за другом. Партия записывается так:

НомерКанала–ИмяИнструмента{ последовательность нот и аккордов }

Номер канала от 0 до 15. Имя инструмента – стандартное

Последовательность нот и аккордов представляет собой запись имен нот, аккордов и пауз, разделенных пробелами.

Обозначение нот см. в п.2, обозначение аккордов – имена аккордов, определенных в секции настроек. После каждой ноты или аккорда задается длительность звучания: одна восьмая ♪ – никак не обзначается (по умолчанию), четвертная – тире (-), половина – равенство (=), целая – два равенства (==). Пауза обозначаются буквой Р, за которой указывается длительность.

Например, песенка про Чижика-пыжика будет записана так:

1-piano{ c3 c3 d3 d3 e3 e3 f3- e3 e3 d3 d3 c3 c3 c3-}

Внутри последовательности нот и аккордов, составляющих партию инструмента, допускается использовать неименованные аккорды вида: < ноты через запятую длительность. И секции, для многократного повторения предыдущего фрагмента:

{ последовательность нот и аккордов }:число_повторений

Песенку про чижика можно переписать так:

1-piano{ {c3}:2 {d3}:2 {e3}:2 f3- {e3}:2 {d3}:2 {c3}:2 c3-}

В тексте программы допускаются комментарии от // до конца строки.

Вариант 2

Разработка программы

"Калькулятор скобочных арифметических выражений"

Программа получает на вход строку с арифметическим выражением. Операндами выражения являются вещественные числа и целые числа. Запись целых чисел допускается в десятичной, 16-ричной или двоичной системах счисления. Запись вещественных чисел допускается в формате с фиксированной запятой (например 12.34) и в экспоненциальной форме (например, 0.1234е+2).

В выражении могут быть использованы операции:

унарные: унарный минус, модуль числа;

бинарные: +, – , *, / (частное), % (остаток от целочисленного деления), ^ (возведение в степень)

Очередность операций может регулироваться скобками ( ).

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

Например, 1) на вход передана строка "–12.5*(2Fh+1001b)", результат вычислений "–700".

2) на вход передана строка "56.3h+–8", сообщения об ошибках: а) недопустимый формат шестнадцатеричного числа "56.3h"; б) после знака "+" должно стоять число или "(".