《高中信息技术算与法程序设计第一.ppt》由会员分享,可在线阅读,更多相关《高中信息技术算与法程序设计第一.ppt(38页珍藏版)》请在金锄头文库上搜索。
1、算法与程序设计算法与程序设计Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.v1.1计算机解决问题的过程计算机解决问题的过程Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.如何用计算机解决问题如何用计算机解决问题v当我们用计算机解决问题时,
2、当我们用计算机解决问题时,首首先要分析问题,然后先要分析问题,然后根据根据问题的要求选问题的要求选择合适择合适的软件。的软件。v如如果果现现有的软件能有的软件能满足满足我们的要求,我们会我们的要求,我们会直接直接用这用这些些软件来完成任务。软件来完成任务。v例如:学校财务处要制作一份工资表,工资表中许多例如:学校财务处要制作一份工资表,工资表中许多数据,我们可以用数据,我们可以用ExcelExcel解决;学生要设计一个报刊设解决;学生要设计一个报刊设计,可以使用计,可以使用wordword;网络上的网页是使用网页制作工;网络上的网页是使用网页制作工具完成的,记事本要输入代码,具完成的,记事本要
3、输入代码,FrontpageFrontpage和和DreamweaverDreamweaver可以直接使用可视化工具。可以直接使用可视化工具。除除此此之之外外, 现实生活现实生活中还有许多工作中还有许多工作往往比往往比较较特殊特殊,现现有的软件有的软件不能很好不能很好地地完成,完成,或者或者由由于于其他其他方面的方面的原原因无法使用,因无法使用,这就这就需需要我们要我们编写编写程序来解决问题。程序来解决问题。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-
4、2011 Aspose Pty Ltd.农夫过河农夫过河问题问题v智力问答:智力问答:智力问答:智力问答: 一个农夫带着一只狼,一只羊和一棵白菜过河。一个农夫带着一只狼,一只羊和一棵白菜过河。一个农夫带着一只狼,一只羊和一棵白菜过河。一个农夫带着一只狼,一只羊和一棵白菜过河。河边只有一条船河边只有一条船河边只有一条船河边只有一条船, ,由于船小由于船小由于船小由于船小, ,农夫一次只能带其中农夫一次只能带其中农夫一次只能带其中农夫一次只能带其中的一样过河。的一样过河。的一样过河。的一样过河。 如无人看管如无人看管如无人看管如无人看管, ,狼要吃羊狼要吃羊狼要吃羊狼要吃羊, ,羊要吃菜。羊要吃菜
5、。羊要吃菜。羊要吃菜。问农夫如何安排过河问农夫如何安排过河问农夫如何安排过河问农夫如何安排过河, ,才能使狼、羊、菜都安然无才能使狼、羊、菜都安然无才能使狼、羊、菜都安然无才能使狼、羊、菜都安然无恙。恙。恙。恙。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.渡河的方法与步骤:v第一步:农夫带着羊农夫带着羊渡过河去;v第二步:农夫农夫划船回来;v第三步:农夫带着菜农夫带着菜渡过河去;v第四步:农夫带着羊农夫带着羊划
6、船回来;v第五步:农夫带着狼农夫带着狼渡过河去;v第六步:农夫农夫划船回来;v第七步:农夫带着羊农夫带着羊渡过河。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例例例例1 1,一个笼子里有鸡和兔,现在只知道里面一共,一个笼子里有鸡和兔,现在只知道里面一共,一个笼子里有鸡和兔,现在只知道里面一共,一个笼子里有鸡和兔,现在只知道里面一共有有有有3535个头,个头,个头,个头,9494只脚,问鸡和兔各有多少只?只脚,问鸡
7、和兔各有多少只?只脚,问鸡和兔各有多少只?只脚,问鸡和兔各有多少只? 鸡兔同笼问题鸡兔同笼问题Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.分析问题分析问题分析问题分析问题 X+Y=a X+Y=a 2X+4Y=b 2X+4Y=b解方程组得:解方程组得:解方程组得:解方程组得:XX2a-b/22a-b/2,Y Yb/2-ab/2-aEvaluation only.Created with Aspose.Slides
8、for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.设计算法设计算法v2.设计算法:设计算法:v输入输入a和和b的值的值v求求X=2a-b/2v求求Y=b/2-av输出输出X,Y的值的值v结束结束Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3.编写程序编写程序 Private Sub Command1_click() a=i
9、nputbox(“a=“,”输入头数输入头数“) b=inputbox(“b=“,”输入脚数输入脚数“) x=2*a-b/2 Y=b/2-a Print “鸡数鸡数x=“;x,”兔数兔数y=”;yEnd SubEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.v4.调试程序调试程序Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile
10、 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.设计一个软件的步骤是:具体问题分析问题设计算法编写程序调试程序得到答案无无论论使用使用现现成的软件解决问题,还是自己成的软件解决问题,还是自己动动手编手编程解决问程解决问题,题,其实其实质质都是一样的:都是一样的:现现有的计算机软件同样也经有的计算机软件同样也经历历了这了这些些过程,过程,其差别其差别在于,用程序设计解决问题在于,用程序设计解决问题需需要我们要我们亲亲自自动动手手设计设计软件,软件,而而使用使用现现成的软件,是成的软件,是别人别人已经已经给给我们设计好了我们设计好了的。的。Evaluatio
11、n only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.v1.2 算法和算法的描述算法和算法的描述Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.算法v算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗的说,算法就是用计算机求解某一问题的方法。v算法是解
12、决问题的方法和步骤 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.vP8,实践,实践Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.算法的特征算法的特征v输入:一个算法有零个或者多个输入v确定性:算法的每一个步骤必须要确切地定义v有穷性:
13、一个算法它所包含的计算步骤是有限的v输出:算法有一个或多个的输出v能行性:每一步都能精确的进行,并最终得出正 确的结果Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.算法的描述算法的描述v自然语言自然语言v流程图流程图v伪代码伪代码Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-
14、2011 Aspose Pty Ltd.1 1、用自然语言来描述。、用自然语言来描述。输入输入a和和b的值的值求求X=2a-b/2求求Y=b/2-a输出输出X,Y的值的值结束结束Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2 2、用流程图来描述、用流程图来描述流程图也称程序框图,算法流程图也称程序框图,算法的一种图形化表示方法。的一种图形化表示方法。Evaluation only.Created with Asp
15、ose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.流程图流程图图形图形图形图形名称名称名称名称功能功能功能功能开始结束开始结束开始结束开始结束表示算法的开始或结束表示算法的开始或结束表示算法的开始或结束表示算法的开始或结束输入输出输入输出输入输出输入输出表示算法中变量的输入或输出表示算法中变量的输入或输出表示算法中变量的输入或输出表示算法中变量的输入或输出处理处理处理处理表示算法中变量的计算与赋值表示算法中变量的计算与赋值表示算法中变量的计算与赋值表示算法中变量的计算与赋值判断判断
16、判断判断表示算法中的条件判断表示算法中的条件判断表示算法中的条件判断表示算法中的条件判断流程线流程线流程线流程线表示算法中的流向表示算法中的流向表示算法中的流向表示算法中的流向连接点连接点连接点连接点表示算法中的转接表示算法中的转接表示算法中的转接表示算法中的转接Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2.流程图流程图输入输入输入输入a a和和和和b b的值的值的值的值输出输出输出输出x,yx,y的值的值的值
17、的值开始开始开始开始求求求求x=2a-b/2x=2a-b/2求求求求y=b/2-ay=b/2-a结束结束结束结束Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.areaareas ss ss ss ss sEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose P
18、ty Ltd.开始开始开始开始r=mr=m除以除以除以除以n n的余数的余数的余数的余数r=0r=0输入正整数输入正整数输入正整数输入正整数m,nm,n结束结束结束结束输出输出输出输出n n的值的值的值的值m=n,n=rm=n,n=r是是是是否否否否Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.流程图的优缺点流程图的优缺点与自然语言相比,用流程图描述与自然语言相比,用流程图描述算法形象、直观,更容易理解。算法形象、
19、直观,更容易理解。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3 3、用伪代码描述算法。、用伪代码描述算法。 例如,给定一个四位数的年份,判断它是否为闰例如,给定一个四位数的年份,判断它是否为闰例如,给定一个四位数的年份,判断它是否为闰例如,给定一个四位数的年份,判断它是否为闰年。如果用伪代码来描述算法,可以表示如下:年。如果用伪代码来描述算法,可以表示如下:年。如果用伪代码来描述算法,可以表示如下:年。如果用伪
20、代码来描述算法,可以表示如下:算法分析:算法分析:算法分析:算法分析: 我们知道,如果我们知道,如果我们知道,如果我们知道,如果2 2月是月是月是月是2828天,则这一年是平年;天,则这一年是平年;天,则这一年是平年;天,则这一年是平年;如果是如果是如果是如果是2929天,则这一年是闰年。判断闰年的条件是:天,则这一年是闰年。判断闰年的条件是:天,则这一年是闰年。判断闰年的条件是:天,则这一年是闰年。判断闰年的条件是:如果该年份能被如果该年份能被如果该年份能被如果该年份能被4 4整除但不能被整除但不能被整除但不能被整除但不能被100100整除,或者能被整除,或者能被整除,或者能被整除,或者能被
21、400400整除,则该年为闰年。整除,则该年为闰年。整除,则该年为闰年。整除,则该年为闰年。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.算法描述:算法描述:vv输入年份输入年份输入年份输入年份y yvvIF yIF y能被能被能被能被4 4整除整除整除整除 THEN THENvvIF y IF y 不能被不能被不能被不能被100100整除整除整除整除 THEN THENvv输出输出输出输出“ “是闰年是闰年是闰年
22、是闰年” ”vvELSEELSEvvIF y IF y 能被能被能被能被400400整除整除整除整除 THEN THENvv输出输出输出输出“ “是闰年是闰年是闰年是闰年” ”vvELSEELSEvv输出输出输出输出“ “不是闰年不是闰年不是闰年不是闰年” ”vvEND IFEND IFvvEND IFEND IFvvELSEELSEvv输出输出输出输出“ “不是闰年不是闰年不是闰年不是闰年” ”vvEND IFEND IFEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyrig
23、ht 2004-2011 Aspose Pty Ltd.v使用伪代码描述算法没有严格的语法限制,书使用伪代码描述算法没有严格的语法限制,书写格式也比较自由,只要把意思表达清楚就可写格式也比较自由,只要把意思表达清楚就可以了,它更侧重于对算法本身的描述。以了,它更侧重于对算法本身的描述。v在伪代码描述中,表示关键词的语句一般用英在伪代码描述中,表示关键词的语句一般用英文单词,其他语句可以用英文语句,也可以用文单词,其他语句可以用英文语句,也可以用汉语语句。汉语语句。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro
24、file 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.v1.3程序与程序设计语言程序与程序设计语言Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.求解求解“鸡兔同笼问题鸡兔同笼问题”的算法与程序的算法与程序算法算法程序程序Private Sub Command1_click()(1)输输入入a和和b的的值值a=inputbox(“a=“,”输入头数输入头数“)b=inputb
25、ox(“b=“,”输入脚数输入脚数“)(2)求求X=2a-b/2x=2*a-b/2(3)求)求Y=b/2-aY=b/2-a(4)输出)输出X,Y的值的值Print “鸡数鸡数x=“;x,”兔数兔数y=”;y(5)结束)结束End SubEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.vPrivate Sub Command1_click()v a = Val(InputBox(a=, 输入头数输入头数)v b = V
26、al(InputBox(“b=(请注意不能输入单数,且(请注意不能输入单数,且 02a=b=4a), 输入脚数输入脚数)v If b 4 * a Or b Mod 2 = 1 Thenv Print 数据出错数据出错v Elsev x = 2 * a - b / 2v y = b / 2 - av Print 鸡数鸡数x=; x, 数数y=; yv End IfvEnd SubEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty
27、Ltd.2.流程图流程图输入输入输入输入a a和和和和b b的值的值的值的值输出输出输出输出x,yx,y的值的值的值的值开始开始开始开始求求求求x=2a-b/2x=2a-b/2求求求求y=b/2-ay=b/2-a结束结束结束结束Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.areaareas ss ss ss ss sareaareaEvaluation only.Created with Aspose.Slide
28、s for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.开始开始开始开始r=mr=m除以除以除以除以n n的余数的余数的余数的余数r=0r=0输入正整数输入正整数输入正整数输入正整数m,nm,n结束结束结束结束输出输出输出输出n n的值的值的值的值m=n,n=rm=n,n=r是是是是否否否否Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty
29、 Ltd.程序的基本结构程序的基本结构v顺序结构顺序结构v选择结构选择结构v循环结构循环结构Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.分析问题、建立模型、设计算法、编写程序具体问题程序设计计算机程序Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pt
30、y Ltd.程序设计语言程序设计语言v机器语言机器语言v汇编语言汇编语言v高级语言高级语言程序的编辑与翻译程序的编辑与翻译Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.MOV AL,9 ADD AL,8HLT1011000000001001000001000000100011110100机器语言机器语言 汇编语言汇编语言 Print 8+9高级语言高级语言 Evaluation only.Created with
31、Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.vPrivate Sub Command1_Click()a = Val(InputBox(输入a的长)b = Val(InputBox(输入b的长)c = Val(InputBox(输入c的长)If a + b c And a + c b And b + c a Thenp = (a + b + c) / 2s = Sqr(p * (p - a) * (p - b) * (p - c)Print 面积:; sElsePrint 不是三角形End IfEnd Su Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.