プログラミングⅡ 2012

# プログラミングⅡ 2012

2012年度前期・水曜Ⅳ、木曜Ⅳコマ
担当: 香川・富永・安藤・岡崎
TA: 相原・白神・長江・渡邊

信頼性情報システム工学科（RISE）向の「プログラミングⅡ」の情報を掲載します。

2011年度 プログラミング Ⅰ

## お知らせ

（新しいものほど上です。）

### 採点基準

授業時間内に正解を提出し、他者を指導できた。 … 100%
（原則として自分の力で解くこと。TA・教員に聞くのはOK）
授業時間内に正解を提出した。 … 70%
（他の学生に相談してもよい。）
締切までに正解を提出した。 … 50%
（他の学生に相談してもよい。）
締切までにそれなりの解答を提出し、やり直して正解した。… 40%
（他の学生に相談してもよい。）
締切までにそれなりの解答を提出したが、不正解だった。
（他の学生に相談してもよい。）
… 誤りに応じて 1% 〜 39%

たとえ演習終了後でも、問題を掲示板などに投稿して、不特定多数の人に相談することは禁止します。

### プログラミングⅠとの大きな変更点

授業時間内に他の学生に訊いても構いません。
他の学生と相談した場合は、ソースコードの先頭にコメントの形で、
学籍番号と氏名と教えてもらった点をあげて acknowledge してください。
単にソースコードを見せる、ソースコードのコピーを渡す、だけは指導したとは言えません。
必須問題の解答例は（通常） 出題２週間後（間違いを指摘してから１週間後）に公開します。
（それ以降に提出しても点数がつきません。）
間違いを指摘された場合、やり直しのチャンスは１回のみです。
メッセージやコメントをよく読んでやり直してください。

### その他

- New!
今年度（2012年度）期末試験ペーパーテスト（8/1）の解答例
- 期末テスト（ペーパー）過去問（2009年度）、
同解答例、
期末テスト（オンライン）過去問（2009年度）、
同解答例、
- 第13週を担当していただいた富永先生からの連絡事項を掲載しました．
- 第13週（7/11）以降は水曜日もノートPCを持参してください。
- 7/5（木）より木曜日の演習は 3201教室に移動します。
- 中間テスト ペーパーテスト平均得点率 70.1%、オンラインテスト平均得点率 72.0%
- 中間テスト
オンラインテスト問題
（解答例: 問1,
問2）,
ペーパーテスト問題（解答例）
- 6/07 の中間テストは、オンラインテスト・ペーパーテストとも、
教科書・授業配布プリント・（自筆の）ノートは持込み可です。
それ以外のものは、事前に相談してください。
（なお、8月に実施される期末テストのペーパーテストは、
持込み不可とする予定です。）
オンラインは持込み可ですが、プリントやルーズリーフなどはバインダーなどで、
１冊に綴じること。
- 期末テストの過去問（2009年度）を公開します。
オンラインテスト
（解答例: 問1,
問2,
問3）,
ペーパーテスト（解答例）
（2009年度は、中間テストは実施していません。）
- 4/18（水） より水曜日の講義は 6201教室に移動します。
- （遅ればせながら）2011年度プログラミングⅠ期末テストの解答例を掲載しました．
- インデンテーションについての約束事
- プログラミングⅠ 受講上の心構え

## コンパイル・実行の方法

皆さんのノートPCや大学のPCには「Borland Cコンパイラ」
というコンパイラがインストールされているはずです。
インストールされていない場合は、 香川大学工学部学生向け Webサイトから、「ノートPC設定方法」というページを
見つけてインストールして下さい。

以下では hello.cという名前のソースファイルをエディタで作成したとします。

コマンドプロンプトで hello.cを作成したディレクトリに移動し、
以下のコマンドでコンパイラを実行します。

- bcc32 hello.c
- hello.exeというファイルができているはずです。
以下のコマンドで、このプログラムを実行します。
- hello

もう少し、詳しい説明をCのプログラムの作成とコンパイルの手順というページにまとめました。

## 配布プリント

1—5章の復習　（4/11 配布）
6—8章の復習　（4/18 配布）
9章のまとめ　（05/09 配布）
10章のまとめ　（05/09 配布）
11章のまとめ　（05/30 配布）
12章のまとめ　（05/30 配布）
13章のまとめ　（05/30 配布）

## 課題

（管理者用）トップページ、
データの更新、
表、
管理用インデックス

- 授業用ページのパスワード発行は
このページで
行なって下さい。アカウントは s学籍番号（tは小文字）です。
- 注意:
設定が変更されたのに、変更が反映されないときは、
いったんログアウトして、
再度アクセスを試みて下さい。
- 必ず各自で提出したファイルのバックアップを取っておいて下さい。
（自分のノートPCだけではなく、stfile などの大学のサーバのどこかにもバックアップしておいて下さい!!）
- 各個人へのメッセージ

### 第 1.0 週 4/11, 4/12（1〜5 章の復習）

### 第 2.0 週 4/18, 4/19（6〜8 章の復習）

