




免费预览已结束,剩余7页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.3基本算法语句名师导航三点剖析 一、赋值语句 顾名思义赋值语句就是将表达式所代表的值赋给变量,在伪代码中通常用“”表示.例如,xy就表示将表达式y的值赋给变量x,其中x是一个变量,而y则是与x同类型的变量、表达式或数值.例如,x5是指将5赋给变量x,这里5是一个常数;xy+5则表示将表达式y+5的值赋给变量x.当“”的右边为表达式时,赋值语句包含两项功能:(1)计算表达式的值;(2)将表达式的值赋给左边的变量. 注意:在赋值语句中箭头指向的是变量. 二、输入、输出语句 输入、输出语句分别用来实现算法的输入信息、输出结果的功能. 1输入语句的格式与功能 格式:read 变量 它表示将输入的数据送给变量,在这里变量的个数可以是多个,它是与所输入的数据的个数对应的,变量之间用逗号隔开. 例如: read a,b,c表示依次输入的数据分别送给变量a,b,c. 2输出语句的格式与功能 格式:print 表达式 它表示输出表达式的值,在输出语句中,输出的结果也可以是多个,它们之间也用逗号隔开. 例如,print x 表示输出运算结果x; print x,y,z则表示输出运算结果x,y,z. 为了更形象地说明赋值语句,输入、输出语句的格式和功能,看下面的一个具体的例子. read x,y,z m(x+y+z)/3 n. print m,n 在上面的算法的伪代码中,第一个语句为输入语句,它表示将输入的数据分别送给了x,y,z,最后一个语句为输出语句,它表示输出了运算结果m,n;中间两个语句为赋值语句,它们分别表示将表达式的值赋给变量m,n.输入、输出语句和赋值语句一般对应用于算法的顺序结构,算法从上而下按语句的顺序执行这些语句.如图5-21所示.图5-21 三、条件语句 算法中的选择结构由语句来表达,条件语句的一般格式为if a then b else c end if在语句中a表示判断条件,b表示满足条件时执行的操作内容,c则表示不满足条件时执行的内容,end if则表示条件语句的结束.而在表示算法的具体过程中,其格式和对应的框图为:if 条件then语句1 else语句2endif对应框图(如图5-22所示):图5-22 在这里,语句1称为“then”的分支,语句2称为“else”的分支,为了醒目和便于阅读,这些分支一般要缩进书写.例如,下面为一个算法的流程图(如图5-23所示):图5-23由流程图可知,在此算法的表示过程中用到了选择结构,判断条件为“x3”,若x3成立,则执行语句“y2x”,否则执行语句“yx+1”.因此,上面流程图所表示的算法可用条件语句表示为:read xif x3 then y2xelse yx+1endif 在此算法中,虚框内为条件语句,语句“y2x”为“then”的分支,语句“yx+1”为“else”的分支,这两个分支均缩进书写.某些情况下,条件语句中还可以使用if then语句,即if 条件then 语句endif它对应的框图为(如图5-24所示).图5-24例如,使得任意输入的3个整数,按从大到小的顺序输出,其流程图如下(如图5-25所示):图5-25 本算法的伪代码如下: read a,b,c if ba then ta, ab, bt end if if ca then ta, ac, ct end if if cb then tb, bc, ct end if print a,b,c 在这个算法中,不存在else语句.除此之外,条件语句是可以嵌套的,即在条件语句的一个分支中还可以出现条件语句,这种嵌套结构一般用于执行过程中选择结构中还存在选择结构的算法中,其格式为:if 条件1 then 语句1else if 条件2 then 语句2 else if 条件n then 语句nelse 语句n+1end if例如,输入自变量的值,求函数函数值的一个算法的伪代码如下:read xif x0 then yx+3else y0end ifprint y 四、循环语句 当算法中存在循环结构时,我们可以用循环语句来实现算法过程.循环语句有两种:一种是“for”语句;一种是“while”语句. 1“for”语句 当循环次数已经确定,则循环结构可用“for”语句来表示,“for”语句的一般格式为: for i from“初始值”to“终值”step“步长”endfor 例如,计算1+2+3+100值的算法,可表示为 s0 for i from 1 to 100 step 1 ss+ end for print s 上面算法中,“for”和“endfor”之间缩进部分称为循环体.因此,用循环语句表示算法时,其格式为: for i from“初始值”to“终值”step“步长” 循环体 endfor 而且应该注意,循环体要缩进书写. 在循环语句中,当步长为1时可以省略.如计算1+2+3+100值的算法,也可表示为 s0 for i from 1 to 100 ss+i endfor print s 2while语句当循环次数不能确定时,可用while语句来实现循环. while语句的一般格式为:while aend while具体应用时格式为:while条件 循环体endwhile 在while语句中a表示判断执行循环体的条件,书写时循环体也要缩进书写. 例如,寻求满足1+2+3+_2 008的最小正整数的算法可用while语句表示为 s1 i2 while s2 008 ss+i ii+1 endwhile print i 算法在执行循环体的过程中,先检验条件s2 008是否成立,若条件成立则执行循环体,直到条件不成立时才结束循环. while语句的特点是“前测试”,即先判断再执行,当条件成立时,则执行循环体,然后再检验条件是否成立,若条件仍然成立则继续执行循环体,这个过程反复进行,直到某一次条件不成立为止,这时算法不再执行循环体,而直接转到end while语句后按着执行的先后执行语句.若初始条件不成立,则一次也不执行循环体的内容.任何一种需要重复处理的问题都可以用这种“前测试”循环来实现.问题探究 问题1:怎样用伪代码和流程图设计算法来判断n是否为素数? 探究:由于素数的特点是它的因数只有1和它的本身,则要判断某个数n是否为素数的方法:将n作为被除数,用2到各个整数轮流作除数,如果都不能被整除,则n为素数. 为了使程序能符合结构化程序设计,这里设计了一个开关w,使初值为0.若n能被某一个整数整除,则使w值为1,否则w值不变.最后根据w的值来确定n是否为素数,若w值为0,则n为素数,否则n为非素数. 用伪代码设计算法如下: begin(算法开始) read n w0 i2 while in且 w=0 if r=0 then w1 else ii+1 end if end while if w=0 then print n,“是素数” else print n,“不是素数” end if end (算法结束)流程图(如图5-26所示):图5-26 问题2:依次将十个数输入,要求将其中最大的数打印出来.怎样用流程图和伪代码来表示问题的算法? 探究:解决这个问题的思路很简单,先选2个数进行比较,去掉小的,留下大的;再取第3个数与留下的数进行比较去掉小的留下大的;继续进行,直到每个数都被比较,最后留下的数就是最大数.但用这种思想写出的算法比较复杂.由于在本算法中某些步骤是重复进行,则可用循环语句来描述此算法.用伪代码设计算法如下:read x maxx for i from 2 to 10 read x if xmax then maxx end if end for print max end流程图(如图5-27所示):图5-27精题精讲例1写出下列用伪代码描述的算法执行后的结果. (1)算法开始 a2; a4; aa+a; 输出a的值; 算法结束 执行结果:()思路解析 本题考查了赋值语句的功能,第一个语句中将2赋给了变量a,此时a的值为2.第二个语句中将4赋给了变量a,此时a值由原来的2变为了4.第三个语句中将a+a的值赋给了变量a,此时a的值为4+4=8. 答案:8 (2)算法开始君子食无求饱,居无求安,敏于事而慎于言,就有道而正焉,可谓好学也已。 n10; i2; sum0; while(in) sumsum+i; ii+2; endwhile 输出sum的值; 算法结束 执行结果:()思路解析 本题考查了赋值语句、循环语句在算法中的应用.在本算法中前三个语句为赋值语句,它们分别表示将10、2、0赋给变量n、i、sum.第5、6个语句构成了一个循环体,当条件in成立,则重复执行第5、6个语句直至条件不成立.当第一次执行时,sum的值变为2,i的值变为4;第二次执行时,sum的值变为6,i的值变为6;第三次执行时,sum的值变为12,i的值变为8;第四次执行时,sum的值变为20,i的值变为10;第五次执行时,sum的值变为30,i的值变为12,此时条件不成立,退出循环,输出sum的值为30. 答案:30例2已知s=5+10+15+1 500,请用流程图描述求s的算法并用伪代码表示.思路解析 由题意知应采用循环结构画出流程图,而应采用“for”语句来描述此算法,其中初始值为10,步长为5.解:流程图如下图所示(如图5-28所示):图5-28 从流程图可以看出这是一个循环结构,我们可以运用循环语句来实现. s5 for i from 10 to 1500 step 5 ss+i end for print s end绿色通道 在准确理解算法的基础上,学会循环语句的使用.循环语句包括for循环、while循环.解题时要根据需要灵活运用.当已知循环的次数时一般采用for循环;当循环次数不知时可采用while循环.while语句的特点是“前测试”,任何一种需要重复处理的问题都可以用这种前测试循环来实现.例3经过市场调查分析得知,1999年第一季度内,某地区对某件商品的需求量为12 000件.为保证商品不脱销,商家在月初时将商品按相同数量投放市场.已知年初商品的库存量为50 000件,用s表示商品的库存量.请写出一个程序,求出第一季度结束时商品的库存量.思路解析 因为第一季度商品的需求量为12 000件,而且每个月以相同数量投放市场,因此每个月向市场投放4 000件商品.可以用下表表示库存量随着月份的变化情况. 月份库存一月二月三月s46 00042 00038 000还可以用下列赋值语句来表示库存量的变化ss4 000. 赋值号左边的变量s表示的是这个月的存储量,那么右边的变量s表示的是上个月的存储量. 这是对变量s的赋值,赋值的目的是改变变量的值,将变量上次的值减去4 000再次赋予变量s.解:流程图如下(如图5-29所示):图5-29例4某百货公司为了促销,采用购物打折的优惠办法:每位顾客一次购物 (1)在1 000元以上者,按九五折优惠. (2)在2 000元以上者,按九折优惠. (3)在3 000元以上者,按八五折优惠. (4)在5 000元以上者,按八折优惠. 编写程序求优惠价.思路解析 本题实质上是一个分段函数的求值问题,由于求值时需要根据自变量的范围来选择不同的解析式,则用算法语句表示此算法时应采用条件语句.设购物款数为x元,优惠价为y元. 解:设购物款数为x元,优惠价为y元,则优惠付款公式为 用条件语句表示为:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年智能互动广告内容开发与推广合同
- 培训茶叶知识计划表课件
- 2025年地方特色餐饮品牌独家代理权转让及运营合作协议
- 2025年公立医院行政支持岗位劳动合同模板下载
- 2025年体育场馆运营权及债务承继合作协议
- 2025年新型餐饮连锁品牌加盟授权管理合同
- 高端船舶租赁服务及租赁信息平台开发执行合同
- 2025年北京中小学校园安全设施建设合同示范
- 2025年绿色农产品供应链合作协议书
- 160. 个人车辆租赁合同
- QC新老七大工具培训课件
- SX-22163-QR345工装维护保养记录
- JJF 2025-2023高动态精密离心机校准规范
- 2023年航空职业技能鉴定考试-候机楼服务技能考试题库(含答案)
- 医院腹腔镜手术知情同意书
- p型半导体和n型半导体课件
- GB/T 748-2005抗硫酸盐硅酸盐水泥
- 走好群众路线-做好群众工作(黄相怀)课件
- 混凝土结构设计原理教学教案
- 民间文学(全套课件)
- 专升本00465心理卫生与心理辅导历年试题题库(考试必备)
评论
0/150
提交评论