数学3(必修)—— 算 法 ALGORITHM 苏州大学数学科学学院 徐稼红 uuxjh@public1.sz.js.cn.

Slides:



Advertisements
Similar presentations
排列 组合 概率 会考复习. 排列、组合是不同的两个事件,区别的 标志是有无顺序,而区分有无顺序的办法是: 把问题的一个选择结果解出来,然后交换这 个结果中任意两个元素的位置,看是否会产 生新的变化,若有新变化,即说明有顺序, 是排列问题;若无新变化,即说明无顺序, 为组合问题 知识要点.
Advertisements

§ 3 格林公式 · 曲线积分 与路线的无关性 在计算定积分时, 牛顿 - 莱布尼茨公式反映 了区间上的定积分与其端点上的原函数值之 间的联系 ; 本节中的格林公式则反映了平面 区域上的二重积分与其边界上的第二型曲线 积分之间的联系. 一、格林公式 二、曲线积分与路线的无关性.
形式逻辑学的框架 推理 判断 概念 演绎 归纳 直 接 复 合 三段论 枚 举 完 全 科 学 【有效性与真实性】
第八章 互换的运用.
第四章 控制结构.
赋值语句与输入、输出语句.
Access数据库程序设计 总复习.
交通事故處置 當事人責任與損害賠償 屏東縣政府警察局交通隊.
充分条件与必要条件习题课 1.
命题的四种形式 高二数学.
我国三大自然区.
上海交通大学 概率论第一、二章测验题 大学数学教研室 童品苗.
高中数学知识网络 2017年9月9日星期六.
课标教材下教研工作的 实践与思考 山东临沂市教育科学研究中心 郭允远.
勾股定理 说课人:钱丹.
八年级 下册 第十七章 勾股定理 17.1 勾股定理 (第1课时) 湖北省赤壁市教研室 来小静.
高中算法与程 序设计 教学建议 ---循环结构部分
三、课后练习1: p.24练习第一题程序 程序: INPUT “F= ”;F C=(F-32)*5/9 PRINT “C= ”;C END
大綱: AAA 性質 SAS 性質 SSS 性質 顧震宇 台灣數位學習科技股份有限公司
Chapter 1 複習.
Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
第5章 数组 Visual Basic程序设计.
算法与程序设计.
Access VBA程序设计 本章重点 Access Basic编程语言 运算符、函数与表达式 Access Basic语句 模块的使用
第4章 程序控制结构与算法基础.
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
程式語言Visual Basic 重複結構 黃瀧輝 老師 Long Hwai,Huang.
6-1 For…Next迴圈敘述 6-2 While…End While迴圈敘述 6-3 Do…Loop迴圈敘述 6-4 巢狀迴圈敘述
第12章 VBA模块设计.
第3 章 VBScript的控制结构.
丙級電腦軟設-VB程式設計 資料來源:林文恭研究室 整理:張福生.
第5章 Visual Basic控制结构 之 常用算法举例
第二章 程序的灵魂--算法.
算法与程序设计 周少品.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
陳維魁 博士 儒林圖書公司 第五章 控制結構 陳維魁 博士 儒林圖書公司.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
江西财经大学信息管理学院 《数据库应用》课程组2007
小结 郭清溥.
Visual Basic 程序设计教程.
Ch04 VB.NET的流程控制 網頁程式設計.
第一章 直角坐標系 1-2 直角坐標.
1.3 算法案例 第一课时.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
第二章、第三章错题分析.
第2章 算法与C语言程序 程序 (1)数据的描述:数据的类型和组织形式(数据结构) (2)操作的描述:操作步骤(算法) 沃思指出:
九年级 上册 22.3 实际问题与二次函数 (第1课时).
第四章 控制结构 1、顺序控制结构 2、选择结构 3、循环结构.
本节内容 Lua基本语法.
大綱: 母子相似性質 內、外分比性質 重點複習 顧震宇 台灣數位學習科技股份有限公司
9.1.2不等式的性质 周村实验中学 许伟伟.
單元名稱:結構化程式設計 報告人 劉洲溶.
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
导数的几何意义及其应用 滨海中学  张乐.
(3.3.2) 函数的极值与导数.
認識函數.
直线系应用.
算法与Visual Basic程序基础(二)
下列哪些是不等式 的解? 10, 9 , , –1,  全部皆是 你認為不等式 有多少個解? 5 個 無限多個
程序调试与错误处理.
1.2.3 循环语句.
圣经概論 09.
大綱: 比例線段定義 平行線截比例線段性質 顧震宇 台灣數位學習科技股份有限公司
成本會計 在決策中的功能 第四課 1.
循环结构 刘华 江苏省苏州中学.
函数与导数 临猗中学 陶建厂.
實驗的目的 單擺實驗 平均速度與瞬時速度的迷思 氣墊軌道實驗 2005年10月
Presentation transcript:

数学3(必修)—— 算 法 ALGORITHM 苏州大学数学科学学院 徐稼红 uuxjh@public1.sz.js.cn

 内容  结构 一、《算法初步》主要内容与结构 算法的含义→流程图→基本算法语句→算法案例 流 程 图 算法的描述 算法 自然语言 顺序结构 选择结构 循环结构 输 语句 伪 代 码 循环语句 赋值语句 条件语句 入出

 理解算法的含义;  掌握算法的三种基本结构;  会用算法语句解决简单的实际问题。 二、本章教学重点和难点  重点  理解算法的含义;  掌握算法的三种基本结构;  会用算法语句解决简单的实际问题。  难点  循环语句;  算法设计。

 展开方式  特点 三、教材展开的方式和特点 自然语言 自然语言 流程图 自然语言 流程图 伪代码 自然语言 流程图 伪代码 Excel VBA  特点  螺旋上升、渐次递进  整合渗透、前引后连  三线合一、横向贯通  弹性处理、多样选择

第1节 算法的含义 四、内容解析  算法的含义  算法的特点 (广义)完成某项工作的方法和步骤 第1节 算法的含义  算法的含义 (广义)完成某项工作的方法和步骤 (教材)对一类问题的机械的、统一的求解方法 (计算科学)可以用计算机来解决的一类问题的程序和步骤  算法的特点 (教材)有限性、确定性 (其他)输入、输出、可行性、一般性

第1节 算法的含义  关于例1 例1 给出求1 + 2 +3 + 4 + 5的一个算法. 算法3? 算法1 按照逐一相加的程序进行. 第1节 算法的含义  关于例1 例1 给出求1 + 2 +3 + 4 + 5的一个算法. 算法1 按照逐一相加的程序进行. 第一步 计算1 + 2,得到3; 第二步 将第一步中的运算结果3与3相加,得到6; 第三步 将第二步中的运算结果6与4相加,得到10; 第四步 将第三步中的运算结果10与5相加,得到15. 算法2 可以运用公式1 + 2 + … + n = 直接计算。 第一步 取n = 5; 第二步 计算 ; 第三步 输出运算结果。 算法3?

第2节 流程图  四种图框类型 输入、输出框 处理框 判断框 起止框 第2节 流程图  四种图框类型 输入、输出框 处理框 判断框 起止框 ● N-S结构化流程图(1973年由美国学者I.Nassi和B.Shneiderman提出,N和S是这两位学者英文姓名的第一个字母)

第2节 流程图  三种基本算法结构 i) 顺序结构 ii) 选择结构 A B A B p Y N

第2节 流程图  三种基本算法结构 iii) 循环结构 A p Y N A Y N p (直到型) (当型)

第2节 流程图  循环结构示例 引例 N 开始 结束 输出该城市 投票 有一城市 得票超过总 票数一半 淘汰得票最少的城市 Y

第2节 流程图  循环结构 例4 (P12)求1×2×3×4×5。 开始 T←1 算法2 I←2 S1 T←1; S2 I←2; 第2节 流程图  循环结构 I > 5 N Y T←1 输出T I←2 T←T×I I←I + 1 开始 结束 例4 (P12)求1×2×3×4×5。 算法2 S1 T←1; S2 I←2; S3 T←T × I; S4 I←I + 1. S5 如果I不大于5,重新执行 S3、S4、S5;否则算法结束.

第2节 流程图  直到型与当型的转换 例4 I > 5 T←1 输出T I←2 T←T×I I←I + 1 I≤5 T←1 输出T 第2节 流程图  直到型与当型的转换 例4 I > 5 N Y T←1 输出T I←2 T←T×I I←I + 1 I≤5 Y N T←1 输出T I←2 T←T×I I←I + 1 辨别

第2节 流程图 学习流程图时学生可能出现的错误: n←3 p←x p←x,y←p,x←y x←y y←p (1)关于输入框 (2)关于处理框 第2节 流程图 学习流程图时学生可能出现的错误: (1)关于输入框 输入n  3 n←3 (2)关于处理框 p←x x←y y←p p←x,y←p,x←y (3)循环结构判断框中的条件

