例題 7.1 実数値 r を入力し, 数列
ex71.c |
---|
#include <stdio.h> int main(void) { int i; double a; double r; printf("r = "); scanf("%lf", &r); /* r を入力 */ a = 1.0; printf("a = %.10f¥n", a); /* a1 */ for (i=2; i<=9; i++) { /* a2〜a9 */ a = r * a; printf("a = %.10f¥n", a); } return 0; } |
実行例
abc12345@KSKS04DT00 ~/c7 $ ./a r = 0.7 a = 1.0000000000 a = 0.7000000000 a = 0.4900000000 a = 0.3430000000 a = 0.2401000000 a = 0.1680700000 a = 0.1176490000 a = 0.0823543000 a = 0.0576480100 |
課題 7.1
実数 x を入力し, x の平方根 r をニュートン法により求めるプログラム
newton.c を作成せよ.
r の結果は小数点以下10桁まで出力すること.
また, r の値と合わせて r2 の値も出力すること.
(ニュートン法による平方根の計算法)
次のような結果が得られることを確認せよ
$ ./a x = 2 r = 1.0000000000, r*r = 1.0000000000 r = 1.5000000000, r*r = 2.2500000000 r = 1.4166666667, r*r = 2.0069444444 r = 1.4142156863, r*r = 2.0000060073 r = 1.4142135624, r*r = 2.0000000000 r = 1.4142135624, r*r = 2.0000000000 r = 1.4142135624, r*r = 2.0000000000 r = 1.4142135624, r*r = 2.0000000000 r = 1.4142135624, r*r = 2.0000000000 |
$ ./a x = 111 r = 1.0000000000, r*r = 1.0000000000 r = 56.0000000000, r*r = 3136.0000000000 r = 28.9910714286, r*r = 840.4822225765 r = 16.4099182212, r*r = 269.2854160270 r = 11.5870600603, r*r = 134.2599608405 r = 10.5833558972, r*r = 112.0074220470 r = 10.5357612563, r*r = 111.0022652498 r = 10.5356537534, r*r = 111.0000000116 r = 10.5356537529, r*r = 111.0000000000 |
ex72.c |
---|
#include <stdio.h> int main(void) { int n; int sum; int i; printf("n = "); scanf("%d", &n); sum = 0; // 最初 0 にしておいて for (i=1; i<=n; i++) { sum = sum + i; // 1つづつ足していく. sum += i; と書いても良い printf("i = %d, sum = %d¥n", i, sum); } printf("sum = %d¥n", sum); return 0; } |
実行の例
abc12345@KSKS04DT00 ~/c4 $ ./a n = 10 i = 1, sum = 1 i = 2, sum = 3 i = 3, sum = 6 i = 4, sum = 10 i = 5, sum = 15 i = 6, sum = 21 i = 7, sum = 28 i = 8, sum = 36 i = 9, sum = 45 i = 10, sum = 55 sum = 55 |
課題 7.2
2つの整数 from と to をこの順に入力し, from から to までの整数の 2 乗の和
を計算し,
結果を「○○から○○までの2乗の和は○○」と出力するプログラム sum1.c を作成せよ.
下記の結果が得られることを確認せよ.
abc12345@KSKS04DT00 ~/c4 $ ./a from to = 1 10 1 から 10 までの2乗の和は 385 abc12345@KSKS04DT00 ~/c4 $ ./a from to = 17 105 17 から 105 までの2乗の和は 389909 |
ex73.c |
---|
#include <stdio.h> #include <math.h> int main(void) { int n; // 学生数 int i; // ループ変数 int point; // 点数 int sum; // 点数の総和 double ave; // 平均点 printf("学生数 n = "); scanf("%d", &n); sum = 0; // 最初 0 にしておいて for (i=1; i<=n; i++) { printf("point = "); scanf("%d", &point); sum = sum + point; // 入力した point を足していく } ave = (double) sum / (double) n; // double 型に変換してから割り算を行うこと printf("平均点 = %g¥n", ave); return 0; } |
実行の例
abc12345@KSKS04DT00 ~/c4 $ ./a 学生数 n = 3 point = 100 point = 90 point = 88 平均点 = 92.6667 |
課題 7.3 まず学生数 n を入力し, これに続いて n 人のテストの点数を入力し, これらの点数の
abc12345@KSKS04DT00 ~/c4 $ ./a 学生数 n = 5 point = 66 point = 70 point = 88 point = 90 point = 100 和 = 414 平均 = 82.8 自乗和 = 35100 自乗平均 = 7020 分散 = 164.16 標準偏差 = 12.8125 |
科目名: コンピュータ演習A 課題: C7 番号: 9999 氏名: 関学 太郎 作成: 20oo年oo月oo日 ------------------------------------------------------------- [課題 7.1] 〜を作成した. 実行結果は下記の通りである. (Cygwinの実行結果を貼り付ける) 〜で苦労した, 〜を工夫した, 等 ------------------------------------------------------------- ([課題 7.2] 以降も同様) ------------------------------------------------------------- [感想] (今回の課題に関する感想を書く) |