对于我正在做的类作业问题,我应该跟踪(检查错误)以下算法(伪代码):
num <- 2
count <- 1
while count < 5
{
count <- count * num
if count / 2 < 2
print "Hello"
else
while count < 7
{
count <- count + 1
}
print "The count is " + count + "."
}
当我追踪这段代码时,我得到了
num count output
2 1 Hello The count is 1.
我的问题是,我的追踪是对的吗?看起来我还有其他东西需要添加。
答案 0 :(得分:0)
以下是您应该如何解决这个问题。
num = 2
count = 1
while 1 < 5
{
2 = 1 * 2
if 2 /2 < 2 //since 1 < 2 print Hello
print "Hello"
else //This is skipped because the if was true
while count < 7
{
count <- count + 1
}
print "The count is " + count + "." //This prints "The Count is 2
}
然后继续使用count = 2的while循环。
开始第二次迭代。
while 2 < 5
{
4 = 2 * 2
每次循环计数都会改变。
答案 1 :(得分:0)
在跟踪问题时,您需要记下程序中的所有值更改。
在您的计划中,我们有两个要跟踪的变量:count
和num
。从该计划中,我们可以找出2个事实:
num
; count
。因此,我们应该专注于跟踪count
上的更改。
请注意这个块:
while count < 7
{
count <- count + 1
}
可以替换为
if count < 7
{
count = 7
}
该程序的工作流程可以用英语描述,如下所示:
count
是否小于5,YES
转到2,NO
程序结束; count
; count / 2
小于2,则YES
转到4,NO
转到5; Hello
”,转到6; count
小于7,请将count
设为7; +
次+
。”“,转到1; 现在任务是使用1
作为count
的初始值,并逐步完成工作流程,直到程序终止。
让我们一起做:
count
等于1,所以转到2; count
等于2; count / 2
等于1,小于2,所以转到4; Hello
,转到6; The count is 2.
”,转到1; count
等于2,所以转到2; count
等于4; count / 2
等于2,不小于,因此请转到5; count
设置为7
; The count is 7.
”,转到1; count
等于7,因此程序终止。因此输出将是:
HelloThe count is 2.The count is 7.