譚浩強(qiáng)C語(yǔ)言入門(mén)_第1頁(yè)
譚浩強(qiáng)C語(yǔ)言入門(mén)_第2頁(yè)
譚浩強(qiáng)C語(yǔ)言入門(mén)_第3頁(yè)
譚浩強(qiáng)C語(yǔ)言入門(mén)_第4頁(yè)
譚浩強(qiáng)C語(yǔ)言入門(mén)_第5頁(yè)
已閱讀5頁(yè),還剩92頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .comC語(yǔ)言程序設(shè)計(jì)(第三版)教育改變命運(yùn),勵(lì)志改變?nèi)松V楹V大科技專修學(xué)院07軟件工程方弘www. ba nsun .comc語(yǔ)言程序設(shè)計(jì)(第三版):教育改變命運(yùn),勵(lì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com本章要點(diǎn)c語(yǔ)言程序設(shè)計(jì)(第三版):教育改變命運(yùn),勵(lì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com§1-1 C語(yǔ)言出現(xiàn)的歷史背景 C語(yǔ)言是國(guó)際上廣泛流行的高級(jí)語(yǔ)言。C語(yǔ)言是在B語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的訂 B ( BCPL )語(yǔ)言是1970年由

2、美國(guó)貝爾實(shí)驗(yàn) 室設(shè)計(jì)的,并用于編寫(xiě)了第一個(gè)UNIX操作 系統(tǒng),在PDP 7上實(shí)現(xiàn)。優(yōu)點(diǎn):精練,接近硬 件,缺點(diǎn):過(guò)于簡(jiǎn)華;數(shù)據(jù)無(wú)類型。 1973年貝爾實(shí)驗(yàn)室的D. M;R4tchie在B語(yǔ)言 的基礎(chǔ)上設(shè)計(jì)出了 C語(yǔ)言,舟B取長(zhǎng)補(bǔ)短, 并用之改寫(xiě)了原來(lái)用匯編編寫(xiě)昭UN、IX,(即 UNIX第5版),但僅在貝爾實(shí)驗(yàn)室復(fù)用弋§1-1C語(yǔ)言出現(xiàn)的歷史背景 1975年UNIX第6版發(fā)布,C優(yōu)點(diǎn)突出引起關(guān)注。 1977年出現(xiàn)了可移植C語(yǔ)言編譯程序:, 推動(dòng)了UNIX在各種機(jī)器上實(shí)現(xiàn),C語(yǔ)言也得 到推廣,其發(fā)展相輔相成。 1978年影響深遠(yuǎn)的絡(luò)蓍T(mén)he C Programming Language

3、由 Brian W. KernighanDennis M. Ritchie合著,被稱為標(biāo)準(zhǔn)C。之后,c語(yǔ)言先后移植到大、審、小、微型計(jì) 算機(jī)上,已獨(dú)立于UNIX和PDP,風(fēng)塵世近,成為 最廣泛的幾種計(jì)算機(jī)語(yǔ)言之一。'C語(yǔ)言程序設(shè)計(jì)(第三版)教育改變命運(yùn),勵(lì)志改變?nèi)松V楹V大科技專修學(xué)院07軟件工程方弘www. ba nsun .com§1TC語(yǔ)言出現(xiàn)的歷史背景 19834,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)根據(jù)C語(yǔ) 言各種版本對(duì)C的發(fā)展和擴(kuò)充,制定了新的標(biāo) 準(zhǔn)ANSI C-,比標(biāo)準(zhǔn)C有了很大的發(fā)展。 1988年 & R按照ANSI C修改了他們的The C Progra

4、mming Language。 1987年,ANSI公布7新標(biāo)準(zhǔn)87 ANSI Co 1990年,國(guó)際標(biāo)準(zhǔn)化如織、接受了 87 ANSI C為 ISO C 的標(biāo)準(zhǔn)(ISO98991590) o 1994年,ISO又修訂了C語(yǔ)言捺準(zhǔn)。目前流行的C語(yǔ)言編譯系統(tǒng)大多是漢、ANSI C為 基礎(chǔ)進(jìn)行開(kāi)發(fā)的。X§1-1C語(yǔ)言出現(xiàn)的歷史背景不同版本的C編譯系統(tǒng)所實(shí)現(xiàn)的語(yǔ)言 功能和語(yǔ)法規(guī)則又略有差別,因此讀者 應(yīng)了解所用的C語(yǔ)言編譯系統(tǒng)的特點(diǎn)(可 以參閱有關(guān)手冊(cè))O本書(shū)的敘述基本上以 ANSI C為基礎(chǔ)。C語(yǔ)言程序設(shè)計(jì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com

5、§1-2 C語(yǔ)言的特點(diǎn)(1) 語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活。32 個(gè)關(guān)鍵字.、9種控制語(yǔ)句,程序形式自由(2) 運(yùn)算符豐富。34種運(yùn)算符(3 )數(shù)據(jù)類型豐富,具有現(xiàn)代語(yǔ)言的各種數(shù)據(jù) 結(jié)構(gòu)。(4)具有結(jié)構(gòu)化的控扁語(yǔ)句,是完全模塊化 和結(jié)構(gòu)化的語(yǔ)言。'、(5 )語(yǔ)法限制不太嚴(yán)格,程序浚計(jì)自由度大。§1-2 C語(yǔ)言的特點(diǎn)問(wèn)題既然有了面向?qū)ο蟮腃+語(yǔ)言,為 什么還要學(xué)習(xí)c語(yǔ)言?E1: C+是由于開(kāi)發(fā)大型應(yīng)用軟件的需C語(yǔ)吞程序設(shè)計(jì)(第三版)教育改變命運(yùn),勵(lì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .comC語(yǔ)吞程序設(shè)計(jì)(第三版)教育改變命運(yùn),

6、勵(lì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com要而產(chǎn)生的,并不是所有的人都要去編 寫(xiě)大型軟件;C語(yǔ)吞程序設(shè)計(jì)(第三版)教育改變命運(yùn),勵(lì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com解釋2:面向?qū)ο蟮幕A(chǔ)是面向過(guò)程。C+C語(yǔ)吞程序設(shè)計(jì)(第三版)教育改變命運(yùn),勵(lì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com是面向?qū)ο蟮恼Z(yǔ)言,C是面向過(guò)程的,學(xué)起來(lái)比C語(yǔ)言困難得多,所以不太適合程 序設(shè)計(jì)的初學(xué)者。C語(yǔ)吞程序設(shè)計(jì)(第三版)教育改變命運(yùn),勵(lì)志改變?nèi)松?。珠海廣大科彗需說(shuō)貶本程序的作用是輸出一行信息

7、:This is a C program./*丈件包含*/ / *主函數(shù)* / / *函數(shù)體開(kāi)始* printf ("This is a C program.nn); /*輸出語(yǔ)句 */_、/*函教依結(jié)東* 說(shuō)明:nmin-主函數(shù)名,void-函數(shù)類型每個(gè)C程序必須有一個(gè)主函數(shù)main 是函數(shù)開(kāi)始和結(jié)束的標(biāo)志,不可省每個(gè)C語(yǔ)句以分號(hào)結(jié)束使用標(biāo)準(zhǔn)庫(kù)函數(shù)時(shí)應(yīng)在程序開(kāi)頭一行寫(xiě):includestdio. h>珠海廣大科技專修學(xué)院0干說(shuō)明:輸出一行信息:sum is 579 例12求兩數(shù)之和#includestdio. h>void main( )/*求兩數(shù)之和*/int a,

8、b, sum; /*聲明,定義變量為整型*/ /*以下3行為C語(yǔ)句*/a=123; b=456;sum=a+b;printf (“ sum is %d nff , sum);說(shuō)明:/*/表示注釋。注釋只是給人 看的,對(duì)編譯和運(yùn)行不起作用。所以可以用 漢字或英文字符表示,可以出現(xiàn)在一行中 的最右側(cè),也可以單獨(dú)成為一行。C語(yǔ)言程斤攻VT燦應(yīng)以戈:人土。珠海廣大科技專修學(xué)院07軟仃藝蠱乙例1.3求3個(gè)數(shù)中較大者.5_ /輸入8和5賦給a和b) include <stdio h>、. max=8 (輸出c的值) void main( )/* 主古/J J 厶人 Zt+- rnT、/>

9、/< /int Liiav(LLiu 二 Lit y)int z; if (x>y) z=x; else z=y; return (z);: 說(shuō)明本程序包括main和被調(diào)用 函數(shù)inax兩個(gè)函數(shù)。inax函數(shù)的 作用是將x和y中較大者的值賦 給變量z。return語(yǔ)句將z的值 返回給主調(diào)函數(shù)maino更命運(yùn),勵(lì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com§ 1-3簡(jiǎn)單的C語(yǔ)言程序介紹C程序:(1) c程岸是由函數(shù)構(gòu)成的。這使得程序容易實(shí)現(xiàn)模塊化。(2) 一個(gè)函數(shù)由兩部分組成:函數(shù)的首部:例1 3中的max函數(shù)首部 int max (.

10、int x, int y ) 函數(shù)體:花括號(hào)內(nèi)的部分。'若一個(gè)函數(shù)有多個(gè)花 括號(hào),則最外層的一對(duì)花括號(hào)為、函數(shù)體的范圍。 函數(shù)體包括兩部分: 聲明部分:int a, b, c;可缺省'、 執(zhí)行部分:由若干個(gè)語(yǔ)句組成??扇笔?、§ 1-3簡(jiǎn)單的C語(yǔ)言程序介紹注意:函數(shù)的聲明部分和執(zhí)行部分都可缺省,例如:void dump ()這是一個(gè)空函數(shù),什么也不堿述I是合法的函數(shù)。§ 1-3簡(jiǎn)單的C語(yǔ)言程序介紹小結(jié):(3) C程序總是從ma in函數(shù)開(kāi)始執(zhí)行的,與ma in函數(shù) 的位置無(wú)關(guān)。(4) C程序書(shū)寫(xiě)格式自由,一行內(nèi)可以寫(xiě)幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句可以分寫(xiě)崔多彳亍上,C程序

11、沒(méi)有行號(hào)。(5) 每個(gè)語(yǔ)句和數(shù)據(jù)聲明的最后必須有一個(gè)分號(hào)。C語(yǔ)言本身沒(méi)有輸入輸出語(yǔ)''句、輸入和輸出的操 作是由庫(kù)函數(shù)scanf和printf等函數(shù)耒完成的。C對(duì) 輸入輸出實(shí)行“函數(shù)化” OC語(yǔ)言程序設(shè)計(jì)(第三版)教育改變命運(yùn),勵(lì)志改變?nèi)松V楹V大科技專修學(xué)院07軟件工聒§1-4運(yùn)行C程序的步題 一、運(yùn)行C程序的步驟 上機(jī)輸人與編輯嫄程存 對(duì)嫄程序進(jìn)行編譯與庫(kù)函教連接運(yùn)行目標(biāo)程序珠海廣大科技專修學(xué)院07軟件工聒珠海廣大科技專修學(xué)院07軟件工聒c語(yǔ)言程序設(shè)計(jì)(開(kāi)始)珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com§1-4運(yùn)行C程序的步驟

12、和方法二、上機(jī)運(yùn)行C程序的方法目前使用的大多數(shù)C編譯系統(tǒng)都是集成環(huán)境(IDE)的。 可以用不同的編譜系統(tǒng)對(duì)C程序進(jìn)行操作常用的有Turbo C 2.0> Turbo C+ 3.0> Visual C+等 Turbo C+ 3.0:是一不集成環(huán)境,它具有方便、直觀 和易用的界面,雖然它也是DOS環(huán)境下的集成環(huán)境,.但是可以把啟動(dòng)Turbo C+ 3.0彙成、扌不境的DOS執(zhí)行文 件tc.exe生成快捷方式,也可以用鼠徐操作。珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com例g Torb© C+ 3.0的硬用將Turbo C+ 3.0編譯程序裝入磁盤(pán)某一

13、目錄下,例如:放在C盤(pán)根目錄下一級(jí)TC3.0子目錄下o(1)進(jìn)入Turb& C+ 3.0集成環(huán)境在DOS環(huán)境下C:TC3.0>tc /c語(yǔ)言程序設(shè)計(jì)(勵(lì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .comTileSearchComp lieProject ' «OptionsWindow2:2>:;> 2:2» « 2:22:2Systemcomm KindsTransfer 44人v c語(yǔ)言程序設(shè)計(jì)(勵(lì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .comc語(yǔ)言程序設(shè)計(jì)珠

14、海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com在Windows環(huán)境下 找到可執(zhí)行文件tc.exe,-in xi執(zhí)行該文件。3Turbo C+ HE TileEJItSearchEunCempileDebuy Fl Help System ccnvidiids and Transfer programs:rroject upiions vindow Help » » 主菜單:11個(gè)菜單項(xiàng):File Edit Search Run Compile Debug Project Options Window Help ,勵(lì)志改變?nèi)松語(yǔ)言程序設(shè)計(jì)珠海廣大科技

15、專修學(xué)院07軟件工程方弘www. ba nsun .com(2)編輯源文件新建:?jiǎn)螕簟癋ile”菜單下的“New”,C語(yǔ)言程序設(shè)計(jì)珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com修改:選擇“Fi心J“OperT(即單XjFile"的下拉菜單 中的“OpeiT項(xiàng),修改已有的源程岸。C語(yǔ)言程序設(shè)計(jì)珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com,勵(lì)志改變?nèi)松?。C語(yǔ)言程序設(shè)計(jì)珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .comFile Edit Search RunDebu1450 Feb 18,19923:00am隸粽您題救N

16、ameiles:TC3.0m.CARCHART.CPLOTEMP C PL0TEMP1. PL0TEMP2. PL0TEMP3. PL0TEMP4. PL0TEMP5. PL0TEMP6. SALESTAG.CC0CCCC在編輯(EDIT)狀態(tài)下光標(biāo)表示當(dāng)前進(jìn)行編輯的位置,在此位置可以進(jìn)行插入、刪除或修改,直到自已滿意為止。BGIDEMO.CCH24.25.C CPASDEMO.CGETOPT.C GREP2MSG.C HELLO.C MATHERR.Chi保存:在編輯(EDIT)狀態(tài)下光標(biāo)表示當(dāng)前進(jìn)行編輯的位置, 在此位置可以進(jìn)行插入、刪除或修改,直到自已滿意為止。Saue FileC語(yǔ)言程

17、序設(shè)計(jì)(第三版)教育改變命運(yùn),勵(lì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com(3) 對(duì)源程序進(jìn)行編譯選擇“Compil譏或“Alt+F9”)對(duì)源程序進(jìn)行編譯。三 Filo Edit Sqe廠ch Run Compilo Dobug P廠ojQct Options ITC3.0TANC1.CPPjinclude <stdio.h >Compilingoid main() int c; $canF( printf(Main file: .TC3.GTANC1.CPPCompiling: EDITOR 今 C1.CPPFile311TotalLine

18、s compiled: 311Warnings: 0Errors: 1Compiling .TError .TC3.0Available memory: 1958KErrorscl.cpp源程序,岀現(xiàn)1個(gè)錯(cuò)誤(error) , 0個(gè)警貨(warming)。c語(yǔ)言程序設(shè)計(jì),勵(lì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com(4) 將目標(biāo)程序進(jìn)行連接選擇菜單“Compile” “Link” ,如果不岀現(xiàn)筆務(wù)彳一個(gè)后綴為.exe的可執(zhí)行文件選菜單 “RuiTp“Ruir(或按 “CtTl+F9” 鍵)。(6)退出Turbo C卄3.0環(huán)境、選擇 “FiQ J“Qui

19、f' o珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .comC語(yǔ)言程序設(shè)計(jì)(第三版)育改變命運(yùn),勵(lì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .comC語(yǔ)言程序設(shè)計(jì)(第三版)珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com本章要點(diǎn)C語(yǔ)言程序設(shè)計(jì)(第三版)珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com主要內(nèi)容21算法的析念2.2簡(jiǎn)單算法舉例2.3算法的特U2.4怎樣表示一個(gè)算法25化程序設(shè)廿方法C語(yǔ)言程序設(shè)計(jì)(第三版)珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com一個(gè)程序

20、應(yīng)包括兩個(gè)方面的內(nèi)容:對(duì)數(shù)據(jù)的描述:數(shù)據(jù)結(jié)構(gòu)(data structure) 對(duì)操作的趟述:算法(algorithm)1著名計(jì)算機(jī)赫學(xué)家沃思提出一個(gè)公式:r數(shù)據(jù)結(jié)構(gòu)+算法二程序完整的程序設(shè)計(jì)應(yīng)該是:'、C語(yǔ)言程序設(shè)計(jì)(第三版)珠海廣大科技專修學(xué)院07軟件工程方弘§2.1算法的概念廣義地說(shuō),為解決一個(gè)問(wèn)題而釆取的方法和步驟,就稱為“算法” O対同_個(gè)問(wèn)題,可有不同的解題方法和步驟1OO例:求為坯72 = 1方法1: 1+2, +3, +4, 一直加到100加99次、方法 2: 100+(1+99)+(2+98)+.1+(49 +51)+50 二 100 + 49X100 +50

21、 加 51 次、§2.1算法的概念為了有效地進(jìn)行解題,不僅需要保證 算法正確,還要考慮算法的質(zhì)量,選擇合 適的算法。希望方法簡(jiǎn)單,運(yùn)算步驟少。計(jì)算機(jī)算法可分為兩大類別:數(shù)值運(yùn)算算法:求藪值解,例如求方程的根、求函數(shù)的定積分等。、非數(shù)值運(yùn)算:包括的面十分尸泛,最常見(jiàn)的是用于事務(wù)管理領(lǐng)域,例如圖書(shū)、檢索、 人事管理、行車調(diào)度管理等。'、i C語(yǔ)言程序設(shè)計(jì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com§ 2. 2簡(jiǎn)單算法舉例例21:求 1X2X3X4X5C語(yǔ)言程序設(shè)計(jì)(第三版)教育改變命運(yùn),勵(lì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程

22、方弘www. ba nsun .com步驟1:先求1x2,得到結(jié)果2步驟2:將步驟1得到'的乘積2再乘以3,得到結(jié)果6步驟3:將6再乘以4,得24 步驟4:將24再乘以5,得120 X.、 、如果要求lx2xxlOOO,則姜寫(xiě)999個(gè)步驟、 可以設(shè)兩個(gè)變量:一個(gè)變量代表被乘數(shù),一 個(gè)變量代表乘數(shù)。不另設(shè)變量存放乘積結(jié) 果,而直接將每一步驟的乘積放在被乘數(shù) 變量中。設(shè)p為被乘數(shù),i為乘數(shù)。用循環(huán) 算法來(lái)求結(jié)果,算法可改寫(xiě):、S1:使p=lS2:使i=2S3:使pXi,乘積仍放在變量p、中,可表示為:pXip S4:使i的值加 1, BPi+lioS5:如果i不大于5,返回重新執(zhí)行步驟S3

23、以及其后 的步驟S4和S5;否則,算法結(jié)束。最后彳導(dǎo)至0p的值就 是5!的值。'、C語(yǔ)言程序設(shè)計(jì)(第三版)教育改變命運(yùn),勵(lì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com如果題目改為:求1 x 3 x 5 x x 1000算法只需作很少的改動(dòng):S1:S2:S3:S4:S5:1P蕩詹肌03ipXipi+2p若i<ll,返回S3。否則,結(jié)束。C語(yǔ)言程序設(shè)計(jì),勵(lì)志改變?nèi)松V楹V大科技專修學(xué)院07軟件工程方弘www. ba nsun .com用這種方法表示的算法具有通用性、 靈活性。S3到S5組成一個(gè)循環(huán),在實(shí)現(xiàn) 算法時(shí)要反復(fù)多次執(zhí)行S3, S4, S

24、5等步 驟,直到某一時(shí)刻,執(zhí)行S5步驟時(shí)經(jīng)過(guò) 判斷,乘數(shù)i已超過(guò)規(guī)定的數(shù)值而不返回 S3步驟為止。此時(shí)算法結(jié)束,變量p的值 就是所求結(jié)果。'、珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com11如果>80,則打印札.否則不打印。i+li、如果i<50,返回S2,繼續(xù)'執(zhí)彳丁。否則算法結(jié)束 變量i作為下標(biāo),用來(lái)控制序號(hào),(第幾個(gè)學(xué)例22有50個(gè)學(xué)生,要求將他們之中成績(jī)?cè)?0 分以上者打印出來(lái)。喪n表示學(xué)號(hào),眄代表 第一個(gè)學(xué)生學(xué)號(hào),代表第i個(gè)學(xué)生學(xué)號(hào)。用G 代表學(xué)生成績(jī),昏代表第i個(gè)學(xué)生成績(jī),算法 表示如下:S1:S2:S3:S4:生,第幾個(gè)成績(jī))

25、。當(dāng)i超過(guò)50時(shí),表更 已對(duì) 50個(gè)學(xué)生的成績(jī)處!理完畢,算法結(jié)束、II E| M | c語(yǔ)言程序設(shè)計(jì)(第fj 1運(yùn),勵(lì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com例23判定20002500年中的每一年是否閏年,將結(jié)果輸出。分析:閏牟的條件是:能被4整除,但不能被 100整除的年份都是閏年,如1996, 2004年是閏 年;(2)能被100整除,又能被400整除的年份是 閏年。如1600, 2000年是閏年。不符合這兩個(gè)條 件的年份不是閏年。、變量i作為下標(biāo),用來(lái)控希片序號(hào)(第幾個(gè)學(xué) 生,第幾個(gè)成績(jī))。當(dāng)i超過(guò)50帝,表示 已對(duì) 50個(gè)學(xué)生的成績(jī)處理完畢,

26、算法結(jié)東*設(shè)y為被檢測(cè)的年份,算法可表示如下:SI: 2000yS2:若y不能被4整除,則輸出y “不是閏年”。然后轉(zhuǎn) 到S6。S3:若y能被4整除,不能被100整除,則輸出y “是閏 年”。然后轉(zhuǎn)到S6:、S4:若y能被100整除,頭能被400整除,輸出y“是閏年 ”,否則輸出“不是閏牽然后轉(zhuǎn)到S6。S5:輸出y “不是閏年”。S6: y+lyS7:當(dāng)y< 2500時(shí),轉(zhuǎn)S2繼續(xù)執(zhí)行,如y> 2500,算法 停止。Xc語(yǔ)言程序設(shè)計(jì)(第三版)命運(yùn),勵(lì)志改變?nèi)松V楹V大科技專修學(xué)院07軟件:以上算法中每做一 步都分別分離出一 些范圍(巳能判定為 閏年或非閏年),逐 步縮小范圍,直至

27、 執(zhí)行S5時(shí),只可能 是非閏年?!捌渌卑鼙? 整除,又能100# 除,而不能被400整 除的那些年份(如 1990)是非閏年。u館目 柱廳阿rr 弟二収rir珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .comS1:sign=l單詞作變量名,以使算S2sum=l法更易于理解:S3deno=2sum表示累加和,deno是S4sign= (-1) x sign英文分母 (denom inator)S5term=sign x (1/derio)縮寫(xiě),sign代表數(shù)值的符S6sum=sum+term號(hào),terni代表某一項(xiàng)oS7deno=deno+l、 、 、 、 、S8若de

28、no<100返回S4,否則算出結(jié)束。例24求i _ 1十11 +234丄+丄算法如下:99100反復(fù)執(zhí)行S4到S8步驟,直到分母大于蟻0為止。 一共執(zhí)行了 99次循環(huán),向sum累加入了 99水貪數(shù)。例25對(duì)一個(gè)大于或等于3的正整數(shù),判斷 它是不是一個(gè)素?cái)?shù)。概念:所謂素?cái)?shù),是指除了 1和該數(shù)本身之外, 不能被其它任何整數(shù)整除的數(shù)。例如,13是 素?cái)?shù)。因?yàn)樗荒鼙?, 3, 4,12整除。分析:判斷一個(gè)數(shù)n (n > 3)是否素?cái)?shù)的方法:將n作為被除數(shù),將2到(n>)、各個(gè)整數(shù)時(shí)流作 為除數(shù),如果都不能被整除,則n為素?cái)?shù)。'、C語(yǔ)言程序設(shè)計(jì)(第三版)昌術(shù)8勵(lì)歸珠海廣大科技

29、專修學(xué)院07軟件工程方弘www. ba nsun .comS1:輸入n的值S2: 1=2(i作為除數(shù))算法如下:C語(yǔ)言程序設(shè)十珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .comS 3: n被i除,得余數(shù)rS4:如果r=0,表示Q能被i整除,則打印屮不是 素?cái)?shù)",算法結(jié)束否則執(zhí)行S5S5: i+1 iS6:如果i <n-l,返回S3。否則、扌丁印n “是素?cái)?shù) ”。然后結(jié)束。實(shí)際上,n不必被2到(H-1)的整數(shù)除,只§ 2. 3算法的特性一個(gè)算法應(yīng)該具有以下特點(diǎn):L有窮桂包含有限的操作步驟U確定性:算法中的每一個(gè)步驟都應(yīng)當(dāng)是確定的有零個(gè)或多個(gè)輸入八藏入

30、是指在執(zhí)行算法 時(shí)需要從外界取得必奏的4言息有一個(gè)或多個(gè)輸出:算法詁、目的是為了求解,“解”就是輸出有效性:算法中的每一個(gè)步驟都應(yīng)彖能有才得制確定的結(jié)果。C語(yǔ)言程序設(shè)十珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com§ 2. 4算法的表示可以用不同的方法表示算法,常用的有: -自然語(yǔ)言-傳統(tǒng)流程圖.-結(jié)構(gòu)化流程鹵'-偽代碼-PAD 圖'、C語(yǔ)言程序設(shè)計(jì)(第三版)教育改變命運(yùn),勵(lì)志改變?nèi)松?#167; 2. 4. 1用自然語(yǔ)言表示算法自然語(yǔ)言就是人們?nèi)粘J褂玫恼Z(yǔ)言,可 以是漢禧或英語(yǔ)或其它語(yǔ)言。用自然語(yǔ)言 表示通俗易懂,但文字冗長(zhǎng),容易出現(xiàn)“歧義

31、性”。自熱語(yǔ)言表示的含義往往不大 嚴(yán)格,要根據(jù)上下文才能判斷其正確含義 ,描述包含分支和循抹的、算法時(shí)也不很方便。因此,除了那些很簡(jiǎn)單的問(wèn)題外 般不用自然語(yǔ)言描述算法。§ 2. 4. 2用流程圖表示算法美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)ANSI (American起止框判斷框Nat ionai Standard Inst i tute)規(guī)定了 一 些常用的流程圖符號(hào):二 口輸入瀚出框處理框XXOxc語(yǔ)言程序設(shè)計(jì)(第三版)命運(yùn),勵(lì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .comc語(yǔ)言程序設(shè)計(jì)(第三版)命運(yùn),勵(lì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工程方弘www. b

32、a nsun .comc語(yǔ)言程序設(shè)計(jì)(第三版)命運(yùn),勵(lì)志改變?nèi)松?。珠海廣大科技專修學(xué)院07軟件工走例2.6將求5!的算法用游如果需要將最后結(jié) 果打印出乗,可在菱形框的下面加p個(gè)輸出框。c語(yǔ)言程序設(shè)計(jì)(第三版)13tN珠海廣大科技專修學(xué)院07老如果如果包括 這個(gè)輸入數(shù)據(jù) 的部分,流程 圖為/輸入門(mén)j、g J-i + mi INi>50YNYg耳80n i、g JNi>50Y1 丁 I結(jié)束n-gi為第i個(gè)學(xué)生的學(xué)號(hào)和成績(jī)C語(yǔ)言程序設(shè)計(jì)例29將例2.4的算法用流程圖1111 11 r 12 3 499 100珠海廣大科技專修學(xué)院07軟件工程方弘www. ba nsun .com流程圖是表

33、示算法的較好的工具。一個(gè)流程圖包括以下幾部分:(1)表示相應(yīng)操作的框;帶箭頭的流程線;(3)框內(nèi)外必要的文字說(shuō)明。C語(yǔ)言程序設(shè)計(jì)(第三版)育改變命運(yùn),勵(lì)志改變?nèi)松V楹V大科技專修學(xué)院07軟件工程方弘www. ba nsun .com§2.4.3三種基本結(jié)構(gòu)和改進(jìn)的流程1、傳統(tǒng)流程圖的弊端 傳統(tǒng)流程圖用流程線指出各框的執(zhí)行 順序,對(duì)流程線的使用沒(méi)有嚴(yán)格限制。因 此,使用者可以'毫不受限制地使流程隨意 地轉(zhuǎn)向,使流程圖變得毫無(wú)規(guī)律,閱讀者 要花很大精力去追蹤流程、j使人難以理解 算法的邏輯。如圖:傳統(tǒng)流程珠技專修比“ 亠二爲(wèi)缺點(diǎn):難以閱讀、修改,使算法的 晝可靠性和可維護(hù)性難以保證。解決辦法:必須限制箭頭的濫用, 即不允許無(wú)規(guī)律地使流程隨意轉(zhuǎn)向, 只能順序地進(jìn)行下去。這種如同亂麻一樣的算法稱為BS型算法,意為一碗面條(A Bowl of Spaghe11 i), 亂無(wú)頭緒°、C語(yǔ)言程序設(shè)計(jì)勵(lì)志改變?nèi)松V楹V大科技專修學(xué)院07軟件工程方弘2、三種基本結(jié)構(gòu)Bohr a和Jacopini提出了以下三種基本結(jié)構(gòu):順序結(jié)箱、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)用這三種

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論