この問題では、スキーム コードを作成するための参照として C コードを使用する必要があります。
#include <stdio.h>
const double PI = 3.14159265;
double areac(double d) {
double a;
a = PI*(d/2)*(d/2);
return a;
}
double volumec(double d, double h) {
double a, v;
a = areac(d); // call areac() here
v = a*h;
return v;
}
double TotalVolume() {
double v1, v2, v3, v4, v5;
v1 = volumec(1, 1);
v2 = volumec(2, 2);
v3 = volumec(3, 3);
v4 = volumec(4, 4);
v5 = volumec(5, 5);
return v1+v2+v3+v4+v5;
}
void main() {
double v;
v = TotalVolume();
printf("%f\n",v);
}
今私はSchemeでコードを書きました。それは次のとおりです:
(define PI 3.14159265)
(define areac
(lambda(d)
(* PI (expt (/ d 2) 2))))
(write"Areac: ")
(areac 5)
(newLine)
(define volumec
(lambda (d h)
(* (* (expt (/ d 2) 2) h) PI)))
(write"Volumec: ")
(volumec 5 5)
(newLine)
(define TotalVolume
(lambda()
(+ (volumec 1 1) (volumec 2 2) (volumec 3 3) (volumec 4 4) (volumec 5 5))))
(define main
(lambda ()
(* (TotalVolume) 1)))
(write"Total Volume: ")
(main)
(newLine)
ここで、数式を記述する代わりに、 でvolumec
参照areac
してvolumec
から実行する必要があります。