欢迎光临散文网 会员登陆 & 注册

for循环 -- 北太天元学习5

2023-07-17 20:49 作者:卢朓  | 我要投稿

我们利用前面学习的知识, 可以为计算 1x2x3x4x5x6 写一个算法:
首先使用赋值语句
p = 1 ;
然后
p = p * 2;
然后再计算
p = p * 3;
然后再计算
p = p * 4
然后再计算
p = p * 5
然后再计算
p = p * 6
我们应该观察到,我们上面的程序语句每一条做的都是原先计算的结果p上再乘以一个数。
这些步骤都是重复步骤, 虽然乘上的数在递增。
好在这个是到6就结束,如果是到100呢,我们如果用上面的方法岂不是要累死或者无聊死。
我们实际可以通过使用循环语句来让计算机自动执行这个循环过程。

首先我给大家介绍的是for循环。for循环用于实现包含某种迭代过程的算法,在这个过程中有一个计数变量(有时称为索引index),在上面举例计算1x2x...x6这个例子中每一步增加1。在每个步骤中,都会运行一段代码, 这些代码通常依赖于这个计数变量。

在北太天元中,for循环的一般形式如下所示:

for i= 开始数:步增数:结束数
  程序语句1
  程序语句2
    ...
end
其中索引i从开始数每一步增加步增数, 一直到超过或者等于结束数循环停止。
请注意,这组语句将对于i的各种值,执行"程序语句1; 程序语句2; ..."这些被for和end圈定范围内的命令语句。

例如: 计算一个和 1/1^2 + 1/2^2 + ... + 1/50^2

我们使用for循环, 对于这个例子,k将是从1到50的索引。在for循环内部添加命令来执行
把 1/k^2 加到保存求和值的变量上. 求解该问题的北太天元代码可以是这样:

s=0;
for k=1:50
    s = s + 1/k^2;
end
s

我们可以把上面代码输入到北太天元的命令行窗口,但是出于方便编辑或者以后方便重用的目的,
我们将创建一个北太天元 m文件,然后在北太天元命令行窗口输入这个 m文件名 就可以执行上面的代码。
北太天元 m文件有两种类型——m脚本和 m函数。现在我们重点介绍的是如何写m脚本。

在北太天元的图形交互界面的左侧是目录窗口,这里展示了当前目录下保存的文件,包括m脚本和m函数文件。
在北太天元的图形交互界面的左上部还有菜单,点击文件菜单,然后点击子菜单的新建, 就可以看到编辑窗口
里开了一个空白的m文件,然后把上面的代码copy到编辑窗口,然后再利用菜单--保存,看到一个弹出的窗口,
给新创建的m脚本命名并保存。此时就可以执行这个新建的m脚本。

在上面代码段的for循环内部的行上,我们使用分号来抑制输出到命令窗口。如果我们去掉分号,
你会看到s的每一步的计算值都会输出到命令行窗口。

顺便说一句,你必须对如何命名脚本文件名和变量名有些谨慎,因为事情可能出乎你的意料之外.
例如,如果你给你的文件命名为 1.m , 那么你在命令窗口输入 1 企图调用这个m脚时,北太天元
会认为你想输入的是 数字1, 而不是调脚本 1.m . m脚本或者m函数文件名必须是以字母或者中文
或者下划线开头的,后面再继续的字符除了字母中文下划线之外还增加了数字, 例如

a1.m  ,  实验1.m  __abc_1.m 都是合法的文件名,
但是  1.m , 1a.m 都是非法的文件名。

另外,你还需要对变量名也要谨慎一些, 例如,刚才在代码中我们使用 s 作为存储求和的值的变量,
你可能会觉得 求和的英文单词是sum, 为啥不用sum 呢? 但是sum 是北太天元内置函数名,
因此,如果使用了sum 作为存储求和值的变量名,那么sum这个内置函数将被屏蔽,也就是说我们将
无法使用内置函数sum。
实际上,上面这个例子,我们也可以不使用for循环,而是使用内置函数sum 来完成求和。
我们可以用下面的代码来完成 1/1^2 + 1/2^2 + ... + 1/50^2 的计算

>> x=1:50

sum( 1 /x.^2 )

这将允许我们不使用for循环而直接计算1/1^2 + 1/2^2 + ... + 1/50^2 的和, 而且会计算得更快一些。

for循环 -- 北太天元学习5的评论 (共 条)

分享到微博请遵守国家法律