Изменять положения ячеек после ввода управляющих формул и условного форматирования недопустимо.



 

2. Создать имитационную модель нормального алгоритма Маркова (НАМ).

2.1. Выбираем задачу:

Дан алфавит А={a,b}. Требуется приписать символ “a” к концу слова Р.

Например: bbab →bbaba

Решение этой задачи рассмотрено в примере 4 теоретической части (см. выше).

По условиям задачи слово может быть любой размерности в пределах ограничения

ячейки Excel (обычно до 256 символов).

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

Сама задача решена, то есть составлен список формул подстановки нормального алгоритма Маркова (НАМ).

 Нам осталось создать имитационную модель с помощью программы Excel.

Сложность реализации будет заключаться в отказе от встроенного языка программирования VBA.Поставленную задачу необходимо реализовать с помощью встроенных функций и условного форматирования ячеек электронной таблицы Excel Microsoft Office.

Но даже ограниченные средства реализации позволяют построить действующую имитационную модель НАМ.

2.2. Составляем текстовый алгоритм выполнения задачи по шагам:

1. Начальное положение программы “0” →вводим исходное слово заполняем таблицу формул подстановки (последовательность формул не менять , иначе измениться алгоритм).

2. Запускаем программу →положение программы “1”.

3. Проверяем вхождение (совпадение) левой части первой формулы подстановки и какой-то части исходного слова (а может быть и всего слова). Проверка осуществляется в исходном слове слева направо до момента первого совпадения (таких совпадений может быть несколько или ни одного, но нас интересует пока только первое совпадение).

4. Если нет совпадений в первой формуле , тогда переходим ко второй формуле подстановки.

5.  Если ни одна формула подстановки не подошла, тогда останов и вывод конечного слова.

6. Если есть совпадение, тогда заменяем левую часть использованной формулы на правую часть этой же формулы в исходном слове (всю правую часть на всю левую независимо от количества символов). Возможно подстановка “пустоты”, то есть отсутствия левой и/или правой части, что равносильно удалению символов (если правая часть  “пустота”) или вставке новых символов (если левая часть-“пустота”).

7. Если было совпадение, тогда проверяем маркер останова у использованной формулы подстановки в таблице НАМ - если есть (символ “!”), тогда останавливаем программу и выводим конечное слово, если нет (“символ пустота”), тогда продолжаем программу алгоритма подстановки.

8. Проверяем совпадение, начиная опять с первой формулы в модифицированном слове (результат от предыдущего шага подстановки).

9.  Если нет совпадений в первой формуле, тогда переходим ко второй формуле подстановки.

10.  Если ни одна формула подстановки не подошла, тогда останов и выводим конечное слово.

11. Если есть совпадение, тогда заменяем левую часть использованной формулы на правую часть этой же формулы в исходном слове (всю правую часть на всю левую независимо от количества символов). Возможно подстановка “пустоты”, то есть отсутствия левой и/или правой части, что равносильно удалению символов (если правая часть  “пустота”) или вставке новых символов (если левая часть-“пустота”).

12. Если было совпадение, тогда проверяем маркер останова у использованной формулы подстановки в таблице НАМ - если есть (символ “!”), тогда останавливаем программу и выводим конечное слово, если нет (“символ пустота”), тогда продолжаем программу алгоритма подстановки.

13. Повторяем пункты 8-12 до полного останова (нет ни одного совпадения в модифицированном слове).

Внимание! Каждая новая проверка начинается с первой формулы подстановки (так требует алгоритм НАМ).

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

1.3 Определимся (ориентировочно) с  информационными ячейками на листе Excel и добавим управляющие формулы. Должно быть следующее:


1. Оформить таблицу формул алгоритма (рис 17).

В столбике Номер(адреса A1÷A5) пересчитать построчно, начиная с 1 ,все номера используемых формул .

В столбике Левая часть (адреса B1÷B5) указать левые части используемых формул по мере их использования (порядок важен).

В столбике Правая часть (адреса C1÷C5) указать правые части используемых формул , соответствующих левым частям.

 В столбике Маркер останова (адреса D1÷D5) останова указать символ “!”, если формула после выполнения должна остановиться (может быть несколько маркеров или не одного).

 Для других задач количество строк (формул) может быть больше или меньше. Поэтому для других задач необходимо таблицу откорректировать.

 

2. Оформить вспомогательную таблицу запуска программы.

Ячейка F1-содержимое “ запуск программы

Ячейка G1-содержимое “ старт

Ячейка G2-содержимое “0” (при запуске программы оно меняется вручную на 1)

Ячейка H1-содержимое “ шаг

Ячейка F2(информационная(начало,конец))-содержимое

=ЕСЛИ($G$2;ЕСЛИ(СЧЁТЕСЛИ(F10:F40;"Конечное слово");"конец";"начало");"'' 1→старт''")

Блок-схема действия формулы представлена на рисунке 18:

 

Ячейка H2-содержимое

 =ЕСЛИ(G2;ЕСЛИ(H2=100;1;H2+1);0)

Блок-схема действия формулы представлена на рисунке 19:

 

 Ячейка F2-(информационная (начало,конец))

