1、算法与程序设计算法与程序设计v1.1计算机解决问题的过程计算机解决问题的过程2ppt课件课件如何用计算机解决问题如何用计算机解决问题v 当我们用计算机解决问题时,当我们用计算机解决问题时,首首先要分析问题,然后先要分析问题,然后根据根据问题的要求选问题的要求选择合适择合适的软件。的软件。v 如如果果现现有的软件能有的软件能满足满足我们的要求,我们会我们的要求,我们会直接直接用这用这些些软件来完成任务。软件来完成任务。v 例如:学校财务处要制作一份工资表,工资表中许多例如:学校财务处要制作一份工资表,工资表中许多数据,我们可以用数据,我们可以用ExcelExcel解决;学生要设计一个报刊设解决;
2、学生要设计一个报刊设计,可以使用计,可以使用wordword;网络上的网页是使用网页制作工;网络上的网页是使用网页制作工具完成的,记事本要输入代码,具完成的,记事本要输入代码,FrontpageFrontpage和和DreamweaverDreamweaver可以直接使用可视化工具。可以直接使用可视化工具。除除此此之之外外,现实生活现实生活中还有许多工作中还有许多工作往往比往往比较较特殊特殊,现现有的软件有的软件不能很好不能很好地地完成,完成,或者或者由由于于其他其他方面的方面的原原因无法使用,因无法使用,这就这就需需要我们要我们编写编写程序来解决问题。程序来解决问题。3ppt课件课件4ppt
3、课件课件渡河的方法与步骤:v 第一步:渡过河去;v 第二步:划船回来;v 第三步:渡过河去;v 第四步:划船回来;v 第五步:渡过河去;v 第六步:划船回来;v 第七步:渡过河。5ppt课件课件6ppt课件课件7ppt课件课件设计算法设计算法v2.设计算法:设计算法:v输入输入a和和b的值的值v求求X=2a-b/2v求求Y=b/2-av输出输出X,Y的值的值v结束结束8ppt课件课件3.编写程序编写程序 Private Sub Command1_click()a=inputbox(“a=“,”输入头数输入头数“)b=inputbox(“b=“,”输入脚数输入脚数“)x=2*a-b/2 Y=b/
4、2-a Print“鸡数鸡数x=“;x,”兔数兔数y=”;yEnd Sub9ppt课件课件v4.调试程序调试程序10ppt课件课件设计一个软件的步骤是:具体问题分析问题设计算法编写程序调试程序得到答案无无论论使用使用现现成的软件解决问题,还是自己成的软件解决问题,还是自己动动手编手编程解决程解决问题,问题,其实其实质质都是一样的:都是一样的:现现有的计算机软件同样也经有的计算机软件同样也经历历了这了这些些过程,过程,其差别其差别在于,用程序设计解决问题在于,用程序设计解决问题需需要我们要我们亲亲自自动动手手设设计软件,计软件,而而使用使用现现成的软件,是成的软件,是别人别人已经已经给给我们设计
5、好我们设计好了的。了的。11ppt课件课件v1.2 算法和算法的描述算法和算法的描述12ppt课件课件算法v算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗的说,算法就是用计算机求解某一问题的方法。v算法是解决问题的方法和步骤 13ppt课件课件vP8,实践,实践14ppt课件课件算法的特征算法的特征v输入:一个算法有零个或者多个输入v确定性:算法的每一个步骤必须要确切地定义v有穷性:一个算法它所包含的计算步骤是有限的v输出:算法有一个或多个的输出v能行性:每一步都能精确的进行,并最终得出正 确的结果15ppt课件课件算法的描述算法的描述v自然语言自然语言v流程图流程图v伪代码伪
6、代码16ppt课件课件1 1、用自然语言来描述。、用自然语言来描述。输入输入a和和b的值的值求求X=2a-b/2求求Y=b/2-a输出输出X,Y的值的值结束结束17ppt课件课件2 2、用流程图来描述、用流程图来描述18ppt课件课件流程图流程图19ppt课件课件2.流程图流程图20ppt课件课件21ppt课件课件22ppt课件课件流程图的优缺点流程图的优缺点23ppt课件课件3 3、用伪代码描述算法。、用伪代码描述算法。24ppt课件课件25ppt课件课件v使用伪代码描述算法没有严格的语法限制,书使用伪代码描述算法没有严格的语法限制,书写格式也比较自由,只要把意思表达清楚就可写格式也比较自由
7、,只要把意思表达清楚就可以了,它更侧重于对算法本身的描述。以了,它更侧重于对算法本身的描述。v在伪代码描述中,表示关键词的语句一般用英在伪代码描述中,表示关键词的语句一般用英文单词,其他语句可以用英文语句,也可以用文单词,其他语句可以用英文语句,也可以用汉语语句。汉语语句。26ppt课件课件v1.3程序与程序设计语言程序与程序设计语言27ppt课件课件求解求解“鸡兔同笼问题鸡兔同笼问题”的算法与程序的算法与程序算法算法程序程序Private Sub Command1_click()(1)输入)输入a和和b的值的值a=inputbox(“a=“,”输入头数输入头数“)b=inputbox(“b=
8、“,”输入脚数输入脚数“)(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 Sub28ppt课件课件v Private Sub Command1_click()v a=Val(InputBox(a=,输入头数输入头数)v b=Val(InputBox(“b=(请注意不能输入单数,且(请注意不能输入单数,且 02a=b=4a),输入脚数输入脚数)v If b 4*a Or b Mod 2=1 Thenv Print 数据出错数据出错v Elsev x=2*a
9、-b/2v y=b/2-av Print 鸡数鸡数x=;x,数数y=;yv End Ifv End Sub29ppt课件课件2.流程图流程图30ppt课件课件31ppt课件课件32ppt课件课件程序的基本结构程序的基本结构v顺序结构顺序结构v选择结构选择结构v循环结构循环结构33ppt课件课件分析问题、建立模型、设计算法、编写程序具体问题程序设计计算机程序34ppt课件课件程序设计语言程序设计语言v机器语言机器语言v汇编语言汇编语言v高级语言高级语言程序的编辑与翻译程序的编辑与翻译35ppt课件课件MOV AL,9 ADD AL,8HLT1011000000001001000001000000100011110100机器语言机器语言 汇编语言汇编语言 Print 8+9高级语言高级语言 36ppt课件课件v Private 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 38ppt课件课件