-
1 # Error502
-
2 # 山海皆可平z
程式設計是否正確,這個可以分成幾個維度。
首先,程式程式碼是否有語法錯誤。因為c語言是靜態語言,是強型別語言,所以編譯器會告訴你編寫的程式是否能透過編譯。然後,程式程式碼是否有功能錯誤。這個需要實際測試功能,做測試用例。透過測試用例才檢查你的程式是否達到預期效果。一般在進入開發之前,都會做測試用例評審。最後,程式程式碼是否有效能問題。如果沒有功能性問題,符合設計要求,可以實現預期的功能需求。那麼接下來就是效能問題了,主要是在資料量、併發量增長的情況下,程式是否會變得異常,比如說執行緩慢,響應速度明顯下降。綜上所述,簡單來講經過這三個步驟,基本可以檢驗自己的程式設計是否正確。
以上是我的回答。
-
3 # BWanger軟體開發達人
檢驗的方法有很多,主要介紹以下三種:
畫流程框圖,標註重要結點並做驗證程式用條件編繹:分發行版與除錯版兩種版本用IDE的DEBUG模式及TRY/CATCH以下分別介紹:
1,畫流程框圖,標註重要結點並做驗證程式
軟體開發者要養成畫流程圖的習慣。透過畫流程圖,能夠對邏輯運算、主要演算法、最終輸出方式等有一個全面的掌握,使得很容易從顯示的結果,得出正確與否的結論。
很多人不劃流程圖,認為浪費時間,這是大錯而特錯的。做大型程式,一般開發、維護時間大致持續5~10年,甚至更多。人員在流動,沒有流程圖,後邊的人根本無法接手,無法明白程式的真正含義。到最後,系統再也無法更新了。如下圖的一元二次方程演算法流程圖。
2,用條件編繹:分發行版與除錯版兩種版本
除錯版包括中間結果顯示及演算法驗證顯示,便於跟蹤程式執行的正確性。發版行只寫原始碼,無中間結果跟蹤。我們在程式設計時,都會在h檔案中定義這樣一組宏定義:
#define DEBUG_VER 0x55//除錯版
#define RELEASE_VER 0x55//發行版
#define DEBUG_RELEASE DEBUG_VER
定義DEBUG_RELEASE為除錯版本。
在程式設計時,如要某個位置顯示執行中間結果資訊,用預處理條件編繹語句:
#if DEBUG_RELEASE==DEBUG_VER
//寫你要在螢幕輸出的內容
//printf(”valueN=d%”,i);
//或者,寫結果驗證程式。如上圖的一
//元二次方程,把解代入,兩端相等,
//就是正解。
#else
//寫發行版軟體
#endif
這樣,在軟體除錯完成後,再設為發行RELEASE版。
3、用IDE的DEBUG模式及TRY/CATCH
當選擇DEBUG方式編繹時,用Trace語句顯示的字串資訊,會顯示在output視窗中,類似於printf語向。
或者用Try/Catch語句。特別適合於檔案的開啟/讀寫發生異常時。
-
4 # 編碼之道
這個問題的本質是一個關於軟體測試的問題,即如何測試軟體?所以我先介紹下軟體測試的通則,然後再針對C語言做些說明。
根據測試策略,主要有兩種。一是單元測試,即把整個軟體系統根據功能分為不同的單元,然後對各個單元進行測試;另外一種是整合測試,即把整個軟體系統看做一個整體進行測試。
針對不同的測試策略,又有多重不同的測試方法,比如:
1、黑盒測試,即透過資料輸入並觀察資料輸出,對比輸出值與期待值的差異度來判斷軟體內部功能是否正確的一種方式。黑盒測試將被測軟體軟體內部視為不可見的黑盒,測試人員不需要知道軟體內部的工作過程與實現原理。
2、白盒測試,白盒測試是相對於黑盒測試的另一種測試方法,它假設測試人員知道軟體內部的工作過程與實現原理,甚至還可以檢視原始碼,目的是為了更深刻的認識軟體,然後再根據對軟體的認識進行有針對性的測試,以便更高效的發現問題。
3、靜態測試,即透過靜態分析的方法測試軟體,它主要透過軟體的靜態的測試程式中演算法是否正確,計算方式是否正確等手段完成測試。
4、動態測試,是與靜態測試方法向對應的一種測試方法,因為它的主要目的是檢測軟體執行中出現的問題,所以被稱之為動態測試。它的目的是檢測軟體執行是否正確,功能是否完善,效率是否滿足要求等。
以上方法適合於所有語言,針對題主說的C語言,如果你寫的是一些大型程式,可能會用到上面介紹的這些方法的組合;如果只是學習或者一些簡單的程式,你可以寫根據編寫的程式的功能寫一些測試用例,然後透過執行這些測試用例來檢測你的程式是否正確。
下面是一個簡單的例子,有一個comapre函式,為了測試它的正確性,針對三種情況寫了不同的測試用例,透過執行測試用例發現在a=b的情況下程式執行不正確。如下圖:
對於更復雜的情況只需要編寫更多的測試用例即可。
-
5 # 朝海暖春
如果語法錯誤,稍微好的程式設計軟體會在錯誤的語句上出現特殊標記,並在螢幕下方提示出現錯誤語法的地方,還有愈發的錯誤原因。
當沒有語法錯誤是,你就可以看到程式初始執行的效果,你需要按照介面提示將所有功能進行測試,檢查程式是否滿足條件。如果有功能沒有達到,屬於程式功能不全缺陷,也就是你的部分程式碼未被執行或者沒有編寫
該圖所用程式程式碼相對複雜,初學者縮編程式碼會相對簡單在科技高度發展的今天,計算機在人們之中的作用越來越突出。而c語言作為一種計算機的語言,我們學習它,有助於我們更好的瞭解計算機,與計算機進行交流,因此,c語言的學習對我們尤其重要。
在這個星期裡,我們專業的學生在專業老師的帶領下進行了c語言程式實踐學習。在這之前,我們已經對c語言這門課程學習了一個學期,對其有了一定的瞭解,但是也僅僅是停留在瞭解的範圍,對裡面的好多東西還是很陌生,更多的在運用起來的時候還是感到很棘手,畢竟,萬事開頭難嘛。
上機實驗是學習程式設計語言必不可少的實踐環節,特別是c語言靈活、簡潔,更需要透過程式設計的實踐來真正掌握它。對於程式設計語言的學習目的,可以概括為學習語法規定、掌握程式設計方法、提高程式開發能力,這些都必須透過充分的實際上機操作才能完成。
學習c程式設計語言除了課堂講授以外,必須保證有不少於課堂講授學時的上機時間。因為學時所限,課程不能安排過多的統一上機實驗,所以希望學生有效地利用課程上機實驗的機會,儘快掌握用c語言開發程式的能力,為今後的繼續學習打下一個良好的基矗為此,我們結合課堂講授的內容和進度,安排了12次上機實驗。課程上機實驗的目的,不僅僅是驗證教材和講課的內容、檢查自己所編的程式是否正確,課程安排的上機實驗的目的可以概括為如下幾個方面:
1.加深對課堂講授內容的理解
課堂上要講授許多關於c語言的語法規則,聽起來十分枯燥無味,也不容易記住,死記硬背是不可取的。然而要使用c語言這個工具解決實際問題,又必須掌握它。透過多次上機練習,對於語法知識有了感性的認識,加深對它的理解,在理解的基礎上就會自然而然地掌握c語言的語法規定。對於一些內容自己認為在課堂上聽懂了,但上機實踐中會發現原來理解的偏差,這是由於大部分學生是初次接觸程式設計,缺乏程式設計的實踐所致。
學習c語言不能停留在學習它的語法規則,而是利用學到的知識編寫c語言程式,解決實際問題。即把c語言作為工具,描述解決實際問題的步驟,由計算機幫助我們解題。只有透過上機才能檢驗自己是否掌握c語言、自己編寫的程式是否能夠正確地解題。
透過上機實驗來驗證自己編制的程式是否正確,恐怕是大多數同學在完成老師作業時的心態。但是在程式設計領域裡這是一定要克服的傳統的、錯誤的想法。因為在這種思想支配下,可能你會想辦法去"掩蓋"程式中的錯誤,而不是儘可能多地發現程式中存在的問題。自己編好程式上機除錯執行時,可能有很多你想不到的情況發生,透過解決這些問題,可以逐步提高自己對c語言的理解和程式開發能力。
2.熟悉程式開發環境、學習計算機系統的操作方法
一個c語言程式從編輯、編譯、連線到執行,都要在一定的外部操作環境下才能進行。所謂"環境"就是所用的計算機系統硬體、軟體條件,只有學會使用這些環境,才能進行程式開發工作。透過上機實驗,熟練地掌握c語言開發環境,為以後真正編寫計算機程式解決實際問題打下基矗同時,在今後遇到其它開發環境時就會觸類旁通,很快掌握新系統的使用。
回覆列表
在科技高度發展的今天,計算機在人們之中的作用越來越突出。而c語言作為一種計算機的語言,我們學習它,有助於我們更好的瞭解計算機,與計算機進行交流,因此,c語言的學習對我們尤其重要。
在這個星期裡,我們專業的學生在專業老師的帶領下進行了c語言程式實踐學習。在這之前,我們已經對c語言這門課程學習了一個學期,對其有了一定的瞭解,但是也僅僅是停留在瞭解的範圍,對裡面的好多東西還是很陌生,更多的在運用起來的時候還是感到很棘手,畢竟,萬事開頭難嘛。
上機實驗是學習程式設計語言必不可少的實踐環節,特別是c語言靈活、簡潔,更需要透過程式設計的實踐來真正掌握它。對於程式設計語言的學習目的,可以概括為學習語法規定、掌握程式設計方法、提高程式開發能力,這些都必須透過充分的實際上機操作才能完成。
學習c程式設計語言除了課堂講授以外,必須保證有不少於課堂講授學時的上機時間。因為學時所限,課程不能安排過多的統一上機實驗,所以希望學生有效地利用課程上機實驗的機會,儘快掌握用c語言開發程式的能力,為今後的繼續學習打下一個良好的基矗為此,我們結合課堂講授的內容和進度,安排了12次上機實驗。課程上機實驗的目的,不僅僅是驗證教材和講課的內容、檢查自己所編的程式是否正確,課程安排的上機實驗的目的可以概括為如下幾個方面:
1.加深對課堂講授內容的理解
課堂上要講授許多關於c語言的語法規則,聽起來十分枯燥無味,也不容易記住,死記硬背是不可取的。然而要使用c語言這個工具解決實際問題,又必須掌握它。透過多次上機練習,對於語法知識有了感性的認識,加深對它的理解,在理解的基礎上就會自然而然地掌握c語言的語法規定。對於一些內容自己認為在課堂上聽懂了,但上機實踐中會發現原來理解的偏差,這是由於大部分學生是初次接觸程式設計,缺乏程式設計的實踐所致。
學習c語言不能停留在學習它的語法規則,而是利用學到的知識編寫c語言程式,解決實際問題。即把c語言作為工具,描述解決實際問題的步驟,由計算機幫助我們解題。只有透過上機才能檢驗自己是否掌握c語言、自己編寫的程式是否能夠正確地解題。
透過上機實驗來驗證自己編制的程式是否正確,恐怕是大多數同學在完成老師作業時的心態。但是在程式設計領域裡這是一定要克服的傳統的、錯誤的想法。因為在這種思想支配下,可能你會想辦法去"掩蓋"程式中的錯誤,而不是儘可能多地發現程式中存在的問題。自己編好程式上機除錯執行時,可能有很多你想不到的情況發生,透過解決這些問題,可以逐步提高自己對c語言的理解和程式開發能力。
2.熟悉程式開發環境、學習計算機系統的操作方法
一個c語言程式從編輯、編譯、連線到執行,都要在一定的外部操作環境下才能進行。所謂"環境"就是所用的計算機系統硬體、軟體條件,只有學會使用這些環境,才能進行程式開發工作。透過上機實驗,熟練地掌握c語言開發環境,為以後真正編寫計算機程式解決實際問題打下基矗同時,在今後遇到其它開發環境時就會觸類旁通,很快掌握新系統的使用。