3種程式設計范型

2021-08-14 21:25:09 字數 1085 閱讀 7143

計算機應用離不開編寫程式。按不同的思路和方法來編寫程式,就形成不同的程式設計范型。

2023年,世界上第乙個高階語言fortran問世。50多年來,高階語言的程式設計范型大體經歷了3次演變,即過程式范型、物件導向程式設計范型與基於構件技術的程式設計范型。

過程式程式設計范型遵循「程式=資料結構+演算法」的思路,把程式理解為由一組被動的資料和一組能動的過程所構成。程式設計時,先設計資料結構,再圍繞資料結構編寫其演算法過程。程式執行後,獲得預期的計算結果或正確的操作,藉以滿足程式的功能需求。對於比較大的程式,必須先進行功能分解,把較小的功能編寫為子程式,子程式在呼叫子子程式,直至最終將程式由一組組大小適中,、層層呼叫的模組所構成的應用程式系統。

在客觀事物中,實體的內部「狀態」(一般用資料表示)和「運動」(施加於資料的操作)總是結合在一起的。可是在用popl編碼時,程式模型(稱為解空間)卻被人為地構造為偏離客觀實體本身的模型(稱為問題空間)。隨著程式規模的擴大,這類程式設計范型的缺陷越來越明顯,在錯綜複雜的呼叫下,即使功能可以滿足,效能也不容易滿足,使程式難於維護和移植。因此,這類范型通常只用於編寫**在50000行一下、不會輕易更改的應用程式。

在物件導向的程式設計中,資料及其操作被封裝在乙個個稱為物件(object)的統一體中,物件之間則通過訊息(message)相互聯絡,「物件+訊息」的機制取代了「資料結構+演算法」的思路,因而較好地實現了解空間與問題空間的一致性,從而為解決軟體危機帶來了新的希望。

構件(component)可以理解為標準化(或者規則化)的物件類。它本質上是一種通用的、可支援不同應用程式的元件,正如硬體中的標準件一樣,插入不同的平台或環境後即可直接執行。

基於構件的開發技術(cbd)與物件導向技術其實是一脈相承的。它給軟體開發人員帶來了根本的變革,就是把面向特定應用的oo程式設計,擴充套件為面向整個「領域」的cbd程式設計,使查詢與整合適合於所需領域的構件稱為這一新程式設計范型的主要工作。由此可見,cbd實際上是oo開發的延伸與歸宿。現代的網路應用程式,幾乎普遍採用基於構件技術的程式設計范型。

常用程式設計粒度的大小來比較3種程式設計范型的差異。

過程式程式設計范型:著眼於程式的過程和基本控制結構,粒度最小。

物件導向程式設計范型:著眼於程式中的物件,粒度比較大。

基於構件技術的程式設計范型:著眼於適合整個領域的類物件,粒度更大。

范型程式設計 洗牌

在撲克牌遊戲中,每次遊戲開始都要求把54張牌重新排列一下,稱為洗牌。試編寫程式將一副撲克牌 用54個整數1 54表示 隨機洗好後,順序輸出54張牌的情況。4種方法來品味如何用stl解決問題 解法1 初始化乙個 vector,順序加入所有牌,即整數1 54。然後從容器中隨機抽取乙個加到另乙個vecto...

c語言討論 范型程式設計

c語言中使用乙個變數之前要對其進行定義,那麼首先來看一下具體的乙個變數的定義。1.inta 10 2.charchartest 3.floatb 1.0 4.regest doublex 5.static int int ptr null 6.char words 10 10 1.c語言中型別及其作...

C 實踐參考 洗牌(范型程式設計)

專案2 洗牌 在撲克牌遊戲中,每次遊戲開始都要求把54張牌重新排列一下,稱為洗牌。試編寫程式將一副撲克牌 用54個整數1 54表示 隨機洗好後,順序輸出54張牌的情況。參考介面 參考解答 共4種,可作為程式閱讀,品味用stl解決問題的方法,必要時,請查詢相關手冊 解法1 初始化乙個 vector,順...