算法、程序框图、基本算法语句

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算法、程序框图、基本算法语句算法、程序框图、基本算法语句
⼆. 课标要求:
1. 通过对解决具体问题过程与步骤的分析(如,⼆元⼀次⽅程组求解等问题),体会算法的思想,了解算法的含义;
2. 通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程。

在具体问题的解决过程中(如,三元⼀次⽅程组求解等问题),理解程序框图的三种基本逻辑结构:顺序、条件分⽀、循环。

3. 经历将具体问题的程序框图转化为程序语句的过程,理解⼏种基本算法语句——输⼊语句、输出语句、赋值语句、条件语句、循环语句,进⼀步体会算法的基本思想;
4. 通过阅读中国古代数学中的算法案例,体会中国古代数学对世界数学发展的贡献。

三. 命题⾛向:
算法是⾼中数学课程中的新内容,本章的重点是算法的概念和算法的三种逻辑结构。

预测⾼考对本章的考查是:以选择题或填空题的形式出现,分值在5分左右,考查的热点是算法的概念、识别程序和编写程序。

四. 教学过程:
基本知识要点回顾
1. 算法的概念
(1)算法的定义:⼴义的算法是指完成某项⼯作的⽅法和步骤,那么我们可以说洗⾐机的使⽤说明书是操作洗⾐机的算法,菜谱是做菜的算法等等。

在数学中,现代意义的算法是指可以⽤计算机来解决的某⼀类问题的程序和步骤,这些程序或步骤必须是明确和有效的,⽽且能够在有限步之内完成。

(2)算法的特征:①确定性:算法的每⼀步都应当做到准确⽆误、“不重不漏”。

“不重”是指不是可有可⽆的、甚⾄⽆⽤的步骤,“不漏” 是指缺少哪⼀步都⽆法完成任务。

②逻辑性:算法从开始的“第⼀步”直到“最后⼀步”之间做到环环相扣。

分⼯明确,“前⼀步”是“后⼀步”的前提, “后⼀步”是“前⼀步”的继续。

③有穷性:算法要有明确的开始和结束,当到达终⽌步骤时所要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能⽆限制的持续进⾏。

(3)算法的描述:⾃然语⾔、程序框图、程序语⾔。

2. 程序框图
(1)程序框图的概念:程序框图⼜称流程图,是⼀种⽤规定的图形、指向线及⽂字说明来准确、直观地表⽰算法的图形;
(2)构成程序框的图形符号及其作⽤
程序框名称功能
起⽌框表⽰⼀个算法的起始和结束,是任何算法程序框图不可缺少的。

输⼊、输出框表⽰⼀个算法输⼊和输出的信息,可⽤在算法中任何需要输⼊、输出的位置。

处理框赋值、计算。

算法中处理数据需要的算式、公式等,它们分别写在不同的⽤以处理数据的处理框内。

判断框
判断某⼀条件是否成⽴,成⽴时在
判断框判断某⼀条件是否成⽴,成⽴时在出⼝处标明“是”或“Y”;不成⽴时在出⼝处标明“否”或“N”。

流程线算法进⾏的前进⽅向以及先后顺序
循环框⽤来表达算法中的重复操作以及运算
连结点连接另⼀页或另⼀部分的框图
注释框帮助编者或阅读者理解框图
(3)程序框图的构成
⼀个程序框图包括以下⼏部分:实现不同算法功能的相对应的程序框;带箭头的流程线;程序框内必要的说明⽂字。

3. ⼏种重要的结构
(1)顺序结构
顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进⾏的。

它是由若⼲个依次执⾏的步骤组成的,它是任何⼀个算法都离不开的⼀种基本算法结构。

见⽰意图和实例:
顺序结构在程序框图中的体现就是⽤流程线将程序框⾃上⽽下地连接起来,按顺序执⾏算法步骤。

如在⽰意图中,A框和B框是依次执⾏的,只有在执⾏完A框指定的操作后,才能接着执⾏B框所指定的操作。

(2)条件结构
如下⾯图⽰中虚线框内是⼀个条件结构,此结构中含有⼀个判断框,算法执⾏到此判断给定的条件P是否成⽴,选择不同的执⾏框(A框、B框)。

⽆论P条件是否成⽴,只能执⾏A框
或B框之⼀,不可能既执⾏A框⼜执⾏B框,也不可能A框、B框都不执⾏。

