[問題] C#轉Fortran

看板C_Sharp (C#)作者 (就是愛實況)時間18年前 (2007/01/10 01:11), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
using System; class Class1 { static int[,] Z; //宣告二維陣列Z,在method外宣告,遞迴時使用比較方便 static bool[,] Z2; //計算沙崩規模所需要的二維陣列,理由同上 static int disappe; //計算漏沙次數,理由同上 [STAThread] static void Main(string[] args) { //步驟(1) 初始化 Z=new int[50,50]; //50*50二維陣列 Random rd=new Random(); //宣告rd為random類別 for(int i=0;i<50;i++) //跑Z的x軸 for(int j=0;j<50;j++) //跑Z的y軸 Z[i,j]=rd.Next(1,5); //亂數選取1~4放入Z的元素中 //步驟(2)滴沙 int x,y; //宣告x跟y,要作為Z的X軸跟Y軸使用 int n=0; //宣告m計算滴沙次數 while(n<50000) //n小於5萬才繼續執行步驟二三 { do { x=rd.Next(50); //宣告x,並隨機取0~49中的數字 y=rd.Next(50); //宣告y,並隨機取0~49中的數字 Z[x,y]++; //該座標+1 n++; //滴沙次數加1 }while(Z[x,y]<5 && n<50000); //該座標未達到沙崩條件而且滴沙小於5萬次,則繼續滴沙 //步驟(3) 沙崩 & 步驟(4) 漏沙 if(Z[x,y]>=5) //座標達沙崩條件,才執行沙崩 { Z2=new bool[50,50]; //一樣是50*50 disappe=0; //漏沙統計歸0 slide(x,y); //呼叫「沙崩&漏沙」方法 //步驟(5) 輸出----PS:因為我沒有要存到檔案,所以採逐次輸出到畫面上 int eqsize=0; //統計沙崩規模 for(int i=0;i<50;i++) //跑Z2的x軸 for(int j=0;j<50;j++) //跑Z2的y軸 if(Z2[i,j]) //該點沙崩過 eqsize++; //統計加1 Console.WriteLine(n+"\t"+x+"\t"+y+"\t"+eqsize+"\t"+disappe); //輸出,\t為Tab推齊 } } } static void slide(int x,int y) //靜態、不回傳值的「沙崩&漏沙」方法 { if(Z[x,y]>=5) //座標達沙崩條件,才執行沙崩 { Z[x,y]-=4; //該座標減4 Z2[x,y]=true; //表示該點沙崩過 if(x+1<50) //判斷右邊座標是否超出陣列 { Z[x+1,y]++; //座標加1 slide(x+1,y); //呼叫本身「沙崩&漏沙」方法----PS:遞迴 } else disappe++; //漏沙次數加1 if(x>0) //判斷左邊座標是否超出陣列 { Z[x-1,y]++; //座標加1 slide(x-1,y); //呼叫本身「沙崩&漏沙」方法----PS:遞迴 } else disappe++; //漏沙次數加1 if(y+1<50) //判斷上面座標是否超出陣列 { Z[x,y+1]++; //座標加1 slide(x,y+1); //呼叫本身「沙崩&漏沙」方法----PS:遞迴 } else disappe++; //漏沙次數加1 if(y>0) //判斷下面座標是否超出陣列 { Z[x,y-1]++; //座標加1 slide(x,y-1); //呼叫本身「沙崩&漏沙」方法----PS:遞迴 } else disappe++; //漏沙次數加1 } } } 這是我手邊現有的一個C#程式 我想把它轉成Fortran 有什麼方法嗎? 還是一定要自己來? 我完全不懂C#... 所以想找高手幫忙 感激不盡! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.126.31.253

01/10 08:14, , 1F
語言這種東西 慢慢看還是看的懂得
01/10 08:14, 1F

01/10 14:34, , 2F
阿彌陀佛 Fortran很舊了ㄟ 真的會有人寫這種轉換工具嗎
01/10 14:34, 2F
文章代碼(AID): #15eyo-BG (C_Sharp)
文章代碼(AID): #15eyo-BG (C_Sharp)