プロが教えるわが家の防犯対策術!

FORTRAN初心者で理解できずに困っています。。

FORTRANで書かれたプログラムをJavaに変換したいのですが、自分なりにしてみたらエラーエラーエラーでした。

配列が一番間違ってるみたいに思えます。

たとえば、

REAL X(50,50)

AX=X(1,MM)-X(1,1)

はJavaではどのように書くのですが??
また、参考になりそうなサイトなどあれば教えてください。
どうか、よろしくお願いいたします。

A 回答 (3件)

>REAL X(50,50)


double X[][]= new double[50][50];

>AX=X(1,MM)-X(1,1)
AX=X[1][MM]-X[1][1];

この回答への補足

FORTANで

DO 10 I=1,2+N
  :
  :
10 CONTINUE

ってあったりするんですけど、Javaではどう書けばいいのでしょうか?
forかなぁって思ったりしてるんですけど、自信がないので教えていただけると助かります。
よろしくお願いします。

補足日時:2005/12/21 19:18
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます!!
javaの配列は0からとかかいてあったので
AX=X[0][MM]-X[0][0];
ってしてるんですけど、こーいうのは関係ないでしょうか・・?
質問になってしまいますので、追加で質問させていただきます。
また、教えていただける時はよろしくお願いします!!
本当にありがとうございました!!

お礼日時:2005/12/21 19:18

>javaの配列は0からとかかいてあったので


そうですね。
double x[10];
としたときには、
x[0]~x[9]になります。そのように合わせる必要があります。
このような変換作業でそれが面倒な時には
double x[11];
として
x[1]~x[10]を使う(x[0]は利用されない)というような方法もあるかと思います。

>forかなぁって
そうですね。
for(int i=1;i>=2+N;i++){

}
てな感じになると思います。
初期値や条件はそれぞれ適当に変える必要があるかもしれませんね。(前述)

この回答への補足

何度も追加質問お許しください。
また、躓いてしまいました。

 IF(I.GT.1.AND.I.LT.2+N)THEN
IF(J.EQ.1.AND.J.EQ.MM)THEN
GO TO 40
ELSE
  :
   :
  ENDIF
 ENDIF
40 CONTINUE

というのを、Javaで表したいのですが、GO TO 40の書き方が分かりません。。

 if(i>1&i<2+N){
  if(j=1&j=MM){
   ?????????
    else{
:
:
}
}

&の使い方もあってるのか分からないので教えていただける時はよろしくお願いいたします。

  

補足日時:2005/12/24 16:20
    • good
    • 0
この回答へのお礼

ご回答ほんとにありがとうございます!!
forを終わらせる位置が間違っていたのが分かりました!!
また少しプログラムを進めることができました。

お礼日時:2005/12/24 16:19

>GO TO 40の書き方が分かりません。


javaでは、gotoは、予約語ですが使えません。
でもブロックラベルによって同様のことができます。
例えば
Label40:
if(){
if(){
break Label40;
}
}
のように外側のIFを脱出できます。
forなどのループでも同様に使えます
Label40:
for(){
for(){
break Label40;
}
}
の様に外側のループを脱出したり
あるいは
continue Label40;
の様にループの継続(戻り点の指定)もできます。
こうしたラベルを指定しない
break;
continue;
は、一番内側のループに作用します。
結局具体的にどう書くかは、その包括される構造によるのでここでは直接具体的には書けません。

条件のANDは、基本的には && を使います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!