A框或B框中可以有⼀个是空的,即不执⾏任何操作。

见⽰意图:
(3)循环结构
在⼀些算法中要求重复执⾏同⼀操作的结构称为循环结构。

即从算法某处开始,按照⼀定条件重复执⾏某⼀处理过程。

重复执⾏的处理步骤称为循环体。

循环结构有两种形式:当型循环结构和直到型循环结构。

①当型循环结构,如左下图所⽰,它的功能是当给定的条件P成⽴时,执⾏A框,A框执⾏完毕后,返回来再判断条件P是否成⽴,如果仍然成⽴,返回来再执⾏A框,如此反复执⾏A框,直到某⼀次返回来判断条件P不成⽴时为⽌,此时不再执⾏A框,离开循环结构。

继续执⾏下⾯的框图。

②直到型循环结构,如右下图所⽰,它的功能是先执⾏重复执⾏的A框,然后判断给定的条件P是否成⽴,如果P仍然不成⽴,则返回来继续执⾏A框,再判断条件P是否成⽴。

依次重复操作,直到某⼀次给定的判断条件P成⽴时为⽌,此时不再返回来执⾏A框,离开循环结构。

继续执⾏下⾯的框图。

见⽰意图
1. 输⼊语句
输⼊语句的格式:INPUT “提⽰内容”;变量
例如:INPUT“x=”;x功能:实现算法的输⼊变量信息(数值或字符)的功能。

要求:
(1)输⼊语句:要求输⼊的值是具体的常量;
(2)提⽰内容:提⽰⽤户输⼊的是什么信息,必须加双引号,提⽰内容 “原原本本”的在计算机屏幕上显⽰,提⽰内容与变量之间要⽤分号隔开;
(3)⼀个输⼊语句可以给多个变量赋值,中间⽤“,”分隔;输⼊语句还可以是“‘提⽰内容1’;变量1,‘提⽰内容2’;变量2,‘提⽰内容3’;变量3,……”的形式。

例如:
INPUT“a=,b=,c=,”;a,b,c。

2. 输出语句
输出语句的⼀般格式:PRINT“提⽰内容”;表达式
例如:PRINT“S=”;S
功能:实现算法输出信息(表达式)
要求:
(1)表达式是指算法和程序要求输出的信息;
(2)提⽰内容提⽰⽤户要输出的是什么信息,提⽰内容必须加双引号,提⽰内容要⽤分号和表达式分开。

(3)如同输⼊语句⼀样,输出语句可以⼀次完成输出多个表达式的功能,不同的表达式之间可⽤“,”分隔;输出语句还可以是“‘提⽰内容1’;表达式1,‘提⽰内容2’;表达式2,‘提⽰内容3’;表达式3,……”的形式;例如:PRINT “a,b,c:”;a,b,c。

3. 赋值语句
赋值语句的⼀般格式:变量=表达式
赋值语句中的“=”称作赋值号
作⽤:赋值语句的作⽤是将表达式所代表的值赋给变量;
要求:
(1)赋值语句左边只能是变量名字,⽽不是表达式,右边表达式可以是⼀个常量、变量或含变量的运算式。

如:2=x是错误的;
(2)赋值号的左右两边不能对换。

赋值语句是将赋值号右边的表达式的值赋给赋值号左边的变量。

如“A=B”“B=A”的含义运⾏结果是不同的,如x=5是对的,5=x是错的,A+B=C是错的,C=A+B是对的。

(3)不能利⽤赋值语句进⾏代数式的演算。

(如化简、因式分解、解⽅程等),如
这是实现不了的。

在赋值号右边表达式中每⼀个变量的值必须事先赋给确定的值。

在⼀个赋值语句中只能给⼀个变量赋值。

不能出现两个或以上的“=”。

但对于同⼀个变量可以多次赋值。

4. 条件语句
(1)“IF—THEN—ELSE”语句
格式:
IF 条件 THEN
语句1
ELSE
语句2
END IF
说明:在“IF—THEN—ELSE”语句中,“条件”表⽰判断的条件,“语句1”表⽰满⾜条件时执⾏的操作内容;“语句2”表⽰不满⾜条件时执⾏的操作内容;END IF表⽰条件语句的结束。

计算机在执⾏“IF—THEN—ELSE”语句时,⾸先对IF后的条件进⾏判断,如果符合条件,则执⾏THEN 后⾯的“语句1”;若不符合条件,则执⾏ELSE后⾯的“语句2”。

