項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行_第1頁
項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行_第2頁
項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行_第3頁
項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行_第4頁
項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行2024/3/12項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行技能目標(biāo)會(huì)畫程序的流程圖或N-S結(jié)構(gòu)圖會(huì)用if-else實(shí)現(xiàn)分支結(jié)構(gòu)和多分支結(jié)構(gòu)的程序設(shè)計(jì)會(huì)用條件運(yùn)算符進(jìn)行分支結(jié)構(gòu)的程序設(shè)計(jì)會(huì)用switch語句實(shí)現(xiàn)多分支結(jié)構(gòu)的程序設(shè)計(jì)會(huì)用for語句、while語句、do-while語句進(jìn)行循環(huán)結(jié)構(gòu)程序設(shè)計(jì)會(huì)用break語句和continue語句項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行知識(shí)目標(biāo)掌握if-else語句的用法掌握條件運(yùn)算符的使用掌握switch語句的用法掌握for語句、while語句和do-while語句的使用掌握循環(huán)的簽套使用掌握break和continue語句的使用項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行項(xiàng)目任務(wù)與解析本項(xiàng)目實(shí)現(xiàn)班級(jí)學(xué)生成績管理系統(tǒng)中用if語句實(shí)現(xiàn)菜單的選擇執(zhí)行、用switch語句實(shí)現(xiàn)菜單的選擇執(zhí)行、用循環(huán)語句實(shí)現(xiàn)主菜單的選擇執(zhí)行。本項(xiàng)目包含下面幾個(gè)任務(wù):任務(wù)4:用if語句實(shí)現(xiàn)菜單的選擇執(zhí)行任務(wù)5:用switch語句實(shí)現(xiàn)菜單的選擇執(zhí)行任務(wù)6:用循環(huán)語句實(shí)現(xiàn)主菜單的選擇執(zhí)行項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行

主要內(nèi)容3.1任務(wù)4:用if語句實(shí)現(xiàn)菜單的選擇執(zhí)行3.2必備知識(shí)與理論3.3擴(kuò)展知識(shí)與理論3.4任務(wù)5:用switch語句實(shí)現(xiàn)菜單的選擇執(zhí)行3.5必備知識(shí)與理論3.6擴(kuò)展知識(shí)與理論3.7任務(wù)6:用循環(huán)語句實(shí)現(xiàn)菜單的選擇執(zhí)行3.8必備知識(shí)與理論3.9擴(kuò)展知識(shí)與理論項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行3.1任務(wù)4:用if語句實(shí)現(xiàn)菜單的選擇執(zhí)行1.問題描述對(duì)顯示的菜單,選擇要執(zhí)行的菜單序號(hào),并顯示要執(zhí)行的菜單名。2.具體實(shí)現(xiàn)P41程序3.知識(shí)分析在多數(shù)情況下順序結(jié)構(gòu)的程序是很少的,一般還包括分支和循環(huán)結(jié)構(gòu)。分支結(jié)構(gòu)還包括if-else結(jié)構(gòu)和switch結(jié)構(gòu)。我們首先來學(xué)習(xí)分支結(jié)構(gòu),在學(xué)習(xí)分支結(jié)構(gòu)前了解一些算法的概念,關(guān)系運(yùn)算符和邏輯運(yùn)算符的使用。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行3.2必備知識(shí)與理論3.2.1算法的概念1.算法算法就是程序處理問題的步驟與方法。

1976年瑞士計(jì)算機(jī)科學(xué)家NiklausWirth提出了一個(gè)著名的公式:算法+數(shù)據(jù)結(jié)構(gòu)=程序項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行2.算法的特性簡單地說,算法就是進(jìn)行操作的方法和操作步驟。例如,菜譜實(shí)際上是做菜肴的算法,樂譜實(shí)際上是演奏的算法,計(jì)算機(jī)程序是用某種程序設(shè)計(jì)語言描述的解題算法。通常認(rèn)為算法有如下一些性質(zhì):(1)有窮性一個(gè)算法要在有限的步驟內(nèi)解決問題(這里所說的步驟是指計(jì)算機(jī)執(zhí)行步驟)。計(jì)算機(jī)程序不能無限地運(yùn)行下去(甚至不能長時(shí)間地運(yùn)行下去),所以一個(gè)無限執(zhí)行的方法不能成為程序設(shè)計(jì)中的“算法”。(2)確定性確定性具有兩重意義:一是所描述的操作應(yīng)當(dāng)具有明確的意義,不應(yīng)當(dāng)有歧義性。例如,不能發(fā)出這樣的操作指令:“執(zhí)行一個(gè)算術(shù)操作”。因?yàn)樗葲]有指出算術(shù)操作的類型,也沒有指出操作數(shù)。確定性的另一重意義:·操作作序列只有一個(gè)初始動(dòng)作,序列中每一動(dòng)作僅有一個(gè)后繼動(dòng)作;·序列終止表示問題得到解答或問題沒有解答,不能沒有任何結(jié)論。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行(3)有零個(gè)或多個(gè)輸入輸入就是從外界取得必要的信息。一個(gè)算法可以有零個(gè)或多個(gè)輸入,例如:輸入一個(gè)年份,判斷其是否是閏年。同時(shí)一個(gè)算法可以沒有輸入,例如:計(jì)算出5!是多少。(4)有一個(gè)或多個(gè)輸出算法的目的就求解,“解”就是我們想要得到的最終結(jié)果。輸出是同輸入有著某些特定關(guān)系的量。一個(gè)算法得到的最終結(jié)果就是輸出。沒有輸出的算法是沒有意義的。(5)可執(zhí)行性一個(gè)算法應(yīng)當(dāng)是可以由計(jì)算機(jī)執(zhí)行的,算法中描述的操作都是可以通過計(jì)算機(jī)的運(yùn)行來實(shí)現(xiàn)。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行3.2.2算法的表示方法

