第1講課程簡(jiǎn)介和編程基礎(chǔ)_548005525_第1頁(yè)
第1講課程簡(jiǎn)介和編程基礎(chǔ)_548005525_第2頁(yè)
第1講課程簡(jiǎn)介和編程基礎(chǔ)_548005525_第3頁(yè)
第1講課程簡(jiǎn)介和編程基礎(chǔ)_548005525_第4頁(yè)
第1講課程簡(jiǎn)介和編程基礎(chǔ)_548005525_第5頁(yè)
已閱讀5頁(yè),還剩36頁(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、1 程序設(shè)計(jì)(1)電子工程系信息認(rèn)知與智能系統(tǒng)研究所黃永峰Tel.62792710Email:辦公地點(diǎn):電子系館5-1082 程序設(shè)計(jì)(1)知識(shí)體系pNikiklaus wirth著名公式:著名公式:程序程序算法數(shù)據(jù)結(jié)構(gòu)算法數(shù)據(jù)結(jié)構(gòu)p編程編程 算法算法 數(shù)據(jù)類型數(shù)據(jù)類型 + 工具工具 =+源源程程序序.cpp.h執(zhí)執(zhí)行行程程序序.exe程程序序結(jié)結(jié)構(gòu)構(gòu)解解題題思思路路常常見(jiàn)見(jiàn)算算法法變變量量類類型型參參數(shù)數(shù)類類型型返返回回類類型型項(xiàng)項(xiàng)目目建建立立文文件件包包含含編編譯譯調(diào)調(diào)試試3 教學(xué)目標(biāo)教學(xué)目標(biāo)l通過(guò)本課程學(xué)習(xí),掌握通過(guò)本課程學(xué)習(xí),掌握C+C+面向過(guò)程程序設(shè)計(jì)面向過(guò)程程序設(shè)計(jì)的的基本知識(shí)和基

2、本知識(shí)和方法方法,具有,具有基本編程和調(diào)試基本編程和調(diào)試能力能力l養(yǎng)成良好的編程養(yǎng)成良好的編程素養(yǎng)素養(yǎng)強(qiáng)調(diào)可讀性:注釋,對(duì)齊強(qiáng)調(diào)可讀性:注釋,對(duì)齊程序構(gòu)思要有說(shuō)明程序構(gòu)思要有說(shuō)明學(xué)會(huì)調(diào)試程序?qū)W會(huì)調(diào)試程序盡可能優(yōu)化盡可能優(yōu)化對(duì)運(yùn)行結(jié)果要做正確性分析對(duì)運(yùn)行結(jié)果要做正確性分析l重在方法學(xué)習(xí),鼓勵(lì)重在方法學(xué)習(xí),鼓勵(lì)創(chuàng)新創(chuàng)新4 學(xué)習(xí)方法學(xué)習(xí)方法-道道”和和“術(shù)術(shù)”的關(guān)系的關(guān)系l毛澤東思想毛澤東思想= =馬列主義普遍真理馬列主義普遍真理+ +中國(guó)革命實(shí)踐中國(guó)革命實(shí)踐l該課程如何學(xué)習(xí)?該課程如何學(xué)習(xí)?實(shí)踐出真知實(shí)踐出真知= =老師講道老師講道+ +同學(xué)練術(shù)同學(xué)練術(shù)l如何實(shí)踐如何實(shí)踐: :自學(xué)做題自學(xué)做題+

3、+上機(jī)應(yīng)用上機(jī)應(yīng)用+ +上網(wǎng)交流上網(wǎng)交流l實(shí)踐挑戰(zhàn):自立自立+ +自信自信+ +自強(qiáng)自強(qiáng) 自立:自己戰(zhàn)勝困難 自信:風(fēng)雨之后見(jiàn)彩虹,要有信心 自強(qiáng):耐心和細(xì)心l評(píng)價(jià)標(biāo)準(zhǔn):學(xué)好程序的標(biāo)準(zhǔn)不是“懂不懂”,而是“能不能寫(xiě)程序能不能寫(xiě)程序”5 考核方式考核方式l考核以實(shí)踐能力為主平時(shí)實(shí)驗(yàn)作業(yè)(12次)30%+期中機(jī)考10%+期末機(jī)考20%+期末筆試40%+網(wǎng)絡(luò)討論3%(微調(diào))作業(yè)提交形式作業(yè)提交形式: :紙版或電子版(紙版或電子版(EmailEmail或或網(wǎng)絡(luò)學(xué)堂網(wǎng)絡(luò)學(xué)堂提交)提交)l注意注意作業(yè)提交時(shí)間和截止時(shí)間作業(yè)提交時(shí)間和截止時(shí)間網(wǎng)絡(luò)學(xué)堂一定留電話等聯(lián)系信息網(wǎng)絡(luò)學(xué)堂一定留電話等聯(lián)系信息l網(wǎng)絡(luò)討論

