[溫老資歷]

[
功能測試]

[檔案下載]
[熱門網站]
[我的興趣]
[
訪客留言
]


 


 
      資料結構作業(90.9-91.1):

 


課程進度表:

週次 日期 單元 週次 日期 單元
1 9/17 資料結構概說 10 11/19 期中考(考試範圍:1-9 1-12題,以QB解題)
2 9/24 資料表示法 11 11/26 陣列與字串(char 2,3)
3 10/1 日間部測驗
(進修部假日)
12 12/3 鍵串列    (char 4)
4 10/8 (進修部測驗)
GWBASIC語法介紹
13 12/10 堆疊與佇列(char 5,6)
5 10/15 指令介紹(設定與迴圈) 14 12/17 遞迴       (char 8)
6 10/22 陣列 15 12/24 樹         (char 9)
7 10/29 檔案、函數與副程式 (Quick BASIC) 16 12/31 排序       (char 12,13)
8 11/5 程式發展與設計 17 1/7 搜尋       (char 15)
9 11/12 C 語言 18 1/14 期末考

* 各位所要的軟體,請上 ftp://140.127.40.36/datastru 的目錄下
* DataStru 目錄下的 bas 檔案均為 gwbasic
程式
*
第一週請閱讀GWBASIC手冊第三章 (10/2 測驗)

(第一週課堂指定五題及本題請於十月一日前完成,並於課前列印繳交,遲交拒收)

一、請以BASIC設計程式繪出:(本題請於十月十日前完成,並列印繳交)

   1    1234567890
         2
          3
           4
            5
             6
              7
               8
                9
        1234567890 
  
   2.    *******
              *
             *
            *
           *
          *
         *******
    3.      A
           BBB
          CCCCC
         DDDDDDD
          EEEEE
           FFF
            G
     4.試設計一程式能將十進位轉成二進位.
     5.試計算1x2+2x3+3x4+4x5+............+20x21

(第二週課堂指定作業請於十月八日前完成,並於課前列印繳交,遲交拒收)
二、請依課堂所發的講義,完成9-6 到 9-12 練習

(第三週課堂指定作業請於十月十五日前完成,並於課前列印繳交,遲交拒收)
、請依課堂所發的講義,完成9-13 到 9-17 練習

(第四週課堂指定作業請於十月廿二日前完成,並於課前列印繳交,遲交拒收)
、簡易程式設計:
   1.寫一程式印出:
      555555555
      544444445
      543333345
      543222345
      543212345
      543222345
      543333345
      544444445
      555555555
    2.年利率6%(即月利率0.5%),月繳10000元,請問十年後本利和為多少?公式A=(1+R)^n
    3.承上題請問幾年,幾月之後本利和為1000000元?
    4.寫一程式印出1到500之間的了質數.
    5.寫一程式印出巴斯卡三角形(至第十層):
             1
            1 1
           1 2 1
          1 3 3 1
         1 4 6 4 1
             .

(第五週課堂指定作業請於十月廿九日前完成,並於課前列印繳交,遲交拒收,
 請閱讀網路教材程式語言第三、四章)

、基本程式設計練習:
    1. 把由1開始的自然數依次寫下去,一直寫到349為止,1234567891011121314........這個數除以3,5,7等三數其餘各為多少?
  2. 有一部隊五人一組時餘3,六人一組時餘4,七人一組時餘3,請問這個部隊最少是多少人?
  3. 輸入一小於65535的正整數,可找出其最長連續數列,該數列的和為此一正整數,例如:56=5+6+7+8+9+10+11, 又如18=3+4+5+6,有些正整數並不能找出連續整數,若找不到時,請印出"找不出該數列"?
  4. 試設計一程式允許使用者輸入二個參數,x,y,求GCD(x,y),其設計介面設計請自行設計.
  5. 有一邊長為n的方陣(1<n<21),輸入n後試以程式印出此一方陣,方陣結構如下,例如n=5時:
    1  3  6 10 15
    2  5  9 14 19
    4  8 13 18 22
    7 12 17 21 24
   11 16 20 23 25

(第六週日間部指定作業)
  由於某些邏輯尚未交待,日間部作業延後一週,作業曰夜間進度一致,進修部11/12-曰間11/13, 上課時請攜帶開學所發之"假數的奧秘'講義,並請課前預習,相關程式參見
float.bas

(第七週課堂指定作業請於十一月十一日前完成,並課前列印繳交,遲交拒收)
六、請寫一程式能處理20位數以下(含小數)的加法.
   (不含小數程式參考add50-1.bas, add50-2.bas)

、試以GWBASIC或VB設計一猜數字或取酒瓶遊戲,或其他類似遊戲的程式,(參考程式 light.exe)!

八、所謂摩術方塊是指一奇數的數字方格,該方格縱、橫或對角的和均相等.例如 5x5 的方塊數字排列如下:

    17 24  1  8 15
    23  5  7 14 16
     4  6 13 20 22
    10 12 19 21  3
    11 18 25  2  9   

九、寫一程式在畫面上將52張樸克牌合成
家。
   (參考程式
poke-1.bas, poke-2.bas)

(第八週課堂指定作業請於十一月十八日前完成,並課前列印繳交,遲交拒收)

十、輸入一不大於七位數的阿拉伯數字,請改為大寫國字.

十一、仿間目前流通的錢幣有 50,10,5,1,0.5 元等五種,小明口袋中有三個零錢請問他可能有多少錢?共有多少種組合?(參考程式 coin-1.bas,coin-2.bas)

