高中信息技术算法与程序设计第一课PPT资料.ppt
《高中信息技术算法与程序设计第一课PPT资料.ppt》由会员分享,可在线阅读,更多相关《高中信息技术算法与程序设计第一课PPT资料.ppt(40页珍藏版)》请在冰豆网上搜索。
题变得更明确、易理解。
v设计设计算法数学模型确定了应该数学模型确定了应该“做什么做什么”,接下来就要为它寻找一个,接下来就要为它寻找一个“如何做如何做”的算法。
的算法。
v编写程序编写程序用一种计算机能接受的程序设计用一种计算机能接受的程序设计语言来描述问题求解的算法。
语言来描述问题求解的算法。
v调试程序调试程序查找和改正程序中存在的错误,查找和改正程序中存在的错误,使程序能顺利地执行,得出正确结果。
使程序能顺利地执行,得出正确结果。
算法的概念算法的概念加法口诀表直加满五加进十加破五进十加一一上一一下五去四一去九进一二二上二二下五去三二去八进一三三上三三下五去二三去七进一四四上四四下五去一四去六进一五五上五五去五进一六六上六六去四进一六上一去五进一七七上七七去三进一七上二去五进一八八上八八去二进一八上三去五进一九九上九九去一进一九上四去五进一农夫过河农夫过河问题问题一个农夫带着一只狼,一只羊和一棵白菜过河。
一个农夫带着一只狼,一只羊和一棵白菜过河。
河边只有一条船河边只有一条船河边只有一条船河边只有一条船,由于船小由于船小由于船小由于船小,农夫一次只能带其中农夫一次只能带其中农夫一次只能带其中农夫一次只能带其中的一样过河。
的一样过河。
如无人看管如无人看管如无人看管如无人看管,狼要吃羊狼要吃羊狼要吃羊狼要吃羊,羊要吃菜。
羊要吃菜。
问农夫如何安排过河问农夫如何安排过河问农夫如何安排过河问农夫如何安排过河,才能使狼、羊、菜都安然无才能使狼、羊、菜都安然无才能使狼、羊、菜都安然无才能使狼、羊、菜都安然无恙。
恙。
渡河的方法与步骤:
v第一步:
农夫带着羊农夫带着羊渡过河去;
v第二步:
农夫农夫划船回来;
v第三步:
农夫带着菜农夫带着菜渡过河去;
v第四步:
农夫带着羊农夫带着羊划船回来;
v第五步:
农夫带着狼农夫带着狼渡过河去;
v第六步:
v第七步:
农夫带着羊农夫带着羊渡过河。
一个笼子里有鸡和兔,现在只知道里面一共有一个笼子里有鸡和兔,现在只知道里面一共有一个笼子里有鸡和兔,现在只知道里面一共有一个笼子里有鸡和兔,现在只知道里面一共有3535个头,个头,个头,个头,9494只脚,问鸡和兔各有多少只?
只脚,问鸡和兔各有多少只?
X+Y=aX+Y=a2X+4Y=b2X+4Y=b解方程组得:
解方程组得:
XX2a-b/22a-b/2,YYb/2-ab/2-a鸡兔同笼问题鸡兔同笼问题设计算法设计算法v输入输入a和和b的值的值v求求X=2a-b/2v求求Y=b/2-av输出输出X,Y的值的值v结束结束a1X+b1Y=c1a2X+b2Y=c2v输入输入a1,b1,c1,a2,b2,c2的值的值v求求X=(b2*c1-b1*c2)/(a1*b2-a2*b1)v求求Y=(a1*c2-a2*c1)/(a1*b2-a2*b1)v输出输出X,Y的值的值v结束结束算法v算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。
v算法是解决问题的方法和步骤算法的特征算法的特征v输入v确定v有穷性v输出v能行性判断整数判断整数n(n2)是否为质数是否为质数v第一步:
给定大于2的整数v第二步:
令iv第三步:
用i除n,得到余数r判断余数r是否为,若是,则n不是质数,结束算法;
否则,将i的值增加1,仍用i表示v第四步:
判断i是否大于(n-1),若是,则n是质数,返回第三步著名数学家华罗庚著名数学家华罗庚“烧水泡茶烧水泡茶”算法一v第一步:
烧水;
水烧开后,洗刷茶具;
沏茶。
算法二v第一步:
烧水过程中,洗刷茶具;
水烧开后沏茶。
求最大公约数求最大公约数求最大公约数求最大公约数v辗转相除法辗转相除法辗转相除法辗转相除法v穷举法穷举法穷举法穷举法算法在解决问题中的地位和作用算法在解决问题中的地位和作用见书见书13表表1-6两个程序的效率比较两个程序的效率比较指标指标用辗转相除法设计的程用辗转相除法设计的程序序用穷举法设计和程用穷举法设计和程序序运行结果运行结果最大公约数最大公约数最大公约数最大公约数运行时间运行时间较短较短较长较长通用性通用性较好较好较差较差计算机只懂得根据人的命令来执行相关的程序,而我们要编写程序,首先要分析问题分析问题:
对问题进行详细地分析,通过分析,弄清楚已知条件下的初始状态及要达到的目标,找出求解问题的方法和过程,并抽取出一个数学模型,形成算法;
然后要设计算法设计算法:
将这个数学模型连同它要处理的数据用计算机能识别的方式描述出来,使之成为计算机能处理的对象;
最后,编写程序编写程序:
用程序设计语言设计出具体的问题求解过程,形成计算机程序,这样,计算机就会按照我们给定的指令一条一条地进行处理了。
设计一个软件的步骤是:
开始分析问题设计算法编写程序运行程序验证结果问题解决无论使用现成的软件解决问题,还是自己动手编程解决问题,其实质都是一样的:
现有的计算机软件同样也经历了这些过程,其差别在于,用程序设计解决问题需要我们亲自动手设计软件,而使用现成的软件,是别人已经给我们设计好了的。
算法的描述算法的描述v自然语言自然语言v流程图流程图v伪代码伪代码11、用自然语言来描述。
、用自然语言来描述。
什么是自然语言。
人们日常生活中使用的语言人们日常生活中使用的语言算法描述:
算法描述:
以以以以“韩信点兵问题韩信点兵问题韩信点兵问题韩信点兵问题”为例:
为例:
“今有物,不知其数,三三数之,剩今有物,不知其数,三三数之,剩今有物,不知其数,三三数之,剩今有物,不知其数,三三数之,剩二,五五数之,剩三,七七数之,剩二,问二,五五数之,剩三,七七数之,剩二,问二,五五数之,剩三,七七数之,剩二,问二,五五数之,剩三,七七数之,剩二,问物几何?
物几何?
”答曰:
答曰:
“二十三。
二十三。
”算法分析:
算法分析:
自然语言的优点:
通俗易懂。
缺点:
容易产生歧义。
例如:
“这个人连老张也不认识这个人连老张也不认识这个人连老张也不认识这个人连老张也不认识”。
意思之一:
这个人不认识老张。
意思之二:
老张不认识这个人。
22、用流程图来描述、用流程图来描述流程图也称程序框图,算法流程图也称程序框图,算法的一种图形化表示方法。
的一种图形化表示方法。
流程图流程图图形图形图形图形名称名称名称名称功能功能功能功能开始结束开始结束开始结束开始结束表示算法的开始或结束表示算法的开始或结束表示算法的开始或结束表示算法的开始或结束输入输出输入输出输入输出输入输出表示算法中变量的输入或输出表示算法中变量的输入或输出表示算法中变量的输入或输出表示算法中变量的输入或输出处理处理处理处理表示算法中变量的计算与赋值表示算法中变量的计算与赋值表示算法中变量的计算与赋值表示算法中变量的计算与赋值判断判断判断判断表示算法中的条件判断表示算法中的条件判断表示算法中的条件判断表示算法中的条件判断流程线流程线流程线流程线表示算法中的流向表示算法中的流向表示算法中的流向表示算法中的流向连接点连接点连接点连接点表示算法中的转接表示算法中的转接表示算法中的转接表示算法中的转接流程图的优缺点流程图的优缺点与自然语言相比,用流程图描述与自然语言相比,用流程图描述算法形象、直观,更容易理解。
算法形象、直观,更容易理解。
33、用伪代码描述算法。
、用伪代码描述算法。
例如,给定一个四位数的年份,判断它是否为闰例如,给定一个四位数的年份,判断它是否为闰例如,给定一个四位数的年份,判断它是否为闰例如,给定一个四位数的年份,判断它是否为闰年。
如果用伪代码来描述算法,可以表示如下:
年。
我们知道,如果我们知道,如果我们知道,如果我们知道,如果22月是月是月是月是2828天,则这一年是平年;
天,则这一年是平年;
如果是如果是如果是如果是2929天,则这一年是闰年。
判断闰年的条件是:
天,则这一年是闰年。
如果该年份能被如果该年份能被如果该年份能被如果该年份能被44整除但不能被整除但不能被整除但不能被整除但不能被100100整除,或者能被整除,或者能被整除,或者能被整除,或者能被400400整除,则该年为闰年。
整除,则该年为闰年。
vv输入年份输入年份输入年份输入年份yyvvIFyIFy能被能被能被能被44整除整除整除整除THENTHENvvIFyIFy不能被不能被不能被不能被100100整除整除整除整除THENTHENvv输出输出输出输出“是闰年是闰年是闰年是闰年”vvELSEELSEvvIFyIFy能被能被能被能被400400整除整除整除整除THENTHENvv输出输出输出输出“是闰年是闰年是闰年是闰年”vvELSEELSEvv输出输出输出输出“不是闰年不是闰年不是闰年不是闰年”vvENDIFENDIFvvENDIFENDIFvvELSEELSEvv输出输出输出输出“不是闰年不是闰年不是闰年不是闰年”vvENDIFENDIFv使用伪代码描述算法没有严格的语法限制,书使用伪代码描述算法没有严格的语法限制,书写格式也比较自由,只要把意思表达清楚就可写格式也比较自由,只要把意思表达清楚就可以了,它更侧重于对算法本身的描述。
以了,它更侧重于对算法本身的描述。
v在伪代码描述中,表示关键词的语句一般用英在伪代码描述中,表示关键词的语句一般用英文单词,其他语句可以用英文语句,也可以用文单词,其他语句可以用英文语句,也可以用汉语语句。
汉语语句。
伪代码的优缺点:
用伪代码描述的算法简洁、易懂,用伪代码描述的算法简洁、易懂,修改起来也比较容易,并且很容修改起来也比较容易,并且很容易转化为程序语言代码。
易转化为程序语言代码。
缺点是不是很直观。
开始r=m除以n的余数输入正整数m和nr=0输出n的值结束m=n,n=r否是INPUTm,nr=mmodnDOWHILEr0m=nn=rr=mmodnLoopPRINTn程序的基本结构程序的基本结构v顺序结构顺序结构v选择结构选择结构v循环结构循环结构分析问