ВЫПОЛНЕНИЕ КОНТРОЛЬНЫХ ЗАДАНИЙ



Приложение к РП-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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!