【问题标题】:In Marie.js how would I go about doing an if statement and loop for the following pseudocode?在 Marie.js 中,我将如何为以下伪代码执行 if 语句和循环?
【发布时间】:2020-11-01 18:05:24
【问题描述】:
max = 0
value = 0

LOOP
    INPUT value

    IF (value == 0)
    EXIT LOOP
    ENDIF

    IF (value > max)
           max = value
    ENDIF
ENDLOOP

PRINT max
STOP

我正在使用https://marie.js.org/,但我在试图弄清楚如何执行 if 语句时遇到了很多麻烦。我试图使用skipcond。我也在为无限循环而苦苦挣扎。任何让我开始的帮助将不胜感激。

【问题讨论】:

    标签: pseudocode marie


    【解决方案1】:

    首先,将伪代码转换成if-goto风格的汇编语言&机器码。

    if a then
       b
    endif
    

    翻译成

        if !a then goto endif1
        b
    endif1,
    

    其次,将您的伪代码变量翻译成 Marie 汇编语言/机器代码变量。

    比如你在伪代码中有一个整数max,所以在数据区放:

    max, dec 0
    

    最后,将每一行 if-goto 代码翻译成汇编代码。


    条件测试if a < b goto 是通过使用减法进行比较来完成的。因此,将a 加载到累加器中,减去设置条件代码的b,然后执行SkipCond 并转到跳过或不跳过要执行的代码。


    Marie.js 有许多简单的示例。查看乘法示例,查看数据/变量声明、条件分支、循环、输入、输出。

    【讨论】:

    • 使用您的建议和可用示例完成并除尘。谢谢!
    猜你喜欢
    • 2019-05-06
    • 2014-01-16
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 2019-07-07
    相关资源
    最近更新 更多