c語言的程式設計正規化是命令式還是宣告式

時間 2021-06-26 19:24:57

1樓:匿名使用者

c語言程式設計,顧名思義,就是用c語言來進行計算機程式設計工作。c語言是國際上廣泛流行的,很有發展前途的計算機高階語言.它適合作為系統描述語言,即可用來編寫系統軟體,也可用來編寫應用軟體.

2樓:匿名使用者

c語言是指令式程式設計語言,程式設計方式是將某種演算法表示為一系列指令讓機器去執行,從而獲得結果。常見的命令式語言除了c之外還有fortran, pascal, ada等等,最早的機器語言也屬於指令式程式設計正規化。

宣告式程式語言要求使用者描述具體問題而不是演算法,然後機器會選擇預先設立好的演算法去解決這些問題。宣告式的語言有gpss和prolog等等。

也就是說,指令式程式設計要求你告訴機器該怎麼做,而宣告式要求你告訴機器該做什麼。

宣告式程式設計和指令式程式設計有什麼區別

3樓:好程式設計師

1、指令式程式設計:命令“機器”如何去做事情(how),這樣不管你想要的是什麼(what),它都會按照你的命令實現。

宣告式程式設計:告訴“機器”你想要的是什麼(what),讓機器想出如何去做(how)。

2、宣告式程式設計和指令式程式設計的**例子

舉個簡單的例子,假設我們想讓一個陣列裡的數值翻倍。

(1)用指令式程式設計風格實現,像下面這樣:

var numbers = [1,2,3,4,5]

var doubled =

for(var i = 0; i < numbers.length; i++)

console.log (doubled) //=> [2,4,6,8,10]

我們直接遍歷整個陣列,取出每個元素,乘以二,然後把翻倍後的值放入新陣列,每次都要操作這個雙倍陣列,直到計算完所有元素。

(2)而使用宣告式程式設計方法,我們可以用 array.map 函式,像下面這樣:

var numbers = [1,2,3,4,5]

var doubled = numbers.map (function (n) )

console.log (doubled) //=> [2,4,6,8,10]

map利用當前的陣列建立了一個新陣列,新陣列裡的每個元素都是經過了傳入map的函式(這裡是function (n) )的處理。

map函式所做的事情是將直接遍歷整個陣列的過程歸納抽離出來,讓我們專注於描述我們想要的是什麼(what)。注意,我們傳入map的是一個純函式;它不具有任何***(不會改變外部狀態),它只是接收一個數字,返回乘以二後的值。

c++和c語言的區別

4樓:瘋狂的菜鳥

首先鄙視一下給e語言打廣告的,人家問c和c++的區別,你說那沒用的幹啥?e配和c/c++一起相提並論嗎?

正式解答:

從語法上講: 不嚴格的說c是c++的子集,也就是c++包含c語言的大部分語法.當然由於c++和c都有不同的版本(ansi/iso),各編譯器對標準支援的程度也不一樣.

c++不一定能百分百相容c.

從程式設計思想上講:

c是典型的指令式程式設計,也就是作者精確的設計出程式的每一個過程.程式一步步的執行.

c++嚴格的講並不是完全的物件導向程式設計,而是支援多重程式設計正規化的語言.用c++來編寫程式可以是命令式的,也可以是面對物件的,甚至可以是函數語言程式設計.(c也可以用特殊技術模似物件導向和其它的程式設計風格,但還是以指令式程式設計為主)

從應用上講:

c一般應用於要求高效,資源有限,與硬體相關度較大貼近底層的環境.如作業系統,驅動程式和嵌入式系統的編寫.

c++執行效率高,又具有良好的軟體工程性.適用於大規模的應用軟體,遊戲引擎的開發.我們所使用的大部分應用軟體和幾乎所有的大型遊戲都是用c++編寫的.

