2017-06-14 51 views
0

我有一個代碼,例如:鑑於一行代碼,計數與執行的步驟數

enter image description here

而我所要做的就是以統計代碼的步數在執行期間。

所述指令本身,其中:

enter image description here

提供的解決方案,步驟的總數爲2 + 3 *(2 + 3 * 3 + 2)+ 2 = 43

據我所知,前兩行代碼給了我2,因爲分配計爲一個時間步。然而,我迷失在與while循環的部分。有人能把它分解給我並解釋一下嗎?

+0

不清楚你的問題。你想要什麼? – Ravi

+2

我建議用真實代碼替換圖形。 – guidot

回答

2

我想你應該開始進行分析第二while循環:

while j < 3: 
    total = total + 1 
    j = j + 1 

每次執行這個循環中,你運行兩個assignements。所以每個循環都需要兩個步驟。那麼,讓我們看看有什麼我們可以得到:

  1. J = 0 - > 1步比較+ 2步的assignements
  2. J = 1 - > 1步比較+ 2步的assignements
  3. Ĵ = 2 - > 1步驟,用於比較+ 2步驟爲assignements
  4. J = 3 - > 1個步驟僅用於比較(我們不進入循環)

所以,需要3 * 3 + 1 = 10個步驟來完成這個過程。現在,讓我們來看看更大的while循環:

while i < 3: 
    j = 0 
    while j < 3: 
     ... 
    i = i + 1 

像以前一樣,我們在這裏做10 + 2 + 1 = 13的操作每一個有效的循環,最後一個比較操作。所以,最後,在整個循環中需要3 * 13 + 1。最後,你得到1步的返回,以及初始化的兩步:2 + 3 * 13 + 1 + 1 = 43.

我希望它回答你的問題!

+0

啊完美。謝謝一堆。我現在知道了。 – Maxxx

0
total = 0  #1 
i = 0   #1 
# 3 times the following <O> 
while i < 3  #probably 1 
    j = 0  #1 
    # 3 times the following <I> 
    while j<3 #probably 1 
     total = total + 1 #1 
     j = j + 1 #1 
    # </I> 
    i = i+1 #1 
</O>  
return total #1 
  • I:3 *(1 + 1 + 1)= 9
  • ○:3 *(1 + 1 + 9 + 1)= 36
  • 所有:1 + 1 + 36 +1 = 39

這是一個典型的帶有彙編代碼的微控制器,在我看來它不適用於python或任何其他更高級的語言。 它似乎是出於教導的原因。

對我來說,目前還不清楚,爲什麼內環應該採取3個週期(同時和2分配與加)和外循環有論文3 * 3,需要4以上(幾乎相同的3條語句)

更多的幫助,你只能從老師那裏得到,誰給你的任務。