認(rèn)識(shí)程式設(shè)計(jì)_第1頁
認(rèn)識(shí)程式設(shè)計(jì)_第2頁
認(rèn)識(shí)程式設(shè)計(jì)_第3頁
認(rèn)識(shí)程式設(shè)計(jì)_第4頁
認(rèn)識(shí)程式設(shè)計(jì)_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

認(rèn)識(shí)程式設(shè)計(jì)程式(Program)是由合乎程式語言語法規(guī)則的指令所組成,而程式設(shè)計(jì)的目的就是透過程式的撰寫與執(zhí)行來達(dá)到使用者的需求。讀者認(rèn)為程式設(shè)計(jì)的主要目的只是要「跑」出正確結(jié)果,而忽略了包括執(zhí)行績(jī)效或者日後的維護(hù)成本,其實(shí)這是不清楚程式設(shè)計(jì)的真正意義。由於程式設(shè)計(jì)不只是討論編寫程式的功夫而已,而是期望學(xué)習(xí)到如何組織眾多程式設(shè)計(jì)師共同參與設(shè)計(jì)一套大型且符合使用者需求的複雜程式系統(tǒng)。第2頁,共60頁,2024年2月25日,星期天9-1程式語言簡(jiǎn)介「程式語言」人類用來和電腦溝通的語言。程式語言發(fā)展的歷史已有半世紀(jì)之久,早期的機(jī)器語言發(fā)展至今,已經(jīng)邁入到第五代自然語言。每一代的語言都有其特色,並且一直朝著容易使用、除錯(cuò)與維護(hù)功能更強(qiáng)的目標(biāo)來發(fā)展。第3頁,共60頁,2024年2月25日,星期天演進(jìn)過程分類不論任何一種語言都有其專有語法、特性、優(yōu)點(diǎn)及相關(guān)應(yīng)用的領(lǐng)域。依照其演進(jìn)過程分類如:第4頁,共60頁,2024年2月25日,星期天機(jī)械語言機(jī)械語言(MachineLanguage)是由1和0兩種符號(hào)構(gòu)成,是最早期的程式語言,也是電腦能夠直接閱讀與執(zhí)行的基本語言,也就是任合程式或語言在執(zhí)行前都必須被轉(zhuǎn)換為機(jī)械語言。10111001(設(shè)定變數(shù)A)00000010(將A設(shè)定為數(shù)值2)第5頁,共60頁,2024年2月25日,星期天組合語言組合語言(AssemblyLanguage)是一種介於高階語言及機(jī)械語言間的符號(hào)語言,比起機(jī)械語言來說,組合語言要易編寫和學(xué)習(xí)。機(jī)械語言0和1的符號(hào)定義為「指令」(statement)是由運(yùn)算元和運(yùn)算碼組合而成,只可以在特定機(jī)型上執(zhí)行,不同CPU要使用不同的組合語言。MOVA,2(變數(shù)A的數(shù)值內(nèi)容為2)ADDA,2(將變數(shù)A加上2後,將結(jié)果再存回變數(shù)A中,如A=A+2)SUBA,2(將變數(shù)A減掉2後,將結(jié)果再存回變數(shù)A中,如A=A-2)第6頁,共60頁,2024年2月25日,星期天組合語言雖然比機(jī)械語言符合人類的需求,但電腦卻無法直接辨示。必須經(jīng)過「組譯」(Assembling)過程,將組合語言轉(zhuǎn)換成機(jī)械語言,轉(zhuǎn)換成的機(jī)械語言會(huì)產(chǎn)生一個(gè)檔案稱為「執(zhí)行檔」,才可在電腦上執(zhí)行。第7頁,共60頁,2024年2月25日,星期天高階語言高階語言(High-levelLanguage)接近人類使用語言的程式語言,執(zhí)行較慢,本身易學(xué)易用。特點(diǎn)是必須經(jīng)過編譯(Compile)或解譯(Interprete)的過程,才能轉(zhuǎn)換成機(jī)器語言碼。所謂編譯,用編譯器來將程式碼翻譯為目的程式(objectcode),編譯必須原始程式碼完全正確,編譯的動(dòng)作才會(huì)成功,高階語言經(jīng)過編譯後,會(huì)產(chǎn)生「目的檔」(.obj)和「執(zhí)行檔」(.exe)兩個(gè)檔案。第8頁,共60頁,2024年2月25日,星期天非程序性語言非程序性語言(Non-proceduralLanguage)也稱為第四代語言,特點(diǎn)是它的敘述和程式與真正的執(zhí)行步驟沒有關(guān)連。程式設(shè)計(jì)者只須將自己打算做什麼表示出來即可,而不須去理解電腦是如何執(zhí)行的。資料庫的結(jié)構(gòu)化查詢語言(StructuralQueryLanguage,簡(jiǎn)稱SQL)就是第四代語言的一個(gè)頗具代表性的例子。第9頁,共60頁,2024年2月25日,星期天人工智慧語言稱為第五代語言,或稱為自然語言,其特性宛如和另一個(gè)人對(duì)話一般。因?yàn)樽匀徽Z言使用者口音、使用環(huán)境、語言本身的特性(如一詞多義)都會(huì)造成電腦在解讀時(shí)產(chǎn)生不同的結(jié)果與自然語言辨識(shí)上的困難度。因此自然語言的發(fā)展必須搭配人工智慧(ArtificialIntelligence:AI)來進(jìn)行。第10頁,共60頁,2024年2月25日,星期天程式設(shè)計(jì)程式設(shè)計(jì)時(shí)必須利用何種程式語言表達(dá),可根據(jù)主客觀環(huán)境的需要,並無特別規(guī)定。一個(gè)程式的產(chǎn)生過程,基本上可分為以下五個(gè)設(shè)計(jì)步驟

