プログラミング 2016


2016年度後期・水曜Ⅴ、金曜Ⅴコマ
担当: 富永・香川高橋絹田
TA: 島川・西山・下元・森垣・山形

電子・情報工学科(ENIE)向の「プログラミング」の情報を掲載します。 (シラバス

このページの短縮 URL は goo.gl/qwZkQX です。goo.gl/qwZkQX

本日の課題

お知らせ

(新しいものほど上です。)

(← これ以前のお知らせの開閉)

評価

演習科目であるため、全回の出席を前提とする。毎週の課題(30%)、小テスト(クイズ)と中間試験 (30%)、期末試験(40%)で採点し、授業の目標達成が確認できた者に単位を認定する。

なお、合格/不合格の判定については、単純な加算で 60点以上を合格とするが、 秀・優・良・可の判定については、割合を考慮して調整をすることがある。

毎週の課題の採点基準

その他

コンパイル・実行の方法

(← 開閉)

皆さんのノート PC や大学の PC には「Microsoft Visual Studio Express」 というコンパイラがインストールされているはずです。 インストールされていない場合は、 香川大学工学部学生向け Webサイトから、「ノートPC設定方法」というページを 見つけてインストールして下さい。 (Visual Studio のバージョンは 2012 以降にしてください。 2010以前はデフォルトの文字コードが異なるため、UTF-8 で保存されたソースコードをコンパイルできない可能性があります。)

エディタは notepad++, サクラエディタなどを推奨します。 サクラエディタの場合、「設定」−「共通設定」−「ファイル」−「ファイルの排他制御」 −「排他制御」を「しない」に変更しておくことをおすすめします。

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

  1. (Windows 8 の場合)「開発者コマンド プロンプト」を「アプリ」画面の ─「Visual Studio Tool」 ─ 「開発者コマンド プロンプト for 2013」から起動します。

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

      cl hello.c
    

    これで、hello.exe というファイルができているはずです。

  3. 以下のコマンドで、このプログラムを実行します。

      hello
    

もう少し詳しい、コマンドプロンプトでのコマンドなどの使用法の説明を C のプログラムの作成とコンパイルの手順というページにまとめました。

配布プリント

課題

本日の課題

(管理者用) データの更新Quiz集計 管理用インデックスインデックス10月 11月 中間 12月 01月 02月 期末

過去の課題

第 1 回 10/05(ガイダンス)

hello.c

着席位置 クイズ(10/05 は試験運用です。)

(スタッフ専用) 位置確認, クイズ確認 () 、

クイズに対するコメント

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

第 2 回 10/07(講義・演習)(1章 「まずは慣れよう」)

着席位置 課題アップロード

(スタッフ専用) 位置確認, 提出状況チェック表(10月分)

課題に対するコメント

第 3 回 10/12(講義)(2章「演算と型」)

着席位置 クイズ

(スタッフ専用) 位置確認, クイズ成績 (位置

クイズに対するコメント

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

第 4 回 10/14(演習)(2章「演算と型」)

着席位置 課題アップロード

(スタッフ専用) 位置確認, 提出状況チェック表(10月分)

課題に対するコメント

第 5 回 10/19(講義)(3章「プログラムの流れの分岐」)

着席位置 クイズ

(スタッフ専用) 位置確認, クイズ成績 (位置

クイズに対するコメント

List 3-1 List 3-2 List 3-3 List 3-4 List 3-5 List 3-6 List 3-7 List 3-8 List 3-9 List 3-10 List 3-11 List 3-12 List 3-13 List 3-14 List 3-15 List 3-16 List 3-17

第 6 回 10/21(演習)

着席位置 課題アップロード

(スタッフ専用) 位置確認, 提出状況チェック表(10月分)

課題に対するコメント

第 7 回 10/26(講義)(3章「プログラムの流れの分岐」つづき、 4章「プログラムの流れの繰返し」)

着席位置 クイズ

(スタッフ専用) 位置確認, クイズ成績 (位置

クイズに対するコメント

addtime.c maxswap.c     List 3-18 List 3-19 List 3-20
List 4-1

第 8 回 11/02(講義)(4章「プログラムの流れの繰返し」つづき)

着席位置 クイズ

(スタッフ専用) 位置確認, クイズ成績 (位置

クイズに対するコメント

List 4-2 List 4-3 List 4-4 List 4-5 List 4-6     increment.c     List 4-7 List 4-8 List 4-9 List 4-10 List 4-11 List 4-12 List 4-13 List 4-14 List 4-15    

第 9 回 11/04(演習)

着席位置 課題アップロード

(スタッフ専用) 位置確認, 提出状況チェック表(11月分)

課題に対するコメント

第 10 回 11/09(講義)(4章「プログラムの流れの繰返し」つづき)

着席位置 クイズ

(スタッフ専用) 位置確認, クイズ成績 (位置

クイズに対するコメント

List 4-16 List 4-17 List 4-18 List 4-19 List 4-20 List 4-21

インデンテーションについての約束事

第 11 回 11/11(演習)

着席位置 課題 (一部、公開中)アップロード

(スタッフ専用) 位置確認, 提出状況チェック表(11月分)

課題に対するコメント

第 12 回 11/16(講義)(4章「プログラムの流れの繰返し」つづき)

着席位置 クイズ

グラフィックス作成ページ

(スタッフ専用) 位置確認, クイズ成績 (位置

クイズに対するコメント

reverse.c fact.c polygon.c triangle.c diamond.c

第 13 回 11/18(中間テスト)

着席位置 課題 アップロード

(スタッフ専用) 位置確認, 提出状況チェック提出状況チェック(表)

中間テストに対するコメント

第 14 回 11/25(演習)

(11/22 New!) 11/25 の課題の一部を発表しました。

着席位置 課題 (一部、公開中)アップロード

(スタッフ専用) 位置確認, 提出状況チェック表(11月分)

課題に対するコメント

第 15 回 11/30(講義)(5章「配列」)

着席位置 クイズ

(スタッフ専用) 位置確認, クイズ成績 (位置

クイズに対するコメント

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

第 16 回 12/02(演習)

着席位置 課題アップロード

(スタッフ専用) 位置確認, 提出状況チェック表(12月分)

課題に対するコメント

第 17 回 12/07(講義)(5章「配列」つづき、6章「関数」)

着席位置 クイズ

(スタッフ専用) 位置確認, クイズ成績 (位置)、

クイズに対するコメント

arrInit.c     List 5-12 List 5-13     breakTest.c
List 6-1 List 6-2 List 6-3 List 6-4 List 6-5 List 6-6 List 6-7 List 6-8 List 6-9

第 18 回 12/09(演習)

着席位置 課題アップロード

(スタッフ専用) 位置確認, 提出状況チェック表(12月分)

課題に対するコメント

第 19 回 12/14(講義)(6章「関数」つづき)

着席位置 クイズ

(スタッフ専用) 位置確認, クイズ成績 (位置

クイズに対するコメント

List 6-10 List 6-11 List 6-12     cbv.c     List 6-13 List 6-14 List 6-15     svg.h svg.c

第 20 回 12/16(演習)

着席位置 課題アップロード

(スタッフ専用) 位置確認, 提出状況チェック表(12月分)

課題に対するコメント

第 22 回 12/16(中間テスト(オンライン)・再挑戦)

※ 3202 で実施します。

着席位置 課題アップロード

(スタッフ専用) 位置確認, 提出状況チェック

第 21 回 12/20(講義)(6章「関数」つづき)

着席位置 クイズ

(スタッフ専用) 位置確認, クイズ成績 (位置

クイズに対するコメント

List 6-16 List 6-17 List 6-18 List 6-19

※終了後(5コマ)に中間テストの再挑戦試験(追試験)(ペーパー)を 3202 で実施予定

第 22 回 12/21(演習)

着席位置 課題アップロード

(スタッフ専用) 位置確認, 提出状況チェック表(12月分)

課題に対するコメント

第 23 回 01/11(講義)(7章「基本型」)
7-2節 の中の「ビット単位の論理演算」、「シフト演算」、「オーバーフローと例外」は除く。

着席位置 クイズ

(スタッフ専用) 位置確認, クイズ成績 (位置

クイズに対するコメント

List 7-1 List 7-2 List 7-3 List 7-4 List 7-5 List 7-8 List 7-9 List 7-10 List 7-11 List 7-12     sizeof.c

第 24 回 01/18(演習)

着席位置 課題アップロード

17時30分〜 1/20, 1/25, 1/27 の授業に関するガイダンス(富永先生)

(スタッフ専用) 位置確認, 提出状況チェック表(01月分)

課題に対するコメント

第 25 回 01/20 第 26 回 01/25 第 27 回 01/27(総合演習)

※ 1/20, 1/25, 1/27 は富永先生担当の総合演習

(← ここ以前の課題の開閉)

第 28 回 02/01(講義)(8章「いろいろなプログラムを作ってみよう」)
8-1 節「関数形式マクロ」、8-2 節「ソート」、8-3 節「列挙体」を除く。ただし、 8-1 節の中のコンマ演算子は扱う。

着席位置 クイズ

(スタッフ専用) 位置確認, クイズ成績 (位置

クイズに対するコメント

List 8-7     comma.c hanoi.cハノイの塔を試すtree.c (グラフィックス作成ページ)     List 8-8 List 8-9 List 8-10 List 8-11

問: 再帰の例 1 のプログラムの出力結果はどうなるか?

第 29 回 02/03(演習)

着席位置 課題アップロード

(スタッフ専用) 位置確認, 提出状況チェック表(02月分)

課題に対するコメント

第 30 回 02/08(演習)

着席位置 課題アップロード
(スタッフ専用) 位置確認, 提出状況チェック表(02月分)

第 31 回 02/10(期末テスト)オンライン

着席位置 課題アップロード

(スタッフ専用) 位置確認, 提出状況チェック提出状況チェック(表)
注意: 毎週の課題のうち、未提出の必須課題は 2/21(火) 23:59 までに必ず提出してください。 (未提出の場合、メッセージが何も出ない仕様になっているので、 必ず各自でチェックしてください。)また、2/08(水) 14:40 の時点で NC, NG と判定されている必須課題も 2/21(火) 23:59 までに必ず再提出してください。

第 32 回 2/22(期末テスト)ペーパー

ペーパーテストは、持込み不可、 オンラインテストは、教科書・プリント・ノートなど持込み可、
です。

現在の課題

第 31 回 02/27(期末テスト・追試験)オンライン

着席位置 課題アップロード

(スタッフ専用) 位置確認, 提出状況チェック提出状況チェック(表)

教科書

  新・明解C言語入門編
  柴田 望洋 著
  SBクリエイティブ
  ISBN978-4-7973-7702-6

この教科書の、おおむね第 1〜8 章に相当する部分を扱います
(7-2節 の中の「ビット単位の論理演算」、「シフト演算」、「オーバーフローと例外」、 8-1 節「関数形式マクロ」、8-2 節「ソート」、8-3 節「列挙体」を除きます。ただし、 8-1 節の中のコンマ演算子は扱います)。

索引全ソースプログラムは、 是非ダウンロードページから入手して、 索引は印刷しておいてください。

この授業でやらないこと

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

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

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

文字列、 ポインタ、構造体、ファイル入出力、(ここまでは2年生の「電子・情報プログラミング」で扱います。)

ビット演算子、goto 文とラベル、 関数形式マクロ、列挙体 (enum)、 共用体 (union)、ビットフィールド、分割コンパイル、 動的メモリ割当て (malloc と free)、(これらは2年以降の各授業で必要に応じて紹介します。)

Koji Kagawa