1、1.2基本算法语句【入门向导】在超市买完东西付款时,收银员会用扫描仪读取物品上的条形码,而后计算机屏幕上会显示这个物品的信息,当所有物品被扫描完后,计算机屏幕上会显示总价格,付款后,打印机打印购物小票这个简单的过程可以分成三个方面:通过扫描仪输入物品信息,然后计算机分析,最后在屏幕上输出信息计算机之所以能完成这一系列操作,是因为我们给它植入一套计算机能够“理解”的程序语言本节我们共同研究程序设计语言中的一些基本算法语句1程序是算法的精确形式,是计算机可以理解的算法通常情况下,解决某个具体问题的算法包含大量繁琐的计算、复杂的作图等操作,而计算机强大的数据处理功能是帮助我们轻松完成这些具有重复性、
2、机械性操作步骤的有力工具但是用算法步骤或程序框图表示的算法是计算机不能理解的算法形式,计算机能够执行的算法必须是用计算机能够理解的语言进行描述的,而程序设计语言基本上就是计算机能够理解的语言因此,学习用程序表示算法的一个重要原因是为了借助计算机执行算法2程序是由若干算法语句组成的有序集合程序框图是由表示算法基本逻辑结构的图形组成的,类似地,程序是由表示算法基本逻辑结构的算法语句组成的任何高级程序设计语言都包含输入语句、输出语句、赋值语句、条件语句和循环语句五种基本语句这五种基本算法语句与算法的三种基本结构基本上是相互对应的3算法语句有着严格的语法规则,由算法语句组成的程序是否正确,这需要利用计
3、算机执行程序加以验证因此,上机验证程序的正确性通常是编写程序的一个必不可少的环节同时,用程序表示算法的一个重要目的,就是利用计算机实现算法例1已知三角形的三边长分别为a、b、c,要求输入三边长,输出三角形的面积分析解决该问题的算法包括输入边长信息、赋值计算公式和输出运算结果解程序:ainput(“a”);binput(“b”);cinput(“c”);p(abc)/2;ssqrt(p*(pa)*(pb)*(pc)print(%io(2),s);点评套用公式求值问题是传统数学求值问题的一种,它是一种典型的顺序结构,也就是说只通过输入、输出和赋值语句就可以完成任务解决这类问题的关键是先分析这种问题
4、的解法,即构造计算的过程,再写出算法步骤和流程图,最后翻译成算法语句即可Scilab语言中的运算符号和函数,同我们平时用的代数中的运算符号有很大不同教材中没有特意说明,有些同学在写算法语句时,常会不知不觉地用代数中的运算符号去完成,如把乘法运算符写成“”等为此,现把Scilab语言中的运算符号整理分类加以说明,供同学们参考1算术运算符(1)加减运算符Scilab语言中的加减运算符号与代数中的运算符号相同,即“”和“”(2)乘法运算符Scilab语言中的乘法运算符号是用“*”表示,与代数中的运算符号“”或“”有区别,并且乘号“*”一定不能省略,也不能用代数中的“”或“”代替(3)除法运算符Sci
5、lab语言中的除法运算符号用“/”或“”表示“/”表示右除,“”表示左除例如,a5/2表示a的值为5除以2的商,b法不能写成分式的形式.Scilab语言中的乘方运算符号用“ ”表示例如x5就写成x5,xy就写成xy.如果指数值较小可以用乘法符号“*”连接,如a3可以写成a*a*a,也可以写成a3.2关系运算符数学中用于比较运算的关系运算符包括(大于)、(大于)、4,x0则写成x0.表达逻辑相等关系用符号“”,这里还要注意赋值号与表达逻辑相等关系的“”的区别,“x5”是将数值5写到变量x的存储单元,是赋值;而在判断框中要判断x是否等于5时,应该用“x5”&表示逻辑与,两个条件间可用&连接,例如,
6、0x2可写作x0&x2.3常用函数(1)平方根函数数学中的平方根号是“”,但是在Scilab语言中用“sqrt()”来表示求某个数的算术平方根,例如,写成sqrt(5)(2)绝对值函数数学中的绝对值符号“|”在Scilab语言中用“abs()”表示,例如,|6|写成abs(6)例2已知函数f(x)|x22|,编写一个程序,输入一个x的值,求出f(x)的值分析因为函数解析式中含有绝对值符号,所以编写程序时要用绝对值函数abs()解程序如下:点评在Scilab语言中,默认的运算顺序同数学中的运算顺序一样,必要时用“()”来确定运算顺序在程序框图中使用的运算符号还是和代数中的运算符号一样,但是在算法
7、程序语言中运算符号要求很严格,必须按照规定的书写格式例1找出下列程序中出现的错误错解(1)ainput(a);b3,c4,s(abc)2;Asqrts(sa)(sb)(sc)print(”s”A”)(2)a3,b4,5c,ab;btac;cab;disp(”a”,”b”,”c”)错解辨析(1)输入语句input后的括号中的变量必须加引号;(2)使用赋值语句时,赋予变量值后用分号结尾,表示只赋值而不输出该变量的值;(3)程序语句的四则运算符号不同于一般的四则运算符号,乘号用“*”表示,除号用“/”表示,乘方用“ ”表示或采用连乘的形式;(4)程序语句中只有小括号而没有大括号和中括号;(5)输出语
8、句print中“%io(2)”是固定的格式,必须保留,且变量无须用引号只需用逗号隔开;(6)一个赋值语句中不能出现两个或两个以上赋值号,且赋值号的左边必须是变量,不能是数;(7)输出语句disp一般只用于输出单个变量,多个变量的输出习惯上使用print语句;此外,disp语句只在输出文字时才加引号,输出变量时则不需要正解(1) (2) 例2输入x,写出输出函数y的函数值的程序错解正解例3编写程序计算12310 000的值,只要求输出结果错解一般地,书写程序语句,依赖于设计明确的程序框图,而设计程序框图的目的,就在于把程序语句让计算机执行,因此,框图与语句,堪称算法的姊妹花1根据程序框图写出程序
9、语言由程序框图编写程序的关键是明确程序框图的结构,弄清程序框图表示的算法,然后根据结构关系,选择相应的语句格式,编写相应的程序在使用多个条件语句时,要根据程序框图描述的它们之间的结构关系,理清多个条件语句间的关系在用循环语句编写程序时,用while循环和for循环,一定要注意两种形式的循环语句在解决同一问题时条件表述的不同注意每个循环都要以“end”结尾例1请写出图中的程序框图描述的算法的程序分析观察可发现这个程序框图描述的算法含有条件分支结构,进一步分析可知,这是一个求分段函数y的函数值的算法解程序如下:点评在本程序中,条件语句中嵌入了另一个条件语句,在每一个条件语句结束时都要写end.2根
10、据程序语言画出程序框图将程序语言描述的算法转换为程序框图,要考虑很多细节,是一个将算法“细化”的过程要理清是条件语句还是循环语句,注意是用处理框还是判断框在三种算法逻辑结构中,循环结构较为复杂,循环变量、循环体、循环中止条件是循环结构的三要素,在分析循环结构前首先要把它们分析清楚;另外还要看应用for循环简单还是while循环简单,判断框出口要把“是”和“否”标正确例2意大利数学家菲波那契在1202年出版的一本书里提出了这样的一个问题:一对兔子饲养到第二个月进入成年,第三个月生一对小兔,以后每个月生一对小兔,所生小兔能全部存活并且也是第二个月成年,第三个月生一对小兔,以后每个月生一对小兔,所生
11、小兔能全部存活并且也是第二个月成年,第三个月生一对小兔,以后每月生一对小兔问这样下去年底应有多少对兔子?试根据下面程序画出解决此问题的程序框图分析程序中含有循环结构,用的是while循环,程序中虽然没有用到条件句,但要注意程序框图的循环结构中一定包含条件分支结构解程序框图如图点评注意程序框图要用起、止框,不可丢失要注意正确画出各个语句对应的程序框注意流程线的连接及方向本题是著名的菲波那契数列问题,同学们学过数列后,可用数列知识解决此问题1(大连模拟)写出下列程序的运行结果:解析(1)程序执行的过程为a1b134b415输出b5;(2)程序执行的过程为a2,b3,c4a3b426c6410d(3610)输出d.答案(1)b5(2)d2(杭州高一检测)下列程序运行的结果是()A10.5 B11.5 C16 D25答案D