Re: 計程作業

看板NTUCE-94作者 (PL教育班長)時間24年前 (2001/12/01 17:36), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《latinboy (東邊日出西邊雨)》之銘言: : ※ 引述《latinboy (東邊日出西邊雨)》之銘言: : 題目在課本470頁13題 : do 重復10次 : do i=1,5 : do j=1,5 : 找出i,j座標周圍有幾個活鄰居 : 如果a(i,j)是活的 ,以鄰居個數決定存活與否(2~3活 其他死) : 如果a(i,j)是死的 ,以鄰居個數決定復活與否(3復活) : 將結果丟到雙生陣列(如b() ) : 將雙生陣列(b())print出來 : continue : 然後以雙生陣列為主體,再重復上面的動作一次(即將上面ab互換) : continue 計算活鄰居個數的重點提示。 1.可使用CHARACTER*1 BOARD(5,5)儲存盤面。' '表空格,'X'表有life。 因為BOARD是字元所以可直接輸出。 2.BOARD(I,J)的八個鄰居如下: BOARD(I,J+1),BOARD(I+1,J),BOARD(I+1,J+1),BOARD(I-1,J+1), BOARD(I,J-1),BOARD(I-1,J),BOARD(I-1,J-1),BOARD(I+1,J-1) 3.先檢查鄰居是否在版面範圍內(即檢查陣列駐標是否合理) 再檢查該位址是否有life。 如仍有疑問請參考下列程式片段。NEIGHBORS這個FUNCTION計算 在BOARD中(ROW,COL)位置周圍的life數。 INTEGER FUNCTION NEIGHBORS(BOARD, ROW, COL, DIM) IMPLICIT NONE INTEGER ROW, COL, DIM CHARACTER*1 BOARD(DIM, DIM) INTEGER XDIR(8) INTEGER YDIR(8) DATA XDIR /1, 1, 0, -1, -1, -1, 0, 1/ DATA YDIR /0, 1, 1, 1, 0, -1, -1, -1/ INTEGER I, N, NX, NY N = 0 DO 10 I = 1, 8 C NX = COL + XXXX(X) C NY = ROW + XXXX(X) C IF (XX .XX. X .XXX. XX .XX. XXX .AND. C + XX .XX. X .XXX. XX .XX. XXX) THEN <- 馬賽克處理 C IF (XXXXX(XX, XX) .XX. 'X') THEN C X = X + 1 C ENDIF C ENDIF 10 CONTINUE NEIGHBORS = N RETURN END -- 台灣大學資訊工程系 劉邦鋒 -------------------------- 合理的小考是訓練,不合理的小考是磨練。 -- ※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw) ◆ From: 140.109.224.63 ※ 編輯: pangfeng 來自: 140.109.224.63 (12/01 17:36)
文章代碼(AID): #y2AIT00 (NTUCE-94)
文章代碼(AID): #y2AIT00 (NTUCE-94)