1.自然語言表示算法自然語言是相對(duì)于計(jì)算機(jī)語言而言的,是指人們?cè)谌粘I钪惺褂玫恼Z言,如漢語、英語等。對(duì)于某些程序員來說,自然語言通俗易懂。但是,對(duì)于規(guī)模大、復(fù)雜的算法,使用自然語言來描述,往往很冗長,不直觀,而且容易發(fā)生歧義。比如對(duì)于以下這句話:如果A大于B,就給它加1。在理解時(shí)就可能出現(xiàn)歧義,是給A加1?還是給B加1。對(duì)于以上的一段話,如果我們用C語言進(jìn)行編程則為: if(A>B) A=A+1;正是由于自然語言描述算法具有的缺陷,所以在程序設(shè)計(jì)中很少有人使用。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行2.傳統(tǒng)流程圖表示法用一些圖框表示各種操作,用線表示這些操作的執(zhí)行順序。我國國家標(biāo)準(zhǔn)GB1526—89中推薦的一套流程圖標(biāo)準(zhǔn)化符號(hào),它與國際標(biāo)準(zhǔn)化組織ISO提出的ISO流程圖符號(hào)是一致的。圖3-1為其中常用的一些符號(hào)。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行過程判斷數(shù)據(jù)預(yù)定義過程起止流程線連接注釋圖3.2常用的流程圖標(biāo)準(zhǔn)化符號(hào)

項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行平行四邊形表示數(shù)據(jù),其中可注明數(shù)據(jù)名稱、來源、用途或其它的文字說明。處理矩形表示各種處理功能。例如,執(zhí)行一個(gè)或一組特定的操作,從而使信息的值、信息形式或所在位置發(fā)生變化。矩形內(nèi)可注明處理名稱或其簡要功能。預(yù)定義過程帶有雙豎邊線的矩形,表示已命名的處理。該處理為在另外地方已得到詳細(xì)說明的一個(gè)操作或一組操作。例如庫函數(shù)或其它已定義的函數(shù)等。矩形內(nèi)可注明特定處理名稱或其簡要功能。判斷菱形表示判斷。菱形內(nèi)可注明判斷的條件。它只有一個(gè)入口,但可以有若干個(gè)可供選擇的出口,在對(duì)定義的判斷條件求值后,有一個(gè)且僅有一個(gè)出口被選擇。求值結(jié)果可在表示出口路徑的流線附近寫出。流線直線表示執(zhí)行的流程。當(dāng)流程自上向下或由左向右時(shí),流程線可不帶箭頭,其它情況應(yīng)加箭頭表示流程。端點(diǎn)。扁圓形表示轉(zhuǎn)向外部環(huán)境或從外部環(huán)境轉(zhuǎn)入的端點(diǎn)符。例如,程序流程的起、始點(diǎn)。注解。注解是程序的編寫者向閱讀者提供的說明。注解符由縱邊線構(gòu)成,它用虛線連接到被注解的符號(hào)或符號(hào)組上。

項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行圖3-2(a)、(b)、(c)中的虛線框,分別為用流程圖表示的三種基本流程控制結(jié)構(gòu)。S1S2S3PS1S2真假PS2假真(a)順序結(jié)構(gòu)

(b)選擇結(jié)構(gòu)

(c)重復(fù)結(jié)構(gòu)

圖3-2

用流程圖描述的三種基本結(jié)構(gòu)

項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行例3-1用流程圖描述從三個(gè)數(shù)中取最大數(shù)的算法。從三個(gè)數(shù)中取最大數(shù)的算法思路是:假定這三個(gè)數(shù)是a,b,c,則首先可以比較a,b兩數(shù),從中選大者;然后再用這個(gè)大數(shù)與數(shù)c比較,從中取大者。這時(shí)得到的大數(shù),就是三個(gè)數(shù)中的最大數(shù)。這個(gè)算法用流程圖描述如圖3-3(a)所示。通常,求解一個(gè)問題的算法不是唯一的。例如圖3-3(b)也是一個(gè)三數(shù)中取大的算法。它的基本思路是,先設(shè)max=第一個(gè)數(shù),然后依次輸入i個(gè)數(shù),每輸入一個(gè)數(shù),與max比較一次,把大的放入max中。當(dāng)輸完i個(gè)數(shù)時(shí),max中存放的就是這i個(gè)數(shù)中的最大數(shù)。這里,i是一個(gè)計(jì)數(shù)器,用于統(tǒng)計(jì)輸入數(shù)的個(gè)數(shù),所以每輸入一個(gè)數(shù),要執(zhí)行一次自增操作。這個(gè)算法與圖3-3(a)所示算法的不同在于:算法結(jié)構(gòu)不同:圖3-3(a)所示算法采用了兩個(gè)選擇結(jié)構(gòu),而圖3-3(b)所示算法采用了一個(gè)循環(huán)結(jié)構(gòu)和一個(gè)選擇結(jié)構(gòu)。算法的靈活性不同:圖3-3(b)中的算法可以用來求任意個(gè)數(shù)中的最大數(shù)。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行a>=b輸入a,b,cmax=a真假max=bmax>=c真假輸出max輸出c開始結(jié)束i<=3輸入一個(gè)n假真假輸出max開始結(jié)束max=0,i=1真i++n>=maxmax=n(a)一個(gè)三數(shù)中取大的算法

