![C語言程序設計:第1章 C語言程序設計基礎_第1頁](http://file4.renrendoc.com/view/1936853189de11f52e6ac183052891d6/1936853189de11f52e6ac183052891d61.gif)
![C語言程序設計:第1章 C語言程序設計基礎_第2頁](http://file4.renrendoc.com/view/1936853189de11f52e6ac183052891d6/1936853189de11f52e6ac183052891d62.gif)
![C語言程序設計:第1章 C語言程序設計基礎_第3頁](http://file4.renrendoc.com/view/1936853189de11f52e6ac183052891d6/1936853189de11f52e6ac183052891d63.gif)
![C語言程序設計:第1章 C語言程序設計基礎_第4頁](http://file4.renrendoc.com/view/1936853189de11f52e6ac183052891d6/1936853189de11f52e6ac183052891d64.gif)
![C語言程序設計:第1章 C語言程序設計基礎_第5頁](http://file4.renrendoc.com/view/1936853189de11f52e6ac183052891d6/1936853189de11f52e6ac183052891d65.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C語言程序設計教材、參考書與課時安排教材
C語言程序設計基礎(第2版)袁仲雄等編著清華大學出版社參考書C語言程序設計(第4版)
譚浩強高等教育出版社C高級實用程序設計王士元清華大學出版社課時安排授課:34學時上機:16學時學習要求及成績構成學習要求課前請做好預習,課后請做好復習保持課堂安靜,頭腦清醒,思維活躍認真、獨立、按時完成并提交作業(yè)重視上機實踐,有效利用寶貴的上機時間成績構成平時考勤:10%平時作業(yè):10%平時上機:10%期末考試:機試20%+筆試50%學習方法與建議心動,還要行動多讀例程,多模仿,多實踐有疑問自己動手編程驗證第1章C語言程序設計基礎程序設計基本概念算法和結構化程序設計數(shù)據(jù)類型和數(shù)據(jù)結構123本章內容“禽有禽言,獸有獸語”——《西游記》人與人之間的交流:漢語、英語、法語……人與計算機的交流:計算機語言人與計算機之間的通信語言數(shù)字、字符和語法規(guī)則組成的各種指令前言程序設計語言填補了
人與計算機交流的鴻溝計算機硬件僅僅知道0和1有問題需要計算機解決的人交流的鴻溝計算機硬件僅僅知道0和1有問題需要計算機解決的人程序設計語言1、計算機與程序:
要讓計算機按照人們的愿望工作,必須由人們事先編制好程序,并輸入到計算機,讓計算機執(zhí)行程序才能產(chǎn)生相應的操作結果。2、程序設計語言(ProgrammingLanguage):
是一組用來定義計算機程序的語法規(guī)則機器語言匯編語言高級語言面向過程面向對象1.1程序設計基本概念把高級語言轉化為機器語言的翻譯程序稱為編譯器(compilers)1.1程序設計基本概念舉例比較面向對象和面向過程程序設計例如:五子棋面向過程的設計思路就是首先分析問題的步驟:
1、開始游戲,
2、黑子先走,
3、繪制畫面,
4、判斷輸贏,
5、輪到白子,
6、繪制畫面,
7、判斷輸贏,
8、返回步驟2,
9、輸出最后結果。
把上面每個步驟用分別的函數(shù)來實現(xiàn),問題就解決了而面向對象的設計則是從另外的思路來解決問題。整個五子棋可以分為:
1、黑白雙方,這兩方的行為是一模一樣的,
2、棋盤系統(tǒng),負責繪制畫面,
3、規(guī)則系統(tǒng),負責判定諸如犯規(guī)、輸贏等。
第一類對象(玩家對象)負責接受用戶輸入,并告知第二類對象(棋盤對象)棋子布局的變化,同時利用第三類對象(規(guī)則系統(tǒng))來對棋局進行判定。編譯系統(tǒng):用高級語言編寫的程序,計算機是不能直接識別和執(zhí)行的(計算機只能直接識別二進制的指令),必須事先把用高級語言編寫的程序翻譯成機器語言程序,這個“翻譯”工作是由稱為“編譯系統(tǒng)”的軟件來實現(xiàn)的。運行C語言程序常用的編譯軟件有TurboC2.0、TurboC++3.0、VisualC++6.0、Devc++等1.1程序設計基本概念程序設計基礎3、程序:要利用計算機來處理問題,就必須要事先編寫出使計算機按人的意愿工作的應用程序。所謂程序,就是一系列遵循一定規(guī)則和思想并能正確完成指定工作的代碼。程序包含兩方面的內容:對數(shù)據(jù)的描述--數(shù)據(jù)結構在程序中指定數(shù)據(jù)的類型和組織形式對操作的描述--算法算法是為解決某一特定問題而采取的具體的有限的方法和操作步驟程序=數(shù)據(jù)結構+算法程序設計基礎4、程序設計(Programming)是給出解決特定問題程序的過程,是軟件構造活動中的重要組成部分1.分析階段2.設計階段3.編碼階段4.測試階段5.調試和運行階段程序設計=數(shù)據(jù)結構+算法+程序設計方法學5、數(shù)據(jù)結構的概念數(shù)據(jù)結構是指互相之間存在著一種或多種關系的數(shù)據(jù)元素的集合。是整個計算機科學與技術領域的一個重要概念。它用來反映一個數(shù)據(jù)的內部構成,即一個數(shù)據(jù)包含什么內容,以什么方式構成,呈什么結構。
數(shù)據(jù)結構有什么用?答:計算機內的數(shù)值運算依靠方程式,而非數(shù)值運算(如表、樹、圖等)則要依靠數(shù)據(jù)結構。程序設計的實質是對實際問題選擇一個好的數(shù)據(jù)結構,加之設計一個好的算法。而好的算法在很大程度上取決于描述實際問題的數(shù)據(jù)結構。數(shù)據(jù)結構的研究對象數(shù)據(jù)元素之間的邏輯關系,也稱數(shù)據(jù)的邏輯結構(LogicalStructure);數(shù)據(jù)元素及其關系在計算機存儲器內的表示,稱為數(shù)據(jù)的存儲結構(StorageStructure);數(shù)據(jù)的運算,對數(shù)據(jù)施加的操作,即數(shù)據(jù)的運算。數(shù)據(jù)結構三要素:邏輯結構+存儲結構+運算集合結構——數(shù)據(jù)元素間除“同屬于一個集合”外,無其它關系線性結構——一個對一個,如線性表、棧、隊列樹形結構——一個對多個,如樹圖狀結構——多個對多個,如圖數(shù)據(jù)的邏輯結構:通常稱數(shù)據(jù)結構為數(shù)據(jù)的邏輯結構數(shù)據(jù)的存儲(物理)結構—數(shù)據(jù)的邏輯結構在計算機存儲器中的實現(xiàn)順序存儲結構——借助元素在存儲器中的相對位置來表示數(shù)據(jù)元素間的邏輯關系鏈式存儲結構——借助指示元素存儲地址的指針表示數(shù)據(jù)元素間的邏輯關系索引存儲結構——存儲結點信息的同時還建立附加的索引表散列存儲結構——根據(jù)結點的關鍵字直接計算出該結點的的存儲地址。元素n……..元素i……..元素2元素1LoLo+1*mLo+(i-1)*mLo+(n-1)*m存儲地址存儲內容Loc(元素i)=Lo+(i-1)*m2.數(shù)據(jù)元素逐個連續(xù)存放(通過物理相鄰可確定邏輯關系)注:1.每個元素占用m個存儲單元順序存儲存儲地址存儲內容指針
1345元素1
1400
1346元素4∧
…….
……..
…….
1400元素2
1536
…….
……..
…….
1536元素3
1346∧1536元素21400元素11346元素3元素41345h
鏈式存儲
h數(shù)據(jù)元素可以任意存放(通過指針來確定元素的邏輯關系)1.2算法和結構化程序設計算法是為解決某一特定問題而采取的具體的有限的方法和操作步驟,是指令的有限序列算法的特征有窮性:在有限的操作步驟內完成確定性:每個步驟確定,步驟的結果確定可行性:算法的每一步都是能夠實現(xiàn)的,即是可操作的輸入:算法有零個或多個輸入輸出:算法執(zhí)行完畢,必須有一個或若干個輸出結果算法的控制結構(結構化程序設計的三種基本結構)包括順序、選擇、循環(huán)三種結構順序結構先執(zhí)行A,再執(zhí)行BBA
(a)AB
(b)NS流程圖1.2算法和結構化程序設計順序結構實例交換變量x和y的值可分解為順序執(zhí)行的三個操作步驟:{temp=x;/*將x的值暫存于temp*/x=y;/*將x置成y的值*/
y=temp;/*將y置成temp的值*/}程序設計基礎選擇結構當P條件為真時,執(zhí)行A,否則執(zhí)行BAPB真假(a)P真假AB(b)程序設計基礎當型循環(huán)結構當P條件成立時,反復執(zhí)行A,直到P為假PA假真(a)(b)A當P為真程序設計基礎直到型循環(huán)結構先執(zhí)行A,再判斷P是否為假,若P為假,再執(zhí)行A,直到P為真為止(a)A直到P為真(b)AP假真程序設計基礎已經(jīng)證明,任何復雜的問題都可以通過這三種基本結構(順序、選擇、循環(huán))來描述。算法的描述自然語言表示算法流程圖表示算法偽代碼表示算法自然語言就是漢語、英語等人們日常使用的語言。1.通俗易懂2.文字冗長3.容易出現(xiàn)“歧義性”4.此種方法一般用于算法比較簡單的問題1.自然語言描述算法例如求5!S1:p賦值1S2:i賦值2S3:使p*i的值賦值給pS4:使i+1的值賦值給iS5:i不大于5,重復執(zhí)行S3,S4,S5;否則,算法結束。例如:求n!(n≥0)第一步:輸入n的值。第二步:判別一下n的值,如果小于0,則顯示“輸入錯誤”信息,然后執(zhí)行第五步。第三步:判斷一下n的值如果大于或等于0,則進行以下操作。(1)給存放連乘積的變量fac賦初值為1;(2)給代表乘數(shù)的變量i賦初值為1;(3)進行連乘運算:fac=faci;(4)乘數(shù)i增加1:i=i+1;(5)判斷乘數(shù)i是否大于n?如果i的值不大于n,重復執(zhí)行第三步,否則執(zhí)行下一步;第四步:輸出fac的值,即n!值。第五步:結束運行。例如:輸出兩個數(shù)中的最大數(shù) 第一步:輸入x和y的值 第二步:比較x和y的值,如果x大于y,則輸出x的值,否則輸出y的值。易于理解但冗長,不夠精確難于描述復雜算法例如當描述“輸出10個數(shù)中最大數(shù)”的算法時,會冗長、難于理解2.用偽代碼表示算法:用介于自然語言和計算機語言之間的文字和符號來描述算法例:求12+22+···+n2
輸出sum開始輸入n的值置sum初值為0
置i初值為1
當i≤n,執(zhí)行下面操作:
sum=i*i+sumi=i+1
打印sum的值結束傳統(tǒng)流程圖是借助一些圖形符號來表示算法的一種工具,如下圖所示。這種表示方法直觀形象,容易理解。這些圖形符號均采用美國國家標準協(xié)會ANSI規(guī)定的通用符號,在世界上也是通用的。3.用流程圖描述算法起止框輸入輸出框判斷框處理框流程線連接點符號功能開始起止框打印p結束1輸入輸出框1=>p2=>ip*i=>pi+1=>ii>51例如計算5!連接點判斷框處理框否是
例如:輸出兩個數(shù)中的最大數(shù)NYz=yz=xx>y?開始輸入x和y結束輸出z例:求三個數(shù)中最大值的流程圖常見流程圖符號結構化程序設計結構化程序設計主要包括:程序結構自頂向下模塊化設計方法模塊算法的逐步求精設計方法結構化控制結構描述算法和編寫程序自頂向下模塊化設計方法限制程序復雜性是程序設計核心。程序結構自頂向下模塊化設計方法就是把大程序按功能劃分成一些較小的部分,每個完成獨立功能。分解模塊的原則是簡單性、獨立性和完整性。模塊化設計方法開發(fā)程序,使程序具有較高的可靠性和靈活性,同時便于程序的測試和維護。逐
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 滬科版數(shù)學九年級上冊《平行線分線段成比例》聽評課記錄1
- 蘇科版版數(shù)學七年級上冊聽評課記錄《3-5 去括號》
- 2022年新課標八年級上冊歷史第四單元新民主主義革命的開始12-14課共3課時聽課評課記錄
- 一年級拼音聽評課記錄
- 湘教版數(shù)學八年級上冊5.2《二次根式的除法》聽評課記錄1
- 蘇科版數(shù)學七年級下冊7.5.1《多邊形的內角和與外角和》聽評課記錄
- 商鋪租賃長期出租合同范本
- 農(nóng)業(yè)開發(fā)戰(zhàn)略合作協(xié)議書范本
- 2025年度焊接清包工勞務創(chuàng)新合作協(xié)議
- 郊區(qū)中等裝修住宅長期出租協(xié)議書范本
- 自卸車司機實操培訓考核表
- 教師個人基本信息登記表
- 中考現(xiàn)代文閱讀理解題精選及答案共20篇
- ESD測試作業(yè)指導書-防靜電手環(huán)
- 高頻變壓器的制作流程
- 春季開學安全第一課PPT、中小學開學第一課教育培訓主題班會PPT模板
- JJG30-2012通用卡尺檢定規(guī)程
- 部編版人教版二年級上冊語文教材分析
- 艾賓浩斯遺忘曲線復習方法表格模板100天
- APR版制作流程
- 《C++程序設計》完整教案
評論
0/150
提交評論