c和c++都是偉大的語言.他們創造出了不計其數的高品質軟體,正是這些軟體,悄悄的改變著我們的生活.在這個新語言層出不窮,人心浮躁的時代.它們不僅僅是一種技術,更是一種信仰!

5樓:後元塞慕晴

c語言與c++的區別有很多:

1,全新的程式程式思維,c語言是程序導向的,而c++是物件導向的。

2,c語言有標準的函式庫,它們鬆散的,只是把功能相同的函式放在一個標頭檔案中;而c++對於大多數的函式都是有整合的很緊密,特別是c語言中沒有的c++中的api是對window系統的大多數api有機的組合,是一個集體。但你也可能單獨呼叫api。

3,特別是c++中的圖形處理,它和語言的圖形有很大的區別。c語言中的圖形處理函式基本上是不能用在中c++中的。c語言標準中不包括圖形處理。

4,c和c++中都有結構的概念,但是在c語言中結構只有成員變數,而沒成員方法,而在c++中結構中,它可以有自己的成員變數和成員函式。但是在c語言中結構的成員是公共的,什麼想訪問它的都可以訪問;而在vc++中它沒有加限定符的為私有的。

4,c語言可以寫很多方面的程式,但是c++可以寫得更多更好,c++可以寫基於dosr程式,寫dll,寫控制元件,寫系統。

5,c語言對程式的檔案的組織是鬆散的,幾乎是全要程式處理;而c++對檔案的組織是以工程,各檔案分類明確。

6,c++中的ide很智慧,和vb一樣,有的功能可能比vb還強。

7,c++對可以自動生成你想要的程式結構使你可以省了很多時間。有很多可用的工具如加入mfc中的類的時候,加入變數的時候等等。

8,c++中的附加工具也有很多,可以進行系統的分析,可以檢視api;可以檢視控制元件。

9,除錯功能強大,並且方法多樣

6樓:晚霞裡的蒲公英

c++和c語言的區別:

c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

c++是c語言的繼承,它既可以進行c語言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。c++語言與c語言的相容程度可使數量巨大的c語言程式能方便地在c++語言環境中複用。

c++的運用:

在科學計算領域,fortran是使用最多的語言之一。但是c++憑藉先進的數值計算庫、泛型程式設計等優勢在這一領域也應用頗多。

c++擁有很多成熟的用於網路通訊的庫,其中最具有代表性的是跨平臺的、重量級的ace庫,該庫可以說是c++語言最重要的成果之一,在許多重要的企業、部門甚至是軍方都有應用。

在該領域,c語言是主要使用的程式語言。但是c++憑藉其對c的相容性,物件導向性質也開始在該領域有一席之地。

7樓:

最大也是最根本的區別:c語言程序導向,c++物件導向也程序導向。c是c++的一個子集,c++是c的超集,兩者有各自擅長的領域。

此外,個人見解:語言沒有優劣之分,各有所長,各有各的應用場景,c語言並非一定比易語言強,易語言也並非就一定不如c語言,每種語言都有它存在的道理。

8樓:

c語言和c++主要有下列區別:

1. c語言程序導向,c++物件導向;

2. c語言比c++更依賴庫函式。例如,以下是完全等價的輸出語句:

c:printf("%d\n",a);

c++:

cout << a << endl;

可以看出,c語言的輸出需依賴庫函式printf。

3. c語言比c++更方便格式化輸出。例如,以下是兩個完全等價的輸出兩位小數的語句:

c:printf("%.2f\n",a);

c++:

cout.setf(ios::fixed);

cout.setf(ios::showpoint);

cout.precision(2);

cout << a << endl;

可以看出,c語言只要一行**即可實現輸出兩位小數,而c++卻要四行**!

9樓:匿名使用者

c++可以看成c語言的超集。c程式不用怎麼修改就能當成c++程式來編譯執行。

c++對c語言有如下擴充:

(1) 增加了類(class)的概念。把程式設計理念由c的程序導向(function oriented)變成了c++的物件導向(object oriented)。這對維護和編寫大型程式是至關重要的。