(b)另一個(gè)三數(shù)中取大的算法

圖3-3三數(shù)中取大算法的流程圖描述

項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行3.用N-S流程圖表示算法靈活的流線是程序中隱藏錯(cuò)誤的禍根。針對(duì)這一弊病,1973年美國學(xué)者I.Nassi和B.Shneiderman提出了一種無流線的流程圖,稱為N-S圖。它的三種基本結(jié)構(gòu)如圖3-4所示。N-S圖的每一種基本結(jié)構(gòu)都是一個(gè)矩形框,整個(gè)算法可以像堆積木一樣堆成。其中,(a)為三個(gè)操作組成的順序結(jié)構(gòu);(b)為二分支的選擇結(jié)構(gòu);(c)為當(dāng)型重復(fù)結(jié)構(gòu),即當(dāng)命題P為“真”時(shí),就重復(fù)執(zhí)行S。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行S1S2S3PS1S2當(dāng)PS假真(c)循環(huán)結(jié)構(gòu)(a)順序結(jié)構(gòu)

(b)選擇結(jié)構(gòu)圖3-4用N-S圖描述三種基本流程結(jié)構(gòu)

項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行圖3-5(a)、(b)給出了用與圖3-3(a)、(b)流程圖對(duì)應(yīng)的N-S圖。a>=bmax=amax=b輸入a,b,c假真max>=c輸出max輸出c真假當(dāng)i<=3i++n>=maxmax=n真假輸入n初始化:max=0,i=1輸出max(a)采用選擇結(jié)構(gòu)

(b)采用循環(huán)結(jié)構(gòu)

圖3-5

三數(shù)中取大算法的N-S圖描述項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行

3.用偽碼表示算法偽代碼(pseudocode)是用介于自然語言與計(jì)算機(jī)語言之間的文字符號(hào)算法描述的工具。它無固定的、嚴(yán)格的語法規(guī)則,通常是借助某種高級(jí)語言的控制結(jié)構(gòu),中間的操作可以用自然語言(如中文或英文),也可以用程序設(shè)計(jì)語言,或使用自然語言與程序設(shè)計(jì)語言的混合體。一般專業(yè)人員習(xí)慣用偽代碼進(jìn)行算法描述。下面是與圖3-3相對(duì)應(yīng)的三數(shù)中取大算法的偽代碼描述。

(1)與圖3-3(a)相對(duì)應(yīng)的三數(shù)中取大算法的偽代碼描述:輸入a,b,c;if(a>=b) max=a;else max=bif(max>=c) 輸出max;else輸出c;項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行(2)與圖3-3(b)相對(duì)應(yīng)的三數(shù)中取大算法的偽代碼描述:初始化:mac=0,i=1;當(dāng)(i<=3)( 輸入n;i++;if(n>=max) max=n;)輸出max;項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行3.2.3結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)的基本思路是:把一個(gè)復(fù)雜的問題的求解過程分階段進(jìn)行,每個(gè)階段處理的問題都控制在人們?nèi)菀桌斫獾姆秶畠?nèi)。采取以下的方法保證得到結(jié)構(gòu)化的程序:自頂向下;逐步細(xì)化(求精);模塊化設(shè)計(jì);結(jié)構(gòu)化編碼。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行結(jié)構(gòu)化程序具有如下的特征:一個(gè)程序單元由順序、分支和循環(huán)這三種基本結(jié)構(gòu)組成;一個(gè)大的程序由若干個(gè)不同功能的小模塊組成;每一個(gè)小模塊只有一個(gè)入口和一個(gè)出口;項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行3.2.4命題與C語言中的邏輯值對(duì)選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu),流程的改變都是由判斷決定的,即需要根據(jù)判斷決定選擇,根據(jù)判斷決定是否循環(huán)以及循環(huán)的結(jié)束。通常,判斷是針對(duì)命題的“真”、“假”進(jìn)行的。例如,下面是一些命題:·(行駛中)前面的交通信號(hào)燈是紅色的。·今天下雨?!≥b?!と绻鸻不能被b整除。這些命題的值都只能是一個(gè)邏輯(布爾)值:“真”或“假”。早期的C語言不提供專門的邏輯(布爾)類型,規(guī)定用非0值表示“真”,用0值表示“假”。在C99中,增加了_Bool類型,并增加了頭文件<stdbool.h>,在其中定義了宏bool、true和false,用true存儲(chǔ)1,用false存儲(chǔ)0。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行3.2.5關(guān)系運(yùn)算與關(guān)系表達(dá)式

1.C語言的關(guān)系運(yùn)算符關(guān)系運(yùn)算是指對(duì)兩個(gè)表達(dá)式值的大小比較。C語言中提供有如下6個(gè)關(guān)系運(yùn)算符:>(大于) >=(大于或等于) <(小于)<=(小于或等于) ==(等于) !=(不等于)后兩個(gè)(==和!=)的優(yōu)先級(jí)小于前4個(gè),但它們都低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符,并且它們結(jié)合方式都是從左向右的。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行2.關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(可以是算術(shù)表達(dá)式、關(guān)系表達(dá)式,邏輯表達(dá)式,賦值表達(dá)式,字符表達(dá)式等)連接起來的表達(dá)式,稱為關(guān)系表達(dá)式。關(guān)系表達(dá)式的值只有兩個(gè):關(guān)系表達(dá)式成立,即為“真”(通常為1);關(guān)系表達(dá)式不成立,即為“假”(0)。

