C++程式設計實踐學材系列(12)——1.2.4 Code::Blocks執行程式的兩種方式
阿新 • • 發佈:2019-01-25
回到系列文章的目錄——[系列文章目錄] 回到本章目錄——[第1章目錄]
1.2.4 Code::Blocks執行程式的兩種方式
微課件1.2展示的程式執行方式,只要連編(Build)成功了,一點執行(Run)按鈕,看結果就可以了。目的達到了。但是程式是如何執行的,作為學習者,我們需要知道“內幕”。作為開發者,尤其是當程式執行結果與預期的不一樣時,需要找到問題究竟出在什麼地方。
Code::Blocks提供了另外一種執行程式的方式——單步執行,可以由程式設計者控制,逐條執行程式。
為了展示這種方式,先看一個程式:
例1.2 一個能賦值、計算和輸出的程式
//例程ch1-2.cpp #include <iostream> using namespace std; int main( ) { int a=0,b; //宣告a、b是整數型別(int)的變數,指定a的初值是0 double r,pi,s; //宣告r、pi、s是雙精度浮點型別(double)的變數, cout<<a<<" "<<b<<endl; b=50; a=b+50; cout<<a<<" "<<b<<endl; b=a*b; a=a/3; cout<<a<<" "<<b<<endl; r=2.5; pi=3.14; s=2*pi*r; cout<<"周長為: "<<s<<endl; cout<<"面積為: "<<pi*r*r<<endl; return 0; }
這個程式有點小長,也沒有多給出註釋。
靜心,看完,你是有感覺的。
中間出現了一些“賦值”,如第9行b=50,請念出聲音來:“b賦值為50”。請再念兩遍,重複是理解的祕訣。
用術語解釋,b=50,就是要將50這個整數賦值給變數b,換句話說,變數b的值成了50。後面的語句,基本都是由賦值和輸出組成的。
你你已經學會的辦法,在Code::Blocks中連編和執行程式,得到的執行結果是:
對於初學者,將程式中第8、11、14、18、19行的輸出語句與執行結果中的五行輸出一一對應起來,這不是一件太難的事。注意到這五個輸出語句最後都會輸出endl,都會換行,所以一行的輸出,對應的是一個輸出語句。
但是,在程式執行中到底發生了什麼?作為程式設計人員,有權利看到“內幕”嗎?怎麼能夠做到?
微課件1.4 程式執行的兩種方式,給出了問題的答案。
初學程式設計,兩種執行程式的方法都要會。我們將逐漸學會程式設計序,在編制程式過程中,根據不同的需要,也能夠根據需要選擇合適的執行方式,檢視程式的執行結果,或者要觀察到執行過程,以滿足找出Bug的需要。
表1.1 對兩種執行程式的方式進行了對比。
| C/C++不能解釋執行,不直觀,所以有些人認為C/C++不適合初學者。然而,從理解計算機和程式設計本質的角度,C/C++對專業學生不可替代。 其實,各種程式設計環境都提供了單步執行之類的功能。這個功能被歸類為除錯工具中的一部分。 在現在的教學中,大多數學生學完程式設計,仍然不會除錯。因為有的教師不講,學生也不用。我的體會是,接觸的晚了,學習者沒有體會到單步執行的好處,就不願意去用這種方式的,儘管聽說過其好處。不去用,這種好處卻體會不到。這是個怪圈。 現在,我將單步執行稱為執行程式的第二種方式,提升了其地位。單執行對於一名開發者而言,配得上這一地位。在剛一接觸程式設計時就會用,自然沒有後面“橫插進來”造成的抵觸。 單步太繁瑣?希望步子大一些。不著急,後面還要介紹設定斷點等功能。圍繞單步執行,還有“組合工具”已經給我們配備。現階段程式不大,先就 Step by step。 |