4、:網(wǎng)絡(luò)討論:EmailEmail或或網(wǎng)絡(luò)學(xué)堂網(wǎng)絡(luò)學(xué)堂6 網(wǎng)上討論方式7 l譚浩強(qiáng),譚浩強(qiáng),C+C+程序設(shè)計(jì)程序設(shè)計(jì),l配套的習(xí)題解答和上機(jī)配套的習(xí)題解答和上機(jī)指導(dǎo)指導(dǎo)8 9 l答疑時(shí)間答疑時(shí)間雙周雙周4 4下午下午2 2:30-530-5:3030在電子系館在電子系館5-108 5-108 。建議事先。建議事先聯(lián)系聯(lián)系1352086520513520865205、6279271062792710歡迎歡迎emailemail交流交流:l實(shí)驗(yàn)時(shí)間實(shí)驗(yàn)時(shí)間: :時(shí)間按二級(jí)選課時(shí)間按二級(jí)選課地點(diǎn)地點(diǎn): :主樓主樓9 9樓東邊的微機(jī)實(shí)驗(yàn)室樓東邊的微機(jī)實(shí)驗(yàn)室建議所有作業(yè)都在電腦上完成建議所有作業(yè)都在電腦上

5、完成注意注意: :有些作業(yè)需要按實(shí)驗(yàn)報(bào)告格式編寫(xiě),有些只需有些作業(yè)需要按實(shí)驗(yàn)報(bào)告格式編寫(xiě),有些只需要程序代碼和測(cè)試結(jié)果。具體要求見(jiàn)每次作業(yè)通知要程序代碼和測(cè)試結(jié)果。具體要求見(jiàn)每次作業(yè)通知l助教聯(lián)系方式(見(jiàn)網(wǎng)絡(luò)學(xué)堂公告)助教聯(lián)系方式(見(jiàn)網(wǎng)絡(luò)學(xué)堂公告) 實(shí)驗(yàn)和答疑安排10 課程改革和成果課程改革和成果11 本講內(nèi)容(參考教材第1章)1.1 1.1 計(jì)算機(jī)基礎(chǔ)計(jì)算機(jī)基礎(chǔ)1.2 1.2 程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)基礎(chǔ)1.3 C+1.3 C+程序基本結(jié)構(gòu)和上機(jī)方法程序基本結(jié)構(gòu)和上機(jī)方法12 1.1 1.1 計(jì)算機(jī)基礎(chǔ)計(jì)算機(jī)基礎(chǔ)世界上第1臺(tái)數(shù)字電子計(jì)算機(jī)ENIAC馮.諾伊曼圖靈13 14 1.1 1.1 計(jì)算機(jī)

