情報システム・セキュリティ (CSSS) コース/情報通信 (ICT) コース向の「プログラミング」の情報を掲載します。 (シラバス)
(02/16 New!) 期末テスト解答例、
(01/26) 期末テスト過去問 (ペーパー)、 期末テスト過去問 (オンライン)、 同解答例、
(11/11)
中間テスト過去問 (ペーパー)、
中間テスト過去問 (オンライン)、
同解答例、
(10/09) よびだしくん
TA の竹原くん作成のよびだし Web アプリです。TA を呼びたいときに使用してください。
(10/09) StuMee
香川研究室の大倉くん作成の TA にチャットで質問できる Web アプリです。
金曜の演習が遠隔になったときに本格的に使用する予定ですが、今からここにおいておきます。
演習を対面で実施している間は、テスト運用です。
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 点以上を合格とするが、 秀・優・良・可の判定については、割合を考慮して調整をすることがある。
演習時間(通常、金曜日 4限)内は、原則として自分の力で解く。(TA・教員に聞くのは良い。)
(ただし、解いている問題に特有ではない C 言語一般に関する質問などは許容範囲とする。)
なお、一部の事前に公開した課題は、演習時間開始 10 分後を締切とすることがある。
演習時間終了後は、人に相談して解いても良い。 (ただし人の解答のコピペは絶対禁止(コピーさせた側も同罪))
たとえ演習終了後でも、問題を掲示板などに投稿して、不特定多数の人に相談することは禁止する。
金曜日は、教室(3101)の最後列は TA のために空けておいてください。
(← 開閉)
皆さんのノート PC や大学の PC には「Microsoft Visual Studio Express」 というコンパイラーがインストールされているはずです。 インストールされていない場合は、 香川大学創造工学部学生向け Webサイトから、「ノートPC設定方法」というページを 見つけてインストールして下さい。 (C コンパイラの情報はここにあります。 Visual Studio のダウンロードのページに直接飛んでも構いません。) インストールするときに、 「C++によるデスクトップ開発」にチェックをするのを、 忘れないようにしてください。 (Visual Studio のバージョンは 2012 以降にしてください。 2010以前はデフォルトの文字コードが異なるため、UTF-8 で保存されたソースコードをコンパイルできない可能性があります。) インストール後「ヘルプ」—「Microsoft Visual Studio のバージョン情報」で、 「インストールされている製品」に 「Visual C++ 20??」が入っていることを確認しておいてください。
エディターは notepad++, サクラエディタ, Atom などを推奨します。 サクラエディタの場合、「設定」−「共通設定」−「ファイル」−「ファイルの排他制御」 −「排他制御」を「しない」に変更しておくことをおすすめします。
以下では hello.c
という名前のソースファイルをエディターで作成したとします。
「開発者コマンド プロンプト」を「アプリ」画面の ─「Visual Studio 201?」 ─ 「開発者コマンド プロンプト (Developer Command Prompt) for VS201?」から起動します。
「開発者コマンド プロンプト (Developer Command Prompt)」で hello.c
を作成したディレクトリーに移動し、
以下のコマンドでコンパイラーを実行します。
cl hello.c
これで、hello.exe
というファイルができているはずです。
以下のコマンドで、このプログラムを実行します。
hello
なお、コマンドプロンプトではカーソルキー( ↑ , ↓ )を使うと、 以前に入力したコマンドを呼び出すことができます。
もう少し詳しい、コマンドプロンプトでのコマンドなどの使用法の説明を C のプログラムの作成とコンパイルの手順というページにまとめました。
授業用ページのパスワード発行は
このページで
行なって下さい。アカウントは s学籍番号(途中の t は小文字)
です。
独自のアカウント・パスワードは廃止しました。 Gmail アカウント(大学でメールを読むときに使うアカウント)で認証してください。
注意: 設定が変更されたのに、変更が反映されないときは、 いったんログアウトして、 再度アクセスを試みて下さい。
必ず各自で提出したファイルのバックアップを取っておいて下さい。 (自分のノート PC だけではなく、stfile などの大学のサーバのどこかにもバックアップしておいて下さい!!)
この授業で提出してもらうファイルは基本的にバイナリーファイルではないはずです。 バイナリーファイルとは、テキストエディターで読むことができないファイル(画像、音声、ワード、エクセルなど)です。
(11/27) 再提出にもかかわらず、メッセージで指摘した間違いが修正されていないというケースが、頻発しています。 メッセージをよく読み、十分確認してから再提出するようにしてください。
(12/16 New!)【警告】今後、コンパイルできない、実行例がまったく問題文と合わない、といった解答が提出された場合は、 その問題を 0 点とし、再提出があっても採点しない。
(11/11) 現在、ステータスが OK となっているにもかかわらず、以前の NG, NC のときのメッセージが表示されるという、システムの不具合があるようです。 ステータスが OK となっていれば、提出しなおす必要はありません。
(11/27) 現在、上記の不具合は修正されているはずです。別の不具合を見つけたら報告をお願いします。
(← ここ以前の課題の開閉)
3101 で実施
ログインの確認
クイズ、(10/02 は試験運用です。)
Zoom で実施
クイズ、
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
3101 で実施
Zoom で実施
クイズ、
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
3101 で実施
Zoom で実施
クイズ、
List 2-11 List 2-12 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-16
3101 で実施
クイズ、
List 3-14
List 3-15
List 3-17
addtime.c
maxswap.c
List 3-18
List 3-19
List 3-20
クイズ、
List 4-1 List 4-2 List 4-2a List 4-3 List 4-4 List 4-5 List 4-6 increment.c List 4-7 List 4-8 List 4-9
(11/13 New!) 中間テストの過去問(と解答例)を公開しました。
Zoom で実施
クイズ、
List 4-10 List 4-11 List 4-12 List 4-13 List 4-14 List 4-15 List 4-16 List 4-17 List 4-18 List 4-19 List 4-20
クイズ、
「reverse.c の no
の値の変化」の解答、
「fact.c の i
, fact
の値の変化」の解答
triangle.c
comma.c
List 4-16a
List 4-16b
List 4-21
reverse.c
fact.c
polygon.c
diamond.c
List 5-1
List 5-2
List 5-3
List 5-4
当初、中間テストを予定していましたが、12/04 に延期しました。
課題、 アップロード (提出前に WebCLint でチェックすること)、
クイズ、
List 5-5
List 5-6
List 5-7
List 5-8
comma2.c
List 5-9
List 5-10
List 5-11
List 5-12
arrInit.c
List 5-13
breakTest.c
中間テストの範囲は 4 章までです。
昨年度と同じ形式で実施します。つまり、
前半 (14:40–15:20) はペーパーテスト・持ち込み不可
後半 (15:30–16:10) はオンラインテスト・持ち込み可
(プリント・ルーズリーフはバインダー・綴ひもなどで一冊に綴じること。
バラバラのプリントは持込み不可とする。)
クイズ、
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
課題、 アップロード (提出前に WebCLint でチェックすること)、
クイズ、
お知らせ: dec04_1.c へのメッセージにペーパーテスト・オンラインテストの得点を通知しました。
List 6-10 List 6-11 List 6-12 cbv.c
本日は StuMee を使用して質問を受け付けます。
※ 終了後(5 コマ)に中間テストの再挑戦試験(追試験)を 実施予定です。
ペーパー・オンラインの両方か、どちらか一方だけかは TBA。(諸事情により延期します)
クイズ、
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 8-7
hanoi.c
(ハノイの塔を試す)
tree.c
(グラフィックス作成ページ)
再帰の例 1
(問: このプログラムの出力結果はどうなるか?)
(01/13 New!) 01/08 の課題の第 2 の締切を 01/19 23:59 に延長します。
オンデマンド方式で補講を実施します。 スライドを閲読して、指示された作業を行ってください。 その後、下のクイズに答えてください。(2021/01/11 までにやっておいてください。)
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
クイズ、
5限は中間テスト・再挑戦テスト
最後まで説明できなかったので、「高階関数とラムダ式」以降は自習しておいてください。 空欄の部分の情報を掲載します。開閉→
クイズ、
Python 処理系のインストール(02/05 の演習までにインストールしておいてください。)、
TIOBE index,
GitHut,
Programming Languages
Influence Network,
クイズ、
グラフィックス関数解説(抜粋)、 (svg.h svg.c polygon.c diamond.c graph.c FirstSample.c SimpleSample.c HSBGrad.c TurtleSample.c)
グラフィックス関数を使ったプログラムのコンパイルと実行の仕方(まとめ): 開閉→
これまでの正解率が低い課題・クイズの解説と、過去問の解説を行う予定です。
学部 1 年生アンケートを実施します。
中間テストの再々挑戦テストは実施しません。
02/05 の課題の採点結果は 02/09(火)23:59 までに提出されたものについては 02/12 のオンライン試験までに公開する予定です。
それ以前の課題の(再)提出についても、02/09(火)23:59 までに提出されたものの採点結果は、 02/12 のオンライン試験までに公開する予定です。
その以降は、02/16(火)の 23:59 までに(再)提出された課題を 02/19 までに採点する予定です。
採点は 02/17 〜 02/19 までの間に実施するものが最終となります。02/05 の課題については、 再提出の機会が一度しかないので注意してください。
※ ペーパーテストは、持込み不可、 (オンラインテストは、教科書・プリント・ノートなど持込み可)です。
※ オンラインテストは、教科書・プリント・ノートなど持込み可、 (ペーパーテストは、持込み不可) です。
プリント・ルーズリーフはバインダー・綴ひもなどで一冊に綴じること。 バラバラのプリントは持込み不可とする。
メール, チャット, Messenger, FTP, WinSCP, Slack, LINE などの通信系ソフトは使用禁止である。 (通知も切っておくこと—Windows 10 で通知設定を変更する)
期末試験で合格者が極端に少ない場合に、救済試験を実施する可能性があります。 実施する場合、日程は 2/19 〜 2/24 の間になります。
救済試験を実施する場合、対象者には 2/17 までに連絡する予定です。
日程調整はしません。こちらで日程を決定します。
(メールに注意してください。)
対象者が出席できない場合は、いかなる理由でも不可となります。
(それに対する救済措置はありません。)
救済試験を実施する場合でも、 期末試験を含む成績が著しく低い人は対象としません。
(2/17 New) 2/17(水)の 13:43 頃に救済試験対象者にドリームキャンパスからメッセージを送信しました。 (クイズ・演習・中間・期末を総合して、40点以上60点未満の人が対象です。) そのメッセージを受け取っていない人は、合格(または不合格)が確定です。
※ ペーパーテストは、持込み不可、 (オンラインテストは、教科書・プリント・ノートなど持込み可)です。
※ オンラインテストは、教科書・プリント・ノートなど持込み可、 (ペーパーテストは、持込み不可) です。
※予定は変更の可能性があります。
(← ここ以降の予定の開閉)
以下の教科書の、おおむね第 1 〜 8 章に相当する部分を扱います。
新・明解C言語入門編
柴田 望洋 著
SBクリエイティブ
ISBN978-4-7973-7702-6
ただし、7-2 節 の中の「ビット単位の論理演算」、「シフト演算」、「オーバーフローと例外」、 8-1 節「関数形式マクロ」、8-2 節「ソート」、8-3 節「列挙体」を除きます。ただし、 8-1 節の中のコンマ演算子は扱います。
索引と全ソースプログラムは、 是非、ダウンロードページから入手して、 索引は印刷しておいてください。
上記の教科書や C 言語の標準的な解説書:
プログラミング言語 C 第 2 版 B.W. カーニハン, D.M. リッチー 著 石田 晴久 訳 共立出版ISBN 978-4320026926
※原著 The C Programming Language, 2nd Edition Brian W. Kernighan, Dennis M. Ritchie Prentice HallISBN 978-0131103627
に書かれている事柄で、この授業で取り扱わない(主な)項目は以下のとおりです。
文字列、 ポインタ、構造体、ファイル入出力、(ここまでは2年生の「中級プログラミング」で扱います。)
ビット演算子、goto 文とラベル、 関数形式マクロ、列挙体 (enum)、 共用体 (union)、ビットフィールド、分割コンパイル、 動的メモリ割当て (malloc と free)、(これらは2年生以降の各授業で必要に応じて紹介します。)