- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机程序设计基础学习.doc
13.1 计算机程序的概念
所谓计算机程序,就是一些编写的代码或指令,这些代码或指令可以驱动计算机,完成某些特定的工作。编写计算机程序的人员称为程序员。我们熟悉的一些软件系统,例如Windows,MS Office等等,其中最重要的组成部分就是计算机程序,大家用到的纷繁复杂的各种功能,都是由若干程序的片断组成,这些计算机程序是许多优秀程序员的智慧结晶。有些读者或许会想,我并不打算成为一个专业的程序员,也不会去编写大型的软件,计算机程序对我有什么用呢?实际上,计算机技术已经渗透到各种领域,我们在日常生活和工作中总会遇到一些计算机程序可以解决的问题。掌握一些计算机程序的基础知识,便于在实际工作中解决一些问题,提高工作效率。图13.1就是一段用Visual C++编写的程序代码。图13.1 Visual C++程序代码
13.2 设计程序的过程
我们用实际的例子来说明设计一个程序的过程。中国古代的《算经》中有个著名的“百钱百鸡”问题:公鸡5文钱一只,母鸡3文钱一只,小鸡一文钱三只;现在要用100文钱正好买100只鸡,问公鸡、母鸡和小鸡应该各买多少只?这个问题用代数的方法很难求解,逐个数去试又很费时间。但是,如果我们利用计算机程序去分析这个问题,很快就可以得到结果。怎样用计算机程序解决这个问题呢?
我们已经知道了“百钱百鸡”问题,但对于计算机来说,问题本身并不清晰。哪些是输入的参数,输入参数的约束和条件是什么?输出什么?需要对这个问题做一些整理和抽象,将问题描述为一些可以用来解决问题的要素(专业的术语叫做建立数学模型)。一般来说,表达清晰的问题描述应该具备以下三个特征:能说明问题域的相关假设
列出已知条件和约束
具体说明解决什么问题
例如,对于“百钱百鸡”问题,我们可以做下面的问题描述:
假设:用未知数x代表公鸡的个数,y代表母鸡的个数,z代表小鸡的个数。
已知条件:x、y和z都只能是正整数;买每只公鸡需5文钱,x只公鸡共需要5x文钱;买每只母鸡需3文钱,y只公鸡共需要3x文钱;三只小鸡一文钱,小鸡个数为3的倍数,且大于等于3,z只小鸡共需要z/3文钱;
解决问题:x+y+z=100且5x+3y+z/3=100时,x、y和z所有可能的值。
输出:所有可以解决问题的x、y、z值。
“百钱百鸡”这个问题的描述相对要容易一些。在某些实际应用中,例如某些企业业务流程,问题描述要复杂的多,需要一定的经验、技巧和抽象能力。
问题描述清楚后,就可以设计适当的计算机算法去解决问题。1.计算机算法的概念
所谓计算机算法,就是计算机能执行的、为解决某个问题所采取的方法和步骤。计算机是一种由指令驱动的机器,只能机械地执行指令。它本身不会思考,也不会理解任何问题。要使计算机能解决问题,必须首先为如何解决问题设计一个算法,然后再根据算法编写程序。算法是抽象的解题方法,是问题求解过程的精确描述。算法有以下五个主要特征:
有效性:算法的每一个步骤都必须可行并能达到预期目的。
确定性:算法的每一个步骤都是明确定义的,不允许有多义性。
有穷性:算法必须在有限的时间内执行完,即必须在有限个步骤后中止。
足够的信息:算法有足够的输入信息(条件)。
必定的输出:必须给用户提供解决问题的答案。
另外,一个问题可以有多种算法来解决,不同的算法可能导致程序效率的优劣。例如,如果要计算1+2+3+...+100,可以将1和2相加,然后将它们的和与3相加,依次类推。但也可以采用算法:1+2+3+...+100=(1+100)+(2+99)+...+(50+51)=101×50=5050,显而易见后者比前者的计算速度要快得多。在设计算法时,还要注意充分利用计算机的特点,使算法尽量简练并具有较好的通用性。例如,要计算1×2×3×...×100的值,可以使用算法:步骤1:计算1×2,得结果1×2=2;步骤2:上个步骤的结果乘以3,得结果2×3=6;步骤3:上个步骤的结果乘以4,得结果6×4=24;... ...步骤99:第98个步骤的结果乘以100,得到最终结果。这个算法可以得到正确结果,计算机运算速度极快,可以在极短时间内完成计算。但是,该算法过于繁琐,如果上述算法写出计算机程序,至少需要99行代码。而且,如果要改算1×2×3×...×50或1×2×3×...×300时,算法和程序还需要大规模的改动。可以用另一种算法完成上述运算。设定两个变量x和i,x表示被乘数,i表示乘数。开始将1放在x中,2放在i中,计算i和x的积后,将结果再放入x,x现在等于1×2;i自加1后变为3,再和x相乘,结果仍放入x,x现在等于1×2×3;......;继续上述过程,直到最终x等于1×2×3×...×100,算法可以描述为:步骤1:将1放入x;步骤2:将2放入i;步骤3:计
您可能关注的文档
- 西工大考研参考书.doc
- 西方哲学智慧答案.doc
- 西方哲学智慧试题题库2.doc
- 西电电磁场与电磁波试卷5.doc
- 视频短片制作(英文).doc
- 视频非线性编辑的艺术.doc
- 解密适用于商业摄影中的各式用光小技巧.doc
- 解析JAVA程序设计第三章课后答案.doc
- 解答新生对于软件工程的疑问.doc
- 解读电子信息科学与技术、电子信息工程、电子科学与技术专业.doc
- 2024《S市夜间餐饮发展现状与完善对策研究(附问卷)》11000字.doc
- 2024《教师参与学校管理的成功经验的调研分析报告》4600字.docx
- 2024《立高食品公司会计岗位的职责设计6200字》.docx
- 2024《抖音直播带货发展中存在的问题及完善对策研究》10000字.doc
- 2024《滁州新天地童装公司应收账款管理问题及对策》15000字.docx
- 2024《劲仔食品公司绩效管理研究6600字》.docx
- 2024《S公司销售人员薪酬方案设计》9300字.docx
- 2024《卡萨帝电子企业存货管理的优化策略》开题报告任务书5300字.docx
- 2024《衡水老白干公司基层员工绩效管理现状、问题和完善对策研究》15000字.docx
- 2024《基于JIT企业存货管理问题及对策研究—以海尔集团为例》12000字.docx
文档评论(0)