资源简介 (共21张PPT)第三章 算法基础第三章 算法基础Chapter Three Algorithm Basics汇报人时间:05.16体验计算机解决问题的过程第一部分算法及其描述第二部分CONTENTS目录第三章 算法基础创设情景,提出问题开学时同学们纷纷购买用于学习的各种文具,假如同学手中有50元现金,分别购买单价为6元的笔记本,单价为5元的签字笔,和单价为4元的橡皮,每种文具至少一个,请问各种文具应该购买何种数量,才能让手中的资金最大化利用(即刚好用完)呢?笔记本单价:6元/本签字笔单价:5元/支橡皮单价:4元/块需求分析问题描述:三种商品单价分别为6元,5元,4元;用于购买商品的总资金为50元;需求:现求三种商品分别的购买数量,可让资金刚好用完(要求每种商品的购买数量不得小于1)。如果假设购买三种文具的数量分别为x,y,z同学们是否可以据此列出含有x,y,z的数学方程来表达这一关系呢?思考第三章 算法基础小组讨论讨论要求:(1)列出含有x,y,z的求解方程(2)分析x,y,z的取值是否存在界限范围,如果有,这个界限范围是多少?(3)求解该方程的方法是什么?6x+5y+4z=50极限情况下,假设y和z都为1,则x可取到最大值为6,同理,y有最大值为8,z有最大值为10故,1 ≤ x ≤ 6,1 ≤ y ≤ 8,1 ≤ z ≤ 10第三章 算法基础问题解决由于三元一次方程6x+5y+4z=50不存在其它约束条件,可以尝试把x,y,z的取值都计算一次来判断其是否满足条件:思路: 令y=1,z=1,令x=1,计算6x+5y+4z是否等于50;令y=1,z=1,令x=2,计算6x+5y+4z是否等于50;……令y=1,z=1,令x=6,计算6x+5y+4z是否等于50;……令y=2,z=1,令x=6,计算6x+5y+4z是否等于50;找到:x=6,y=2,z=1是方程的一个正整数解,但是……解唯一吗?思考第三章 算法基础第三章 算法基础算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗的说就是用计算机求解某一问题的方法,是能被机械执行的动作或指令的有穷集合。自然语言描述算法使用日常交流所用语言来描述算法(如汉语、英语等)例:①输入a,b的值;②如果a大于b,则把a的值赋值给max。如果a不大于b,则把b的值赋给max;③输出max;流程图描述算法使用程序框图来描述算法Max=bMax=a开始结束a>b?输入a、b输出MaxYN第三章 算法基础描述算法的常用方法(比较a,b的大小,并输出较大的数)开始/结束输入/输出处理框判断框流程线连接点流程图又叫程序框图,是算法的一种图形化表示方法,相较于自然语言,更形象、直观、易理解。使用流程图描述算法可使算法的流程描述的清晰、简洁。流程图的基本图形及其功能第三章 算法基础自然语言描述算法流程图描述算法使用程序框图来描述算法Max=bMax=a开始结束a>b?输入a、b输出MaxYN伪代码描述算法介于自然语言与计算机语言之间的文字与符号。不使用图形符号,书写方便 ,易于理解。例:if a>b:max=a第三章 算法基础描述算法的常用方法(比较a,b的大小,并输出较大的数)使用日常交流所用语言来描述算法(如汉语、英语等)例:①输入a,b的值;②如果a大于b,则把a的值赋值给max。如果a不大于b,则把b的值赋给max;③输出max;设计算法① t=0(把0赋值给t);② x=1;③ y=1;④ z=1;⑤ 如果满足式子6x+5y+42=50,则解的个数加t (即t=t+1),并输出这个解(即输出t,x,y,z的值) ;⑥ z=z+1(把z+1的值赋值给z);⑦ 如果z≤10则转步骤⑤,否则继续步骤⑧;⑧ y=y+1;⑨ 如果y≤8则转步骤④,否则继续步骤⑩;⑩ x=x+1; 如果x≤6则转步骤③,否则继续步骤 ; 结束。自然语言描述算法流程图描述算法第三章 算法基础设计算法用伪代码描述算法t=0for x in range(1,7):for y in range(1,9):for z in range(1,11):if(x*6+y*5+z*4==50){t=t+1;输出解的个数t和三个整数x,y,z}第三章 算法基础编写程序第三章 算法基础打开python编辑器尝试编写程序调试运行程序打开老师文件下的“三元一次方程1、2、3、4”并运行程序语法错误第三章 算法基础调试运行程序打开老师文件下的“三元一次方程5”并运行程序算法有问题逻辑错误修改程序的错误后再调试运行第三章 算法基础根据“三元一次方程”程序,总结算法的特征有穷性 执行有穷步之后结束,计算步骤是有限的确定性 执行的每一步骤都必须有确切的定义数据输入 0个或多个数据输入数据输出 1个或多个数据输出可行性 基本可执行步骤的集合,有限时间内完成。第三章 算法基础分析问题求最佳购买方案、已知商品单价和总价、求最佳购买方案,转化为求三元一次方程6x+5y+4z=50正整数解集设计算法遍历所有取值可能编写程序用Python语言实现计算程序调试运行运行程序,得出结果第三章 算法基础计算机解决问题的一般步骤02 算法及其描述三种基本控制结构使用三种基本控制结构组合来描述算法,可以改善算法的清晰度,提高算法的可读性。第三章 算法基础小明编写好解密程序后,调试运行时,程序没有报错且能顺利运行,却不能正确解密,造成这个结果的原因是( )。A.解密算法逻辑错误 B.程序语句语法错误C.程序过期了 D.程序设计窗口配置不对人们利用计算机解决问题的基本过程为( )①调试运行程序 ②分析问题 ③设计算法 ④问题解决 ⑤编写程序A①②③④⑤ B②④③⑤① C④②③⑤① D②③⑤①④DA6步骤①输入圆的半径; 步骤②求圆的面积; 步骤③输出圆的面积。以上算法的描述方法属于( )A.自然语言描述法 B.流程图描述法 C.伪代码描述法 D.简码描述法A第三章 算法基础实践在《几何原本》一书中,欧几里得阐述了关于求两个正整数的最大公约数的过程,这就是著名的欧几里得算法——辗转相除法,其具体过程如下:设给定的两个正整数为m和n,求它们的最大公约数的步骤为:以m除以n,令所得的余数为R。若R=0,则输出结果n,算法结束;否则,继续步骤③。令m=n,n=R,并返回步骤①继续进行。用流程图将上述算法表示出来,试探索欧几里得算法在现实生活中有哪些应用,举出两个应用实例。汇报人时间:05.16THANKS 展开更多...... 收起↑ 资源预览