第11頁,共60頁,2024年2月25日,星期天五個(gè)設(shè)計(jì)步驟程式設(shè)計(jì)步驟

特色與說明

需求認(rèn)識(shí)了解程式所要解決的問題是什麼,有那些輸入及輸出資料等。

設(shè)計(jì)規(guī)劃根據(jù)需求,選擇適合的資料結(jié)構(gòu),並以任何的表示方式寫一個(gè)演算法以解決問題。

分析討論思考其他可能適合的演算法及資料結(jié)構(gòu),最後再選出最適當(dāng)?shù)臉?biāo)的。

編寫程式把分析的結(jié)論,利用程式語言寫成初步的程式碼。

測(cè)試檢驗(yàn)最後必需確認(rèn)程式的輸出是否符合需求,這個(gè)步驟得細(xì)步的執(zhí)行程式並進(jìn)行許多的相關(guān)測(cè)試與除錯(cuò)。第12頁,共60頁,2024年2月25日,星期天程式設(shè)計(jì)的五大步驟第13頁,共60頁,2024年2月25日,星期天9-2程式設(shè)計(jì)模式簡(jiǎn)介

程式設(shè)計(jì)模式的兩種主要依循原則,分別為「結(jié)構(gòu)化程式設(shè)計(jì)」(StructuredProgramming)及「物件導(dǎo)向程式設(shè)計(jì)」(Object-OrientedProgramming)。第14頁,共60頁,2024年2月25日,星期天結(jié)構(gòu)化程式設(shè)計(jì)在傳統(tǒng)程式設(shè)計(jì)的方法中,主要是以「由下而上法」與「由上而下法」為主?!赣上露戏ā故侵赋淌皆O(shè)計(jì)師將整個(gè)程式需求最容易的部份先編寫,再逐步擴(kuò)大來完成整個(gè)程式。「由上而下法」則是將整個(gè)程式需求從上而下、由大到小逐步分解成較小的單元,或稱為「模組」(module),這樣使得程式設(shè)計(jì)師可針對(duì)各模組分別開發(fā),不但減輕設(shè)計(jì)者負(fù)擔(dān)、可讀性較高,對(duì)於日後維護(hù)也容易許多。第15頁,共60頁,2024年2月25日,星期天結(jié)構(gòu)化程式設(shè)計(jì)的核心精神,是「由上而下設(shè)計(jì)」與「模組化設(shè)計(jì)」。例如在Pascal語言中,這些模組稱為「程序」(procedure),C/C++稱為「函式」(function)。每一個(gè)模組會(huì)個(gè)別完成特定的功能,主程式則組合每個(gè)模組後,完成最後要求的功能。不過一旦主程式要求的功能變動(dòng)時(shí),則可能許多模組內(nèi)的資料與演算法都需要同步變動(dòng),而這也是程序?qū)蛟O(shè)計(jì)無法有效使用程式碼的主因。通?!附Y(jié)構(gòu)化程式設(shè)計(jì)」具備以下三種控制流程,對(duì)於一個(gè)結(jié)構(gòu)化程式,不管其結(jié)構(gòu)如何複雜第16頁,共60頁,2024年2月25日,星期天[循序結(jié)構(gòu)]逐步的撰寫敘述。第17頁,共60頁,2024年2月25日,星期天[選擇結(jié)構(gòu)]依某些條件做邏輯判斷。第18頁,共60頁,2024年2月25日,星期天[重複結(jié)構(gòu)]依某些條件決定是否重複執(zhí)行某些敘述。第19頁,共60頁,2024年2月25日,星期天物件導(dǎo)向程式設(shè)計(jì)「物件導(dǎo)向程式設(shè)計(jì)」(Object-OrientedProgramming,OOP)則是近年來相當(dāng)流行的一種新興程式設(shè)計(jì)理念。在設(shè)計(jì)程式時(shí),能以一種更生活化、可讀性更高的設(shè)計(jì)觀念來進(jìn)行,並且所開發(fā)出來的程式也較容易擴(kuò)充、修改及維護(hù)。屬性與使用方法是在廠商製造時(shí)所提供,我們?cè)谑褂脮r(shí)只要懂得如何正確使用它即可,而不需要曉得它的製造過程。以下是有關(guān)物件導(dǎo)向設(shè)計(jì)的元件相關(guān)簡(jiǎn)介第20頁,共60頁,2024年2月25日,星期天

