程序設計基礎知識_第1頁
程序設計基礎知識_第2頁
程序設計基礎知識_第3頁
程序設計基礎知識_第4頁
程序設計基礎知識_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

會計學1程序設計基礎知識1.1程序設計第1頁/共40頁利用計算機解決問題使用程序設計語言將問題的求解過程描述成計算機能夠識別的方式——程序程序設計先從問題描述開始,經(jīng)過分析問題確定解決方案、設計解決問題的算法、依據(jù)算法編寫程序、測試、運行維護等一系列過程,最終得到解決問題的計算機程序整個過程第2頁/共40頁(1)分析問題明確要解決什么問題

(2)設計算法數(shù)據(jù)結(jié)構(gòu)和算法

(3)編寫程序?qū)⑺惴ㄓ贸绦蛟O計語言描述出來

(4)調(diào)試運行語法錯誤、語義錯誤、異常

1.1.1程序設計步驟第3頁/共40頁算法就是解決問題所需的操作步驟的集合。1.1.2算法求最大數(shù)的算法:(1)將第1個數(shù)賦值給max;(2)初始化計數(shù)變量i為1;(3)i<n時,重復執(zhí)行以下操作,否則轉(zhuǎn)到第(4)步:◆ 比較a[i]與max,若a[i]大于max,則將a[i]賦值給max;◆ i自增1;(4)返回max的值。第4頁/共40頁1.1.3數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù):用來描述現(xiàn)實世界的數(shù)字、字符、圖像、聲音以及能夠輸入到計算機中,并能被計算機處理的符號集合。例如,整數(shù)、圖書館中書目。數(shù)據(jù)元素:數(shù)據(jù)集合中的個體,是數(shù)據(jù)的基本單位數(shù)據(jù)項:一個數(shù)據(jù)元素可以由若干個數(shù)據(jù)項組成。數(shù)據(jù)項是數(shù)據(jù)不可分割的最小標識單位。數(shù)據(jù)對象:具有相同性質(zhì)的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個子集。第5頁/共40頁數(shù)據(jù)結(jié)構(gòu):相互之間存在一種或多種特定關系的數(shù)據(jù)元素的集合。數(shù)據(jù)的邏輯結(jié)構(gòu):數(shù)據(jù)元素之間存在的固有的邏輯關系。常簡稱為數(shù)據(jù)結(jié)構(gòu)。(1)集合(2)線性結(jié)構(gòu)(3)樹形結(jié)構(gòu)(4)圖狀結(jié)構(gòu)第6頁/共40頁(1)集合:結(jié)構(gòu)中的數(shù)據(jù)元素之間除了“同屬于一個集合”的關系以外,沒有其它關系。草原中的草第7頁/共40頁(2)線性結(jié)構(gòu):結(jié)構(gòu)中的數(shù)據(jù)元素之間存在“一對一”的關系。第8頁/共40頁(3)樹形結(jié)構(gòu):結(jié)構(gòu)中的數(shù)據(jù)元素之間存在“一對多”的關系。第9頁/共40頁(4)圖狀結(jié)構(gòu):結(jié)構(gòu)中的數(shù)據(jù)元素之間存在“多對多”的關系。第10頁/共40頁數(shù)據(jù)的存儲結(jié)構(gòu):數(shù)據(jù)元素及其關系在計算機內(nèi)的表示(1)順序存儲結(jié)構(gòu):把邏輯上相鄰的數(shù)據(jù)元素存儲在物理位置也相鄰的存儲單元中,借助元素在存儲器中的相對位置來表示數(shù)據(jù)元素之間的邏輯關系。(2)鏈式存儲結(jié)構(gòu):用指針或引用表達數(shù)據(jù)元素之間的邏輯關系。(3)索引存儲結(jié)構(gòu):在存儲數(shù)據(jù)元素的同時,還建立附加的索引表。通過索引表,可以找到存儲數(shù)據(jù)元素的節(jié)點(4)散列存儲結(jié)構(gòu):根據(jù)散列函數(shù)和處理沖突的方法確定數(shù)據(jù)元素的存儲位置。第11頁/共40頁數(shù)據(jù)的操作:在數(shù)據(jù)的邏輯結(jié)構(gòu)上定義的操作算法。例如,插入、刪除、檢索等。邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)的關系:是一個事物的兩個方面,相輔相成,不可分割;一種邏輯結(jié)構(gòu)可以映射為多種存儲結(jié)構(gòu)。算法與數(shù)據(jù)結(jié)構(gòu)的關系:算法由各種數(shù)據(jù)及其操作構(gòu)成,算法構(gòu)成依賴于數(shù)據(jù)結(jié)構(gòu);算法設計和選擇制約數(shù)據(jù)結(jié)構(gòu)的確定;對數(shù)據(jù)結(jié)構(gòu)所能施加的操作需要相應的算法。第12頁/共40頁1.2程序設計方法結(jié)構(gòu)化程序設計面向?qū)ο蟪绦蛟O計函數(shù)式程序設計事件驅(qū)動程序設計。第13頁/共40頁基本思想:采用“自頂向下,逐步求精”的程序設計方法和“單入口單出口”的控制結(jié)構(gòu)。1.2.1結(jié)構(gòu)化程序設計強調(diào)先考慮總體,再考慮細節(jié)。經(jīng)過對問題的逐步細化,將問題分解為基本程序模塊,從而將原來較為復雜的問題化簡為一系列簡單的模塊。任何復雜的程序都由順序、選擇和循環(huán)三種基本程序結(jié)構(gòu)通過組合、嵌套構(gòu)成,從而形成一個單入口單出口的程序。第14頁/共40頁開發(fā)一個銀行系統(tǒng):該系統(tǒng)能夠?qū)~戶進行存款、取款和轉(zhuǎn)賬操作。進行存款操作時,需要提供“賬號”、“存款日期”、“存入金額”等參數(shù)信息。進行取款操作時,需要……。longaccountID=Convert.ToInt64(Console.ReadLine());doubleamount=Convert.ToDouble(Console.ReadLine());DateTimedate=DateTime.Today;doublebalance=Acount.MakeDeposit(accountID,date,amount);Console.WriteLine("你存入了{0}元,賬戶上現(xiàn)有余額{1}元",amount,balance);第15頁/共40頁有現(xiàn)金賬戶還要有基金賬戶!!if(acountType=="現(xiàn)金")…else…還要有支票賬戶??!第16頁/共40頁基本思想:以人類的自然思維方式建立問題域模型。以抽象、封裝、繼承、多態(tài)等方式認識問題和解決問題。強調(diào)以現(xiàn)實世界中的客觀事物為中心,而不是以功能為中心。用對象來描述現(xiàn)實世界中的客觀事物,使得解空間與問題空間具有自然的對應關系,有利于對復雜問題給出解決方案。1.2.2面向?qū)ο蟪绦蛟O計第17頁/共40頁開發(fā)一個銀行系統(tǒng):每個賬戶具有賬號、賬戶類型、明細等,可以對賬戶進行存款、取款和轉(zhuǎn)賬操作abstractclassAccount{protectedlongacountID;protecteddoublebalance;protectedList<Item>items=null;publicdoubleMakeDeposit();publicdoubleWithDraw();publicdoubleTransform();}第18頁/共40頁有現(xiàn)金賬戶還要有基金賬戶??!派生出CashAcount、ChequeAccount與FundAccount類,分別表示現(xiàn)金賬戶、支票賬戶和基金賬戶。還要有支票賬戶?。〉?9頁/共40頁圍繞函數(shù)進行,計算過程體現(xiàn)為一系列的函數(shù)應用。函數(shù)式程序由一些原始函數(shù)、定義函數(shù)和函數(shù)型組成的函數(shù)表達式。1.2.3函數(shù)式程序設計LISP是一種最早的函數(shù)式程序設計語言,在人工智能領域應用較多。第20頁/共40頁編寫一個函數(shù),它能夠生成累加器,即這個函數(shù)接受一個參數(shù)n,然后返回另一個函數(shù)(這個函數(shù)接受參數(shù)i,然后返回n加i的值)Lisp的寫法:

