講義概要

Cプログラミング
第9回
プログラミング演習
青柳滋己
aoyagi@aoni waseda jp
[email protected]
2015年度 Cプログラミング 第9回
本日の講義概要
プログラム演習
小レポート課題
2015年度 Cプログラミング 第9回
小レポート課題
 課題
(1)常微分方程式を解くホイン法のプログラムを作成せよ.
常
方程式を解く
プ グ
を作成
(2)n個の中からr個をとる組合わせの数 nCr を表示する再帰プログラムと再帰
を使わないプログラムを作成せよ.また, 65C40,65C41 ,...,, 65C50 の値を計
算せよ.
(3) report1_3bug.cの間違いを修正し,正しく動くプログラムを作成せよ.また,
間違っている箇所とその修正法を解説すること.
間違っている箇所とその修正法を解説すること
(4)「素数判定プログラム」を作成せよ.
 提出期限
2015年12月3日(木) 23時59分 締切厳守
 提出物
作成したCプログラム (report1_{1,2a,2b,2c,3,4}.c)
 課題1,2の実行結果(repot1_1.txt,report1_2_kekka.txt)
 課題2,3,4のドキュメント(report1_{2,3,4}.doc(.txtでも良い))
課題2,3,4のドキュメント(report1 {2,3,4}.doc(.txtでも良い))

2015年度 Cプログラミング 第9回
小レポート課題1
 第7回演習を参考に,1階常微分方程式
ddy
  xy ,
dx
0  x  0.3,
y ( 0 )  1. 0
をホイン法で解くプログラム(report1_1.c)を作成せよ.
をホイン法で解くプログラム(report1
1 c)を作成せよ
ただしn=30とし,解は少数点以下10桁まで表示せよ.
ホイン(Heun)法は関数計算が2個のものである.
k1  f ( xi , Yi )
k2  f ( xi  h, Yi  hk1 )
1
Yi 1  Yi  h ( k1  k2 )
2
 プログラムと実行結果(report1_1.txt)を提出.
プログラムと実行結果(report1 1.txt)を提出.
2015年度 Cプログラミング 第9回
小レポート課題2
 n個の中からr個をとる組合せの数nCrは
nCr= n-1Cr + n-1Cr-1
で表せる.キーボードから2つの自然数nとrを入力すると,nCr
を計算し表示する再帰プログラムを作成せよ(report1_2a.c).
プ グ
また,再帰を使わないプログラムも作成せよ(report1_2b.c).
また 65C40,65C41 ,..., 65C50 の値を計算するプログラム
また,
の値を計算するプ グラム
(report1_2c.c)を作成し,実行結果(report1_2_kekka.txt)ととも
に提出せよ 作成したプログラムの解説ドキュメント
に提出せよ.作成したプログラムの解説ドキュメント
(repot1_2.doc)も提出すること.
注:再帰版の場合,n,rに大きな値を入れると戻ってこないこと
あ
数
す
がある.
65C40等の数も大きな値になるので注意すること.
2015年度 Cプログラミング 第9回
小レポート課題3
 右はキーボードから2整数
を入力し 読み込んだi t型
を入力し,読み込んだint型
数値を文字列に変換後,2
数(文字列)を並べて表示
するプログラムだが,間違
いがある 正しく動くように
いがある.正しく動くように
修正せよ.(report1_3.c)
 間違い箇所とその修正方
法についてドキュメントに
明記せよ.
(report1_3.doc)
report1_3bug.c
#include <stdio
<stdio.h>
h>
char *num2str(int i)
{
char str[30];
sprintf(str, "%d", i);
return str;
}
int main(void)
{
int num1,
num1 num2;
printf("Input number 1: ");
scanf("%d", &num1);
printf("Input
printf(
Input number 2: ");
);
scanf("%d", &num2);
printf("%s %s¥n", num2str(num1),
num2str(num2));
return 0;
}
2015年度 Cプログラミング 第9回
小レポート課題4
 キーボードから入力された数値が素数かどうか判定
するプログラムを作成する
 素数判定プログラムの動作仕様
(1) キーボードから自然数を入力
(2) その自然数が素数か否かを調べ,結果を表示して終了
 注意
キ
キーボードからはsigned
g
intの範囲内の自然数が入力さ
範囲
自然数 入
れるものとする(1~2147483647)
 結果は,素数か否かだけ表示すればよい
 ファイル名は report1_4.c として提出
 ドキュメントにはどうやって素数を判定しているのかアル
ゴリズムを明記すること(report1_4.doc)
2015年度 Cプログラミング 第9回
注意事項
1.
仕様を満たし,かつ動くプログラムを提出すること.
仕様を自分勝手に変更しないこと

2.
ドキュメントに考察は必ず書くこと(課題2, 4).
例:
3.
となることの説明 等
nCr=n-1Cr+n-1Cr-1となることの説明,等
他人のを写したり,共同でやるのは不可 !!
・コピーレポートは0点とする
※本等で調べたりするのは良いが,理解した上で自分なりのプログラ
※本等で調
たりするのは良いが,理解した上で自分なりのプログラ
ム・説明を書くこと.
4. 提出期限
2015年12月3日(木) 23時59分 締切厳守
2015年度 Cプログラミング 第9回
次回予定
探索
リニアサーチ
バイナリサ
バイナリサーチ
チ
2015年度 Cプログラミング 第9回