Первое правило→Условное форматирование→ Использовать формулу для форматируемых ячеек

 =$F$2=”начало”

и выбрать цвет и шрифт (цвет желтый и шрифт по умолчанию ) ,

в графе Применяется к добавить

=$F$2

Второе правило→Условное форматирование→Использовать формулу для форматируемых ячеек →набрать формулу =$F$2=”конец”

и выбрать цвет и шрифт (у нас цвет красный и шрифт по умолчанию ) , а также в графе Применяется к добавить

=$F$2

3. Создаем таблицу исходной задачи.

Создается таблица на любом пустом месте листа Excel в виде двух столбиков (Задано слово и Получить слово).

В единственной строке указываем данные задачи (у нас bbab и bbaba).

 4. Оформляем таблицу решений.

Ячейка F9-содержимое “Исходное слово

Ячейка G9-содержимое “Метка останова

Ячейка F10-содержимое “bbab

 Ячейка G10-содержимое “0

Ячейка F11-


Блок-схема действия формулы представлена на рисунке 20:

 

содержимое  F11

=ЕСЛИ($H$2>=СЧЁТЗ($F$11:F11);ЕСЛИ(G10=1;"Конечное слово";ЕСЛИ(ЕЧИСЛО(ПОИСК($B$2;F10;1));ЗАМЕНИТЬ(F10;ПОИСК($B$2;F10;1);ДЛСТР($B$2);$C$2);ЕСЛИ(ЕЧИСЛО(ПОИСК($B$3;F10;1));ЗАМЕНИТЬ(F10;ПОИСК($B$3;F10;1);ДЛСТР($B$3);$C$3);ЕСЛИ(ЕЧИСЛО(ПОИСК($B$4;F10;1));ЗАМЕНИТЬ(F10;ПОИСК($B$4;F10;1);ДЛСТР($B$4);$C$4);ЕСЛИ(ЕЧИСЛО(ПОИСК($B$5;F10;1));ЗАМЕНИТЬ(F10;ПОИСК($B$5;F10;1);ДЛСТР($B$5);$C$5);"стоп")))));"")

 

Необходимо повторить с некоторыми изменениями содержание этой ячейки в ячейках F12-F18 (воспользоваться приемом Excel “протаскивание”).

Необходимо помнить, что адреса ячеек со знаками $  не меняются от протаскивания.

Ячейка G11(метка останова на шаге)-содержимое

=ЕСЛИ(F11="Конечное слово";1;ЕСЛИ(ЕЧИСЛО(ПОИСК($B$2;F10;1));ЕСЛИ(И(ЕЧИСЛО(ПОИСК($B$2;F10;1));ЕТЕКСТ($D$2));1;0);ЕСЛИ(ЕЧИСЛО(ПОИСК($B$3;F10;1));ЕСЛИ(И(ЕЧИСЛО(ПОИСК($B$3;F10;1));ЕТЕКСТ($D$3));1;0);ЕСЛИ(ЕЧИСЛО(ПОИСК($B$4;F10;1));ЕСЛИ(И(ЕЧИСЛО(ПОИСК($B$4;F10;1));ЕТЕКСТ($D$4));1;0);ЕСЛИ(ЕЧИСЛО(ПОИСК($B$5;F10;1));ЕСЛИ(И(ЕЧИСЛО(ПОИСК($B$5;F10;1));ЕТЕКСТ($D$5));1;0);0)))))


Блок-схема действия формулы представлена на рисунке 21:

Заполняем ячейки методом протаскивания для G11÷G18 .

Ячейка E11(шаг с номером)-содержимое

=ЕСЛИ($H$2>=1;"шаг " & ЕСЛИ(ЕПУСТО(F11);"";СЧЁТЗ($F$11:F11));"")

Блок-схема действия формулы представлена на рисунке 22:


Заполняем ячейки методом протаскивания для  E11÷E18.

Для ячеек F11÷F18 применим условное форматирование цветом и шрифтом.

Условное форматирование→Использовать формулу для форматируемых ячеек

=$F$11=”Конечное слово”

и выбрать цвет и шрифт (цвет красный и шрифт по умолчанию ) ,

в графе Применяется к добавить

 =$F$11:$F$18)

Ячейки G9÷G18 сделать невидимыми для пользователя(это служебная информация для самой программы)→ Формат ячеекЦвет→установить “Белый” (они сольются с фоном ячеек)→Enter.

5. Запускаем программу вводом в ячейку G2 цифры “1” и нажатием клавиши Enter. В соседней ячейке H2 появиться цифра 1 (выполниться первый цикл итераций).

Для продолжения шагов необходимо нажимать многократно клавишу F9 в верхней части клавиатуры компьютера .

Если при оформлении модели программа Excel выдаст предупреждение и недопустимых циклических ссылках, необходимо в Главное меню→Параметры→Формулы→Включить итерационные вычисления (установить шаг итерации 1 (за одно нажатие клавиши F9 будет совершаться один шаг)).

 

 

Ход работы.


Дата добавления: 2018-08-06; просмотров: 382; Мы поможем в написании вашей работы!

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






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