《1.4算法的概念和表示方法课件.ppt》由会员分享,可在线阅读,更多相关《1.4算法的概念和表示方法课件.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、算法与程序设计计算机系统1、硬件系统计算机系统2、软件系统计算机程序程序是计算机的灵魂,但计算机的灵魂是谁赋予的? 只有掌握了编程,才只有掌握了编程,才成为计算机的主人。成为计算机的主人。n计算机解决问题的三个阶段:、分析问题(数学化) 、寻找解决问题的途径和方法 (程序编写) 、用计算机处理(程序运行)一、什么是算法做任何事情都有一定的步骤:例1、考大学:填报名单,交报名费,拿到准考证,按时参加考试,得到录取通知书,到指定学校报到注册例2、泡茶问题:泡茶问题(泡茶问题(统筹方法统筹方法)要想泡茶喝,但当时的情况是:开水没有,烧水壶要洗,茶壶和茶杯要洗;火已经生好了,茶叶也有了。请你设计一种最
2、佳算法来完成泡茶工作。提示:提示:泡茶前要做的事情有:洗水壶(2)、洗茶壶(2)、洗茶杯(1)、灌凉水(0.5)、拿茶叶(0.5)、烧开水(10)。泡茶最佳算法泡茶最佳算法洗水壶(2)灌凉水(0.5)烧开水(10)泡茶喝洗茶壶 洗茶杯 拿茶叶过河问题过河问题在河的一岸,人、狼、羊、草均要过河,船需人划,而且最多载一物,当人不在时,狼会吃羊,羊会吃草。试安排人狼羊草安全渡河。1狼、草人、羊2狼、草人羊3狼人、草羊4狼人、羊草5羊人、狼草6羊人狼、草7人、羊狼、草过河问题过河问题n算法有何特征?算法有何特征?n确定性:确定性:算法中的每一步必须是明确的,不算法中的每一步必须是明确的,不可以有可以有
3、“多义性多义性”或或“歧义性歧义性”。 n有效性:有效性:算法中的每一步必须是计算机能够算法中的每一步必须是计算机能够有效执行,并且能得到有效结果的。有效执行,并且能得到有效结果的。 n有穷性:有穷性:算法中的步骤应是有限的。算法中的步骤应是有限的。 程序是计算机的灵魂,程序是计算机的灵魂,算法才是程序设计的灵魂!算法才是程序设计的灵魂!算法怎么表示算法怎么表示 ?n()自然语言:就像写文章时所列的提纲一样,有序地用简洁的语言加数学符号来描述。 n()流程图:常用的构件见课本P62n()计算机语言 n(程序设计语言如QBASIC、VB、PASCAL、 C+、Java等。) 闰年问题闰年问题n我
4、们通常所说的一年为365天,其实是个约数,准确的数字应该是365.2422日。那么一年365天,就与实际一年相差了0.2422日,这样四年之后就比实际的一年少了1天。为了弥补这个差值,历法规定,4年设一闰。那么如何判断一年是否为闰年呢?n提示:提示:n1、能被4整除但不能被100整除n2、能被400整除 n只要满足上述条件之一的,就是闰年 闰年问题(算法)闰年问题(算法)n输入年份nn如果n能被4整除但不能被100整除,或者n能被400整除,n那么输出n是闰年n否则输出n不是闰年自然语言表达如下自然语言表达如下:闰年问题闰年问题开始输入变量n的值(n mod 4=0 and n mod 100
5、0) Or (n mod 400=0)结束输出n是闰年!Y输出n不是闰年!N程序流程图程序流程图 程序语言程序语言n高级程序语言高级程序语言: Visual Basic 、Pascal、C、Java等 低级语言;低级语言; 汇编语言n计算机能够直接识别的语言计算机能够直接识别的语言 机器语言 判断闰年问题(程序实现)判断闰年问题(程序实现)nPrivate Sub Form_Load()n s = InputBox(请输入年份:)n n = Val(s)n If n Mod 400 = 0 Or (n Mod 4 = 0 And n Mod 100 0) Thenn MsgBox s + 年是
6、闰年!n Elsen MsgBox s + 年不是闰年!n End If nEnd sub 程序的三种基本结构程序的三种基本结构顺序结构顺序结构分支结构分支结构循环结构循环结构流程图示例流程图示例1、顺序结构流程图、顺序结构流程图n晓明每天早上起来按图所示流程图做上学前的准备工作 : 刷牙,洗脸刷牙,洗脸喝水吃早饭喝水吃早饭背书包上学背书包上学结束结束开始开始 输入两个数a和b的值,编写程序,交换a和b的值,并输出a和b的值。例如:输入:a”可乐”,b”牛奶”,输出:a”牛奶”,b”可乐”。顺序结构顺序结构开始输入a、b的值c=ab=ca=b输出a、b的值结束流程图:流程图:开始、结束框输入、
7、输出框处理框a=3b=6c=2*a+bprint c2、分支结构流程图、分支结构流程图n如图所示的流程图片断,是反映某班体育课下课的流程: YN下节是电脑课?下节是电脑课?去电脑教室去电脑教室去其它教室去其它教室下课了下课了结束开始分支结构分支结构n电费收缴问题:n50度及以下时,单价为0.53元;51度以上,单价为0.56元;要求程序能根据输入的电度数,求出电费。请写出算法。开始YDianfei=dushu * 0.53流程图:流程图:输入电的度数dushu如果 dushu10 Then y=2*x Else y=x*x+1 End If print ( y )YN存储空间满了?存储空间满了?不能拍照了不能拍照了取取 景景拿出相机拿出相机结束结束按下快门按下快门开始3、循环结构流程图、循环结构流程图n如图所示的流程图,是反映用数码相机拍照的流程: 返回返回返回返回返回返回开始输入s的值s=0i=1i=100结束输出s的值NS=s+iY流程图:流程图:s=0for i=1 to 100 S=s+inext iprint s任务:任务:n实现程序,使标签框和文本框在单击标题实现程序,使标签框和文本框在单击标题为为“显示显示”的按钮时,能显示文字的按钮时,能显示文字“跟我跟我学学VB,啦啦啦啦!,啦啦啦啦!”
限制150内