十二、請設計一程式輸入西元年份及月份之後,能印出該月份之月曆.
1.西元一年一月一日為星期一
2.現行曆法為四年一閏,逢百年不閏,但逢四百年又閏.
(參考程式 calendar.bas)

十三、請設計一程式能印出 1! 到 50!.(參考程式 factor.bas)

(14-16題用Quick BASIC,請於十一月二十五日前完成,並列印繳交)

十四就第三週上課所提的猜數遊戲(?A?B),請寫一由電腦產生一4位1∼6不重覆的數,讓使用者猜,使用者猜著後並列示次數及正確答案.(參考程式 mastermd.bas)

十五、在ftp://140.127.40.36/datastru目錄下,有一檔案score.txt,此檔案中包括有十位學生的三科成績,請分別用VB和GWBASIC程式,在其三科成績之後計算出總分,整理好的檔案score1.txt成績欄位必需對齊.請留意該檔中每行資料後面都存有空白字元.

六、下列有几位人士的姓名與電話資料,參考課本ch4-6,請寫一程式,包括含檔案的建立(data.dat),資料的搜尋、插入、刪除.
     Nancy   03-1234-5678
     Ann     03-8765-4321
     Tom     04-2435-4657
     Candy   06-2365-1242
     Jerome  07-3838-3388

(17-19題用C,請於12 月 24日前完成,並列印繳交)
七、請以一程式為範例說明,何謂全域變數(global variable)?何謂區域變數(local variable)?

八、請以一程式為範例說明,何謂傳址呼叫(call by address)?何謂傳值呼叫(callby value)?

十九、請用C語言寫一程式,該程式含有二個副程式 MID(string,m,n) 及 RIGHT(string,n), 這二個副程式功能和培基 BASIC 的 mid$(string$,m,n) 及 RIGHT$(string$,n) 功能相似.

(20-21題用C,請於12 月 31 日前完成,並列印繳交,日間部請於1月 3日前完成,並列印繳交)

二十、請依課堂所發的講義用C語言寫一九九乘表程式.

 

二十一、用C語言寫一計算總和的程式,程式執行後輸入一N值,並能計算1至N的總和.

 (22-23題用C or BASIC,請於1 月 7 日前完成,並列印繳交)

二十二、 (參考課本CH4-6.c)請將下列資料記錄到指標的串列中,並追蹤列印出來,Sun、Mon、Tue、Wed、Thu、Fri、Sat

二十三、利用堆疊請寫一程式先發五張手牌,隨後電腦亂數發牌,比較牌面大小,如果手牌較大則將亂數牌收入手牌之中,反之,手牌較亂數牌小時,移除手牌中的小牌.請先下載 satck.exe 觀察該程式係比較數字大小; 另一程式stack-1.exe 將數字印成樸克牌,為方便花色列印,花色大小次序為: 黑桃>梅花>方塊>紅桃; 牌面: A>k>Q>T>9.....>2.

 

二十、參考課本5-51頁,寫一程式將中序運算式(不含括號)轉成後序運算式。
  (參考程式
opration.bas,qb-op-1.bas,qb-op-2.bas 後面二個為QBASIC程式)

二十五、在程式內輸入一迷宮,如maze.txt所示,依課本5-62頁所提方式印出1,2,3的迷宮路徑,並讓老鼠由出口,從己尋出的3號路徑走回入口。
    (參考程式
maze.bas)

二十六、請分別用C或QB 設計恆河之塔遞迥的移錢幣過程
    (參考程式
hanoi-1.bas, hanoi-2.bas)

二十七、請用遞迥設計N 個數字組成的不同排列,設計一程式輸入N (1<N<10),然後印出1~N的所有排列情形.例如輸入3則印出:123,132,213,231,312,321。

二十八、請用遞迥設計2的N次方數字方塊,方塊數字排列順序教都依:左上->右上->右下->左下的次序排列,例如輸入3時方塊形狀如下:

 1  2  5  6 17 18 21 22
 4  3  8  7 20 19 24 23
13 14  9 10 29 30 25 26
16 15 12 11 32 31 28 27
49 50 53 54 33 34 37 38
52 51 56 55 36 35 40 39
61 62 57 58 45 46 41 42
64 63 60 59 48 47 44 43
     

二十九、在rowdata.dat中有3000筆資料,請分別用簡單、氣泡、謝耳等三種排序法,將資料存至sort1.dat,sort2.dat,sort3.dat等三個檔案中,並分別註明各種排序法的比較及搬移次數,並印出各方法的執行時間,俾便比較效率.

-------------------------------------------------------------

* 數字方陣的程式請參考 numblock.bas
* 謝耳排序(Shell sort)
shl-sort.bas

-------------------------------------------------------------
(全部作業二十三題請於元月十二日前完成,裝訂成冊繳交)

 

三十一、N皇后的問題在N=8時,共有92組解答,請參考課本ch8_8.c將全部的解找出來.

三十二、參照課本10-34頁,請在桃園和台中間加入大甲,此其中桃園至大甲105,大甲至台中25,再參考課本10-37頁,用Dijkstra 方法求最短路徑,並將鄰接陣列和計算過程印出來.

三十三、N 個數字組成的不同排列,設計一程式輸入N (1<N<10),然後印出1~N的所有排列情形.例如輸入3則印出:123,132,213,231,312,321。

三十四、有一串數据10,25,15,30,26,20,29,35,40,27,28,22,試將上述數据建立二元樹再循中序走訪將此二元數列印出(即二元數排序法),並請印出此一二元樹前序及後序走訪結果。

三十五、f(x)=x*x,試分別以二分法及牛頓法求出x值,此一方程式即求平方根,程式執行後先輸入f(x)值,再分別以上述二種方法,求出x值.