Главная страница
Навигация по странице:

  • 16=ЕСЛИ(B16;ЕСЛИ(МАКС(B29:T29)>МАКС($A$3:$A$14);2;B16);) – управляющая ячейка, позволяющая вовремя остановить программу и не допустить ее зацикливания. B 28(: T

  • 27)) – непосредственно рабочая лента машины. B 29(: T 29)=ЕСЛИ($ D $16=2; B 29;ЕСЛИ($ D $16=1;ЕСЛИ($ C $16=2;ЕСЛИ( A

  • 11);ЕСЛИ( G 10=1;"Конечное слово";ЕСЛИ(ЕЧИСЛО(ПОИСК($ B $2; F 10;1));ЗАМЕНИТЬ( F 10;ПОИСК($ B $2; F 10;1);ДЛСТР($ B

  • $3);ЕСЛИ(ЕЧИСЛО(ПОИСК($ B $4; F 10;1));ЗАМЕНИТЬ( F 10;ПОИСК($ B $4; F 10;1);ДЛСТР($ B $4);$ C

  • Лаб 1 ИТ. Отчет Лаб 1. Лабораторная работа 1 Создание имитационных моделей абстрактных автоматов Тьюринга и Маркова средствами Excel ms office. Копылов И. О


    Скачать 274.64 Kb.
    НазваниеЛабораторная работа 1 Создание имитационных моделей абстрактных автоматов Тьюринга и Маркова средствами Excel ms office. Копылов И. О
    АнкорЛаб 1 ИТ
    Дата09.10.2019
    Размер274.64 Kb.
    Формат файлаdocx
    Имя файлаОтчет Лаб 1.docx
    ТипЛабораторная работа
    #89315
    страница2 из 2
    1   2

    B18=ЕСЛИ( D16=2;"конец";ЕСЛИ(D16;ЕСЛИ(C16=1;СУММ(B18;1);B18);"начало")) – ячейка, которая считает шаги выполнения работающей программы, до ее запуска выводит значение «начало», а по окончании действия «конец».

    C16=ЕСЛИ(D16;ЕСЛИ(C16=4;1;C16+1);1) – счетчик тактов, в каждый шаг входит 4 такта работы, на основании показаний этой ячейки изменяются значения рабочих ячеек машины.
    D16=ЕСЛИ(B16;ЕСЛИ(МАКС(B29:T29)>МАКС($A$3:$A$14);2;B16);) – управляющая ячейка, позволяющая вовремя остановить программу и не допустить ее зацикливания.
    B28(:T28)=ЕСЛИ($D$16=2;B28;ЕСЛИ($D$16;ЕСЛИ($C$16=3;B27;B28);B27)) – непосредственно рабочая лента машины.
    B29(:T29)=ЕСЛИ($D$16=2;B29;ЕСЛИ($D$16=1;ЕСЛИ($C$16=2;ЕСЛИ(A26=1;A25;ЕСЛИ(C26=-1;C25;));B29);B22)) – непосредственно головка машины.

    Рекомендации по оптимизации.

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

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

    НАМ.


    ba



    ab

    cb



    bc

    ca



    ac

    %a



    a%

    %b



    b%

    %c



    c%

    %











    %
    A={a,b,c}. Преобразовать слово Р так, чтобы сначала шли все символы а, затем - все символы b и в конце - все символы с.

    !

    Если в слове Р НАМ встречает ba, то меняет его на ab, cb на bc, ca на ac; по окончании этих преобразований НАМ добавляет в начало слова символ %, который позже переносит в конец, а там заменяет его на пустой, тем самым заканчивая программу.



    F2=ЕСЛИ($G$2;ЕСЛИ(СЧЁТЕСЛИ(F10:F40;"Конечное слово");"конец";"начало");"1--> старт") – ячейка текущего состояния программы.

    H2=ЕСЛИ(G2;ЕСЛИ(H2=100;1;H2+1);0) – счетчик шагов.

    F11(:F25)=ЕСЛИ($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);"Конечное слово")))));"") – непосредственно рабочая часть алгоритма, пошагово выполняющая изменение исходного слова в соответствии с таблицей, если в предыдущей ячейке (выше) получено конечное слово, то ячейка принимает соответствующее значение «Конечное слово».

    E11(:E25) =ЕСЛИ($H$2>=1;"шаг " & ЕСЛИ(ЕПУСТО(F11);"";СЧЁТЗ($F$11:F11));"") – показатель шагов.

    Рекомендации по оптимизации.

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

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


    написать администратору сайта