(2) stl 標準模板庫。裡面有string, vector, list, queue, stack,map等很多有用的類庫。而且這些類庫介面類似,例如都提供了iterator來訪問成員,都有begin(), end(), size()等成員函式。

方便記憶和使用。

(3) 支援模板(template)。例如只要編寫一遍max()函式,就可以適用兩個int, 兩個double,或者兩個char.

更多這方面的資料,可以參見(按由淺到深)"accelerated c++", "c++ primer", "effective c++"等。

10樓:吳鐵騎

c++就是在c語言上改進的高階語言,其實c語言學好了,c++就很好學了

11樓:後流慈思若

嚴格的來說二者還有一些區別

1:c語言是程序導向的語言,c++物件導向的成分的語言,具體表現在於,c語言需要定義變數才將變數定義出來,而c++語言由於類的構造,思考思路是先分析類成員有哪些變數,然後,根據類物件進行操作。c++的類,是典型的物件導向程式設計

2:標準c語言有一個特點,就是定義變數必須在主函式的最前面,定義變數前不能有其他執行語句,否則程式就會報錯。可是c語言發展的今天,一些編譯器比如vc6.

0和vs已經沒有這種特性,只有少數編譯器還保留著標c風格即:變數定義在最前面。這個特性在編寫驅動程式中尤為突出,因為驅動程式只能用標準c語言來寫,如果不按照標c來寫,會發生藍屏,黑屏等無法預知的錯誤。

c++就沒有這些限制

3:定義變數的不同,c語言中如果想定義一個全域性變數,即在主函式和子函式裡面都能訪問的變數,定義全部變數就可以了。而c++雖然也可以定義全域性變數,但是基本上沒人會這麼寫。

一般定義一個類成員便利啊就可以了

c語言和c++發展到今天已經基本上不分家了,倆種語言相輔相成。一邊的編譯器不會嚴格區分c語言和c++的

什麼是程式設計正規化?

12樓:匿名使用者

程式設計正規化(programming paradigm),指的是計算機程式設計的基本風格或典範模式。

如果每個程式設計師都在創造一個虛擬世界,那麼程式設計正規化就是世界觀和方**,他們被置於一種有意識的無意識的方式中。可以知道程式設計是解決問題,解決問題可以有多種觀點和想法,其中通用和有效的模式被總結為正規化。

例如,程式設計中常用的“物件導向程式設計”是一種正規化。由於焦點和思維方式的不同,相對的正規化自然有其自身的聚焦和傾向,因此一些正規化常被用來描述“oriented”。

C語言是用什麼語言編的,C語言程式設計?

c語言是自編譯的,幾乎所有的c語言工具都主要是用c語言寫的,許多c語言工具具有把c語言程式翻譯為多中組合語言的功能,從而實現了跨平台的工作。c語言程式設計?以3名同學為例的 如下 執行結果如下 附原始碼 改為40名同學 include define n 40 void inid long id vo...

程式設計初學者要學習C語言還是VB,程式設計入門是先學VB還是C語言?

個人體會,和你談一下 vb比較好入門,也是一種快速應用開發的語言,但要把vb學精學透徹並不那麼短時間能夠實現。你可以先學習一下vb的體系結構,大致看看就行,可能其中會有些概念不可理解,不要緊,不用去深究,時間長了接觸多了你會理解的。這樣做的目的主要是了解vb適合做什麼,他的程式設計特點和執行機制是什...

計算機程式設計語言C語言,C語言是面向什麼的程式設計語言

科協二期 c語言是一門程序導向 抽象化的通用程式設計語言,廣泛應用於底層開發。c語言能以簡易的方式編譯 處理低階儲存器。c語言是僅產生少量的機器語言以及不需要任何執行環境支援便能執行的高效率程式設計語言。儘管c語言提供了許多低階處理的功能,但仍然保持著跨平臺的特性,以一個標準規格寫出的c語言程式可在...