物件導(dǎo)向元件

特色與說明

物件物件是一個(gè)存在的個(gè)體,在VB視窗軟體中,物件可以是一個(gè)圖形、文字檔案等。

類別同一類物件的集合體就是類別。類別好比是一個(gè)設(shè)計(jì)圖,它定義了這類物件的集合體應(yīng)有的屬性或功能,而物件就是依據(jù)這份藍(lán)圖所產(chǎn)生的實(shí)體。也就是說,定義好類別後,可以實(shí)作許多物件實(shí)體。第21頁,共60頁,2024年2月25日,星期天

屬性屬性就是指類別所擁有的靜態(tài)特性。

方法屬性就是指類別所具有的功能。

事件物件該於何時(shí)啟動(dòng)什麼樣的工作,必須由事件來觸發(fā)。例如當(dāng)在某區(qū)域「按下滑鼠左鍵」時(shí),就會(huì)產(chǎn)生「按下滑鼠左鍵」的事件,而視窗軟體本身也會(huì)依物件的功能進(jìn)行該事件的處理。第22頁,共60頁,2024年2月25日,星期天物件導(dǎo)向程式設(shè)計(jì)三種特性另外物件導(dǎo)向程式設(shè)計(jì)還具備以下三種特性:第23頁,共60頁,2024年2月25日,星期天封裝(Encapsulation)就是利用「類別」來實(shí)作「抽象化資料型態(tài)」(ADT)。封裝(Encapsulation)「繼承」是接近現(xiàn)實(shí)生活中的遺傳,例如你的父母生下你,那麼你一定會(huì)遺傳到父母的某些特徵,當(dāng)物件導(dǎo)向技術(shù)以這種生活實(shí)例去定義其功能時(shí),則稱為「繼承」。多形(Polymorphism)「多形」也是物件導(dǎo)向設(shè)計(jì)的重要特性,也稱為「同名異式」。第24頁,共60頁,2024年2月25日,星期天遺傳關(guān)係圖:子類別(福特汽車與BMW)與父類別(汽車)第25頁,共60頁,2024年2月25日,星期天9-3參數(shù)與變數(shù)程式設(shè)計(jì)而言,模組化(module)是基本而且非常重要的觀念,而副程式就是表現(xiàn)模組化最重要的設(shè)計(jì)方法。對(duì)如何在程式設(shè)計(jì)中正確的使用副程式,關(guān)鍵就是在了解參數(shù)傳遞的正確方法。第26頁,共60頁,2024年2月25日,星期天參數(shù)種類參數(shù)傳遞,在模組化設(shè)計(jì)中,會(huì)將常數(shù)或變數(shù)當(dāng)作參數(shù)傳遞給副程式,讓副程式能夠依據(jù)我們所提供的數(shù)值進(jìn)行運(yùn)算。並將結(jié)果傳回給呼叫的程式。實(shí)際參數(shù)(ActualParameter):呼叫副程式的參數(shù)稱為實(shí)際參數(shù),如Math、Chinese。形式參數(shù)(FormalParameter):被呼叫副程式中的參數(shù)稱為形式參數(shù),如Score1、Score2。第27頁,共60頁,2024年2月25日,星期天C語言的範(fàn)例圖說main(){ intMath,Chinese;

Average_Score=Average(Math,Chinese);實(shí)際參數(shù)

}boolAverage(intScore1,Score2){形式參數(shù)

}實(shí)際參數(shù)形式參數(shù)第28頁,共60頁,2024年2月25日,星期天參數(shù)傳遞方式參數(shù)傳遞方式往往因?yàn)槌淌秸Z言的不同而有差異,例如C/C++語言中參數(shù)傳遞方式有兩種:傳值呼叫(CallByValue)傳址呼叫(CallByAddress)或稱為傳參考呼叫(CallByReference)。第29頁,共60頁,2024年2月25日,星期天傳值呼叫(CallByValue)傳值呼叫(CallByValue)主程式的參數(shù)值,傳送給副程式的參數(shù),由於實(shí)際參數(shù)與形式參數(shù)分別佔(zhàn)用不同的記憶體位址,無論副程式的值如何改變,並不會(huì)影響主程式的參數(shù)值。第30頁,共60頁,2024年2月25日,星期天傳址呼叫(CallByAddressorCallByReference)傳址呼叫(CallByAddressorCallByReference)主程式呼叫副程式時(shí),將主程式的參數(shù)位址傳給對(duì)應(yīng)副程式參數(shù)。實(shí)際參數(shù)與形式參數(shù)佔(zhàn)用相同的記憶體位址,此時(shí)如果改變副程式的參數(shù)值,則主程式的參數(shù)值也會(huì)跟著變動(dòng)。第31頁,共60頁,2024年2月25日,星期天兩種目前較少見的參數(shù)傳遞方式

