-1

x と n の 2 つのパラメーターを持つ new-sin という名前の関数を作成しています。関数によって出力される値の分母を計算するために使用しているため、関数内で階乗を定義します。この関数は、x で評価されたべき級数の最初の (n+1) 項を返すことになっています。具体的には、(new-sin x 3) は x - (x^3)/3 を返すはずです! + (x^5)/5!-(x^7)/7!

私のコードは次のとおりです。

(define (new-sin-x x n)
(define (factorial j)
  (if (= j 0) 1 (* j (factorial (- j 1)))))
    (if (= n 0)
     x
    (+ (* (expt -1 n) (/ (expt x (+ 1 (* 2 n))) (factorial(+ 1 (* n 2.0))) (new-sin-x x       (- n 1 )))))))

(new-sin-x 1 3)

(new-sin-x x (- n 1 ) は加法文の外に書くべきなのか、それともそのままでいいのか?

4

2 に答える 2

1

いくつかの構文エラーがあるようです (確かに、括弧の位置が間違っています)。これはうまくいくはずです:

(define (new-sin-x x n)
  (define (factorial j)
    (if (= j 0)
        1
        (* j (factorial (- j 1)))))
  (if (= n 0)
      x
      (+ (* (expt -1 n)
            (/ (expt x (+ 1 (* 2 n)))
               (factorial (+ 1 (* 2.0 n)))))
         (new-sin-x x (- n 1)))))

この種のエラーは簡単に検出できます。

  1. コードを正しくインデントする
  2. 括弧を適切に一致させる
  3. 1 と 2 に役立つ優れた IDE を使用する
于 2013-09-05T22:14:38.840 に答える