第3节 基本算法语句  伪代码  Excel VBA p ← x x ← y y ← p p = x x = y y = p  赋值语句 第3节 基本算法语句 例1 交换两个变量 x、y 的值  伪代码  Excel VBA p ← x x ← y y ← p p = x x = y y = p  赋值号  x、y、p的值各是多少?

第3节 基本算法语句  伪代码  Excel VBA  输入输出语句 例2 输入一个数,输出这个数的绝对值。 第3节 基本算法语句 例2 输入一个数,输出这个数的绝对值。  伪代码  Excel VBA Read a x ← | a | Print x a = Inputbox("请输入一个数") x = Abs(a) Msgbox x  其他输入、输出语句——input,output  英语单词的处理

第3节 基本算法语句  伪代码  Excel VBA  条件语句——单行 例3 输入三个数,输出最大数。 第3节 基本算法语句 例3 输入三个数,输出最大数。  伪代码  Excel VBA Read a, b, c x ← a If b > x Then x ← b If c > x Then x ← c Print x a = InputBox("输入a") b = InputBox("输入b") c = InputBox("输入c") x = a If b > x Then x = b If c > x Then x = c MsgBox "最大数" & x

 算法的实现——条理化、逻辑化、精微化的过程 a = InputBox("输入a"): b = InputBox("输入b") c = InputBox("输入c") x = a If b > x Then x = b: If c > x Then x = c MsgBox "最大数为" & x  分别输入a = 12,b = 9,c = 5时,为什么输出最大数为9?

第3节 基本算法语句  伪代码  Excel VBA  条件语句——块 例4 输入x,计算 y = 的值。 第3节 基本算法语句 例4 输入x,计算 y = 的值。  伪代码  Excel VBA Read x If x≥0 Then y ← x2 Else y ← sin x End If Print y x = InputBox("输入一个数") If x >=0 Then y = x^2 Else y = sin(x) End If MsgBox y

第3节 基本算法语句  伪代码  Excel VBA  条件语句——嵌套 例5(P19)输入x,计算 y = 的值。 第3节 基本算法语句 例5(P19)输入x,计算 y = 的值。  伪代码  Excel VBA Read x If x > 0 Then y ← 1 Else If x = 0 Then y ← 0 Else y ← -1 End If Print y x = InputBox("输入一个数") If x > 0 Then y = 1 ElseIf x = 0 Then y = 0 Else y = -1 End If MsgBox y

第3节 基本算法语句  伪代码  Excel VBA  循环语句——For 第3节 基本算法语句 例6(P21)计算1  3  5  7  …  99。  伪代码  Excel VBA S ← 1 For I From 3 To 99 Step 2 S ← S  I End For Print S S = 1 For I = 3 To 99 Step 2 S = S*I Next I MsgBox S

第3节 基本算法语句  伪代码1  伪代码2  循环语句——While 第3节 基本算法语句 例7(P21)求最小的奇数I,使 1  3  5  7  …  I > 10 000。  伪代码1  伪代码2 S ← 1 I ← 3 While S≤10 000 S ← S  I I ← I + 2 End While Print I S ← 1 I ← 1 While S≤10 000 I ← I + 2 S ← S  I End While Print I

第3节 基本算法语句  Excel VBA-1  Excel VBA-2  循环语句——While 第3节 基本算法语句 例7(P21)求最小的奇数I,使 1  3  5  7  …  I > 10 000。  Excel VBA-1  Excel VBA-2 S = 1 I = 1 While S <= 10000 I = I + 2 S = S*I Wend MsgBox I S = 1 I = 1 Do I = I + 2 S = S*I Loop Until S>10000 MsgBox I

例8(P22、例4)抛硬币试验。  伪代码 s ← 0 Read n For i From 1 To n If Rnd > 0.5 Then s ← s + 1 End For Print 出现正面的频率为s/n

 Excel VBA s = 0 n = InputBox("输入试验次数") For i = 1 To n If Rnd > 0.5 Then s = s + 1 Next i MsgBox "出现正面的频率为" & s/n

第4节 算法案例  问题背景与分析 例1(P25、例1)孙子问题:“今有物不知其数,三三数之剩二;五五数之剩三;七七数之剩二.问物几何?答曰:二十三.” 分析 “孙子问题”相当于求关于x,y,z的 不定方程组 的正整数解.

 流程图  伪代码 m←2 While Mod(m, 3)≠2 或 Mod(m, 5)≠3 或 Mod(m, 7)≠2 m←m + 1  流程图  伪代码 N Y 输出m Mod(m, 3)≠2 m←m + 1 m←2 或Mod(m, 5)≠3 或Mod(m, 7)≠2 m←2 While Mod(m, 3)≠2 或 Mod(m, 5)≠3 或 Mod(m, 7)≠2 m←m + 1 End While Print m

 Excel VBA-1 m = 2 While m Mod 3 < > 2 Or m Mod 5 < > 3 Or m Mod 7 < > 2 m = m + 1 Wend MsgBox "不定方程的一个解为" & m

 Excel VBA-2 m = 1 Do m = m + 1 Loop Until m Mod 3 = 2 And m Mod 5 = 3 _ And m Mod 7 = 2 MsgBox "不定方程的一个解为" & m