(2)“IF—THEN”语句
格式:
IF 条件 THEN
语句
END IF
说明:“条件”表⽰判断的条件;“语句”表⽰满⾜条件时执⾏的操作内容,条件不满⾜时,直接结束判断过程;END IF表⽰条件语句的结束。

计算机在执⾏“IF—THEN”语句时,⾸先对IF后的条件进⾏判断,如果符合条件就执⾏THEN后边的语句,若不符合条件则直接结束该条件语句,转⽽执⾏其它后⾯的语句。

5. 循环语句
(1)当型循环语句
当型(WHILE型)语句的⼀般格式为:
WHILE 条件
循环体
END
说明:计算机执⾏此程序时,遇到WHILE语句,先判断条件是否成⽴,如果成⽴,则执⾏WHILE和END之间的循环体,然后返回到WHILE语句再判断上述条件是否成⽴,如果成⽴,再执⾏循环体,这个过程反复执⾏,直到⼀次返回到WHILE语句判断上述条件不成⽴为⽌,这时不再执⾏循环体,⽽是跳到END语句后,执⾏END后⾯的语句。

因此当型循环⼜称“前测试型”循环,也就是我们经常讲的“先测试后执⾏”、“先判断后循环”。

(2)直到型循环语句(A版)
直到型(UNTIL型)语句的⼀般格式为:
DO
循环体
LOOP UNTIL 条件
说明:计算机执⾏UNTIL语句时,先执⾏DO和LOOP UNTIL之间的循环体,然后判
断“LOOP UNTIL”后⾯的条件是否成⽴,如果条件成⽴,返回DO语句处重新执⾏循环体。

这个过程反复执⾏,直到⼀次判断 “LOOP UNTIL”后⾯的条件不成⽴为⽌,这时不再返回执⾏循环体,⽽是跳出循环体执⾏“LOOP UNTIL 条件”下⾯的语句。

因此直到型循环⼜称“后测试型”循环,也就是我们经常讲的“先执⾏后测试”、“先循环后判断”。

(3)FOR循环(B版)
【典型例题】
例1.下列说法正确的是()
A. 算法就是某个问题的解题过程;
B. 算法执⾏后可以产⽣不同的结果;
C. 解决某⼀个具体问题算法不同结果不同;
D. 算法执⾏步骤的次数不可以为很⼤,否则⽆法实施。

解:答案为选项B;选项B,例如:判断⼀个整数是否为偶数,结果为“是偶数”和“不是偶解:
数”两种;选项A,算法不能等同于解法;选项C,解决某⼀个具体问题算法不同结果应该相同,否则算法构造得有问题;选项D,算法可以为很多次,但不可以⽆限次。

结果。

通常把算法过程称为“数学机械化”。

数学机械化的最⼤优点是它可以借助计算机来完成;实际上处理任何问题都需要算法。

如:中国象棋有中国象棋的棋谱、⾛法、胜负的评判准则;⽽国际象棋有国际象棋的棋谱、⾛法、胜负的评判准则;再⽐如申请出国有⼀系列的先后⼿续,购买物品也有相关的⼿续……。

例2.下列语句中是算法的个数为()
①从济南到巴黎:先从济南坐⽕车到北京,再坐飞机到巴黎;
②统筹法中“烧⽔泡茶”的故事;
③测量某棵树的⾼度,判断其是否是⼤树;
④已知三⾓形的⼀部分边长和⾓,借助正余弦定理求得剩余的边⾓,再利⽤三⾓形的⾯积公式求出该三⾓形的⾯积。

A. 1
B. 2
C. 3
D. 4
解:
解:正确选项为C,③中我们对“树的⼤⼩”没有明确的标准,⽆法完成任务,不是有效的算法构造。

①中,勾画了从济南到巴黎的⾏程安排,完成了任务;②中,节约时间,烧⽔泡茶完成了任务;④中,纯数学问题,借助正、余弦定理解三⾓形,进⽽求出三⾓形的⾯积。

点评:算法过程要做到能⼀步⼀步的执⾏,每⼀步执⾏的操作,必须确切,不能含混不点评:
清,且在有限步后必须得到问题的结果。

例3. ⼀个⼈带着三只狼和三只羚⽺过河,只有⼀条船,同船可容纳⼀个⼈和两只动物,没有⼈在的时候,如果狼的数量不少于羚⽺的数量就会吃羚⽺。

