算法初步
教学目的: 了解算法的含义,能用自然语言描述算法。 理解设计流程图表达解决问题的过程,了解算法和程序语言的区别;理解流程图的三种基本逻辑结构,会用流程图表示算法。 重点:算法与流程图的含义。 难点:算法在实际问题中的应用。
二、知识要点: (一)算法的概念 算法实际上就是解决一类问题的一种程序性方法,其特征为: 概括性、逻辑性、有穷性、不唯一性和普遍性.
(二)程序框图 利用程序框图表示算法,具有直观、形象的特点,能更清楚地展现算法的逻辑结构.
(三)算法的三种基本逻辑结构 顺序结构、选择结构、循环结构
(四)基本算法语句 1、输入语句:Read 2、输出语句:Print 3、赋值语句:变量表达式 4、条件语句:处理条件分支逻辑结构的算法语句.主要用if语句,其一般格式如下: If 条件A Then 语句B Else 语句C End If 条件语句的另一种格式为: If 条件 Then 语句 End If 5、循环语句: (1)For语句 For 变量I From “初值”To“终值”Step“步长” … End For (2) While语句 While 语句A … End While (3)注意while循环(当型)和until循环(直到型)两种形式. while循环的特点是先判断再执行循环.即当条件满足时,执行循环体. until循环的的特点是先执行循环再判断是否满足条件。
(五)算法结构图见下:
三、基础训练 1、执行下列算法: 其中循环10次S的值是________,程序运行结束时S的值是____________. 解:循环10次S的值是100;程序运行结束时S的值是 2、如果执行上面的程序框图,那么输出的 解: 3、(广东文7、艺术理6)下面左图是某县参加2007年高考的学生身高条形统计图,从左到右的各条形表示的学生人数依次记为A1、A2、…、A10(如A2表示身高(单位:cm)(150,155)内的学生人数).右图是统计左图中身高在一定范围内学生人数的一个算法流程图.现要统计身高在160~180cm(含160cm,不含180cm)的学生人数,那么在流程图中的判断框内应填写的条件是 解: 4、用“冒泡法”给数列按从大到小进行排序时,经过第一趟排序后得到的新数列为 。 答案: 注意是从大到小 5、用“秦九韶算法”计算多项式,当x=2时的值的过程中,要经过 次乘法运算和 次加法运算。 答案: 6、以下属于基本算法语句的是 。 ①INPUT语句;②PRINT语句;③IF-THEN语句;④DO语句;⑤END语句; ⑥WHILE语句;⑦END IF语句。 答案:①,②,③,④,⑥ 基本算法语句的种类 7、将化成四进位制数的末位是____________。 答案:,,末位是第一个余数,注意:余数自下而上排列
【典型例题】 例1、以下是计算的程序框图,请写出对应的程序。 解: i=1 sum=0 WHILE i<=100 sum=sum+i i=i+1 WEND PRINT sum END
例2、函数,写出求函数的函数值的程序。 解:INPUT “x=”;x IF x>=0 and x<=4 THEN y=2x ELSE IF x<=8 THEN y=8 ELSE y=2*(12-x) END IF END IF PRINT y END
例3、用辗转相除法或者更相减损术求三个数的最大公约数. 解: 324=243×1+81 243=81×3+0 则 324与 243的最大公约数为 81 又 135=81×1+54 81=54×1+27 54=27×2+0 则 81 与 135的最大公约数为27 所以,三个数 324、243、135的最大公约数为 27. 另法 为所求。
例4、意大利数学家菲波拉契,在1202年出版的一书里提出了这样的一个问题:一对兔子饲养到第二个月进入成年,第三个月生一对小兔,以后每个月生一对小兔,所生小兔能全部存活并且也是第二个月成年,第三个月生一对小兔,以后每月生一对小兔.问这样下去到年底应有多少对兔子? 试画出解决此问题的程序框图,并编写相应的程序. 解: 根据题意可知,第一个月有对小兔,第二个月有对成年兔子,第三个月有两对兔子,从第三个月开始,每个月的兔子对数是前面两个月兔子对数的和,设第个月有对兔子,第个月有对兔子,第个月有对兔子,则有,一个月后,即第个月时,式中变量的新值应变第个月兔子的对数(的旧值),变量的新值应变为第个月兔子的对数(的旧值),这样,用求出变量的新值就是个月兔子的数,依此类推,可以得到一个数序列,数序列的第项就是年底应有兔子对数,我们可以先确定前两个月的兔子对数均为,以此为基准,构造一个循环程序,让表示“第×个月的从逐次增加,一直变化到,最后一次循环得到的就是所求结果. 流程图和程序如下:
例5、把“五进制”数转化为“十进制”数,再把它转化为“八进制”数。 解:
例6、用秦九韶算法求多项式当时的值。 解:
例7、某市公用电话(市话)的收费标准为:分钟之内(包括分钟)收取元;超过分钟部分按元/分钟加收费。设计一个程序,根据通话时间计算话费。 解:INPUT “通话时间”;t
“通话费用”;c
例8、根据条件把流程图补充完整,求内所有奇数的和; (1)处填 (2) 处填 答案:(1)(2)
例9、已知一个三角形的三边边长分别为, 设计一个算法,求出它的面积。 解:第一步:取 第二步:计算 第三步:计算 第四步:输出的值
例10、用二分法求方程在上的近似解,精确到,写出算法。画出流程图,并写出算法语句. 解:算法如下: 1、取中点,将区间一分为二 2、若,则就是方程的根;否则所求根在的左侧或右侧 若,则,以代替; 若,则,以代替; 3、若,计算终止 此时,否则转到第1步 算法语句: Input repeat if then print else if then else until end 流程图:
例11、下面的茎叶图是某班在一次测验时的成绩,伪代码用来同时统计女生、男生及全班成绩的平均分,试回答下列问题: (1)在伪代码中,“k=0”的含义是什么?横线①处应填什么? (2)执行伪代码,输出S,T,A的值分别是多少? (3)请分析该班男女生的学习情况、 解:(1) 全班32名学生中,有15名女生,17名男生、在伪代码中,根据“S←S/15,T←T/17”可以推知,“k=1”和“k=0”分别代表男生和女生;S,T,A分别代表女生、男生及全班成绩的平均分;横线①处应填“(S+T)/32”、 (2)女生、男生及全班成绩的平均分分别为S=78,T=77,A≈77.47 、 (3) 15名女生成绩的平均分为78,17名男生成绩的平均分为77、从中可以看出女生成绩比较集中,整体水平稍高于男生;男生中的高分段比女生高,低分段比女生多,相比较男生两极分化比较严重、
【模拟试题】 1、 阅读下边的程序框图,若输入的是100,则输出的变量和的值依次是 2、给出下面的程序框图,那么,输出的数是 .
第1题 第2题 3、在如下程序框图中,已知:,则输出的是_________ _. 第3题 4、程序框图如下: 第4题 如果上述程序运行的结果为S=132,那么判断框中应填入 . 5、如图,该程序运行后输出的结果为 . 6、若框图所给程序运行的结果为S=90,那么判断框中应填入的关于k的判断条件是 .
第5题 第6题 7、下边流程图给出的程序执行后输出的结果是 . 8、已知函数,以下程序框图表示的是给定x值,求其相应函数值的算法,请将该程度框图补充完整. 其中①处应填 ,②处应填 .
第7题 第8题 9、一个算法的程序框图如右图所示,若该程序输出的结果为,则判断框中应填入的条件是 . 第9题 10、用冒泡法对一组数: 进行排序时,经过 趟排序后,得到这一组数: 11、三个数的最大公约数是_________________ 12、二进制数转换成十进制数是_________________. 13、下面程序运行后输出的结果为_______________. 14、下面程序运行后实现的功能为_______________.
第13题 第14题
【试题答案】 1、2550;2500 2、2450 3、 4、 5、45 6、 7、 8、 9、 10、3. 11、 12、 . 13、 14、将按从大到小的顺序排列后再输出
|
联系客服