Chapter1 程序設計概述_第1頁
Chapter1 程序設計概述_第2頁
Chapter1 程序設計概述_第3頁
Chapter1 程序設計概述_第4頁
Chapter1 程序設計概述_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、計算機程序設計基礎主講人:孫紅艷計算機科學與工程系軟件教研室聯(lián)系方式辦公室:圖書館五樓計算機系軟件教研室電 話或 2221379(辦公)Email:2課程概述計算機系統(tǒng) = 硬件系統(tǒng) + 軟件系統(tǒng)第一學期第二學期其后學期計算機程序設計基礎C/C+語言C+面向對象程序設計C+Windows應用程序Web應用程序3課程概述程序設計舉例:學生信息管理系統(tǒng)造價信息管理系統(tǒng)在線考試系統(tǒng)財務預算系統(tǒng)視頻會議系統(tǒng)貪吃蛇4課程概述以C+語言為依托,詳細講授計算機程序設計的基礎知識和基本方法。通過學習掌握: 1、 基本的程序設計思想和方法 ; 2、 C+語言的基礎知識; 3、 良好的編

2、程習慣。5課程概述本學期授課內容:第1章 程序設計概述 ()第2章 基本數(shù)據(jù)類型和表達式 ( )第3章 程序控制結構 ( )第4章 數(shù)組 ( )第5章 指針與引用 ( )第6章 結構體與共用體 ( )第7章 函數(shù) ( )6課程概述參考書籍:C+程序設計 譚浩強 著 清華大學出版社C+ Primer中文或英文版 Stanley B.Lippman 著 人民郵電出版社 C+程序設計基礎 周靄如 著 電子工業(yè)出版社7課堂要求考試成績 期末考試分數(shù)(70) 平時成績(30)自覺遵守課堂紀錄 不遲到、不曠課;請假必須于上課前交假條;關閉手機。 不允許參加考試 1/3及以上的考勤不到; 1/3及以上的作業(yè)

3、報告不交;8第1章 程序設計概述內容1.1 程序設計和程序設計語言1.2 簡單的C+程序1.3 創(chuàng)建和運行C+程序1.4 算法10目標了解程序設計的基本概念了解C+語言的發(fā)展歷程熟悉使用C+進行程序設計的一般過程掌握簡單的C+程序結構熟悉運行C+程序的步驟熟悉Visual C+6.0開發(fā)環(huán)境11內容1.1 程序設計和程序設計語言1.2 簡單的C+程序1.3 創(chuàng)建和運行C+程序1.4 算法121.1 程序設計和程序設計語言1.1.1 基本概念 程序設計運用計算機能夠理解的語言告訴計算機如何工作; 程序設計語言人與計算機進行交流的語言; 程序利用某種語言編寫出來的能夠讓計算機實現(xiàn)功能的指令或代碼。

4、131.1 程序設計和程序設計語言1.1.2 程序設計語言的發(fā)展歷程機器語言匯編語言高級語言由計算機硬件系統(tǒng)可以識別的二進制指令組成的語言。用人們易于記憶和閱讀的助記符來表示的語言。不面向機器,用接近人類語言的描述方式構成的指令系統(tǒng)程序設計語言的發(fā)展14比較兩個數(shù)的大小地址 機器指令 注釋 - - -0000 B8 5F5F ;取數(shù)據(jù)段地址0003 8E D8; 設置數(shù)據(jù)段寄存器0005 A1 0000 ;把數(shù)1(var1)的值送到ax寄存器0008 8B 1E 0002 ;把數(shù)2(var2)的值送到bx寄存器000C 3B C3 ; 比較兩個數(shù)000E 72 07 ; 如果數(shù)1小于數(shù)2則轉移

5、到001BH0010 8D 16 001C ;取字符串數(shù)1大于等于數(shù)2的指針0014 EB 05 ; 轉顯示 0016 8D 16 0004 ;取字符串數(shù)1大于等于數(shù)2的指針001A B4 09 ;調用DOS的顯示字符串功能001C CD 21 ;顯示字符串001E B4 4C ;退出程序 0020 CD 21 機器語言 是以計算機所能理解和執(zhí)行的以“0”和“1”組成的二進制編碼表示的命令,也稱為機器指令。15比較兩個數(shù)的大小標號 匯編指令 注釋 - - - mov ax,data ;取數(shù)據(jù)段地址 mov ds,ax ;設置數(shù)據(jù)段寄存器 mov ax,var1 ;把數(shù)1(var1)的值送到ax

