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