Loops 图灵语言中的计数循环
当我运行程序时,我得到一个错误变量“I尚未声明” 当我将I声明为变量时,会出现错误“I已声明” 输出应如下所示: 年人口Loops 图灵语言中的计数循环,loops,turing-lang,Loops,Turing Lang,当我运行程序时,我得到一个错误变量“I尚未声明” 当我将I声明为变量时,会出现错误“I已声明” 输出应如下所示: 年人口 =================== 2000 XXXXXXXXX ~ 2020年XXXXXXXXX 这是一个类似但简单得多的程序,我成功地完成了我在上面程序中尝试做的事情 % calculates the population of a city from year 2000 to 2020 var popstart : int := 80000 var popgrow
===================
2000 XXXXXXXXX ~ 2020年XXXXXXXXX 这是一个类似但简单得多的程序,我成功地完成了我在上面程序中尝试做的事情
% calculates the population of a city from year 2000 to 2020
var popstart : int := 80000
var popgrowth : real
var popend : real
var growthrate : real := 0.03
% popgrowth := popstart * growthrate
for i : 2000..2020 by 1
popgrowth := popstart * growthrate
end for
put "year population"
put "==== =========="
put i, " ", popgrowth
救命啊!
提前谢谢你 您必须申报i。i是一个从2000年开始一直到2020年的变量
var i:int应该可以做到这一点。我对图灵知之甚少,但我怀疑i的
。。。是i
的隐式声明
所以,我不知道你如何修复它,但你可以通过这样做来绕过它:
for i : 4 .. 19 by 3
put i
end for
另一个答案是,对图灵知之甚少。。。。
我猜I
仅在循环期间在作用域内,因为它是在该范围内声明的,所以当您试图在循环结束时在循环外部使用I
时,它会抛出错误。这就解释了为什么你发布的小程序有效,而大程序无效。以及为什么当您尝试先在循环外声明i
,然后在循环语句中再次声明时,它会抛出错误
我相信这和沃尔夫想说的是同一件事,但并没有真正解释原因。(如果我们关于i
仅在循环中有效的说法是正确的,他的回答应该会解决这个问题)我不知道如何解释,但你可以弄清楚这是否正确。(我对你的内容做了一些更改。)
您的主要问题是i
超出范围。i
只能在for
循环中使用。将Put
语句放入for循环中。像这样:
var popstart : int := 80000
var popgrowth : real
var popend : real
var growthrate : real := 0.03
var number:real
% popgrowth := popstart * growthrate
for i : 2000..2020 by 1
number:=i
popgrowth := popstart * growthrate
end for
put "year population"
put "==== =========="
put number, " ", popgrowth
@戴维德沃利弗的解决方案只会带来去年的人口增长。你的程序也有一个逻辑错误,因为它只会给出人口增长率,而不会给出总人口
我假设这个问题已经和你们的老师解决了,因为图灵是一种非常过时的语言。它在几年前就失去了支持。我仍然记得九年级的一些问题,但在这里发布图灵相关的问题可能不是一个好主意,因为没有人真正理解这种语言及其惯例
需要帮助的资源:
更挑剔的细节是不相关的:for
语句的for没有正确缩进,而且by 1
是不必要的 谢谢马斯菲尼克斯,但我试过了。我得到了一个错误“我已经被声明了”,似乎我偶然发现了某种编程悖论。也许是因为在数字范围内的“两点”之间有一个空格。曼图灵让我想起了5-6年前的高中生活。我没有想到这一点,但看起来你们俩都是对的。现在要找出我的数学有什么问题…答案应该包含一个解释,并被认为是正确的。仔细阅读
% calculates population growth for city of Whitby between 2000 and 2020.
var popstart : int := 80000
var popgrowth : real
var growthrate : real := 0.03
put "year population"
put "==== =========="
put "2000 80000"
popgrowth := popstart
for i : 2001 .. 2020 by 1
popgrowth := popgrowth + (popgrowth * growthrate)
put i, " ", popgrowth:0:2
end for
var popstart : int := 80000
var popgrowth : real
var popend : real
var growthrate : real := 0.03
var number:real
% popgrowth := popstart * growthrate
for i : 2000..2020 by 1
number:=i
popgrowth := popstart * growthrate
end for
put "year population"
put "==== =========="
put number, " ", popgrowth
% calculates the population of a city from year 2000 to 2020
var popstart : real := 80000
var popgrowth : real
var popend : real
var growthrate : real := 0.03
% popgrowth := popstart * growthrate
for i : 2000..2020
popgrowth := popstart * growthrate
popstart += popgrowth
put "year population"
put "==== =========="
put i, " ", popstart
end for