1、第十四章 算法初步,第二节 基本算法语句,课前自主学案,知识梳理,1.各种程序设计语言中都包含下列基本的算法语句 输入语句 输出语句 赋值语句 条件语句 循环语句,2.基本算法语句 (1)输入语句在该程序中的第1行中的INPUT语句就是输入语句.这个语句的一般格式是:,INPUT “提示内容”;变量,其中,“提示内容”一般是提示用户输入什么样的信息.如每次运行上述程序时,依次输入-5,-4,-3,-2,-1,0,1,2,3,4,5,计算机每次都把新输入的值赋给变量“x”,并按“x”新获得的值执行下面的语句., INPUT语句不但可以给单个变量赋值,还可以给多个变量赋值,其格式为:,INPUT
2、“提示内容1,提示内容2,提示内容3,”;变量1,变量2,变量3,,例如,输入一个学生数学,语文,英语三门课的成绩,可以写成:INPUT “数学,语文,英语”;a,b,c,注意:“提示内容”与变量之间必须用分号“;”隔开。 各“提示内容”之间以及各变量之间必须用逗号“,”隔开.但最后的变量的后面不需要.,(2)输出语句在该程序中,第3行和第4行中的PRINT语句是输出语句.它的一般格式是:,PRINT “提示内容”;表达式,同输入语句一样,表达式前也可以有“提示内容”.例如下面的语句可以输出斐波那契数列: ,PRINT“The Fibonacci Progression is:”; 1 1 2
3、 3 5 8 13 21 34 55 “”,此时屏幕上显示: The Fibonacci Progression is: 1 1 2 3 5 8 13 21 34 55 ,输出语句的用途: 输出常量,变量的值和系统信息. 输出数值计算的结果. (3)赋值语句 用来表明赋给某一个变量一个具体的确定值的语句. 除了输入语句,在该程序中第2行的赋值语句也可以给变量提供初值.它的一般格式是:,变量=表达式,赋值语句中的“=”叫做赋值号. 赋值语句的作用:先计算出赋值号右边表达式的值,然后把这个值赋给赋值号左边的变量,使该变量的值等于表达式的值.,注意:赋值号左边只能是变量名字,而不能是表达式.如:2=
4、X是错误的. 赋值号左右不能对换.如“A=B”“B=A”的含义运行结果是不同 不能利用赋值语句进行代数式的演算.(如化简、因式分解、解方程等) 赋值号“=”与数学中的等号意义不同.,(4)条件语句 算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语句.它的一般格式是:(IF-THEN-ELSE格式,如图1),图2,IF条件 THEN语句1 ELSE语句2 END IF,图1,当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句1,否则执行ELSE后的语句2.其对应的程序框图为:(如图2)在某些情况下,也可以只使用IF-THEN语句:(即IF
5、-THEN格式,如图3),图4,IF条件 THEN语句 END IF,图3,计算机执行这种形式的条件语句时,也是首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句.其对应的程序框图为:(如图4)条件语句的作用:在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去.需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理. 在某些较为复杂的算法中,有时需要对按条件要求执行的某一语句(特别是ELSE后的语句2)继续按照另一条件进行判断,这时可以再利用条件语句完成这一要求,其一般形式为:,图4,(
6、5)循环语句 算法中的循环结构是由循环语句来实现的.对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE型)和直到型(UNTIL型)两种语句结构.即WHILE语句和UNTIL语句. WHILE语句的一般格式是,WHILE条件循环体 WEND,图5,图6,其中循环体是由计算机反复执行的一组语句构成的.WHLIE后面的“条件”是用于控制计算机执行循环体或跳出循环体。当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止.这时,计算机将不执行
7、循环体,直接跳到WEND语句后,接着执行WEND之后的语句。因此,当型循环有时也称为“前测试型”循环.其对应的程序结构框图为: (如图6),UNTIL语句的一般格式是(如图7):其对应的程序结构框图 为:(如图8),DO循环体 LOOP UNTIL 条件,图7,图8,基础自测,1.(2009年汉沽模拟)已知变量a,b已被赋值,要交换a、b的值,采用的算法是( ) A.a=b,b=a B.a=c,b=a,c=b C.a=c,b=a,c=a D.c=a,a=b,b=c,答案是:D,2.(2009年杭州模拟)下边的程序语句输出的结果S为( ),i=1 WHILE i8S=2i+3i=i+2 WEND
8、 PRINT S END,A.17 B.19 C.21 D.23,解析:i从1开始,依次取3,5,7,9,当i8时,循环继续进行,故当i=9时,跳出循环.故输出S=27+3=17,选A. 答案:A,3.(2009年合肥模拟)下列程序执行后输出的结果是_,i=11, S=1, DOs=s*is=1 LOOP UNTIL i9 PRINT s END,答案是:990,4(2009年中大附中月考)编辑一个运算程序:11=2,若1n=k,则1(n+1)=k+3,则12006的输出结果为_,答案是:6017,课堂互动探究,编写程序,计算一个学生数学、语文、英语、物理四门课的平均成绩.,分析:先写出算法,
9、画出程序框图,再进行编程.,解析:,算法:,程序:,INPUT “数学=”;a INPUT“语文=”;b INPUT“英语=”;c INPUT“物理=”;d y=(a+b+c+d)/4 PRINT“The average=”y END,变式探究,1.编写一个程序,要求输入一个圆的半径,便能输出该圆的周长和面积.(取3.14),解析:,程序,INPUT“x=”;x IF x0 THENy=2*x*x-5 ELSEy=x-1 END IF PRINT y END,程序框图,变式探究,2.铁路部门托运行李的收费方法如下:y是收费额(单位:元),x是行李重量(单位:kg),当 0x20时,按0.35元
10、/kg收费,当x20 kg时,20 kg的部分按0.35元/kg,超出20 kg的部分,则按0.65元/kg收费,请根据上述收费方法编写程序.,INPUT“请输入旅客行李的重量(kg)x=”;x IF x0 AND X=20 THENy=0.35*x ELSEy=0.35*20+0.65*(x-20) END IF PRINT“该旅客行李托运费为:”;y END,程序:,编写程序,计算自然数1+2+3+99+100的和.,解析:这是一个累加问题.我们可以用WHILE型语句,也可以用UNTIL型语句.由此看来,解决问题的方法不是惟一的,当然程序的设计也是有多种的,只是程序简单与复杂的问题.,程序
11、:WHILE型,UNTIL型,i=1 sum=0 WHILE i=100sum=sum+Ii=i+1 WEND PRINT sum END,i=1 sum=0 DOsum=sum+Ii=i+1 LOOP UNTIL i100 PRINT sum END,变式探究,3.某纺织厂1997年的生产总值为300万元,如果年生产增产率为5%,计算最早在哪一年生产总值超过400万元.,解析:从1997年底开始,经过x年后生产总值为300(1+5%)x,可将1997年生产总值赋给变量a,然后对其进行累乘,用n作为计数变量进行循环,直到a的值超过400万元为止.,程序,a=300 P=1.05 n=1997
12、DO a=a*p n=n+1 LOOP UNTIL a400 PRINT n END,温馨提示,1.输入语句要求输入的值只能是具体的常数,不能是函数、变量或表达式. 2.输出语句可以输出常量、变量或表达式的值及字符. 3.赋值语句的作用是将赋值号“=”右边表达式的值计算出来,然后赋给左边的变量,右边“表达式”的值可以是一个数据,常量和算式;左边只能是变量的名字,而不能是表达式,左右两边不能调换. 4.在使用条件语句的嵌套时要注意IF与ELSE的配对关系.,5. 在使用循环语句时,要注意对循环变量的控制,避免多一次或少一次循环. 6.直到型循环又称为“后测试型”循环, 从UNTIL型循环结构分析
13、,计算机执行该语句时,先执行一次循环体,然后进行条件的判断,如果条件不满足,继续返回执行循环体,然后再进行条件的判断,这个过程反复进行,直到某一次条件满足时,不再执行循环体,跳到LOOP UNTIL语句后执行其他语句,是先执行循环体后进行条件判断的循环语句.,题型展示台,2006年1月开始实施的个人所得税法规定,国家征收个人所得税是分段计算的,总收入不超过1600元,免征个人所得税,超过1600元的部分需征税,设全月总收入为x元,则全月纳税所得额为(x-1600)元(x1600),税率见下表:,某公司的员工工资最高不超过6400元,现为该公司会计室设计一个程序,要求输入员工应发工资数,输出税后
14、工资额,请画出程序框图并写出程序.,解析:设x为该公司员工每月的应发工资数,y为实发工资数(单位为元),y=,程序框图如右,INPUT”x=“;x IF x=1600 THENy=x ELSE IF x=2100 THENy=1600+(x-1600)*0.95ELSEIF x=3600 THENy=2075+(x-2100)*0.9ELSEy=3425+(x-3600)*0.85END IFEND IF END IF PRINT y END,2008年9月发生的“三鹿奶粉污染”事件,主要是在一些企业生产的奶制品中检测出含三聚氰胺,三聚氰胺是一种有毒的化工原料,俗称“假蛋白”.蛋白质主要由氨基
15、酸组成,蛋白质平均含氮量16%左右,而三聚氰胺的含氮量为66%左右,不法分子往往在奶制品中加三聚氰胺主要是因为它能冒充蛋白质.2008年9月16日国家质检总局公布了22家企业生产的婴幼儿配方奶粉中含有三聚氰胺,其中最高含量为2563 mg/kg,最低含量为0.09 mg/kg.设计一个求含量高于20 mg/kg的婴幼儿配方奶粉的平均含量的程序框图,并写出程序.,分析:(1)由于涉及到22家企业,因此使用循环结构来控制企业数; (2)用条件结构来判断含量是否高于20,同时统计高于20 mg/kg的总和与企业数.,解析:,程序框图,程序,S=0 M=0 i=1 DOINPUT xIF x20 THENS=S+xM=M+1END IFi=i+1 LOOP UNTIL i22 P=S/M PRINT P END,题型训练,1.用二分法求函数f(x)在区间1,2上的零点(精确到0.01)的一个算法程序如下图所示,请用算法语句来描述这个算法.,2.给出某班45名同学的数学测试成绩,60分及以上为及格,要求统计及格人数,及格同学的平均分,全班同学的平均分,画出程序框图,并写出程序语句.,祝,您,学业有成,