该⼈如何将动物转移过河?请设计算法?
解:任何动物同船不⽤考虑动物的争⽃但需考虑承载的数量,还应考虑到两岸的动物都得保解:
证狼的数量要少于羚⽺的数量,故在算法的构造过程中尽可能保证船⾥⾯有狼,这样才能使得两岸的羚⽺数量占到优势,具体算法如下:
算法步骤:
第⼀步:⼈带两只狼过河,并⾃⼰返回;
第⼆步:⼈带⼀只狼过河,⾃⼰返回;
第三步:⼈带两只羚⽺过河,并带两只狼返回;
第四步:⼈带⼀只⽺过河,⾃⼰返回;
第五步:⼈带两只狼过河。

点评:算法是解决某⼀类问题的精确描述,有些问题使⽤形式化、程序化的刻画是最恰当点评:
的。

这就要求我们在写算法时应精练、简练、清晰地表达,要善于分析任何可能出现的情况,体现思维的严密性和完整性。

本题型解决问题的算法中某些步骤重复进⾏多次才能解决,在现实⽣活中,很多较复杂的问题经常遇到这样的问题,设计算法的时候,如果能够合适地利⽤某些步骤的重复,不但可以使得问题变得简单,⽽且可以提⾼⼯作效率。

例4. 这是中国古代的⼀个著名算法案例:⼀群⼩兔⼀群鸡,两群合到⼀群⾥,要数腿48,要数脑袋17,多少⼩兔多少鸡?
解:求解鸡兔的问题简单直观,却包含着深刻的算法思想。

应⽤解⼆元⼀次⽅程组的⽅法来求解鸡兔同笼问题。

第⼀步:设有⼩鸡x只,⼩兔y只,则有
第⼆步:将⽅程组中的第⼀个⽅程两边乘-2加到第⼆个⽅程中去,得到,得到y=7;
第三步:将y=7代⼊(1)得x=10。

多,有的计算量很⼤,有时候完全依靠⼈⼒完成这些⼯作很困难。

但是这些恰恰是计算机的长处,它能不厌其烦的、枯燥的、重复的、繁琐的⼯作。

但算法也有优劣,我们要追求⾼效。

例5.写出通过尺轨作图确定线段AB⼀个5等分点的算法。

解:我们借助于平⾏线定理,把位置的⽐例关系变成已知的⽐例关系,只要按照规则⼀步⼀步去做就能完成任务。

算法分析:
第⼀步:从已知线段的左端点A出发,任意作⼀条与AB不平⾏的射线AP;
第⼆步:在射线上任取⼀个不同于端点A的点C,得到线段AC;
第三步:在射线上延AC的⽅向截取线段CE=AC;
第四步:在射线上延AC的⽅向截取线段EF=AC;
第五步:在射线上延AC的⽅向截取线段FG=AC;
第六步:在射线上延AC的⽅向截取线段GD=AC,那么线段AD=5AB;
第七步:连接DB;
第⼋步:过C作BD的平⾏线,交线段AB于M,这样点M就是线段AB的⼀个5等分点。

程序框图:
点评:
点评:这个算法步骤具有⼀般性,对于任意⾃然数n,都可以按照这个算法的思想,设计出确定线段的n等分点的步骤,解决问题。

例6.有关专家建议,在未来⼏年内,中国的通货膨胀率保持在3%左右,这将对我国经济的稳定有利⽆害。

所谓通货膨胀率为3%,指的是每年消费品的价格增长率为3%。

在这种情况下,某种品牌的钢琴2004年的价格是10 000元,请⽤流程图描述这种钢琴今后四年的价格变化情况,并输出四年后的价格。

解:⽤P表⽰钢琴的价格,不难看出如下算法步骤:
解:
2005年P=10000×(1+3%)=10300;
2006年P=10300×(1+3%)=10609;
2007年P=10609×(1+3%)=10927.27;
2008年P=10927.27×(1+3%)=11255.09;
因此,价格的变化情况表为:
年份20042005200620072008钢琴的价格10000103001060910927.2711255.09程序框图为:
点评:顺序结构必须严格按照传统的解决数学问题的解题思路,将问题解决掉。

最后将解点评:
题步骤 “细化”就可以。

“细化”指的是写出算法步骤、画出程序框图。

例7.设计算法判断⼀元⼆次⽅程是否有实数根,并画出相应的程序框图。

