当前位置: 首页>>代码示例>>C++>>正文


C++ Controller::Run方法代码示例

本文整理汇总了C++中Controller::Run方法的典型用法代码示例。如果您正苦于以下问题:C++ Controller::Run方法的具体用法?C++ Controller::Run怎么用?C++ Controller::Run使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Controller的用法示例。


在下文中一共展示了Controller::Run方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: BitwiseFlip

// 按位取反
void BitwiseFlip(Tape &t)
{
    Controller c;

    // 如果这里看到的是0,那么S1将写1;
    // 如果这里看到的是1,那么S2将写0。
    c.AddRule(0, '0', 1, ' ', 'R');
    c.AddRule(0, '1', 2, ' ', 'R');
    c.AddRule(0, '$', 4, '$', 'S');

    c.AddRule(1, '0', 1, '0', 'R');
    c.AddRule(1, '1', 1, '1', 'R');
    c.AddRule(1, ' ', 3, '1', 'L');
    c.AddRule(1, '$', 1, '$', 'R');

    c.AddRule(2, '0', 2, '0', 'R');
    c.AddRule(2, '1', 2, '1', 'R');
    c.AddRule(2, ' ', 3, '0', 'L');
    c.AddRule(2, '$', 2, '$', 'R');

    // 往回移到数字开头。
    c.AddRule(3, '0', 3, '0', 'L');
    c.AddRule(3, '1', 3, '1', 'L');
    c.AddRule(3, ' ', 0, ' ', 'R');
    c.AddRule(3, '$', 3, '$', 'L');

    c.MarkFinal(4);

    c.Run(t, true);
}
开发者ID:lewischeng-ms,项目名称:misc,代码行数:31,代码来源:turing.cpp

示例2: ZeroOneString

// 打印交错01串
void ZeroOneString(Tape &t)
{
    Controller c;

    c.AddRule(0, ' ', 1, '0', 'R');
    c.AddRule(1, ' ', 0, '1', 'R');

    c.Run(t, true);
}
开发者ID:lewischeng-ms,项目名称:misc,代码行数:10,代码来源:turing.cpp

示例3: Counter

// 计数
void Counter(Tape &t)
{
    Controller c;

    c.AddRule(0, '0', 0, '0', 'R');
    c.AddRule(0, '1', 0, '1', 'R');
    c.AddRule(0, ' ', 1, ' ', 'L');
    c.AddRule(1, '0', 0, '1', 'R');
    c.AddRule(1, '1', 1, '0', 'L');
    c.AddRule(1, ' ', 0, '1', 'R');

    c.Run(t, true);
}
开发者ID:lewischeng-ms,项目名称:misc,代码行数:14,代码来源:turing.cpp

示例4: Less

// a<=b?
// 必须同等长度
void Less(Tape &t)
{
    Controller c;

    // 若第一位为0,则去(a)
    // 若第一位为1,则去(b)
    c.AddRule(0, '0', 1, ' ', 'R');
    c.AddRule(0, '1', 4, ' ', 'R');
    c.AddRule(0, '$', 6, ' ', 'R'); // 等于最后也写0

    // (a) 若0,把第二个数的第一位改成$;若1,则确定小于
    c.AddRule(1, '0', 1, '0', 'R');
    c.AddRule(1, '1', 1, '1', 'R');
    c.AddRule(1, '$', 2, '$', 'R');
    c.AddRule(2, '$', 2, '$', 'R');
    c.AddRule(2, '0', 3, '$', 'L');
    c.AddRule(2, '1', 9, ' ', 'R');

    // 移回第一个数开头。
    c.AddRule(3, '0', 3, '0', 'L');
    c.AddRule(3, '1', 3, '1', 'L');
    c.AddRule(3, '$', 3, '$', 'L');
    c.AddRule(3, ' ', 0, ' ', 'R');

    // (b) 如果第二个数的第一位是1继续比较;如果是0,那确定大于
    c.AddRule(4, '0', 4, '0', 'R');
    c.AddRule(4, '1', 4, '1', 'R');
    c.AddRule(4, '$', 5, '$', 'R');
    c.AddRule(5, '$', 5, '$', 'R');
    c.AddRule(5, '0', 6, ' ', 'R');
    c.AddRule(5, '1', 3, '$', 'L');

    // 最后写0
    c.AddRule(6, '0', 6, ' ', 'R');
    c.AddRule(6, '1', 6, ' ', 'R');
    c.AddRule(6, '$', 6, ' ', 'R');
    c.AddRule(6, ' ', 7, '0', 'R');

    // 最后写1
    c.AddRule(9, '0', 9, ' ', 'R');
    c.AddRule(9, '1', 9, ' ', 'R');
    c.AddRule(9, '$', 9, ' ', 'R');
    c.AddRule(9, ' ', 7, '1', 'R');

    //c.AddRule(7, ' ', 8, '$', 'L');
    c.MarkFinal(7);

    c.Run(t, true);
}
开发者ID:lewischeng-ms,项目名称:misc,代码行数:51,代码来源:turing.cpp

示例5: main

int main()
{
    Controller ctrl;
    ctrl.Run();
    return 0;
}
开发者ID:macrosea,项目名称:earnpack,代码行数:6,代码来源:controller.cpp


注:本文中的Controller::Run方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。