情報システム・セキュリティコース/情報通信コース向の「プログラミング」の情報を掲載します。 (シラバス)
シラバスの訂正:「成績評価の方法と基準」 「合格要件に達しない場合、追加課題などを課す。」→ 「合格要件に達しない場合、追加課題などを課す場合がある。」
このページの短縮 URL は http://goo.gl/DRTRBN です。
(01/31) 期末テスト過去問 (ペーパー)、 期末テスト過去問 (オンライン)、 同解答例、
cl コマンドは大抵の場合、ソースファイルの文字コードが、UTF-8 や Shift_JIS で問題ないですが、たまに文字化けしたり、不具合が起こることがあります。 そういう場合は、BOM 付きの UTF-8 で保存してください。
(BOM付き、BOMなしにかかわらず)UTF-8 で保存したソースファイルをコンパイルして実行するとき、 出力される文字列が文字化けすることがあります。これは、 コマンドプロンプトのデフォルトの文字コードが Shift_JIS になっているためです。 この場合は、次のコマンドを実行してください。(▷ はプロンプトです。)
▷ chcp 65001
逆にコマンドプロンプトの文字コードを Shift_JIS に戻すときは次のコマンドを実行してください。
▷ chcp 932
WebCLint … C言語初学者向けの静的解析(インデンテーションのチェックなど)用ツールです。
「プログラミング」の Web ページは Firefox で確認しているので、Firefox をインストールしておくことが望ましい。
(← これ以前のお知らせの開閉)
演習科目であるため、全回の出席を前提とする。毎週の課題(30%)、小テスト(クイズ)と中間試験 (30%)、期末試験(40%)で採点し、授業の目標達成が確認できた者に単位を認定する。
なお、合格/不合格の判定については、単純な加算で 60点以上を合格とするが、 秀・優・良・可の判定については、割合を考慮して調整をすることがある。
演習時間(通常、金曜日)内は、原則として自分の力で解く。(TA・教員に聞くのは良い。)
(ただし、解いている問題に特有ではない C 言語一般に関する質問などは許容範囲とする。)
なお、一部の事前に公開した課題は、演習時間開始 10分後を締切とすることがある。
演習時間終了後は、人に相談して解いても良い。 (ただし人の解答のコピペは絶対禁止(コピーさせた側も同罪))
たとえ演習終了後でも、問題を掲示板などに投稿して、不特定多数の人に相談することは禁止する。
(2/08 New!) 現在(02/08 12:00)提出されている課題(02/06 の課題を除く)については、 02/08(金)中に採点します。ここで NG とされた課題については、必ず再提出してください。 その後は、02/12(火)23:59 までに(再)提出された課題については、 02/15(金)中に採点します。ここで NG とされても再提出する必要はありません。 (間違いが残っていても、減点した上で OK 扱いとします。) ただし、点数が合格点に足りないときは、改めて提出を要請する場合があります。 その場合はメールなどで連絡します。
オンラインテストは、教科書・プリント・ノートなど持込み可
(プリント・ルーズリーフはバインダーなどで一冊に綴じること。
バラバラのプリントは持込み不可とする。)、
ペーパーテストは、持込み不可
(11/14 New!)
中間テスト過去問 (ペーパー)、
中間テスト過去問 (オンライン)、
同解答例、
金曜日は、教室(3101)の最後列は TA のために空けておいてください。
(← 開閉)
皆さんのノート PC や大学の PC には「Microsoft Visual Studio Express」 というコンパイラがインストールされているはずです。 インストールされていない場合は、 香川大学創造工学部学生向け Webサイトから、「ノートPC設定方法」というページを 見つけてインストールして下さい。インストールするときに、 「C++によるデスクトップ開発」にチェックをするのを、 忘れないようにしてください。 (Visual Studio のバージョンは 2012 以降にしてください。 2010以前はデフォルトの文字コードが異なるため、UTF-8 で保存されたソースコードをコンパイルできない可能性があります。) インストール後「ヘルプ」—「Microsoft Visual Studio のバージョン情報」で、 「インストールされている製品」に 「Visual C++ 20??」が入っていることを確認しておいてください。
エディタは notepad++, サクラエディタなどを推奨します。 サクラエディタの場合、「設定」−「共通設定」−「ファイル」−「ファイルの排他制御」 −「排他制御」を「しない」に変更しておくことをおすすめします。
以下では hello.c という名前のソースファイルをエディタで作成したとします。
「開発者コマンド プロンプト (Developer Command Prompt)」で hello.c を作成したディレクトリに移動し、 以下のコマンドでコンパイラを実行します。
cl hello.c
これで、hello.exe というファイルができているはずです。
以下のコマンドで、このプログラムを実行します。
hello
もう少し詳しい、コマンドプロンプトでのコマンドなどの使用法の説明を C のプログラムの作成とコンパイルの手順というページにまとめました。
授業用ページのパスワード発行は このページで 行なって下さい。アカウントは s学籍番号(途中の t は小文字)です。
なお、Gmail アカウント(大学でメールを読むときに使うアカウント)でも認証出来るようになっています。
注意: 設定が変更されたのに、変更が反映されないときは、 いったんログアウトして、 再度アクセスを試みて下さい。
必ず各自で提出したファイルのバックアップを取っておいて下さい。 (自分のノート PC だけではなく、stfile などの大学のサーバのどこかにもバックアップしておいて下さい!!)
この授業で提出してもらうファイルは基本的にバイナリーファイルではないはずです。 バイナリーファイルとは、テキストエディターで読むことができないファイル(画像、音声、ワード、エクセルなど)です。
各個人へのメッセージ、 各個人のクイズの得点 (2019/02/06 実施分まで)
(← ここ以前の課題の開閉)
クイズ、
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
※終了後に中間テストの再挑戦試験(追試験)(ペーパー)を 実施
クイズ、
List 6-10 List 6-11 List 6-12 cbv.c List 6-13 List 6-14 sentinel.c List 6-15 List 6-16 List 6C-1 List 6-17
List 6-18
List 6-19
List 7-1
List 7-2
List 7-3
List 7-4
List 7-5
sizeof.c
List 7-9
List 7-10
List 7-11
List 7-11a
List 7-12
クイズ、
※ オンラインテストは、教科書・プリント・ノートなど持込み可、 (ペーパーテストは、持込み不可) です。
※ ペーパーテストは、持込み不可、 (オンラインテストは、教科書・プリント・ノートなど持込み可)です。
期末試験で合格者が極端に少ない場合に、救済試験を実施する可能性があります。 実施する場合、日程は 2/26 〜 2/28 の間に実施します。
日程調整は実施しません。こちらで日程を決定します。 (メールと掲示に注意してください。)
救済試験を実施する場合でも、 期末試験の点数が著しく低い人は対象としない場合があります。
※ オンラインテストは、教科書・プリント・ノートなど持込み可、 (ペーパーテストは、持込み不可) です。
※ ペーパーテストは、持込み不可、 (オンラインテストは、教科書・プリント・ノートなど持込み可)です。
新・明解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.リッチー 著 石田 晴久 訳 共立出版 ISBN 978-4320026926 ※原著 C Programming Language, 2nd Edition Brian W. Kernighan, Dennis M. Ritchie Prentice Hall ISBN 978-0131103627
に書かれている事柄で、この授業で取り扱わない(主な)項目は以下のとおりです。
文字列、 ポインタ、構造体、ファイル入出力、(ここまでは2年生の「中級プログラミング」で扱います。)
ビット演算子、goto 文とラベル、 関数形式マクロ、列挙体 (enum)、 共用体 (union)、ビットフィールド、分割コンパイル、 動的メモリ割当て (malloc と free)、(これらは2年生以降の各授業で必要に応じて紹介します。)