項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行3.2.6邏輯運(yùn)算與邏輯表達(dá)式1.邏輯運(yùn)算符與優(yōu)先級(jí)C語言有三個(gè)邏輯運(yùn)算符,它們是:&&(邏輯與) ||(邏輯或) !(邏輯非)&&和||是二元運(yùn)算符,結(jié)合方向?yàn)樽宰笾劣遥?為一元運(yùn)算符,結(jié)合方向?yàn)樽杂抑磷蟆?的優(yōu)先級(jí)高于&&,&&的優(yōu)先級(jí)高于||。&&和||的優(yōu)先級(jí)低于關(guān)系運(yùn)算符,而!的優(yōu)先級(jí)高于關(guān)系運(yùn)算符。2.邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來的表達(dá)式就是邏輯表達(dá)式,邏輯表達(dá)式的值應(yīng)該是一個(gè)邏輯量“真”或“假”。

項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行

邏輯運(yùn)算中有很多有趣的規(guī)律,這種規(guī)律稱為短路原則。1.在一個(gè)&&表達(dá)式中,若&&的一端為0,則不必再計(jì)算另一端,該表達(dá)式的值肯定為0(在C語言中由于&&是從左向右結(jié)合的,所以只考慮左端,即當(dāng)&&號(hào)的左端為0時(shí),不再計(jì)算其右端),可以把它記為:0&&a=02.在一個(gè)||表達(dá)式中,若||的一端為1,則不必計(jì)算另一端,該||表達(dá)式的值必為1。現(xiàn)把它記為:1||a=1諸如此類關(guān)于表達(dá)式的值的規(guī)律有如下一些:0||a==a 1&&a==a 1||a==1 0&&a==0a||!a==1 0&&!a==0以及a||a==a a&&a==a !(a||b)==!a&&!b !(a&&b)==!a||!b!(!a)==a記住這些規(guī)律,能使復(fù)雜的邏輯運(yùn)算簡化、清晰。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行3.3擴(kuò)展知識(shí)與理論選擇型程序描述了求解規(guī)則:在不同的條件下所應(yīng)進(jìn)行的相應(yīng)操作。3.3.1if(表達(dá)式)語句這種語句的結(jié)構(gòu)是:

if(表達(dá)式)語句它的執(zhí)行流程是,當(dāng)表達(dá)式的值為真時(shí),執(zhí)行“語句”,否則執(zhí)行if語句后面的語句。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行例3-4輸入三個(gè)數(shù)a,b,c,要求按由小到大的順序輸出。我們只要把最小的數(shù)放到a上:先將a與b進(jìn)行比較,如果a>b則將a與b的值進(jìn)行交換,然后再用a與c進(jìn)行比較,如果a>c則將a與c的值進(jìn)行交換,這樣能使a最小。對(duì)剩下的兩個(gè)數(shù),從小到大排序就容易了,該程序的N-S結(jié)構(gòu)圖如右圖所示。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行3.3.2if…else結(jié)構(gòu)if…else構(gòu)造了一種二路分支的選擇結(jié)構(gòu),它的格式如下:

if(表達(dá)式)語句1else 語句2這里,語句1和語句2就是兩路分支。執(zhí)行這個(gè)結(jié)構(gòu),首先對(duì)表達(dá)式進(jìn)行判斷,若為“真”(非零),就執(zhí)行if分結(jié)構(gòu)(語句1);否則(值為0),就執(zhí)行else分結(jié)構(gòu)(語句2)。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行例3-5求一個(gè)數(shù)的絕對(duì)值。設(shè)有任意數(shù)x,它的絕對(duì)值為判斷內(nèi)容:x<0是否成立。兩路分支:①|x|=x(當(dāng)x≥0);②|x|=-x(當(dāng)x<0)C函數(shù)如下:doubleabstr(doublex){if(x<0.0)x=-x;elsex=x;return(x);}項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行下面是函數(shù)abstr被調(diào)用執(zhí)行的情況:#include<stdio.h>intmain(void){doublea,abstr(doublea);printf(″Enterrealnumberaplease:″);scanf(″%1f″,&a);printf(″abstr(%1f)=%1f\n″,a,abstr(a));rerurn0;}運(yùn)行情況如下

Enterrealnumberaplease:-98.7654abstr(-98.765400)=98.765400項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行例3-6求一元二次方程ax2+bx+c=0的根。算法設(shè)計(jì):一元二次方程式的根有下列情況:當(dāng)a=0,b=0時(shí),方程無解;當(dāng)a=0,b≠0時(shí),方程只有一個(gè)實(shí)根-c/b;當(dāng)a≠0時(shí),方程的根為x=(-b±(b2-4ac)1/2)/(2*a)。其中,當(dāng)b2-4ac≥0時(shí)有兩個(gè)實(shí)根;當(dāng)b2-4ac<0時(shí),有兩個(gè)虛根。圖3-8為上述算法的N-S圖表示,它把上述邏輯關(guān)系表示得更為清晰。b=0輸出“無解”輸出單根:x=-c/b假真disc<0輸出兩復(fù)數(shù)根輸出兩實(shí)根真假a=0真假disc=b*b-4*a*c圖3-12求一元二次方程根的算法項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行#include<math.h>voidsolv_quadr_equa(floata,floatb,floatc){if(a==0.0)if(b==0.0)printf(″noanswerduetoinputerror\n″);elseprintf(″thesinglerootis%f\n″,-c/b);else{doubledisc,twoa,term1,term2;disc=b*b-4*a*c;twoa=2*a;term1=-b/twoa;term2=sqrt(fabs(disc))/twoa;if(disc<0.0=printf(″complexroot:\nrealpart=%f,imagpart=%f\n″,term1,term2);elseprintf(″realroot:\nroot1=%f,root2=%f\n″,term1+term2,term1-term2);}}由此N-S圖可以編寫出以下的函數(shù):項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行3.3.3if-elseif結(jié)構(gòu)