(defunfoo(n)(lambda(i)(incfni)))Javascript的寫法:

functionfoo(n){returnfunction(i){returnn+=i}}第21頁/共40頁事件:是一個對象能夠識別的一個動作,比如鼠標事件、鍵盤事件等。1.2.4事件驅(qū)動程序設計事件驅(qū)動程序設計主要應用在Windows應用程序上Windows程序以一種非順序的方式運行。運行后,就進入等待狀態(tài),等待事件的發(fā)生。一旦有事件發(fā)生,程序就被激活并運行相應的事件處理過程第22頁/共40頁1.3程序設計語言第23頁/共40頁1.3.1語言分類機器語言:是用二進制代碼表示的機器指令的集合,是計算機能夠直接識別和執(zhí)行的一種語言,是一種面向機器的語言。內(nèi)存占用少、直接執(zhí)行和速度快;通用性較差,不易閱讀和記憶,編程工作量大,難以維護。101000000000000100000000 00000010000001100000001000000000 10100010000000110000000011110100 第24頁/共40頁1.3.1語言分類匯編語言:用助記符表示的面向機器的計算機語言MOVAL,X ADDAL,Y MOVSUM,ALHLT

第25頁/共40頁1.3.1語言分類高級語言:與自然語言相近并為計算機所接受和執(zhí)行的計算機語言intsum;sum=x+y;

