版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、淺談數(shù)學(xué)在c語(yǔ)言編程中的應(yīng)用【摘 要】 本文首先闡明數(shù)學(xué)與c語(yǔ)言之間的關(guān)系,然后以全國(guó)新課程育改革在高中數(shù)學(xué)教材為基礎(chǔ)列舉在學(xué)習(xí)c語(yǔ)言的過(guò)程中常見的數(shù)學(xué)思想與方法并將這些思想與方法應(yīng)用于c語(yǔ)言編程當(dāng)中?!娟P(guān)鍵詞】 c語(yǔ)言 算法 程序 編程語(yǔ)言 數(shù)學(xué)思想 數(shù)學(xué)方法引言在現(xiàn)代社會(huì)里,計(jì)算機(jī)已經(jīng)成為人們?nèi)粘I詈凸ぷ鞑豢扇鄙俚墓ぞ?。聽音?lè)看電影玩游戲打字畫卡動(dòng)畫處理數(shù)據(jù),計(jì)算機(jī)幾乎滲透到了人們生活的所有領(lǐng)域?,F(xiàn)如今許多公司在招聘員工時(shí)將計(jì)算機(jī)應(yīng)用能力的高低作為一項(xiàng)重要的考察指標(biāo)在進(jìn)行參考,不僅在企業(yè)上如此在公務(wù)員的工作考核中也越來(lái)越重視計(jì)算機(jī)能力的應(yīng)用水平,甚至為了適應(yīng)社會(huì)發(fā)展和社會(huì)對(duì)人才的需要,全
2、國(guó)新課程教育改革在高中數(shù)學(xué)中也加入了算法這一章有關(guān)計(jì)算機(jī)的數(shù)學(xué)理論知識(shí)為學(xué)生將來(lái)學(xué)習(xí)計(jì)算機(jī)編程打下基礎(chǔ)。所以現(xiàn)在許多學(xué)生選擇掌握一門計(jì)算機(jī)程序語(yǔ)言來(lái)增加就業(yè)機(jī)會(huì)。c語(yǔ)言對(duì)學(xué)習(xí)者的數(shù)學(xué)基礎(chǔ)要求較高對(duì)一部分學(xué)生來(lái)說(shuō)學(xué)好c語(yǔ)言有一定的困難。本文就本專業(yè)知識(shí)和自身對(duì)c語(yǔ)言的學(xué)習(xí)經(jīng)驗(yàn)對(duì)數(shù)學(xué)在c語(yǔ)言編程中的應(yīng)用做出講解,以幫助部分學(xué)生更好的學(xué)習(xí)c語(yǔ)言。1 與數(shù)學(xué)的關(guān)系c語(yǔ)言要知道c語(yǔ)言與數(shù)學(xué)的關(guān)系可以通過(guò)以下幾個(gè)關(guān)系來(lái)得出。1.1:編程語(yǔ)言與程序的關(guān)系程序(program)是為實(shí)現(xiàn)特定目標(biāo)或解決特定問(wèn)題而用計(jì)算機(jī)語(yǔ)言編寫的命令序列的集合。為實(shí)現(xiàn)預(yù)期目的而進(jìn)行操作的一系列語(yǔ)句和指令。一般分為系統(tǒng)程序和應(yīng)用程
3、序兩大類。程序就是為使電子計(jì)算機(jī)執(zhí)行一個(gè)或多個(gè)操作,或執(zhí)行某一任務(wù),按序設(shè)計(jì)的計(jì)算機(jī)指令的集合。簡(jiǎn)單一點(diǎn)說(shuō)如果我們把程序作為一種產(chǎn)品,那么編程語(yǔ)言就是生產(chǎn)實(shí)現(xiàn)的工具。1.2:c語(yǔ)言與編程語(yǔ)言的關(guān)系 計(jì)算機(jī)語(yǔ)言的種類非常的多,總的來(lái)說(shuō)可以分成機(jī)器語(yǔ)言,匯編語(yǔ)言,高級(jí)語(yǔ)言三大類。 如果按語(yǔ)種分,可以分為英文符號(hào)語(yǔ)言和漢語(yǔ)符號(hào)語(yǔ)言兩類。目前通用的編程語(yǔ)言有兩種形式:匯編語(yǔ)言和高級(jí)語(yǔ)言。而c語(yǔ)言是一款綜合功能強(qiáng)大的編程語(yǔ)言,和其它編程語(yǔ)言相比它既具有匯編語(yǔ)言的功能又具有高級(jí)語(yǔ)言的功能這一優(yōu)勢(shì)。這使得c語(yǔ)言成為當(dāng)今最受程序員歡迎也是應(yīng)用最為廣泛的編程語(yǔ)言之一。1.3:算法與程序的關(guān)系算法是程序的靈魂 我
4、們知道,計(jì)算機(jī)執(zhí)行的是人們事先編制好的程序。一個(gè)程序,它包括兩個(gè)方面:一是對(duì)數(shù)據(jù)的描述,即數(shù)據(jù)結(jié)構(gòu)( data structure ),它在程序中的作用是指定數(shù)據(jù)的類型和組織形式。二是對(duì)操作的描述,即算法( algorithm ),它在程序中的作用是控制操作的步驟,是程序?qū)崿F(xiàn)的基本思想。著名計(jì)算機(jī)科學(xué)家沃思( nikiklaus wirth )就曾提出: 程序 = 數(shù)據(jù)結(jié)構(gòu) + 算法1.4:算法與數(shù)學(xué)的關(guān)系在高中數(shù)學(xué)教材必修3中有過(guò)這樣幾句話“算法不僅是數(shù)學(xué)及其應(yīng)用的重要組成部分,也是計(jì)算機(jī)科學(xué)的重要基礎(chǔ)?!薄皬臄?shù)學(xué)發(fā)展的歷史來(lái)看,算法的概念古已有之。比如,在西方數(shù)學(xué)中很早就有了歐幾里得算法,
5、而中國(guó)古代數(shù)學(xué)中蘊(yùn)含著更為豐富的算法內(nèi)容和思想。割圓術(shù),秦九韶算法等等都是很經(jīng)典的算法。通過(guò)學(xué)習(xí)算法發(fā)展有條理的思考與表達(dá)的能力,提高邏輯思維能力?!辈⑶以诮滩闹薪o出了算法的定義。算法(algorithm)一詞出現(xiàn)于12世紀(jì),指的是用阿拉伯?dāng)?shù)字進(jìn)行算術(shù)運(yùn)算的過(guò)程。在數(shù)學(xué)中,算法通常是指按照一定規(guī)則解決某一類問(wèn)題的明確和有限的步驟?,F(xiàn)在,算法通??梢跃幊捎?jì)算機(jī)程序,讓計(jì)算機(jī)執(zhí)行并解決問(wèn)題.這樣算法與數(shù)學(xué)的關(guān)系就已經(jīng)十分的明確了??偨Y(jié):綜上所述,c語(yǔ)言作為編程語(yǔ)言之一,是為生產(chǎn)實(shí)現(xiàn)程序的工具,而無(wú)論構(gòu)成程序的數(shù)據(jù)結(jié)構(gòu)還是算法都屬于數(shù)學(xué)范疇。如果把程序比作產(chǎn)品,那么數(shù)學(xué)內(nèi)容就是原料和零件,而c語(yǔ)言就
6、是把原料和零件加工組裝成品的工具和機(jī)器。2 數(shù)學(xué)的思想方法在c語(yǔ)言中的應(yīng)用2.1輾轉(zhuǎn)相除法例1(1) 設(shè)計(jì)一個(gè)算法,判斷7是否為質(zhì)數(shù)。(2)設(shè)計(jì)一個(gè)算法,判斷35是否為質(zhì)數(shù)。算法分析:(1)根據(jù)質(zhì)數(shù)的定義,可以這樣判斷:依次用26除7,如果它們中有一個(gè)能整除7,則7不是質(zhì)數(shù),否則7是質(zhì)數(shù)。根據(jù)以上分析,可寫出如下算法:第一步,用2除7,得到余數(shù)1。因?yàn)橛鄶?shù)不為0,所以2不能整除7.第二步,用3除7,得到余數(shù)1。因?yàn)橛鄶?shù)不為0,所以3不能整除7.第三步,用4除7,得到余數(shù)3。因?yàn)橛鄶?shù)不為0,所以4不能整除7.第四步,用5除7,得到余數(shù)2。因?yàn)橛鄶?shù)不為0,所以5不能整除7.第五步,用6除7,得到余
7、數(shù)1。因?yàn)橛鄶?shù)不為0,所以6不能整除7.因此,7是質(zhì)數(shù)。(2)類似地,可寫出“判斷35是否為質(zhì)數(shù)”的算法:第一步,用2除35,得到余數(shù)1。因?yàn)橛鄶?shù)不為0,所以2不能整除35.第二步,用3除35,得到余數(shù)2。因?yàn)橛鄶?shù)不為0,所以3不能整除35.第三步,用4除35,得到余數(shù)3。因?yàn)橛鄶?shù)不為0,所以4不能整除35.第四步,用5除35,得到余數(shù)0。因?yàn)橛鄶?shù)為0,所以5能整除35.因此,35不是質(zhì)數(shù)。對(duì)于任意的整數(shù)n(n2),若用i表示2(n-1)中的任意整數(shù),則“判斷n是否為質(zhì)數(shù)”的算法包含下面的重復(fù)操作:用i除n,得到余數(shù)r。判斷余數(shù)r是否為0,若是,則n不是質(zhì)數(shù);否則,將i的值增加1,再執(zhí)行同樣的
8、操作。這個(gè)操作一直要進(jìn)行到i的值等于(n-1)為止。因此,“判斷n是否為質(zhì)數(shù)”的算法可以寫成:第一步,給定大于2的整數(shù)n。第二步,令i=2。第三步,用i除n,得到余數(shù)r。第四步,判斷“i=o”是否成立。若是,則n不是質(zhì)數(shù),結(jié)束算法;否則,將i的值增加1,仍用i表示。第五步,判斷“i(n-1)”是否成立。若是,則n是質(zhì)數(shù),結(jié)束算法;否則,返回第三步。2.2 更相減損術(shù)九章算術(shù)是中國(guó)古代的數(shù)學(xué)專著,其中的“更相減損術(shù)”也可以用來(lái)求兩個(gè)數(shù)的最大公約數(shù),即“可半者半之,不可半者,副置分母子之?dāng)?shù),以少減多,更相減損,求其等也。以等數(shù)約之?!狈g為現(xiàn)代語(yǔ)言如下:第一步,任意給定兩個(gè)正整數(shù),判斷它們是否都是
9、偶數(shù)。若是,用2簡(jiǎn)約;若不是,執(zhí)行第二步。第二步,以較大的數(shù)減去較小的數(shù),接著把差與較小的數(shù)比較,并以大數(shù)減小數(shù)。繼續(xù)這個(gè)操作,直到所得的數(shù)相等為止,則這個(gè)數(shù)或這個(gè)數(shù)與簡(jiǎn)約的數(shù)的乘積就是所求的最大公約數(shù)。例題2用更相減損術(shù)求98與63的最大公約數(shù)。解:由于63不是偶數(shù),把98和63以大數(shù)減小數(shù),并輾轉(zhuǎn)相減如下:98-86=3563-35=2836-28=728-7=2121-7=1414-7=7所以,98和63的最大公約數(shù)等于7.2.3 秦九韶算法怎樣求多項(xiàng)式f(x)=x5+x4+x3+x2+x+1當(dāng)x=5時(shí)的值?一個(gè)自然的做法是把5帶入多項(xiàng)式f(x),計(jì)算各項(xiàng)的值,然后把它們加起來(lái)。這時(shí),我
10、們一共做了1+2+3+4=10次乘法運(yùn)算,5次加法運(yùn)算。另一種做法是先計(jì)算x2 的值,然后依次計(jì)算x2*x,( x2*x)*x,( ( x2*x)*x)*x的值,這樣每次都可以利用上一次計(jì)算的結(jié)果。這時(shí),我們一共做了4次乘法運(yùn)算,5次加法運(yùn)算。第二種做法與第一種做法相比,乘法的運(yùn)算次數(shù)減少了,因而能夠提高運(yùn)算效率。對(duì)于計(jì)算機(jī)來(lái)說(shuō),做一次乘法運(yùn)算所用的時(shí)間比做一次加法運(yùn)算長(zhǎng)得多,所以采用第二種做法,計(jì)算機(jī)能更快地得到結(jié)果。我國(guó)南宋時(shí)期的數(shù)學(xué)家秦九韶在他的著作數(shù)書九章中提出了下面的算法。把一個(gè)n次多項(xiàng)式f(x)=anxn +an-1xn-1 +a1x+a0改寫成如下形式: f(x)= anxn +
11、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 .求多項(xiàng)式的值時(shí),首先計(jì)算最內(nèi)層括號(hào)內(nèi)一次多項(xiàng)式的值,即 u1= anxn+ an-1,然后由內(nèi)向外逐層計(jì)算一次多項(xiàng)式的值,即 u2= u1x+ an-2, u3= u2x+ an-3, un= un-1x+a0,這樣,求n次多項(xiàng)式f(x)的值就轉(zhuǎn)化為求n個(gè)一次多項(xiàng)式的值。 上述方法稱為秦九韶算法。算法分析:觀察上述秦九韶算法中的n個(gè)一次式,可見uk的計(jì)算要用到uk-1的值。若令u
12、0=an,我們可以得到下面的公式: u0=an, uk=uk-1x+an-k(k=1,2, ,n).這是一個(gè)在秦九韶算法中反復(fù)執(zhí)行的步驟,因此可用循環(huán)結(jié)構(gòu)來(lái)實(shí)現(xiàn)。算法步驟如下:第一步,輸入多項(xiàng)式的次數(shù)n,最高此項(xiàng)的系數(shù)an和x的值.第二步,將u的值初始化為an,將i的值初始化為n-1.第三步,輸入i此項(xiàng)的系數(shù)ai.第四步,u=ux+ai,i=i-1.第五步,判斷i是否大于或等于0,若是,則返回第三步;否則,輸出多項(xiàng)式的值u.2.4進(jìn)位制進(jìn)位制使人們?yōu)榱擞?jì)數(shù)和運(yùn)算方便而約定的計(jì)數(shù)系統(tǒng),約定滿二進(jìn)一,就是二進(jìn)制;滿十進(jìn)一,就是十進(jìn)制;滿十二進(jìn)一,就是十二進(jìn)制;等等。也就是說(shuō),“滿幾進(jìn)一”就是幾進(jìn)制
13、,幾進(jìn)制的基數(shù)就是幾。一般地,若k是一個(gè)大于1的整數(shù),那么以k為基數(shù)的k進(jìn)制數(shù)可以表示為一串?dāng)?shù)字連寫在一起的形式anan-1a1a0(k) (an,an-1,a1n,0 ank,0an-1 ,a1,a0n是否成立,若是,則執(zhí)行第五步;否則返回第三步。第五步,輸出b的值。例題4 設(shè)計(jì)一個(gè)求解一元二次方程ax2+bx+c=0的算法。 算法分析:我們知道,若判別式=b2-4ac0,則原方程有兩個(gè)不相等的實(shí)數(shù)根x1=(-b+)/(2a),x2=(-b-)/(2a);若=0,則原方程有兩個(gè)相等的實(shí)數(shù)根x1= x2=(-b)/(2a);若0,則原方程沒(méi)有實(shí)數(shù)根。也就是說(shuō),在求解方程之前,可以先判斷判別式的
14、符號(hào),根據(jù)判斷的結(jié)果執(zhí)行不同的步驟。又因?yàn)榉匠痰膬蓚€(gè)根有相同的部分,為了避免重復(fù)計(jì)算,可以在計(jì)算x1和x2之前,先計(jì)算p=(-b)/(2a),q=()/(2a)。解決這一問(wèn)題步驟如下:第一步,輸入3個(gè)系數(shù)a,b,c.第二步,計(jì)算=b2-4ac。第三步,判斷0是否成立。若是,則計(jì)算p=(-b)/(2a),q=()/(2a):否則,輸出“方程沒(méi)有實(shí)數(shù)根”,結(jié)束算法。第四步,判斷=0是否成立。若是,則輸出x1= x2=p;否則,計(jì)算x1=p+q, x2=p-q,并輸出x1,x2。3 結(jié)合具體事例解決編程問(wèn)題3.1 例題1輾轉(zhuǎn)相除法main() int m,n,r;doprintf(“請(qǐng)輸入兩個(gè)正整數(shù)
15、:”);scanf(“%d%d”,&m,&n);while(m=0n=0);r=m%n;m=n;n=r;while(r!=0);printf(“%d”,m);3.2 例題2 更相減損術(shù)main()int a,b;doprint(“請(qǐng)輸入兩個(gè)正整數(shù):”);scanf(“%d%d”,&a,&b);while(m=0n=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(ab)a=a-b;.else printf(“%d”,a);3.3 例題3秦九韶算法main()int n,i;doubl
16、e x,v,ai;printf(“輸入多項(xiàng)式的次數(shù)n,最高此項(xiàng)的系數(shù)an和x的值”);scanf(“%d%lf%lf”,&n,&an,&x);v=an;i=n-1;while(i=0)scanf(“輸入ai=%d”,&an);v=v*x+ai;i=i-1;printf(“%ld”,v);3.4例4進(jìn)位制設(shè)計(jì)一個(gè)算法,把k進(jìn)制數(shù)a(共有n為)化為十進(jìn)制數(shù)b.main()int a,k,n,b,i,t;scanf(“%d%d%d”,&a,&k,&n);b=0;i=1;t=a%10;dob=b+t*k(i-1);a=a10;t=a%10;i=i+1;while(i=0.0) printf(“two root:x1=%lft x2=%lfn”,re+im,re-im);else printf(“two complex roots:x1=%lf+i*%lft x2=%lf-i*%lfn”,er,im,er,im); 結(jié)束語(yǔ)c語(yǔ)言和其它編程語(yǔ)言相比學(xué)習(xí)起來(lái)難度較大。為什么c語(yǔ)言學(xué)習(xí)起來(lái)比較難呢?那是因?yàn)楹芏嗑幊陶Z(yǔ)言注重編程工具的熟練使用,而對(duì)于編寫程序代碼要求較低。c語(yǔ)言專注于編寫程序代碼,所以學(xué)習(xí)起來(lái)相
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個(gè)人股權(quán)轉(zhuǎn)讓協(xié)議書范本4篇
- 2025年度綠色環(huán)保店鋪?zhàn)赓U及設(shè)施共建合同
- 2025版時(shí)尚服飾銷售合同模板(含季節(jié)性折扣)
- 2025年度個(gè)人別墅租賃合同模板2篇
- 2025年度環(huán)保工程監(jiān)理服務(wù)合同范本
- 2025年度商鋪買賣合同(含商業(yè)配套移交協(xié)議)4篇
- 2025-2030全球魚雷泵行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)賽車運(yùn)動(dòng)駕駛模擬器行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2024年臨床醫(yī)師定期考核試題中醫(yī)知識(shí)題庫(kù)及答案(共330題) (二)
- 2024年七年級(jí)語(yǔ)文下冊(cè)期末專項(xiàng)復(fù)習(xí):記敘文閱讀
- 2024年高純氮化鋁粉體項(xiàng)目可行性分析報(bào)告
- 安檢人員培訓(xùn)
- 山東省濰坊市2024-2025學(xué)年高三上學(xué)期1月期末 英語(yǔ)試題
- 危險(xiǎn)性較大分部分項(xiàng)工程及施工現(xiàn)場(chǎng)易發(fā)生重大事故的部位、環(huán)節(jié)的預(yù)防監(jiān)控措施
- 《榜樣9》觀后感心得體會(huì)四
- 2023事業(yè)單位筆試《公共基礎(chǔ)知識(shí)》備考題庫(kù)(含答案)
- 化學(xué)-廣東省廣州市2024-2025學(xué)年高一上學(xué)期期末檢測(cè)卷(一)試題和答案
- 2025四川中煙招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 直流電機(jī)電樞繞組簡(jiǎn)介
- GB/T 19889.5-2006聲學(xué)建筑和建筑構(gòu)件隔聲測(cè)量第5部分:外墻構(gòu)件和外墻空氣聲隔聲的現(xiàn)場(chǎng)測(cè)量
- 《土地寶懺》2019版定稿
評(píng)論
0/150
提交評(píng)論