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

正文內(nèi)容

程序設(shè)計學(xué)習(xí)手冊(第一版)-文庫吧

2025-07-12 23:48 本頁面


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