解决以上两个问题时采用的方法有怎样的共同特点?应选用何种结构来实现
共同特点:有规律的重复计算,或者在程序中需要对某些语句进行重复的执行,即对不同的运算对象进行若干次的相同的运算或处理
选用结构方式:循环结构
Scilab程序语言中提供两种循环语句:for循环和while循环 I 、for循环语句
请同学们看下面的一个例子:
例1.求1+2+3+...+1000=? (教材P27)
分析:算法思想:可以采用重复计算,而且数字1、2、3、...、1000是有规律的一列数,逐渐循环递增,每次增幅为1
解答:用for循环语句来实现计算
步骤:这个程序一共四步:
第一步是选择一个变量S表示和,并赋给初值0。
第二步开始进入for循环语句,首先设i为循环变量,分别设定其初值、步长、终值。这里初值为1,步长为1(步长是指循环变量i 每次增加的值。步长为1,可以省略不写,若为其他值,则不可省略),终值为1000。
第三步为循环表达式(循环体)。
第四步用"end"控制结束一次循环,开始一次新的循环。
循环体认识:第三步循环表达式"S=S+i"的理解:i=1 S=S+i 是 S=S+1,并把0+1赋值给S,第一次循环结束S为1,此时S记录了第一个数的值,遇到"end"开始第二次循环;
i=2 S=S+i 是 S=S+2,并把1+2赋值给S,第二次循环结束S为1+2=3,此时S记录了前两个数的和,遇到"end"开始第三次循环;
i=3 S=S+i 是 S=S+3,并把(1+2)+3赋值给S,第三次循环结束S为1+2+3=6,此时S记录的是前三个数的和,遇到"end"开始第四次循环;...
结果输出:把上述程序存到一个文件("C:/gao/instum.sci"),点击菜单中的"Load into Scilab"就会在Scilab中执行你写的程序:
(教材P28--P29)相关内容
总结:for循环语句的格式
课堂练习:教材P31 练习A 1
II、while循环语句
请同学们看下面一个例子:
例2 求平方值小于1000的最大整数
分析:算法思想、正数范围、逐个比较,若小于1000,循环继续;若大于等于1000,结束循环,输出结果。
while 语句格式
循环体认识:首先要求对表达式进行判断,如果表达式为真,则执行循环体部分,每次开始执行循环体前,都要判断表达式是否为真。这样重复执行,一直到表达式值为假时,就跳过循环体部分,结束循环。
解答:Scilab的格式来解决这个问题
在输入完程序的第二行后,击Enter键,再在提示符下输入j,击Enter键后,输出最大的j值
步骤:第一步是选择一个变量j表示数值,并赋给初值1;
第二步开始进入while循环语句
循环体:j*j<1000,j=j+1;
【解析】j=1时,1*1=1<1000, j=1+1=2;遇到end开始第二次循环;
j=2时,2*2=4<1000, j=2+1=3;遇到end开始第三次循环;...
第三步单击Enter键,再在提示符输入j,击Enter键,输出最大j值
课堂练习:教材P31 练习B 2