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

Решение

С огласно условиям, шар, начав с левой нижней клетки, дальше может двигаться вокруг центральной клетки против часовой стрелки и может остановиться в левой нижней клетке. Перенумеруем против часовой стрелки все клетки (кроме центральной), начиная с левой нижней. Построим конечный автомат с состояниями S1,S2, …, S8. Состояние Si соответствует положению шара в i-й клетке. Дуга из Si в Si+1 помечается подходящей буквой из алфавита {a,b,c,d}. Например, переход из S1 в S2 осуществляется по команде ’a’, и соответствующая дуга помечается символом ’a’. Начальным является состояние S1. Оно же является и заключительным состоянием. По конечному автомату построим праволинейную автоматную грамматику c начальным символом S1:

S1 aS2 | 

S2 aS3

S3 сS4

…

S8 dS1

Можно построить эквивалентную регулярную грамматику с начальным символом S, состоящую всего из двух правил:

S aaccbbddS | 

КРИТЕРИИ: не допускается : -2, за недопуск любой другой правильной цепочки или за допуск каждой лишней цепочки: -5. Нерегулярная грамматика: -10

8. Является ли верификация частью отладки ? Ответ обосновать.

Ответ: Нет. Верификация – это процесс проверки программы на правильность, в частности – обнаружение дефектов в программе, а отладка – это поиск причин и устранение уже обнаруженных дефектов.

КРИТЕРИИ:

Нет обоснования, но ответ верно угадан: 1 балл

За отсутствие или ошибочность определения верификации: -5

За отсутствие или ошибочность определения отладки: -5

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

Ответ:

  1. Постановка задачи. Анализ (определение) требований.

Реультаты: Тексты на естественном языке, формализованные описания.

  1. Проектирование.

Результаты: Схема иерархии подсистем, спецификации подсистем (функциональность и интерфейсы); алгоритмы и внутреннее представление данных для каждого отдельного модуля.

  1. Написание текста программ (программирование, “кодирование”)

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

  1. Компоновка или интеграция программного комплекса.

Реультаты: Единая система ПО.

  1. Верификация, тестирование и отладка

Реультаты: ПО без обнаруженных дефектов.

  1. Документирование

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

КРИТЕРИИ:

За отсутствие/ошибочность каждого из пунктов: -2

Если ошибочны или отсутствуют только результаты в пункте: -1

10. Дана польская инверсная запись фрагмента программы, в котором нет операторов перехода goto и break, но есть один оператор continue. Вставить пропущенные в польской записи команды перехода (’!’,’!F’) и недостающие метки; восстановить фрагмент на языке Си. (Красным выделены пропущенные клетки ).

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

x

0

<

34

!F

y

0

!=

28

!F

x

#+

;

y

#

;

x

1

+

0

==

26

!F

24

25

26

27

28

29

30

31

32

33

34

1

!

32

!

x

y

=

;

1

!

Ответ: while (x<0)

if (y!=0) { x++; --y; if (x+1==0) continue; }

else x=y;

План решения:

1) Расставляем знаки операций ’!’ и ’!F’, исходя из следующих соображений:

если перед пропущенным местом стоит логическое выражение и нет операции ’;’, то переход условный, иначе — безусловный.

2) Расставляем метки, учитывая, что при трансляции управляющих конструкций языка Си:

(а) переходы по лжи возможны только вперед;

(б) безусловные переходы назад (кроме явных goto) возможны только в циклах.

КРИТЕРИИ: Есть ошибки в ПОЛИЗЕ: -5

Есть ошибки в восстановленном фрагменте: -5

Если без ошибок только операции перехода расставлены, даем 2 балла за задачу.