發表文章

目前顯示的是 5月, 2007的文章

程式概念闡述:輸出資料以直條圖顯示

有一個1維陣列 arr = { 1, 3, 2, 4} 我們通常會想這樣輸出 [0] * [1] *** [2] ** [3] *** 但是你是可以這樣輸出的 [0] [1] [2] [3] * * * *   * * *   *   *       * 演算法描述: 一行輸出的時候,就掃描陣列元素然後判斷是否輸出星號 每次遞減元素內容直到所有的數字都小於等於0 我們還需要一個flag來判斷是不是還有星號要輸出 Pseudocode Code: putstring [header] set flag = 1 while flag != 0 then  set flag = 0  for i = 0 ~ arr.length then   if arr[i] = 0 then    set arr[i] = arr[i] - 1    set falg = 1   else    putchar [space]  putchar [nextline] putstring [tailer] 運作演示: 開始前,flag設為1。 第一行輸出表頭 結果 [0] [1] [2] [3] 第二行輸出時 flag != 0 then 設定flag 為 0 arr[0] != 0 then 輸出星號 並將arr[0]減一 , 設定flag為 1 arr[1] != 0 then 輸出星號 並將arr[1]減一 , 設定flag為 1 arr[2] != 0 then 輸出星號 並將arr[2]減一 , 設定flag為 1 arr[3] != 0 then 輸出星號 並將arr[3]減一 , 設定flag為 1 結果 (描述省略兩個*之間輸出的空白) [0] [1] [2] [3] * * * * 第三行輸出時 flag != 0 then 設定flag 為 0 arr[0] == 0 then 輸出空白 arr[1] != 0 then 輸出星號 並將arr[1]減一 , 設定flag為 1 arr[2] != 0 then 輸出星號 並將arr[2]減一 , 設定flag為 1 arr[3] != 0 then 輸出星號 並將arr[3]減一 , 設定flag