解:算法步骤如下:
解:
第⼀步:输⼊⼀元⼆次⽅程的系数:a,b,c;
第⼆步:计算△的值;
第三步:判断△≥0是否成⽴。

若△≥0成⽴,输出“⽅程有实根”;否则输出“⽅程⽆实根”。

结束算法。

相应的程序框图如下:
点评:根据⼀元⼆次⽅程的意义,需要计算判别式△的值。

再分成两种情况处理:(1)当点评:
△≥0时,⼀元⼆次⽅程有实数根;(2)当△<0时,⼀元⼆次⽅程⽆实数根。

该问题实际上是⼀个分类讨论问题,根据⼀元⼆次⽅程系数的不同情况,最后结果就不同。

因⽽当给出⼀个⼀元⼆次⽅程时,必须先确定判别式的值,然后再⽤判别式的值的取值情况确定⽅程是否有解。

该例仅⽤顺序结构是办不到的,要对判别式的值进⾏判断,需要⽤到条件结构。

例8.(1)设计算法,求的解,并画出流程图。

解:
解:对于⽅程来讲,应该分情况讨论⽅程的解。

我们要对⼀次项系数a和常数项b的取值情况进⾏分类,分类如下:
①当a≠0时,⽅程有唯⼀的实数解是;
②当a=0,b=0时,全体实数都是⽅程的解;
③当a=0,b≠0时,⽅程⽆解。

联想数学中的分类讨论的处理⽅式。

可得如下算法步骤:
第⼀步:判断a是否不为零。

若成⽴,输出结果“解为”;
第⼆步:判断a=0,b=0是否同时成⽴。

若成⽴,输出结果“解集为R”;
第三步:判断a=0,b≠0是否同时成⽴。

若成⽴,输出结果“⽅程⽆解”,结束。

程序框图:
(2)设计算法,找出输⼊的三个不相等实数a、b、c中的最⼤值,并画出流程图。

解析:算法步骤:
第⼀步:输⼊a,b,c的值;
第⼆步:判断a>b是否成⽴,若成⽴,则执⾏第三步;否则执⾏第四步;
第三步:判断a>c是否成⽴,若成⽴,则输出a,并结束;否则输出c,并结束;
第四步:判断b>c是否成⽴,若成⽴,则输出b,并结束;否则输出c,并结束。

程序框图:
点评:条件结构嵌套与条件结构叠加的区别是:
点评:
(1)条件结构叠加,程序执⾏时需依次对“条件1”、“条件2”、“条件3”……都进⾏判断,只有遇到能满⾜的条件才执⾏该条件对应的操作。

(2)条件结构的嵌套中,“条件2”是“条件1”的⼀个分⽀,“条件3”是“条件2”的⼀个分⽀,……依此类推,这些条件中很多在算法执⾏过程中根据所处的分⽀位置不同可能不被执⾏。

(3)条件结构嵌套所涉及的“条件2”、“条件3”……是在前⾯的所有条件依次⼀个⼀个的满
⾜“分⽀条件成⽴”的情况下才能执⾏的此操作,是多个条件同时成⽴的叠加和复合。

例9.设计⼀个算法,求的值,并画出程序框图。

解:算法步骤:
第⼀步:sum=0;
第⼆步:i=0;
第三步:sum=sum+2i;
第四步:i=i+1;
第五步:判断i是否⼤于49,若成⽴,则输出sum,结束;否则返回第三步重新执⾏。

程序框图:
点评:1. 如果算法问题⾥涉及的运算进⾏了许多次重复的操作,且先后参与运算的数之间有相同的规律,就可引⼊变量循环参与运算(我们称之为循环变量),应⽤于循环结构。

在循环结构中,要注意根据条件设计合理的计数变量、累加和累乘变量及其个数等,特别要求条件的表述要恰当、精确。

2. 累加变量的初始值⼀般取成0,⽽累乘变量的初始值⼀般取成1。

例10. 相传古代的印度国王要奖赏国际象棋的发明者,问他需要什么。

发明者说:陛下,在国际象棋的第⼀个格⼦⾥⾯放1粒麦⼦,在第⼆个格⼦⾥⾯放2粒麦⼦,第三个格⼦放4粒麦⼦,以后每个格⼦中的麦粒数都是它前⼀个格⼦中麦粒数的⼆倍,依此类推(国际象棋棋盘共有64个格⼦)。

