• ベストアンサー

書籍「独習C++」にある問題について

書籍「独習C++」で学習していますが、その中で意味のわからない 事が出て来たので教えてください。 P.79 2章の最後のページにある、総合理解度チェックの1番 「promptという名前のクラスを作成し、コンストラクタ関数に任意のプロンプト文字列を渡します。 コンストラクタではその文字列を表示し、入力として整数を受け取ります。 この値をcountという名前の非公開変数に保存します。 prompt型のオブジェクトを破棄する際には、ユーザーが入力した回数だけ、コンピュータのビープ音を鳴らします。」 とありますが、 ・任意のプロンプト文字列を渡すとあるが、プログラム実行者に入力させるという意味なのか? ・プロンプト文字列とは何か? ・入力として整数を受け取ります、の意味がわからない、プログラム実行者に整数を入力させるのでしょうか? ・ユーザーが入力した回数だけ、とあるが、何の入力を指しているのか? 日本語的に意味がわからないので教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

>・任意のプロンプト文字列を渡すとあるが、プログラム実行者に入力させるという意味なのか? 「固定の文字列だろうが、ユーザーが入力した文字列だろうが、何でも構わない」って意味。 まあ、適当に「"数値を入力して下さい:"」でも渡しておけば良いかと。 >・プロンプト文字列とは何か? 上記で言えば「"数値を入力して下さい:"」の文字列の事。 Windowsの「コマンドプロンプト」の「プロンプト」とは「prompt」と綴り、コマンドプロンプトを起動した時にカーソルの左に表示される「C:\Documents and Settings\UserName\My Documents>」のような文字列の事を「プロンプト」とか「プロンプト文字列」と言います。 このように「ユーザーに入力を促す為の文字列」や「ユーザーに入力準備が整ったことを知らせる為に表示される文字列」の事を「プロンプト文字列」と言います。 >・入力として整数を受け取ります、の意味がわからない コンストラクタの中で、ユーザーにキーボード入力させ、キーボードからの入力を整数として受け取れ、と言う事。 >プログラム実行者に整数を入力させるのでしょうか? そういう事。早い話、scanfか何かで数値を取り込め、って事。 >・ユーザーが入力した回数だけ、とあるが、何の入力を指しているのか? さっきコンストラクタ関数が呼ばれた時にキーボードから数値を入力したでしょ?って事です。 もし、ユーザーがコンストラクタ関数の数値入力で「2147483647」とかって入力してたら、ビープ音を2147483647回鳴らす事になります。 たぶん、2147483647回もビープ音を鳴らしたら、数日は音が鳴り続けるでしょうね。なので、下手に大きな数値は入力してはいけません(笑)

noname#102223
質問者

お礼

おかげさまでよく理解できました。 参考にさせていただき、これから作ってみます。

その他の回答 (3)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.4

ユーザーが入力した回数だけ は ユーザーが入力した(整数の)回数だけ という意味でしょうね

回答No.2

「プロンプト」とは「入力できる状態通知文字列」という意味があります。(「入力できる状態」を指す場合もあります。) DOS窓等で言うところの C:\> の事です。 「任意の」という事は「何でもいいから」「好きな」という意味合いも持ちます。 私でしたら簡単に input> とでもするでしょうか。 つまり前述の文章を意訳すると 「"入力を促す文字列"をオブジェクト生成時に好きに決められるクラスを作る。そして、コンストラクタ内で数字入力を受け取り、デストラクタ内で入力された数字の分だけビープを鳴らす。」 というところでしょうか。 演習問題としてはちょっと酷い書き方ですね。首をかしげる部分もありますし。 ただし、技術屋になるとこれよりもひどい文章を読み解く必要、ひどい仕様を実装する事がありますので逆に良い問題かもしれません。 以上

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

うん? 元の文章は, 少なくとも日本語としては破綻していないし, 普通の読解能力なら大丈夫な気はするんだが.... 順に行くと ・質問の意味が微妙だが, 「プログラム実行者に入力をさせる」という点では結果的に YES. しかし, 「プロンプト文字列を入力させる」という意味ではない. なお, 厳密にいえば「(任意の) プロンプト文字列を渡す」ことと「プログラム実行者に入力させる」こととは, 直接は無関係. ・「プロンプト」というのは「(相手に対する) 動作の要求」が本義. ちゃんと英語の prompt を調べてください. コンピュータの世界では, 転じて「実行者に対する入力の要求」の意味にもなります. 上の「結果的には」はこことつながります. ・「入力として整数を受け取ります」に対して「プログラム実行者に整数を入力させる」以外にどのように解釈できるのでしょうか? ・このクラスに関して「ユーザの入力」は 1つしかない.

関連するQ&A

専門家に質問してみよう