わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

プログラムを説明する (5)名称と文末表現

f:id:takehikom:20220226204415j:plain
「ここからは,『完成させてから』『動作しないとき』のどちらの場合でも,説明のときに注意してほしい事項です.
 『名称』と,『文末表現』に,注意を払いましょう.
 『名称』というのは,スライドのように,printf("%c %d\n", 'c', n);という,C言語のコードがあったときに,この一部をどのように表記して取り上げるか,に関することです.
 最初の単語は『printf』です.そしてこれは,関数名です.そういうときは…」
f:id:takehikom:20220226204423j:plain
「『printf関数』,または『関数printf』,と書くようにするといいでしょう.
 関数名と『関数』は,基本的にどちらが先であとでも,かまいませんが,mainに限っては『main関数』のみです.それと,『printf文』は間違いです.セミコロンで終わるこのコード全体が,1つの文となります.
 このコードでは,printf関数を呼び出す際に,3つの引数を指定します.実引数になりますが,説明にあたっては『引数』だけのほうがいいでしょう.それで,第1引数は"%c %d\n"で,これは文字列です.第2引数は'c'ですが,これを『'c'』と書くのでは,誤解される可能性もあります.
 ここは『文字定数'c'』と書くことで,変数名でも文字列でもなく,文字定数であることが,明確になります.
 第3引数は,nだけです.これも『n』とだけ書くのでは,ぶっきらぼうですので…『変数n』と書くようにしましょう.なお,変数名と『変数』に関しては,必ず『変数』が先で,『変数~』になります.
 関数名も変数名も,一つの文章,または一つの段落で,同じものが何回も出現するときには,最初だけ『関数』『変数』を書いて,2回目以降は『printf』や『n』だけにする,『関数』『変数』を書かない,とすればより読みやすくなります.
 2番目の注意点は,文末表現です」
f:id:takehikom:20220226204433j:plain
「文末表現は,シンプルで,誤解されない表記にしてください.
 一般に,説明文は書き言葉ですので,『である体(常体)』にします.ただし教員に質問するなど,用途によっては『です体(敬体)』にすることもあります.
 シンプルでない,誤解されやすい,というのは,否定の言葉を伴うときに起こりがちです.例えば『~しないわけではない』といった,二重否定で文を終えるというのは,よほどでない限り,採用すべきではないのです…と言いながら今,私自身も,二重否定の文を言ってしまいました.
 もう一つ,『~しかねる』という言葉も,使わないことをお勧めします.辞書を引くと『兼ねる』のところに載っていますが,『しかねる』になると『できない』という意味になります.『しかねる』は,形式的には肯定ですが,その意味合いは否定であり,一読して,意味をとらえにくいのです.『しかねない』も,説明にはよくない文末表現と思っておくといいでしょう.
 スライドに書けませんでしたが,一つの文で『~して,~して,』だとか,『~し,~し,』や,『~を行い,~を行い,』のように,同じ表記が続いて読点になるというのは,読みやすい文であるとは言えません.いくつかの文を並べた,文章だと,文末が『~する.~する.』のように同じというのも,単調さを与えることになります.
 といっても,時と場合によります.急ぎのときは,そのような表記があったり,『include文』のような表記ミスがあったりしても,受け取る側はそんなことで,この人ちゃんと書けていないと,思ったりすることはありません.
 ただ,送る前に,文章全体を読み直して,誤記はもちろん,ただちに修正できるところはないか,チェックする習慣をつけるようにしましょう」

補足

 上記の『include文』は,意図的な間違いです.「文」ではありません.
 担当授業では説明していませんが,#include <stdio.h>などはCプログラミングでは「前処理指令」と呼ばれます.今回のコード例でprintfが関数名でnが変数名であるのと同じように,このinlucdeは,「ディレクティブ」と呼ばれます.
 なのですが「ディレクティブ」はC言語では広く利用されているとは言えず,説明するときには「#include <stdio.h>の行」と書くか,行番号だけを示すのがいいでしょう.