### 第 3.0 週 4/25, 4/26（6〜8 章の復習つづき）

### 第 4.0 週 5/09, 5/10 （6〜8 章の復習つづき、9章「文字列」）

### List 9-1
List 9-2
List 9-3

### 第 5.0 週 5/16, 5/17 （9章「文字列」つづき、10章「ポインタ」）

### List 9-4
List 9-5
List 9-6
List 9-7
List 9-8
List 9-9
List 9-10
List 9-11
List 9-12
List 9-13

### 第 6.0 週 5/23, 5/24 （10章「ポインタ」つづき）

### List 10-1
List 10-2
List 10-3
List 10-4
List 10-5
List 10-6
List 10-7
List 10-8
List 10-9
List 10-10
List 10-11
List 10-12

### 第 7.0 週 5/30, 5/31 （10章「ポインタ」つづき、11章「文字列とポインタ」）

### List 10-13
問 10.1.5-1
問 10.1.5-2
List 11-1
List 11-2
List 11-3
List 11-4
List 11-5
List 11-6
strlen.c
strchr.c

### 第 8.0 週 6/06, 6/07 （11章「文字列とポインタ」つづき、中間テスト）

### List 11-7
List 11-8
List 11-9
List 11-10
List 11-11
List 11-12
List 11-13
argvexample.c

着席位置、
中間テスト（オンライン）、
中間テスト・アップロード、

（スタッフ専用）
位置確認,
提出状況チェック、

（オンラインテスト解答例: 問1,
問2）,
（ペーパーテスト解答例）
中間テスト（オンライン）に対するコメント、

### 第 9.0 週 6/13, 6/14 （12章「構造体」）

### List 12-1
List 12-2
List 12-3
List 12-4
List 12-5
addPoint.c
addPointArr.c

### 第10.0 週 6/20, 6/21 （13章「ファイル入出力」）

（担当: 安藤先生）

List 13-1
List 13-2
List 13-3
List 13-4
List 13-5
List 13-6
List 13-7

### 第11.0 週 6/27, 6/28 （12章「構造体」つづき）

### List 12-6
List 12-7
List 12-8
List 12-9
List 12-10
List 12-11

7/05 から木曜日も教室が変わります。3201 教室へ移動です。

### 第12.0 週 7/04, 7/05 （13章「ファイル入出力」つづき）

### List 13-8
List 13-9
List 13-10
saikoro.c

第13.0週以降は水曜日も忘れずにノートPCを持参して下さい。

### 第13.0 週 7/11, 7/12 （総合演習）

（担当: 富永先生）

富永先生からの連絡事項です。(7/20 掲載)

香川先生の代理で「プログラミングⅡ」の授業したときに連絡しましたが、
コンテスト形式のプログラミング問題を、下記に掲載しています。

http://chausson1.eng.kagawa-u.ac.jp/

2年生が対象なのは、RiseProg2 です。OpenContest は、1年生が対象です。
コンテストは、2回あり、2010年度の「プログラミングⅡ」の定期試験
(中間試験と期末試験)が基になっています。2012.09.01(土)まで受験が可能です。
ただし、解答時期によって、加点または減点があります。
興味があれば、挑戦してね。09.01(土)以降は、正誤の判定のみとなります。

### 第14.0 週 7/18, 7/19 （総合演習）

7/18 着席位置、
7/18 クイズ、

（スタッフ専用）
クイズ成績
（位置、
表）、

### 第15.0 週 7/25, 7/26 （総合演習）

7/25 着席位置、
7/25 クイズ、
7/25 クイズその 2

（スタッフ専用）
クイズ成績
（位置、
表）、
クイズ 2 成績
（位置、
表）、

7/26 着席位置、
課題、
アップロード、

（スタッフ専用）
位置確認,
提出状況チェック、

### 第16.0 週 8/01, 8/02 （期末テスト）

8/01（水）がペーパーテスト、8/02（木）がオンラインテストです。
どちらも 6201 教室です。

ペーパーテストは持込不可、オンラインテストは教科書・プリント・自筆ノートなど持込可です。
それ以外のものは事前に問い合わせてください。

着席位置、
期末テスト（オンライン）、
期末テスト・アップロード、

（スタッフ専用）
位置確認,
提出状況チェック、

（ペーパーテスト解答例）
（オンラインテスト解答例: 問1,
問2,
問3）,

## 教科書

新版 明解C言語入門編
柴田 望洋 著
ソフトバンクパブリッシング
ISBN4-7973-2792-8

この本の、おおむね第 9〜13 章に相当する部分を扱います。

## この授業でやらないこと

## 上記の教科書やC言語の標準的な解説書:

プログラミング言語C 第2版
B.W.カーニハン D.M.リッチー 著
石田 晴久 訳
共立出版

に書かれている事柄で、この授業で取り扱わない（主な）項目は以下のとおりです。

ビット演算子、goto文とラベル、
関数形式マクロ、列挙体 (enum)、
共用体 (union)、ビットフィールド、分割コンパイル、
動的メモリ割当て (mallocとfree)、