c语言程序设计与项目实践第19章.ppt
《c语言程序设计与项目实践第19章.ppt》由会员分享,可在线阅读,更多相关《c语言程序设计与项目实践第19章.ppt(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第19章 C语言应用实例 n本章的学习重点C语言解决实际问题C语言完成数学函数运算C语言工程项目建立与完成 19.1 C语言巧解问题实例 C语言可以解决实际生活中许多小问题,小运算。同时,使用C语言也可以仿真和实现许多人工计算和统计难以实现的工作。下面介绍使用C语言解决实际生活中一些常见的计算问题,以展示C语言的实用性。19.1.1 求1到1000之内的素数 素数,又称为质数,其定义为:只能被1和它本身整除的自然数叫做素数。也就是说,任何一个素数,它除了能表示为其本身和1的乘积外,不能表示为任何其他两个正整数的乘积。例如,自然数7,只能表示为1*7,因此,7是素数。素数是一类特殊的数字,它在实
2、际中也有很多应用,例如使用素数构建素数表,用于进行工程测试,使用素数搭建加密系统,使密码更加难以被破解等。随着数字数值的增加,素数越来越少。在古代,素数的计算主要靠人工计算,繁琐且容易出错,现在,使用C语言则可以很容易的实现素数的统计计算。可以使用for循环遍历自然数,同时,根据素数的定义,对于自然数n,若n不能够被除1以外小于等于的所有自然数整除,则这个数就是素数。19.1.2 巧解古代百钱买百鸡问题 百钱买百鸡问题是中国古代经典的趣味算术问题,在今天,仍然有很多测试沿用这一题目进行智力测试。这一问题的具体描述是:5吊钱可以买1只公鸡,3吊钱可以买一只母鸡,1吊钱可以买3只小鸡。用100吊钱
3、买100只鸡,没种鸡必须有一只,那么可以买公鸡、母鸡、小鸡各多少只?共有多少种买法?这一问题在现代方程代数数学中可以很容易的解决,可以设100吊钱可以买x只公鸡,y只母鸡,z只小鸡,共100只,则可以使用下面的方程组表示:其中,x,y和z都是正整数,对于这样一个不定方程,只能使用试凑法解决,过程繁琐且容易产生错误。19.1.3 巧解换钱币问题 换钱币问题是外国古代趣味算术问题的经典题目,和我国古代百钱买百鸡问题极为相似,具体问题描述为:用一个1磅金币可以兑换1分、2分和5分金币,试问共有多少种不同的兑换方法。其中,1磅金币=100分金币。这一问题与百钱买百鸡问题可以沿用类似的程序来解决,所不同
4、的是本题并没有限制1分、2分或5分金币的数量。19.1.4 求1-20000之间的平方回文数 回文数也叫对称数,是指这类数的各位数字具有对称性,例如12121,通常,可以通过使用任何一个数字与其倒序数相加,再依次执行下去获得,例如:96+69=165,165+561=726,726+627=1353,1353+3531=4884。但是也有某些数字目前为止还不能验证是否可以通过上述操作获得回文数,例如数字196。平方回文数是指这类数字即是回文数,又是某个自然数的平方数,例如121,就是11的平方数,同时也是回文数。可以编写程序,通过遍历获得平方回文数 19.1.5 验证卡布列克常数 卡布列克常数
5、是美国数学家卡布列克在进行数学运算时发现的一个有趣的数学规律,他也因此而闻名世界。卡布列克常数是一个非常简单的数字,共有两个,一个是495,一个是6174。这两个数字都具有特殊的规律,对于任何各位数字不全相同的三位数字或四位数字,都可以通过一定规律的运算得到这两个数字。其运算规律为:首先,将所选数的各位数字从大到小排列组成一个新的三位数x,然后,再将各位数字按从小到大排列得到另一个新的三位数y,然后,使用大的数字减去小的数字:x-y=z。得到差值z之后,对得到的结果z继续执行上述运算,直到每次都得到相同的数字为止。例如,数字132,首先将这个数的各位数字从大到小排列组成一个新的三位数321,然
6、后再将各位数字按从小到大排列得到另一个新的三位数123,然后,使用大的数字减去小的数字:321-123=198。继续执行上述操作:981-189=792,972-279=693,963-369=594,954-459=495,954-459=495,。同样,对于四位数字,也存在这样的规律。有趣的是,除了三位数和四位数,再也没有能够找到符合这一规律的数字。通过编写程序,可以验证四位数字卡布列克常数的正确性。19.2 C语言应用实例计算数学公式 C语言工程编译软件Visual C+中有很多函数库,其中数学函数库最为丰富,可以通过包含头文件math.h来调用数学库中的数学函数。对于Visual C+
7、中的数学函数,大部分都是使用C语言编写与实现的,因此,利用C语言实现数学函数逼近及数学公式计算广泛应用于工程运算中。19.2.1 C语言实现三角函数sinx逼近 数学中曾经介绍过,三角函数可以展开为无穷泰勒级数。而泰勒级数可以通过循环累加实现,而循环累加操作恰好是C语言最容易实现的操作,因此,使用C语言实现三角函数的逼近则变得非常简单而容易实现。sinx可以展开为泰勒级数如下的泰勒级数:通过for循环可以实现对sinx的逼近 19.2.2 C语言实现三角函数cosx逼近 和正弦函数类似,余弦函数cosx也可以展开为泰勒级数,并通过C语言实现,cosx的泰勒展开式如下:通过循环可以实现cosx的
8、计算。19.2.3 C语言计算排列组合 排列组合是统计学应用非常广泛的一个统计运算公式,也是概率论中最基本也最实用的一种抽象概念转化,它为概率论的结果验证提供了强有力的理论依据。排列组合最常用的两个公式是计算排列数和组合数,即全排列数和组合数,下面的公式表示了全排列和组合数的计算公式:19.3 C语言编写万年历 万年历是日常生活中必不可少的工具,现在,万年历几乎随处可见,计算机系统中、手机里、电子词典中、mp4播放器中、办公桌上、家庭摆设等。万年历之所以随处可见,一方面是由于其在人们日常生活中的重要性,另一方面也因为其易于实现的规律性和特定的算法。本节以编写C语言万年历为例,介绍一个项目的实现
9、过程。19.3.1 万年历的实现流程 n1C语言万年历项目建立语言万年历项目建立项目的建立是指要建立的项目的定义,文档结构的编写,项目最初始阶段要进行的计划设计等。万年历程序设计项目中,首先要确定该项目的名称,然后设计项目执行计划和流程。本项目名称为“C语言实现简单万年历程序”,如表所示为该项目的执行计划流程图。时间WenseDayThursDayFriDaySaturDaySunDay第一阶段项目建立第二阶段需求分析第三阶段算法设计第四阶段代码编写代码调试第五阶段结果验证代码完善回归验证19.3.1 万年历的实现流程 n2需求分析需求分析需求分析是指项目设计的目的,应明确项目要完成的结果,预
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 项目 实践 19
限制150内