參數(shù)傳遞名稱

特色與說明傳名呼叫法(CallByName)主程式呼叫副程式時(shí),將主程式的參數(shù)名稱(Name)傳給副程式的參數(shù),並取代副程式中相對(duì)應(yīng)的所有參數(shù)名稱。特點(diǎn)是以以呼叫前環(huán)境為計(jì)值來求得值或位址,作為副程式參數(shù)的值或位址。例如ALGOL60語言中,就是使用此傳名法。本文呼叫早期法(CallByText)類似CallByName的方式,不過卻是以被呼叫者的環(huán)境為計(jì)值環(huán)境。例如LISP語言有種參數(shù)傳遞的方式就是CallByText。第32頁,共60頁,2024年2月25日,星期天變數(shù)簡(jiǎn)介變數(shù)(Variable)是程式語言中不可或缺的部份,代表資料儲(chǔ)存的記憶空間。變數(shù)宣告的作用在告知電腦,變數(shù)需要多少的記憶空間。使用變數(shù)前,必須以資料的型態(tài)來作為宣告變數(shù)的依據(jù)及設(shè)定變數(shù)名稱。第33頁,共60頁,2024年2月25日,星期天變數(shù)具備了四個(gè)形成要名稱:變數(shù)本身在程式中的名字值:程式中變數(shù)所賦予的值。參考位置:變數(shù)在記憶體中儲(chǔ)存的位置。屬性:變數(shù)在程式的性質(zhì),如所謂的整數(shù)或?qū)崝?shù)。第34頁,共60頁,2024年2月25日,星期天從程式語言的範(fàn)圍來看,變數(shù)的種類有兩種:1.全域變數(shù)(GlobalVariable):在主程式中所定義的變數(shù),且壽命與主程式一樣的,稱為全域變數(shù),也就是只有在主程式結(jié)束執(zhí)行時(shí),全域變數(shù)在記憶體中才會(huì)消失。2.區(qū)域變數(shù)(LocalVariable)在某個(gè)區(qū)塊(Block)內(nèi),如副程式內(nèi)所定義的變數(shù)。例如在C++語言中,區(qū)域變數(shù)的值在副程式結(jié)束時(shí),儲(chǔ)存這些值的位址也會(huì)歸還給系統(tǒng),等到下一次呼叫時(shí),這些值也已經(jīng)重新定義了。第35頁,共60頁,2024年2月25日,星期天變數(shù)儲(chǔ)存位址變數(shù)儲(chǔ)存位址的方法則有兩種

