14722

Таблицы решений

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа № 3. Таблицы решений Цель работы Целью работы является изучение таблиц решений и спецификация с помощью данного механизма логики вычислительных процессов. Содержание отчета Итоговым документом выполнения лабораторной работы является отчет с

Русский

2013-06-09

128 KB

16 чел.

Лабораторная работа № 3. Таблицы решений

Цель работы

Целью работы является изучение таблиц решений и спецификация с помощью данного механизма логики вычислительных процессов.

Содержание отчета

Итоговым документом выполнения лабораторной работы является отчет, состоящий из следующих пунктов.

  1.  Титульный лист.
  2.  Цель работы.
  3.  Текст задания.
  4.  Решение задачи, представленное с помощью общей таблицы.
  5.  Решение задачи, представленное с помощью оптимизированной таблицы.
  6.  Выводы.

Теоретические сведения

Таблицы решений служат для спецификации отображения комбинации условий, соответствующих исходным данным задачи, на последовательности действий, представляющих алгоритм решения задачи.

Верхняя часть таблицы решений определяет условия, в которых требуется выполнять некоторые действия. Первый  столбец  этой  части представляет собой список переменных или условий, а в каждом следующем столбце указывается комбинация значений этих условий. Нижняя часть таблицы решений определяет действия, которые требуется выполнить в той или иной ситуации, определяемой в верхней части таблицы решений. Она также состоит из нескольких строк, каждая из которых связана с каким-либо одним конкретным действием, указанным в первом поле этой строки. В остальных  полях каждой строки указывается порядок следования данного действия в процессе реакции на соответствующую комбинацию условий. Конкретные обозначения в ячейках таблицы могут быть разными, но практически наиболее часто встречаются варианты использования «+» и «-» для бинарных условий, конкретных значений для не бинарных условий и десятичных чисел для указании порядка следования действия.

Таблица

Стандартная форма таблицы решений

Условие 1

. . .

Условие 2

. . .

. . .

. . .

Условие N

. . .

Действие 1

. . .

Действие 2

. . .

. . .

. . .

Действие К

. . .

Стандартная таблица строится с помощью следующего алгоритма.

Шаг 1. Определяется количество правил (колонок) таблицы решений:

,

где  - количество альтернатив для i-го правила.

Шаг 2. В верхней части таблицы перечисляются все анализируемые  условия, в нижней – все возможные действия.

Шаг 3. Для последнего условия во всей строке таблицы проставляются альтернативные значения.

Шаг 4. Для очередного условия (снизу вверх) альтернативные значения проставляются в  соответствии с периодом чередования значений предыдущего условия.

Шаг 5. В каждой колонке  таблицы  ставится  “+”  напротив  требуемого действия.

Пример табличной спецификации логики процесса

Рассмотрим пример описания процесса с помощью таблицы решений. Предположим, что Интернет-провайдер N использует следующую дисперсию льгот на свои услуги.

  •  абоненты,  пользующиеся услугами системы более 5 лет, получают скидку 20%;
  •  абоненты, регулярно оплачивающие счета, получают скидку 10%;
  •  абоненты,  для  которых  объем  оказанных  им услуг превышает 100000, получают скидку 15%.

Таблица

Стандартная форма таблицы решений

1

2

3

4

5

6

7

8

Стаж пользования > = 5 лет

+

+

+

+

-

-

-

-

Регулярность оплаты

+

+

-

-

+

+

-

-

Объем услуг > = 100 000

+

-

+

-

+

-

+

-

45%

1

30%

1

35%

1

20%

1

25%

1

10%

1

15%

1

0%

1

В рассмотренном  примере  каждому  правилу соответствует одно и только одно действие. В некоторых случаях это может  быть  не  так. Модифицируем исходные правила определения размера скидки.  Предположим,  что пользователь со стажем более 5 лет лишается скидки на 20%  в случае, если он нерегулярно производит оплату счетов.   – модифицированная таблица решений,  правила (колонки) 3 и 7,  4 и 8  предполагают одни и те же действия. Говорят, что правила 3 и 7, 4 и 8 безразличны к значению условия 1. Такие колонки таблицы могут быть объединены.

Таблица

Модифицированная таблица решений

1

2

3

4

5

6

7

8

Стаж пользования > = 5 лет

+

+

+

+

-

