




已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1,C語言程序設(shè)計,陳義群ChenYiQunEmailQQ.co課程簡介,教材杜友福主編,C語言程序設(shè)計,科學出版社,2007年8月輔助教材杜友福主編,C語言程序設(shè)計導學,科學出版社,2007年8月56學時(理論教學46+課內(nèi)上機10)要求自主安排課外上機20學時以上。,2,教學計劃,第一章程序設(shè)計基本概念(3學時)第二章數(shù)據(jù)類型、運算符和表達式(5學時+2學時上機)第三章順序結(jié)構(gòu)程序設(shè)計(4學時+2學時上機)第四章選擇結(jié)構(gòu)程序設(shè)計(4學時+4學時上機)第五章循環(huán)結(jié)構(gòu)程序設(shè)計(6學時+6學時上機)第六章數(shù)組(6學時+6學時上機),3,課程要求,課前請做好預習保持課堂安靜,頭腦清醒認真、獨立、按時完成并提交作業(yè)所有作業(yè)必須獨立完成作業(yè)必須經(jīng)上機調(diào)試通過重視上機實踐,有效利用寶貴的上機時間上機時間初步安排:第115周星期五第4大節(jié)。上機考勤4次缺席,取消考試資格課內(nèi)上機時玩游戲或上網(wǎng)二次,按缺席一次處理,4,第一章C語言程序設(shè)計概述,教學目標掌握程序及程序設(shè)計的基本概念,程序的運行過程、算法及其特點、算法的描述、C語言程序的基本結(jié)構(gòu)。熟悉設(shè)計程序時應遵循的基本原則。了解利用計算機解決實際問題的過程、結(jié)構(gòu)化程序設(shè)計方法并在以后的程序設(shè)計中應用和逐步熟練掌握?;疽螅耗軐⑷粘I钪薪鉀Q一些簡單問題的步驟用算法描述,掌握N-S圖的算法表示方法。熟悉程序開發(fā)環(huán)境,學會上機基本操作。,5,1.1程序和程序設(shè)計語言,一、程序與程序設(shè)計程序是控制計算機運行的指令序列。程序設(shè)計就是設(shè)計、書寫及檢查程序的過程。二、程序設(shè)計語言程序設(shè)計語言是軟件系統(tǒng)的重要組成部分程序設(shè)計語言是描述計算機指令的工具。各種程序設(shè)計語言有自己的語法、詞匯。可分為機器語言、匯編語言和高級語言三類。,6,1.機器語言,由“0”和“1”組成的二進制表示的機器指令的集合。例如某種類型的計算機規(guī)定以“10000000”表示一個“加法”操作,以“10010000”表示一個“減法”操作。機器指令一般由操作碼和操作數(shù)兩個部分組成。計算機硬件可以直接識別,執(zhí)行的速度比較快。針對一種計算機所編寫的機器語言程序,一般不能在另一種類型的計算機上運行,而且程序的編寫難度較大,修改、調(diào)試也不方便,容易出錯,程序的直觀性較差。,7,2.匯編語言,用能夠幫助記憶的指令助記符來代替機器指令中的操作碼,用地址符號或十進制數(shù)來代替操作數(shù)。如用“ADD”表示加法操作,用“SUB”表示減法操作。比機器語言直觀,容易記憶和理解,編寫的程序比機器語言程序易讀、易檢查、易修改不同類型的計算機,匯編語言源程序不能通用。必須由一種專門的翻譯程序(匯編程序)將匯編語言源程序翻譯成機器語言程序,計算機才能執(zhí)行。,8,3.高級語言,面向問題的程序設(shè)計語言與具體的計算機硬件無關(guān),其表達方式接近于被描述的問題,接近于自然語言和數(shù)學語言,易為人們接受和掌握。其顯著特點是獨立于具體的計算機硬件,通用性和可移植性好。計算機高級語言已有上百種之多,得到廣泛應用的也有十幾種。C語言是其中之一。,9,4.程序運行過程,編輯處理通過編輯程序?qū)⒕帉懙脑闯绦蛩腿胗嬎銠C。語言處理將用戶編寫的源程序轉(zhuǎn)換成機器語言的形式,以便計算機能夠識別和運行。由翻譯程序自動完成的,翻譯程序除了要完成語言間的轉(zhuǎn)換外,還要進行語法、語義等方面的檢查。裝配鏈接處理裝入內(nèi)存運行,10,三、語言處理程序,1.匯編程序由匯編程序(一種由專業(yè)的軟件開發(fā)商提供的系統(tǒng)軟件)將用匯編語言編寫的源程序翻譯成目標程序(某種類型計算機的機器語言程序),這一過程稱為匯編。,2.編譯程序由編譯程序?qū)⒏呒壵Z言源程序翻譯成目標程序。,11,3.解釋程序,由解釋程序?qū)⒏呒壵Z言源程序一句一句地讀入,每讀入一個語句都要對它進行分析和解釋,若有錯誤就即時中斷其解釋過程,并通知用戶進行修改,若沒有錯誤就按照解釋結(jié)果執(zhí)行所要求的操作。解釋方式不產(chǎn)生目標程序。,12,四.程序設(shè)計基本原則,正確性程序本身必須具備且只能具備程序設(shè)計規(guī)格說明書中所列舉的全部功能。它是判斷程序質(zhì)量的首要標準。可靠性程序在多次反復使用過程中不失敗的概率。簡明性簡明性的目標是要求程序簡明易讀。有效性程序在計算機上運行需要使用一定數(shù)量的計算機資源,如CPU的時間、存儲器的存儲空間。有效性就是要在一定的軟、硬件條件下,反映出程序的綜合效率??删S護性程序的可維護可分為校正性維護、適應性維護和完善性維護。一個軟件的可維護性如何直接關(guān)系到程序的可用性,因此應特別予以關(guān)注??梢浦残猿绦蛑饕c其所完成的任務有關(guān),但也與它的運行環(huán)境有著一定的聯(lián)系。軟件的開發(fā)應盡可能遠離機器的特征,以提高它的可移植程度。,13,五.用計算機解決問題的基本步驟,一般由分析問題、建立數(shù)學模型、選擇合適算法、編寫程序、調(diào)試、運行程序直至得到正確的結(jié)果等幾個階段所組成。設(shè)計步驟確定要解決的問題。主要目的是搞清楚“做什么”。算法設(shè)計與數(shù)據(jù)結(jié)構(gòu)設(shè)計。主要任務是解決“如何做”。涉及兩個方面的內(nèi)容,一是數(shù)據(jù)結(jié)構(gòu)設(shè)計(解決數(shù)據(jù)的表示與存儲),另一個是算法設(shè)計(描述操作步驟)。編寫程序和調(diào)試程序。整理資料,交付使用。,14,1.2算法,計算機算法是為計算機解題設(shè)計的有明確意義的運算步驟的有限集合。算法可以用不同的方法表示。常用的有自然語言、傳統(tǒng)流程圖、結(jié)構(gòu)化流程圖、偽代碼、PAD圖等。算法的特點有窮性確定性有效性有零個或多個輸入有一個或多個輸出,15,1簡單算法舉例,例1.1給出求x1+x2+x3+x4+x5的值的算法。,算法分析:(1)手工計算步驟為:求x1與x2的和,得到兩個數(shù)之和;將上一步的和與x3相加,得到三個數(shù)之和;將上一步的和與x4相加,得到四個數(shù)之和;將上一步的和與x5相加,得到五個數(shù)之和。從手工計算過程中可知:其運算方法類似于用算盤計算該題的過程,每次僅求出兩個數(shù)之和,其中一個加數(shù)為上一步所得的結(jié)果,另一加數(shù)為多項式中的一項,重復這個過程,直到加到最后一項為此。,16,該算法能更加簡潔地表達上述解題過程,并具有通用性。先定義幾個變量:設(shè)置變量s表示多項式之和,其初值為零;設(shè)置變量a表示多項式中的一項,它的值可以為x1,x2,x5;用i記錄被加了幾次,其初值為1。解題步驟為:s0;i1;axi;(使a等于多項式中的第i項)ss+a;(求和,并將結(jié)果保留在s中)ii+1;(計數(shù)增值)若i5,則重復、各步;否則,計算結(jié)束;輸出s。,(2)適合計算機處理的算法。,17,2.算法的表示,(1)用自然語言表示通俗易懂、直觀、容易掌握,但算法的表達與計算機的高級語言形式差距較大,通常用在較簡單的問題中。(2)用偽代碼表示不在計算機上實際執(zhí)行,僅僅用于程序員使用C等程序設(shè)計語言編寫程序之前幫助其構(gòu)思,而且與自然語言相似,非常方便和友好。(3)用傳統(tǒng)流程圖表示直觀,設(shè)計者的思路表達得清楚易懂,便于檢查修改。,18,傳統(tǒng)流程圖常用的符號,19,例1.2輸入一個整數(shù),將它倒過來輸出,用自然語言描述:輸入一個整數(shù)送給x;求x除以10的余數(shù),結(jié)果送給d,并輸出d;求x除以10的整數(shù)商,結(jié)果送給x;重復,步,直到x變?yōu)榱銜r終止。用偽代碼描述:輸入一個整數(shù)送x;while(x0)d=x%10;輸出d;x=x/10;,20,例1.3求出這100個數(shù)的累加和、最大值和最小值,從鍵盤輸入100個數(shù),求出這100個數(shù)的累加和,并找出它們的最大值和最小值。試用傳統(tǒng)流程圖描述解決這個問題的算法。,21,(4)用N-S流程圖表示,N-S流程圖由美國學者I.Nassi和B.Shneiderman提出的一種新的流程圖形式。在這種流程圖中,完全去掉了帶箭頭的流程線,禁用程序的轉(zhuǎn)向語句,將全部算法都寫在一個矩形框內(nèi),因此,N-S流程圖也叫盒圖。,22,例1.4從鍵盤輸入一個整數(shù),判別該數(shù)是否為素數(shù),素數(shù),也稱為質(zhì)數(shù),是指只能被1及其自身整除且大于1的正整數(shù),如2、3、5、7等都是素數(shù)。用N-S流程圖描述解決這個問題的算法如圖1.11所示。,23,(5)用計算機語言表示,例1.6將例1.2的算法用C語言表示。#includevoidmain()intx,d;x=12345;while(0!=x)d=x%10;printf(%d,d);x=x/10;,24,1.3結(jié)構(gòu)化程序設(shè)計方法,設(shè)計程序時只能使用順序、選擇、循環(huán)三種基本結(jié)構(gòu)。結(jié)構(gòu)化程序設(shè)計強調(diào)程序設(shè)計風格和程序結(jié)構(gòu)的規(guī)范化,提倡清晰的結(jié)構(gòu)。結(jié)構(gòu)化程序設(shè)計方法的基本思路是,把一個復雜問題的求解過程分階段進行,每個階段處理的問題都控制在人們?nèi)菀桌斫夂吞幚淼姆秶鷥?nèi)。(1)自頂向下;(2)逐步細化;(3)模塊化設(shè)計;(4)結(jié)構(gòu)化編碼(限制使用GOTO語句)。,25,例1.7編程打印出35000之間的所有質(zhì)數(shù)。,分析:我們采用自上向下、逐步細化的方法來處理這個問題。即先把這個問題分解為二個相對較小的問題:判別某數(shù)i是否為質(zhì)數(shù);利用循環(huán)判別35000之間的所有的數(shù)是否為質(zhì)數(shù),若是就把它打印出來;,26,1.4C語言程序的基本結(jié)構(gòu),#includevoidmain()/*求兩數(shù)之和*/inta,b,sum;/*這是定義變量*/a=123;b=456;sum=a+b;printf(sumis%dn,sum);,函數(shù)是程序的基本單位。一個源程序至少包含一個函數(shù)(main函數(shù))。為增加程序的可讀性,源程序中應當加上必要的注釋。程序中可用*對程序的任何部分作注釋。注釋對程序的執(zhí)行沒有任何影響。,例1.9,27,C語言程序的基本結(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返回,通過max帶回調(diào)用處*/voidmain()/*主函數(shù)*/inta,b,c;/*定義變量*/scanf(%d,%d,/*輸出c的值*/,例1.10,C程序由若干個函數(shù)構(gòu)成,其中必須有且只能有一個main()函數(shù)。C程序執(zhí)行時總是從main()函數(shù)開始,在main()函數(shù)中結(jié)束。C程序中的main()函數(shù)與其它函數(shù)之間的位置可以隨意安排。,28,C語言程序的基本結(jié)構(gòu)3,C程序的輸
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 62911:2025 EN-FR Audio,video and information technology equipment - Routine electrical safety testing in production
- 【正版授權(quán)】 IEC 61340-4-6:2025 RLV EN Electrostatics - Part 4-6: Standard test methods for specific applications - Wrist straps
- 2025至2030中國電療儀器行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資前景預測報告
- 2025至2030中國電動吸煙者行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國豬濃縮飼料行業(yè)發(fā)展趨勢與發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國物流監(jiān)控系統(tǒng)行業(yè)深度研究及發(fā)展前景投資評估分析
- 新舟60培訓課件
- 井下開采安全培訓課件
- 商業(yè)培訓中的學習心理技巧
- 教育心理學與現(xiàn)代教學技術(shù)結(jié)合的學生動機研究
- 我國生命教育二十年的發(fā)展回顧與未來展望
- 江蘇省南通市區(qū)直屬中學2025年七下數(shù)學期末學業(yè)水平測試試題含解析
- 2025年微生物學基礎(chǔ)與應用試題及答案
- 2025年日本無桿錨項目可行性研究報告
- MDS3400調(diào)度交換機的結(jié)構(gòu)39課件
- 空氣能維保合同協(xié)議
- 2025-2030中國多動癥治療行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 企業(yè)安全文化建設(shè)中急救培訓的重要性及策略探討
- 2024年遼寧沈陽水務集團有限公司招聘筆試真題
- 濰坊交通發(fā)展集團有限公司招聘筆試題庫2025
- 胸痛中心質(zhì)控管理
評論
0/150
提交評論