課題として、FORTRAN コードに関係する作業をいくつか与えられましたが、唯一の問題は、まだ教えられていないため、何が起こっているのか完全にはわからないため、Java に変換しようとしました。それを把握しようとする。以下は FORTRAN コードです。
L1: DO 20 I = 1, 512
L2: SUM(I) = 0
L3: DO 40 J = 1, I
L4: 40 SUM(I) = SUM(I) + 1
L5: 20 CONTINUE
L2 と L4 はどちらもマシン サイクルを要し、ループが完了するまでにかかる時間を計算する必要があるという考えです。以下は、私が望む値を得るのに少なくともかなり近いと思う私の Java です。
public static void main(String[] args) {
int cycles = 0;
for(int i = 1; i < 512; i++){
cycles = cycles + 1;
for(int j = 1; j < i; j++){
cycles = cycles +1;
}
}
System.out.println(cycles);
}
これは正しいと思いますか?どんな助けでも大歓迎です。数学的に考えてみたところ、別の答えが得られたので(どちらも近いですが)、どちらが良いかわかりません。
編集: FORTRAN を Java に直接移植しようとしているのではなく、Java を使用して上記のサイクル時間を計算するだけであることを明確にしたいと思います。
編集 2:配列を作成しようとしているのではなく、ループ中に発生したサイクルのみを計算します。L2 と L4 の両方の行でサイクルが発生するため、FORTRAN ループが行うことではなく、発生するサイクルを把握するために Java のみで交換しました。