-

-

-

Регулярность оплаты

+

+

-

-

+

+

-

-

Объем услуг > = 100 000

+

-

+

-

+

-

+

-

45%

1

30%

1

25%

1

10%

1

15%

1

1

0%

1

1

Объединение колонок  таблицы решений выполняется с помощью следующего алгоритма.

Шаг 1. Производится поиск пары правил (колонок) для которых:

  •  определено одно и то же действие;
  •  значения условий совпадают, за исключением одного и только одного условия, для которого значения различны.

Шаг 2. Выбранная пара правил заменяется на одно.  В строке условия, значения которого различны, ставится символ «*».

Шаг 3. Шаг 1 и Шаг 2 повторяются до тех пор, пока не будут произведены все возможные объединения.

Результат применения алгоритма приведен в  . Колонки 3 и 7, 4 и 8 объединены, в качестве значения условия, к которому правила безразличны (стаж пользования), проставлен символ «*».

Таблица

Таблица решений с объединенными колонками

1

2

3/7

4/8

5

6

Стаж пользования > = 5 лет

+

+

*

*

-

-

Регулярность оплаты

+

+

-

-

+

+

Объем услуг > = 100 000

+

-

+

-

+

-

45%

+

30%

+

25%

+

10%

+

15%

+

0%

+

