1 算法的基本思想
1算法分析的目的是(

---------------------------------------------------------------最新资料推荐------------------------------------------------------1算法分析的目的是(1. 算法分析的目的是( ) A. 找出数据结构的合理性B. 找出算法中输入和输出之间的关系C. 分析算法的易懂性和可靠性 D. 分析算法的效率以求改进【参考答案】 D 2. 在单链表中,增加头结点的目的是( ) A. 方便运算的 B.使单链表至少有一个结点 C. 标识表结点中首结点的位置 D.说明单链表是线性表的链式存储实现【参考答案】 A 3. 软件开发离不开系统环境资源的支持,其中必要的测试数据属于( ) A. 硬件资源 B. 通信资源 C. 支持软件 D. 辅助资源【参考答案】 D 4. 分布式数据库系统不具有的特点是( ) A. 数据分布性和逻辑整体性 B. 位置透明性和复制透明性 C. 分布性D. 数据冗余【参考答案】 D 5. 下列数据模型中,具有坚实理论基础的是( ) A. 层次模型 B. 网状模型 C. 关系模型 D. 以上 3 个都是【参考答案】 C 6. 栈底到栈顶依次存放元素 A、 B、 C、 D,在第五个元素 E 入栈前,栈中元素可以出栈,则出栈序列可能是( ) A. ABCED B. DCBEA C. DBCEA D. CDABE 【参考答案】 B 7. 在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在,与程序的效率相比,人们更重视程序的( ) A. 安全性 B. 一致性 C. 可理解性 D. 合理性【参考答案】 C 8. 软件开发的结构化生命周期方法将软件生命周期划分成( ) A. 定义、开发、运行1 / 14维护 B. 设计阶段、编程阶段、测试阶段 C. 总体设计、详细设计、编程调试 D. 需求分析、功能定义、系统设计【参考答案】 A 9. 在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有( ) A. 特定的数据模型B. 数据无冗余C. 数据可共享D. 专门的数据管理软件【参考答案】 A 10. 实体是信息世界中广泛使用的一个术语,它用于表示( ) A. 有生命的事物 B. 无生命的事物 C. 实际存在的事物 D. 一切事物【参考答案】 C 11. 下面叙述中正确的是() A. C 语言编译时不检查语法 B. C 语言的子程序有过程和函数两种 C. C 语言的函数可以嵌套定义 D.C 语言的函数可以嵌套调用【参考答案】D 12. 以下叙述中正确的是() A. 构成 C 程序的基本单位是函数 B. 可以在一个函数中定义另一个函数 C. main()函数必须放在其他函数之前 D. 所有被调用的函数一定要在调用之前进行定义【参考答案】 A 13. 下列程序段的输出结果是() int a=1234; float b=123. 456; double c=12345. 54321; printf( %2d, %2.1f, %2. 1f , a, b, c) ; A. 无输出 B. 12,123. 5, 12345. 5 C. 1234, 123. 5, 12345. 5 D. 1234, 123.4, 1234. 5 【参考答案】 C 14. 设有以下程序段 int x=0, s=0; while(!x!=0) s+=++x; printf( %d , s) ; 则() A.运行程序段后输出 0 B. 运行程序段后输出 1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次【参考答案】 B---------------------------------------------------------------最新资料推荐------------------------------------------------------15. 以下程序段的描述,正确的是() x=-1; do{x=x*x; } while(!x) ; A. 是死循环 B. 循环执行两次C. 循环执行一次D. 有语法错误【参考答案】 C 16. 下列程序执行后的输出结果是() void func1(int i) ; voidfunc2(int i) ; char st[] = hello, friend! ; voidfunc1(int i) { printf( %c , st[i] ) ; if(i3) {i+=2;func2(i) ; } } void func2(int i) { printf( %c , st[i]) ; if(i3) {i+=2; func1(i) ; } } main(){ int i=0; func1(i) ; printf( \ n ) ; } A. hello B. helC. hloD. hlm 【参考答案】 C 17. 以下程序的输出结果是() #include stdio. h void prt(int *x, int*y, int*z){ printf( %d, %d, %d\ n , ++*x, ++*y, *(z++) ) ; } main(){ int a=10, b=40, c=20; prt(a, b, c) ; prt(a, b, c) ; }A. 11, 42, 31B. 11, 41, 20 12, 22, 41 12,42, 20 C. 11, 21, 40 D. 11, 41, 21 11, 21, 21 12, 42, 22 【参考答案】 B 18. 下列程序执行后的输出结果是() main() { int a[3][3] , *p, i; p=a[0][0] ; for(i=1; i9; i++) p[i] =i+1; printf( %d\ n ,a[1][2] ) ; } A. 3 B. 6 C. 9 D. 随机数【参考答案】 B 19. 下列程序执行后的输出结果是() main(){ char arr[2][4] ; strcpy(arr, you ) ; strcpy(arr3 / 14[1] , me ) ; arr[0][3] = ; printf( s\ n ,arr) ; } A. youme B. you C. me D. err 【参考答案】A 20. 有以下程序 int f(int n) { if(n==1) return 1;else return f(n-1) +1; } main() { int i, j=0;for(i=1; i3; i++) j+=f(i) ; printf( %d\ n , j) ; } 程序运行后的输出结果是() A. 4 B. 3 C. 2 D. 1 【参考答案】 B 21. 以下对结构体类型变量的定义中,不正确的是() A. typedef struct aa B. #define AA structaa { int n; AA{ int n; float m; float m; } AA; } tdl; AA tdl;C. structD. struct { int n; { int n; float m; float m; }aa; } tdl; struct aa tdl;【参考答案】 C 22. 若有以下程序 #include stdio. h voidf(int n) ; main() { void f(int n) ; f(5) ; }void f(int n) { printf( %d\ n , n) ; } 则以下叙述中不正确的是() A. 若只在主函数中对函数 f 进行说明,则只能在主函数中正确调用函数 f B. 若在主函数前对函数 f 进行说明,则在主函数和其后的其他函数中都可以正确调用函数 fC. 对于以上程序,编译时系统会提示出错信息:提示对 f 函数重复说明 D. 函数 f 无返回值,所以可用void 将其类型定义为无返回值型【参考答案】 C 23. 有以下---------------------------------------------------------------最新资料推荐------------------------------------------------------程序 #include stdio. h main() { FILE *fp; int i=20,j=30, k, n; fp=fopen( d1. dat , w ) ; fprintf(fp, %d\n , i) ; fprintf(fp, %d\n , j) ; fclose(fp) ; fp=fopen( d1. dat , r ) ; fscanf(fp, %d%d , k, n) ; printf( %d%d\ n , k, n) ; fclose(fp) ; } 程序运行后的输出结果是() A. 20 30 B. 20 50 C. 30 50 D. 3020 【参考答案】 A 24. 下面 4 个选项中,均是不合法的用户标识符的选项是() A. A P_0 B. float la0 _A C.b-a goto int D. _123 temp int 【参考答案】 C 25. 能正确表示逻辑关系:a10 或 a0 的 C 语言表达式是() A. a=10 or a=0 B. a=0| a=10 C. a=10 a=0 D. a=10|| a=0 【参考答案】D 26. 若有说明:int *p, m=5, n; 以下正确的程序段是() A. p=n; scanf( %d , p; ) B. p=n; scanf( %d , *p) C. scanf( %d , n) ; *p=n; D. p=n; *p=m; 【参考答案】 D 27. 有如下程序 main() { int a=2, b=-1, c=2; if(ab) if(b0)c=0; else c++; printf( %d\ n , c) ; } 该程序的输出结果是() A. 0 B. 1 C. 2 D. 3 【参考答案】C 28. 有一堆零件(100 到 200 之间),如果分成 4 个零件一组的若干组,则多 2 个零件;若分成 7 个零件一组,则多 3 个5 / 14零件;若分成 9 个零件一组,则多5 个零件。
(一)八大算法思想

(⼀)⼋⼤算法思想⼋⼤算法⼋⼤算法:枚举、递推、递归、分治、贪⼼、试探法、动态迭代和模拟算法思想。
⼀、枚举算法思想(暴⼒算法) 将问题的所有可能答案⼀⼀列举,根据判断条件判断此答案是否合适,⼀般⽤循环实现。
经典运⽤:百钱买百鸡、填写运算符⼆、递推算法思想 1.顺推法:从已知条件出发,逐步推算出要解决问题的⽅法。
2.逆推法:从已知结果出发,⽤迭代表达式逐步推算出问题开始的条件,即顺推法的逆过程。
经典运⽤:斐波那契数列(顺推法)、银⾏存款(逆推法)三、递归算法思想 1.递归过程⼀般通过函数或⼦过程实现; 2.递归算法在函数或⼦过程的内部,直接或间接调⽤⾃⼰的算法 3.递归算法实际上是把问题转化为规模缩⼩了的同类问题的⼦问题,然后再递归调⽤函数或过程来表⽰问题的解 注意:必须有⼀个明确的递归结束条件;如果递归次数过多,容易造成栈溢出。
经典运⽤:汉诺塔问题、阶乘问题四、分治算法思想 将⼀个规模为N的问题分解为K个规模较⼩的⼦问题,这些⼦问题相互独⽴且与原问题性质相同。
只要求出⼦问题的解,就可得到原问题的解。
⼀般步骤: 1.分解,将要解决的问题划分成若⼲个规模较⼩的同类问题 2.求解,当⼦问题划分得⾜够⼩时,⽤较简单的⽅法解决 3.合并,按原问题的要求,将⼦问题的解逐层合并构成原问题的解 经典运⽤:⼤数相乘问题、⽐赛⽇程安排五、贪⼼算法思想 从问题的某⼀个初始解出发,逐步逼近给定的⽬标,以便尽快求出更好的解。
局限: 不能保证最后的解是最优的; 不能求最⼤最⼩解问题; 只能求满⾜某些约束条件的可⾏解范围。
基本过程: 1.从问题的某⼀初始解出发 2.while能向给定总⽬标前进⼀步 3.求出可⾏解的⼀个解元素 4.由所有解元素组合成问题的⼀个可⾏解 经典运⽤:装箱问题、找零⽅案六、试探算法(回溯法) 在试探算法中,放弃当前候选解,并继续寻找下⼀个候选解的过程称为回溯。
扩⼤当前候选解的规模,以继续试探的过程称为向前试探。
江西省信丰县第二中学高中数学 2.1.1 算法的基本思想(

学案必修三第二章第一节第一课时算法的基本思想(一)一、学习目标1.了解算法的含义,体会算法的思想。
2.能够用自然语言叙述算法,掌握正确的算法应满足的要求。
3.培养学生逻辑思维能力与表达能力.二、重点、难点重点: 算法概念以及用自然语言描述算法计。
难点: 用自然语言描述算法三、课前预习[情景材料]算法不仅是数学及其应用的重要组成部分,也是计算机科学的重要基础. 在现代社会里,计算机已经成为人们日常生活和工作不可缺少的工具. 听音乐、看电影、玩游戏、打字、画卡通画、处理数据,计算机几乎渗透到了人们生活的所有领域. 那么,计算机是怎样工作的呢?要想弄清楚这个问题,算法的学习是一个开始. 同时,算法有利于发展有条理的思考与表达的能力,提高逻辑思维能力.在以前的学习中,虽然没有出现算法这个名词,但实际上在数学学习中已经渗透了大量的算法思想,如四则运算的过程、求解方程的步骤等等,完成这些工作都需要一系列程序化的步骤,这就是算法的思想.阅读教材相关内容,填写下列空白:1.算法的概念算法是___________________________________。
在数学中,现代意义上的“算法”通常是指可以用计算机来解决的某一类问题的程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成..2.算法的特点:(1)有限性:一个算法的步骤序列是__________,必须在有限操作之后停止,不能是无限的.(2)确定性:算法中的每一步应该是确定的并且能有效地执行且得到________结果,而不应当是模棱两可.(3)顺序性与正确性:算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后继步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步都准确无误,才能完成问题.(4)不唯一性:求解某一个问题的解法不一定是唯一的,对于一个问题可以有不同的算法.(5)普遍性:很多具体的问题,都可以设计合理的算法去解决,如心算、计算器计算都要经过有限、事先设计好的步骤加以解决.3. __________的思想在算法设计中是一个最基本的思想,也是数学中思考的一个重要思想。
人教版高中数学必修三第一章第1节 1.1.1 算法的概念 课件(共65张PPT)

1.写出求方程 x 2 + bx + c = 0 的解的 一个算法 ,并画出算法流程图。
开始
计算△=b2 – 4 c
N
△≥0?
Y
输出无解
输出 x b
2a
结束
四、练习
2.任意给定3个正实数,设计一个算法,判断以这3个数为三 边边长的三角形是否存在.画出这个算法的程序框图.
算法步骤如下:
第一步:输入3个正实数 a,b,c;
计算机的问世可谓是20 世纪最伟大的科学 技术发明。它把人类社会带进了信息技术时代。 计算机是对人脑的模拟,它强化了人的思维智能;
21世纪信息社会的两个主要特征: “计算机无处不在” “数学无处不在”
21世纪信息社会对科技人才的要 求: --会“用数学”解决实际问题 --会用计算机进行科学计算
现算法代的研科究和学应用研正是究本课的程的三主题大!支柱
算法(2) 第一步,用2除35,得到余数1。因为余数 不为0,所以2不能整除35。
第二步,用3除35,得到余数2。因为余数 不为0,所以3不能整除35。
第三步,用4除35,得到余数3。因为余数 不为0,所以4不能整除35。
第四步,用5除35,得到余数0。因为余数 为0,所以5能整除35。因此,35不是质数
语句A
左图中,语句A和语句B是依次执 行的,只有在执行完语句A指定的
操作后,才能接着执行语句B所指
语句B
定的操作.
四、练习 2.设计一个求任意数的绝对值的算法,并画出程序框图。
2. 算法:
框图:
第一步:输入x的值;
第二步:若x≥0,则输出x; 若否,则输出-x;
开始 输入x
x≥0?
是
输出x
2.1.1算法的基本思想导学案-高中数学北师大版必修3

§2.1算法的基本思想【学习目标】1.通过对解决具体问题过程与步骤的分析,体会算法的思想,了解算法的含义及其基本特征。
(重点)2.能分析具体问题,抽象出算法的过程,培养抽象概括能力、语言表达能力和逻辑思维能力。
(难点)3.通过算法的学习,让学生体验到数学与现实世界的关系、数学与计算机技术的关系,从而提高学生学习数学的兴趣。
一、知识记忆与理解【自主预习】阅读教材P75~P83“练习”以上部分,完成下列问题。
1、算法的概念:2、算法的基本思想:3、算法的特征:4、是不是任何一个算法都有明确的结果?5、做任何一件事情都得有算法吗?6、算法与解法的区别与关系.【预习检测】1、完成课本78p页练习1,2题及习题。
2、判断(正确的打“√”,错误的打“×”)(1)求解某一类问题的算法是唯一的.( )(2)算法执行后一定产生确定的结果.( )(3)算法只能解决一个问题,不能重复使用.( )(4)算法的步骤必须有限.( )3、下列对算法的理解不.正确的是( )A.一个算法应包含有限的步骤,而不能是无限的B.算法可以理解为由基本运算及规定的运算顺序构成的完整的解题步骤C.算法中的每一步都应当有效地执行,并得到确定的结果D.一个问题只能设计出一个算法4、下列语句中是算法的有( )①做饭需要刷锅、淘米、加水、加热这些步骤;②解一元一次方程的步骤是去分母、去括号、移项、合并同类项、系数化为1;③方程x2-1=0有两个实根;④求1+2+3+4的值,先计算1+2=3,再由3+3=6,6+4=10得最终结果是10.A.1个B.2个C.3个D.4个二、思维探究与创新【问题探究】一、数值型计算问题的算法探究一:写出解方程x2-2x-3=0的一个算法.整理反思变式训练1:写出求方程组⎩⎪⎨⎪⎧3x -2y =14, ①x +y =-2 ②的解的算法.二、非数值型计算问题的算法探究二:各种比赛在计算选手最后得分时,要去掉所有评委对该选手所打分数中的最高分和最低分,试设计一个找出最高分的算法.变式训练2: 在解放战争中,有一名战士接到命令,要求在最短的时间内配制出三副炸药,但是由于条件艰苦,称量物品的天平只剩下50 g 和5 g 两个砝码.现有465 g 硫黄,要平均分成三份,如何设计算法才能使称量的次数最少?需称量多少次?三、技能应用与拓展 【当堂检测】1.下列说法正确的是( ) A .算法就是某个问题的解题过程 B .算法执行后可以产生不同的结论 C .解决某一个具体问题,算法不同所得的结果不同D .算法执行步骤的次数不可以很大,否则无法实施2.下列四种自然语言叙述中,能称作算法的是( )A .在家里一般是妈妈做饭B .在野外做饭叫野炊C .研究函数奇偶性可以按“判断定义域是否关于原点对称,考查f (x )与f (-x )满足的关系”的程序进行D .做饭必须要有米3.小明中午放学回家自己煮面条吃,有下面几道工序:①洗锅盛水2分钟;②洗菜6分钟;③准备面条及佐料2分钟;④用锅把水烧开10分钟;⑤煮面条和菜共3分钟.以上各道工序,除了④之外,一次只能进行一道工序.小明要将面条煮好,最少要用( ) A .13分钟 B .14分钟 C .15分钟 D .23分钟 4.有以下六个步骤:①拨号;②等拨号音;③提起话筒(或免提功能);④开始通话或挂机(线路不通);⑤等复话方信号;⑥结束通话.试写出打一个本地电话的算法________.(写序号) 【拓展延伸】已知一个学生的语文成绩为89分,数学成绩为96分,外语成绩为99分,求他的总分S 和平均成绩x 的一个算法为: 1.取A =89,B =96,C =99; 2.________; 3.________; 4.输出计算的结果.整理 反思。
高中数学第一章算法初步111算法的概念课件新人教A版必修3

考试加油。
3.甲、乙、丙、丁四个人过一座简易木桥,这四个人 过桥所用的时间分别是2分钟,4分钟,6分钟,8分钟,由于木 桥质量原因,桥上同时最多只能有两个人.请你设计一个方 案,使这4个人在最快的时间过桥,写清步骤,最后算出所需 时间.
【解析】第一步,甲乙先上桥. 第二步,2分钟后甲过了桥同时丁上桥. 第三步,再过2分钟后乙过了桥同时丙上桥. 第四步,再过6分钟后丙、丁同时过了桥. ∴所需时间是2+2+6=10(分钟).
(4)不唯一性:求解某一个问题的解法不一定是唯一 的,对于一个问题可以有不同的算法.
(5)普遍性:很多具体的问题,都可以设计合理的算法 去解决.
2.算法与数学问题解法的区别与联系 (1)联系 算法与解法是一般与特殊的关系,也是抽象与具体的关 系. (2)区别 算法是解决某一类问题所需要的程序和步骤的统称,也 可理解为数学中的“通法通解”;而解法是解决某一个具体问 题的过程和步骤,是具体的解题过程.
数值性问题的算法
【例2】 写出求1+2+3+4+5+6的一个算法. 【解题探究】(1)可以按逐一相加的程序进行. (2)也可以利用公式 1+2+…+n=nn+ 2 1进行. (3)可以根据加法运算律简化运算过程.
【解析】算法一 第一步,计算1+2得到3. 第二步,将第一步中的运算结果3与3相加得到6. 第三步,将第二步中的运算结果6与4相加得到10. 第四步,将第三步中的运算结果10与5相加得到15. 第五步,将第四步中的运算结果15与6相加得到21. 第六步,输出运算结果.
【答案】A 【解析】由算法的概念可知:求解某一类问题的算法不 是唯一的,故A正确;算法可以看成按照要求设计好的有限的 确切的计算序列,并且这样的步骤或序列能解决一类问题,故 B不正确;算法有有限步,结果明确,C是不正确的;算法的 每一步操作必须是明确的,不能有歧义,故D不正确.故选 A.
第一章 算法初步全章教案
第一章 算法初步第一课时 1.1.1 算法的概念教学要求:了解算法的含义,体会算法的思想;能够用自然语言叙述算法;掌握正确的算法应满足的要求;会写出解线性方程(组)的算法、判断一个数为质数的算法、用二分法求方程近似根的算法.教学重点:解二元一次方程组等几个典型的的算法设计.教学难点:算法的含义、把自然语言转化为算法语言.教学过程:一、复习准备:1. 提问:我们古代的计算工具?近代计算手段?(算筹与算盘→计算器与计算机,见章头图)2. 提问:①小学四则运算的规则?(先乘除,后加减) ②初中解二元一次方程组的方法?(消元法) ③高中二分法求方程近似解的步骤? (给定精度ε,二分法求方程根近似值步骤如下:A .确定区间[,]a b ,验证()()0f a f b <,给定精度ε;B. 求区间(,)a b 的中点1x ;C. 计算1()f x : 若1()0f x =,则1x 就是函数的零点; 若1()()0f a f x <,则令1b x =(此时零点01(,)x a x ∈); 若1()()0f x f b <,则令1a x =(此时零点01(,)x x b ∈);D. 判断是否达到精度ε;即若||a b ε-<,则得到零点零点值a (或b );否则重复步骤2~4.二、讲授新课:1. 教学算法的含义:① 出示例:写出解二元一次方程组22(1)24(2)x y x y -=⎧⎨+=⎩的具体步骤. 先具体解方程组,学生说解答,教师写解法 → 针对解答过程分析具体步骤,构成其算法第一步:②-①×2,得5y =0 ③; 第二步:解③得y =0; 第三步:将y =0代入①,得x =2.② 理解算法: 12世纪时,指用阿拉伯数字进行算术运算的过程. 现代意义上的算法是可以用计算机来解决的某一类问题的程序或步骤,程序和步骤必须是明确和有效的,且能在有限步完成. 广义的算法是指做某一件事的步骤或程序. 算法特点:确定性;有限性;顺序性;正确性;普遍性.举例生活中的算法:菜谱是做菜肴的算法;洗衣机的使用说明书是操作洗衣机的算法;歌谱是一首歌曲的算法;渡河问题.③ 练习:写出解方程组()1111221222(1)0(2)a x b y c a b a b a x b y c +=⎧-≠⎨+=⎩的算法.2. 教学几个典型的算法:① 出示例1:任意给定一个大于1的整数n ,试设计一个程序或步骤对n 是否为质数做出判断.提问:什么叫质数?如何判断一个数是否质数? → 写出算法.分析:此算法是用自然语言的形式描述的. 设计算法要求:写出的算法必须能解决一类问题,并且能够重复使用. 要使算法尽量简单、步骤尽量少. 要保证算法正确,且计算机能够执行.② 出示例2:用二分法设计一个求方程230x -=的近似根的算法.提问:二分法的思想及步骤?如何求方程近似解→写出算法.③练习:举例更多的算法例子;→对比一般解决问题的过程,讨论算法的主要特征.3. 小结:算法含义与特征;两类算法问题(数值型、非数值型);算法的自然语言表示.三、巩固练习:1. 写出下列算法:解方程x2-2x-3=0;求1×3×5×7×9×11的值2. 有蓝和黑两个墨水瓶,但现在却错把蓝墨水装在了黑墨水瓶中,黑墨水错装在了蓝墨水瓶中,要求将其互换,请你设计算法解决这一问题.3. 根据教材P6 的框图表示,使用程序框表示以上算法.4. 作业:教材P4 1、2题.第二课时 1.1.2 程序框图(一)教学要求:掌握程序框图的概念;会用通用的图形符号表示算法,掌握算法的三个基本逻辑结构. 掌握画程序框图的基本规则,能正确画出程序框图. 通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程;学会灵活、正确地画程序框图.教学重点:程序框图的基本概念、基本图形符号和3种基本逻辑结构.教学难点:综合运用框图知识正确地画出程序框图教学过程:一、复习准备:1. 写出算法:给定一个正整数n,判定n是否偶数.2. 用二分法设计一个求方程320x-=的近似根的算法.二、讲授新课:1. 教学程序框图的认识:①讨论:如何形象直观的表示算法?→图形方法.教师给出一个流程图(上面1题),学生说说理解的算法步骤.②定义程序框图:程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形.③④阅读教材P5的程序框图. →讨论:输入35后,框图的运行流程,讨论:最大的I值.2. 教学算法的基本逻辑结构:①讨论:P5的程序框图,感觉上可以如何大致分块?流程再现出一些什么结构特征?→教师指出:顺序结构、条件结构、循环结构.②试用一般的框图表示三种逻辑结构. (见下图)③出示例3:已知一个三角形的三边分别为4,5,6,利用海伦公式设计一个算法,求出它的面积,并画出算法的程序框图. (学生用自然语言表示算法→师生共写程序框图→讨论:结构特征)④出示例4:任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在.画出这个算法的程序框图. (学生分析算法→写出程序框图→试验结果→讨论结构)⑤出示例5:设计一个计算1+2+3+…+1000的值的算法,并画出程序框图. (学生分析算法→写出程序框图→给出另一种循环结构的框图→对比两种循环结构)3. 小结:程序框图的基本知识;三种基本逻辑结构;画程序框图要注意:流程线的前头;判断框后边的流程线应根据情况标注“是”或“否”;循环结构中要设计合理的计数或累加变量等.三、巩固练习:1.练习:把复习准备题②的算法写成框图. 2. 作业:P12 A组1、2题.第三课时 1.1.2 程序框图(二)教学要求:更进一步理解算法,掌握算法的三个基本逻辑结构. 掌握画程序框图的基本规则,能正确画出程序框图.学会灵活、正确地画程序框图.教学重点:灵活、正确地画程序框图.教学难点:运用程序框图解决实际问题.教学过程:一、复习准备:1.2.顺序结构条件结构循环结构程序框图结构说明按照语句的先后顺序,从上而下依次执行这些语句. 不具备控制流程的作用. 是任何一个算法都离不开的基本结构根据某种条件是否满足来选择程序的走向.当条件满足时,运行“是”的分支,不满足时,运行“否”的分支.从某处开始,按照一定的条件,反复执行某一处理步骤的情况. 用来处理一些反复进行操作的问题二、讲授新课:1. 教学程序框图①出示例1:任意给定3个正实数,判断其是否构成三角形,若构成三角形,则根据海伦公式计算其面积. 画出解答此问题算法的程序框图.(学生试写→共同订正→对比教材P7 例3、4 →试验结果)②设计一个计算2+4+6+…+100的值的算法,并画出程序框图.(学生试写→共同订正→对比教材P9 例5 →另一种循环结构)③循环语句的两种类型:当型和直到型.当型循环语句先对条件判断,根据结果决定是否执行循环体;直到型循环语句先执行一次循环体,再对一些条件进行判断,决定是否继续执行循环体. 两种循环语句的语句结构及框图如右.说明:“循环体”是由语句组成的程序段,能够完成一项工作.注意两种循环语句的区别及循环内部改变循环的条件.④练习:用两种循环结构,写出求100所有正约数的算法程序框图.2. 教学“鸡兔同笼”趣题:①“鸡兔同笼”,我国古代著名数学趣题之一,大约在1500年以前,《孙子算经》中记载了这个有趣的问题,书中描述为:今有雏兔同笼,上有三十五头,下有九十四足,问雏兔各几何?②学生分析其数学解法. (“站立法”,命令所有的兔子都站起来;或用二元一次方程组解答.)③欣赏古代解法:“砍足法”,假如砍去每只鸡、每只兔一半的脚,则“独脚鸡”,“双脚兔”. 则脚的总数47只;与总头数35的差,就是兔子的只数,即47-35=12(只).鸡35-12=23(只).④试用算法的程序框图解答此经典问题. (算法:鸡的头数为x,则兔的头数为35-x,结合循环语句与条件语句,判断鸡兔脚数2x+4(35-x)是否等于94.)三、巩固练习:1. 练习:100个和尚吃100个馒头,大和尚一人吃3个,小和尚3人吃一个,求大、小和尚各多少个?分析其算法,写出程序框图. 2. 作业:教材P12 A组1题.第一课时 1.2.1 输入语句、输出语句和赋值语句教学要求:正确理解输入语句、输出语句、赋值语句的结构. 让学生充分地感知、体验应用计算机解决数学问题的方法;并能初步操作、模仿. 通过实例使学生理解3种基本的算法语句(输入语句、输出语句和赋值语句)的表示方法、结构和用法,能用这三种基本的算法语句表示算法,进一步体会算法的基本思想. 教学重点:会用输入语句、输出语句、赋值语句.教学难点:正确理解输入语句、输出语句、赋值语句的作用.教学过程:一、新课导入:1. 提问:学习了哪些算法的表示形式?(自然语言或程序框图描述)算法中的三种基本的逻辑结构?(顺序结构、条件结构和循环结构)2. 导入:我们用自然语言或程序框图描述的算法,计算机是无法“看得懂,听得见”的. 因此还需要将算法用计算机能够理解的程序设计语言翻译成计算机程序. 程序设计语言有很多种. 如BASIC,Foxbase,C语言,C++,J++,VB,VC,JB 等.各种程序设计语言中都包含下列基本的算法语句:输入语句、输出语句、赋值语句条件语句和循环语句.今天,我们一起用类BASIC语言学习输入语句、输出语句、赋值语句. 基本上对应于算法中的顺序结构.二、讲授新课:1. 教学三种语句的格式及功能:①出示例1:编写程序,计算一个学生数学、语文、英语三门课的平均成绩.(分析算法→框图表示→教师给出程序,学生试说说对各语句的理解.)①出示例2:用描点法作函数y=x3+3x2-24x+30的图象时,需要求出自变量和函数的一组对应值. 编写程序,分别计算当x=-5,-4,-3,-2,-1,0,1,2,3,4,5时的函数值②出示例3:给一个变量重复赋值. (程序见P16)③出示例4:交换两个变量A和B的值,并输出交换前后的值.(教法:先分析算法→画出框图→编写程序→分析各语句→变式→小结:先写算法,再编程)3. 小结:输入、输出和赋值语句的格式;赋值“=”及表达式;编写简单程序解决数学问题.三、巩固练习:1. 练习:教材P16 1、2题 2. 作业:P16 3、4题.第二课时 1.2.2 条件语句教学要求:正确理解条件语句的概念,并掌握其结构. 会应用条件语句编写程序. 教学重点:条件语句的步骤、结构及功能.教学难点:会编写程序中的条件语句.教学过程:一、复习准备:1. 提问:算法的三种逻辑结构?条件结构的框图模式?2. 提问:输入语句、输出语句和赋值语句的格式与功能?3. 一次招生考试中,测试三门课程,如果三门课程的总成绩在200分及以上,则被录取. 请对解决此问题的算法分析,画出程序框图. (变题:…总成绩在200分以下,则不被录取)二、讲授新课:1. 教学条件语句的格式与功能:①分析:复习题③中的两种条件结构的框图模式?②给出复习题③的程序,试读懂程序,说说新的语句的结构及含义.③条件语句的一般有两种:IF—THEN语句;IF—THEN—ELSE语句. 语句格式及框图如下.分析语句执行流程,并说明:①“条件”是由一个关系表达式或逻辑表达式构成,其一般形式为“<表达式><关系运算符><表达式>”,常用的运算符有“>”(大于)、“<”(小于)、“>=”(大于或等于)、“<=”(小于或等于),“<>”(不等于). 关系表达式的结果可取两个值,以“真”或“假”来表示,“真”表示条件满足,“假”则条件不满足. ②“语句”是由程序语言中所有语句构成的程序段,即可以是语句组. ③条件语句可以嵌套,即条件语句的THEN 或ELSE后面还可以跟条件语句,嵌套时注意内外分层,避免逻辑混乱.2. 教学典型例题:②出示例5:编写程序,输入一元二次方程ax2+bx+c=0的系数,输出它的实数根.(算法分析→画程序框图→编写程序→给出系数的一组值,分析框图与程序各步结果)注意:解方程之前,先由判别式的符号判断方程根的情况. 函数SQR()的功能及格式.②讨论:例5程序中为何要用到条件语句?条件语句一般用在什么情况下?答:一般用在需要对条件进行判断的算法设计中,如判断一个数的正负,确定两个数的大小等问题,还有求分段函数的函数值等,往往要用条件语句,有时甚至要用到条件语句的嵌套③练习:编写程序,使得任意输入的2个实数从小到大排列.④出示例6:编写程序,使得任意输入的3个实数从小到大排列.(讨论:先用什么语句?→用具体的数值给a、b、c,分析计算机如何排列这些数?→写出程序→画出框图→说说算法→变式:如果是4个实数呢?3. 小结:条件语句的格式与功能及对应框图. 编程的一般步骤:①算法分析:根据提供的问题,利用数学及相关学科的知识,设计出解决问题的算法. ②画程序框图:依据算法分析,画出程序框图. ③写出程序:根据程序框图中的算法步骤,逐步写出相应的程序语句.三、巩固练习: 1. 练习:教材P22 1、2题.2. 试编写程序进行印刷品邮资的计算. (前100g 0.7元,以后每100g 0.4元)3. 作业:P22 3、4题.第三课时 1.2.3 循环语句教学要求:正确理解循环语句的概念,并掌握其结构. 会应用循环语句编写程序. 教学重点:两种循环语句的表示方法、结构和用法,用循环语句表示算法.教学难点:理解循环语句的表示方法、结构和用法,会编写程序中的循环语句. 教学过程:一、复习准备:1. 设计一个计算1+2+3+……+10的算法,并画出程序框图.2. 循环结构有哪两种模式?有何区别?相应框图如何表示?答:当型(while 型)和直到型(until 型). 当型循环语句先对条件判断,根据结果决定是否执行循环体,可能一次也不执行循环体,也称为“前测试型”循环;直到型循环语句先执行一次循环体,再对一些条件进行判断,决定是否继续执行循环体.二、讲授新课:1. 教学两种循环语句的格式与功能:① 给出复习题①的两种循环语句的程序,试读懂程序,说说新的语句的结构及含义.② 两种循环语句的语句结构及框图如下.说明:“循环体”是由语句组成的程序段,能够完成一项工作. 当使用WHIL 语句时,循环内部应当有改变循环的条件,否则会产生无限循环. 学习时注意两种循环语句的区别.③ 讨论:两种循环语句的区别?当型循环先判断后执行,直到型循环先执行后判断,则:在WHILE 语句中,是当条件满足时执行循环体;在UNTIL 语句中,先执行循环体,再当条件不满足时再执行循环体.2. 教学例题:① 出示例:编写程序,计算1+2+3+……+99+100的值.(分析:实现累加的算法 → 分别用两种循环语句编写 → 变题:计算20以内偶数的积.② 给出下列一段程序,试读懂程序,说说各语句的作用,分析程序的功能. (见教材P24)(读,找疑问 → 说各语句 → 分析功能)③ 练习:用描点法作函数y =x 3+3x 2-24x +30的图象时,需要求出自变量和函数的一组对应值. 编写程序,分别计算当x =-5,-4,-3,-2,-1,0,1,2,3,4,5时的函数值. ④ 分析右边所给出程序:当n=10时,结果是多少?程序INPUT “n=”;ni =1 a =0 WHILE i <= n a = a +(i +1)/i i = i+1WENDPRINT “…”;aEND实现功能?3. 小结:① 循环语句的两种不同形式:WHILE 语句和UNTIL 语句(还可补充了For 语句),掌握它们的一般格式.② 在用WHILE 语句和UNTIL 语句编写程序解决问题时,一定要注意它们的格式及条件的表述方法. WHILE 语句中是当条件满足时执行循环体,而UNTIL 语句中是当条件不满足时执行循环体.③ 循环语句主要用来实现算法中的循环结构,在处理一些需要反复执行的运算任务. 如累加求和,累乘求积等问题中常用到.三、巩固练习: 1. 练习:教材P24 1题.2. 编写程序,实现输出1000以内能被3和5整除的所有整数. (算术运算:5 MOD 3 =2)3. 作业:P24 2、3题.第一课时 1.3.1 算法案例---辗转相除法与更相减损术教学要求:理解辗转相除法与更相减损术中蕴含的数学原理,并能根据这些原理进行算法分析; 基本能根据算法语句与程序框图的知识设计出辗转相除法与更相减损术完整的程序框图并写出它们的算法程序.教学重点:理解辗转相除法与更相减损术求最大公约数的方法.教学难点:把辗转相除法与更相减损术的方法转换成程序框图与程序语言. 教学过程:一、复习准备:1. 回顾算法的三种表述:自然语言、程序框图(三种逻辑结构)、程序语言(五种基本语句).2. 提问:①小学学过的求两个数最大公约数的方法?(先用两个公有的质因数连续去除,一直除到所得的商是互质数为止,然后把所有的除数连乘起来.)口算出36和64的最大公约数. ②除了用这种方法外还有没有其它方法?6436128=⨯+,36∴和28的最大公约数就是64和36的最大公约数,反复进行这个步骤,直至842=⨯,得出4即是36和64的最大公约数.二、讲授新课:1. 教学辗转相除法:例1:求两个正数1424和801的最大公约数.分析:可以利用除法将大数化小,然后逐步找出两数的最大公约数. (适用于两数较大时)①以上我们求最大公约数的方法就是辗转相除法,也叫欧几里德算法,它是由欧几里德在公元前300年左右首先提出的. 利用辗转相除法求最大公约数的步骤如下:(1)用较大的数m 除以较小的数n 得到一个商0S 和一个余数0R ;(2)若0R =0,则n 为m ,n 的最大公约数;若0R ≠0,则用除数n 除以余数0R 得到一个商1S 和一个余数1R ;(3)若1R =0,则1R 为m ,n 的最大公约数;若1R ≠0,则用除数0R 除以余数1R 得到一个商2S 和一个余数2R ;……依次计算直至n R =0,此时所得到的1n R -即为所求的最大公约数.②由上述步骤可以看出,辗转相除法中的除法是一个反复执行的步骤,且执行次数由余数是否等于0来决定,所以我们可以把它看成一个循环体,它的程序框图如右图:(师生共析,写出辗转相除法完整的程序框图和程序语言)练习:求两个正数8251和2146的最大公约数. (乘法格式、除法格式)2. 教学更相减损术:我国早期也有求最大公约数问题的算法,就是更相减损术. 在《九章算术》中有更相减损术求最大公约数的步骤:可半者半之,不可半者,副置分母•子之数,以少减多,更相减损,求其等也,以等数约之.翻译为:(1)任意给出两个正数;判断它们是否都是偶数. 若是,用2约简;若不是,执行第二步.(2)以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数. 继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数.例2:用更相减损术求91和49的最大公约数.分析:更相减损术是利用减法将大数化小,直到所得数相等时,这个数(等数)就是所求的最大公约数. (反思:辗转相除法与更相减损术是否存在相通的地方) 练习:用更相减损术求72和168的最大公约数.3. 小结:辗转相除法与更相减损术及比较①都是求最大公约数的方法,辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少;②结果上,辗转相除法体现结果是以相除余数为0得到,而更相减损术则以减数与差相等而得到.三、巩固练习:1、练习:教材P35第1题 2、作业:教材P38第1题 第二课时 1.3.2 算法案例---秦九韶算法教学要求:了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数、提高计算效率的实质;理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用.教学重点:秦九韶算法的特点及其程序设计.教学难点:秦九韶算法的先进性理解及其程序设计.教学过程:一、复习准备:1. 分别用辗转相除法和更相减损术求出两个正数623和1513的最大公约数.2. 设计一个求多项式5432()254367f x x x x x x =--+-+当5x =时的值的算法. (学生自己提出一般的解决方案:将5x =代入多项式进行计算即可)提问:上述算法在计算时共用了多少次乘法运算?多少次加法运算?此方案有何优缺点?(上述算法一共做了5+4+3+2+1=15次乘法运算,5次加法运算. 优点是简单、易懂;缺点是不通用,不能解决任意多项式的求值问题,而且计算效率不高.)二、讲授新课:1. 教学秦九韶算法:① 提问:在计算x 的幂值时,可以利用前面的计算结果,以减少计算量,即先计算2x ,然后依次计算2x x ⋅,2()x x x ⋅⋅,2(())x x x x ⋅⋅⋅的值,这样计算上述多项式的值,一共需要多少次乘法,多少次加法?(上述算法一共做了4次乘法运算,5次加法运算)② 结论:第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率,而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法能更快地得到结果.③ 更有效的一种算法是:将多项式变形为:5432()254367f x x x x x x =--+-+=,依次计算2555⨯-=,55421⨯-=,2153108⨯+=,10856534⨯-=,534572677⨯+=故(5)2677f =. ――这种算法就是“秦九韶算法”. (注意变形,强调格式) ④ 练习:用秦九韶算法求多项式432()2351f x x x x x =+-++当4x =时的值. (学生板书→师生共评→教师提问:上述算法共需多少次乘法运算?多少次加法运算?)⑤ 如何用秦九韶算法完成一般多项式1110()n n n n f x a x a x a x a --=++++的求值问题?改写:11101210()(()))n n n n n n n f x a x a x a x a a x a x a x a x a ----=++++=+++++. 首先计算最内层括号内一次多项式的值,即11n n v a x a -=+,然后由内向外逐层计算一次多项式的值,即212n v v x a -=+,323n v v x a -=+,,10n n v v x a -=+. ⑥ 结论:秦九韶算法将求n 次多项式的值转化为求n 个一次多项式的值,整个过程只需n 次乘法运算和n 次加法运算;观察上述n 个一次式,可发出k v 的计算要用到1k v -的值,若令0n v a =,可得到下列递推公式:01,(1,2,,)n k k n k v a v v x a k n --=⎧⎨=+=⎩.这是一个反复执行的步骤,因此可用循环结构来实现.⑦ 练习:用秦九韶算法求多项式5432()52 3.5 2.6 1.70.8f x x x x x x =++-+-当5x =时的值并画出程序框图.2. 小结:秦九韶算法的特点及其程序设计三、巩固练习:1、练习:教材P35第2题 2、作业:教材P36第2题 第三课时 1.3.3 算法案例---进位制教学要求:了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换;学习各种进位制转换成十进制的计算方法,研究十进制转换为各种进位制的除k 去余法,并理解其中的数学规律. 教学重点:各种进位制之间的互化.教学难点:除k 取余法的理解以及各进位制之间转换的程序框图及其程序的设计.教学过程:一、复习准备:1. 试用秦九韶算法求多项式52()42f x x x =-+当3x =时的值,分析此过程共需多少次乘法运算?多少次加法运算?2. 提问:生活中我们常见的数字都是十进制的,但是并不是生活中的每一种数字都是十进制的.比如时间和角度的单位用六十进位制,电子计算机用的是二进制,旧式的秤是十六进制的,计算一打数值时是12进制的......那么什么是进位制?不同的进位制之间又有什么联系呢?二、讲授新课:1. 教学进位制的概念:① 进位制是人们为了计数和运算方便而约定的记数系统,“满几进一”就是几进制,几进制的基数就是几. 如:“满十进一”就是十进制,“满二进一”就是二进制. 同一个数可以用不同的进位制来表示,比如:十进数57,可以用二进制表示为111001,也可以用八进制表示为71、用十六进制表示为39,它们所代表的数值都是一样的. 表示各种进位制数一般在数字右下脚加注来表示,如上例中:(2)(8)(16)1110017139==② 一般地,任意一个k 进制数都可以表示成不同位上数字与基数的幂的乘积之和的形式,即1110()1...(0,n n n n k n n n n a a a a a k a a a k a k a ka k a k ----<<≤<=⨯+⨯+⨯+⨯.如:把(2)110011化为十进制数,(2)110011=1⨯25+1⨯24+0⨯23+0⨯22+1⨯21+1⨯20=32+16+2+1=51.把八进制数(8)7348化为十进制数,3210(8)7348783848883816=⨯+⨯+⨯+⨯=.2. 教学进位制之间的互化:①例1:把二进制数(2)1001101化为十进制数.(学生板书→教师点评→师生共同总结将非十进制转为十进制数的方法) 分析此过程的算法过程,编写过程的程序语言. 见P34②练习:将(5)2341、(3)121转化成十进制数.③例2、把89化为二进制数.分析:根据进位制的定义,二进制就是“满二进一”,可以用2连续去除89或所得商,然后取余数. (教师板书)上述方法也可以推广为把十进制化为k 进制数的算法,这种算法成为除k 取余法. ④练习:用除k 取余法将89化为四进制数、六进制数.⑤例3、把二进制数(2)11011.101化为十进制数.解:4(211-=⨯. (小数也可利用上述方法化进行不同进位制之间的互化. )变式:化为八进制→方法:进制互化3. 小结:进位制的定义;进位制之间的互化.三、巩固练习:1、练习:教材P35第3题 2、作业:教材P38第3题 第四课时 1.3.4 生活中的算法实例教学要求:通过生活实例进一步了解算法思想.教学重点:生活实例的算法分析.教学难点:算法思想的理解.教学过程:一、复习准备:1. 前面学习了哪几种算法案例?每种算法的作用及操作方法是怎样的?2. 算法思想在我们的生活中无处不在,如何利用我们所学习的知识解决生活中的实际问题?二、讲授新课:1. 霍奇森算法:提问:同学们经常会面对一个共同的问题,就是有时有太多的事情要做. 例如,你可能要面临好几门课的作业的最后期限,你如何合理安排以确保每门课的作业都能如期完成?如果根本不可能全部按期完成,你该怎么办?(霍奇森算法可以。
基本算法1-枚举法
执行次数n*n/2次,时间复杂度O(n^2) ❖ 4.for i:=1 to n do
for j:=1 to n-1 do for k:=1 to n-2 do
s[i,j,k]:=0; 执行次数n*(n-1)*(n-2)次,时间复杂度O(n^3)
常数阶O(1) 对数阶O(logn)
线性阶O(n),
线性对数阶O(nlogn)
平方阶O(n^2)
立方阶O(n^3) ... k次方阶O(n^k),
指数阶O(2^n)
用例子说明一下改进算法对降低时间复杂度的好处。
例:求N!所产生的数后面有多少个0(中间的0不计)
❖ 算法一:从1乘到n,每乘一个数 判断一次,若后面有0则去掉后 面的0,并记下0的个数。为了不 超出数的表示范围,去掉与生成 0无关的数,只保留有效位数, 当乘完n次后就得到0的个数。
❖ if t=9 then
writeln(x,' ',x*2,' ',x*3);
❖ end;
❖ end.
例4:方格填数
如下图所示的八个格子中填入1至8八个数字,使得相邻的 和对角线的数字之差不为1。请编程找出所有放法。
b1
b2 b3 b4
b5 b6 b7
b8
分析: 由题意可知,放入b3,b6这两个格子中的数,必须和六个数不连续,仅 可以和一个数是连续的,这样的数只能是1和8。因此,b1,b3,b6,b8这四 个格子中数的放法可以先确定下来:2,8,1,7或7,1,8,2。接着,我们 只需枚举b2、b4、b5三个变量,范围都是3至6,而b7可通过计算来得到。 (1,2),(1,4),(2,5),(4,7),(5,8),(7,8)共6对格子中的数需要验证。
人教版高中数学必修三课件:1.1.1 算法的概念
考点类析
例2 写出解方程x2-2x-3=0的一个算法.
解:方法一,算法如下: 第一步,将等号左边因式分解,得(x-3)(x+1)=0①; 第二步,由①式得x-3=0或x+1=0; 第三步,解x-3=0得x=3,解x+1=0得x=-1,即x=3或x=-1.
考点类析
例2 写出解方程x2-2x-3=0的一个算法. 解:方法二,算法如下: 第一步,移项,得x2-2x=3①; 第二步,①式等号两边同时加1并配方,得(x-1)2=4②; 第三步,②式等号两边同时开方,得x-1=±2③; 第四步,解③式得x=3或x=-1.
预习探究
(4)不唯一性:求解某一个问题的算法不一定只有唯一的一个,也可以有不同 的算法,这些算法有繁简、优劣之分. (5)普遍性:很多具体的问题,都可以通过设计合理的算法去解决.
预习探究
知识点三
算法的设计要求
设计算法的要求主要有以下几点: (1)写出的算法必须能解决一类问题,并且能够重复使用; (2)要使算法尽量简单、步骤尽量少; (3)要保证算法的各个步骤有效,计算机能够执行,且在有限步骤后能得到结果.
备课素材
累加、累乘问题的算法 解决一个问题的算法一般不是唯一的,不同的算法有优劣之别,保证得到正 确的结果是对每个算法的最基本的要求.另外,还要求算法的每个步骤都要 易于实现、易于理解,效率要高,通用性要好等.
备课素材
备课素材
[例2] 求1×3×5×7×9×11的值,写出其算法.
解:算法如下:
备课素材
[小结]
知识 1.算法的概念; 2.算法的特性; 3.算法的设计
方法
易错
1.根据具体的问题进行判断,是 给出问题,在书写步骤时,不能
数学必修三第一章知识点总结
数学必修三第一章知识点总结数学必修三第一章知识点总结1、算法概念:在数学上,现代意义上的“算法”通常是指可以用计算机来解决的某一类问题是程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成.2. 算法的特点:(1)有限性:一个算法的步骤序列是有限的,必须在有限操作之后停止,不能是无限的.(2)确定性:算法中的每一步应该是确定的并且能有效地执行且得到确定的结果,而不应当是模棱两可.(3)顺序性与正确性:算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后继步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步都准确无误,才能完成问题.(4)不唯一性:求解某一个问题的解法不一定是唯一的,对于一个问题可以有不同的算法.(5)普遍性:很多具体的问题,都可以设计合理的算法去解决,如心算、计算器计算都要经过有限、事先设计好的步骤加以解决.1.1.2 程序框图1、程序框图基本概念:(一)程序构图的概念:程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形。
一个程序框图包括以下几部分:表示相应操作的程序框;带箭头的流程线;程序框外必要文字说明。
(二)构成程序框的图形符号及其作用程序框名称功能起止框表示一个算法的起始和结束,是任何流程图不可少的。
输入、输出框表示一个算法输入和输出的信息,可用在算法中任何需要输入、输出的位置。
处理框赋值、计算,算法中处理数据需要的算式、公式等分别写在不同的用以处理数据的处理框内。
判断框判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时明“否”或“N”。
学习这部分知识的时候,要掌握各个图形的形状、作用及使用规则,画程序框图的规则如下:1、使用标准的图形符号。
2、框图一般按从上到下、从左到右的方向画。
3、除判断框外,大多数流程图符号只有一个进入点和一个退出点。
判断框具有超过一个退出点的唯一符号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
思考题
两个大人和两个小孩一起渡河,渡 口只有一条小船,每次只能渡1个大人 或两个小孩,他们四人都会划船,但 都不会游泳.同学们现在想一想,他们 怎样渡过河去?请写一写你的渡河方 案.
解:因为一次只能渡过一个大人,而船还要回来渡 其他人,所以只能让两个小孩先过河。 渡河的方法与步骤为: 第一步 两个小孩同船渡过河去; 第二步 一个小孩划船回来; 第三步 一个大人独自划船渡过河去; 第四步 对岸的小孩划船回来; 第五步 两个小孩再同船渡过河去; 第六步 一个小孩划船回来; 第七步 余下的一个大人独自划船渡过河去; 第八步 对岸的小孩划船回来; 第九步 两个小孩再同船渡过河去.
§1 算法的基本思想
第2课时
算法的概念: 算法是解决给定问题的有穷操作步 骤的描述,即解决问题的步骤和方法。 在农村,种庄稼有耕地、播种、育苗、 施肥、中耕、收割等各个环节,这些栽 培技术也是算法。总之,在任何这些数 值计算或非数值计算的过程中所采取的 方法和步骤,都称之为算法。
问题的提出
有一个农夫带一条狼狗、一只羊和 一筐白菜过河。如果没有农夫看管,则 狼狗要吃羊,羊要吃白菜。但是船很小, 只够农夫带一样东西过河。问农夫该如 何解此难题? 方法和过程: 1、带羊到对岸,返回; 2、带菜到对岸,并把羊带回; 3、带狼狗到对岸,返回; 4、带羊到对岸。
练习:一个大油瓶装8kg油,还有两个空油瓶,一个能 装5kg油,另一个能装3kg油,请设计一个算法,将 这8kg油评分成两份。 解:不妨设8kg的大油瓶为A,5kg和3kg的分别为B,C 1、从A往C 中倒3kg,将C装满,此时A中剩余5kg油 2、将C中的3kg油倒入B瓶
3、从A往C中倒3kg油
算法的基本思想 随着计算科学和信息技术的飞速发展, 算法的思想已经渗透到社会的方方面面。 在以前的学习中,虽然没有出现算法这 个名词,但实际上在数学教学中已经渗 透了大量的算法思想,如四则运算的过 程、求解方程的步骤等等。完成这些工 作都需要一系列程序化的步骤,这就是 算法的思想。
有限性:一个算法的步骤必须是有限的,必须 在有限操作之后停止,不能是无限的. 确定性:算法中的每一步应该是确定的并且能有效 地执行且得到确定的结果,而不应当是模棱两可. 有序性 :算法从初始步骤开始,分为若干明确的步 骤,前一步是后一步的前提,只有执行完前一步才能 进行下一步,而且每一步都是正确无误的,从而组成 了一个有着很强逻辑性的步骤序列. 普遍性:一个算法通常设计成能解决一类问题,不 是仅仅解决一个单独问题的。 不唯一性:求解某一个问题的解法不一定是唯一 的,对于一个问题可以有不同的算法.
思考以下问题的算法: 例5 一位商人有9枚银元,其中有1枚略轻的 是假银元。你能用天平(不用砝码)将假银元 找出来吗?
解:
1. 把银元分成3组,每 组3枚。 2.先将两组分别放在天 平的两边。如果天平不平 衡,那边假银元就放在轻 的那一组;如果天平左右 平衡,则假银元就在末称 的第3组里。 3.取出含假银元的那一组,从中任取两枚放在天平 的两边。如果左右不平衡,则轻的那一边就是假银 元;如果天平两边平衡,则末称的那一枚就是假银 元。
4、从C往B中倒2kg,即将B瓶装满 5、将B中的油全部倒入A
6、将C中的油全部倒入B
7、从A往C中倒油,将C瓶全部装满,此时A中油为4kg
8、将C中