儲(chǔ)存配置名稱

特色與說明動(dòng)態(tài)儲(chǔ)存配置法變數(shù)儲(chǔ)存區(qū)配置的過程是在程式執(zhí)行時(shí)(RunningTime)處理,如Basic、VisualBasic、LISP語言等。而執(zhí)行時(shí)才決定變數(shù)的型態(tài),稱為「動(dòng)態(tài)檢驗(yàn)」(DynamicChecking),變數(shù)的型態(tài)與名稱可在執(zhí)行時(shí),可隨時(shí)改變。靜態(tài)儲(chǔ)存配置法變數(shù)儲(chǔ)存區(qū)配置的過程是在程式編譯時(shí)(CompilingTime)處理,如C/C++、PASCAL語言等。而編譯時(shí)才決定變數(shù)的型態(tài),則稱為「靜態(tài)檢驗(yàn)」(StaticChecking),變數(shù)的型態(tài)與名稱在編譯時(shí)才決定。第36頁,共60頁,2024年2月25日,星期天Tips所謂內(nèi)隱式變數(shù)型態(tài)宣告(ImplicitTypeDeclaration)是指系統(tǒng)會(huì)自行定義某些變數(shù)的資料型態(tài),使用者不需要再宣告變數(shù)型態(tài)。顯露式型態(tài)宣告(ExplicitTypeDeclaration)則是一般由使用者自行定義或宣告型態(tài)的變數(shù)。第37頁,共60頁,2024年2月25日,星期天變數(shù),各位還必須要了解到「繫結(jié)」(Binding)的意義?!咐M結(jié)」是指將一個(gè)變數(shù)的名稱、位址屬性與值作某種程度的關(guān)連,而所發(fā)生的時(shí)間就稱為「繫結(jié)時(shí)間」(BindingTime)。進(jìn)入一個(gè)副程式區(qū)段、執(zhí)行時(shí)解決變數(shù)參考的時(shí)間、程式涉及定義變數(shù)的時(shí)間都算是「繫結(jié)」情況出現(xiàn)的時(shí)間。第38頁,共60頁,2024年2月25日,星期天

領(lǐng)域法名稱

方法說明

動(dòng)態(tài)領(lǐng)域法在程式編譯時(shí),決定變數(shù)所參考的物件。做法是如果變數(shù)在程式中某個(gè)區(qū)塊中未定義,則往上層區(qū)塊尋找,直到找到第一次開始宣告此變數(shù)的區(qū)塊為止,如果一直未發(fā)現(xiàn)此變數(shù)宣告,則認(rèn)定此變數(shù)未宣告。如Fortran、Pascal、C/C++都是使用此種方法。