Варианты заданий

  1.  Дан текстовый файл. Распечатать его, заменив символами «-» заглавные латинские символы четных строк и на символы «_» строчные русские буквы каждой 3-ей строки. В начале каждой пятой строки вывести восклицательный знак.
  2.  Дан текстовый файл. Распечатать его, заменив символы «a» на символы «@», символы «ab» на символы «$%» и символы «abc» на символы «&*#». В начале каждой второй строки вывести восклицательный знак.
  3.  Описать двуместную функцию от целочисленных аргументов. Если аргументы меньше нуля, функция возвращает ноль. При первом четном аргументе и втором нечетном аргументе функция возвращает минус один. При первом нечетном аргументе и втором четном аргументе функция возвращает минус два. Если оба аргумента нечетные и первый больше второго функция возвращает разность аргументов, если второй меньше нуля и сумму – если больше. Если оба аргумента четные и первый больше второго функция возвращает произведение аргументов, если второй меньше нуля и удвоенное произведение – если больше.
  4.  Дан текстовый файл. Распечатать его, заменив символы «c» на символы «@», символы «cd» на символы «$%» и символы «cde» на символы «&*#». В начале каждой четвертой строки вывести восклицательный знак.
  5.  Описать двуместную функцию от целочисленных аргументов. Если аргументы меньше нуля, функция возвращает ноль. При первом четном аргументе и втором нечетном аргументе функция возвращает минус один. При первом нечетном аргументе и втором четном аргументе функция возвращает минус два. Если оба аргумента нечетные и первый больше второго функция возвращает произведение аргументов, если второй меньше нуля и удвоенное произведение – если больше. Если оба аргумента четные и первый больше второго на единицу функция возвращает второй аргумент, если первый больше второго на двойку – удвоенный второй аргумент, если больше более чем на двойку – утроенный второй аргумент.
  6.  Дан текстовый файл. Распечатать его, заменив символы «s» на символы «@», символы «sb» на символы «$%». В начале четных строк вывести вопросительный знак. В начале нечетных строк производить звуковой сигнал.
  7.  Описать одноместную функцию от целочисленного аргумента. Если аргумент меньше нуля, функция возвращает ноль. При четном аргументе функция его удваивает. Нечетный аргумент функция возводит в куб. Если аргумент равен 13, функция возвращает 99. Если аргумент равен 14 – 100.
  8.  Дан текстовый файл. Распечатать его, заменив в четных строках символы «y» на символы «@», в каждой четвертой строке символы «yb» на символы «$%», в каждой шестой строке символы «ybz» на символы «$%!».
  9.  Описать работу системы выращивания культур. Для корейской моркови на 1, 3, 7 и 10-е сутки роста план выращивания предусматривает поддержание в течении 8 часов температуры 24 градуса, из них первые 8 часов с освещением, а затем понижение температуры до 18 градусов на остальное время суток. Кроме того, может потребоваться внесение удобрений в середине дня, чтобы поддержать заданное значение кислотности в 65%. В остальные дни план предусматривает выращивание без дополнительного освещения, с уровнем кислотности в 50% и температурой 20 градусов.
  10.  Дан текстовый файл. Распечатать его, заменив в четных строках символы «f» на символы «@», в каждой четвертой строке символы «ft» на символы «$%». В начале четных строк вывести знак «*».
  11.  Описать работу системы выращивания культур. Для фасоли на 3, 5, 7 и 15-е сутки роста план выращивания предусматривает поддержание в течение 16 часов температуру 23 градуса, из них первые 14 часов с освещением, а затем понижение температуры до 16 градусов на остальное время суток. Кроме того, может потребоваться внесение удобрений в середине дня, чтобы поддержать заданное значение кислотности в 70%.  В остальные дни план предусматривает выращивание без дополнительного освещения, с уровнем кислотности в 50% и температурой 20 градусов.
  12.  Дан текстовый файл. Распечатать его, заменив в нечетных строках символы «n» на символы «@», в каждой четвертой строке символы «nb» на символы «$%». В начале четных строк вывести восклицательный знак, в начале каждой четвертой строки – вопросительный знак.
  13.  Описать работу домашнего устройства управления микроклиматом. При работе в неавтоматическом режиме он держит постоянную температуру воздуха равную 20 градусов. В автоматическом режиме, выходные дни круглосуточно, а в будние дни между 20:00 и 8:00 он поддерживает постоянную температуру в 22 градуса. В будние дни между 8:00 и 20:00 сохраняет температуру 15 градусов.
  14.  Описать работу домашнего устройства управления микроклиматом. При работе в неавтоматическом режиме он держит постоянную влажность воздуха равную 50%. В автоматическом режиме, в выходные дни круглосуточно, а в будние дни между 20:00 и 8:00 он поддерживает постоянную влажность воздуха 30%. В будние дни между 8:00 и 20:00 сохраняет влажность воздуха 10%.
  15.  Дан текстовый файл. Распечатать его, заменив в нечетных строках символы «z» на символы «@», в каждой третьей строке символы «zb» на символы «$%», в каждой пятой строке символы «zbm» на символы «$%!».
  16.  Описать работу домашнего устройства управления микроклиматом. При работе в неавтоматическом режиме он держит постоянный уровень освещения равный 75%. В автоматическом режиме, в выходные дни круглосуточно, а в будние дни между 20:00 и 8:00 он поддерживает постоянный уровень освещения 70%. В будние дни между 8:00 и 20:00 сохраняет уровень освещения 5%.
  17.  Описать работу системы выращивания культур. Для баклажана на 2, 4, 6 и 9-е сутки роста план выращивания предусматривает поддержание в течении 12 часов температуры 25 градуса, из них первые 10 часов с освещением, а затем понижение температуры до 20 градусов на остальное время суток. Кроме того, может потребоваться внесение удобрений в середине дня, чтобы поддержать заданное значение кислотности в 50%.  В остальные дни план предусматривает выращивание без дополнительного освещения, с уровнем кислотности в 50% и температурой 20 градусов.
  18.  Описать двуместную функцию от целочисленных аргументов. Если аргументы меньше нуля, функция возвращает ноль. При первом четном аргументе и втором нечетном аргументе функция возвращает минус один. При первом нечетном аргументе и втором четном аргументе функция возвращает минус два. Если оба аргумента нечетные и первый больше второго функция возвращает первый аргумент, умноженный на четыре. Если оба аргумента четные и первый больше второго функция возвращает разность аргументов, если второй меньше нуля и сумму – если больше.
  19.  Описать действия робота. Если в пределах одного метра по направлению движения робота нет препятствий, робот устанавливает скорость 4 км/ч, если в пределах полуметра нет препятствий, устанавливается скорость 2.5 км/ч. При появлении препятствия происходит сканирование его размера для определения направления его объезда. Если правая часть препятствия относительно нормали движения меньше левой и справа отсутствуют новые препятствия, робот движется направо, иначе налево. При этом при изменении движения он уменьшает скорость до 1 км/ч и включает сигнал поворота.
  20.  Дан текстовый файл. Распечатать его, заменив в четных строках символы «a» на символы «@», в каждой четвертой строке символы «ab» на символы «$%». В начале четных строк вывести знак «*».
  21.  Описать действия робота. Если в пределах одного метра по направлению движения робота нет препятствий, робот устанавливает скорость 4 км/ч, если в пределах полуметра нет препятствий, устанавливается скорость 2.5 км/ч. При появлении препятствия происходит сканирование его размера для определения направления его объезда. Если правая часть препятствия относительно нормали движения меньше левой и справа отсутствуют новые препятствия, робот движется направо, иначе налево. Если и справа и слева от препятствия существуют новые препятствия, робот движется назад до  последней точки, в которой он осуществлял поворот для объезда предыдущего препятствия и пытается его обогнуть с другой стороны.
  22.  Описать двуместную функцию от целочисленных аргументов. Если аргументы меньше нуля, функция возвращает минус один. При первом четном аргументе и втором нечетном аргументе функция возвращает минус два. При первом нечетном аргументе и втором четном аргументе функция возвращает минус три. Если оба аргумента нечетные и первый больше второго функция возвращает первый аргумент, умноженный на два. Если оба аргумента четные и первый больше второго функция возвращает второй аргумент, умноженный на три.
  23.  Описать действия робота. Если в пределах одного метра по направлению движения робота нет препятствий, робот устанавливает скорость 4 км/ч, если в пределах полуметра нет препятствий, устанавливается скорость 2.5 км/ч. При появлении препятствия происходит сканирование его размера для определения направления его объезда. Если правая часть препятствия относительно нормали движения меньше левой и справа отсутствуют новые препятствия, робот движется направо, иначе налево. Если препятствие меньше 10 сантиметров по высоте, робот его перешагивает.
  24.  Описать двуместную функцию от целочисленных аргументов. Если аргументы меньше нуля, функция возвращает ноль. При первом четном аргументе и втором нечетном аргументе функция возвращает минус один. При первом нечетном аргументе и втором четном аргументе функция возвращает минус два. Если оба аргумента нечетные и первый больше второго на единицу функция возвращает второй аргумент, если первый больше второго на двойку – удвоенный второй аргумент, если больше более чем на двойку – утроенный второй аргумент. Если оба аргумента четные и первый больше второго функция возвращает разность аргументов, если второй меньше нуля и сумму – если больше.
  25.  Описать одноместную функцию от целочисленного аргумента. Если аргумент меньше нуля, функция возвращает ноль. При четном аргументе функция его утраивает. Нечетный аргумент функция возводит в куб. Если аргумент равен 10, функция возвращает 99. Если аргумент равен 11 – 100.
  26.  Описать двуместную функцию от целочисленных аргументов. Если аргументы меньше нуля, функция возвращает ноль. При первом четном аргументе и втором нечетном аргументе функция возвращает минус один. При первом нечетном аргументе и втором четном аргументе функция возвращает минус два. Если оба аргумента нечетные и первый больше второго функция возвращает первый аргумент. Если оба аргумента четные и первый больше второго функция возвращает второй аргумент.
  27.  Дан текстовый файл. Распечатать его, заменив символы «b» на символы «@», символы «bc» на символы «$%» и символы «bcd» на символы «&*#». В начале каждой третьей строки вывести восклицательный знак.
  28.  Описать двуместную функцию от целочисленных аргументов. Если аргументы меньше нуля, функция возвращает ноль. При первом четном аргументе и втором нечетном аргументе функция возвращает минус один. При первом нечетном аргументе и втором четном аргументе функция возвращает минус два. Если оба аргумента нечетные и первый больше второго функция возвращает разность аргументов, если второй меньше нуля и сумму – если больше. Если оба аргумента четные и первый больше второго функция возвращает второй аргумент, умноженный на три.
  29.  Описать одноместную функцию от целочисленного аргумента. Если аргумент меньше нуля, функция возвращает ноль. При четном аргументе функция его удваивает. Нечетный аргумент функция возводит в квадрат. Если аргумент равен 3, функция возвращает 99. Если аргумент равен 4 – 100.
  30.  Дан текстовый файл. Распечатать его, заменив символы «h» на символы «@», символы «hb» на символы «$%». В начале нечетных строк вывести вопросительный знак. В начале четных строк вывести восклицательный знак.


 