第26頁/共40頁翻譯有兩種方式:編譯和解釋。編譯是指將高級語言程序整個翻譯成用機器語言表示的與之等價的機器語言程序(稱為目標程序),然后再執(zhí)行該目標程序,從而完成高級語言程序所要完成的任務;解釋是指對高級語言作逐句輸入、逐句翻譯,并逐句執(zhí)行,當翻譯完成時程序也執(zhí)行完畢,這種翻譯方式并不產(chǎn)生目標程序。第27頁/共40頁高級語言與匯編語言的比較:如果要在高級語言中比較兩個值,那么可以使用“IFQuantity-A=Quantity-B”。在匯編語言中,要將這兩個量移到兩個CPU寄存器中,然后進行比較匯編語言沒有類似于"while...do"、"repeat...Until"或"if...then...else"的指令。匯編語言提供了條件和非條件跳轉(zhuǎn)指令,用于模擬與"if...then...else"類似的指令。所以,從嚴格意義上講,使用匯編語言編寫一個結(jié)構(gòu)化程序是不可能的。第28頁/共40頁1.3.2主流程序設計語言1.C#語言特色:(1)完全面向?qū)ο螅壕哂忻嫦驅(qū)ο笳Z言的一切特性(2)簡單易學:熟悉C、C++或Java即可掌握C#語言(3)安全:避免使用指針;自動內(nèi)存管理和垃圾回收;使用委托取代函數(shù)指針。(4)跨平臺:可以運行在不同操作系統(tǒng)上。(5)跨語言:與任何支持.NET的語言互相交換信息(6)強大的Web編程能力:ASP.NETWeb應用程序第29頁/共40頁2.Java語言特色:(1)面向?qū)ο螅菏且环N純粹面向?qū)ο蟮木幊陶Z言。(2)平臺無關性:可以運行于不同的軟硬件平臺。(3)分布式:支持Internet應用的開發(fā)。(4)安全性:提供了一個安全機制以防惡意代碼的攻擊,以及程序的非法訪問。(5)鍵壯性:強類型機制、異常處理、垃圾收集、安全檢查機制等可保證Java程序的健壯性。第30頁/共40頁3.C++語言特色:(1)完美地體現(xiàn)了面向?qū)ο蟮母鞣N特性,如封裝性、繼承性、多態(tài)性等。(2)生成的代碼質(zhì)量高,運行效率僅比匯編語言代碼片段慢10%~20%。(3)保持與C語言兼容。第31頁/共40頁4.C語言特色:(1)簡潔緊湊、靈活方便。(2)數(shù)據(jù)類型豐富。(3)運算符豐富。(4)語法限制不嚴格,程序設計自由度大。(5)可以直接對硬件進行操作。(6)代碼質(zhì)量高,程序執(zhí)行效率高。第32頁/共40頁1.4程序開發(fā)環(huán)境第33頁/共40頁1.4.1集成開發(fā)環(huán)境概覽工具箱屬性窗口設計器解決方案資源管理器第34頁/共40頁解決方案:一個容器,用于包含多個項目。項目:一組源文件以及相關元數(shù)據(jù)的集合。解決方案資源管理器:是對解決方案所包含的項目和各種文件進行管理的工具。通過解決方案資源管理器可

以向解決方案中添加新項目

、編輯已有項目,也可以向

項目中添加新項或編輯已有

項。1.4.2解決方案資源管理器第35頁/共40頁窗體設計器:可以以可視化的方式設計

溫馨提示

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

評論

0/150

提交評論