请将这些麦⼦赏给我,我将感激不尽。

国王想这还不容易,就让⼈扛了⼀袋⼩麦,但不到⼀会⼉就没了,最后⼀算结果,全印度⼀年⽣产的粮⾷也不够。

国王很奇怪,⼩⼩的“棋盘”,不⾜100个格⼦,如此计算怎么能放这么多麦⼦?试⽤程序框图表⽰⼀下算法过程。

解:将实际问题转化为数学模型,该问题就是来求的和
点评:对于开放探究问题,我们可以建⽴数学模型(上⾯的题⽬要与等⽐数列的定义、性点评:
质和公式联系起来)和过程模型来分析好算法,通过设计算法以及语⾔的描述选择⼀些成熟的办法进⾏处理。

像上⾯应⽤到了等⽐数列的通项公式和前n项和公式。

例11.请写出下⾯运算输出的结果。

(1)
PRINT “d=”;d
(2)
PRINT “a=,b=,c=”;a,b,c
(3)
PRINT “a=,b=,c=”;a,b,c
解析:(1)16;语句是将a,b和的⼀半赋值给变量c,语句是将c的平⽅赋值给d,最后输解析:
出d的值。

(2)1,2,3;语句是将a,b的和赋值给c,语句是将的值赋值给了b。

(3)20,30,20;经过语句后a,b,c的值是20,20,30。

经过语句后a,b,c的值是20,30,30。

经过语句后a,b,c的值是20,30,20。

点评:语句的识别问题是⼀个逆向性思维,⼀般我们认为我们的学习是从算法步骤(⾃然点评:
语⾔)⾄程序框图,再到算法语⾔(程序)。

如果将程序摆在我们的⾯前时,我们要从识别逐个语句,整体把握,概括程序的功能。

例12.编写程序,计算数列{an}的前20项的和。

(其中数列的前⼏项分别为
1,1,2,3,5,8,……)
解:这是“F ibonacci数列”的典型特征,从第三项起每⼀项都是它前两项的和,即。

解:
程序如下:
a=1
b=1
s=0
i=3
WHILE i<=20
s=s+a+b
t=a
a=b
b=b+t
i=i+1
END
PRINT s
END
点评:1. 计数变量的作⽤⼀般是统计循环体执⾏的次数,改变循环条件的取值,为结束循环作准备。

譬如:计算等差、等⽐数列的前n项的和,n就是计数变量的临界值,在当型结构
中“⼩于等于n”维持循环,⽽在直到型循环结构中“⼤于n”跳出循环。

2. 累加变量是最终的输出结果。

每进⼊⼀次循环体随着计数变量改变⽽改变。

累加变量的初始值通常为0。

[思维⼩结]
描述算法可以⽤不同的⽅式。

例如:可以⽤⾃然语⾔和数学语⾔加以叙述,也可以借助形式语⾔(算法语⾔)给出精锐的说明,也可以⽤程序框图直观的显⽰算法全貌。

1. ⾃然语⾔
⾃然语⾔就是⼈们⽇常使⽤的语⾔,可以是⼈之间⽤来交流的语⾔、术语等,通过分步的⽅式来表达出解决问题的过程。

其优点为:好理解,当算法的执⾏都是先后顺序时⽐较容易理解;
缺点是:表达冗长,且不易表达清楚步骤间的重复操作、分情况处理现象、先后顺序等问题。

2. 程序框图
程序框图是⽤规定的图形符号来表达算法的具体过程。

优点是:简捷形象、步骤的执⾏⽅向直观明了。

3. 程序语⾔
程序语⾔是将⾃然语⾔和框图所表达的解决问题的步骤⽤特定的计算机所识别的低级和⾼级语⾔编写⽽成。

特点:能在计算机上执⾏,但格式要求严格。

程序框图
1. 学习这部分知识的时候,要掌握各种图形的形状、作⽤以及使⽤规则
2. 画程序框图的规则如下:
(1)⼀个完整的程序框图必须有起⽌框,⽤来表⽰程序的开始和结束。

(2)使⽤标准的图形符号表⽰操作,带箭头的流程线表⽰算法步骤的先后顺序,框图⼀般按从上到下、从左到右的⽅向画。

(3)算法中间要处理数据或计算,可分别写在不同的处理框中。

(4)如果⼀个流程由于纸⾯等原因需要分开画。