6、寄存器 mov bx,var2 ;把數(shù)2(var2)的值送到bx寄存器 cmp ax,bx ;比較兩個數(shù) jb le1 ;如果數(shù)1小于數(shù)2則轉移到001BHgr1: lea dx,grea ;取字符串數(shù)1大于等于數(shù)2的指針 jmp dis ;轉顯示 le1: lea dx,less ;取字符串數(shù)1大于等于數(shù)2的指針dis: mov ah,9 ;調用DOS的顯示字符串功能 int 21h ;顯示字符串 mov ah,4ch ;退出程序 int 21h匯編語言 是采用了助記碼與符號地址來表示計算機指令的語言。計算機不能直接執(zhí)行匯編語言程序,必須經過匯編程序翻譯成機器指令后才能在計算機上執(zhí)行。 16

7、求兩個數(shù)中的大數(shù) /Visual c+源程序: 求兩個數(shù)中的大數(shù) #include int max(int x,int y) ;聲明函數(shù) void main() coutab; cout“The maxium number is”max(a,b)y?x:y; 高級語言 就是更接近自然語言、更接近數(shù)學語言的程序設計語言。 目前的大部分語言都屬高級語言,其中使用較多的有 Visual Basic、 Delphi、Visual C+、Java 等。 17機器語言匯編語言高級語言面向過程面向對象CPU指令系統(tǒng),由0、1序列構成的指令碼組成如:10000000 加 10010000 減用助記符號描述的指

8、令系統(tǒng)如 ADD AX, BX面向機器的語言程序設計依賴解決問題的過程客觀事物描述成具有屬性和行為的對象; 同一類對象的共同屬性和行為形成類; 封裝對象間通過發(fā)送和接受消息發(fā)生聯(lián)系; 類的繼承與多態(tài)性可以提供使用現(xiàn)成類的機制,從而實現(xiàn)代碼的重用. 接近人的自然語言習慣,如:100+200 1.1.2 程序設計語言的發(fā)展歷程1.1 程序設計和程序設計語言181.1 程序設計和程序設計語言1.1.3 C+語言簡介(一)發(fā)展歷程1964年,Basic語言問世。1970年,貝爾實驗室Ken Thompson推出B語言。1972年,貝爾實驗室Dennis.M.Ritchie研制出了C語言。1983年,美

9、國標準化協(xié)會(ANSI)制定了ANSI C。191.1 程序設計和程序設計語言1.1.3 C+語言簡介(一)發(fā)展歷程C語言的設計者Dennis M.Ritchie201.1 程序設計和程序設計語言1.1.3 C+語言簡介(一)發(fā)展歷程20世紀80年代,出現(xiàn)軟件危機,提出面向對象的程序設計思想。1980年,貝爾實驗室的Bjarne Stroustrup開始對C語言進行改進和擴充,增加面向對象程序設計機制,并稱為“帶類的C”。1983年,為了強調它是C的增強版,正式取名為“ C+ ”。211.1 程序設計和程序設計語言1.1.3 C+語言簡介(一)發(fā)展歷程C+語言的設計者Bjarne Strous

10、trupC是一個“更好的C語言” Stroustrup221.1 程序設計和程序設計語言1.1.3 C+語言簡介(一)發(fā)展歷程1、全面支持C語言與C語言兼容,并對C語言的部分功能作了擴充;2、增加了面向對象的機制增加了類、對象、繼承、多態(tài)等機制。 既支持面向過程的程序設計,又支持面向對象的程序設計。231.1 程序設計和程序設計語言1.1.3 C+語言簡介(二)語言特點語言簡潔使用方便語法豐富功能強大可移植性好 C/C+語言仍是目前應用最為廣泛的程序設計語言。24內容1.1 程序設計和程序設計語言1.2 簡單的C+程序1.3 創(chuàng)建和運行C+程序1.4 算法251.2 簡單的C+程序1.2.1

11、C+進行程序設計的一般過程1.2.2 C+程序的基本結構和特點261.2 簡單的C+程序問題分析算法設計程序編寫程序執(zhí)行結果分析問: 如何利用C+來進行程序設計呢?271.2 簡單的C+程序1.2.1 C+進行程序設計的一般過程1、問題分析例1.1 計算矩形的周長和面積。思考: 已知哪些信息? 需要求什么?281.2 簡單的C+程序1.2.1 C+進行程序設計的一般過程2、算法設計算法解決問題的方法和過程的描述。例1.1 計算矩形的周長和面積。輸入矩形的寬和高;周長=(寬+高) 2;面積=寬高;輸出周長和面積291.2 簡單的C+程序1.2.1 C+進行程序設計的一般過程3、程序編寫P9 例1

