1. 程式人生 > >C++程式設計實踐學材系列(12)——1.2.4 Code::Blocks執行程式的兩種方式

C++程式設計實踐學材系列(12)——1.2.4 Code::Blocks執行程式的兩種方式

回到系列文章的目錄——[系列文章目錄]  回到本章目錄——[第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


回到系列文章的目錄——[系列文章目錄]  回到本章目錄——[第1章目錄]