要在断开处画上连结点,并标出连结的号码。

实际上它们是同⼀点,只是化不开才分开画。

⽤连结点可避免流程线的交叉或过长,使流程图清晰。

(5)注释框不是流程图必需的部分,只是为了提⽰⽤户⼀部分框图的作⽤以及对某些框图的操作结果进⾏说明。

它帮助阅读流程图的⽤户更好地理解流程图的来龙去脉。

(6)在图形符号内⽤于描述的语⾔要⾮常简练清楚。

3. 在设计算法的过程中,解决问题的基本思想常常很简单、很清楚,但表述参与运算的数值的频繁变换却很⿇烦。

为了解决这个问题,需要在程序中引⼊变量。

前⾯通过对函数概念的学习,我们就已经了解变量的含义:在研究问题的过程中可以取代不同数值的量称为变量。

程序中⼀些重要的函数也很有⽤处,如取平⽅根函数SQR(x)=|x|,取绝对值函数
ABS(x)=。

变量与函数是中学数学⾥⾯最重要的和最基本的概念,在算法的设计⾥⾯仍然发挥着重要的和最基本的作⽤,它们会使得算法的表达变得⾮常整洁、清楚。

4. 赋值语句在程序运⾏时给变量赋值;“=”的右侧必须是表达式,左侧必须是变量;⼀个语句只能给⼀个变量赋值;有计算功能;将⼀个变量的值赋给另⼀个变量时,前⼀个变量的值保持不变;可先后给⼀个变量赋多个不同的值,但变量的取值只与最后⼀次赋值有关。

5. 条件语句的主要功能是⽤来实现算法中的条件结构。

因为⼈们对计算机运算的要求不仅仅是⼀些简单的代数运算,⽽是经常需要计算机按照条件进⾏分析、⽐较、判断,并且按照判断后的不同情况进⾏不同的操作和处理。

如果是要解决
像“判断⼀个数的正负”、“⽐较数之间的⼤⼩”,“对⼀组数进⾏排序”、“求分段函数的函数值”等很多问题,计算机就需要⽤到条件语句。

【模拟试题】
1、下⾯对算法描述正确的⼀项是:()
A. 算法只能⽤⾃然语⾔来描述
B. 算法只能⽤图形⽅式来表⽰
C. 同⼀问题可以有不同的算法
D. 同⼀问题的算法不同,结果必然不同
2、⽤⼆分法求⽅程的近似根的算法中要⽤哪种算法结构()
A. 顺序结构
B. 条件结构
C. 循环结构
D. 以上都⽤
3、将两个数交换,使,下⾯语句正确的⼀组是()
4、计算机执⾏下⾯的程序段后,输出的结果是()
PRINT ,
A. B. C. D.
5、当时,下⾯的程序段输出的结果是()
IF THEN
else
PRINT y
A. B. C. D.
6、⽤“秦九韶算法”计算多项式,当x=2时的值的过程中,要经过次乘法运算和次加法运算。

7、以下属于基本算法语句的是。

①INPUT语句;②PRINT语句;③IF-THEN语句;④DO语句;⑤END语句;
⑥WHILE语句;⑦END IF语句。

8、把“五进制”数转化为“⼗进制”数,再把它转化为“⼋进制”数。

9、⽤秦九韶算法求多项式
当时的值。

10、编写⼀个程序,输⼊正⽅形的边长,输出它的对⾓线长和⾯积的值。

11、某市公⽤电话(市话)的收费标准为:分钟之内(包括分钟)收取元;超过分钟部分按元/分钟加收费。

设计⼀个程序,根据通话时间计算话费。

【试题答案】
1、C 算法的特点:有穷性,确定性,顺序性与正确性,不唯⼀性,普遍性
2、D 任何⼀个算法都有顺序结构,循环结构⼀定包含条件结构,⼆分法⽤到循环结构
3、B 先把的值赋给中间变量,这样,再把的值赋给变量,这样,把的值赋给变量,这样
4、B 把赋给变量,把赋给变量,把赋给变量,把赋给变量,输出
5、D 该程序揭⽰的是分段函数的对应法则
6、来⾃课本上的思考题:⼀元次多项式问题
7、①,②,③,④,⑥基本算法语句的种类
8、解:
9、解:
10、解:“a=”;a
“l=”;l,“s=”;s
11、解:INPUT “通话时间”;t
“通话费⽤”;c。

相关文档
最新文档