12、.5 30/*源文件名:CH1_01.cpp功能:給出矩形的寬和高,計算矩形的周長和面積。*/#include using namespace std;void main()int width,height,girth,area;cout widthheight; girth= (width+height)*2; area= width*height; cout矩形:寬= width 高= heightendl; cout周長= girthendl; cout面積=areaendl;311.2 簡單的C+程序1.2.1 C+進行程序設計的一般過程4、程序執(zhí)行5、結果分析 321.2 簡單的C+

13、程序問題分析算法設計程序編寫程序執(zhí)行得到結果設計方法分:結構化程序設計面向對象程序設計翻譯程序分:1、編譯程序2、解釋程序331.2 簡單的C+程序1.2.1 C+進行程序設計的一般過程兩種翻譯程序(1)編譯程序 (2)解釋程序 讀一句源程序,翻譯一句,執(zhí)行一句,不產生目標代碼源程序目標程序執(zhí)行34回顧本節(jié)課所講主要內容程序設計的基本概念程序設計語言的發(fā)展歷程C+簡介C+進行程序設計的一般過程面向過程與面向對象程序設計編譯程序與解釋程序351.2 簡單的C+程序1.2.2 C+程序的基本結構和特點分析例1.1的程序,掌握C+程序的基本結構和特點。仔細閱讀以下程序。36/*源文件名:CH1_01

14、.cpp功能:給出矩形的寬和高,計算矩形的周長和面積。*/#include using namespace std;void main()int width,height,girth,area;cout widthheight; girth= (width+height)*2; area= width*height; cout矩形:寬= width 高= heightendl; cout周長= girthendl; cout面積=areaendl;371、程序注釋語句格式: / 單行注釋語句 /* */ 塊注釋語句作用:對程序中的功能或語句函數(shù)進行說明。注意:標準的程序必須有注釋,注釋不被執(zhí)行

15、。注釋出現(xiàn)的位置:程序開頭注目程序的名稱、功能、思路、開發(fā)人員、開發(fā)時間等信息。關鍵語句注明語句的作用。382、編譯預處理語句語句: #include作用 以符號“#”開頭的行,稱為編譯預處理行。該語句的作用是將文件“iostream”的內容包含到程序中。注意using namespace std; 用于聲明C+標準庫中的類和函數(shù)所使用的命名空間為std。393、主函數(shù)main語句void main ( ) 程序從main函數(shù)開始執(zhí)行。void表示返回值為空。每一個C+程序都必須且只能有一個main函數(shù)(主函數(shù))。404、程序主體C+語句區(qū)分大小寫,并以“ ; ”結束;聲明變量 數(shù)據(jù)類型 變量

16、名;輸入輸出語句 cout 待輸出內容; cout 保存數(shù)據(jù)的變量;賦值語句 變量 表達式;41課堂練習利用所學的知識,編寫一個程序,用于計算任意兩個整數(shù)的和。42內容1.1 程序設計和程序設計語言1.2 簡單的C+程序1.3 創(chuàng)建和運行C+程序1.4 算法43問題分析算法設計程序編寫程序執(zhí)行得到結果創(chuàng)建C+程序1.3 創(chuàng)建和運行C+程序運行C+程序441.3 創(chuàng)建和運行C+程序1.3.1 Visual C+6.0 集成開發(fā)環(huán)境1.3.2 創(chuàng)建和運行C+程序451.3 創(chuàng)建和運行C+程序1.3.1 Visual C+6.0 集成開發(fā)環(huán)境Visual C+ 6.0 是目前最流行的一種Window

17、s系統(tǒng)下的C+編譯系統(tǒng)。Visual C+ 6.0的安裝。打開VC編程環(huán)境的方法:1、雙擊桌面快捷方式2、開始程序Microsoft Visual Studio 6.0-Microsoft Visual C+ 6.046標題欄菜單欄工具欄工作區(qū)源程序編輯區(qū)輸出窗口47類視圖文件視圖481.3 創(chuàng)建和運行C+程序1.3.2 創(chuàng)建和運行C+程序(一)新建工程和文件(二)編輯(三)編譯(四)連接(五)運行(六)分析運行結果491.3 創(chuàng)建和運行C+程序1.3.2 創(chuàng)建和運行C+程序(一)新建工程和文件Win32 Console ApplicationC+ Source File(二)編輯在打開的源文

