高中信息技术算法与程序设计第一课
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
❖ 当我们用计算机解决问题时,首先要分析问题,然后 根据问题的要求选择合适的软件。
❖ 如果现有的软件能满足我们的要求,我们会直接用这 些软件来完成任务。
❖ 例如:学校财务处要制作一份工资表,工资表中许多 数据,我们可以用Excel解决;学生要设计一个报刊设 计,可以使用word;网络上的网页是使用网页制作工 具完成的,记事本要输入代码,Frontpage和 Dreamweaver可以直接使用可视化工具。除此之外, 现实生活中还有许多工作往往比较特殊,现有的软件 不能很好地完成,或者由于其他方面的原因无法使用, 这就需要我们编写程序来解决问题。
问题解决
无论使用现成的软件解决问题,还是自己动手编程解决 问题,其实质都是一样的:现有的计算机软件同样也经 历了这些过程,
其差别在于,用程序设计解决问题需要我们亲自动手设 计软件,而使用现成的软件,是别人已经给我们设计好 了的。
算法的描述
❖ 自然语言 ❖ 流程图 ❖ 伪代码
1、用自然语言来描述。
流程图的优缺点
与自然语言相比,用流程图描述 算法形象、直观,更容易理解。
3、用伪代码描述算法。
例如,给定一个四位数的年份,判断它是否为闰 年。如果用伪代码来描述算法,可以表示如下:
算法分析: 我们知道,如果2月是28天,则这一年是平年;
如果是29天,则这一年是闰年。判断闰年的条件是: 如果该年份能被4整除但不能被100整除,或者能被 400整除,则该年为闰年。
汇编语言
MOV AL, 9
ADD AL,8
HLT
高级语言
Print 8+9
❖在伪代码描述中,表示关键词的语句一般用英 文单词,其他语句可以用英文语句,也可以用 汉语语句。
伪代码的优缺点:
用伪代码描述的算法简洁、易懂, 修改起来也比较容易,并且很容 易转化为程序语言代码。 缺点是不是很直观。
开始
输入正整数m和n
r=m除以n的余数
否 r=0 是 输出n的值
m=n,n=r
INPUT m,n r=m mod n DO WHILE r≠0
指标 运行结果
用辗转相除法设计的程 用穷举法设计和程
序
序
最大公约数
最大公约数
运行时间
较短
较长
通用性
较好
较差
计算机只懂得根据人的命令来执行相关的程序,而我们要编写程序,
首先要分析问题: 对问题进行详细地分析,通过分析,弄清楚已知条件下的初始状态及
要达到的目标,找出求解问题的方法和过程,并抽取出一个数学模型,形 成算法;
算法与程序设计
个人计算机的另一个称呼是什么?
电脑
为什么称计算机是电脑?
计算机能模拟人的大脑的活动。
算法与程序设计
算法初步
❖ 算法与程序框图 ❖ 基本算法 ❖ 算法案例
❖ 揭开计算机解决问题的 神秘面纱
❖ 程序设计基础 ❖ 可视化编程 ❖ 算法与程序实现 ❖ 面向对象程序设计 ❖ 程序设计实践
如何用计算机解决问题
算法描述:
❖ 输入年份→y
❖ IF y能被4整除 THEN
❖ IF y 不能被100整除 THEN
❖
输出“是闰年”
❖ ELSE
❖
IF y 能被400整除 THEN
❖
输出“是闰年”
❖
ELSE
❖
输出“不是闰年”
❖
END IF
❖ END IF
❖ ELSE
❖ 输出“不是闰年”
❖ END IF
❖使用伪代码描述算法没有严格的语法限制,书 写格式也比较自由,只要把意思表达清楚就可 以了,它更侧重于对算法本身的描述。
算法的概念
加法口诀表
直加
满五加
进十加
破五进十加
一
一上一
一下五去四
一去九进一
二
二上二
二下五去三
二去八进一
三
三上三
三下五去二
三去七进一
四
四上四
四下五去一
四去六进一
五
五上五
五去五进一
六
六上六
六去四进一
六上一去五进一
七
七上七
七去三进一
七上二去五进一
八
八上八
Biblioteka Baidu
八去二进一
八上三去五进一
九
九上九
九去一进一
九上四去五进一
著名数学家华罗庚“烧水泡茶”
算法一 ❖ 第一步:烧水; ❖ 第二步:水烧开后,洗刷茶具; ❖ 第三步:沏茶。 算法二 ❖ 第一步:烧水; ❖ 第二步:烧水过程中,洗刷茶具; ❖ 第三步:水烧开后沏茶。
算法在解决问题中的地位和作用
求最大公约数 ❖ 辗转相除法 ❖ 穷举法
见书P13表1-6
两个程序的效率比较
m=n n=r r=m mod n Loop PRINT n
结束
程序的基本结构
❖ 顺序结构 ❖ 选择结构 ❖ 循环结构
分析问题、建立模型、设计算法、编写程序
具体问题
程序设计
计算机程序
程序设计语言
❖ 机器语言 ❖ 汇编语言 ❖ 高级语言
程序的编辑与翻译
机器语言
10110000 00001001 00000100 00001000 11110100
计算机解决问题的步骤
❖ 分析问题——可采用建立数学模型的方式使问 题变得更明确、易理解。
❖ 设计算法——数学模型确定了应该“做什么”, 接下来就要为它寻找一个“如何做”的算法。
❖ 编写程序——用一种计算机能接受的程序设计 语言来描述问题求解的算法。
❖ 调试程序——查找和改正程序中存在的错误, 使程序能顺利地执行,得出正确结果。
鸡兔同笼问题
一个笼子里有鸡和兔,现在只知道里面一共有35 个头,94只脚,问鸡和兔各有多少只? X+Y=a 2X+4Y=b
解方程组得:X=2a-b/2,Y=b/2-a
设计算法
❖ 输入a和b的值 ❖ 求X=2a-b/2 ❖ 求Y=b/2-a ❖ 输出X,Y的值 ❖ 结束
a1X+b1Y=c1 a2X+b2Y=c2
什么是自然语言。
人们日常生活中使用的语言
算法描述:
以“韩信点兵问题” 为例:“今有物,不知其数,三三数之,剩二, 五五数之,剩三,七七数之,剩二,问物几 何?”答曰:“二十三。”
算法分析:
以“韩信点兵问题” 为例:
自然语言的优点:通俗易懂。 缺点:容易产生歧义。
例如:
“这个人连老张也不认识”。
农夫过河问题
一个农夫带着一只狼,一只羊和一棵白菜过河。 河边只有一条船,由于船小,农夫一次只能带其中 的一样过河。 如无人看管,狼要吃羊,羊要吃菜。 问农夫如何安排过河,才能使狼、羊、菜都安然无 恙。
渡河的方法与步骤:
❖ 第一步:农夫带着羊渡过河去; ❖ 第二步:农夫划船回来; ❖ 第三步:农夫带着菜渡过河去; ❖ 第四步:农夫带着羊划船回来; ❖ 第五步:农夫带着狼渡过河去; ❖ 第六步:农夫划船回来; ❖ 第七步:农夫带着羊渡过河。
算法的特征
❖ 输入 ❖ 确定 ❖ 有穷性 ❖ 输出 ❖ 能行性
判断整数n(n>2)是否为质数
❖ 第一步:给定大于2的整数 ❖ 第二步:令i=2 ❖ 第三步:用i除n,得到余数r.判断余数r是否为0,若是,
则n不是质数,结束算法;否则,将i的值增加1,仍用i表 示 ❖ 第四步:判断i是否大于(n-1),若是,则n是质数,返 回第三步
意思之一:这个人不认识老张。 意思之二:老张不认识这个人。
2、用流程图来描述
流程图也称程序框图,算法 的一种图形化表示方法。
流程图
图形
名称 开始/结束
功能 表示算法的开始或结束
输入/输出
表示算法中变量的输入或输出
处理
判断 流程线 连接点
表示算法中变量的计算与赋值
表示算法中的条件判断 表示算法中的流向 表示算法中的转接
然后要设计算法: 将这个数学模型连同它要处理的数据用计算机能识别的方式描述出来,
使之成为计算机能处理的对象;
最后,编写程序: 用程序设计语言设计出具体的问题求解过程,形成计算机程序,
这样,计算机就会按照我们给定的指令一条一条地
进行处理了。
设计一个软件的步骤是:
开始
分析问题
设计算法
编写程序
运行程序 验证结果
❖ 输入a1,b1,c1,a2,b2,c2的值 ❖ 求X=(b2*c1-b1*c2)/(a1*b2-a2*b1) ❖ 求Y=(a1*c2-a2*c1)/(a1*b2-a2*b1) ❖ 输出X,Y的值 ❖ 结束
算法
❖ 算法是在有限步骤内求解某一问题所使用的 一组定义明确的规则。
❖ 算法是解决问题的方法和步骤
❖ 如果现有的软件能满足我们的要求,我们会直接用这 些软件来完成任务。
❖ 例如:学校财务处要制作一份工资表,工资表中许多 数据,我们可以用Excel解决;学生要设计一个报刊设 计,可以使用word;网络上的网页是使用网页制作工 具完成的,记事本要输入代码,Frontpage和 Dreamweaver可以直接使用可视化工具。除此之外, 现实生活中还有许多工作往往比较特殊,现有的软件 不能很好地完成,或者由于其他方面的原因无法使用, 这就需要我们编写程序来解决问题。
问题解决
无论使用现成的软件解决问题,还是自己动手编程解决 问题,其实质都是一样的:现有的计算机软件同样也经 历了这些过程,
其差别在于,用程序设计解决问题需要我们亲自动手设 计软件,而使用现成的软件,是别人已经给我们设计好 了的。
算法的描述
❖ 自然语言 ❖ 流程图 ❖ 伪代码
1、用自然语言来描述。
流程图的优缺点
与自然语言相比,用流程图描述 算法形象、直观,更容易理解。
3、用伪代码描述算法。
例如,给定一个四位数的年份,判断它是否为闰 年。如果用伪代码来描述算法,可以表示如下:
算法分析: 我们知道,如果2月是28天,则这一年是平年;
如果是29天,则这一年是闰年。判断闰年的条件是: 如果该年份能被4整除但不能被100整除,或者能被 400整除,则该年为闰年。
汇编语言
MOV AL, 9
ADD AL,8
HLT
高级语言
Print 8+9
❖在伪代码描述中,表示关键词的语句一般用英 文单词,其他语句可以用英文语句,也可以用 汉语语句。
伪代码的优缺点:
用伪代码描述的算法简洁、易懂, 修改起来也比较容易,并且很容 易转化为程序语言代码。 缺点是不是很直观。
开始
输入正整数m和n
r=m除以n的余数
否 r=0 是 输出n的值
m=n,n=r
INPUT m,n r=m mod n DO WHILE r≠0
指标 运行结果
用辗转相除法设计的程 用穷举法设计和程
序
序
最大公约数
最大公约数
运行时间
较短
较长
通用性
较好
较差
计算机只懂得根据人的命令来执行相关的程序,而我们要编写程序,
首先要分析问题: 对问题进行详细地分析,通过分析,弄清楚已知条件下的初始状态及
要达到的目标,找出求解问题的方法和过程,并抽取出一个数学模型,形 成算法;
算法与程序设计
个人计算机的另一个称呼是什么?
电脑
为什么称计算机是电脑?
计算机能模拟人的大脑的活动。
算法与程序设计
算法初步
❖ 算法与程序框图 ❖ 基本算法 ❖ 算法案例
❖ 揭开计算机解决问题的 神秘面纱
❖ 程序设计基础 ❖ 可视化编程 ❖ 算法与程序实现 ❖ 面向对象程序设计 ❖ 程序设计实践
如何用计算机解决问题
算法描述:
❖ 输入年份→y
❖ IF y能被4整除 THEN
❖ IF y 不能被100整除 THEN
❖
输出“是闰年”
❖ ELSE
❖
IF y 能被400整除 THEN
❖
输出“是闰年”
❖
ELSE
❖
输出“不是闰年”
❖
END IF
❖ END IF
❖ ELSE
❖ 输出“不是闰年”
❖ END IF
❖使用伪代码描述算法没有严格的语法限制,书 写格式也比较自由,只要把意思表达清楚就可 以了,它更侧重于对算法本身的描述。
算法的概念
加法口诀表
直加
满五加
进十加
破五进十加
一
一上一
一下五去四
一去九进一
二
二上二
二下五去三
二去八进一
三
三上三
三下五去二
三去七进一
四
四上四
四下五去一
四去六进一
五
五上五
五去五进一
六
六上六
六去四进一
六上一去五进一
七
七上七
七去三进一
七上二去五进一
八
八上八
Biblioteka Baidu
八去二进一
八上三去五进一
九
九上九
九去一进一
九上四去五进一
著名数学家华罗庚“烧水泡茶”
算法一 ❖ 第一步:烧水; ❖ 第二步:水烧开后,洗刷茶具; ❖ 第三步:沏茶。 算法二 ❖ 第一步:烧水; ❖ 第二步:烧水过程中,洗刷茶具; ❖ 第三步:水烧开后沏茶。
算法在解决问题中的地位和作用
求最大公约数 ❖ 辗转相除法 ❖ 穷举法
见书P13表1-6
两个程序的效率比较
m=n n=r r=m mod n Loop PRINT n
结束
程序的基本结构
❖ 顺序结构 ❖ 选择结构 ❖ 循环结构
分析问题、建立模型、设计算法、编写程序
具体问题
程序设计
计算机程序
程序设计语言
❖ 机器语言 ❖ 汇编语言 ❖ 高级语言
程序的编辑与翻译
机器语言
10110000 00001001 00000100 00001000 11110100
计算机解决问题的步骤
❖ 分析问题——可采用建立数学模型的方式使问 题变得更明确、易理解。
❖ 设计算法——数学模型确定了应该“做什么”, 接下来就要为它寻找一个“如何做”的算法。
❖ 编写程序——用一种计算机能接受的程序设计 语言来描述问题求解的算法。
❖ 调试程序——查找和改正程序中存在的错误, 使程序能顺利地执行,得出正确结果。
鸡兔同笼问题
一个笼子里有鸡和兔,现在只知道里面一共有35 个头,94只脚,问鸡和兔各有多少只? X+Y=a 2X+4Y=b
解方程组得:X=2a-b/2,Y=b/2-a
设计算法
❖ 输入a和b的值 ❖ 求X=2a-b/2 ❖ 求Y=b/2-a ❖ 输出X,Y的值 ❖ 结束
a1X+b1Y=c1 a2X+b2Y=c2
什么是自然语言。
人们日常生活中使用的语言
算法描述:
以“韩信点兵问题” 为例:“今有物,不知其数,三三数之,剩二, 五五数之,剩三,七七数之,剩二,问物几 何?”答曰:“二十三。”
算法分析:
以“韩信点兵问题” 为例:
自然语言的优点:通俗易懂。 缺点:容易产生歧义。
例如:
“这个人连老张也不认识”。
农夫过河问题
一个农夫带着一只狼,一只羊和一棵白菜过河。 河边只有一条船,由于船小,农夫一次只能带其中 的一样过河。 如无人看管,狼要吃羊,羊要吃菜。 问农夫如何安排过河,才能使狼、羊、菜都安然无 恙。
渡河的方法与步骤:
❖ 第一步:农夫带着羊渡过河去; ❖ 第二步:农夫划船回来; ❖ 第三步:农夫带着菜渡过河去; ❖ 第四步:农夫带着羊划船回来; ❖ 第五步:农夫带着狼渡过河去; ❖ 第六步:农夫划船回来; ❖ 第七步:农夫带着羊渡过河。
算法的特征
❖ 输入 ❖ 确定 ❖ 有穷性 ❖ 输出 ❖ 能行性
判断整数n(n>2)是否为质数
❖ 第一步:给定大于2的整数 ❖ 第二步:令i=2 ❖ 第三步:用i除n,得到余数r.判断余数r是否为0,若是,
则n不是质数,结束算法;否则,将i的值增加1,仍用i表 示 ❖ 第四步:判断i是否大于(n-1),若是,则n是质数,返 回第三步
意思之一:这个人不认识老张。 意思之二:老张不认识这个人。
2、用流程图来描述
流程图也称程序框图,算法 的一种图形化表示方法。
流程图
图形
名称 开始/结束
功能 表示算法的开始或结束
输入/输出
表示算法中变量的输入或输出
处理
判断 流程线 连接点
表示算法中变量的计算与赋值
表示算法中的条件判断 表示算法中的流向 表示算法中的转接
然后要设计算法: 将这个数学模型连同它要处理的数据用计算机能识别的方式描述出来,
使之成为计算机能处理的对象;
最后,编写程序: 用程序设计语言设计出具体的问题求解过程,形成计算机程序,
这样,计算机就会按照我们给定的指令一条一条地
进行处理了。
设计一个软件的步骤是:
开始
分析问题
设计算法
编写程序
运行程序 验证结果
❖ 输入a1,b1,c1,a2,b2,c2的值 ❖ 求X=(b2*c1-b1*c2)/(a1*b2-a2*b1) ❖ 求Y=(a1*c2-a2*c1)/(a1*b2-a2*b1) ❖ 输出X,Y的值 ❖ 结束
算法
❖ 算法是在有限步骤内求解某一问题所使用的 一组定义明确的规则。
❖ 算法是解决问题的方法和步骤