if-elseif是一種多分支選擇結(jié)構(gòu),用N-S圖描述下右圖所示,C語言中的格式如下左圖所示:if(表達(dá)式1)語句1elseif(表達(dá)式2)語句2┇elseif(表達(dá)式n)語句nelse語句n+1語句1語句2語句3真假表達(dá)式1假真表達(dá)式2真假表達(dá)式3┇項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行例3-7根據(jù)百分制分?jǐn)?shù)決定成績的等級(jí):·90分以上為A級(jí);·80分及以上,90分以下,B級(jí);·70分及以上,80分以下,C級(jí);·60分及以上,70分以下,D級(jí);·60分以下,E級(jí)。下圖為用if-elseif結(jié)構(gòu)描述的上述規(guī)則。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行3.4任務(wù)5:用switch語句實(shí)現(xiàn)菜單的選擇執(zhí)行1.問題描述對(duì)顯示的菜單,選擇要執(zhí)行的菜單序號(hào),并顯示要執(zhí)行的菜單名。2.具體實(shí)現(xiàn)P54程序3.知識(shí)分析分支結(jié)構(gòu)程序設(shè)計(jì)除if-else結(jié)構(gòu)外,還包括switch結(jié)構(gòu)。Switch結(jié)構(gòu)是一種多路分支的選擇結(jié)構(gòu)程序設(shè)計(jì)。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行switch是一種多分支選擇結(jié)構(gòu),其形式如下圖左所示,N-S結(jié)構(gòu)圖如下右圖所示。3.5必備知識(shí)與理論switch(表達(dá)式){case常量表達(dá)式1:語句序列1case常量表達(dá)式2:語句序列2

┇case常量表達(dá)式n:語句序列ndefault:語句序列n+1}項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行這里,break語句的作用是中斷該switch結(jié)構(gòu),即將流程轉(zhuǎn)出switch結(jié)構(gòu)。所以,執(zhí)行switch結(jié)構(gòu)的就相當(dāng)于只執(zhí)行與判斷表達(dá)式相匹配的一個(gè)case子結(jié)構(gòu)中的語句。其實(shí),可以將break看作為語句序列中必要的成分(位置在語句序列中的最后)。switch(表達(dá)式){case常量表達(dá)式1:語句序列1break;case常量表達(dá)式2:語句序列2break;┇case常量表達(dá)式n:語句序列nbreak;default:語句序列n+1break;}項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行例3-11根據(jù)百分制分?jǐn)?shù)決定成績的等級(jí):?90分以上為A級(jí);?80分及以上,90分以下,B級(jí);?70分及以上,80分以下,C級(jí);?60分及以上,70分以下,D級(jí);?60分以下,D級(jí)。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行/******按成績分等******/#include<stdio.h>intmain(void){ floatscore; intgrade; printf("輸入一個(gè)分?jǐn)?shù):"); scanf("%f",&score); grade=score/10; switch(grade) { case10: case9:printf("A\n");break; case8:printf("B\n");break; case7:printf("C\n");break; case6:printf("D\n");break; case5: case4: case3: case2: case1: case0:printf("E\n");break; } return0;}項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行3.6必備知識(shí)與理論條件運(yùn)算符是C語言中唯一的三目運(yùn)算符,即有三個(gè)參數(shù)參與運(yùn)算。由條件運(yùn)算符組成條件表達(dá)式的一般形式為:

表達(dá)式1?表達(dá)式2:表達(dá)式3其求值規(guī)則為:如果表達(dá)式1的值為真,則把表達(dá)式2的值作為該條件表達(dá)式的值,否則把表達(dá)式3的值作為該條件表達(dá)式的值。條件運(yùn)算符的優(yōu)先級(jí)很低,僅僅比賦值操作符的級(jí)別高。其結(jié)合方式與賦值運(yùn)算符一樣是從右至左的。因此,表達(dá)式max=a>b?a∶b相當(dāng)于:max=(a>b?a:b);3.6擴(kuò)展知識(shí)與理論項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行3.7任務(wù)6:用循環(huán)語句實(shí)現(xiàn)菜單的選擇執(zhí)行1.問題描述對(duì)顯示的菜單,選擇要執(zhí)行的菜單序號(hào),并顯示要執(zhí)行的菜單名。2.具體實(shí)現(xiàn)用for語句實(shí)現(xiàn)P60程序用while語句實(shí)現(xiàn)P61程序用do…while語句實(shí)現(xiàn)P61-P62程序3.知識(shí)分析循環(huán)結(jié)構(gòu)程序設(shè)計(jì)包括while、do-while和for循環(huán)三種結(jié)構(gòu),對(duì)已知循環(huán)次數(shù)的循環(huán)多采用for循環(huán);對(duì)循環(huán)次數(shù)不確定,循環(huán)首先執(zhí)行一次的循環(huán)多采用do-while循環(huán),而需要根據(jù)循環(huán)條件來確定循環(huán)是否要執(zhí)行的,多采用while循環(huán)。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行3.8必備知識(shí)與理論3.8.1while結(jié)構(gòu)while語句的一般形式為:

while(表達(dá)式)語句其中表達(dá)式是循環(huán)條件,語句為循環(huán)體。while語句的語義是:計(jì)算表達(dá)式的值,當(dāng)值為真(非0)時(shí),執(zhí)行循環(huán)體語句;否則跳過循環(huán)體,而執(zhí)行該結(jié)構(gòu)后面的語句。在進(jìn)入循環(huán)體后,每執(zhí)行完一次循環(huán)體語句后,再對(duì)判斷表達(dá)式進(jìn)行一次計(jì)算和判斷。當(dāng)發(fā)現(xiàn)判斷表達(dá)式的值為0時(shí),便立即退出循環(huán)。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行例3-12兔子繁殖問題。著名意大利數(shù)學(xué)家Fibonacci曾提出一個(gè)有趣的問題:設(shè)有一對(duì)新生兔子,從第三個(gè)月開始它們每個(gè)月都生一對(duì)兔子。按此規(guī)律,并假設(shè)沒有兔子死亡,一年后共有多少對(duì)兔子。人們發(fā)現(xiàn)每月的兔子數(shù)組成如下數(shù)列:1,1,2,3,5,8,13,21,34,…并把它稱為Fibonacci數(shù)列。那么,這個(gè)數(shù)列如何導(dǎo)出呢?觀察一下Fibonacci數(shù)列可以發(fā)現(xiàn)這樣一個(gè)規(guī)律:從第3個(gè)數(shù)開始,每一個(gè)數(shù)都是其前面兩個(gè)相鄰數(shù)之和。這是因?yàn)?,在沒有兔子死亡的情況下,每個(gè)月的兔子數(shù)由兩部分組成:上一月的老兔子數(shù),這一月剛生下的新兔子數(shù)。上一月的老兔子數(shù)即其前一個(gè)數(shù)。這一月剛生下的新兔子數(shù)恰好為上上月的兔子數(shù)。因?yàn)樯弦辉碌耐米又羞€有一部分到這個(gè)月還不能生小兔子,只有上上月已有的兔子才能每對(duì)生一對(duì)小兔子。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行上述算法可以描述為fib1=fib2=1 (1)fibn=fibn-1+fibn-2(n>=3) (2)式(1)為賦初值,式(2)為迭代公式。用C語言來描述式(2)為:fib=fib1+fib2;fib1=fib2;/*為下一次迭代作準(zhǔn)備*/fib2=fib;這里,fib1和fib2和不再僅代表第1個(gè)月和第2個(gè)月的兔子數(shù),而作為中間變量,代表前兩個(gè)月的兔子數(shù),fib當(dāng)前月的兔子數(shù)。下頁圖為Fibonacci算法的N-S圖。表為迭代過程中fib1、fib2和fib的變化情形。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行圖3.19計(jì)算Fiboonacci數(shù)列的N-S圖當(dāng)i<=12fib1=fib2fib=fib1+fib2初值:fib1=1,fib2=1,i=3fib2=fib輸出fibi++圖3-12計(jì)算Fiboonacci數(shù)列的N-S圖

迭代次數(shù)3456789101112fib111235813213455fib2123581321345579fib23581321345579144表按照迭代算法變量fib1、fib2和fib3的變化情形項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行根據(jù)圖3-12所示的算法??梢院苋菀椎貙懗鋈缦鲁绦?。/******計(jì)算Fibonacci數(shù)******/#include<stdio.h>intmain(void){intfib1=1,fib2=1,fib,i=3;while(i<=12){ fib=fib1+fib2; fib1=fib2;fib2=fib; i++;}printf(“TheFibonaccinumberafter1yeris:%d\n”,fib);return0;}項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行例3-13百錢買百雞問題。公元前五世紀(jì),我國古代數(shù)學(xué)家張丘建在《算經(jīng)》一書中提出了“百雞問題”:雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、母、雛各幾何?(1)基本解題思路這是一個(gè)有名的不定方程問題:cocks+hens+chicks=100(1)5*cocks+3*hens+chicks/3=100(2)式中:cocks:雞翁數(shù)hens:雞母數(shù)chicks:雞雛數(shù)項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行對(duì)上述不定方程問題,要先確定一個(gè)變量的值,才能對(duì)其進(jìn)行求解。由問題中給出的條件,很容易得到三個(gè)變量的取值范圍:cocks:0~19中的整數(shù)(因?yàn)槊恐浑u翁5錢,因此它不可能超過19只)hens:0~33中的整數(shù)chicks:0~100中的整數(shù)基本的解題思路是:依次取cocks值域中的一個(gè)值,然后求其余兩數(shù),看是否合乎題意,合乎者為解。這個(gè)基本解題思路便是解本題的粗略算法,下面是它的偽代碼描述,圖3-13(1)為其N-S圖。s1:cocks=0;/*賦初值*/s2:當(dāng)(cocks<=19)s2.1:找滿足題意的hens,chicks;s2.2:cocks++;S3:輸出一組cocks,hens和chichs項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行圖3-13(1)百錢買百雞的粗略算法

當(dāng)(cocks<=19)找滿足題意的hens和chicks輸出一組cocks,hens和chichs初始化:cocks=0cocks++項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行(2)對(duì)s2.1細(xì)化思路1:把已確定的cocks代入式(1)與(2)中,求解方程,看能否找到滿足題意的解。這種思路不太適合計(jì)算機(jī)求解。思路2:在每個(gè)給定的cocks下,面對(duì)hens的取值范圍內(nèi)的各個(gè)值依次測(cè)試,看能找到哪些hens及chicks滿足題意。于是得到如下s2.1細(xì)化算法。

用這段算法代替圖3-13(1)中的“找滿足題意的hens和chicks”,得到圖3-13(2)所示的百錢買百雞的N-S圖算法。s2.1.1:hens=0;s2.1.2:當(dāng)(hens<=33)s2.1.2.1:找滿足題意的chicks;s2.1.2.2:hens++;/*即hens=hens+1*/項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行圖3-13(2)百錢買百雞算法的細(xì)化算法

