講義に関して出た質問と回答をここに上げておくことにします。
(04/13 2012)
2014 年度用に多少修正しましたが、
過去の質問に対する回答の蓄積ですので、
現在の状況には合わない部分もあるかもしれません。
もしそういうものを見つけたら連絡してください。
(04/11 2014)
メモを書くスペースとしてあえて空けてあります。
多くの人が多分そういうスペースを必要とするだろうと思います。
(04/19 2012)
いくつか理由があります。
容易に想像がつくと思いますが、私の専門は数学で、 コンピュータはほぼ独学なので、 C 言語にもそんなに詳しいわけではありません。 例えば、C の続きとして C++ や Objective-C、 あるいは別な方向として Visual C++ を使っての GUI プログラミング、 などをやる手もあるかもしれませんが、いずれも私には無理です。
計算機実習 III は、ソフトコースの学生にとっては必修科目 (2010 年以前の入学生は全員必修) ですから、 プログラミングがやや苦手な人も履習しなければいけません。 C の続きを深くやることは、 プログラミングが苦手な人にとって不利な方向だと思います。
よって、新しい言語を学ぶことにして、 一旦全員がほぼ同じスタートラインに立って 基本的なことをやることにすれば、 プログラミングが得意でない人にとっても 履習しやすいだろうと考えました。
既に難しく感じているかもしれませんが、 バッチファイルやスクリプトは、C 言語よりも易しいです。 臆せず学んでください。
例えば卒業研究で何らかのプログラミング作業を行う場合、 実際は研究室によってどういうプログラミング言語を使うかは かなりバラバラで、どの研究室も C 言語を使う、 というわけではありません。 それはもちろん社会に出てからも同じです。
となれば、むしろ一つの言語のやり方だけを深く知っているよりも、 いくつかの言語の流儀を知っている方が、 新たな言語に出くわした場合に対応がしやすいだろうと思います。 実際、多くの情報系の大学で複数のプログラミング言語教育が行われています。
また、C 言語をある程度知っても、 MS-Windows パソコンを機能的に利用するために C 言語を使う、というところにはなかなかいきませんが、 バッチファイルやコマンドプロンプト、スクリプトを学ぶと、 定型作業の自動化や、ひとまとまりの作業を一つのバッチコマンドにすることで、 コンピュータを機能的、効率的に利用することができるようになります。
そのような目的には、バッチファイルや AWK が最適かと言われると、 別な解 (VBScript, PowerShell, Perl 等) ももちろんあると思いますが、 シンプルな解のうちの一つであることは間違いないと思います。
計算機実習 IV (III) のテーマをどのように決めたかを 先に少し説明しましょう。
私が計算機実習 IV (III) を担当することになって、 「C 言語の続き」をやるか、ほかのことをやるかをまず考えました。 その考察は 「Q.1.3. なぜ C 言語の続きをやらないのか」 に書いた通りです。
次に、ほかのことをやるとして、何をやるかを検討しました。そして、 「Q.1.3. なぜ C 言語の続きをやらないのか」 にも書いた通り、バッチやスクリプトを知ることが有益だと考えて、 その手の話をやることにしました。 そしてその候補として、以下のものを上げてみました:
バッチファイル、VBScript、Javascript、Perl、Ruby、PHP、 なでしこ、HSP、AWK、gnuplotこのうち、VBScript や Javascript、Perl、Ruby、PHP などの かなりしっかりしたもの、 考え方がやや難しいものは修得には時間がかかりますから、 ほぼ半年を通してその言語一つを学ぶ、という形になるでしょう。 しかし、それらの言語はそれ自体多少難しいわけですから、 「Q.1.3. なぜ C 言語の続きをやらないのか」 で書いたことにも合わないことになります。 ということでそれらは候補からは外しました。
それらに比べれば「なでしこ」や「HSP」は少し易しいし、 MS-Windows 専用だから実習しやすい、という利点はありますが、 やや特殊な話、ローカルな話になりすぎるきらいがありますし、 歴史が浅いという欠点もあります。
それで取得が易しく、歴史もあり、スクリプトらしい話もできる 「バッチファイル」「AWK」「gnuplot」が残ったわけです。
しかも、このうちどれか一つを深くやるよりも、 むしろそれぞれを浅くやり、 色々な考え方を知ることの方が有益だろうと考えました。 それで 3 つの言語を浅くやることにしたわけです。 「バッチファイル」「AWK」「gnuplot」は、 ちゃんとやろうとすればそれぞれに 200 ページ以上の本が出ている位で、 相当時間がかかりますが、 今回この計算機実習でやることはそれぞれの入口部分に過ぎませんし、 考え方もそれほど難しくはなかっただろうと思います。
新しい言語だったために あまりにたくさんのことをやったように感じたかもしれませんが、 実際にはごく浅いことをやっただけなので 「半年で複数の言語を新たに学ぶのは難しい」 というほどのことはないと思います。 資料に書いてあることを順番に実習していけば (授業中に終わらなくても、授業時間以外に実習をやれば) ちゃんと理解できる程度のものであっただろうと思います。
ちなみに、ほかの大学でも半年で複数の言語の実習というのは
普通に行われています。
実際、新大 (工学部) では以前「アセンブラと C 言語」なんていう
半年の実習科目がありました。
今回のはそれに比べてもはるかに易しいと思います。
(08/03 2012; 04/11 2014)
なお、2013 年度は、当初は gnuplot もやる予定でしたが、
結局 gnuplot はやりませんでした。
2014 年度以降も外す予定です。
(04/11 2014)
計算機実習やプログラミング学習については、 一般的に以下のことが言えると思います:
よって、説明をした上でそれをやってもらう、という方法よりも、 たくさん実習を間違いながらやってもらう、 ということの方が理解は進むと思います。
例えば、情報電子工学演習でも、 自分で問題を読んで問題を解くという形式を取りましたが、 今回もこのような「自習形式」を取ることで、 「書いてあることを読んで理解する」という能力を鍛える、 そして、自分のペースで実習する時間を増やす、 ということを計ったわけです。
そのため、資料は全部自習可能なように、 口頭での説明が必要ないように何度も推敲を重ねました。 この実習により、自分で資料を見て、 自分で考えて内容を理解する能力が 多少でもついてくれればと思っています。 実際、そういう能力が上がった気はしませんか ?
そもそも大学を出れば、
これまでのように本を解説してくれる人などほとんどおらず、
自分で本を読んで勉強していかなくてはなりません。
大学生は徐々にそういう勉強スタイルを身につけていく必要があると思います。
(08/03 2012)
普通に考えて、「やったこと、わかったことを説明せよ」は、
といった感じでしょうか。
「確認し説明せよ」もほぼ同じです。
(10/19 2013)
「説明せよ」と書いてなければ基本的には必要ありません。
けど、書きたければ書いても構いません。
(10/19 2013)
「どうなるか」は、確かにあいまいな表現かもしれません。 何をすればいいかは課題によって違いはあるかもしれませんが、 基本的には「どういう現象が起きたかを説明すること」を求めています。
この場合「起きた現象」とは、画面表示だけを指すわけではありません。 画面には何も表示されないけれど、 実際にはファイル名が変わってしまうとか、ファイルが新たに作られるとか、 表示だけでは説明できない現象が起きていることが多いです。 それを説明してください。
目に見える事実と実際に行われたことにギャップがある場合、 例えば画面表示はこうなっているんだけど、 実際にはこういうことが行われている、という場合には、 その目に見える事実が何を意味しているか、なぜそうなるのか、 などの説明が必要な場合もあるでしょう。
とにかく、「起きている現象の内容、意味をわかるように説明する」
ということを目標にすればいいでしょう。
(04/15 2014)
もちろんそんなことはないですが、 使ってない答案はたいてい間違えています。
なぜヒントを使っていないかといえば、 「そのようなヒントが必要なほど難しい問題だということがわかっていない」 という回答が大半です。 だから、ヒントがある意味が理解できないようなら、 ほぼ間違えていると見ていいでしょう。
プログラムが得意な人の中に、
自分独自の方法を編みだして解きたいのか、
そういった傾向が強い人がいます。
しかし一般にプログラムは、
自分独自のプログラムというのはあまり好まれません。
むしろ、誰が読んでも理解できるわかりやすいもの、
標準的なもの、シンプルなものが好まれ、良いものとされ
(なぜだかわかりますか ?)、
本当にプログラムの実力がある人はそういうものを書きます。
(04/22 2014)
まず、「cd [dir]」としないでください。 これは説明のために書いたもので、 そのまま「cd [dir]」としてはいけません。
「cd」はコマンド名だからそのまま書かなければいけませんが、 例えば 2014 年度であれば 2 回目の資料の 4 ページにも書いてある通り、 [dir] 自体を具体的なパスに置き換えて実行するので、 [ ] はつけません。 例えば今の場所に「jisyu」という名前のディレクトリ (フォルダ) がある場合、「cd jisyu」のように実行します。
指定したディレクトリ (フォルダ) が存在しない場合は、
もちろんうまくいきません。
(04/20 2012; 04/11 2014 修正)
いくつかの原因が考えられます。
コマンドプロンプトで自分で作成したバッチファイルの ファイル名だけを指定して実行させようとする場合は、 今自分がいるディレクトリ内のバッチファイルしか実行してくれません。
例えばバッチファイル (kadai1.bat) を勝手に「Z:\計算機実習」 などという名前のフォルダに保存した場合は、Z:\ では 「kadai1」とか「kadai1.bat」とかしても実行しません。 Z:\ に保存し直すか、Z:\ にバッチファイルを移動するか、 逆に自分自身が「Z:\計算機実習」内に移動してから実行するか、 「Z:\計算機実習\kadai1」のように実行するか、 のようにしないといけません (2014 年度であれば第 2 回の資料の§4 を参照)。
otbedit は、デフォルトではテキストモード (Txt) として立ち上がります。 そのまま保存するときにファイル名だけを書いて保存すると 「kadai.txt」のように拡張子が .txt のファイルになってしまいます。 それはバッチファイルとは見なされないので、当然実行できません。 ファイル名を .bat に変更するか、 バッチファイルモード (Bat) にして保存し直してください。
いずれにせよ、コマンドプロンプト上で「dir」か「dir /w」としてみれば、
実行しようと思っているバッチファイルがあるかどうかわかるので、
それで確認できるはずです。
(04/20 2012; 04/11 2014)
バッチファイルの先頭に「@echo off」をつけている場合は、 その行を「rem @echo off」のようにコメントアウトして実行すれば、 バッチファイルのコマンド一つ一つが表示されて実行されます。
変数も展開された結果が表示されるので、
どういう風に実行されているのか、
どのようなコマンド行として実行されるのかが表示され、
エラーもどこで起きているかがわかると思います。
(04/20 2012)
ちなみに、エラーの行は、
実際に実行されるべき行が表示される前にエラーメッセージが表示されるようなので、
エラーメッセージが表示された「次の行」に問題があることが多いようです。
(05/07 2012)
MS-Windows では「ファイル名」という呼び方には 2 つの流儀があるようです。
しかし、1. の場合は拡張子を含んだ全体を何と呼ぶのか、 2. の場合は拡張子以外の部分を何と呼ぶのか、 が明確に広く統一された呼び方があるわけではありません。 例えば、参考書としてあげてある「Windows コマンドプロンプトスパテク 242」は、 その両者をごっちゃにして使っています (ある場面ではファイル名として 1. を、 ある場面では 2. をファイル名としている)。 他にも調べてみましたが、
のような感じでした。 つまり、手近に調べたところでは、 1. の立場の本は少なく、2. の方が優位なので、 多分 2. のように理解する方がいいでしょう。
ということで、
2014 年度ならば第 2 回の資料の p4, p5 で書いた通り、
2. の立場を取ることにします。
(05/08 2012; 09/19 2013, 04/11 2014 修正)
Ctrl-C (Ctrl キーと C キーを同時に押す) でプロンプトに復帰します。
(06/01 2012; 09/19 2013 修正)
現在の環境変数の値を確認するには、 set コマンドで一覧表示する方法もありますが、 これだとたくさんの環境変数が一度に表示されてしまいますし、 %errorlevel% のような動的な環境変数は表示されません (資料にもそう書いてあります)。
よって、その環境変数の値を echo コマンドで表示させるしかありません。
echo コマンドは、その後ろに書いた任意の文字列を表示できますが、
「%変数%」はちゃんとその変数値に置き換えてくれます。
(10/08 2013)
多分、コマンドプロンプトで「echo off」をやったのでしょう。 「echo on」としてください (2014 年度ならば 1 回目の資料の p6 参照)。
なお、それはもしかしたら、資料に書いてある「@echo off」を コマンドプロンプトの上で実行してしまったのではないでしょうか。 だとしたらそれは間違いです。
資料の四角い枠で囲ってある部分は、 コンピュータに表示されるものを書いているのですが、 それにはおおまかに 2 種類あって、大半は
を意味しています。気まぐれに「Z:¥>」をつけたり つけなかったりしているわけではありません (2014 年度ならば 1 回目の資料の p1 の脚注参照)。 特に、「@echo off」で始まっているものは間違いなく バッチファイルに書く内容です。
バッチファイルに書くものは、 たいていはコマンドプロンプト上でも実行できますが、 すべてが同じではありませんし、 そもそも「@echo off」はコマンドプロンプトで実行しても ほとんど意味がありません。 文章を細かく読み取ってください。
もし、どちらの話かわからなければ、質問してください。
(10/08 2013; 04/11 2014 修正)
資料に書いてあるコマンドのサンプルには、 以下の 2 種類があります。
文脈で読み分けてもらうしかありませんが、 test1.bat の中身が書いてなければ、 それは 1. ではなくて 2. でしょう。
test1.bat の中身が書いてあれば、 それを自分で書いて作らなければ実行できません。
そもそも、「test1.bat」という名前からして、
それは元々コンピュータにインストールされているものではありません。
(10/08 2013)
C 言語の「char」などもそうですが、 この手のものには、作者が「こう読め」と指定している場合を除いては、 正式な読み方は決まっていないことの方が多いです。
だからこれも「えちょ」とか読む人もいて、 そしてそれは間違いではありません。 元の意味からするとこれは英単語の「echo (エコー)」を指していますので、 「エコー」と読むのが普通だと思います。 もちろん「イー・シー・エイチ・オー」でも構いませんが、 通じにくいかもしれません。
「char」のような省略名の場合は「普通の」読み方は不定で、 例えば「dir」は「でぃあ」「でぃれ」「でぃる」「でぃー・あい・あーる」 などのように読まれていると思いますが、 元々は「directory (ディレクトリ)」の略だと思います。 ただし、コマンドのフルネームは多分もう少し長いでしょう (directory list ?)
「cls」は「CLear Screen」の略でしょうか。 「md」「rd」「cd」は、 「Make Directory」「Remove Directory」「Change Directory」の略です。 語源がわかるとコマンド自体が覚えやすくなると思います。
ちなみに、C 言語の「char」は「ちゃら」「ちゃー」などと
読まれることが多いようですが、
語源は「character (キャラクタ = 文字)」なので、
私は「キャラ」と呼んでます。
(10/08 2013)
動作には違いがないので、間違いではありません。
しかし、もしデバッグ用にそのコマンドの実行の echo を ON にしたい場合、 すべての行の先頭に「@」をつけている場合は それをすべて外して回らないといけませんが (戻す場合はまた全部に「@」をつけないといけない)、 「@echo off」の方法ならその行を rem でコメントアウトするだけで済みます (戻す場合も rem を消すだけ)。 「@echo off」の方が優れていると思います。
これは、C 言語のコメント記号の // と /* */ の関係に似ていなくもありません。
よって、(2014 年度ならば第 1 回目の資料の p6 に書いたように) バッチファイルの一行目は「@echo off」から始めるようにしてください。
(10/19 2013; 04/11 2014 修正)
これら、「バッチファイルを書け」の条件に合致していないものは、
もちろん正解にはなりません。
実際にバッチファイルを書いて試す、ということをしていれば
そういう間違いはしないはずだと思います。
(10/19 2013; 04/11 2014 修正)
%random% は 0 から 32767 までの乱数を返し、 そして set /a はもっと大きい数の計算もできますから (32767 * 6 位は余裕で可能)、 基本的にはそれでも結構です。 どちらも 0 から 5 までの乱数をほぼ均等に返すことになります。
ただし、「どちらが優れているか」ということだと、 やや前者の方に分があるでしょう。その理由は、
などがあげられます。
これらは、特に別な言語で同じことをやろうとするときにも
意識する必要があります。
(10/19 2013)
「オペランド」は演算子、 すなわち「set /a」の右辺に書く計算記号のことで、 定義されていない演算子を使ったことを意味します。
コマンドプロンプトでは割り算の余りは % としなければならないのに、
バッチファイルでの余りの形式である %% を、
コマンドプロンプトで使った場合などに出ます。
(10/22 2013)
バッチファイルの書き方が間違えている場合に起こります。 具体的な事例は色々あると思います。
問題の箇所を特定するには、 先頭の「@echo off」を rem でコメントアウトして実行みてください。 正しく実行された部分が表示され、 「コマンドの構文が誤っています」と表示された「後」に その問題の行が表示されるはずです。
例えば、「if [条件](」のように if 文の条件部分と
それにつづくカッコの間にスペースを入れなかったりすると出るようです。
(10/22 2013)
if 文は第 4 回で紹介しましたが、 例えば以下のように、バッチファイルのオプション %1 が表示されるだろうと期待されるバッチファイルを実行すると、 実際にはオプション %1 の値がなんであろうと 1 が表示されてしまいます。
set x=1
if "%1" neq "" (
set x=%1
echo %x%
)
容易に避けることができるので、 第 4 回では説明は省略しましたが、 実はこれは第 5 回の for 文のところで紹介する 「遅延展開」と関係があります。
if 文や for 文では、 複数のコマンドを ( ) で囲んで一つのセットとして実行できますが、 その中に環境変数が含まれた場合、 その環境変数を値に変換するのは、 順番に行われるのではなく、 そのブロック部分の実行前に行われてしまいます。 例えば上の ( ) ブロックは、実行前に %x% の値への変換が行われてしまいますが、 ( ) ブロックの実行前は x は 1 なので、
set x=[実際の %1 の値]
echo 1
と変換されてから、この 2 行が実行されています。
よって表示が常に 1 になるわけです。
ただ、この ( ) 内の「set x=」による設定値は、 このブロックの実行後であればちゃんと代入した値を見ることができますので、
set x=1
if "%1" neq "" (
set x=%1
)
echo %x%
のようにすれば正しく %1 の値が表示されることになります。
ブロックの中でさらに x の値を操作する場合は、
順次 %x% の値を変更できるようにしたいだろうと思いますが、
その場合は、第 5 回で説明する「遅延展開機能」を利用してください。
ブロックの中のコマンドでも環境変数の値が順次評価されるようになります。
(10/23 2013)
多分「echo.」からの類推だと思いますが、 「echo.」で表示なしで改行だけを行うようになるのは echo コマンド特有の仕様です。 よって、pause もそれ以外のコマンドも、 「.」をつけることで表示が消えるわけではありません。
pause で表示を消すには、nul へのリダイレクトを行います。
詳しくは、資料の出力リダイレクトのところを参照してください。
(04/11 2014)
「help には、複数ファイルを移動するには , で区切るとあるが、 それがうまくいかない」という質問でしたが、 確かに help にはそんな風に書かれていて、しかもうまくいきません。
私も詳しくは知りませんでしたので、少し調べてみたところ、 どうやらある時期に仕様変更されているようです。 MS-Windows 95/98/Me 系統の move コマンド (当時は外部コマンドの move.exe) では , 区切りで複数のファイルが指定できていたそうですが、 MS-Windows 2000/NT 系統の move コマンド (当時は外部コマンド) は単一のファイル (ワイルドカードは可) しか指定できなかったそうです (以下参照)。
MS-Windows XP/Vista/7 はいずれも MS-Windows NT 系統の OS なので、 それで MS-Windows 2000/NT 系統の move コマンドの仕様なのだろうと思います。 なお、MS-Windows XP からは move.exe という外部コマンドではなく、 cmd.exe の内部コマンドになっています。
ということで、ヘルプのドキュメントのバグだろうと思います。 複数ファイルを move したい場合、ワイルドカードは使えるのでそれを利用するか、 または for コマンドとセットで使用するか、でしょう。
なぜ仕様が変わっているのにヘルプドキュメントが直っていないのか
についてはよくわかりません。
単なる直し忘れかもしれませんので、
なんだったらマイクロソフトに報告してみてください。
もしかすると喜ばれるかもしれません。
(05/30 2014)
自前で「スタート」→「アクセサリ」→「コマンドプロンプト」などとして コマンドプロンプトを立ち上げた場合はそうなります。 理由は、そのコマンドプロンプトからは otbedit.exe が見つけられないからです (Path 環境変数が otbedit 用になってない)。
計算機実習 IV 用のコマンドプロンプトを立ち上げてください。
その上なら otbedit が立ち上がるはずです。
(04/19 2012; 09/19 2013 修正)
まず、otbedit の配付物を以下からダウンロードしてインストールします。
ダウンロードしたファイルを展開して、 そこに入っている ReadMe.txt を読んでください。 インストーラはなく、適当なところに展開すれば そこにあるプログラム otbedit.exe を実行できます。
なお、この講義で使用している AWK モード、BAT モード、gnuplot モードは otbedit は標準ではサポートしていません。 AWK モード、BAT モード用の設定ファイルは以下からダウンロードしてください。
bat.cfg, bat.txt, awk.cfg, awk.txt のファイルを、 otbedit を展開したディレクトリの data ディレクトリ内に入れます。
gnuplot モード用の設定ファイルは以下に置きます。
これも同じく otbedit の data ディレクトリ内に入れます。 その後、この data ディレクトリにある languages_default.txt というファイルを languages.txt という名前でコピーして、 その languages.txt ファイルを編集して 以下のような行を入れてください:
AWK,AWK,awk.cfg,*.awkこれで otbedit を立ち上げると、AWK モード、Bat モード、 gnuplot モードが追加されるはずです。 詳しくは、doc ディレクトリ内の languages.txt というファイルで 説明されています。
Batch,Batch,bat.cfg,*.bat
gnuplot,gp,gnuplot.cfg,*.gp;*.plt;*.dem
otbedit では編集モードがあって、 デフォルトではファイル名に自動的にモードに応じた拡張子をつけます。 例えば AWK モードでは「.awk」という拡張子をつけますが、 この場合でも保存する際に拡張子まで指定して、 例えば「file.dat」という名前で保存するように指定すれば、 .awk という拡張子はつかずに file.dat と保存されるはずです。
もし「file.dat.awk」などとなってしまう場合は (そうはならないと思いますが)、
保存するときに「ファイルの種類」を「すべてのファイル (*.*)」にしてみるか、
またはコマンドプロンプトで ren や move でファイル名を変更してください。
(06/26 2012)
どうやら自分で otbedit をダウンロードして
再インストールした人がいるようですが、
「計算機実習 IV」のコマンドプロンプトで「otbedit」と起動すれば
既にちゃんとインストールされている otbedit が立ち上がり、
ちゃんと [Bat] モードも [AWK] モードも [gnuplot] モードも
使えるようになります。
(06/26 2012)
ファイルを保存しようとすると「共有違反です」などと表示されて ファイルが保存できないのは、 そのファイルが別なところで参照されていることを意味しています。
例えば、コマンドプロンプトでそのバッチファイルを実行している最中に
保存しようとするとそのようになります。
バッチファイルが無限ループになっているときなどは
バッチファイルが動作中であることに気がつきにくいと思います。
無限ループを止めるには
「Q2.5. コマンドプロンプトの無限ループを止めるには」
を参照してください。
(10/22 2013)
例えば以下のようにします。
なお、「ファイルの種類」を「すべてのファイル (*.*)」に変更しないと、
テキストモードでは .txt という拡張子を強制的につけるかもしれません。
例えば、ファイル名として「file1.dat」のようにしても、
「file1.dat.txt」のようなファイルができてしまうかもしれませんので、
.txt の拡張子のデータファイルを作るのでないなら、
一応「すべてのファイル (*.*)」に変更した方が無難でしょう。
(10/28 2013)
講義資料にもある以下のサイトからファイル (gawk-mbcs-win32-20051223.zip) をダウンロードしてください。
以下にも置きます。
その .zip ファイルを展開するといくつかのファイルが含まれていますが、 本当に必要なのは、「gawk.exe」(446464 バイト) というプログラムファイル一つだけです。 インストーラもありませんので、 例えば以下のようにして使用できます。
2., 3. の説明は面倒臭いので、適当に検索して調べてください。 多分 1. が一番てっとり早いでしょう。 gawk.exe はわずか 436KB なので、移動、持ち運びは容易です (これほど小さいプログラミング言語はめったにありません)。
なお、インターネット上には、
これ以外のバージョンの MS-Windows 用の GNU awk もいくつか存在しますが、
それぞれで二重引用符の意味や日本語文字処理などに多少違いがありますので、
注意が必要です。
(06/26 2012)