ВЫПОЛНЕНИЕ КОНТРОЛЬНЫХ ЗАДАНИЙ
Приложение к РП-2
ОБРАЗЕЦ
Выполнения контрольных заданий
(*) Пояснения имеют синий цвет, замечания- голубой.
После знакомства с методикой изучения курса и предварительного знакомства с материалом по пособиям [1], [2] и [3], можно приступать к выполнению контрольных заданий. Предварительно может быть определен уровень изучения курса (минимальный, стандартный или углубленный).
1) Подготовить титульный лист (на основе приложения 1, корректируя текст красного цвета).
2) Определить собственный вариант в группе и подготовить таблицу вариантов контрольных заданий .
Гр. ВД-251 Иванов П.В. (вариант 99)
Вариант | Контрольные задания | |||||||||
м | м | м | с | м | у | м | с | у | м | |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
99 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
( Уровень = М + С + У )
(*) Если вы не выполняете некоторые задания, то рекомендуется заполнить соответствующие клеточки серой заливкой.
3) Подготовить условия контрольных заданий, включающих для каждого задания:
a) общий текст задания,
b) конкретизацию задания согласно варианту (строка из таблицы),
c) исходные данные к заданию из соответствующего приложения (если необходимо).
(*) Далее взят условный вариант, не соответствующий ни одному из реальных, но вполне удовлетворяющий общим требованиям к контрольным заданиям
Условия контрольных заданий (вар.99)
КЗ-1 (м) Задано описание синтаксиса языка программирования Алгол-60 в виде БНФ (Прилож.1).
|
|
Требуется для заданной конструкции (с учетом ограничений) привести пример представления и дать описание: a) в виде СД , б) в виде РБНФ.
№ | Заданная конструкция | Ограничения |
0 | <именующее выражение>.75 | не раскрывать: <метка>, <индексное выражение>, <логическое выражение> |
Фрагмент описания (понятия, которые не требуется раскрывать – подчеркнуты)
75 <именующее выражение> ::= <простое именующее выражение>.76 | <условие>.52 <простое именующее выражение>.76 else <именующее выражение>.75
76 <простое именующее выражение> ::= <метка>.79 | <указатель переключателя>.77 | (<именующее выражение>.75 )
77 <указатель переключателя> ::= <идентификатор переключателя> 78 [ <индексное выражение>.85 ]
78 < идентификатор переключателя> ::= <идентификатор>.99
---------
52 <условие> ::= if <логическое выражение>.65 then
---------
99 <идентификатор> ::= <буква>.102 | <идентификатор>.99 <буква>.102 | <идентификатор>.99 <цифра>.101
---------
101 <цифра> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
102 <буква> ::= a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T |U | V | W | X | Y | Z
|
|
(*) Если вы собираетесь копировать правила из приложения (они там представлены нумерованным списком), то переносить их нужно непрерывными фрагментами и исправлять начальный номер в списке. Можно также после переноса отказаться от списка, а затем в соответствующих строках добавить номера правил.
КЗ-2. (м)Задано описание синтаксиса языка программирования Модула-2 в виде РБНФ (Прилож. 2).
Требуется для заданной конструкции (с учетом ограничений) привести пример представления и дать описание: a) в виде СД, б) в виде БНФ.
№ | Заданная конструкция | Ограничения |
0 | Условный_Оператор_42 | Ограничить: Выражение = Простое_Выражение Отношение Простое_Выражение не раскрывать: Оператор, Простое_Выражение |
Фрагмент описания (понятия, которые не требуется раскрывать – подчеркнуты)
42 УсловнОператор = IF Выражение_52 THEN ПослОператоров_36 { ELSIF Выражение_52 THEN ПослОператоров_36 } [ ELSE ПослОператоров_36 ] END .
-------
36 ПослОператоров = Оператор_37 { ";" Оператор_37 } .
-------
52 Выражение = ПростоеВыражение_54 Отношение_53 ПростоеВыражение_54 . {ограничено}
53 Отношение = "=" | "#" | "<" | ">" | "<=" | ">=" | IN .
|
|
КЗ-3. (м) Задано описание синтаксиса языка программирования Паскаль в виде СД (Прилож.3).
Требуется для заданной конструкции (с учетом ограничений) привести пример представления и дать описание:
a) в виде РБНФ , б) в виде БНФ.
№ | Заданная конструкция | Ограничения |
0 | Множитель / Множество | не раскрывать: Выражение |
КЗ-4. (с) Задано описание синтаксиса языка программирования ADA в виде РБНФ (Прилож.4).
Требуется для заданной конструкции (с учетом ограничений) привести пример представления и записать её грамматику (вспомогательные понятия должны быть исключены) :
№ | Конструкция | Ограничения |
0 | раздел_вариантов_67 | ограничить: 1) выбор = простое_выражение | дискретный_диапазон 2) дискретный_диапазон = диапазон не раскрывать: идентификатор, список_компонент, простое_выражение |
Фрагмент описания (понятия, которые не требуется раскрывать – подчеркнуты)
67 раздел_вариантов ::= CASE простое_имя_дискриминанта_76 IS вариант_68 {вариант_68 } END CASE ";"
68 вариант ::= WHEN выбор_69 { "|" выбор_69 } "=>" список_компонент_60
69 выбор ::= простое_выражение_143 | дискретный_диапазон_58 {ограничено}
|
|
-------
76 простое_имя_дискриминанта ::= идентификатор_179
-------
58 дискретный_диапазон ::= диапазон_42 {ограничено}
--------
42 диапазон ::= простое_выражение_143 ".." простое_выражение_143
КЗ-5. (м) Задана грамматика простого языка программирования (Прилож.5).
Требуется построить простой вывод некоторого представления заданной конструкции.
№ | Нач. символ | Что должно быть выведено |
0 | <PE> | Переменная с (двумя) индексами |
КЗ-6. (у) Для выражений кратко определены форма операндов и набор операций с указанием их приоритета (по возрастанию).
Требуется :
a) привести пример выражения и составить грамматику таких выражений,
б) найти направляющие символы грамматики (при необходимости преобразовать к LL(1)-грамматике) .
№ | Операции | Пояснения |
0 | 1) + – 2) * / 3) ^ 4) shl shr | целые (со знаком) операнды арифметические операции (+, – , * , / , ^ - возв.в степень), операции арифметического сдвига (shift) : (shl – сдвиг влево, shr – сдвиг вправо) |
КЗ-7. (м) Задана LL(1)-грамматика составного оператора (Прилож.6).
Требуется построить детерминированный вывод заданного предложения (предварительно записав во внутреннем представлении):
№ | Конструкция | Начальный символ |
0 | 50 : A:=0; if x > 0 then B:= C + 1 end | <SOP> |
КЗ-8. (с) Задана LL(1)-грамматика составного оператора с включенными действиями (Прилож.7).
Требуетсядля заданной конструкции построить вывод в грамматике, а затем по конструкции со “вставленными” действиями построить МИ с изображением рабочего стека и кратко прокомментировать полученные результаты.
№ | Конструкция | Hачальный символ |
0 | A, B, C = 1 + D * ( X – 5 ) ^ 2 | <NOP> |
КЗ-9. (у) Разработать фрагмент управляющей таблицы СА для нескольких правил грамматики (Прилож.7), заданных ниже, для двух вариантов реализации анализатора
а) на основе МП-автомата, б) с неявным построением шагов вывода.
№ | a) Управл. таблица МП - автомата | б) Управл. таблица по грамматике |
0 | прав. 24 – 27 | прав. 24 – 27 |
Фрагмент грамматики
№ | Правила грамматики | Направляющие символы |
. . . | . . . | . . . |
24 | <W> ® <S> <PW> | ID CN ( |
25 26 27 | <PW> ® + <S> [2] <PW> ® – <S> [3] <PW> ® e | + – ) ] < > = then do end else ; |
28 | <S> ® <M> <PS> | ID CN ( |
КЗ-10. (м) Найти и записатьзначение вектора прерывания с заданным номером по образу памяти (Прилож.8).
№ | 0 |
Вектор | 17h |
Фрагмент образа памяти
Адрес Seg:Offs | Байты параграфа _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F |
0000:0000 0000:0010 0000:0020 0000:0030 0000:0040 0000:0050 0000:0060 0000:0070 0000:0080 0000:0090 0000:00A0 0000:00B0 0000:00C0 0000:00D0 0000:00E0 0000:00F0 | 9E 0F C9 00 65 04 70 00 16 00 ED 09 65 04 70 00 65 04 70 00 A0 0C 00 00 D0 A0 0E B0 0E E8 00 F0 83 01 5A 0F 66 05 70 0E 6F EF 00 F0 6F EF 00 F0 6F EF 00 F0 6F EF 00 F0 9A 00 ED 09 65 04 70 00 19 08 5D 02 4D F8 00 F0 41 F8 00 F0 BF 05 70 0E 39 E7 00 F0 40 02 17 02 D7 05 70 0E 28 0A 1E 05 A4 E7 00 F0 2F 00 AE 0A 6E FE 00 F0 04 06 1E 05 53 FF 00 F0 A4 F0 00 F0 22 05 00 00 1C 61 00 C0 A8 0F C9 00 3C 06 70 0E A1 01 E8 0B 6D 01 E8 0B 78 01 E8 0B BC 0F C9 00 C6 0F C9 00 D0 0F C9 00 C5 01 5A 0F 66 04 70 00 6C 10 C9 00 6C 10 C9 00 6C 10 C9 00 6C 10 C9 00 62 01 E8 0B CC 01 E9 0B EA E4 0F C9 00 E8 00 F0 6C 10 C9 00 6C 10 C9 00 6C 10 C9 00 6C 10 C9 00 6C 10 C9 00 6C 10 C9 00 6C 10 C9 00 6C 10 C9 00 6C 10 C9 00 6C 10 C9 00 6C 10 C9 00 6C 10 C9 00 6C 10 C9 00 6C 10 C9 00 |
КЗ-11. (с) Снятьс помощью программы DiskEdit.exe (из любой версии Norton Utilities) c компьютера, на котором вы работаете, таблицу разделов ЖД (Partition Table) и, возможно, дополнительные PT для расширенного раздела. На их основе определить объемы разделов компьютера в байтах, Кб, Мб и Гб.
Краткая характеристика компьютера (просьба привести для статистики)
Монитор – SyncMaster 757NF,
Процессор – Intel Pentium-4 2400 МГц,
M/B – GigaByte GA-8PEМТ4 (chipset 845PE),
VideoCard – NVIDIA GeForce4 MX 440 (64 Мбайт),
RAM – DDR 2700 (512 Мбайт),
CD ROM – Sony CD-RW CRX210E1.
ЖД – Matrox 6Y060L0 (60 Гбайт),
разбит на разделы
C: - системный с установленной Windows 98se (Fat-32),
D: - системный с установленной Windows XP (NTFS),
E: - архивный (NTFS).
4) Подготовив файл с титульным листом и условиями контрольных заданий, можно приступать к разделу “Выполнение контрольных заданий”. Указывается номер задания и его выполнение с краткими пояснениями (задания могут выполняться в рукописном виде).
ВЫПОЛНЕНИЕ КОНТРОЛЬНЫХ ЗАДАНИЙ
КЗ-1(м)
Сначала представим конструкцию “именующее выражение”, описанную БНФ. Из правила 75 с учетом 52 ясно, что оно может быть простым или условным, когда в зависимости от значения <логического выражения> выбирается одно из двух: (then) “простое именующее выражение” или (else) “именующее выражение”. “Простое именующее выражение” это “метка”, элемент переключателя (массива меток) или общего вида “именующее выражение” в скобках. Кроме того, необходимо дать описание идентификатора, но это элементарно.
Пример представления
if <логическое выражение> then <метка> else MassivMetok [ <индексное выражение>]
A) СД
б) РБНФ
ИменующееВыражение = { if ЛогичВыражение then ПростоеИменВыражение else } ПростоеИменВыражение .
(*) Такая запись очевидна, если по СД записать несколько постепенно усложняющихся “Именующих Выражений”
ПростоеИменВыражение = Метка | Идентификатор “[” ИндексВыражение “]” | “(” ИменующееВыражение “)”.
__________________________________________________________________________________________________
КЗ-2 (м)
(*) Описание в РБНФ достаточно четко показывает структуру конструкции и обычно не требует каких-то пояснений. Заметим только, что в БНФ всегда больше промежуточных понятий, чем в РБНФ. В примере можно дать несколько представлений конструкции, отражающих наиболее сложные элементы.
Пример представления
IF Выражение THEN ПослОператоров END
IF Выражение THEN ПослОператоров ELSE ПослОператоров END
IF Выражение THEN ПослОператоров ELSIF Выражение THEN ПослОператоров ELSE ПослОператоров END
А) БНФ
<условный оператор> ::= IF <выражение> THEN <последовательность операторов> <возможные внутренние ветви> <ветвь ELSE> END
<возможные внутренние ветви> ::= пусто | ELSIF <выражение> THEN <последовательность операторов> <возможные внутренние ветви>
<ветвь ELSE> ::= пусто | ELSE <последовательность операторов>
<последовательность операторов> ::= <оператор> | <последовательность операторов> ; <оператор>
<выражение> ::= <простое выражение> <отношение> <простое выражение>
<отношение> ::= = | # | < | > | <= | >= | IN
б) СД
___________________________________________________________________________________________________________________________
КЗ-3 (м)
(*) Описание в виде СД показывает структуру конструкции не хуже РБНФ, при записи её в БНФ придется вводить промежуточные понятия.
А) РБНФ
Множество = “[“ [ Выражение [ “..” Выражение ] {“,” Выражение [ “..” Выражение } ] “]”.
Б) БНФ
<множество> ::= [ <перечисление элементов> ]
<перечисление элементов> ::= пусто | <список элементов>
<список элементов> ::= <элемент> | <список элементов> , <элемент>
<элемент> ::= <выражение> | <выражение> . . <выражение>
КЗ-4 (с)
Пример представления
CASE идентификатор IS
WHEN прост_выраж | прост_выраж => список_компонент
WHEN прост_выраж . . прост_выраж | прост_выраж . . прост_выраж | прост_выраж => список_компонент
END CASE ;
Грамматика
1. <RV> → case ID is <PVR> end case ; где:
2. <PVR> → <VR> <PPVr> <PVR> - последовательность вариантов
3. <PPVr> → <VR> <PPVr> <PPVr> - продолжение последовательности вариантов
4. → ε <VR> - вариант
5. <VR> → when <SVB> => <SKM> <SVB> - список выбора
6. <SVB> → <VB> <PSVb> <SKM> - список компонент
7. <PSVb> → | <VB> <PSVb> <VB> - выбор
8. → ε <PSVb> - продолжение списка выбора
9. <VB> → <PW> <PW> - простое выражение
10. → <PW> . . <PW> _________________________________________________________________________________________________
КЗ-5 (м)
(*) Простой вывод – это последовательная замена понятий (НТ-символов) их определениями (правыми частями правил) до тех пор, пока не останется символов для замены. На шаге вывода заменяется один символ и правило для замены (если возможно использование нескольких) выбирается произвольно. Но в данном случае нужно получить некоторую определенную (в общем) конструкцию.
Дата добавления: 2018-04-05; просмотров: 300; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!