第1講課程簡介和編程基礎(chǔ)_548005525_第1頁
第1講課程簡介和編程基礎(chǔ)_548005525_第2頁
第1講課程簡介和編程基礎(chǔ)_548005525_第3頁
第1講課程簡介和編程基礎(chǔ)_548005525_第4頁
第1講課程簡介和編程基礎(chǔ)_548005525_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1 程序設(shè)計(1)電子工程系信息認(rèn)知與智能系統(tǒng)研究所黃永峰Tel.62792710Email:辦公地點:電子系館5-1082 程序設(shè)計(1)知識體系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)解解題題思思路路常常見見算算法法變變量量類類型型參參數(shù)數(shù)類類型型返返回回類類型型項項目目建建立立文文件件包包含含編編譯譯調(diào)調(diào)試試3 教學(xué)目標(biāo)教學(xué)目標(biāo)l通過本課程學(xué)習(xí),掌握通過本課程學(xué)習(xí),掌握C+C+面向過程程序設(shè)計面向過程程序設(shè)計的的基本知識和基

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

3、+上機(jī)應(yīng)用上機(jī)應(yīng)用+ +上網(wǎng)交流上網(wǎng)交流l實踐挑戰(zhàn):自立自立+ +自信自信+ +自強(qiáng)自強(qiáng) 自立:自己戰(zhàn)勝困難 自信:風(fēng)雨之后見彩虹,要有信心 自強(qiáng):耐心和細(xì)心l評價標(biāo)準(zhǔn):學(xué)好程序的標(biāo)準(zhǔn)不是“懂不懂”,而是“能不能寫程序能不能寫程序”5 考核方式考核方式l考核以實踐能力為主平時實驗作業(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è)提交時間和截止時間作業(yè)提交時間和截止時間網(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è)計程序設(shè)計,l配套的習(xí)題解答和上機(jī)配套的習(xí)題解答和上機(jī)指導(dǎo)指導(dǎo)8 9 l答疑時間答疑時間雙周雙周4 4下午下午2 2:30-530-5:3030在電子系館在電子系館5-108 5-108 。建議事先。建議事先聯(lián)系聯(lián)系1352086520513520865205、6279271062792710歡迎歡迎emailemail交流交流:l實驗時間實驗時間: :時間按二級選課時間按二級選課地點地點: :主樓主樓9 9樓東邊的微機(jī)實驗室樓東邊的微機(jī)實驗室建議所有作業(yè)都在電腦上完成建議所有作業(yè)都在電腦上

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

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

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

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

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

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

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

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

13、的l 上天入地、無所不能幾乎沒有不能用C寫出來的軟件,沒有不支持C的系統(tǒng)l 很多流行語言、新生語言都借鑒了它的思想、語法從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+程程序是由多個序是由多個文件單位文件單位組成組成p 一個程序有且只有一

14、個一個程序有且只有一個主函數(shù)主函數(shù)main()p 函數(shù)是由函數(shù)是由C+語句語句組成組成;每條每條C+語語句后面都要有一個分號句后面都要有一個分號27 C+語句類型語句類型: 說明語句、表達(dá)式說明語句、表達(dá)式語句、分支語句、循環(huán)語句、控制語句、分支語句、循環(huán)語句、控制流程語句流程語句 對于變量,先定義其數(shù)據(jù)類型,再對于變量,先定義其數(shù)據(jù)類型,再使用使用 C+C+程序總是從程序總是從mainmain()函數(shù)開始()函數(shù)開始執(zhí)行執(zhí)行 數(shù)據(jù)的輸入與輸出是通過數(shù)據(jù)的輸入與輸出是通過cin cin 和和coutcout來實現(xiàn)來實現(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ù)體.開始開始 float a,b,c;/聲明部分聲明部分.定義變量類型定義變量類型 int num1=3*5; /定義變量,賦予值定義變量,賦予值 b=30.0;/執(zhí)行部分執(zhí)行

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

17、下列程序的錯誤30 編輯執(zhí)行連接編譯鍵盤輸入f 1. cppf2.cpp磁盤文件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.啟動:雙擊vs2008程序圖標(biāo)32 2.建項目:選擇“新建”項目選擇相關(guān)項輸入“項目名稱”等33 2.建項目:下一步空項目完成34 3.編輯:選擇“源文件”添加新建項輸入“名稱”等35 3.編輯:選擇“添加”鍵入程序代碼“文件”保存36 4.編譯:選擇“生成”生成huang檢測“輸出”再編輯37 38

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論