靜態(tài)領(lǐng)域法在程式執(zhí)行時(shí),決定變數(shù)所參考的物件。做法是依照副程式呼叫的相反順序?qū)ふ易償?shù)的宣告。如LISP、Basic、Prolog都是使用此種方法。第39頁,共60頁,2024年2月25日,星期天9-4遞迴式「遞迴」(Recursion)在程式設(shè)計(jì)上是相當(dāng)好用而且重要的概念。遞迴函可使得程式變得相當(dāng)簡(jiǎn)潔。簡(jiǎn)單的說,如果一個(gè)程式能被自己所定義或呼叫的,就稱為遞迴程式。學(xué)習(xí)的程式語言,例如Fortran、Basic、COBOL等並不具備遞迴功能。是這些語言在編譯(compile)時(shí)就得決定所有相關(guān)資訊。像PASCAL、LISP、C、PROLOG、C++等語言可以使用遞迴功能,則是因?yàn)樗鼈兊睦M結(jié)時(shí)間(Bindingtime)可以延遲至執(zhí)行時(shí)才動(dòng)態(tài)決定。第40頁,共60頁,2024年2月25日,星期天遞迴的定義程式設(shè)計(jì)的角度而言,「函式」(或稱副程式)不單純只是能夠被其它函式呼叫(或引用)的程式單元,在某些語言還提供了自身引用的功能,這種功用就是所謂的「遞迴」。第41頁,共60頁,2024年2月25日,星期天遞迴式必須具備以下兩個(gè)要件一個(gè)可以反覆執(zhí)行的過程一個(gè)跳出反覆執(zhí)行過程中的出口第42頁,共60頁,2024年2月25日,星期天階乘函數(shù)是數(shù)學(xué)上很有名的函式,對(duì)遞迴式而言,也可以看成是很典型的範(fàn)例。3階乘等於3×2×1=6,而0階乘則定義為1。我們一般以符號(hào)"!"來代表階乘。如4階乘可寫為4!。任何問題想以遞迴式來表示,n!可以寫成n!=n×(n-1)×(n-2)……×1第43頁,共60頁,2024年2月25日,星期天C++語言來表示階乘函數(shù)「n×fact(n-1)」就是一個(gè)反覆的過程,而n等於0時(shí),就是遞迴式的「出口」。intfact(intn){if(n==0)return(1);elsereturn(n*fact(n-1);//尾歸遞迴的應(yīng)用}第44頁,共60頁,2024年2月25日,星期天遞迴運(yùn)作原理遞迴的運(yùn)作原理,以C/C++語言而言,用所謂的暫存堆疊(Stack)。每一次遞迴過程在進(jìn)入自身所定義的函式時(shí),對(duì)於函式內(nèi)的區(qū)域變數(shù)和相關(guān)參數(shù)多會(huì)重新配置位址。而且呼叫它的過程中,只有最近的一組才可被引用。由函式返回上一次呼叫的地方時(shí),最近配置的哪一組變數(shù)所佔(zhàn)的記憶區(qū)被釋放,而且最新的拷貝重新恢復(fù)作用。第45頁,共60頁,2024年2月25日,星期天由於遞迴式並未事先定義可執(zhí)行次數(shù),暫存堆疊的功用就是為了解決這個(gè)問題。暫存堆疊是由系統(tǒng)來控制,當(dāng)每次進(jìn)入一個(gè)遞迴函數(shù)時(shí),該函式中相關(guān)變數(shù)的新配置拷貝就以活動(dòng)記錄表的形態(tài)置於暫存堆疊的頂端。對(duì)於區(qū)域變數(shù)或參數(shù)的引用都必須經(jīng)由目前暫存堆疊的頂端。一旦函式返回時(shí),堆疊頂端配置的拷貝被釋放。而前一次配置的拷貝則成為目前暫存堆疊的頂端,以供下一次引用區(qū)域變數(shù)值使用。第46頁,共60頁,2024年2月25日,星期天9-5常見的程式語言簡(jiǎn)介隨著程式開發(fā)的原理與電腦硬體的高度發(fā)展,新一代的程式語言也不斷推陳出新。以下我們將為您介紹目前相當(dāng)流行的幾種程式語言。第47頁,共60頁,2024年2月25日,星期天C語言C語言的起源是1972年貝爾實(shí)驗(yàn)室的DennisRitchie以B語言為基礎(chǔ),結(jié)合了B語言前身的BCPL語言的觀念,再加上資料型態(tài)的概念,設(shè)計(jì)出C語言,並和B語言的發(fā)明者KenThompson以C語言寫出新版本的UNIX作業(yè)系統(tǒng)。運(yùn)算速度而言,C語言稱得上是介於高階語言與低階語言之間的中階語言(middle-levellanguage),它在組合語言與高階語言間取得了一個(gè)平衡的位置,有高階語言的結(jié)構(gòu)化語法也有組合語言的高效率表現(xiàn)。第48頁,共60頁,2024年2月25日,星期天C語言具備有以下的特色和優(yōu)點(diǎn)程式設(shè)計(jì)是由上到下(top-down)的結(jié)構(gòu)化程式設(shè)計(jì),它包含了循序(sequential)、重複(iteration)和選擇(selection)等結(jié)構(gòu),程式設(shè)計(jì)上,具有層次清楚、條理分明和維護(hù)的優(yōu)點(diǎn)。ANSI的標(biāo)準(zhǔn)化之後,ANSIC所定義的C語言來編寫程式,經(jīng)過編譯器的重新編譯,可跨平臺(tái)執(zhí)行,程式可攜性高。語法格式較其他高階語言來的寬鬆(loosely),允許程式碼中出現(xiàn)空格或空行等,為了可讀性的考慮,通常還是會(huì)依照普遍的格式風(fēng)格來編寫。允許直接存取記憶體上的位址作運(yùn)算、修改等,也就是指標(biāo)(Pointer)的觀念,是動(dòng)態(tài)記憶體結(jié)構(gòu)的應(yīng)用。在函式庫(library)中定義許多功能性函式,視程式需求而直接呼叫使用。函式庫的使用可以節(jié)省程式設(shè)計(jì)師編寫程式的時(shí)間和提升效率,可以讓程式碼更精簡(jiǎn)與方便維護(hù)。第49頁,共60頁,2024年2月25日,星期天C++語言

C++語言同樣也是源自於貝爾實(shí)驗(yàn)室,原創(chuàng)者BjarneStroustrup以C語言作為基本的架構(gòu),再導(dǎo)入物件導(dǎo)向(ObjectOriented)的觀念,而形成最初的C++語言。C++不是一套絕對(duì)的物件導(dǎo)向語言。C++以C語言為基礎(chǔ)平臺(tái),保有全部C語言的優(yōu)點(diǎn)外,更與C語言相容,使得大部份在C語言上所撰寫的程式碼,C++仍然可以繼續(xù)使用。C++中所增加的物件導(dǎo)向功能,更適時(shí)的解決大型軟體開發(fā)時(shí)所面臨的困境,再加上ISO(InternationalStandardizationOrganization)為其制定標(biāo)準(zhǔn)化,使得C++不論在擴(kuò)充與移植上,都獲得更大的彈性。第50頁,共60頁,2024年2月25日,星期天VisualC++Microsoft公司所推出的VisualC++程式語言就是C++語言,不論在程式架構(gòu)與指令用法,都是採(cǎi)用標(biāo)準(zhǔn)的C++格式。其間的差別,僅在於VisualC++已經(jīng)為程式設(shè)計(jì)員提供更多實(shí)用的類別庫,例如最有名的MFC(MicrosoftFoundationClasses)類別庫,更是開發(fā)Windows作業(yè)環(huán)境程式的最佳選擇。第51頁,共60頁,2024年2月25日,星期天

VisualBasic語言VisualBasic是Microsoft公司於西元1991年,以BASIC語言(一種適合初學(xué)者的直譯式高階語言)為基礎(chǔ),開發(fā)的一套全新概念程式語言設(shè)計(jì)環(huán)境。所謂的VisualBasic簡(jiǎn)單來說,就是視覺化的Basic程式開發(fā)環(huán)境。第52頁,共60頁,2024年2月25日,星期天VisualBasic是以BASIC為基礎(chǔ)所開發(fā)出來的語言環(huán)境,因此它包含了BASIC語言的原有優(yōu)點(diǎn):直譯式模組化與結(jié)構(gòu)化物件導(dǎo)向設(shè)計(jì)概念多工處理模式第53頁,共60頁,2024年2月25日,星期天直譯式BASIC語言是以方便初學(xué)者學(xué)習(xí)為出發(fā)點(diǎn),所開發(fā)出來的一套高階程式語言系統(tǒng)。它的使用語法及數(shù)學(xué)邏輯運(yùn)算方式,十分接近人類的語言結(jié)構(gòu)(以英文文法為基礎(chǔ)),因此使用者只需下達(dá)各種簡(jiǎn)單的指令,即可命令電腦執(zhí)行相關(guān)運(yùn)算工作。第54頁,共60頁,2024年2月25日,星期天模組化與結(jié)構(gòu)化早期BASIC語言僅著重於方便初學(xué)者的學(xué)習(xí)使用,因此並不注重結(jié)構(gòu)化以及模組化的設(shè)計(jì)概念,而導(dǎo)致並不受到當(dāng)時(shí)專業(yè)程式開發(fā)人員的重視。Microsoft公司為推廣BASIC語言,加強(qiáng)了BASIC語言的整體程式結(jié)構(gòu)??梢酝高^各種結(jié)構(gòu)化與模組化語法,將一個(gè)大型的應(yīng)用程式劃分為多個(gè)功能區(qū)段。不僅能方便程式開發(fā)人員,進(jìn)行程式碼判讀與維護(hù)的工作,更可以重複利用這些模組化的程式碼內(nèi)容。第55頁,共

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論