6、基礎(chǔ)計(jì)算機(jī)基礎(chǔ)15 問(wèn)題:x=10,y=x+3,y=?a=10a=10;制定算法輸入計(jì)算執(zhí)行指令保存程序輸出暫存數(shù)據(jù)編譯編譯程序設(shè)計(jì)的核心思想和基本能力程序設(shè)計(jì)的核心思想和基本能力程序概念和核心思想p 程序是若干指令的有序集合(若干指令的有序集合(程序結(jié)構(gòu)程序結(jié)構(gòu))p 程序是按順序存儲(chǔ)在內(nèi)存中(程序是按順序存儲(chǔ)在內(nèi)存中(存儲(chǔ)類型存儲(chǔ)類型)p CPUCPU按程序結(jié)構(gòu)來(lái)執(zhí)行指令(按程序結(jié)構(gòu)來(lái)執(zhí)行指令(算法過(guò)程算法過(guò)程)p 程序都有輸入和輸出操作(程序都有輸入和輸出操作(數(shù)據(jù)數(shù)據(jù)I/OI/O)編程過(guò)程和基本能力p 制定算法:問(wèn)題分析能力。數(shù)據(jù)與算法、相關(guān)專業(yè)課程p 編輯代碼:編程素養(yǎng)。C,C+,JA

7、VAp 編譯鏈接:調(diào)試能力。編譯系統(tǒng),工具軟件p 執(zhí)行調(diào)試:測(cè)試能力。數(shù)據(jù)集,軟件工程16 1.2 程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)基礎(chǔ)p計(jì)算機(jī)科學(xué)家計(jì)算機(jī)科學(xué)家Nikiklaus wirth提出著名公式提出著名公式: 編程算法數(shù)據(jù)結(jié)構(gòu)編程算法數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計(jì)語(yǔ)言及開(kāi)程序設(shè)計(jì)語(yǔ)言及開(kāi)發(fā)工具發(fā)工具 類比:做菜類比:做菜=菜譜菜譜+原料原料+廚具廚具p語(yǔ)言及開(kāi)發(fā)工具語(yǔ)言及開(kāi)發(fā)工具:掌握:掌握C+主要知識(shí)點(diǎn)主要知識(shí)點(diǎn):語(yǔ)法語(yǔ)法, 詞法詞法,函數(shù)等。掌握,函數(shù)等。掌握C+程序開(kāi)發(fā)工具(程序開(kāi)發(fā)工具(VS2008)使用)使用p數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu):學(xué)會(huì)用:學(xué)會(huì)用C+來(lái)表示不同的數(shù)據(jù)類型來(lái)表示不同的數(shù)據(jù)類型p算法算法:

8、在:在 C+環(huán)境下,學(xué)會(huì)如何針對(duì)問(wèn)題進(jìn)行環(huán)境下,學(xué)會(huì)如何針對(duì)問(wèn)題進(jìn)行分析分析,得出,得出數(shù)學(xué)模型數(shù)學(xué)模型或者或者理出算法理出算法17 1.2 程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)基礎(chǔ) -計(jì)算機(jī)編程語(yǔ)言機(jī)器語(yǔ)言機(jī)器語(yǔ)言:機(jī)器指令的二進(jìn)制編碼表達(dá)形式。機(jī):機(jī)器指令的二進(jìn)制編碼表達(dá)形式。機(jī)器語(yǔ)言與特定的計(jì)算機(jī)有關(guān),只能被特定器語(yǔ)言與特定的計(jì)算機(jī)有關(guān),只能被特定CPUCPU直接直接識(shí)別,例如:識(shí)別,例如:111101 11110111 1011111101 11110111 1011匯編語(yǔ)言:匯編語(yǔ)言:用助記符表達(dá)機(jī)器指令,把寄存器用助記符表達(dá)機(jī)器指令,把寄存器AXAX和和3 3相加,結(jié)果放在寄存器相加,結(jié)果放在寄存

9、器AXAX中中. . 也與特定的計(jì)算也與特定的計(jì)算機(jī)有關(guān),但比較容易理解。機(jī)有關(guān),但比較容易理解。add AX 3add AX 3高級(jí)語(yǔ)言:高級(jí)語(yǔ)言:在程序設(shè)計(jì)中,一般使用人易于理解在程序設(shè)計(jì)中,一般使用人易于理解的類自然語(yǔ)言,這些語(yǔ)言稱為,如的類自然語(yǔ)言,這些語(yǔ)言稱為,如 C C、C+C+等等 a=b+3;a=b+3;18 1940s 1950s 1960s 1970s 1980s 1990s機(jī)器語(yǔ)言機(jī)器語(yǔ)言匯編語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言高級(jí)語(yǔ)言自然語(yǔ)言自然語(yǔ)言混合語(yǔ)言混合語(yǔ)言直接面對(duì)寄存直接面對(duì)寄存器、運(yùn)算器和器、運(yùn)算器和內(nèi)存空間內(nèi)存空間有編譯器、翻譯器的支有編譯器、翻譯器的支持,更容易編寫(xiě)持,

10、更容易編寫(xiě)C/C+、LISP、BASIC、Fortran、PASCAL、COBAL、Java有虛擬平臺(tái)、腳本翻譯器有虛擬平臺(tái)、腳本翻譯器的支持,語(yǔ)法更加自由,的支持,語(yǔ)法更加自由,各種腳本語(yǔ)言各種腳本語(yǔ)言PythonPython、PHPPHP、JavaScriptJavaScript、VBScriptVBScript多種語(yǔ)言混合編程多種語(yǔ)言混合編程微軟微軟.NET.NETCLR: Common Language CLR: Common Language RuntimeRuntime要學(xué)習(xí)計(jì)算機(jī)語(yǔ)言,有必要先了解一下這些語(yǔ)要學(xué)習(xí)計(jì)算機(jī)語(yǔ)言,有必要先了解一下這些語(yǔ)言背后提供支持的硬件和軟件環(huán)境言背

11、后提供支持的硬件和軟件環(huán)境19 1.2 程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)基礎(chǔ)-算法算法算法:為解決一個(gè)問(wèn)題而采取的方法和算法:為解決一個(gè)問(wèn)題而采取的方法和操作步驟操作步驟計(jì)算機(jī)算法可分為兩大類:計(jì)算機(jī)算法可分為兩大類: 數(shù)值運(yùn)算算法數(shù)值運(yùn)算算法 非數(shù)值運(yùn)算算法非數(shù)值運(yùn)算算法數(shù)值運(yùn)算算法:有現(xiàn)成的數(shù)學(xué)模型,如:求解方數(shù)值運(yùn)算算法:有現(xiàn)成的數(shù)學(xué)模型,如:求解方程的根,求一個(gè)函數(shù)的定積分等等;程的根,求一個(gè)函數(shù)的定積分等等;非數(shù)值運(yùn)算算法:沒(méi)有固定的模式,如:人事管非數(shù)值運(yùn)算算法:沒(méi)有固定的模式,如:人事管理,學(xué)生成績(jī)管理,香辣蝦制作等理,學(xué)生成績(jī)管理,香辣蝦制作等20 1.2 程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)基礎(chǔ)-算法算

