已閱讀5頁(yè),還剩24頁(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,C語(yǔ)言程序設(shè)計(jì),陳義群ChenYiQunEmailQQ.co課程簡(jiǎn)介,教材杜友福主編,C語(yǔ)言程序設(shè)計(jì),科學(xué)出版社,2007年8月輔助教材杜友福主編,C語(yǔ)言程序設(shè)計(jì)導(dǎo)學(xué),科學(xué)出版社,2007年8月56學(xué)時(shí)(理論教學(xué)46+課內(nèi)上機(jī)10)要求自主安排課外上機(jī)20學(xué)時(shí)以上。,2,教學(xué)計(jì)劃,第一章程序設(shè)計(jì)基本概念(3學(xué)時(shí))第二章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式(5學(xué)時(shí)+2學(xué)時(shí)上機(jī))第三章順序結(jié)構(gòu)程序設(shè)計(jì)(4學(xué)時(shí)+2學(xué)時(shí)上機(jī))第四章選擇結(jié)構(gòu)程序設(shè)計(jì)(4學(xué)時(shí)+4學(xué)時(shí)上機(jī))第五章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(6學(xué)時(shí)+6學(xué)時(shí)上機(jī))第六章數(shù)組(6學(xué)時(shí)+6學(xué)時(shí)上機(jī)),3,課程要求,課前請(qǐng)做好預(yù)習(xí)保持課堂安靜,頭腦清醒認(rèn)真、獨(dú)立、按時(shí)完成并提交作業(yè)所有作業(yè)必須獨(dú)立完成作業(yè)必須經(jīng)上機(jī)調(diào)試通過(guò)重視上機(jī)實(shí)踐,有效利用寶貴的上機(jī)時(shí)間上機(jī)時(shí)間初步安排:第115周星期五第4大節(jié)。上機(jī)考勤4次缺席,取消考試資格課內(nèi)上機(jī)時(shí)玩游戲或上網(wǎng)二次,按缺席一次處理,4,第一章C語(yǔ)言程序設(shè)計(jì)概述,教學(xué)目標(biāo)掌握程序及程序設(shè)計(jì)的基本概念,程序的運(yùn)行過(guò)程、算法及其特點(diǎn)、算法的描述、C語(yǔ)言程序的基本結(jié)構(gòu)。熟悉設(shè)計(jì)程序時(shí)應(yīng)遵循的基本原則。了解利用計(jì)算機(jī)解決實(shí)際問(wèn)題的過(guò)程、結(jié)構(gòu)化程序設(shè)計(jì)方法并在以后的程序設(shè)計(jì)中應(yīng)用和逐步熟練掌握?;疽螅耗軐⑷粘I钪薪鉀Q一些簡(jiǎn)單問(wèn)題的步驟用算法描述,掌握N-S圖的算法表示方法。熟悉程序開(kāi)發(fā)環(huán)境,學(xué)會(huì)上機(jī)基本操作。,5,1.1程序和程序設(shè)計(jì)語(yǔ)言,一、程序與程序設(shè)計(jì)程序是控制計(jì)算機(jī)運(yùn)行的指令序列。程序設(shè)計(jì)就是設(shè)計(jì)、書寫及檢查程序的過(guò)程。二、程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言是軟件系統(tǒng)的重要組成部分程序設(shè)計(jì)語(yǔ)言是描述計(jì)算機(jī)指令的工具。各種程序設(shè)計(jì)語(yǔ)言有自己的語(yǔ)法、詞匯??煞譃闄C(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言三類。,6,1.機(jī)器語(yǔ)言,由“0”和“1”組成的二進(jìn)制表示的機(jī)器指令的集合。例如某種類型的計(jì)算機(jī)規(guī)定以“10000000”表示一個(gè)“加法”操作,以“10010000”表示一個(gè)“減法”操作。機(jī)器指令一般由操作碼和操作數(shù)兩個(gè)部分組成。計(jì)算機(jī)硬件可以直接識(shí)別,執(zhí)行的速度比較快。針對(duì)一種計(jì)算機(jī)所編寫的機(jī)器語(yǔ)言程序,一般不能在另一種類型的計(jì)算機(jī)上運(yùn)行,而且程序的編寫難度較大,修改、調(diào)試也不方便,容易出錯(cuò),程序的直觀性較差。,7,2.匯編語(yǔ)言,用能夠幫助記憶的指令助記符來(lái)代替機(jī)器指令中的操作碼,用地址符號(hào)或十進(jìn)制數(shù)來(lái)代替操作數(shù)。如用“ADD”表示加法操作,用“SUB”表示減法操作。比機(jī)器語(yǔ)言直觀,容易記憶和理解,編寫的程序比機(jī)器語(yǔ)言程序易讀、易檢查、易修改不同類型的計(jì)算機(jī),匯編語(yǔ)言源程序不能通用。必須由一種專門的翻譯程序(匯編程序)將匯編語(yǔ)言源程序翻譯成機(jī)器語(yǔ)言程序,計(jì)算機(jī)才能執(zhí)行。,8,3.高級(jí)語(yǔ)言,面向問(wèn)題的程序設(shè)計(jì)語(yǔ)言與具體的計(jì)算機(jī)硬件無(wú)關(guān),其表達(dá)方式接近于被描述的問(wèn)題,接近于自然語(yǔ)言和數(shù)學(xué)語(yǔ)言,易為人們接受和掌握。其顯著特點(diǎn)是獨(dú)立于具體的計(jì)算機(jī)硬件,通用性和可移植性好。計(jì)算機(jī)高級(jí)語(yǔ)言已有上百種之多,得到廣泛應(yīng)用的也有十幾種。C語(yǔ)言是其中之一。,9,4.程序運(yùn)行過(guò)程,編輯處理通過(guò)編輯程序?qū)⒕帉懙脑闯绦蛩腿胗?jì)算機(jī)。語(yǔ)言處理將用戶編寫的源程序轉(zhuǎn)換成機(jī)器語(yǔ)言的形式,以便計(jì)算機(jī)能夠識(shí)別和運(yùn)行。由翻譯程序自動(dòng)完成的,翻譯程序除了要完成語(yǔ)言間的轉(zhuǎn)換外,還要進(jìn)行語(yǔ)法、語(yǔ)義等方面的檢查。裝配鏈接處理裝入內(nèi)存運(yùn)行,10,三、語(yǔ)言處理程序,1.匯編程序由匯編程序(一種由專業(yè)的軟件開(kāi)發(fā)商提供的系統(tǒng)軟件)將用匯編語(yǔ)言編寫的源程序翻譯成目標(biāo)程序(某種類型計(jì)算機(jī)的機(jī)器語(yǔ)言程序),這一過(guò)程稱為匯編。,2.編譯程序由編譯程序?qū)⒏呒?jí)語(yǔ)言源程序翻譯成目標(biāo)程序。,11,3.解釋程序,由解釋程序?qū)⒏呒?jí)語(yǔ)言源程序一句一句地讀入,每讀入一個(gè)語(yǔ)句都要對(duì)它進(jìn)行分析和解釋,若有錯(cuò)誤就即時(shí)中斷其解釋過(guò)程,并通知用戶進(jìn)行修改,若沒(méi)有錯(cuò)誤就按照解釋結(jié)果執(zhí)行所要求的操作。解釋方式不產(chǎn)生目標(biāo)程序。,12,四.程序設(shè)計(jì)基本原則,正確性程序本身必須具備且只能具備程序設(shè)計(jì)規(guī)格說(shuō)明書中所列舉的全部功能。它是判斷程序質(zhì)量的首要標(biāo)準(zhǔn)??煽啃猿绦蛟诙啻畏磸?fù)使用過(guò)程中不失敗的概率。簡(jiǎn)明性簡(jiǎn)明性的目標(biāo)是要求程序簡(jiǎn)明易讀。有效性程序在計(jì)算機(jī)上運(yùn)行需要使用一定數(shù)量的計(jì)算機(jī)資源,如CPU的時(shí)間、存儲(chǔ)器的存儲(chǔ)空間。有效性就是要在一定的軟、硬件條件下,反映出程序的綜合效率??删S護(hù)性程序的可維護(hù)可分為校正性維護(hù)、適應(yīng)性維護(hù)和完善性維護(hù)。一個(gè)軟件的可維護(hù)性如何直接關(guān)系到程序的可用性,因此應(yīng)特別予以關(guān)注??梢浦残猿绦蛑饕c其所完成的任務(wù)有關(guān),但也與它的運(yùn)行環(huán)境有著一定的聯(lián)系。軟件的開(kāi)發(fā)應(yīng)盡可能遠(yuǎn)離機(jī)器的特征,以提高它的可移植程度。,13,五.用計(jì)算機(jī)解決問(wèn)題的基本步驟,一般由分析問(wèn)題、建立數(shù)學(xué)模型、選擇合適算法、編寫程序、調(diào)試、運(yùn)行程序直至得到正確的結(jié)果等幾個(gè)階段所組成。設(shè)計(jì)步驟確定要解決的問(wèn)題。主要目的是搞清楚“做什么”。算法設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)。主要任務(wù)是解決“如何做”。涉及兩個(gè)方面的內(nèi)容,一是數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)(解決數(shù)據(jù)的表示與存儲(chǔ)),另一個(gè)是算法設(shè)計(jì)(描述操作步驟)。編寫程序和調(diào)試程序。整理資料,交付使用。,14,1.2算法,計(jì)算機(jī)算法是為計(jì)算機(jī)解題設(shè)計(jì)的有明確意義的運(yùn)算步驟的有限集合。算法可以用不同的方法表示。常用的有自然語(yǔ)言、傳統(tǒng)流程圖、結(jié)構(gòu)化流程圖、偽代碼、PAD圖等。算法的特點(diǎn)有窮性確定性有效性有零個(gè)或多個(gè)輸入有一個(gè)或多個(gè)輸出,15,1簡(jiǎn)單算法舉例,例1.1給出求x1+x2+x3+x4+x5的值的算法。,算法分析:(1)手工計(jì)算步驟為:求x1與x2的和,得到兩個(gè)數(shù)之和;將上一步的和與x3相加,得到三個(gè)數(shù)之和;將上一步的和與x4相加,得到四個(gè)數(shù)之和;將上一步的和與x5相加,得到五個(gè)數(shù)之和。從手工計(jì)算過(guò)程中可知:其運(yùn)算方法類似于用算盤計(jì)算該題的過(guò)程,每次僅求出兩個(gè)數(shù)之和,其中一個(gè)加數(shù)為上一步所得的結(jié)果,另一加數(shù)為多項(xiàng)式中的一項(xiàng),重復(fù)這個(gè)過(guò)程,直到加到最后一項(xiàng)為此。,16,該算法能更加簡(jiǎn)潔地表達(dá)上述解題過(guò)程,并具有通用性。先定義幾個(gè)變量:設(shè)置變量s表示多項(xiàng)式之和,其初值為零;設(shè)置變量a表示多項(xiàng)式中的一項(xiàng),它的值可以為x1,x2,x5;用i記錄被加了幾次,其初值為1。解題步驟為:s0;i1;axi;(使a等于多項(xiàng)式中的第i項(xiàng))ss+a;(求和,并將結(jié)果保留在s中)ii+1;(計(jì)數(shù)增值)若i5,則重復(fù)、各步;否則,計(jì)算結(jié)束;輸出s。,(2)適合計(jì)算機(jī)處理的算法。,17,2.算法的表示,(1)用自然語(yǔ)言表示通俗易懂、直觀、容易掌握,但算法的表達(dá)與計(jì)算機(jī)的高級(jí)語(yǔ)言形式差距較大,通常用在較簡(jiǎn)單的問(wèn)題中。(2)用偽代碼表示不在計(jì)算機(jī)上實(shí)際執(zhí)行,僅僅用于程序員使用C等程序設(shè)計(jì)語(yǔ)言編寫程序之前幫助其構(gòu)思,而且與自然語(yǔ)言相似,非常方便和友好。(3)用傳統(tǒng)流程圖表示直觀,設(shè)計(jì)者的思路表達(dá)得清楚易懂,便于檢查修改。,18,傳統(tǒng)流程圖常用的符號(hào),19,例1.2輸入一個(gè)整數(shù),將它倒過(guò)來(lái)輸出,用自然語(yǔ)言描述:輸入一個(gè)整數(shù)送給x;求x除以10的余數(shù),結(jié)果送給d,并輸出d;求x除以10的整數(shù)商,結(jié)果送給x;重復(fù),步,直到x變?yōu)榱銜r(shí)終止。用偽代碼描述:輸入一個(gè)整數(shù)送x;while(x0)d=x%10;輸出d;x=x/10;,20,例1.3求出這100個(gè)數(shù)的累加和、最大值和最小值,從鍵盤輸入100個(gè)數(shù),求出這100個(gè)數(shù)的累加和,并找出它們的最大值和最小值。試用傳統(tǒng)流程圖描述解決這個(gè)問(wèn)題的算法。,21,(4)用N-S流程圖表示,N-S流程圖由美國(guó)學(xué)者I.Nassi和B.Shneiderman提出的一種新的流程圖形式。在這種流程圖中,完全去掉了帶箭頭的流程線,禁用程序的轉(zhuǎn)向語(yǔ)句,將全部算法都寫在一個(gè)矩形框內(nèi),因此,N-S流程圖也叫盒圖。,22,例1.4從鍵盤輸入一個(gè)整數(shù),判別該數(shù)是否為素?cái)?shù),素?cái)?shù),也稱為質(zhì)數(shù),是指只能被1及其自身整除且大于1的正整數(shù),如2、3、5、7等都是素?cái)?shù)。用N-S流程圖描述解決這個(gè)問(wèn)題的算法如圖1.11所示。,23,(5)用計(jì)算機(jī)語(yǔ)言表示,例1.6將例1.2的算法用C語(yǔ)言表示。#includevoidmain()intx,d;x=12345;while(0!=x)d=x%10;printf(%d,d);x=x/10;,24,1.3結(jié)構(gòu)化程序設(shè)計(jì)方法,設(shè)計(jì)程序時(shí)只能使用順序、選擇、循環(huán)三種基本結(jié)構(gòu)。結(jié)構(gòu)化程序設(shè)計(jì)強(qiáng)調(diào)程序設(shè)計(jì)風(fēng)格和程序結(jié)構(gòu)的規(guī)范化,提倡清晰的結(jié)構(gòu)。結(jié)構(gòu)化程序設(shè)計(jì)方法的基本思路是,把一個(gè)復(fù)雜問(wèn)題的求解過(guò)程分階段進(jìn)行,每個(gè)階段處理的問(wèn)題都控制在人們?nèi)菀桌斫夂吞幚淼姆秶鷥?nèi)。(1)自頂向下;(2)逐步細(xì)化;(3)模塊化設(shè)計(jì);(4)結(jié)構(gòu)化編碼(限制使用GOTO語(yǔ)句)。,25,例1.7編程打印出35000之間的所有質(zhì)數(shù)。,分析:我們采用自上向下、逐步細(xì)化的方法來(lái)處理這個(gè)問(wèn)題。即先把這個(gè)問(wèn)題分解為二個(gè)相對(duì)較小的問(wèn)題:判別某數(shù)i是否為質(zhì)數(shù);利用循環(huán)判別35000之間的所有的數(shù)是否為質(zhì)數(shù),若是就把它打印出來(lái);,26,1.4C語(yǔ)言程序的基本結(jié)構(gòu),#includevoidmain()/*求兩數(shù)之和*/inta,b,sum;/*這是定義變量*/a=123;b=456;sum=a+b;printf(sumis%dn,sum);,函數(shù)是程序的基本單位。一個(gè)源程序至少包含一個(gè)函數(shù)(main函數(shù))。為增加程序的可讀性,源程序中應(yīng)當(dāng)加上必要的注釋。程序中可用*對(duì)程序的任何部分作注釋。注釋對(duì)程序的執(zhí)行沒(méi)有任何影響。,例1.9,27,C語(yǔ)言程序的基本結(jié)構(gòu)2,#includeintmax(intx,inty)/*定義max函數(shù),函數(shù)返回值為整型*/*x,y為形式參數(shù)*/intz;/*max函數(shù)中用到的變量z,也要加以定義*/if(xy)z=x;elsez=y;returnz;/*將z返回,通過(guò)max帶回調(diào)用處*/voidmain()/*主函數(shù)*/inta,b,c;/*定義變量*/scanf(%d,%d,/*輸出c的值*/,例1.10,C程序由若干個(gè)函數(shù)構(gòu)成,其中必須有且只能有一個(gè)main()函數(shù)。C程序執(zhí)行時(shí)總是從main()函數(shù)開(kāi)始,在main()函數(shù)中結(jié)束。C程序中的main()函數(shù)與其它函數(shù)之間的位置可以隨意安排。,28,C語(yǔ)言程序的基本結(jié)構(gòu)3,C程序的輸
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年科技部推動(dòng)的智能制造技術(shù)合同模板2篇
- 二零二五年度白酒企業(yè)員工福利與社會(huì)保障合作合同3篇
- 2025關(guān)于公司向股東借款合同樣本
- 二零二五年高管任期目標(biāo)管理與評(píng)估合同3篇
- 二零二五年度餐廳品牌授權(quán)經(jīng)營(yíng)合同(含2025年度市場(chǎng)調(diào)研及品牌定位)3篇
- 2025版存量房居間合同-二手房買賣專業(yè)服務(wù)3篇
- 2025養(yǎng)殖場(chǎng)雞舍搭建合同書
- 石油化工項(xiàng)目投資許可合同模板
- 舞蹈教室租賃合同范本
- 高原農(nóng)業(yè)溫室大棚建造合同
- 2024年新青島版(六三制)三年級(jí)下冊(cè)科學(xué)全冊(cè)知識(shí)點(diǎn)
- 朝韓關(guān)系相關(guān)分析
- 校園熱水方案
- 跟蹤服務(wù)項(xiàng)目活動(dòng)實(shí)施方案
- 新能源汽車產(chǎn)業(yè)鏈中的區(qū)域發(fā)展不均衡分析與對(duì)策
- 財(cái)務(wù)機(jī)器人技術(shù)在會(huì)計(jì)工作中的應(yīng)用
- 《保單檢視專題》課件
- 建筑保溫隔熱構(gòu)造
- 智慧財(cái)務(wù)綜合實(shí)訓(xùn)
- 安徽省合肥市2021-2022學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)試題(含答案)3
- 教育專家報(bào)告合集:年度得到:沈祖蕓全球教育報(bào)告(2023-2024)
評(píng)論
0/150
提交評(píng)論