當(dāng)(cocks<=19)當(dāng)(hens<=33)初始化:cocks=0輸出一組cocks,hens和chichscocks++hens=0找滿足題意的chicksHens++項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行(3)對(duì)s2.1.2.1細(xì)化對(duì)s2.1.2.1來說,cocks及hens都已確定,這時(shí)的chicks可以計(jì)算出:chicks=100-cocks-hens式(1)已滿足。只要用式(2)指定的條件測(cè)試便可知這一組cocks,hens及chicks是否滿足題意。滿足則打印出一組解。于是s2.1.2.1可細(xì)化為:圖3.13(3)為進(jìn)一步細(xì)化的百錢買百雞算法。s2.1.2.1:chicks=100-cocks-hens;if(5*cocks+3*hens+chicks/3.0)==100)printf(″%d%d%d\n″,cocks,hens,chicks);項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行

圖3-13(3)百錢買百雞算法的細(xì)化算法

當(dāng)(cocks<=19)當(dāng)(hens<=33)cocks=0cocks++hens=0chicks=100-cocks-henshens++(5*cocks+3*hens+chicks/3.0)==100輸出一組cocks,hens和chichs(空)真假項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行/******百錢買百雞問題******/#include<stdio.h>intmain(void){intcocks=0; printf("%8s%8s%8s\n","cocks","hens","chicks");while(cocks<=19){inthens=0;while(hens<=33){intchicks;chicks=100-cocks-hens;if(5*cocks+3*hens+chicks/3.0==100)printf("%8d%8d%8d\n",cocks,hens,chicks); hens++;}cocks++;}return0;}項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行3.8.2do…while結(jié)構(gòu)do…while,其形式如下:當(dāng)流程到達(dá)do后,立即執(zhí)行循環(huán)體一次,然后才對(duì)判斷表達(dá)式進(jìn)行計(jì)算、測(cè)試。若表達(dá)式的值為真(非0),則重復(fù)執(zhí)行一次循環(huán)體;否則退出。與while結(jié)構(gòu)相比,do…while結(jié)構(gòu)至少要執(zhí)行一次循環(huán)體。這樣的結(jié)構(gòu)應(yīng)用在需要事先執(zhí)行一次循環(huán)體的程序非常容易理解。do循環(huán)體while(表達(dá)式);項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行例3-14用牛頓迭代法計(jì)算一個(gè)正實(shí)數(shù)a的平方根,精確到E0=10-5。(1)建立迭代關(guān)系式,由題意可以寫出:x=(a)1/2或x2=a于是得到方程:f(x)=x2-a=0,f′(x)=2x根據(jù)牛頓迭代公式x=x-f(x)/f′(x)=x-(x2-a)/2x=1/2(x+a/x)即x=(x+a/x)*0.5這就是要建立的迭代關(guān)系式。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行(2)給定初值。今設(shè)√a的初值為a(當(dāng)然也可以為其它值)。(3)給定精度(誤差)為E0。精度是迭代控制的條件,當(dāng)誤差大于E0時(shí),要繼續(xù)迭代。如何計(jì)算誤差呢?本來應(yīng)該用|x-√a|來表示誤差,即把求出的x與真正的√a相比,計(jì)算出其誤差,但是現(xiàn)在√a并不知道,因此可換一種方法來表示誤差,用|x*x-a|(因?yàn)橐髕=√a,即x2=a,x與a的差距可以通過x2與a的差距反映出來)。于是得到循環(huán)結(jié)構(gòu)的控制條件:|x2-a|≥E0即fabs(x*x-a)>=E0項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行/******計(jì)算平方根******/#include<math.h>#defineE00.00005doublesq_root(doublea) /*計(jì)算a的平方根*/{doublex;x=a;x=(x+a/x)*0.5;while(fabs(x*x-a)>=E0)x=(x+a/x)*0.5;return(x);}這里fabs是一個(gè)標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)名。E0是誤差要求,可以用#define命令在程序頭部作為一個(gè)符號(hào)常數(shù)進(jìn)行定義,在不同情況下根據(jù)需要可以對(duì)它修改。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行#include<stdio.h>intmain(void){ doublef=2.0;printf("Therootof%fis%f\n",f,sq_root(f));return0;}用下面的主函數(shù)進(jìn)行測(cè)試測(cè)試結(jié)果如下:Therootof2.000000is1.414216項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行3.8.3for結(jié)構(gòu)為了說明for結(jié)構(gòu),先看下面一個(gè)程序段:sum=0;for(i=1;i<=n;i++)sum=sum+i;它是下面的控制結(jié)構(gòu)的一個(gè)例子。for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體為了說明for后面括弧中三個(gè)表達(dá)式的語句,將它改寫為如下while結(jié)構(gòu):sum=0;i=1; /*相當(dāng)于for語句中的表達(dá)式1*/while(i<=n) /*相當(dāng)于for語句中的表達(dá)式2 */{sum=sum+i; /*for循環(huán)體 */i++; /*相當(dāng)于for語句中的表達(dá)式3 */}項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行顯然,這三個(gè)表達(dá)式的作用是控制循環(huán),故稱循環(huán)控制表達(dá)式。表達(dá)式1稱為初始化表達(dá)式;表達(dá)式2稱為條件表達(dá)式;表達(dá)式3稱為修正表達(dá)式??梢钥闯觯篺or語句是將初始化、條件判斷、循環(huán)變量值變化三者組織在一起的循環(huán)控制結(jié)構(gòu)。for結(jié)構(gòu)的格式可以表示為:for語句的執(zhí)行過程如下:(1)先執(zhí)行表達(dá)式1(初始化表達(dá)式)。注意在整個(gè)循環(huán)中它只執(zhí)行一次。(2)重復(fù)下面的過程:計(jì)算表達(dá)式2(判斷表達(dá)式),若為真(非0),就執(zhí)行一次循環(huán)體語句,然后再執(zhí)行表達(dá)式3(修正表達(dá)式);再計(jì)算表達(dá)式2(判斷表達(dá)式),判斷是否為“真”,……直至表達(dá)式2(判斷表達(dá)式)的值為假(0),就不再執(zhí)行循環(huán)體了。for(初始化表達(dá)式;判斷表達(dá)式;修正表達(dá)式)循環(huán)體語句項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行在某些情況下,用for結(jié)構(gòu)表示循環(huán),顯得緊湊而清晰。尤其是它能利用表達(dá)式3自動(dòng)地使循環(huán)變量值發(fā)生改變,不像while結(jié)構(gòu)那樣要在循環(huán)體中設(shè)置“修正操作”。實(shí)際上,for語句中的表達(dá)式3并不僅限于修正循環(huán)變量,而可以是任何操作。例如前面介紹的求1+2+…+n的程序段可以改寫為:形成一個(gè)沒有循環(huán)體的結(jié)構(gòu),或者說循環(huán)體是一個(gè)空語句(僅一個(gè)分號(hào))。而表達(dá)式3成為一個(gè)逗號(hào)表達(dá)式,它包含兩個(gè)簡單表達(dá)式(包含了本應(yīng)由循環(huán)體完成的功能),表達(dá)式的執(zhí)行順序從左到右。表達(dá)式1也是一個(gè)逗號(hào)表達(dá)式,它使sum和i都初始化。for(sum=0,i=1;i<=n;sum=sum+i,i++);項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行計(jì)算Fibonacci數(shù)程序,用for結(jié)構(gòu)修改如下:#include<stdio.h>intmain(void){intfib1=1,fib2=1,fib,i;for(i=3;i<=12;i++) { fib=fib1+fib2; fib1=fib2; fib2=fib; }printf(“TheFibonaccinumberafter1yeris:%d\n”,fib);return0;}項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行百錢買百雞問題用for結(jié)構(gòu)編寫的程序如下:#include<stdio.h>intmain(void){intcocks;printf("%8s%8s%8s\n","cocks","hens","chicks");for(cocks=0;cocks<=19;cocks++) { inthens; for(hens=0;hens<=33;hens++) { intchicks; chicks=100-cocks-hens; if(5*cocks+3*hens+chicks/3.0==100) printf("%8d%8d%8d\n",cocks,hens,chicks); }}return0;}項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行例3-18打印九九表。下面用逐步求精的方法分析本例的解法。表體共九行,所以首先考慮一個(gè)打印九行的算法s1:下面進(jìn)一步考慮如何“打印第i行”。因?yàn)槊啃卸加芯艂€(gè)數(shù)字,故“打印第i行”可以寫為s1.1:

for(i=1;i<=9;i++){打印第i行打印換行符}for(j=1,j<=9;j++)打印第j個(gè)數(shù)項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行“打印第j個(gè)數(shù)”即在第i行的第j列上打印一個(gè)數(shù),大小為i*j,占4個(gè)字寬。故可寫為printf(″%4d″,i*j);在寫這個(gè)語句時(shí),人們自然要考慮寫不寫換行符。顯然不能在每個(gè)數(shù)字后面都換行,而只能在第9個(gè)數(shù)字后面寫換行。實(shí)現(xiàn)只在第9個(gè)數(shù)字后面換行的辦法是,打印完一行,即在j循環(huán)后寫一個(gè)語句使換行:printf(″\n″);于是,打印九九表的程序可寫為:項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行/******打印九九乘法表******/#include<stdio.h>intmain(void){inti,j;for(i=1;i<=9;i++){/*實(shí)際上將9改為i,更符合數(shù)學(xué)上的習(xí)慣*/for(j=1;j<=9;j++)printf(“%d*%d=%4d",i,j,i*j);printf("\n");}return0;}項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行例3-19用梯形法求數(shù)值積分。定積分的幾何意義就是求曲線f(x)與直線y=0,x=a,x=b所圍成的曲頂梯形的面積。當(dāng)能找到f(x)的原函數(shù)F(x)時(shí),利用牛頓-萊布尼茲公式:

可以精確地求出I值來。當(dāng)f(x)的原函數(shù)不易找到時(shí),便可以借助數(shù)值方法近似地求出I的值。用數(shù)值方法計(jì)算定積分有兩個(gè)關(guān)鍵:一是將連續(xù)的對(duì)象分割為容易求解的一些子對(duì)象;二是用迭代法對(duì)迭代表達(dá)式反復(fù)操作。下面介紹一種容易理解的方法——梯形法。由圖3-16所示,一個(gè)曲頂梯形可以分割為許多小的寬為h的曲頂梯形。項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行bf(x)x0yaa+ha+iha+ih+ha+2h……圖3-16用梯形法求定積分項(xiàng)目3項(xiàng)目菜單的選擇執(zhí)行當(dāng)h(h=(b-a)/n)很小時(shí),每個(gè)小的曲頂梯形都可以近似看作是梯形,第i個(gè)小曲頂梯形的面積近似為:si=h/2[f(a+ih)+f(a+(i+1)h)]于是定積分的值(曲線所圍成的面積):

當(dāng)n→∞時(shí),就能準(zhǔn)確地求出定積分S。在現(xiàn)實(shí)中,只要取相當(dāng)大的n,使誤差小于要求的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論