12、法數(shù)值運(yùn)算算法舉例數(shù)值運(yùn)算算法舉例 例:求解兩個(gè)正整數(shù)例:求解兩個(gè)正整數(shù)p p和和q q的最大公約數(shù)的最大公約數(shù)g g的歐幾里德算法的歐幾里德算法 步驟步驟1 1:如果:如果pqpZY/X=Z,且輸出,且輸出Z Z24 1.2 程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)基礎(chǔ)起止框起止框輸入輸出框輸入輸出框加工框加工框判斷框判斷框流程圖描述法:用圖框表示各種操作用圖框表示各種操作基本框圖符號(hào)基本框圖符號(hào):開(kāi)始輸入x,yX=0Y/X=Z打印錯(cuò)誤信息打印ZNOYES結(jié)束25 1.3 C+程序基本結(jié)構(gòu)程序基本結(jié)構(gòu)-C語(yǔ)言的歷史和特點(diǎn)l 歷史悠久、功勛卓著誕生于70年代,成熟于80年代,修訂于90年代很多重量級(jí)軟件都是用C寫(xiě)

13、的l 上天入地、無(wú)所不能幾乎沒(méi)有不能用C寫(xiě)出來(lái)的軟件,沒(méi)有不支持C的系統(tǒng)l 很多流行語(yǔ)言、新生語(yǔ)言都借鑒了它的思想、語(yǔ)法從C+到Java,再到C#,還有php等Dennis M.RitchieKen Thompson26 #include using namespace std;int main() int a,b,c; cinab; c = max(a, b); cout“max =” cy) z = x; else z = y; return z; 1.3 C+程序基本結(jié)構(gòu)程序基本結(jié)構(gòu)例例1:huang.cpp p C+程程序是由多個(gè)序是由多個(gè)文件單位文件單位組成組成p 一個(gè)程序有且只有一

14、個(gè)一個(gè)程序有且只有一個(gè)主函數(shù)主函數(shù)main()p 函數(shù)是由函數(shù)是由C+語(yǔ)句語(yǔ)句組成組成;每條每條C+語(yǔ)語(yǔ)句后面都要有一個(gè)分號(hào)句后面都要有一個(gè)分號(hào)27 C+語(yǔ)句類型語(yǔ)句類型: 說(shuō)明語(yǔ)句、表達(dá)式說(shuō)明語(yǔ)句、表達(dá)式語(yǔ)句、分支語(yǔ)句、循環(huán)語(yǔ)句、控制語(yǔ)句、分支語(yǔ)句、循環(huán)語(yǔ)句、控制流程語(yǔ)句流程語(yǔ)句 對(duì)于變量,先定義其數(shù)據(jù)類型,再對(duì)于變量,先定義其數(shù)據(jù)類型,再使用使用 C+C+程序總是從程序總是從mainmain()函數(shù)開(kāi)始()函數(shù)開(kāi)始執(zhí)行執(zhí)行 數(shù)據(jù)的輸入與輸出是通過(guò)數(shù)據(jù)的輸入與輸出是通過(guò)cin cin 和和coutcout來(lái)實(shí)現(xiàn)來(lái)實(shí)現(xiàn) C+C+程序用程序用/或者或者/ /* * * */ /進(jìn)行注釋進(jìn)行注釋1

