• ベストアンサー

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

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

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

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8536/19408)
回答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

  • C言語の問題

    配列の問題 1.キーボードから入力したアルファベットの大文字(A~Z)の入力回数をそれぞれ数え、結果を画面出力するプログラムを作成せよ。但し、入力の終了はEOFとし、入力回数のカウントには、配列を用いるものとする。(文字ごとに回数を格納する配列を用意する) 2.キーボードから番号(数字)を入力し、その番号に該当する文字列中の文字を画面表示するプログラムを作成せよ。なお、数字以外の文字が入力した場合と、文字列の範囲外の数字が入力された場合は、任意のメッセージを出力し、再入力するようにする。また文字列はキーボードから入力するものとする。 この問題が解けなくて困ってます。どうか知恵をかしてください。

  • ★C言語の問題です★

    C言語のプログラムの問題なんですが、どなたか以下の問題の1問でも解ける方がいればご回答おねがいします! または、アドバイスだけでもいいのでよろしくお願いします。 【問題】 1 西暦1868年から2007年までの年号を入力して和暦に変更して出力するプログ  ラムを作成するプログラム。  例 入力 1868  出力 明治元年       2007     平成19年 2 整数配列が-32768から32767の範囲の数しか扱えないとしたとき、10桁の整数同士  の足し算を行うプログラム。 3 3桁の整数の値を入力していき、-9999が入力されたところで、それまでに入力  された数の個数と合計を整数で、平均を浮動小数点数で出力するプログラム。 4 3つの文字列”Happy”と“New”と“Year”をつないで1つの文字列として出力する  プログラム。 5 学籍番号、氏名、出席からなる10人分のデータがある。出席の悪いものから並び替  えて表示するプログラム。  例  CA180002 山田太郎 70  CA170001 山田次郎 60  データは、適当なものを使います。

  • 独習C 実行できない。

    はじめまして。プログラミング初心者です。 先日独習Cという本を買ったのですが、その付属CD-ROMに添付されているGNU C compilierを使って実行しようとしてるのですが、何度本の通りにやってもうまくいきません。 簡単なプログラムを作ってTYC4THフォルダの中のsampleフォルダにtest.cというソースファイルを保存しました。 本によると、 ・ 読み取り専用の属性を解除 ・ソースファイルを保存したディレクトリに移動 ・gcc test.c と入力 ・a.exe と入力すると実行される となっています。 gcc test.cまではいいのですが、a.exeと入力すると 'a.exe'は、内部コマンドまたは外部コマンド 操作可能なプログラムまたはバッチファイルとして認識されていません。 と表示されます。どうすればいいのでしょうか?;;

  • DOSコマンドについて

    DOSコマンドで下記の2つを実現したくて色々と 調べてみたのですがわかりませんでした。 (1)バッチファイルを実行したら、DOSプロンプトの  画面が立ち上がり、検索したい文字を入力できる  状態にする。 (2) (1)で入力された文字列が2文字以上だった場合は  エラーメッセージを表示し、再度入力させる。 (3)(1)で入力した文字列を任意のファイル内で検索し、  あれば大文字⇒小文字に変換する。 echoとpromptというコマンドを使って入力画面を 表示させることができるのかと思いましたが なかなかうまくいかない状態でした。 何か参考になるサイトがあれば教えて頂ければ幸いです。

  • 独習C

    C言語を学習しようと思い「独習C 第4版 (大型本)」 http://www.amazon.co.jp/%E7%8B%AC%E7%BF%92C-%E7%AC%AC4%E7%89%88-%E3%83%8F%E3%83%BC%E3%83%90%E3%83%BC%E3%83%88%E3%83%BB%E3%82%B7%E3%83%AB%E3%83%88/dp/4798115770/ref=pd_sbs_b_img_1 を購入しました。 しかしコンパルの仕方がわかりません。 学習環境のセットアップ方法のしたがって、付属のCD-ROMを インストールしました。 そのあとどこにファイルを保存し、なんとコマンドに入力したらプログラムが実行されるかがわかりません。

  • C言語の文字列操作について

    C言語について質問です。 整数を入力させ、その入力された整数に’1’が含まれているかどうかを調べるプログラムを作りたいのですが、うまくできません。 文字列操作を使えばよいのですかね? 可能であればプログラムを書いていただきたいです。

  • c言語の問題です。

    文字入力を繰り返し、finが入力されたら今まで入力された文字列を結合して出力するプログラムを書き実行せよ。 さらに、出力される文中にabcが含まれている場合は何番目の文字に現れるか出力すること。 また、abcが含まれている個数も合わせて出力すること。 よろしくお願いします。

  • プロンプトでの文字の入力

    prompt("入力して下さい","") という形で文字入力を行っていますが、入力した文字を「*」で表示させたいと思っています。 プロンプトでは無理なのでしょうか? <input type="password">で「*」になるようですが、テキストボックスは使わずに、「*」の表示でユーザに文字を入力してもらうことは可能でしょうか? よろしくお願いします。

  • プログラミングC

    以下に示すプログラムは、キーボードから39文字以下の文字列を入力した後で、その文字列を表示するプログラムである。ただし、文字列の表示においては、printf命令における変換指定で、%sを使用するのが一般的であるが、以下のプログラムあえて%sを使用せずに、%cを使っている。このプログラムについてキーボードから入力される文字列の文字数が391文字以下である限り、その文字列を正しく表示できるよう、下線部を埋めてプログラムを完成させなさい。 char x[40],i printf("39文字以下の文字列を入力:"); scanf("%s",x); for(i=0;x[i]_____;i++) printf("%c",x[i]); printf("です。\n"); [実行例] 39文字以下の文字列を入力:programming 入力された文字列はprogrammingです。

  • C言語のプログラミングについて

    私は大学2年なのですが、現在留年するかしないかというぎりぎりのところに立っています。好意で単位をなんとかしてくれる教授を探し出し、C言語の宿題を出されました。ですが私は根っからの文型で、プログラミングなどしたこともありません。教科書を図書館で借りて読んでみるものの、すぐ理解できるような難易度ではないことだけがわかりました。 そこでもしよろしければ、プログラムを教えてもらいたいです。 1.キーボードから整数の入力を繰り返す。0以下の値が入力されたら終了し、入力した値の中の最小値を表示する。また、それが何番目に入力された値かもあわせて表示する。(6つの整数を入力、最後の整数は0を入力することとする。) 実行結果例 整数を入力: 6 整数を入力: 5 整数を入力: 4 整数を入力: 3 整数を入力: 2 整数を入力: 1 整数を入力: 0 最小値は6番目の1 2.キーボードから整数の入力を4回繰り返し、それらの値を2次元配列Aの各要素に順に代入し、その行列のそれぞれの要素と行列式を表示するプログラムを作成せよ。 実行結果例 1行1列の要素? 6 1行2列の要素? 5 2行1列の要素? 4 2行2列の要素? 3 行列A = 6 5 4 3 行列式 = 2 3.キーボードから西暦年を入力し,その年が閏年のときは「○○年はうるう年です」と表示し,そうでないならば「○○年はうるう年ではありません」と表示するプログラムを作成しなさい. なお,閏年の定義は以下の通りである. ・西暦年が4で割り切れる年は閏年 ・ただし,西暦年が100で割り切れる年は平年 ・ただし,西暦年が400で割り切れる年は閏年 実行結果例 西暦年を入力してください. 1987 1987 年はXXXXXXXX 一時的ではありますが、皆様のお力をお借りしたいです。 もちろん、ここでお答えをもらってもわからないままにせずに、無事進級することができたら独学で勉強しようとは思ってます。 なお、理系の人たちはVisualBasicというソフトを使っているようです。よろしくお願い致します。