レポート作成例:プログラミング演習1 レポートA, B

プログラミング演習1 レポートA

  • 生成PDFの例 (.pdf)

  • ソースファイル (.tex)

    ソースファイルのプレビュー(クリックして開く)
      1% ファイル先頭から\begin{document}までの内容(プレアンブル)については,
      2% 基本的に { } の中を書き換えるだけでよい.
      3\documentclass[autodetect-engine,dvi=dvipdfmx,ja=standard,
      4               a4j,11pt]{bxjsarticle}
      5
      6%%======== プレアンブル ============================================%%
      7% 用紙設定:指示があれば,適切な余白に設定しなおす
      8\RequirePackage{geometry}
      9\geometry{reset,paperwidth=210truemm,paperheight=297truemm}
     10\geometry{hmargin=25truemm,top=20truemm,bottom=25truemm,footskip=10truemm,headheight=0mm}
     11%\geometry{showframe} % 本文の"枠"を確認したければ,コメントアウト
     12
     13% 設定:図の挿入
     14% http://edu2024.sp.cs.okayama-u.ac.jp/info/tool_guide/tex.html#latex_figure
     15\usepackage{graphicx}
     16
     17% 設定:ソースコードの挿入
     18% http://edu2024.sp.cs.okayama-u.ac.jp/info/tool_guide/tex.html#latex_fvextra
     19\usepackage{fvextra}
     20\renewcommand{\theFancyVerbLine}{\texttt{\footnotesize{\arabic{FancyVerbLine}:}}}
     21\fvset{breaklines=true, breakanywhere=true}  % fvextraが必要.fancyvrbではエラーになる.
     22
     23% 設定:ソースコードをfloat扱いするための環境の定義
     24%       図1, 図2, ... のように,Listing 1, Listing 2, ... とすることができる.
     25\usepackage{newfloat}
     26\DeclareFloatingEnvironment[name=Listing, fileext=lol]{eopcode}
     27
     28%%======== レポートタイトル等 ======================================%%
     29% ToDo: 提出要領に従って,適切なタイトル・サブタイトルを設定する
     30\title{プログラミング演習1 レポートA\\        % タイトル
     31       |\Large{C言語による構文解析の基本}|}   % サブタイトル
     32
     33% ToDo: 自分自身の氏名と学生番号に書き換える
     34\author{氏名: 原 直 (HARA, Sunao) \\
     35        学生番号: 0941xxxx}
     36
     37% ToDo: レポート課題等の指示に従って適切に書き換える
     38\date{出題日: 20xx年xx月xx日 \\
     39      提出日: 20xx年xx月xx日 \\
     40      締切日: 20xx年xx月xx日 \\}  % 注:最後の\\は不要に見えるが必要.
     41
     42
     43%%======== 本文 ====================================================%%
     44\begin{document}
     45\maketitle
     46% 目次つきの表紙ページにする場合はコメントを外す
     47%{\footnotesize \tableofcontents \newpage}
     48
     49%% 本文は以下に書く.課題に応じて適切な章立てを構成すること.
     50%% 章=\section,節=\subsection,項=\subsubsection である.
     51
     52    \textbf{\small※執筆上の注意:本書は空想上の課題に対するレポートの
     53    執筆例である.章の構成と書くべき内容の参考として提示するもの
     54    であるため,課題内容やプログラムの仕様などは,
     55    実際の演習課題の指示に従って適切にまとめ直す必要がある.
     56    文や文の一部を「・・・」や「??」によって省略している箇所があるが,
     57    これに穴埋めをするだけで,レポートが完成するわけではない.
     58    なお,サンプルと同じ書き出しで文章を書く必要もない.
     59    (この注意書きは提出用のレポートでは必ず消すか,コメントアウトすること)※}
     60
     61%--------------------------------------------------------------------%
     62\section{概要} \label{sec:abstract}
     63    \textbf{\small※執筆上の注意:
     64    演習課題説明書を読み,本レポートとして実施した課題が分かるように書く.
     65    (この注意書きは提出用のレポートでは必ず消すか,コメントアウトすること)※}
     66
     67本演習では・・・を作成する・・・.
     68・・・のため,・・・・をおこなう.
     69
     70本レポートでは,演習中に取り組んだ課題として,
     71以下の課題??から課題??についての内容を報告する.
     72
     73\begin{description}
     74  \item[課題1] Linux環境におけるC言語プログラミング
     75  \item[課題2] 文字列操作・・・(\textbf{サンプルのため,省略} 76  %本文の記述と矛盾しないように注意すること.
     77\end{description}
     78
     79%--------------------------------------------------------------------%
     80\section{課題1:Linux環境におけるC言語プログラミング} \label{sec:topic1}
     81    \textbf{\small※執筆上の注意:少なくとも,(1) gccによるコンパイル方法,
     82    (2) コンパイルされたプログラムを実行する方法については記載すること.\\
     83    なお,本講義では,Red Hat Linux は使っていない.適切に書き直すこと.
     84    (この注意書きは提出用のレポートでは必ず消すか,コメントアウトすること)※}
     85
     86本講義では,Linux環境におけるC言語プログラミングをおこなう.
     87そこで,本章では・・・についてまとめる.
     88
     89以降のプログラムは,いずれも Red Hat Linux 3.2.2-5 で動作を確認しているが,
     90一般的な UNIX で動作することを意図して作成している.
     91なお,以降の実行例における,行頭の \verb|$| 記号は,
     92Red Hat Linux 3.2.2-5におけるターミナルのプロンプトである.
     93% 注:以降の課題において,実行結果を得るために利用した,実行環境のOS,
     94%     ならびに,その環境におけるプロンプトを必ず書くこと.
     95
     96C言語で書かれたソースコードは,\verb|gcc|でコンパイルすることで,
     97プログラムの実行ファイルを生成する.
     98例えば,\verb|program1.c|であれば,
     99
    100% Verbatim environment
    101% プリアンブルで \usepackage{fvextra} か \usepackage{fancyvrb} が必要.
    102%   - numbers           行番号を表示.none 非表示.left 左に表示.
    103%   - xleftmargin       枠の左の余白.行番号表示用に余白を与えたい.
    104%   - numbersep         行番号と枠の間隙 (gap).デフォルトは 12 pt.
    105%   - fontsize          フォントサイズ指定
    106%   - baselinestretch   行間の大きさを比率で指定.デフォルトは 1.0.
    107\begin{Verbatim}[numbers=none, xleftmargin=10mm, numbersep=6pt,
    108  fontsize=\normalsize, baselinestretch=0.8]
    109$ gcc -Wall ・・・
    110\end{Verbatim}
    111%
    112のようにコンパイルする.
    113この時,生成されるプログラムの実行ファイルは・・・という名前になる.
    114
    115% Tips: Verbatim の後に空行を入れると,段落が変わってしまう.
    116% 段落は変えたくないが,texソースでは隙間を空けて読みやすくしたいなら,
    117% 上記例のように,%のみの行を置くとよい.
    118
    119ここで,\verb|-Wall|とは...するためのオプションであり,
    120\verb|-o|とは・・・を指定するオプションである.
    121これらのオプションをつけることで,・・・(略)
    122
    123生成されたプログラムを実行するには,以下のようにターミナルで入力する.
    124
    125\begin{Verbatim}[numbers=none, xleftmargin=10mm, numbersep=6pt,
    126  fontsize=\normalsize, baselinestretch=0.8]
    127$ program1
    128\end{Verbatim}
    129
    130% 上記は,ダメな説明の例である.正しく動かすことができるよう,書き直すこと.
    131%
    132% !もう一歩上へ!
    133% 何が問題か理解しているならば,その旨をレポートに書くこともできよう.
    134% 例えば,上記の実行例の後に,「ここで,xxxとしている点に注意が必要である.
    135% xxxとすると,xxxになってしまう.そのため,xxxが必要なのである.」
    136% といったことが書けると,レポートらしくなる.講義中に感じたちょっとした疑問は,
    137% レポートを書くために,重要な気づきを与えてくれる.ただし,その疑問が「xxxは
    138% 不思議だと思った.」で止まってしまうと,レポートではなく感想文になってしまう.
    139% 「感想」は,最後の感想の章以外に書いてはいけない.
    140
    141%--------------------------------------------------------------------%
    142\section{課題2:文字列操作の基礎} \label{sec:topic2}
    143% Tips:
    144% - section, subsectionなどでは verbが使えない.必要ならば texttt を使うとよい.
    145
    146%--------------------------------------------------------------------%
    147\subsection{プログラムの説明}
    148    \textbf{\small ※執筆上の注意:変数や数値は$\backslash$verbや\$\$
    149    で囲って,適切な書体で記述することを忘れずに.また,章・節番号や
    150    図表番号の引用も,数字を直接書くのではなく,\LaTeX{} の機能を使うこと.
    151    なお,このサンプルでは``わざと''一部の処理を省略している.
    152    見た目の違いを確認して,自分のレポートでは処理を忘れないようにしよう.
    153    (この注意書きは提出用のレポートでは必ず消すか,コメントアウトすること)※}
    154
    155% Tips:
    156% - 最初の段落で,この課題で作成したプログラムの全体像を説明する.
    157% - 次の段落で,プログラム内の関数や特に重要な変数等の名前や場所などを説明する.
    158% - 以降の段落で,各関数や変数等に関する詳細を説明する.
    159
    160本課題で作成するプログラムは,・・・をするプログラムである.
    161プログラムリストは・・・節に添付している.
    162
    163プログラムは全部で267行からなる.
    164まず,文字列操作関数として,
    165\verb|subst()|関数を11--25行目で宣言し, % この行は適切な書き方の例
    166split()関数を27-44行目で宣言している.   % この行は不適切な書き方の例
    167次に,これらの関数の動作を確認するため,・・・(省略)
    168最後に,・・・において,・・・(省略)
    169
    170\verb|subst(STR, C1, C2)|関数は,
    171\verb|STR|が指す文字列中の,文字\verb|C1|を文字\verb|C2|に置き換える関数である.
    172プログラム中では,xxx関数の中で,入力文字列中の末尾に付く改行文字を
    173ヌル文字で置き換えるために使用している.
    174
    175\verb|split(STR, ...)|関数は,・・・(※サンプルのため,いろいろと省略)
    176
    177%--------------------------------------------------------------------%
    178\subsection{動作確認の方法}
    179    \textbf{\small ※執筆上の注意:プログラムの使用法を説明する節である.
    180    入力データの準備,コマンドの実行方法,実行中のキーボード入力例,など
    181    を書く.ソースコードのファイルと,このレポートの記述通り実行すれば,
    182    報告者と同じ結果が再現できるように書いておく,という意識が必要である.
    183    なお,入力データの準備が不要なら無理に何かを準備する必要はない.この
    184    サンプルファイルでは,テンプレート文ではなく,架空の課題に対する記載
    185    例を示しているに過ぎない.
    186    (この注意書きは提出用のレポートでは必ず消すか,コメントアウトすること)※}
    187
    188本課題で作成したプログラムは,・・・をするプログラムであり,・・・が必要である.
    189そこで,まずは次の方法で・・・を準備する.
    190
    191(※サンプルのため,いろいろと省略)
    192
    193次に,以下の方法でプログラムを実行する.
    194
    195(※サンプルのため,いろいろと省略)
    196
    197実行結果として,次のような出力が得られる.
    198
    199(※サンプルのため,いろいろと省略)
    200
    201%--------------------------------------------------------------------%
    202\subsection{動作確認の結果}
    203    \textbf{\small ※執筆上の注意:動作確認の観点から結果を述べる.
    204    すなわち,前節で記述した実行方法(や入力データ)と実験結果から,
    205    課題プログラムの動作として妥当かどうかの言及をする.
    206    想定外の動作を発見したなら,そのことも書いておくとよい.
    207    (この注意書きは提出用のレポートでは必ず消すか,コメントアウトすること)※}
    208
    209前節における,入力1に対する結果1を見ると,・・・
    210(※サンプルのため,いろいろと省略)
    211
    212入力3のように・・・では,結果3のような・・・となることがある.
    213そのため,・・・関数を利用する際にxxxとならないように,注意する必要がある.
    214
    215(※サンプルのため,いろいろと省略)
    216
    217%--------------------------------------------------------------------%
    218\section{課題3:標準入力を受け付ける構文解析プログラムの作成}
    219\label{sec:topic3}
    220
    221%--------------------------------------------------------------------%
    222\subsection{プログラムの説明}
    223
    224(※サンプルのため,いろいろと省略)
    225
    226%--------------------------------------------------------------------%
    227\subsection{動作確認の方法}
    228
    229(※サンプルのため,いろいろと省略)
    230
    231%--------------------------------------------------------------------%
    232\subsection{動作確認の結果}
    233
    234(※サンプルのため,いろいろと省略)
    235
    236%--------------------------------------------------------------------%
    237\section{感想}
    238% 感想を書かないならコメントアウトしておくこと.
    239% なお,感想に書かれた"感想と思われる内容"は,評価の対象外である.
    240
    241(※サンプルのため,いろいろと省略)
    242
    243%--------------------------------------------------------------------%
    244\section{作成したプログラムのソースコード}
    245    \textbf{\small ※執筆上の注意:余白にはみ出さないように注意.
    246    ソースコードは,1行あたり80文字以内に収めるのが無難.
    247    また,??章のような状態でレポートを提出しないように注意すること.
    248    (この注意書きは提出用のレポートでは必ず消すか,コメントアウトすること)※}
    249
    250%--------------------------------------------------------------------%
    251\subsection{課題2のソースコード} \label{sec:topic2-code}
    252
    253課題2のために作成したプログラムを以下に添付する.
    254なお,\ref{sec:abstract}章に示した課題については,
    255\ref{xxxx}章で示したようにすべて正常に動作したことを付記しておく.
    256
    257% Verbatim environment
    258% プリアンブルで \usepackage{fvextra} か \usepackage{fancyvrb} が必要.
    259%   - numbers           行番号を表示.left なら左に表示.
    260%   - xleftmargin       枠の左の余白.行番号表示用に余白を与えたい.
    261%   - numbersep         行番号と枠の間隙 (gap).デフォルトは 12 pt.
    262%   - fontsize          フォントサイズ指定
    263%   - baselinestretch   行間の大きさを比率で指定.デフォルトは 1.0.
    264\begin{Verbatim}[numbers=left, xleftmargin=10mm, numbersep=6pt,
    265  fontsize=\small, baselinestretch=0.8]
    266#include <stdio.h>
    267
    268int main()
    269{
    270    char s[4] = {'A', 'B', 'C', '\0'};
    271    printf("s = %s\n", s);
    272    return 0;
    273}
    274// 以下は,はみ出し文字数を確認するためのダミーコメントです.
    275//00000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999
    276\end{Verbatim}
    277
    278%--------------------------------------------------------------------%
    279\subsection{課題3のソースコード} \label{sec:topic3-code}
    280
    281課題3のために作成したプログラムを以下に添付する.
    282なお,\ref{sec:abstract}章に示した課題については,
    283\ref{xxxx}章で示したようにすべて正常に動作したことを付記しておく.
    284
    285% Verbatim environment
    286% プリアンブルで \usepackage{fvextra} か \usepackage{fancyvrb} が必要.
    287%   - numbers           行番号を表示.left なら左に表示.
    288%   - xleftmargin       枠の左の余白.行番号表示用に余白を与えたい.
    289%   - numbersep         行番号と枠の間隙 (gap).デフォルトは 12 pt.
    290%   - fontsize          フォントサイズ指定
    291%   - baselinestretch   行間の大きさを比率で指定.デフォルトは 1.0.
    292\begin{Verbatim}[numbers=left, xleftmargin=10mm, numbersep=6pt,
    293  fontsize=\small, baselinestretch=0.8]
    294#include <stdio.h>
    295
    296int main()
    297{
    298    char s[4] = {'A', 'B', 'C', '\0'};
    299    printf("s = %s\n", s);
    300    return 0;
    301}
    302\end{Verbatim}
    303
    304%--------------------------------------------------------------------%
    305%% 本文はここより上に書く(\begin{document}~\end{document}が本文である)
    306\end{document}
    

プログラミング演習1 レポートB

  • 生成PDFの例 (.pdf)

  • ソースファイル (.tex)

    ソースファイルのプレビュー(クリックして開く)
      1% ファイル先頭から\begin{document}までの内容(プレアンブル)については,
      2% 基本的に { } の中を書き換えるだけでよい.
      3\documentclass[autodetect-engine,dvi=dvipdfmx,ja=standard,
      4               a4j,11pt]{bxjsarticle}
      5
      6%%======== プレアンブル ============================================%%
      7% 用紙設定:指示があれば,適切な余白に設定しなおす
      8\RequirePackage{geometry}
      9\geometry{reset,paperwidth=210truemm,paperheight=297truemm}
     10\geometry{hmargin=25truemm,top=20truemm,bottom=25truemm,footskip=10truemm,headheight=0mm}
     11%\geometry{showframe} % 本文の"枠"を確認したければ,コメントアウト
     12
     13% 設定:図の挿入
     14% http://edu2024.sp.cs.okayama-u.ac.jp/info/tool_guide/tex.html#latex_figure
     15\usepackage{graphicx}
     16
     17% 設定:ソースコードの挿入
     18% http://edu2024.sp.cs.okayama-u.ac.jp/info/tool_guide/tex.html#latex_fvextra
     19\usepackage{fvextra}
     20\renewcommand{\theFancyVerbLine}{\texttt{\footnotesize{\arabic{FancyVerbLine}:}}}
     21\fvset{breaklines=true, breakanywhere=true}  % fvextraが必要.fancyvrbではエラーになる.
     22
     23% 設定:ソースコードをfloat扱いするための環境の定義
     24%       図1, 図2, ... のように,Listing 1, Listing 2, ... とすることができる.
     25\usepackage{newfloat}
     26\DeclareFloatingEnvironment[name=Listing, fileext=lol]{eopcode}
     27
     28%%======== レポートタイトル等 ======================================%%
     29% ToDo: 提出要領に従って,適切なタイトル・サブタイトルを設定する
     30\title{プログラミング演習1 レポートB\\         % タイトル
     31       |\Large{適切なサブタイトルを付ける}|}   % サブタイトル
     32
     33% ToDo: 自分自身の氏名と学生番号に書き換える
     34\author{氏名: 原 直 (HARA, Sunao) \\
     35        学生番号: 0941xxxx}
     36
     37% ToDo: レポート課題等の指示に従って適切に書き換える
     38\date{出題日: 20xx年xx月xx日 \\
     39      提出日: 20xx年xx月xx日 \\
     40      締切日: 20xx年xx月xx日 \\}  % 注:最後の\\は不要に見えるが必要.
     41
     42
     43%%======== 本文 ====================================================%%
     44\begin{document}
     45\maketitle
     46% 目次つきの表紙ページにする場合はコメントを外す
     47%{\footnotesize \tableofcontents \newpage}
     48
     49%% 本文は以下に書く.課題に応じて適切な章立てを構成すること.
     50%% 章=\section,節=\subsection,項=\subsubsection である.
     51
     52    \textbf{\small※執筆上の注意:本書は空想上の課題に対するレポートの
     53    執筆例である.章の構成と書くべき内容の参考として提示するもの
     54    であるため,課題内容やプログラムの仕様などは,
     55    実際の演習課題の指示に従って適切にまとめ直す必要がある.
     56    文や文の一部を「・・・」や「??」によって省略している箇所があるが,
     57    これに穴埋めをするだけで,レポートが完成するわけではない.
     58    なお,サンプルと同じ書き出しで文章を書く必要もない.
     59    (この注意書きは提出用のレポートでは必ず消すか,コメントアウトすること)※}
     60
     61%--------------------------------------------------------------------%
     62\section{概要} \label{sec:abstract}
     63    \textbf{\small※執筆上の注意:
     64    演習課題説明書を読み,本レポートとして実施した課題が分かるように書く.
     65    (この注意書きは提出用のレポートでは必ず消すか,コメントアウトすること)※}
     66
     67% 繰り返す.以下は,架空の課題である.
     68本演習では,名簿管理機能を有するプログラムを,C言語で作成する.
     69このプログラムは,標準入力から「ID, 氏名, 誕生日, 住所, 備考」からなる
     70コンマ区切り形式(CSV形式)の名簿データを受け付けて,
     71それらをメモリ中に登録する機能を持つ.
     72ただし,\%で始まる入力行はコマンド入力と解釈し,
     73登録してあるデータを表示したり整列したりする機能も持つ.
     74
     75本レポートでは,演習中に取り組んだ課題として,
     76以下の課題??から課題??についての内容を報告する.
     77
     78\begin{description}
     79  \item[課題4] ・・・
     80  \item[課題5] ・・・
     81  %本文の記述と矛盾しないように注意すること.
     82  %・・・は「サンプルのため省略」の意味で書いている.各自で適切に書き直すこと.
     83\end{description}
     84
     85% 以下は,レポートB以降で必須の考察についての書き方の例.
     86また,考察課題として,以下の観点での考察をおこない,\ref{}章にまとめた.
     87
     88\begin{description}
     89  \item[考察1] xxxxxxx (\ref{}節)
     90  \item[考察2] xxxxxxx (\ref{}節)
     91  %本文の記述と矛盾しないように注意すること.
     92\end{description}
     93
     94
     95%--------------------------------------------------------------------%
     96\section{プログラムの作成方針} \label{sec:plan-of-programming}
     97    \textbf{\small※執筆上の注意:課題の理解を深めるため,課題説明書を見ながら
     98    書き写そう.コピペは非推奨.なお,追加仕様も,書いているほうが望ましいが,
     99    レポートの要件として必須とはしない.追加仕様を書く場合は,次節以降の説明や
    100    考察などを通して,その追加仕様の意義を説明するとより良い.
    101    (この注意書きは提出用のレポートでは必ず消すか,コメントアウトすること)※}
    102
    103本演習で作成したプログラムが満たすべき要件と仕様として,
    104「(1) 基本要件」と「(2) 基本仕様」を示す.
    105% 追加仕様も書くなら,書き変えを忘れずに
    106
    107\subsection*{(1) 基本要件}
    108% ...ction* と,アスタリスクを入れている点に注意.数字無しの節や項目が作られる.
    109
    110\begin{enumerate}
    111  \item プログラムは,その実行中,・・・
    112  \item 名簿データは,・・・・
    113  \item プログラムとしての動作や名簿データの管理のために,・・・
    114  \begin{enumerate}
    115    \item プログラムの正常な終了
    116    \item 登録された・・・
    117    % サンプルのため省略.
    118    % レポートBでは,レポートBの時点で必要な機能だけ書いてあればよい
    119  \end{enumerate}
    120  \item 標準入力からのユーザ入力を通して,,,      % サンプルのため省略
    121\end{enumerate}
    122% Tips: enumerateの行間を調整するなら,以下の様に調整用のコマンドを入れる.
    123% \begin{enumerate}
    124%   \setlength{\parskip}{0em} \setlength{\itemsep}{0.25em}   % <--
    125%   \item ...
    126%   \item
    127
    128\subsection*{(2) 基本仕様}
    129
    130\begin{enumerate}
    131  \item 名簿データは,コンマ区切りの文字列(\textbf{CSV入力}と呼ぶ)で表されるものとし,%
    132        Listing~\ref{lst:csvdata}に示したようなテキストデータを処理できるようにする.%
    133        %CSV入力の詳細は,\ref{sec:sepc_csv}節に示す.  % <-- この1文は,レポートでは不要
    134  \item コマンドは,\%で始まる文字列(\textbf{コマンド入力}と呼ぶ)とし,表\ref{tab:commands}にあげたコマンドをすべて実装する
    135  \item 1つの名簿データは,C言語の構造体 (\texttt{struct}) を用いて,・・・   % サンプルのため省略
    136  % サンプルのため省略.仕様書の footnote は書かなくてよい.
    137\end{enumerate}
    138
    139% 追加仕様も書くなら,書き変えを忘れずに
    140%\subsubsection*{(3) 追加仕様}
    141% \begin{enumerate}
    142%   \item 
    143% \end{enumerate}
    144
    145%========================= EXAMPLE CSV ================================%
    146\begin{eopcode}[b]
    147\centering % この1行はbegin~endの中を中央寄せにする,というコマンド
    148% Verbatim environment
    149% プリアンブルで \usepackage{fvextra} か \usepackage{fancyvrb} が必要.
    150%   - frame         枠の設定.single 四角で囲う.none 囲わない.
    151%   - xleftmargin   枠の左の余白.行番号表示用の余白も考慮が必要.
    152%   - xrightmargin  枠の右の余白
    153%   - numbersep     行番号と枠の間隙 (gap).デフォルトは 12 pt.
    154%   - gobble        先頭n文字を無視.インデントを無視したい場合に利用する.
    155%   - fontsize      フォントサイズ指定.\normalsize, \small, ...
    156%   - numbers       行番号を表示.none 非表示.left 左に表示.
    157%   - firstnumber   最初の行番号を指定.途中の行番号から指定したいなら数字を入れる.
    158\begin{Verbatim}[frame=single, xleftmargin=3mm, xrightmargin=3mm, numbersep=6pt,
    159                gobble=0, fontsize=\small, numbers=left, firstnumber=1]
    1605100046,The Bridge,1845-11-2,14 Seafield Road Longman Inverness,SEN Unit 2.0 Open
    1615100127,Bower Primary School,1908-1-19,Bowermadden Bower Caithness,01955 641225 ...
    1625100224,Canisbay Primary School,1928-7-5,Canisbay Wick,01955 611337 Primary 56 3...
    1635100321,Castletown Primary School,1913-11-4,Castletown Thurso,01847 821256 01847...
    164\end{Verbatim}
    165  \caption{名簿データのCSV入力形式の例.1行におさまらないデータは...で省略した.}
    166  \label{lst:csvdata}
    167\end{eopcode}
    168%========================= EXAMPLE CSV ================================%
    169  
    170%========================= COMMAND LIST ================================%
    171\begin{table}[t]  %表の位置は原則として t または b.h や H は使わない.
    172\centering % この1行はbegin~endの中を中央寄せにする,というコマンド
    173  \caption{実装するコマンド}
    174  \label{tab:commands}
    175  \begin{tabular}{|l|ll|l|}
    176  \hline
    177    \textbf{コマンド} & \textbf{意味} &        & \textbf{備考} \\
    178  \hline\hline
    179    \verb|%Q|   & 終了                & (Quit)  & \\
    180  \hline
    181    \verb|%P n| & 先頭から$n$件表示   & (Print) & $n$が$0$ $\to$ 全件表示,        \\
    182                &                     &         & $n$が負 $\to$ 後ろから$-n$件表示 \\
    183  \hline
    184    *****       &(サンプルのため     & 省略)    & \\
    185  \hline
    186  \end{tabular}
    187\end{table}
    188%========================= COMMAND LIST ================================%
    189  
    190% 以下の2行は提出用のレポートでは必ず消すこと
    191\textbf{\small※執筆上の注意:繰り返すが,本書は空想上の課題に対するレポートの
    192    執筆例である.書くべき内容としては,課題書等を読んだうえで適切に執筆すること.
    193    (この注意書きは提出用のレポートでは必ず消すか,コメントアウトすること)※}
    194
    195%--------------------------------------------------------------------%
    196\section{プログラムの説明} \label{xxxx}   % ToDo: 適切なラベルを付けておく.
    197% およそ,以下のような内容が記載されていることが期待されている.
    198% - プログラムの全体像の説明
    199% - 課題4に関するプログラムの説明(3.1節)
    200% - 課題5に関するプログラムの説明(3.2節)
    201% - 課題6に関するプログラムの説明(3.3節)
    202% - 課題7に関するプログラムの説明(3.4節)
    203% LaTeXの機能(subsection, subsubsection, 他)を活用し,レポートとしての構成を考えること.
    204% \verv, $ $, \textttなど,適切な書体を利用することも忘れずに.
    205%   Tips:
    206%   - section, subsectionなどの中では verbが使えない.texttt を使うとよい.
    207
    208
    209本課題で作成するプログラムは,・・・をするプログラムである.
    210プログラムリストは・・・節に添付している.
    211
    212プログラムは全部で267行からなる.
    213課題4「テーマ名を書く」に関する機能は,主に10--100行目に記載されている.
    214課題5「テーマ名を書く」に関する機能は,主に10--20, ならびに,101-200行目に記載されている.
    215課題6・・・
    216
    217以下,課題4, 5, 6, 7のプログラムの詳細な説明を,
    218それぞれ\ref{}節,\ref{}節,\ref{}節,\ref{}節に分けて,記載する.
    219
    220\subsection{????}   % 適切な見出しを考えること.空欄にして,数字のみ示すのもダメ.
    221
    222yyyy,zzzzという関数を作成した.
    223yyyyは,xxxxxのための関数である.
    224zzzzは,yyyyを利用しながらxxxxのための関数である.
    225aaaa, bbbb, cccc 関数は,eeeee 関数から呼び出される関数である.
    226
    227yyyyの詳細について説明する.
    228yyyyは,・・・
    229
    230zzzzの詳細について説明する.
    231zzzzは,・・・
    232
    233aaa, bbbb, cccc, は,それぞれ,AAAA, BBBB, CCC のための関数である.
    234これは,\ref{}章の仕様で述べた機能を将来的に実装するために用意している.
    235ただし,今回のレポートBでは未実装である.
    236
    237\subsection{????}   % 適切な見出しを考えること.空欄にして,数字のみ示すのもダメ.
    238
    239(※サンプルのため,いろいろと省略)
    240
    241%--------------------------------------------------------------------%
    242\section{プログラムの使用方法と実行結果} \label{xxxx}   % ToDo: 適切なラベルを付けておく.
    243\textbf{\small ※執筆上の注意:変数や数値は$\backslash$verbや\$\$
    244で囲って,適切な書体で記述することを忘れずに.また,章・節番号や
    245図表番号の引用も,数字を直接書くのではなく,\LaTeX{} の機能を使うこと.
    246なお,このサンプルでは``わざと''一部の処理を省略している.
    247見た目の違いを確認して,自分のレポートでは処理を忘れないようにしよう.
    248(この注意書きは提出用のレポートでは必ず消すか,コメントアウトすること)※}
    249
    250% およそ,以下の内容が記載されていることが期待されている.
    251% - gccによるコンパイルとプログラムの実行方法(レポートAの2章の一部相当)
    252% - 課題4に関する,使用方法,実行結果(入力と出力がわかるように),結果に対する妥当性
    253% - 課題5に関する,使用方法,実行結果(入力と出力がわかるように),結果に対する妥当性
    254% - 課題6に関する,使用方法,実行結果(入力と出力がわかるように),結果に対する妥当性
    255% - 課題7に関する,使用方法,実行結果(入力と出力がわかるように),結果に対する妥当性
    256% LaTeXの機能(subsection, subsubsection, 他)を活用し,レポートとしての構成を考えること.
    257% \verv, $ $, \textttなど,適切な書体を利用することも忘れずに.
    258%   Tips:
    259%   - section, subsectionなどの中では verbが使えない.texttt を使うとよい.
    260
    261本レポート課題の実施にあたって,Linux環境におけるC言語プログラミングをおこなう.
    262まずは,・・・についてまとめる.
    263
    264以降のプログラムは,いずれも Red Hat Linux 3.2.2-5 で動作を確認しているが,
    265一般的な UNIX で動作することを意図して作成している.
    266なお,以降の実行例における,行頭の \verb|$| 記号は,
    267Red Hat Linux 3.2.2-5におけるターミナルのプロンプトである.
    268% 注:以降の課題において,実行結果を得るために利用した,実行環境のOS,
    269%     ならびに,その環境におけるプロンプトを必ず書くこと.
    270
    271C言語で書かれたソースコードは,\verb|gcc|でコンパイルすることで,
    272プログラムの実行ファイルを生成する.
    273今回作成したプログラムのソースコードは,\verb|xxxx.c|という名前で作成している.
    274このソースコードは,
    275
    276% Verbatim environment
    277% - プリアンブルで \usepackage{fvextra} か \usepackage{fancyvrb} が必要.
    278% - オプションの説明は,冒頭のCSVの挿入例を参照
    279\begin{Verbatim}[numbers=none, xleftmargin=8mm, numbersep=6pt,
    280  fontsize=\normalsize, baselinestretch=0.8]
    281$ gcc -Wall ・・・
    282\end{Verbatim}
    283%
    284のようにコンパイルする.
    285この時,生成されるプログラムの実行ファイルは・・・という名前になる.
    286
    287% Tips: Verbatim の後に空行を入れると,段落が変わってしまう.
    288% 段落は変えたくないが,texソースでは隙間を空けて読みやすくしたいなら,
    289% 上記例のように,%のみの行を置くとよい.
    290
    291ここで,\verb|-Wall|とは...するためのオプションであり,
    292\verb|-o|とは・・・を指定するオプションである.
    293これらのオプションをつけることで,・・・(略)
    294
    295生成されたプログラム \verb|xxxxx| を実行するには,以下のようにターミナルで入力する.
    296
    297% Verbatim environment
    298% - プリアンブルで \usepackage{fvextra} か \usepackage{fancyvrb} が必要.
    299% - オプションの説明は,冒頭のCSVの挿入例を参照
    300\begin{Verbatim}[numbers=none, xleftmargin=8mm, numbersep=6pt,
    301  fontsize=\normalsize, baselinestretch=0.8]
    302$ xxxxx
    303\end{Verbatim}
    304
    305% 上記は,ダメな説明の例である.正しく動かすことができるよう,書き直すこと.
    306%
    307% !もう一歩上へ!
    308% 何が問題か理解しているならば,その旨をレポートに書くこともできよう.
    309% 例えば,上記の実行例の後に,「ここで,xxxとしている点に注意が必要である.
    310% xxxとすると,xxxになってしまう.そのため,xxxが必要なのである.」
    311% といったことが書けると,レポートらしくなる.講義中に感じたちょっとした疑問は,
    312% レポートを書くために,重要な気づきを与えてくれる.ただし,その疑問が「xxxは
    313% 不思議だと思った.」で止まってしまうと,レポートではなく感想文になってしまう.
    314% 「感想」は,最後の感想の章以外に書いてはいけない.
    315
    316以下,各課題に応じて・・・(※サンプルのため,いろいろと省略)
    317
    318% 以下は書くべき内容の流れをざっくり書いているだけで,穴埋めしろという意味ではない.
    319% 主体をもってレポートを書いてほしい.
    320課題xxxxについて述べる.
    321xxxというファイルを作る.
    322・・・・の様に実行する.
    323これにより・・・という結果となる.
    324この結果は,・・・・ということである.
    325これは・・・の仕様を満たした動作といえる.
    326ただし,・・・・という追加仕様を必要としている点に注意が必要である.
    327
    328課題xxxxについて述べる.
    329xxxという入力により,動作例を示す.
    330・・・・の様に実行する.
    331これにより・・・という結果となる.
    332この結果は,・・・・ということである.
    333これは・・・の仕様を満たした動作といえる.
    334ただし,・・・・という追加仕様を必要としている点に注意が必要である.
    335
    336課題xxxxについて述べる.
    337xxxという入力ファイルを作り,動作例を示す.
    338・・・・の様に実行する.
    339これにより・・・という結果となる.
    340この結果は,・・・・ということである.
    341これは・・・の仕様を満たした動作といえる.
    342ただし,・・・・という追加仕様を必要としている点に注意が必要である.
    343
    344% いくつかの注意点を再掲する.
    345% - レポートとして読みやすくすることもよく考えること.
    346%   適切な節(subsection)や項(subsubsection)の利用は,読みやすさを向上させる.
    347% - Web資料では改行をこまめに入れることで読みやすくする習慣があるが,
    348%   印刷を前提としたレポートでは,意味のない箇所で改行をしてはならない.
    349%   (意味のない改行は,LaTeXでは明示的に \\ を使わないと入れられない.)
    350% - 適切な段落分け(LaTeXなら空行を入れる)は,話題を整理する意味がある.
    351%   改行の件と合わせれば,意味のある個所で段落を分けるべき,ということである.
    352%   全く段落を分けないで,レポートとしての長い文章を書くことは無い.
    353
    354%--------------------------------------------------------------------%
    355\section{プログラム全体の考察} \label{xxxx}   % ToDo: 適切なラベルを付けておく.
    356% 以下の通り,少なくとも2つの節に分けて,各考察を述べる.
    357
    358概要で述べたように,本レポートでは・・・・について述べる.
    359
    360%--------------------------------------------------------------------%
    361\subsection{考察1: xxxxxxx} \label{xxxx}   % ToDo: 適切なラベルを付けておく.
    362% 「感想」は,最後の感想の章以外に書いてはいけない.
    363
    364(※サンプルのため,いろいろと省略)
    365
    366(※以下,ソースコードを図表の様に掲載する場合の例)
    367
    368ここで,\ref{}のソースコードの 100--200 行目については,
    369Listing~\ref{lst:program-8}の様に書くことも考えられる.
    370この書き変えにより,・・・(※サンプルのため,いろいろと省略)
    371
    372\begin{eopcode}[tbp] % eopcode はプレアンブルで定義した独自の環境
    373% Verbatim environment
    374% - プリアンブルで \usepackage{fvextra} か \usepackage{fancyvrb} が必要.
    375% - オプションの説明は,冒頭のCSVの挿入例を参照
    376\begin{Verbatim}[frame=single,numbers=left, xleftmargin=10mm, numbersep=6pt,
    377    gobble=8, fontsize=\small, baselinestretch=0.8]
    378        char str = {'A', 'B', 'C', '\0'};
    379        char c1 = 'B';
    380\end{Verbatim}
    381% Tips:上記のようにソースコードの一部をコピペすると,レポートではインデントが
    382% 気になるときがある.例の様に,gobble オプションで取り除くのも手である.
    383\caption{xxxxxのソースコードの例}
    384\end{eopcode}
    385  
    386
    387%--------------------------------------------------------------------%
    388\subsection{考察2: xxxxxxx} \label{xxxx}   % ToDo: 適切なラベルを付けておく.
    389% 「感想」は,最後の感想の章以外に書いてはいけない.
    390
    391(※サンプルのため,いろいろと省略)
    392
    393
    394%--------------------------------------------------------------------%
    395\section{感想}
    396% 感想を書かないならコメントアウトしておくこと.
    397% なお,感想に書かれた"感想と思われる内容"は,評価の対象外である.
    398
    399(※サンプルのため,いろいろと省略)
    400
    401%--------------------------------------------------------------------%
    402\section{作成したプログラムのソースコード}
    403    \textbf{\small ※執筆上の注意:余白にはみ出さないように注意.
    404    ソースコードは,1行あたり80文字以内に収めるのが無難.
    405    また,??章のような状態でレポートを提出しないように注意すること.
    406    (この注意書きは提出用のレポートでは必ず消すか,コメントアウトすること)※}
    407
    408本レポートのために作成したプログラムを以下に添付する.
    409なお,\ref{sec:abstract}章に示した課題については,
    410\ref{xxxx}章で示したようにすべて正常に動作したことを付記しておく.
    411
    412% Verbatim environment
    413% プリアンブルで \usepackage{fvextra} か \usepackage{fancyvrb} が必要.
    414%   - numbers           行番号を表示.left なら左に表示.
    415%   - xleftmargin       枠の左の余白.行番号表示用に余白を与えたい.
    416%   - numbersep         行番号と枠の間隙 (gap).デフォルトは 12 pt.
    417%   - fontsize          フォントサイズ指定
    418%   - baselinestretch   行間の大きさを比率で指定.デフォルトは 1.0.
    419\begin{Verbatim}[numbers=left, xleftmargin=8mm, numbersep=6pt,
    420  fontsize=\small, baselinestretch=0.8]
    421#include <stdio.h>
    422
    423int main()
    424{
    425    char s[4] = {'A', 'B', 'C', '\0'};
    426    printf("s = %s\n", s);
    427    return 0;
    428}
    429// 以下は,はみ出し文字数を確認するためのダミーコメントです.
    430//00000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999
    431\end{Verbatim}
    432
    433% 参考:
    434% - 以下の様に Verbatim ではなく,VerbatimInput を利用すると,
    435%   外部ファイル (例では subst_test.c) を,自動的に取り込むことができる.
    436% - はみ出しが起こらないよう,ソースコードの1行あたりの文字数に注意しよう.
    437% - PDF作成後に,正しいファイルを取り込んだか,よく確認すること.
    438%   誤ったソースコードが記載されたレポートであったとしても,そのソースコードが,
    439%   課題実施にあたって書かれたソースコードとみなして,成績評価される.
    440%   (最悪の場合,課題未達成とみなされる場合もあり得る.)
    441%
    442%\begin{VerbatimInput}[numbers=left, xleftmargin=10mm, numbersep=6pt,
    443%  fontsize=\small, baselinestretch=0.8]
    444%{subst_test.c}
    445%\end{VerbatimInput}
    446
    447%--------------------------------------------------------------------%
    448% 参考文献
    449%   以下は,書き方の例である.実際に,参考にした書籍等を見て書くこと.
    450%   本文で引用する際は,\cite{book:algodata}などとすればよい.
    451\begin{thebibliography}{99}
    452  \bibitem{book:algodata} 平田富雄,アルゴリズムとデータ構造,森北出版,1990.
    453  \bibitem{book:label2} 著者名,書名,出版社,発行年.
    454  \bibitem{www:label3} WWWページタイトル,URL,アクセス日.
    455\end{thebibliography}
    456%以下の注意書きは提出レポートでは不要なため消すこと.
    457\textbf{\small ※執筆上の注意:
    458      これらは書き方の例である.実際に,参考にした書籍等を見て書くこと.
    459      読んでもいない本や存在しないウェブページを掲載してはならない.\\}
    460
    461%--------------------------------------------------------------------%
    462%% 本文はここより上に書く(\begin{document}~\end{document}が本文である)
    463\end{document}