好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

浅谈数学在c语言编程中的应用毕业论文.doc

8页
  • 卖家[上传人]:自***
  • 文档编号:80494082
  • 上传时间:2019-02-19
  • 文档格式:DOC
  • 文档大小:48.51KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 浅谈数学在C语言编程中的应用【摘 要】 本文首先阐明数学与C语言之间的关系,然后以全国新课程育改革在高中数学教材为基础列举在学习C语言的过程中常见的数学思想与方法并将这些思想与方法应用于C语言编程当中关键词】 C语言 算法 程序 编程语言 数学思想 数学方法引言在现代社会里,计算机已经成为人们日常生活和工作不可缺少的工具听音乐看电影玩游戏打字画卡动画处理数据,计算机几乎渗透到了人们生活的所有领域现如今许多公司在招聘员工时将计算机应用能力的高低作为一项重要的考察指标在进行参考,不仅在企业上如此在公务员的工作考核中也越来越重视计算机能力的应用水平,甚至为了适应社会发展和社会对人才的需要,全国新课程教育改革在高中数学中也加入了算法这一章有关计算机的数学理论知识为学生将来学习计算机编程打下基础所以现在许多学生选择掌握一门计算机程序语言来增加就业机会C语言对学习者的数学基础要求较高对一部分学生来说学好C语言有一定的困难本文就本专业知识和自身对C语言的学习经验对数学在C语言编程中的应用做出讲解,以帮助部分学生更好的学习C语言1 与数学的关系C语言要知道C语言与数学的关系可以通过以下几个关系来得出。

      1.1:编程语言与程序的关系程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合为实现预期目的而进行操作的一系列语句和指令一般分为系统程序和应用程序两大类程序就是为使电子计算机执行一个或多个操作,或执行某一任务,按序设计的计算机指令的集合简单一点说如果我们把程序作为一种产品,那么编程语言就是生产实现的工具1.2:C语言与编程语言的关系 计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类 如果按语种分,可以分为英文符号语言和汉语符号语言两类目前通用的编程语言有两种形式:汇编语言和高级语言而C语言是一款综合功能强大的编程语言,和其它编程语言相比它既具有汇编语言的功能又具有高级语言的功能这一优势这使得C语言成为当今最受程序员欢迎也是应用最为广泛的编程语言之一1.3:算法与程序的关系算法是程序的灵魂 我们知道,计算机执行的是人们事先编制好的程序一个程序,它包括两个方面:一是对数据的描述,即数据结构( Data Structure ),它在程序中的作用是指定数据的类型和组织形式二是对操作的描述,即算法( Algorithm ),它在程序中的作用是控制操作的步骤,是程序实现的基本思想。

      著名计算机科学家沃思( Nikiklaus Wirth )就曾提出: 程序 = 数据结构 + 算法1.4:算法与数学的关系在高中数学教材必修3中有过这样几句话“算法不仅是数学及其应用的重要组成部分,也是计算机科学的重要基础从数学发展的历史来看,算法的概念古已有之比如,在西方数学中很早就有了欧几里得算法,而中国古代数学中蕴含着更为丰富的算法内容和思想割圆术,秦九韶算法等等都是很经典的算法通过学习算法发展有条理的思考与表达的能力,提高逻辑思维能力并且在教材中给出了算法的定义算法(algorithm)一词出现于12世纪,指的是用阿拉伯数字进行算术运算的过程在数学中,算法通常是指按照一定规则解决某一类问题的明确和有限的步骤现在,算法通常可以编成计算机程序,让计算机执行并解决问题.这样算法与数学的关系就已经十分的明确了总结:综上所述,C语言作为编程语言之一,是为生产实现程序的工具,而无论构成程序的数据结构还是算法都属于数学范畴如果把程序比作产品,那么数学内容就是原料和零件,而C语言就是把原料和零件加工组装成品的工具和机器2 数学的思想方法在C语言中的应用2.1辗转相除法例1(1) 设计一个算法,判断7是否为质数。

      2)设计一个算法,判断35是否为质数算法分析:(1)根据质数的定义,可以这样判断:依次用2~6除7,如果它们中有一个能整除7,则7不是质数,否则7是质数根据以上分析,可写出如下算法:第一步,用2除7,得到余数1因为余数不为0,所以2不能整除7.第二步,用3除7,得到余数1因为余数不为0,所以3不能整除7.第三步,用4除7,得到余数3因为余数不为0,所以4不能整除7.第四步,用5除7,得到余数2因为余数不为0,所以5不能整除7.第五步,用6除7,得到余数1因为余数不为0,所以6不能整除7.因此,7是质数2)类似地,可写出“判断35是否为质数”的算法:第一步,用2除35,得到余数1因为余数不为0,所以2不能整除35.第二步,用3除35,得到余数2因为余数不为0,所以3不能整除35.第三步,用4除35,得到余数3因为余数不为0,所以4不能整除35.第四步,用5除35,得到余数0因为余数为0,所以5能整除35.因此,35不是质数对于任意的整数n(n>2),若用i表示2~(n-1)中的任意整数,则“判断n是否为质数”的算法包含下面的重复操作:用i除n,得到余数r判断余数r是否为0,若是,则n不是质数;否则,将i的值增加1,再执行同样的操作。

      这个操作一直要进行到i的值等于(n-1)为止因此,“判断n是否为质数”的算法可以写成:第一步,给定大于2的整数n第二步,令i=2第三步,用i除n,得到余数r第四步,判断“i=o”是否成立若是,则n不是质数,结束算法;否则,将i的值增加1,仍用i表示第五步,判断“i>(n-1)”是否成立若是,则n是质数,结束算法;否则,返回第三步2.2 更相减损术《九章算术》是中国古代的数学专著,其中的“更相减损术”也可以用来求两个数的最大公约数,即“可半者半之,不可半者,副置分母子之数,以少减多,更相减损,求其等也以等数约之翻译为现代语言如下:第一步,任意给定两个正整数,判断它们是否都是偶数若是,用2简约;若不是,执行第二步第二步,以较大的数减去较小的数,接着把差与较小的数比较,并以大数减小数继续这个操作,直到所得的数相等为止,则这个数或这个数与简约的数的乘积就是所求的最大公约数例题2用更相减损术求98与63的最大公约数解:由于63不是偶数,把98和63以大数减小数,并辗转相减如下:98-86=3563-35=2836-28=728-7=2121-7=1414-7=7所以,98和63的最大公约数等于7.2.3 秦九韶算法怎样求多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值?一个自然的做法是把5带入多项式f(x),计算各项的值,然后把它们加起来。

      这时,我们一共做了1+2+3+4=10次乘法运算,5次加法运算另一种做法是先计算x2 的值,然后依次计算x2*x,( x2*x)*x,( ( x2*x)*x)*x的值,这样每次都可以利用上一次计算的结果这时,我们一共做了4次乘法运算,5次加法运算第二种做法与第一种做法相比,乘法的运算次数减少了,因而能够提高运算效率对于计算机来说,做一次乘法运算所用的时间比做一次加法运算长得多,所以采用第二种做法,计算机能更快地得到结果我国南宋时期的数学家秦九韶在他的著作《数书九章》中提出了下面的算法把一个n次多项式f(x)=anxn +an-1xn-1 +…+a1x+a0改写成如下形式: f(x)= anxn +an-1xn-1 +…+a1x+a0 =(an xn-1+ an-1 xn-2+…+a1)x+ a0 =(( an xn-2+ an-1 xn-3+…+a2)x+ a0 =… =(…((anx+an-1)x+an-2)x+…+a1)x+a0 .求多项式的值时,首先计算最内层括号内一次多项式的值,即 u1= anxn+ an-1,然后由内向外逐层计算一次多项式的值,即 u2= u1x+ an-2, u3= u2x+ an-3, … un= un-1x+a0,这样,求n次多项式f(x)的值就转化为求n个一次多项式的值。

      上述方法称为秦九韶算法算法分析:观察上述秦九韶算法中的n个一次式,可见uk的计算要用到uk-1的值若令u0=an,我们可以得到下面的公式: u0=an, uk=uk-1x+an-k(k=1,2, …,n).这是一个在秦九韶算法中反复执行的步骤,因此可用循环结构来实现算法步骤如下:第一步,输入多项式的次数n,最高此项的系数an和x的值.第二步,将u的值初始化为an,将i的值初始化为n-1.第三步,输入i此项的系数ai.第四步,u=ux+ai,i=i-1.第五步,判断i是否大于或等于0,若是,则返回第三步;否则,输出多项式的值u.2.4进位制进位制使人们为了计数和运算方便而约定的计数系统,约定满二进一,就是二进制;满十进一,就是十进制;满十二进一,就是十二进制;等等也就是说,“满几进一”就是几进制,几进制的基数就是几一般地,若k是一个大于1的整数,那么以k为基数的k进制数可以表示为一串数字连写在一起的形式anan-1…a1a0(k) (an,an-1,…,a1∈N,0< an

      第二步,将b的值初始化为0,i初始化为1.第三步,b=b+ai*ki-1,i=i+1.第四步,判断i>n是否成立,若是,则执行第五步;否则返回第三步第五步,输出b的值例题4 设计一个求解一元二次方程ax2+bx+c=0的算法 算法分析:我们知道,若判别式Δ=b2-4ac>0,则原方程有两个不相等的实数根x1=(-b+√Δ)/(2a),x2=(-b-√Δ)/(2a);若Δ=0,则原方程有两个相等的实数根x1= x2=(-b)/(2a);若Δ<0,则原方程没有实数根也就是说,在求解方程之前,可以先判断判别式的符号,根据判断的结果执行不同的步骤又因为方程的两个根有相同的部分,为了避免重复计算,可以在计算x1和x2之前,先计算p=(-b)/(2a),q=(√Δ)/(2a)解决这一问题步骤如下:第一步,输入3个系数a,b,c.第二步,计算Δ=b2-4ac第三步,判断Δ≥0是否成立若是,则计算p=(-b)/(2a),q=(√Δ)/(2a):否则,输出“方程没有实数根”,结束算法第四步,判断Δ=0是否成立若是,则输出x1= x2=p;否则,计算x1=p+q, x2=p-q,并输出x1,x23 结合具体事例解决编程问题3.1 例题1辗转相除法Main(){ int m,n,r;do{Printf(“请输入两个正整数:”);Scanf(“%d%d”,&m,&n);}While(m==0‖n==0);{r=m%n;m=n;n=r;While(r!=0);printf(“%d”,m);}3.2 例题2 更相减损术Main(){int a,b;do{Print(“请输入两个正整数:”);Scanf(“%d%d”,&a,&b);}While(m==0‖n==0);doIf((a%2==0)&&(b%2==0)){a=a/2;b=b/2;}else ;while((a%2==0)&&(b%2==0));while(a!=b){a=a-b;If(a

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.