電子書籍の厳選無料作品が豊富!

下記のパスカルからJAVAに変えるのですが、わからなくてこまってます。よろしくおねがいします。

{ 宣言部 }
type ZISU= array[0..99] of real;
var n,k :integer;
p,VALREAL,VALIMAG: ZISU;
{
EXTERNAL procedure EVAL ( p:ZISU; n:integer; var VALREAL,VALIMAG:ZISU );
}
{$I B:EVAL.SRC}

{ メ イ ン プ ロ グ ラ ム }
begin
write(lst,'Input vector');
writeln(lst);
read(n);
readln;
write(lst,' n=',n);
writeln(lst);
for k:=0 to n-1 do
begin
read(p[k]);
readln;
write(lst,p[k]);
writeln(lst)
end;
EVAL(p,n,VALREAL,VALIMAG);
writeln(lst);
writeln(ist);
write(lst,'Output vector [THE DISCRETE FOURIER TRANSFORM]');
writeln(lst);
for k:=0 to n-1 do
begin
write(lst,' ',VALREAL[k],'+(',VALIMAG[k],'*i)');
writeln(lst)
end
end.

A 回答 (1件)

何がどのようにわからないのかわかりませんが、pascalが解読できないと言う前提で少し説明します。




{ 宣言部 }
type ZISU= array[0..99] of real;
var n,k :integer;
p,VALREAL,VALIMAG: ZISU;

上記は型宣言とグローバル変数の定義です。
ZISU 実数型で0~99の100個の配列変数の型宣言です。
n,k : 整数型です。
p,VALREAL,VALIMAG: ZISU型の配列変数です。

{
EXTERNAL procedure EVAL ( p:ZISU; n:integer; var VALREAL,VALIMAG:ZISU );
}

上記はコメントです。


{$I B:EVAL.SRC}
インクルードファイルの宣言です。


{ メ イ ン プ ロ グ ラ ム }
begin
write(lst,'Input vector');
writeln(lst);

プリンタに'Input vector'と印刷します

read(n);
readln;

数字を読み込んで改行キー待ちです。

write(lst,' n=',n);
writeln(lst);

読み込んだ数字を印刷します。

for k:=0 to n-1 do
begin
read(p[k]);
readln;
write(lst,p[k]);
writeln(lst)
end;

n回ループで数字を配列変数pに順次読み込んでいきます。
読み込んだ数字は1個ずつプリンタに印字します。

EVAL(p,n,VALREAL,VALIMAG);

外部手続きを実行します。

writeln(lst);
writeln(ist);

2行プリンタを改行します。

write(lst,'Output vector [THE DISCRETE FOURIER TRANSFORM]');
writeln(lst);

タイトル行をプリンタに印刷します。

for k:=0 to n-1 do
begin
write(lst,' ',VALREAL[k],'+(',VALIMAG[k],'*i)');
writeln(lst)
end

n個分のデータをreal と imag 部に分けて印刷します。 

end.

お役に立つかどうかわかりませんが、アドバイスまで。
    • good
    • 0

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