80 likes | 256 Views
プログラミング演習 Ⅱ 第 14 回 応用課題(1). 情報・知能工学系 山本一公 kyama@tut.jp. 前回の課題の解説・ポイント(1). 課題12-1 文字 c の場所を文字列の先頭から順番に探して行って、見つかったらその場所のポインタを返す. while (* str ) { if (* str == c) { return str ; } str ++; } return NULL;. 前回の課題の解説・ポイント(2). 課題12-2
E N D
プログラミング演習Ⅱ第14回応用課題(1) 情報・知能工学系 山本一公 kyama@tut.jp
前回の課題の解説・ポイント(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ファイルを参照のこと
レポートについて • 電子メールで提出 • 提出先は prog2@slp.cs.tut.ac.jp(質問メールもここに) • Subjectを「プログラミング演習2応用課題提出学籍番号・氏名 」とすること • C言語ソースファイルを添付する • メールの本文には何も書かなくて良いです • プログラムにコメントで以下の情報を入れる • 学籍番号・氏名(プログラムの先頭に) • プログラムの説明(どのように動くのかという全体の流れ。プログラムの先頭に) • 関数の役割・引数・返却値の説明(関数の先頭に) • 提出締切は、2月20日(水) 12:00 (2週間後)
授業用Webサイト • URL: http://www.slp.cs.tut.ac.jp/~kyama/programming2/ • 課題のpdfファイルが置いてあります。 • 授業で使ったpptファイルを置いていきます。 • 質問メールは、以下のどちらかのアドレスまで • kyama@tut.jp • prog2@slp.cs.tut.ac.jp • C-515へ直接質問しに来ても構いません