А также другие работы, которые могут Вас заинтересовать

21436. ПРЕДМЕТ ИСПОЛНЕНИЯ ОБЯЗАТЕЛЬСТВА 21.06 KB
  Особые требования предъявляются к денежным обязательствам Статья 317 ГК: они д. оплачено в рублях за исключением установленными ЦБ РФ Особо важно учитывать инфляционные процессы в тех случаях когда они направлены на содержание гражданина Статья 318 ГК: сумма выплачиваемая по ДО непосредственно на содержание гражданина возмещение вреда по договору пожизненного содержания индексируется по уровню инфляции в порядке и...
21437. ГРАЖДАНСКО-ПРАВОВАЯ ОТВЕТСТВЕННОСТЬ 22.54 KB
  В результате совершенного правонарушения должны наступать такие отрицательные последствия на правонарушителя которые в дальнейшем способны предотвращать правонарушения; в качестве таких отрицательных последствий могут выступать либо лишения личного характера арест либо лишения имущественного характера конфискация неустойка штраф возмещение убытков ЮО – это последствия совершенного правонарушения которое выражается в нежелательных для правонарушителя лишений личного...
21438. ТЕОРИЯ ПРИЧИННОЙ СВЯЗИ 16.29 KB
  Частный интерес потерпевшего в ГП состоит не в том чтобы подвергнуть нарушителя лишениям личностного характера а чтобы восполнить потери которые он понес ГПО – это всегда ответственность одного субъекта ГП перед другим субъектом ГП этим отличается от АПО Черта обусловлена тем что ГП регулирует оо в целях удовлетворения частных интересов участников этих отношений а частные интересы участников...
