スライド14

プログラミング演習Ⅱ
第14回
応用課題(1)
情報・知能工学系
山本一公
[email protected]
前回の課題の解説・ポイント(1)
• 課題12-1
– 文字 c の場所を文字列の先頭から順番に探し
て行って、見つかったらその場所のポインタ
を返す
while (*str) {
if (*str == c) {
return str;
}
str++;
}
return NULL;
前回の課題の解説・ポイント(2)
• 課題12-2
– 泥臭い方法の例:文字列の先頭を1文字だけ削除して
文字を詰める関数を別に作っておいて、与えられた
文字列を先頭から見ていって数字を見つけたらその
関数を呼ぶ
– もう少しスマートな方法の例
char *str1 = str;
while (*str) {
if (*str >= ’0’&& *str <= ’9’) {
str++;
} else {
*str1++ = *str++;
}
}
課題11の採点結果から
• 課題11-1
– 結果を見て以下のことを考えよう!
• 領域が連続しているかどうか
• 余分な領域が確保されているかどうか
• 同じアドレスが表示されるのは何故か
• 課題11-2
– 結果を入れる配列の初期化(累和を求める前の0の
代入)は関数内で行うべき!
• 掛け算の結果が返ってくる関数なのに、初期化を忘れると結
果が違ってしまうため
– そもそも初期化してない!って人も結構いました
応用課題(1)
• 今週と来週は応用課題
• 課題を3問与える
– 課題1は必須。課題2/3のどちらかを選択。
– 2週間で2つのプログラムを作成すること
• プログラムの説明を、プログラム中にコメント
として書くこと
– プログラムの処理の流れの説明
– 各関数の頭に関数の説明(役割、引数、返却値)
– プログラム途中の処理内容
応用課題(2)
• 課題1:「三目並べ」
– 人対人で遊べる三目並べのプログラムを作成する
• 課題2:「リバーシ」
– 人対人で遊べるリバーシのプログラムを作成する
• 課題3:「ライフゲーム」
– 世代毎に進化を画面表示するプログラムを作成する
• 詳細は課題pdfファイルを参照のこと
レポートについて
• 電子メールで提出
– 提出先は [email protected](質問メールもここに)
– Subjectを「プログラミング演習2 応用課題提出 学籍番
号・氏名 」とすること
– C言語ソースファイルを添付する
• メールの本文には何も書かなくて良いです
– プログラムにコメントで以下の情報を入れる
• 学籍番号・氏名(プログラムの先頭に)
• プログラムの説明(どのように動くのかという全体の流れ。
プログラムの先頭に)
• 関数の役割・引数・返却値の説明(関数の先頭に)
– 提出締切は、2月20日(水) 12:00 (2週間後)
授業用Webサイト
• URL:
http://www.slp.cs.tut.ac.jp/~kyama/programming2/
– 課題のpdfファイルが置いてあります。
– 授業で使ったpptファイルを置いていきます。
• 質問メールは、以下のどちらかのアドレスまで
– [email protected][email protected]
• C-515へ直接質問しに来ても構いません