freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

程序設計學習手冊(第一版)-文庫吧

2025-07-12 23:48 本頁面


【正文】 一條錯誤信息最能反映錯誤的位置和類型,所以調(diào)試程序時務必根據(jù)第一條錯誤信息進行修改,修改后,立即運行程序,如果還有很多錯誤,要一個一個地修改,即,每修改一處錯誤要運行一次程序。 表達式求值:程序中每條語句中需要大量的表達式求值,初學程序設計往往計算的結(jié)果和程序運行時的值不一樣,這樣程序必然出錯,這個環(huán)節(jié)需要大量的練習來解決。l 第二步、照葫蘆畫瓢 在第一步輸入的c程序的基礎上進行試驗性的修改,運行一下程序看一看程序結(jié)果發(fā)生了什么變化,分析結(jié)果變化的原因,加深新學知識點的理解。事實上這和第一步時同步進行的,實現(xiàn)“輸入”加深知識的記憶,“修改”加深對知識的理解。記憶和理解是相輔相成的,相互促進。 例如:將最簡單的Hello World!程序 include int main() { printf(Hello World!\n)。 return 0。 } 中的 printf(Hello World!\n)。 中的Hello World!改成你的姓名,運行一下程序,看有什么變化? 再如求1+2+3...+100的和的程序 include main() { int i,sum=0。 for(i=1。i=100。i++) { sum=sum+i。 } printf(sum=%d\n,sum)。 } 第1次將for(i=1。i=100。i++)中的100改成50,運行一下程序,看有什么變化? 第2次將for(i=1。i=100。i++)中的i++改成i=i+2,運行一下程序,看有什么變化? 找出程序結(jié)果變化的原因,就加深了對c語句的理解。 l 第三步、學會程序設計的方法程序設計特別要求方法,我們這學期程序設計要求掌握結(jié)構化程序設計的方法和思想,程序設計的過程是一個不斷細化的過程,先把程序基本結(jié)構寫出來,然后把問題分解,一個問題一個問題的去解決。往往我們最簡單的程序會了,但是一遇到復雜的問題就不會,這時候就需要把復雜問題變成簡單的問題,然后采用增量的方式一點一點增加難度并最終解決問題。 比如說要求你計算100以內(nèi)的所有素數(shù)的和這個問題,我們就可以分解成計算從1加到100這個問題,這個程序我們大家都會,然后在計算累加的地方增加一個判斷語句,判斷當前的數(shù)是不是素數(shù),是就累加,如果不是就取下一個數(shù),最后研究如何判斷素數(shù),判斷素數(shù)的算法或程序如果我們已經(jīng)學過直接拿來用就可以了,這樣這個程序就分解成了累加、素數(shù)判斷和一個分支結(jié)構的組合。這里只是一個最簡單的示例,同樣的問題有些人需要分解,有的人就可以直接寫出來,不能一概而論,但你總會遇到不能一次寫出來的程序,這個時候就需要用的分解方法和增量設計的思想了。l 第四步、增強程序的調(diào)試能力 有思路以后還要進行程序的調(diào)試才能驗證你的方法對不對,這個時候就需要掌握調(diào)試的方法和技巧了。在后面附有c語言初學者易犯的錯誤,如果在程序調(diào)試中出現(xiàn)錯誤要看錯誤信息提示,并記下錯誤信息,再將程序改成正確的,運行一下程序。這樣反復修改直道得到正確的結(jié)果。 注意:每次只改錯一個地方,而且只改提示的第一條錯誤,后面的錯誤可能是第一個錯誤引起的,避免一次改動多個地方,搞清發(fā)生錯誤的真正原因,切記?。。?! 注意:上機調(diào)試程序時要帶一個記錄本,記下英文錯誤提示信息和解決該錯誤問題的方法,積累程序調(diào)試經(jīng)驗,避免在編程犯同樣的錯誤,切記?。。。?。 調(diào)試程序是一種實踐性很強的事,光紙上談兵是是沒用的,就像游泳運動員只聽教練講解示范,而不親自下水練習,是永遠學不會游泳的。 即使在優(yōu)秀的程序員編寫程序也會犯錯誤的,可能是最低級的語法錯誤,但他能快速發(fā)現(xiàn)錯誤并改正錯誤,而我們c語言初學者面對錯誤提示,不知道發(fā)生了什么錯誤,如何改正,這就是差別。 l 第五步、研究基本的c語言算法,提高程序設計能力 程序設計是一個逐步提高的過程,像修房子一樣需要很多半成品,復雜的程序也需要許多小程序片段來組合,例如判斷偶數(shù)、取個位數(shù)、字符串拷貝等等,只有熟練掌握這些基本算法才能設計更復雜的程序。另外在看懂別人如何解決問題的同時也可以快速提高自己的程序設計能力。 這里提醒大家搞清楚兩個問題,這兩個問題可能要在你以后的學習的過程中慢慢去體會: 時間:我們的課堂時間少之又少,所以教師在課堂上重點是講方法,只能把你們領進門,剩下就要靠你們課下多花時間去練。一般來講,課下所花的時間至少是課上時間的兩倍,才能基本掌握。尤其是剛開始學習編程的時候,更要多花時間將多年形成的靜態(tài)思維轉(zhuǎn)換為計算機動態(tài)思維方式。另外,對于一個編程任務,整理思路和寫算法的時間應該占2/5,寫程序占1/5,剩下的2/5用來調(diào)試程序。 編程過程:分析(把你解決問題的思路詳詳細細地寫出來)-->寫算法(按照結(jié)構化程序設計的要求寫,這里只有三種結(jié)構:順序、選擇、循環(huán))-->編程(嚴格按照語法要求將算法“翻譯”成程序)-->讀程序(自己讀一遍,檢查思路是否順暢和正確)-->上機調(diào)試程序(用編譯器幫你檢查語法錯誤和邏輯錯誤,注意,多選不同的輸入進行測試),如果沒有條件也可以使用紙筆來手工驗證-->總結(jié)你的收獲?!≌堃欢ㄗ屑汅w會和琢磨這兩點,懂得學習方法+勤奮練習,c語言就是a piece of cake。 不明白的地方可以隨時聯(lián)系老師提出問題,或到百度、google、新浪愛問等網(wǎng)站上查找答案。例如,你只要輸入你調(diào)試程序中的錯誤提示,即會得到有相應的結(jié)果以及相關的原因的網(wǎng)頁。附幾個程序設計學習的網(wǎng)址:圣思園開學儀式(學習方法談:程序設計學習七宗罪)c語言常見問題集常用算法設計方法c\c++語言入門篇(位運算)c 語言吧 問題資料大全 二、知識點解析 本部分的內(nèi)容是教材和上課內(nèi)容的補充,有一些內(nèi)容超出了本課程的范圍,如果學習起來有困難可以暫時放一放,但是這些內(nèi)容都是程序設計必須要掌握的,可以在以后的學習中逐步去理解和完善。算法算法(Algorithm):計算機解題的基本思想方法和步驟。算法的描述:是對要解決一個問題或要完成一項任務所采取的方法和步驟的描述,包括需要什么數(shù)據(jù)(輸入什么數(shù)據(jù)、輸出什么結(jié)果)、采用什么方法(歸納法、窮舉法、回朔法、遞推法、遞歸法)、使用什么語句以及如何安排這些語句等。通常使用自然語言、結(jié)構化流程圖、偽代碼等來描述算法。復雜的算法是由簡單的算法組合起來的,最基本的算法有計數(shù),求和(累加),求階乘(累乘)等。例如:我們想計算1到N的累加和,為簡單起見,設N的值不大于1000。算法可以使用自然語言描述如下:S1:輸入n(要求n=1000); S2:累加和sum置初值0;//賦初值 S3:自然數(shù)i置初值1; S4:若i=n, 則重復執(zhí)行: S41:i+sum — sum;//累加 S42:i+1 —i S5:輸出sum,結(jié)束。這就是用自然語言配合數(shù)學語言描述算法。例:求s=123……n的值,其中n由鍵盤輸入。流程圖:例:用隨機函數(shù)產(chǎn)生100個[0,99]范圍內(nèi)的隨機整數(shù),統(tǒng)計個位上的數(shù)字分別為1,2,3,4,5,6,7,8,9,0的數(shù)的個數(shù)并打印出來。 本題使用數(shù)組來處理,用數(shù)組a[100]存放產(chǎn)生的100個隨機整數(shù),數(shù)組x[10]來存放個位上的數(shù)字分別為0,1,2,3,4,5,6,7,8,9的數(shù)的個數(shù)。即個位是0的個數(shù)存放在x[0]中,個位是1的個數(shù)存放在x[1]中,……個位是9的個數(shù)存放在x[9]。 void main() { int a[100],x[10],i,p。 for(i=0。i10。i++) x[i]=0。 //賦初值,計數(shù)和累加賦0,累乘賦1for(i=0。i100。i++) { a[i]=rand( ) % 100。 //產(chǎn)生隨機數(shù) printf(%4d,a[i])。 //輸出到屏幕上 if(i%9==0) printf(\n)。 //每10個數(shù)換行} for(i=0。i100。i++) { p=a[i]%10。 //取個位數(shù) x[p]=x[p]+1。 //計數(shù)器加1} for(i=0。i10。i++) { printf(%d,%d\n,p,x[i])。 //輸出對應位置的數(shù)字} printf(\n)。 } 我們在這里分別列舉了三種最常用的算法表示形式,即自然語言描述的算法、流程圖、程序代碼。算法還有偽代碼、NS圖、PAD圖等不同的表示方法。l 算法的概念與特征:216。 算法:為解決某一問題而設計的確定的有限的步驟。216。 主要特征:178。 有窮性: 一個算法必須保證執(zhí)行有限步驟之后結(jié)束。 178。 確切性: 算法的每一步驟必須有確切的含義。178。 可行性: 算法的每一步驟都能有效地執(zhí)行,并得到確定的結(jié)果。178。 輸入:一個算法有0個或多個輸入。178。 輸出:一個算法有一個或多個輸出,沒有輸出的算法是毫無意義的。 l 算法的描述方法:216。 用自然語言表達;216。 用流程圖表達;216。 用程序表達。l 流程圖最常用的符號:216。 起止框;216。 輸入輸出框;216。 處理框;216。 判斷框;l 流程線和連接圈用計算機解決問題的一般過程:216。 分析問題;216。 設計算法;216。 編寫程序;216。 上機調(diào)試和維護。l 算法中基本步驟:216。 輸入-處理-輸出。216。 算法結(jié)構圖見下:結(jié)構化程序設計 我們的計算機在執(zhí)行一個程序的時候,最基本的方式是一條語句接一條語句的執(zhí)行。但不可能所有的問題都能用順序執(zhí)行方式就能解決,總會有一些跳轉(zhuǎn)。所以人們發(fā)明了一個goto語句,有了這條語句后,可以隨心所欲地跳轉(zhuǎn)到想去執(zhí)行的語句。在經(jīng)歷了一段時間的程序設計后,人們發(fā)現(xiàn)用goto語句設計的程序結(jié)構上非?;靵y,難于維護和閱讀,尤其對大型程序的設計更是如此 。為了擺脫這種困境,人們提出了結(jié)構化程序設計的思想。它把一個程序分成若干互相獨立的模塊。這樣在設計程序時,只要各個模塊設計正確了,就可以保證整個程序也肯定設計正確。如果將來對某個模塊要進行修改,也不會引起對整個程序的修改。結(jié)構化程序是由若干個基本結(jié)構組合而成,每一個結(jié)構可以包含若干條語句和其它基本結(jié)構。共有三種基本結(jié)構 順序結(jié)構見下圖。先執(zhí)行A模塊,再執(zhí)行B模塊。圖的右邊是我們現(xiàn)在常用的程序流程圖叫做 N-S流程圖。這種順序結(jié)構可以描述如下。 選擇結(jié)構當條件P的值為真時執(zhí)行A模塊,否則執(zhí)行B模塊。 循環(huán)結(jié)構 當型循環(huán)結(jié)構:當條件P的值為真時,就執(zhí)行A模塊,然后再次判斷條件P 的值是否為真,直到條件P的值為假時才向下執(zhí)行。直到型循環(huán)結(jié)構:先執(zhí)行A模塊,然后判斷條件P的值是否為真,若P為真 ,再次執(zhí)行A模塊,直到條件P的值為假時才向下執(zhí)行。說明:這三種基本結(jié)構中的A、B模塊代表一條語句或一種基本結(jié)構。   已經(jīng)證明:任何復雜的問題都可以用上面三種基本結(jié)構組成的程序完成。   結(jié)構化程序設計(structured programming)是進行以模塊功能和處理過程設計為主的詳細設計的基本原則。,是軟件發(fā)展的一個重要的里程碑。它的主要觀點是采用自頂向下、逐步求精的程序設計方法;思想就是把復雜的問題分解成簡單的問題,使用三種基本控制結(jié)構構造程序,任何程序都可由順序、選擇、循環(huán)三種基本控制結(jié)構構造 。該方法的要點是:  ?。?) 沒有GOTO語句,在有資料里面說可以用,但要謹慎嚴格控制GOTO語句,僅在下列情形才可使用:   用一個非結(jié)構化的程序設計語言去實現(xiàn)一個結(jié)構化的構造。   在某種可以改善而不是損害程序可讀性的情況下。  ?。?) 一個入口,一個出口;   (3) 自頂向下、逐步求精的分解;特點  結(jié)構化程序中的任意基本結(jié)構都具有唯一入口和唯一出口,并且程序不會出現(xiàn)死循環(huán)。在程序的靜態(tài)形式與動態(tài)執(zhí)行流程之間具有良好的對應關系。 優(yōu)點  由于模塊相互獨立,因此在設計其中一個模塊時,不會受到其它模塊的牽連,因而可將原來較為復雜的問題化簡為一系列簡單模塊的設計。模塊的獨立性還為擴充已有的系統(tǒng)、建立新系統(tǒng)帶來了不少的方便,因為我們可以充分利用現(xiàn)有的模塊作積木式的擴展。   按照結(jié)構化程序設計的觀點,任何算法功能都可以通過由程序模塊組成的三種基本程序結(jié)構的組合: 順序結(jié)構、選擇結(jié)構和循環(huán)結(jié)構來實現(xiàn)。 結(jié)構化程序設計的基本規(guī)則是采用自頂向下,逐步求精的程序設計方法和單入口單出口的控制結(jié)構。自頂向下、逐步求精的程序設計方法從問題本身開始,經(jīng)過逐步細化,將解決問題的步驟分解為由基本程序結(jié)構模塊組成的結(jié)構化程序框圖;單入口單出口的思想認為一個復雜的程序,如果它僅是由順序、選擇和循環(huán)三種基本程序結(jié)構通過組合、嵌套構成,那么這個新構造的程序一定是一個單入口單出口的程序。據(jù)此就很容易編寫出結(jié)構良好、易于調(diào)試的程序來。 結(jié)構化程序設計的思想是將一個問題分解為若干個小問題,小問題由單獨的模塊來實現(xiàn)。c語言用函數(shù)來實現(xiàn)模塊,所以c語言是結(jié)構化程序設計語言的主要代表。程序算法的圖形表示l 程序流程圖  以特定的圖形符號加上說明,表示算法的圖,稱為流程圖或框圖,利用程序框圖表示算法,具有直觀、形象的特點,能更清楚地展現(xiàn)算法的邏輯結(jié)構,是人們對解決問題的方法、思路或算法的一種描述。1. 流程圖的優(yōu)點:(a)采用簡單規(guī)范的符號,畫法簡單; ?。╞)結(jié)構清晰,邏輯性強;  (c)便于描述,容易理解?! ?. 流程圖采用的符號 ?。?)起始框 (2)終止框 ?。?)執(zhí)行框 (4)判別框 ?。?)進程框?。?)數(shù)據(jù)框  主要元素: ?。?)方框:表示一個處理步驟  (2)菱形框:表示一個邏輯條件 ?。?)箭頭:表示控制流向 流程圖三種結(jié)構:1. 順序結(jié)構:2. 選擇結(jié)構:3. 循環(huán)結(jié)構l 用NS圖描述算法的方法NS圖是另一種算法表示法,是由美國人I.,其根據(jù)是:既然
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1