第4节 算法案例  问题背景与分析 例2(P26)求两个整数a和b的最大公约数——欧几里得辗转相除法。 分析 求出列数: 第4节 算法案例  问题背景与分析 例2(P26)求两个整数a和b的最大公约数——欧几里得辗转相除法。 分析 求出列数: a,b,r1,r2,…,rn – 1,rn,0. 这列数从第三项开始,每项都是前两项相除所得的余数,余数为0的前一项rn即是a和b的最大公约数.这种方法称为“欧几里得辗转相除法”.

 流程图  伪代码 Read a, b While Mod(a,b)≠0 r←Mod(a,b) a←b b←r End While  流程图  伪代码 输出b a←b Y N 输入a,b r←Mod(a,b) b←r Mod(a,b)≠0 Read a, b While Mod(a,b)≠0 r←Mod(a,b) a←b b←r End While Print b

 Excel VBA-1 a = InputBox("输入第一个自然数") b = InputBox("输入第二个自然数") Do r = a Mod b a = b b = r Loop Until r = 0 MsgBox "最大公约数为" & a

 Excel VBA-2 a = InputBox("输入第一个自然数") b = InputBox("输入第二个自然数") While a Mod b < > 0 r = a Mod b a = b b = r Wend MsgBox "最大公约数为" & a

第4节 算法案例  问题背景与分析 例3 用二分法求方程x3 - x - 1 = 0在区间 [1,1.5] 内的一个近似解(误差不超过0.001)。 第一步 确定有解区间[a, b] 第二步 取[a, b]的中点 第三步 计算函数在中点处的函数值 第四步 判断中点处函数值是否为0 第五步 判断新的有解区间的长度是否小于 给定的误差

 流程图  伪代码 10 Read a, b, c 20 x0←(a + b)/2 30 f(a)←a3 – a – 1  流程图  伪代码 N 输出x0 x0←(a+b) f(x0)=0 输入a,b,c b←x0 f(a)f(x0)<0 |a – b| < c a←x0 f(a)←a3 - a - 1 f(x0)←x03 – x0 – 1 Y 10 Read a, b, c 20 x0←(a + b)/2 30 f(a)←a3 – a – 1 40 f(x0)←x03 – x0 – 1 50 If f(x0) = 0 Then Goto 120 60 If f(a)f(x0) < 0 Then 70 b←x0 80 Else 90 a←x0 100 End If 110 If |a – b|≥c Then Goto 20 120 Print x0

 Excel VBA-1 10 a = Val(InputBox("输入区间左端点值")) 20 b = Val(InputBox("输入区间右端点值")) 30 c = Val(InputBox("输入误差点限制")) 40 x0 = (a + b) / 2 50 f1 = a^3 - a - 1 60 f2 = x0^3 - x0 - 1 70 If f2 = 0 Then Goto 140 80 If f1*f2 < 0 Then 90 b = x0 100 Else 110 a = x0 120 End If 130 If Abs(a – b) >= c Then Goto 40 140 MsgBox "方程的近似解为" & x0  Excel VBA-1

 Excel VBA-2 a = Val(InputBox("输入区间左端点值")) b = Val(InputBox("输入区间右端点值")) c = Val(InputBox("输入误差限制")) Do x0 = (a + b) / 2 f1 = a^3 - a - 1 f2 = x0^3 - x0 - 1 If f2 = 0 Then Exit do If f1*f2 < 0 Then b = x0 Else a = x0 End If Loop Until Abs(a – b) < c MsgBox "方程的近似解为" & x0  Excel VBA-2

 Excel VBA-3 a = Val(InputBox("输入区间左端点值")) b = Val(InputBox("输入区间右端点值")) c = Val(InputBox("输入误差限制")) Do x = (a + b) / 2 If f(x) = 0 Then Exit do If f(a)*f(x) < 0 Then b = x Else a = x End If Loop Until Abs(a – b) < c MsgBox "方程的近似解为" & x  Excel VBA-3

谢谢!