UP | HOME

2017年度 プログラミング演習1,2

Table of Contents

1 基本情報

  • 科目名: プログラミング演習1,2 (Exercises on Programming1, 2)
  • 区分: 専門科目
  • 講義番号: 093206(プログラミング演習1)093207(プログラミング演習2)093007(旧プログラミング演習)
  • 担当: 後藤佑介,佐藤将也,新妻弘崇,原直
  • 主な対象: 情報系学科 2年次生
  • 学期: 第1学期(プログラミング演習1),第2学期(プログラミング演習2)
  • 時限: 水曜1,2,3限
  • 講義室: 工学部4号館 5階 プログラミング演習室
  • 種別: 必修
  • 単位数: 各1単位,計2単位
  • 教科書: B.W. カーニハン/D.M. リッチー著 「プログラミング言語C」
  • 本演習では,C言語そのものについて一通りの文法知識を持つ者を対象に, より実用的なプログラムの作成を通して,実践的なプログラミングの演習を行う. その際,ポインタや構造体といった,C言語において難解とされる項目, プログラム全体の組み立て方, よく利用されるアルゴリズムとデータ構造を使ったプログラミングの修得に重点を置く.

    具体的には,名簿管理プログラムを作成する中で,以下について体験的に学習する.

    1. プログラムの組み立てかた
    2. 文字/文字列,配列/ポインタ,構造体の取り扱い
    3. ソート,サーチなどのアルゴリズムとデータ構造
    4. テストとデバッグの手法

    受講者として想定しているのは,C言語の文法に関する基本的な知識を持ち, 数十行程度の簡単なプログラムが作成できる者である.

2 単位と試験について

  1. プログラミング演習1,2それぞれについて,レポートと,口頭試問の成績,及び毎回の提出物で総合的に判断する.
  2. レポートの締め切りは,講義中で指示する.
  3. プログラミング演習1では,レポート提出後の講義時間中にプログラムの動作テストを行う.
  4. プログラミング演習1の口頭試問は,グループ単位で行う.
  5. プログラミング演習2では,レポート提出後の講義時間中に個人単位で口頭試問を行う.

3 演習内容

課題プログラム

以下の仕様を満たす名簿管理プログラムを作成しなさい. 詳細は,pdf で配布の 資料 を参照のこと.

  • 標準入力から「ID,氏名,年月日,住所,備考」からなるコンマ区切り形式(CSV形式)の名簿データを受け付けて, それらをメモリ中に登録する.
  • ただし,%で始まる入力行はコマンド入力と解釈し, 登録してあるデータを表示したり整列したりする. 以下に実装すべきコマンドを示す.

    コマンド 意味 備考
    %Q 終了(Quit)  
    %C 登録件数などの表示(Check)  
    %P n 先頭からn件表示 (Print) n = 0: 全件表示, n < 0: 後ろから -n件表示
    %R file fileから読み込み(Read)  
    %W file fileへ書き出し(Write)  
    %F word wordを検索(Find) 結果を%Pと同じ形式で表示
    %S n データをn番目の項目で整列(Sort) 表示はしない

課題プログラムの 作成例 (バイナリ) をもとに各コマンドの動作や表示方法を参考にしなさい. また,必要ならテスト用にこちらの サンプルデータ (CSV)を使用しなさい.

レポート

レポート課題には,プログラミング演習1レポートとプログラミング演習2レポートの2つがある.それぞれの課題は,以下の通り.

プログラミング演習1レポート
CSVデータ登録と Q, C, Pコマンドの実装までを完成させ,そのプログラムについてレポートにまとめなさい.
プログラミング演習2レポート
作成した課題プログラムに対する説明と考察問題の解答をレポートにまとめなさい.

レポートの提出に関する注意は,以下の通り.

  1. プログラミング演習1レポート,プログラミング演習2レポートについて,それぞれ口頭試問を実施する.
  2. レポートは,Moodle ( 旧 WebClass )から PDF形式で締め切りまでに提出すること.
  3. 上記に加え,口頭試問当日は,同レポートを印刷して,左上をホチキスで綴じて持参すること.
  4. レポートの印刷については,教育用計算機のページ からたどれる TeX/印刷に関する注意 のページを参照のこと.
  5. レポート作成に関する一般的な注意については,レポート作成要項 を参照のこと.

練習課題とその解説

レポート作成のための練習課題を以下に示している. 講義では,これら練習課題を順番に解きながら解説を加える. 全練習を終えることで課題プログラムを作成できるように意図している. なお,いくつかの練習課題については,講義時間中に提出が求められることがあるので指示に従うこと.

  • FAQ よく聞かれる質問

4 講義日程(予定)

進捗等により,変更の可能性がある.

プログラミング演習1

日(1,2,3限) 内容 備考
1 4月12日(水) 課題プログラムの説明,文字列操作の復習  
2 4月19日(水) 文字列の切り出し (文字列とポインタ)  
3 4月26日(水) コマンド入力への対応 (文字列とポインタ)  
-- 5月03日(水) ** 休日 (みどりの日)  
4 5月10日(水) Qコマンドの実装 (文字列とポインタ)  
5 5月17日(水) P,Cコマンドの実装 (構造体と型変換)  
6 5月24日(水) 現在までのプログラムの動作確認とテスト  
7 5月31日(水) プログラム動作テスト,グループワーク,レポート確認  
8 6月07日(水) 試問(グループ)  

プログラミング演習2

日(1,2,3限) 内容 備考
1 6月14日(水) R,Wコマンドの実装1 (ファイル操作)  
2 6月21日(水) R,Wコマンドの実装2 (ファイル操作)  
3 6月28日(水) Fコマンドの実装 (検索)  
4 7月05日(水) Sコマンドの実装1 (整列)  
5 7月12日(水) Sコマンドの実装2 (整列)  
6 7月19日(水) 現在までのプログラムの動作確認とテスト  
7 7月26日(水) 試問1(個人)  
8 8月02日(水) 試問2(再試問日)  

5 連絡先

後藤佑介 (707号室) ほか p2@swlab.cs.okayama-u.ac.jp まで.

Author: Gotoh Yusuke

Email: p2@swlab.cs.okayama-u.ac.jp

Emacs 24.5.1 (Org mode 9.0.8)