ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.3951273 除算がなぜかできません(pascal)
質問者:rurur フィボナッチ数列の連続する項の差の比 
z(n) = { f(n-1) - f(n-2) } / { f(n) - f(n-1) } 、
これのz(n-1),z(n)の差の絶対値がある定数以下になった時(100項まで)に計算を終了するプログラムを作ったのですが、何度コンパイルしても上の式の除算部でエラーが起きてしまいます。
どこがおかしいのかご教授ください。

program Toi3 (input,output);

const dif = 1.0 * exp(-6);

var n : integer;
result : real;

function f(n:integer):integer;
begin
if(n>=0)and(n<=1) then f:=1
else f:=f(n-1)+f(n-2);
end;{f}

function z(n:integer):real;
begin
z := {f(n-1) - f(n-2)}/{f(n)-f(n-1)}
end;

begin
n:=2;
while (n=100) or (result<dif) do
begin
n:=n+1;
result:= abs(z(n)-z(n-1))
end;
if n=100 then
begin
result:= abs(z(100)-z(99));
if result<dif then
begin
writeln('収束した')
end
else
begin
writeln( z(100),'収束しなかった')
end
end
else
begin
writeln('収束した')
end
end.

エラー: 17 z := {f(n-1) - f(n-2)}/{f(n)-f(n-1)}
E 18460--------------------------------^--- Replaced '/' with a identifier
In function z:
w 18270 variable n is never used
困り度:
  • 困っています
質問投稿日時:
08/04/15 17:49
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.2 数式をグループ化して優先順位を明示するために使われる括弧として {}, [], () など複数の記号を用いるのはあくまで手書きの場合の流儀で,プログラム言語の場合は何重の入れ子の括弧になっていようとも () の記号だけを用いる場合が多いです。

z := (f(n-1) - f(n-2)) / (f(n) - f(n-1))

で試してみてはいかがでしょう。
回答者:jjon-com
種類:回答
どんな人:経験者
自信:参考意見
回答日時:
08/04/15 22:18
この回答へのお礼試した結果ちゃんと作動できました、ご指摘ありがとうございます。

回答良回答10pt

ANo.1 私は純粋なPascalは良く知りませんが、恐らく { と } は 括弧の意味ではないと思いますよ・・・・
Delphiでは{}はコメントです。
回答者:lachesis-r
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:
08/04/15 18:13
この回答へのお礼勘違いしていました、ご指摘ありがとうございます。