21439. ВИНА 20.36 KB
  Вина имеет место тогда когда из поведения лица видно что это лицо либо желало совершить правонарушение либо не проявило ту степень заботливости и осмотрительности которое требовалось от него по характеру обязательства и условиям оборота для предотвращения правонарушения Иной подход к понятию вины: Вина никакого отношения к психическим процессам не имеет Суханов Ветрянский: вина должника имеет место тогда когда он не исполняет...
21440. Понятие об устойчивости решений дифференциальных уравнений 673 KB
  Исследование на устойчивость некоторого решения Системы уравнений 1 может быть сведено к исследованию на устойчивость тривиального решения – точки покоя расположенной в начале координат. расположенной в начале координат точки покоя системы уравнений. Сформулируем условия устойчивости в применении к точке покоя . Точка покоя системы 5 устойчива в смысле Ляпунова если для каждого  можно подобрать  такое что из...
21441. Замечания по поводу классификации точек покоя 340.5 KB
  Следовательно при достаточно большом t точки траекторий начальные значения которых находятся в любой окрестности начала координат попадают в сколь угодно малую окрестность начала координат а при неограниченно приближаются к началу координат т. точки расположенные в начальный момент в окрестности начала координат при возрастании t покидают любую заданную окрестность начала координат т. Если существует дифференцируемая функция называемая функцией Ляпунова удовлетворяющая в окрестности начала координат условиям: 1 причем...
21442. Исследование на устойчивость по первому приближению 209.5 KB
  Напомним что исследование на устойчивость точки покоя системы 1 эквивалентно исследованию на устойчивость некоторого решения системы дифференциальных уравнений 2 т. при правые части системы 1 обращаются в нуль:. Будем исследовать на устойчивость точку покоя линейной системы 5 называемой системой уравнений первого приближения для системы 4. система 1 стационарна в первом приближении то исследование на...
21443. Дифференциальные уравнения с частными производными первого порядка 170 KB
  Линейным неоднородным уравнением или квазилинейным уравнением I порядка в частных производных называется уравнение вида: . 2 Это уравнение линейно относительно производных но может быть нелинейным относительно неизвестной функции Z. Если а коэффициенты Xi не зависят от z то уравнение 2 называется линейным однородным.
21444. Дифференциальные уравнения векторных линий 218 KB
  Выделим из двухпараметрического семейства векторных линий называемых характеристиками уравнения 3 или 6 предыдущей лекции PxyzQxyz=Rxyz3 6 произвольным способом однопараметрическое семейство устанавливая какуюнибудь произвольную непрерывную зависимость между параметрами С1 и С2 . Тем самым найден интеграл квазилинейного уравнения 3 предыдущей лекции зависящий от произвольной функции. Если требуется найти не произвольную векторную поверхность поля а поверхность проходящую через заданную линию...