15、.3 C+程序基本結(jié)構(gòu)程序基本結(jié)構(gòu)28 1.3 C+程序基本結(jié)構(gòu)程序基本結(jié)構(gòu)/ 例例2: huang2.cpp #include /*預(yù)編譯命令預(yù)編譯命令,將標(biāo)準(zhǔn)輸入輸出函數(shù)將標(biāo)準(zhǔn)輸入輸出函數(shù)*/ #include /預(yù)編譯命令預(yù)編譯命令,將系統(tǒng)提供的數(shù)學(xué)函數(shù)將系統(tǒng)提供的數(shù)學(xué)函數(shù) using namespace std; / 使用命名空間使用命名空間 int main( )/主函數(shù),名為主函數(shù),名為main /函數(shù)體函數(shù)體.開(kāi)始開(kāi)始 float a,b,c;/聲明部分聲明部分.定義變量類型定義變量類型 int num1=3*5; /定義變量,賦予值定義變量,賦予值 b=30.0;/執(zhí)行部分執(zhí)行

16、部分.賦值語(yǔ)句賦值語(yǔ)句 a=sin(b*3.14159/180);/執(zhí)行部分執(zhí)行部分.賦值語(yǔ)句賦值語(yǔ)句 coutaendl; /執(zhí)行部分執(zhí)行部分.輸出語(yǔ)句輸出語(yǔ)句 coutnum1; /輸出變量輸出變量num1的值的值 return 0; /返回返回0 /函數(shù)體函數(shù)體.結(jié)束結(jié)束語(yǔ)句是語(yǔ)句是C+程序的基本單位程序的基本單位29 include Use namespace stdint main( ) float x; /定義實(shí)型變量定義實(shí)型變量 int i coutx=x cout,i= iendl; return 01.3 C+程序基本結(jié)構(gòu)程序基本結(jié)構(gòu)課間練習(xí):找出下列程序的錯(cuò)誤課間練習(xí):找出

17、下列程序的錯(cuò)誤30 編輯執(zhí)行連接編譯鍵盤(pán)輸入f 1. cppf2.cpp磁盤(pán)文件f1.objf2.objhuang. exe圖:編程的4部曲1.3 C+程序基本結(jié)構(gòu)程序基本結(jié)構(gòu)f1.obj+f2.obj+標(biāo)準(zhǔn)函標(biāo)準(zhǔn)函數(shù)數(shù)huang.exehuang.vsprojf1.cppf2.cpp31 1.啟動(dòng):雙擊vs2008程序圖標(biāo)32 2.建項(xiàng)目:選擇“新建”項(xiàng)目選擇相關(guān)項(xiàng)輸入“項(xiàng)目名稱”等33 2.建項(xiàng)目:下一步空項(xiàng)目完成34 3.編輯:選擇“源文件”添加新建項(xiàng)輸入“名稱”等35 3.編輯:選擇“添加”鍵入程序代碼“文件”保存36 4.編譯:選擇“生成”生成huang檢測(cè)“輸出”再編輯37 38

18、5.執(zhí)行:選擇“調(diào)試”開(kāi)始執(zhí)行自動(dòng)命令行窗口39 本講重點(diǎn)計(jì)算機(jī)基礎(chǔ)(硬件/CPU、內(nèi)存和硬盤(pán)三者關(guān)系,軟件)程序設(shè)計(jì)基礎(chǔ)(算法概念、描述方法)數(shù)據(jù)輸入、數(shù)據(jù)輸出(cin 和cout)C+程序的實(shí)驗(yàn)過(guò)程教材導(dǎo)讀:仔細(xì)閱讀教材的第1章、但1.2節(jié)暫時(shí)別看;下一講預(yù)習(xí)內(nèi)容:計(jì)算機(jī)中數(shù)據(jù)的表示;程序中的下一講預(yù)習(xí)內(nèi)容:計(jì)算機(jī)中數(shù)據(jù)的表示;程序中的 數(shù)據(jù);常量數(shù)據(jù);常量和變量。和變量。即教材的第即教材的第2章內(nèi)容章內(nèi)容40 面面試試經(jīng)經(jīng)典典41 l老師問(wèn):“樹(shù)上有10只鳥(niǎo),獵人開(kāi)槍打死了1只,還剩幾只?” 學(xué)生:“是無(wú)聲手槍,還是其它沒(méi)有聲音的槍?” 師:“不是無(wú)聲手槍,也不是其它沒(méi)有聲音的槍。” 生:“槍聲有多大?” 師:“80-100分貝” 生:“那就是說(shuō),會(huì)震得耳朵疼?” 師:“是的” 生:“在那個(gè)地方,打鳥(niǎo)不犯法?” 師:“不犯” 生:“您確定那只鳥(niǎo)真的被打死啦?” 師:“確定” 老師有些不耐煩了

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論