18、件編輯區(qū)輸入程序代碼。C+源程序默認擴展名“*.cpp”501.3 創(chuàng)建和運行C+程序1.3.2 創(chuàng)建和運行C+程序(三)編譯對源程序進行詞法和語法分析,如果全部正確,將源程序(*.cpp)轉換成目標程序(*.obj)。如果發(fā)現(xiàn)錯誤,在輸出窗口進行提示。提示區(qū)分error和warning。511.3 創(chuàng)建和運行C+程序1.3.2 創(chuàng)建和運行C+程序(四)連接 系統(tǒng)提供連接程序(linker)將一個程序的所有目標程序和系統(tǒng)的庫文件連接起來,最終生成一個可執(zhí)行的二進制文件(*.exe)。(五)運行 運行可執(zhí)行文件(*.exe),得到運行結果。(七)分析運行結果 如果運行結果不正確,檢查并修改程序。

19、521.3 C+程序開發(fā)過程 程序代碼的錄入、修改執(zhí)行預處理指令,詞法分析、語法分析后生成目標程序與其它目標程序或庫連接,生成可執(zhí)行程序53回顧上節(jié)課所講主要內容:C+程序的基本結構和特點Visual C+6.0練習:計算兩個整數(shù)的和以及平均值。54內容1.1 程序設計和程序設計語言1.2 簡單的C+程序1.3 創(chuàng)建和運行C+程序1.4 算法551.4 算法1.4.1 算法的概念1.4.2 算法的特征1.4.3 算法的表示561.4.1 算法的概念著名的計算機科學家沃思提出數(shù)據(jù)結構 算法 程序數(shù)據(jù)結構描述數(shù)據(jù)的類型和組織形式。算法解決問題的方法和過程的描述。計算機算法分為:數(shù)值運算算法非數(shù)值運

20、算算法571.4.1 算法的概念例1.3 輸入三個不相同的數(shù),求出其中的最小數(shù)。算法如下:(1)輸入a、b、c。(2)若ab,則amin,否則bmin;(3)再將c與min進行比較,若cmax,則xmax,否則max不變;(4)讓記錄數(shù)據(jù)個數(shù)的變量增加1,即n+1n;(5)判斷n是否小于10,若成立則轉到第(3)步執(zhí)行,否則轉到第(6)步;(6)打印輸出max,max為10個數(shù)中的最大數(shù)。601.4.1 算法的概念例1.5 交換兩個變量中的數(shù)據(jù)。算法如下:(1)輸入x和y的值;(2)將x的值賦給變量t,即xt;(3)將y的值賦給變量x,即yx;(4)將t的值賦給變量y,即ty。(5)輸出x和y

21、的值,即交換后的結果611.4.2 算法的特征有限性 一個算法應包含有限的操作步驟,而不能是無限的。確定性 算法中每一個步驟都應當是確定的,而不能是含糊的、模棱兩可的。有0個或多個輸入有1個或多個輸出可行性 算法中每一個步驟都應當能有效地執(zhí)行,并得到確定的結果。62回顧上節(jié)課所講主要內容:C+程序的基本結構和特點Visual C+6.0算法的概念和特征例1.3 輸入三個不相同的數(shù),求出其中最小數(shù)。例1.4 輸入10個數(shù),打印輸出其中最大的數(shù)。例1.5 交換兩個變量中的數(shù)據(jù)。算法的表示方法631.4.3 算法的表示(一)用自然語言表示算法(二)用流程圖表示算法641.4.3 算法的表示(二)用流

22、程圖表示算法1966年,Bohra和Jacopini提出程序由三種結構構成。順序結構選擇結構循環(huán)結構三種控制結構算法表示基本單元。65 1、順序結構 2、選擇結構語句組1語句組2條件語句組1語句組2YN1.4.3 算法的表示(二)用流程圖表示算法66條件語句組YN( b )( a )條件YN語句組 3、循環(huán)結構 (a)當型循環(huán) (b)直到型循環(huán)671.4.3 算法的表示(二)用流程圖表示算法畫出以下例題程序的流程圖。68例1.5 交換兩個變量中的數(shù)據(jù)。流程圖算法如下:(1)輸入x和y的值;(2)將x的值賦給變量t,即xt;(3)將y的值賦給變量x,即yx;(4)將t的值賦給變量y,即ty。(5)輸出x和y的值,即交換后的結果69例1.3 輸入三個不相同的數(shù),求出其中的最小數(shù)。流程圖算法如下:(1)輸入a、b、c。(2)若ab,則amin,否則bmin;(3)再將c與min進行比較,若c1000,則轉步驟(5)(3)輸出n的值;(4)n的值加1,轉步驟(2);(5)程序結束721.

溫馨提示

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

評論

0/150

提交評論